/* Shared typography: two expressive brand faces and one interface family. */
:root{--font-ui:Manrope,Arial,sans-serif;--font-display:"Otherworld Display",Georgia,serif;--font-script:"Otherworld Script",cursive;--type-body:16px;--type-caption:12px;--type-title:28px;--type-scene:clamp(64px,6vw,104px);--type-dialog:48px}
body,button,input,select,textarea{font-family:var(--font-ui)}
body{font-size:var(--type-body);line-height:1.5}
.header nav>button,.header nav .menu-toggle,.close-menu,.close-cart,.add-to-bag,.checkout-button,.back-to-bag,.empty-shop,.end-actions button{font-family:var(--font-ui);font-size:var(--type-caption);line-height:1.4;font-weight:500;letter-spacing:.08em}
.brand{font-family:var(--font-display);font-size:14px;line-height:1.3}
.eyebrow,.shop-copy>.eyebrow,.scan-heading>.eyebrow,.product-caption,.shop-footnote,.scene-footer .signature,.scene-footer .chapter,.scene-footer .scroll-cue,.breakfast-active:not(.shop-active) .scroll-cue,.tiny-copy{font-family:var(--font-ui);font-size:var(--type-caption);line-height:1.5;font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.story-panel h2,.shop-copy>h2,.scan-heading h2,.flight-copy h2,.breakfast .window-headline{font-family:var(--font-display);font-size:var(--type-scene);font-weight:700;line-height:.96;letter-spacing:-.045em}
.story-panel h2 em,.breakfast .window-headline em,.cart h2 em{font-family:var(--font-script);font-weight:400;letter-spacing:-.025em}
.shop-intro,.flight-copy>p:last-child,.ending>p:not(.eyebrow),.breakfast-copy p:not(.eyebrow),.shop-feedback{font-family:var(--font-ui);font-size:var(--type-body);line-height:1.6}
.scan-readouts p{font-family:var(--font-ui)}
.scan-readouts span,.scan-readouts p:nth-child(2) span{font-size:var(--type-caption);font-weight:500;line-height:1.4;letter-spacing:.08em}
.scan-readouts strong{font-size:24px;line-height:1.15;letter-spacing:-.04em;font-weight:500}
.product-config{font-family:var(--font-ui);--config-title:var(--type-title);--config-body:var(--type-body);--config-caption:var(--type-caption)}
.product-config .product-name{font-family:var(--font-ui);font-size:var(--type-title);font-weight:500}
.product-config .product-description,.config-flavors label span{font-size:var(--type-body)}
.product-config legend,.config-volumes span b{font-size:var(--type-caption)}
.product-price{font-family:var(--font-ui);font-size:var(--type-title);font-weight:400;letter-spacing:-.03em}
.quantity output{font-family:var(--font-ui);font-size:var(--type-body)}
.quantity button{font-family:var(--font-ui);font-size:24px}
.menu,.cart{font-family:var(--font-ui);color:#181818}
.menu h2,.cart h2,.checkout-preview h3{font-family:var(--font-display);font-size:var(--type-dialog);font-weight:700;line-height:1.04;letter-spacing:-.045em}
.menu h2{margin:24px 0 28px}
.menu .close-menu,.cart .close-cart{color:#181818}
.chapter-nav{gap:0}
.chapter-nav button{display:flex;align-items:baseline;gap:20px;font-family:var(--font-ui);font-size:var(--type-body);font-weight:400;line-height:1.5;color:#181818;min-height:49px;padding:12px 0;border-color:#18181820}
.chapter-nav button:hover{background:#18181808}
.chapter-index{font-size:var(--type-caption);line-height:1.5;color:#777;letter-spacing:.06em;min-width:20px}
.cart-item h3{font-family:var(--font-ui);font-size:var(--type-body);font-weight:500;line-height:1.4}
.cart-item p,.cart-item>strong,.remove-item,.cart-note,.shop-footnote{font-size:var(--type-caption);line-height:1.5}
.cart-item-controls,.cart-summary>p:first-child,.checkout-preview>p:not(.eyebrow){font-size:var(--type-body);line-height:1.6}
.cart-item-controls button{color:#181818;font-family:var(--font-ui)}
.cart .checkout-button,.cart .back-to-bag,.cart .empty-shop{background:#181818;color:#fff9e8}
.empty-bag{font-family:var(--font-ui);font-size:var(--type-title);line-height:1.3}
@media(max-aspect-ratio:1/1){
 :root{--type-scene:46px;--type-dialog:36px}
 .brand{font-size:12px}
 .header nav{gap:12px}
 .header nav>button{font-size:var(--type-caption);letter-spacing:.04em}
 .shop-copy>h2{font-size:var(--type-scene)}
 .scan-readouts strong{font-size:16px}
 .scan-readouts span,.scan-readouts p:nth-child(2) span{font-size:var(--type-caption)}
 .scan-readouts p{gap:8px}
 .scene-footer .signature,.scene-footer .scroll-cue{font-size:var(--type-caption);letter-spacing:.05em}
 .scene-footer .signature{max-width:125px}
 .product-config .config-flavors{gap:5px}
 .config-flavors label span{font-size:var(--type-body);min-height:47px}
 .product-config .product-name{font-size:var(--type-title)}
 .chapter-nav button{font-size:var(--type-body)}
 .shop-footnote{white-space:normal;width:86%;text-align:center;font-size:var(--type-caption);bottom:2%}
 .breakfast .window-headline{font-size:var(--type-scene)}
}
@media(min-aspect-ratio:1/1) and (max-height:800px){
 .scan-readouts p{width:180px;min-height:160px;padding:20px;gap:10px}
 .scan-readouts strong{font-size:20px}
 .scan-readouts p:nth-child(1){top:26%}
 .scan-readouts p:nth-child(2){top:24%}
 .scan-readouts p:nth-child(4){width:160px;min-height:160px;padding:20px}
}
@media(max-width:360px){
 .shop-active .product-image{top:30%;height:26svh;width:60%}
 .product-config{top:46.5%;gap:13px}
 .purchase-row{left:6%;right:auto;translate:none;gap:7px;padding:0}
 .quantity button{width:22px}.quantity output{width:16px;min-width:16px}
 .product-price{font-size:24px}
}
@media(max-width:360px){.shop-active .product-image{top:32%;height:24svh}}
