/* Header marks remain crisp at every size, including the candle's crossbar. */
.wordmark{position:relative;display:block;width:100%;line-height:0}
.wordmark-crossbar{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.buffet-title{display:flex;align-items:center;gap:.27em;white-space:nowrap;font-size:44px;letter-spacing:-1.5px}
@font-face{font-family:Yellowtail;src:url('assets/fonts/Yellowtail-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.title-script{font-family:Yellowtail,cursive;font-size:1.19em;font-weight:400;letter-spacing:-.02em;color:inherit;margin:0 .025em;line-height:1}
@media(max-width:1150px){.buffet-title{font-size:38px}.intro-copy{max-width:230px}}
@media(max-width:780px){.buffet-title{font-size:34px}.intro-copy{max-width:185px}}
@media(max-width:520px){.intro .buffet-title{font-size:clamp(28px,8.7vw,35px);letter-spacing:-1px}.intro-copy{max-width:none}}
.social-link{display:grid;place-items:center;flex:none;width:52px;height:50px;padding:11px;border:1px solid #d4c1a7;border-radius:9px;transition:background .2s,transform .2s}
.social-link svg{width:28px;height:28px}
.social-link:hover{background:#eee2cd;transform:translateY(-2px)}
.trade-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap;min-height:50px}
.trade-arrow{width:20px;height:20px;flex:none;transition:transform .2s}
.trade-link:hover .trade-arrow{transform:translate(2px,-2px)}
.header-trade-links{display:flex;align-items:center;gap:12px}
.fomo-link{background:#000;color:#fff;box-shadow:0 3px 0 #333}
.fomo-link:hover{background:#000;box-shadow:0 5px 0 #333}
.fomo-link .fomo-eyes{padding-left:0;font-size:18px;line-height:1}
.market-cap{margin:0 0 5px;color:var(--muted);font-size:10px;line-height:1.4}
.market-cap strong{margin-left:4px;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:520px){.market-cap{font-size:9px;margin-bottom:3px}}
@media(max-width:1150px){.header-trade-links{gap:6px}}
@media(min-width:781px) and (max-width:1050px){.site-header{flex-wrap:wrap}.market{margin-left:auto;margin-right:0;text-align:right}.market-value{justify-content:flex-end}.header-actions{width:100%;border-top:1px solid var(--line);padding-top:10px;justify-content:flex-end}.contract-button{margin-right:auto}}
@media(max-width:600px){.header-actions{flex-wrap:wrap}.header-trade-links{width:100%;gap:10px}.header-trade-links .trade-link{flex:1;min-width:0}}
.computer-screen{padding:0;background:#111923;box-shadow:0 0 12px #64c9c222;overflow:hidden}
#chart{display:block;width:100%;height:100%;flex:none;overflow:hidden}
.exchange-title{font:700 13px monospace;letter-spacing:.3px}
.exchange-label{font:9px monospace}
.exchange-tiny{font:7px monospace}
.computer-screen.buy-flash{box-shadow:0 0 28px #55eea677}
.computer-screen{border-radius:6px;box-shadow:0 0 0 5px #cfb17c,0 0 0 7px #654332,3px 6px 0 7px #452b2355}
.computer-screen.buy-flash{box-shadow:0 0 0 5px #cfb17c,0 0 0 7px #654332,0 0 35px 9px #55eea677}
.computer-screen .candle rect{fill:#55e8a3}
.computer-screen .candle line{stroke:#55e8a3;stroke-width:1.2}
.scene[data-phase=eating] .mascot-sprite,.scene[data-phase=eating] .mouth-food{animation:none}
.scene[data-phase=eating]:not([data-meal=milkshake]) .mascot-sprite{transform:none}
.mascot-rig{position:absolute;inset:0;transform-origin:50% 90%;pointer-events:none}
.mascot-sprite{inset:0;width:100%;height:100%;background:none}
.mascot-pose{position:absolute;bottom:0;display:block;background-repeat:no-repeat;opacity:0;pointer-events:none}
.mascot-pose.is-active{opacity:1}
.mascot-position{--fat-scale:1;transition:none;will-change:transform}
.scene[data-running] .mascot-position,.scene.celebrating .mascot-position{transition:transform var(--travel-duration,960ms) cubic-bezier(.25,.1,.35,1)}
/* Three gentle strides per trip; the return stride starts only on departure. */
.scene[data-running] .mascot-sprite{animation:run-stride var(--stride-duration,320ms) cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
.scene[data-phase=returning]:not([data-running]) .mascot-sprite{animation:none;transform:none}
.scene[data-running] .mascot-shadow{animation:run-shadow var(--stride-duration,320ms) ease-in-out infinite}
@keyframes run-stride{0%,100%{transform:translate3d(0,0,0) scaleX(var(--run-flip,1)) rotate(-.6deg)}50%{transform:translate3d(0,-3px,0) scaleX(var(--run-flip,1)) rotate(.6deg)}}
@keyframes run-shadow{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.94);opacity:.8}}
.mascot-target{transform:none}
.food-residue{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:none;stroke-width:0}
.mascot-face-anchor{position:absolute;pointer-events:none;visibility:hidden}
.computer-screen{transition:box-shadow .2s}
.scene>.speech{bottom:auto;left:0;top:0;transform:none;transition:none;z-index:16;pointer-events:none;max-width:min(250px,42%)}
.scene>.speech::after{left:var(--speech-tail,50%);right:auto;top:100%;transform:translate(-50%,-5px) rotate(45deg)}
.scene>.speech[data-side=left]::after{left:100%;top:50%;transform:translate(-5px,-50%) rotate(-45deg)}
.scene>.speech[data-side=right]::after{left:0;top:50%;transform:translate(-7px,-50%) rotate(135deg)}
.scene>.speech[data-side=below]::after{top:0;transform:translate(-50%,-7px) rotate(225deg)}
@media(max-width:520px){.scene>.speech{max-width:min(150px,40%);font-size:10px}}
.scene.celebrating .mascot-position{z-index:13}
.mega-candle,.ceiling-hole{pointer-events:none}
.scene.is-resetting,.scene.is-resetting .mascot-target,.scene.is-resetting .mascot-position,.scene.is-resetting .diner-background,.scene.is-resetting .computer-screen,.scene.is-resetting .speech{transition:none!important}
.scene.celebrating .mascot-sprite{animation-duration:1.5s;animation-timing-function:ease-in-out;transform-origin:50% 96%}
.scene[data-dance=disco] .mascot-sprite{animation-name:dance-disco}
.scene[data-dance=side-step] .mascot-sprite{animation-name:dance-step}
.scene[data-dance=shimmy] .mascot-sprite{animation-name:dance-shimmy}
.scene[data-dance=heel-kick] .mascot-sprite{animation-name:dance-kick}
.scene[data-dance=hands-up] .mascot-sprite{animation-name:dance-hands}
.scene[data-dance=twist] .mascot-sprite{animation-name:dance-twist}
@keyframes dance-disco{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-5px)}}
@keyframes dance-step{0%,100%{transform:translateX(-8px) rotate(-2deg)}50%{transform:translateX(8px) rotate(2deg)}}
@keyframes dance-shimmy{0%,100%{transform:skewX(-2deg) rotate(-2deg)}50%{transform:skewX(2deg) rotate(2deg)}}
@keyframes dance-kick{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(4deg) translateY(-7px)}}
@keyframes dance-hands{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-8px) scaleY(.99)}}
@keyframes dance-twist{0%,100%{transform:scaleX(.95) skewY(-2deg)}50%{transform:scaleX(1) skewY(2deg)}}
.scene[data-phase=eating] .mouth-food{opacity:1}
.mouth-food{width:27%;top:16%;left:42%;transform-origin:40% 35%}
.mouth-food .food-sprite{clip-path:inset(0 0 11% 0);bottom:0}
.scene:not([data-meal=milkshake]) .mouth-food .food-sprite{top:50%;bottom:auto;transform:translateY(-50%)}
.scene[data-meal=fries] .mouth-food .food-sprite,.scene[data-meal=sushi] .mouth-food .food-sprite,.scene[data-meal=cookies] .mouth-food .food-sprite,.scene[data-meal=dumplings] .mouth-food .food-sprite{clip-path:none}
.meal-prop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible;opacity:0;transform-origin:50% 90%}
.scene[data-phase=eating] .meal-prop{opacity:1}
.meal-prop path{stroke-linecap:round;stroke-linejoin:round}
.meal-prop .noodle{fill:none;stroke:#f2bd55;stroke-width:1.1;stroke-dasharray:70;stroke-dashoffset:0;animation:noodle-slurp 2.7s ease-in forwards}
.meal-prop .cheese{fill:none;stroke:#ffc75d;stroke-width:1;transform-origin:53% 27%;animation:cheese-pull 2.55s ease-in-out forwards}
.meal-prop .straw{fill:none;stroke:#fff5e9;stroke-width:1.7}
.meal-prop .straw-stripe{fill:none;stroke:#d44756;stroke-width:1.1;stroke-dasharray:2 2}
.meal-prop .frost{fill:none;stroke:#a8e5ec;stroke-width:1;opacity:0;animation:brain-freeze 2.75s linear forwards}
.meal-prop .noodle,.meal-prop .cheese,.meal-prop .frost{animation-duration:var(--meal-duration)}
.crumb{width:5px;height:4px}
.scene[data-meal=milkshake] .crumb,.scene[data-meal=spaghetti] .crumb{display:none}
@keyframes noodle-slurp{0%,15%{stroke-dashoffset:0}85%,100%{stroke-dashoffset:70}}
@keyframes cheese-pull{0%,20%{transform:scale(.2);opacity:0}40%{transform:scale(1);opacity:1}62%{transform:scale(.3);opacity:1}80%,100%{transform:scale(0);opacity:0}}
@keyframes brain-freeze{0%,59%,85%,100%{opacity:0}65%,79%{opacity:1}}
.finale-inner{width:310px}
.finale-buy{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}
.finale-buy .trade-arrow{width:18px;height:18px}
.finale-fomo{margin-top:9px;white-space:nowrap;font-size:13px}
.replay-button{display:block;margin:12px auto 0;min-height:34px;padding:5px 8px;border:0;background:transparent;color:#876b58;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.replay-button:hover{color:var(--red)}
@media(max-width:780px){.finale-inner{width:235px}}
@media(max-width:520px){.finale-card{align-items:flex-end;padding-bottom:64px}.finale-inner{width:205px;padding:15px}.finale-inner h2{font-size:39px}.finale-buy{min-height:44px;font-size:12px;padding:11px}.replay-button{min-height:36px;margin-top:9px;font-size:10px}}
@media(max-width:520px){.finale-card{padding:10px 12px 38px}.finale-inner{width:174px;padding:12px}.finale-inner .eyebrow,.finale-inner p:not(.eyebrow){display:none}.finale-inner h2{font-size:28px;margin:0 0 9px}.finale-buy{font-size:11px;padding:9px}.replay-button{min-height:26px;margin-top:7px;font-size:9px}}
@media(max-width:360px){.finale-inner{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:7px 10px;width:100%;padding:10px 12px;transform:rotate(-1deg)}.finale-inner h2{grid-column:1;grid-row:1/4;align-self:center;font-size:20px;line-height:1.05;margin:0;letter-spacing:-.6px}.finale-buy{grid-column:2;grid-row:1;min-height:44px}.finale-fomo{grid-row:2;margin-top:0;gap:6px}.finale-fomo .fomo-eyes{font-size:16px}.replay-button{grid-column:2;grid-row:3;min-height:24px;margin:0;padding:2px}}
@media(max-width:1150px){.social-link{width:48px;height:46px;padding:10px}.social-link svg{width:26px;height:26px}.trade-link{min-height:46px;gap:9px}}
@media(max-width:780px){.social-link{width:48px;height:44px}.trade-link{min-height:44px}.computer-screen{padding:0}}
@media(max-width:520px){.header-actions{gap:10px}.social-link{width:46px;height:44px;padding:9px}.social-link svg{width:27px;height:27px}.trade-arrow{width:17px;height:17px}.trade-link{gap:8px}.contract-button{min-height:44px}.computer-screen{padding:0}}
@media(prefers-reduced-motion:reduce){.meal-prop path{animation:none!important}.meal-prop .noodle,.meal-prop .cheese,.meal-prop .frost{display:none}}
@media(prefers-reduced-motion:reduce){.scene,.mascot-target,.diner-background,.computer-screen,.speech{transition:none!important}}
@media(prefers-reduced-motion:reduce){.scene[data-running] .mascot-position,.scene.celebrating .mascot-position{transition-duration:160ms}.scene[data-running] .mascot-shadow{animation:none}}
