/* Chibi campaign typography: Oswald for display, Open Sans for reading and UI. */
@font-face{font-family:Oswald;src:url('/assets/fonts/brand/oswald-variable.woff2') format('woff2');font-style:normal;font-weight:200 700;font-display:swap}
@font-face{font-family:"Open Sans";src:url('/assets/fonts/brand/open-sans-variable.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:"Open Sans";src:url('/assets/fonts/brand/open-sans-italic-variable.woff2') format('woff2');font-style:italic;font-weight:400 800;font-display:swap}

/* Match the local Arial-compatible fallback to the shipped fonts before swap.
   The display ratios were measured against the site's Cyrillic headlines;
   vertical metrics come from the WOFF2 hhea tables and account for size-adjust.
   No extra network font is needed for either fallback. */
@font-face{font-family:"Oswald Fallback";src:local("Arial"),local("Liberation Sans");font-style:normal;font-weight:200 499;size-adjust:76.16%;ascent-override:156.64%;descent-override:37.95%;line-gap-override:0%}
@font-face{font-family:"Oswald Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold");font-style:normal;font-weight:500 700;size-adjust:80.5%;ascent-override:148.2%;descent-override:35.9%;line-gap-override:0%}
@font-face{font-family:"Open Sans Fallback";src:local("Arial"),local("Liberation Sans");font-style:normal;font-weight:400 499;size-adjust:104%;ascent-override:102.77%;descent-override:28.17%;line-gap-override:0%}
@font-face{font-family:"Open Sans Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold");font-style:normal;font-weight:500 800;size-adjust:102%;ascent-override:104.79%;descent-override:28.72%;line-gap-override:0%}

:root,.refined{
 --font-display:Oswald,"Oswald Fallback","Arial Narrow",sans-serif;
 --font-body:"Open Sans","Open Sans Fallback",Arial,sans-serif;
 --violet:#60409d;--violet-dark:#462576;--ink:#252031;--muted:#5e5669;
 --lime:#d9ee32;--surface:#fff;--surface-soft:#eee8f6;
 --control-radius:6px;--radius:12px;
 --type-section:clamp(2.5rem,4.1vw,3.65rem);
 --type-card:clamp(1.65rem,2.4vw,2.1rem);
 font-family:var(--font-body);font-synthesis:none;
}
body.refined{font-family:var(--font-body);background:var(--surface)}
/* These roles win over the older page-specific typography without hiding it. */
body.refined :is(h1,h2,h3,h4),body.refined :is(h1,h2,h3,h4) em{
 font-family:var(--font-display);font-style:normal;font-weight:600;
 letter-spacing:-.015em;text-transform:uppercase;
}
body.refined :is(h1,h2) em{line-height:1.13;padding-bottom:.06em}
body.refined :is(button,input,select,textarea,.button,.text-link,.desktop-nav,.footer){font-family:var(--font-body)}
body.refined :is(.hand,.simple-lead,.simple-entry-title,.quest-launcher-title,.vv-accent,.vv-opening-date,.vv-floor-marker,.vv-floor-label>span,.vv-crew-number,.vv-cafe-scribble,.menu-place-chooser label,.menu-list-empty>p){
 font-family:var(--font-display);font-weight:600;font-style:normal;letter-spacing:0;
}
body.refined :is(.package-prices strong,.package-price strong,.package-total strong,.vv-ticket-rates dd,.vv-pricing-mark,.simple-contact-phone,.birthday-phone,.footer-phone){
 font-family:var(--font-display);font-weight:600;letter-spacing:0;
}
body.refined :is(.button,.location-tab,.visit-choice,.age-button){border-radius:6px;font-weight:700}
body.refined .button.primary{background:var(--violet);border-color:var(--violet);box-shadow:none}
body.refined .button.primary:hover{background:var(--violet-dark);border-color:var(--violet-dark)}
body.refined .button.secondary{border-color:var(--violet);border-width:1.5px}
body.refined .site-header{background:#fff}
body.refined .desktop-nav a{font-size:.9375rem;font-weight:600}
body.refined .nav-actions .button{border-radius:6px}
body.refined :is(.mobile-nav,.simple-ticket-dialog,.dish-dialog,.menu-list-dialog,.invitation-dialog,.hero-dialog,.party-plan-dialog){border-radius:12px}
body.refined .footer h3{font-size:1.25rem;line-height:1.25;letter-spacing:0}

/* Home: condensed headlines, clear colour fields, tighter geometric edges. */
body.collage-home .simple-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr)}
body.collage-home .simple-hero h1{
 font-family:var(--font-display);font-size:clamp(3.1rem,5vw,4.5rem);
 font-weight:600;line-height:1.07;letter-spacing:-.02em;max-width:520px;
}
body.collage-home .simple-hero h1 em{font-family:inherit;font-style:normal;line-height:1.12;rotate:0}
body.collage-home .simple-lead{font-family:var(--font-display);font-size:1.75rem;font-weight:500;font-style:normal;rotate:-6deg;letter-spacing:.015em}
body.collage-home .simple-word-highlight{
 background-image:none;background-color:transparent;
}
body.collage-home :is(.simple-cafe h2,.simple-birthday h2) .simple-word-highlight{background-image:none;background-color:transparent}
body.collage-home :is(.simple-section-heading h2,.simple-cafe h2,.simple-birthday h2,.simple-contact h2){
 font-family:var(--font-display);font-size:var(--type-section);font-weight:600;line-height:1.12;letter-spacing:-.015em;
}
body.collage-home :is(.simple-cafe h2 em,.simple-birthday h2 em){font-family:inherit;font-weight:inherit;font-style:normal;rotate:0;line-height:1.12}
body.collage-home .simple-entry{border-radius:12px;border-width:1.5px}
body.collage-home :is(.simple-entry--birthday,.simple-entry--menu)::before{content:none}
body.collage-home .simple-entry-title{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1.17;letter-spacing:0;text-transform:uppercase}
body.collage-home .simple-entry-caption{font-size:.9375rem;opacity:1}
body.collage-home .simple-entry-arrow{border-radius:6px}
body.collage-home :is(.simple-hero-picture,.simple-cafe-room-frame,.simple-party-room),body.collage-home .simple-park .simple-park-picture{border-radius:12px}
body.collage-home .simple-hero-art .simple-shape--violet{border-radius:12px;background:#dfd1f1;transform:rotate(3deg)}
body.collage-home .simple-park--salut:before{border-radius:12px;rotate:-4deg}
body.collage-home .simple-cafe-photo:before{border-radius:12px;background:#dfd1f1}
body.collage-home .simple-birthday-art .simple-shape--lime{border-radius:12px;transform:rotate(4deg)}
body.collage-home .simple-park h3{font-family:var(--font-display);font-size:1.65rem;font-weight:600;line-height:1.2;letter-spacing:0}
body.collage-home :is(.simple-park-action,.simple-cafe-menu){border:1.5px solid var(--violet);border-radius:6px;background:var(--surface);font-weight:700}
body.collage-home :is(.simple-park-action-outline,.simple-cafe-menu-outline,.simple-party-cta-outline){display:none}
body.collage-home .simple-park-action{gap:12px;padding:12px 16px;min-height:54px}
body.collage-home .simple-park-link:is(:hover,:focus-visible) .simple-park-action{background:var(--lime)}
body.collage-home .simple-cafe-menu:hover{background:var(--lime)}
body.collage-home .button.primary.simple-party-cta{background:var(--violet);border:1px solid var(--violet);border-radius:6px;min-height:60px;padding:17px 24px;font-family:var(--font-body)}
body.collage-home .button.primary.simple-party-cta:hover{background:var(--violet-dark);border-color:var(--violet-dark)}

/* Details retain their individual layouts while sharing the same type system. */
body.visual-venues main :is(h1,h2,h3,h4),body.visual-venues main h2 em{font-family:var(--font-display);font-weight:600;font-style:normal;letter-spacing:-.015em}
body.visual-venues .vv-title h1{letter-spacing:-.02em;line-height:1.08}
body.visual-venues .vv-accent{font-family:var(--font-display);font-style:normal;letter-spacing:0;line-height:1.3}
body.visual-venues .vv-cafe-scribble{display:none}
body.visual-venues :is(.vv-photo>img,.vv-activity-display,.vv-cafe-scene>img,.vv-digital-inner,.vv-hours-card,.vv-visit>.wrap,.vv-party-inner){border-radius:12px}
body.visual-venues :is(.vv-age,.vv-floor-marker,.vv-floor-label>span,.vv-pricing-mark){border-radius:6px}
body.visual-venues .vv-ticket-rates dd{font-family:var(--font-display);font-weight:600;font-size:2.25rem;letter-spacing:0}
body.visual-venues .vv-address-card h3{font-family:var(--font-body);font-size:1.25rem;font-weight:600;line-height:1.4;letter-spacing:0;text-transform:none}
body.menu-app :is(.menu-app-copy h1,.menu-chapter-heading h2,.menu-cafes h2,.dish-dialog-copy h2){font-family:var(--font-display);font-weight:600;letter-spacing:-.015em}
body.menu-app .menu-app-copy h1 em{font-family:inherit;font-weight:inherit;font-style:normal;letter-spacing:inherit;line-height:1.15}
body.menu-app .menu-place-chooser label{font-family:var(--font-display);font-weight:500;font-style:normal;letter-spacing:0}
body.menu-app :is(.menu-cafes header,.menu-cafe-links){min-width:0;overflow-wrap:anywhere}
body.menu-app :is(.menu-product-art,.menu-product-open,.menu-cafe-links a){border-radius:10px}
body.menu-app .filter{border-radius:6px;font-family:var(--font-display);font-size:1.25rem;font-weight:500;letter-spacing:.01em;text-transform:uppercase}
body.menu-app .filter small{font-family:var(--font-body);font-size:.75rem}
body.menu-app :is(.menu-product-name,.menu-product-copy h3){font-family:var(--font-display);font-size:1.5625rem;text-transform:none;letter-spacing:0;font-weight:500;line-height:1.25}
body.menu-app .menu-product-price{font-family:var(--font-display);font-size:1.625rem;font-weight:600}
body.birthday-page:not(.birthday-preview) .builder-packages .package{border-radius:12px}
body.refined.flow-home:not(.birthday-preview) .builder-packages .package h3{font-family:var(--font-display);font-style:normal;font-weight:600;font-size:2rem;letter-spacing:0}

@media(max-width:1050px){
 body.collage-home .simple-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
 body.collage-home .simple-hero h1{font-size:clamp(2.8rem,5.5vw,3.6rem)}
 body.collage-home .simple-entry-title{font-size:1.75rem}
}
@media(max-width:767px){
 body.collage-home .simple-hero{grid-template-columns:minmax(0,1fr)}
 body.collage-home .simple-hero h1{font-size:clamp(2.7rem,10vw,3.75rem);max-width:100%}
 body.collage-home .simple-lead{font-size:1.5rem;margin:10px 18px 0 auto}
 body.collage-home :is(.simple-section-heading h2,.simple-cafe h2,.simple-birthday h2,.simple-contact h2){font-size:clamp(2.25rem,7.5vw,2.75rem)}
 body.collage-home .simple-entry-title{font-size:1.75rem;max-width:calc(100% - var(--entry-art-reserve))}
 body.collage-home .simple-entry{padding:20px;min-height:142px}
 body.collage-home .simple-park-action{padding:10px 14px;min-height:50px}
 body.collage-home .simple-park h3{font-size:1.5rem}
 body.visual-venues .vv-title h1{font-size:3.5rem}
 body.visual-venues .vv-opening-lev .vv-title h1{font-size:3.5rem}
 body.menu-app .menu-app-copy h1{font-size:3.5rem}
 body.menu-app .filter{font-size:1.125rem}
 body.menu-app :is(.menu-product-name,.menu-product-copy h3){font-size:1.3125rem}
 body.menu-app .menu-product-price{font-size:1.4375rem}
}
@media(max-width:360px){
 body.collage-home .simple-entry-title{font-size:1.5rem}
 body.visual-venues .vv-title h1,body.visual-venues .vv-opening-lev .vv-title h1{font-size:3rem}
 body.menu-app .menu-app-copy h1{font-size:3rem}
}

/* Editorial page layers set their own font shorthands. Reuse the measured
   fallback for visible headings and home actions; loaded Oswald stays the same. */
body.home-mobbin #main :is(#hm-title,#hm-cafe-title,#hm-birthday-title,.hm-city,.hm-route-title,.hm-cafe-appetite,.simple-cafe-menu,.simple-cafe-places a,.simple-party-lead>strong,.simple-party-cta),
body.visual-venues #main .vv-title h1,
body.menu-app #main :is(.menu-app-copy h1,.menu-place-chooser label,.filter),
body.birthday-mobbin #main #br-title{font-family:var(--font-display)}
body.home-mobbin #main :is(.hm-arrow,.hm-route-note,.hm-cafe-description,.hm-cafe-places-label,.hm-cafe-tc,.hm-cafe-place-arrow){font-family:var(--font-body)}
body.menu-app #main :is(.menu-app-copy>p,.filter small){font-family:var(--font-body)}
