@font-face{font-family:Archivo;src:url(../assets/fonts/archivo.woff2)format("woff2");font-display:swap}@font-face{font-family:Work Sans;src:url(../assets/fonts/work-sans-latin.woff2)format("woff2");font-display:swap}@font-face{font-family:Space Mono;src:url(../assets/fonts/space-mono-400-latin.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(../assets/fonts/space-mono-700-latin.woff2)format("woff2");font-weight:700;font-display:swap}:root{--ink:#171816;--ink-soft:#30322e;--masa:#f2e4bf;--paper:#fffaf0;--corn:#f3bf3b;--tomatillo:#6f9149;--hibiscus:#a43c62;--hibiscus-dark:#7c2848;--tile:#2e6472;--muted:#726b59;--line:#17181633;--bar:68px;--shadow:0 18px 50px #17181624;--radius:24px;color:var(--ink);background:var(--ink);font-synthesis:none;font-family:Work Sans,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth;min-width:320px}body{background:var(--masa);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--corn);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em;font-family:Archivo,Arial Narrow,sans-serif}.app-shell{background:var(--masa);min-height:100vh}.topbar{z-index:50;height:var(--bar);padding:0 max(18px,env(safe-area-inset-left));background:var(--ink);color:var(--paper);border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.04em;align-items:center;gap:9px;font-family:Archivo,sans-serif;font-size:19px;font-weight:700;display:flex}.moon-dot{border:5px solid var(--masa);border-right-color:var(--corn);border-radius:50%;width:18px;height:18px;transform:rotate(-22deg)}.topbar-actions{align-items:center;gap:12px;display:flex}.language-button{min-width:48px;min-height:44px;color:var(--paper);background:0 0;border:1px solid #ffffff59;border-radius:999px;font-family:Space Mono,monospace;font-size:12px;font-weight:700}.sync-state{color:#dad6ca;text-transform:uppercase;align-items:center;gap:6px;font-family:Space Mono,monospace;font-size:9px;display:flex}.sync-state span{background:var(--tomatillo);border-radius:50%;width:7px;height:7px}.offline-banner{background:var(--corn);color:var(--ink);text-align:center;padding:8px 16px;font:700 11px Space Mono,monospace}.eyebrow{letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;font:700 10px Space Mono,monospace}.primary-button{background:var(--ink);width:100%;min-height:54px;color:var(--paper);border:0;border-radius:15px;justify-content:center;align-items:center;gap:12px;padding:13px 20px;font-weight:750;transition:transform .18s,background .18s;display:flex}.primary-button:not(:disabled):active{transform:translateY(2px)}.primary-button:disabled{opacity:.42}.primary-button span{font-family:Space Mono,monospace}.text-button{min-height:48px;color:var(--hibiscus-dark);text-underline-offset:4px;background:0 0;border:0;font-weight:700;text-decoration:underline}.welcome-page{min-height:calc(100vh - var(--bar));background:var(--ink);grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);display:grid}.welcome-hero{min-height:640px;color:var(--paper);isolation:isolate;flex-direction:column;justify-content:center;padding:clamp(50px,8vw,116px);display:flex;position:relative}.welcome-hero:before{content:"";z-index:-1;border:1px solid #f2e4bf33;border-radius:34px 34px 8px;position:absolute;inset:28px}.welcome-hero .eyebrow{color:var(--corn)}.welcome-hero h1{text-transform:uppercase;max-width:760px;margin-bottom:28px;font-size:clamp(54px,7.4vw,112px);line-height:.88}.hero-copy{color:#d8d2c3;max-width:570px;font-size:clamp(17px,2vw,23px);line-height:1.48}.mini-pass{grid-template-columns:repeat(4,56px);gap:10px;margin-top:48px;display:grid}.mini-pass span{aspect-ratio:1;border:1px solid #f2e4bf73;border-radius:50%}.mini-pass span:first-child{background:var(--corn)}.mini-pass span:nth-child(2){background:var(--tomatillo)}.mini-pass span:nth-child(3){background:var(--hibiscus)}.mini-pass span:nth-child(4){background:var(--tile)}.onboarding-card{background:var(--paper);max-width:620px;box-shadow:var(--shadow);border-radius:6px 32px 32px 6px;align-self:center;margin:38px;padding:clamp(28px,5vw,56px);position:relative}.ticket-edge{background:radial-gradient(circle at 0 10px,var(--ink) 9px,transparent 10px) 0 0/20px 20px repeat-y;width:20px;position:absolute;top:0;bottom:0;left:-10px}.onboarding-card h2{font-size:clamp(36px,4vw,56px);line-height:.98}.review-banner,.pending-note{border-left:4px solid var(--corn);color:#4b3b0a;background:#fff1bd;padding:10px 12px;font:700 11px/1.45 Space Mono,monospace}form{gap:18px;margin-top:24px;display:grid}form label:not(.choice-pill){gap:7px;font-size:13px;font-weight:700;display:grid}input{border:1px solid var(--line);width:100%;min-height:50px;color:var(--ink);background:#fff;border-radius:11px;padding:10px 12px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-help{color:var(--muted);margin:-10px 0 0;font-size:12px}.form-error{border-left:4px solid var(--hibiscus);color:#5f1733;background:#f4dbe4;margin:0;padding:10px 12px;font-weight:700}fieldset{border:0;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;display:grid}legend{margin-bottom:9px;font-size:13px;font-weight:700}.choice-pill{position:relative}.choice-pill input{opacity:0;pointer-events:none;position:absolute}.choice-pill span{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:9px;font-weight:700;display:flex}.choice-pill input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.choice-pill input:focus-visible+span{outline:3px solid var(--corn);outline-offset:2px}.dashboard{min-height:calc(100vh - var(--bar));background:var(--masa);padding:clamp(26px,6vw,76px) max(18px,50vw - 590px)}.dashboard-intro>.eyebrow{color:var(--hibiscus-dark)}.dashboard-title-row{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dashboard-title-row h1{margin-bottom:10px;font-size:clamp(48px,7vw,88px);line-height:.9}.shift-number{color:var(--tile);font:700 clamp(28px,4vw,52px) Space Mono,monospace}.progress-card{background:var(--paper);border:1px solid var(--ink);box-shadow:8px 8px 0 var(--ink);border-radius:38px 38px 10px;grid-template-columns:auto 1fr;align-items:center;gap:clamp(24px,5vw,64px);margin:30px 0 56px;padding:clamp(22px,4vw,44px);display:grid}.progress-orbit{--progress:0deg;aspect-ratio:1;text-align:center;background:conic-gradient(var(--tomatillo) var(--progress),#ded4b6 0);border-radius:50%;place-content:center;width:clamp(150px,22vw,220px);display:grid;position:relative}.progress-orbit:after{content:"";background:var(--paper);border-radius:50%;position:absolute;inset:15px}.progress-orbit strong,.progress-orbit span{z-index:1;position:relative}.progress-orbit strong{font:700 clamp(35px,5vw,58px) Archivo,sans-serif}.progress-orbit span{text-transform:uppercase;font:700 9px Space Mono,monospace}.progress-copy>strong{text-transform:uppercase;margin-bottom:7px;font:700 16px Space Mono,monospace;display:block}.progress-copy p{max-width:550px;color:var(--muted);line-height:1.5}.progress-copy .primary-button{max-width:360px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.section-heading h2{margin:0;font-size:clamp(32px,4vw,50px)}.route-switch{border:1px solid var(--ink);border-radius:999px;padding:4px;display:flex}.route-switch button{background:0 0;border:0;border-radius:999px;min-height:44px;padding:9px 14px;font-weight:700}.route-switch button.active{background:var(--ink);color:var(--paper)}.category-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.category-card{min-height:150px;color:var(--ink);border:1px solid #17181673;border-radius:18px 18px 4px;flex-direction:column;justify-content:space-between;padding:20px;display:flex}.category-card.corn{background:#f5c95e}.category-card.tomatillo{background:#a9be87}.category-card.hibiscus{background:#d49ab0}.category-card.tile{background:#9bbbc3}.category-card>span{font:700 11px Space Mono,monospace}.category-card h3{margin:24px 0 10px;font-size:25px}.category-meter{background:#17181633;height:4px}.category-meter i{background:var(--ink);height:100%;display:block}.session-page{min-height:calc(100vh - var(--bar));background:var(--paper);padding:0 max(16px,50vw - 490px) 70px}.session-progress{background:#e5dcc4;height:5px;margin:0 calc(-1*max(16px,50vw - 490px)) 18px}.session-progress span{background:var(--hibiscus);height:100%;transition:width .35s;display:block}.session-meta{text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font:700 9px Space Mono,monospace;display:flex}.session-meta>span:first-child{color:var(--ink)}.needs-review,.source-checked{border-radius:999px;padding:5px 8px}.needs-review{color:#4b3b0a;background:#fff1bd}.source-checked{color:#31441d;background:#dfe9d2}.exercise-heading{border-bottom:2px solid var(--ink);padding:42px 0 22px;position:relative}.exercise-heading .eyebrow{color:var(--hibiscus-dark)}.exercise-heading h1{text-transform:uppercase;max-width:800px;margin:0;font-size:clamp(42px,8vw,78px);line-height:.9}.menu-price{font:700 15px Space Mono,monospace;position:absolute;bottom:23px;right:0}.instruction{color:var(--muted);margin:22px 0;line-height:1.5}.anatomy-board{border:2px solid var(--ink);background:var(--masa);border-radius:34px 34px 8px;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;display:grid}.learn-view>.primary-button{max-width:430px;margin:24px auto 0}.prep-tray{border:3px solid var(--ink);background:var(--ink-soft);min-height:230px;box-shadow:inset 0 0 0 8px #4c4f49,8px 8px 0 var(--corn);border-radius:48px 48px 14px;padding:42px 18px 18px;position:relative}.tray-label{color:#c9c5b8;letter-spacing:.16em;font:700 9px Space Mono,monospace;position:absolute;top:17px;left:25px}.tray-slots{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:8px;min-height:166px;display:grid}.tray-slots>p{color:#a9aa9f;text-align:center;text-transform:uppercase;grid-column:1/-1;align-self:center;margin:0;font:700 11px Space Mono,monospace}.ingredient-options{grid-template-columns:repeat(4,1fr);gap:10px;margin:28px 0 22px;display:grid}.ingredient-token{border:1px solid var(--line);min-height:126px;color:var(--ink);text-align:center;background:#fff;border-radius:17px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:12px;font-weight:700;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative}.ingredient-token:hover:not(:disabled){transform:translateY(-2px)}.ingredient-token.selected{border-color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.ingredient-token img,.ingredient-placeholder{object-fit:contain;border-radius:50%;width:62px;height:62px}.ingredient-placeholder{background:var(--masa);color:var(--ink);place-content:center;font:700 24px Archivo,sans-serif;display:grid}.role-protein .ingredient-placeholder{background:#e8b4aa}.role-sauce .ingredient-placeholder{background:#e6aec2}.role-side .ingredient-placeholder,.role-base .ingredient-placeholder{background:#f1cf73}.role-produce .ingredient-placeholder,.role-garnish .ingredient-placeholder{background:#bed09f}.role-spirit .ingredient-placeholder,.role-mixer .ingredient-placeholder{background:#a9cad1}.ingredient-token.compact{height:100%;min-height:0;color:var(--paper);background:#3c3f3a;border-color:#676a63;padding:7px}.ingredient-token.compact img,.ingredient-token.compact .ingredient-placeholder{width:46px;height:46px}.ingredient-token.compact .ingredient-placeholder{color:var(--ink)}.prep-tray.is-correct .ingredient-token.compact{animation:.48s cubic-bezier(.2,.8,.2,1) both plate-in}.feedback-card{color:var(--paper);border-radius:18px 18px 4px;margin-top:24px;padding:22px}.feedback-card.success{background:#405a2c}.feedback-card.retry{background:var(--hibiscus-dark)}.feedback-card h2{margin-bottom:8px;font-size:30px}.feedback-card p{line-height:1.5}.feedback-card .primary-button{background:var(--paper);color:var(--ink);margin-top:14px}.guest-ticket{background:var(--masa);border:1px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:4px 26px 26px 4px;margin-top:28px;padding:26px;position:relative}.guest-ticket:before{content:"";background:radial-gradient(circle at 0 7px,var(--paper) 6px,transparent 7px) 0 0/14px 14px repeat-y;width:14px;position:absolute;top:0;bottom:0;left:-7px}.guest-ticket>span{letter-spacing:.13em;font:700 9px Space Mono,monospace}.guest-ticket h2{margin:16px 0 0;font-size:clamp(28px,5vw,44px);line-height:1.05}.answer-stack{gap:10px;display:grid}.answer-stack button{border:1px solid var(--ink);min-height:58px;color:var(--ink);text-align:left;background:#fff;border-radius:12px;padding:12px 16px;font-weight:700}.answer-stack button.selected{background:var(--masa)}.answer-stack button.correct{background:#dfe9d2;border-color:#405a2c}.summary-page{min-height:calc(100vh - var(--bar));background:var(--ink);place-items:center;padding:24px;display:grid}.summary-ticket{background:var(--paper);text-align:center;width:min(100%,600px);box-shadow:12px 12px 0 var(--corn);border-radius:6px 40px 40px 6px;padding:clamp(28px,7vw,64px)}.summary-ticket>.eyebrow{color:var(--hibiscus-dark)}.summary-mark{justify-content:center;align-items:start;margin:10px 0;display:flex}.summary-mark span{letter-spacing:-.08em;font:700 clamp(90px,20vw,170px)/.8 Archivo,sans-serif}.summary-mark small{margin:4px 0 0 7px;font:700 22px Space Mono,monospace}.summary-ticket h1{font-size:clamp(38px,7vw,62px)}.summary-stats{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;margin:28px 0;display:grid}.summary-stats p{gap:4px;margin:0;padding:18px;font-size:12px;display:grid}.summary-stats p+p{border-left:1px solid var(--line)}.summary-stats strong{font:700 21px Space Mono,monospace}.loading-screen{background:var(--ink);min-height:100vh;color:var(--paper);text-transform:uppercase;place-content:center;gap:18px;font:700 12px Space Mono,monospace;display:grid}.loading-mark{border:5px solid var(--masa);border-right-color:var(--corn);border-radius:50%;justify-self:center;width:48px;height:48px;animation:1.2s linear infinite turn}@keyframes plate-in{0%{opacity:.45;transform:translateY(14px)scale(.9)}70%{transform:translateY(-3px)scale(1.03)}to{opacity:1;transform:none}}@keyframes turn{to{transform:rotate(360deg)}}@media (max-width:760px){:root{--bar:62px}.sync-state{display:none}.welcome-page{display:block}.welcome-hero{min-height:auto;padding:62px 22px 76px}.welcome-hero:before{inset:16px}.welcome-hero h1{font-size:clamp(50px,15vw,74px)}.mini-pass{grid-template-columns:repeat(4,42px);margin-top:28px}.onboarding-card{border-radius:0;margin:0;padding:36px 20px 50px}.ticket-edge{display:none}.form-grid,fieldset{grid-template-columns:1fr}.dashboard{padding:28px 16px 60px}.dashboard-title-row{align-items:center}.dashboard-title-row h1{font-size:47px}.progress-card{box-shadow:5px 5px 0 var(--ink);border-radius:28px 28px 8px;grid-template-columns:1fr;padding:24px}.progress-orbit{justify-self:center;width:156px}.section-heading{flex-direction:column;align-items:start}.category-grid{grid-template-columns:1fr 1fr;gap:9px}.category-card{min-height:130px;padding:15px}.category-card h3{font-size:20px}.session-page{padding-inline:14px}.session-progress{margin-inline:-14px}.session-meta{gap:6px}.exercise-heading{padding-top:30px;padding-right:0}.exercise-heading h1{font-size:clamp(38px,12vw,58px)}.menu-price{margin-top:13px;display:block;position:static}.anatomy-board{border-radius:24px 24px 7px;grid-template-columns:repeat(2,1fr);gap:8px;padding:10px}.ingredient-options{grid-template-columns:repeat(2,1fr);gap:8px}.ingredient-token{min-height:116px}.tray-slots{grid-template-columns:repeat(3,1fr)}.prep-tray{min-height:215px;box-shadow:5px 5px 0 var(--corn);border-radius:34px 34px 10px;padding-inline:10px}.summary-ticket{border-radius:6px 28px 28px 6px}}@media (max-width:390px){.category-grid{grid-template-columns:1fr}.route-switch{width:100%}.route-switch button{flex:1}.tray-slots{grid-template-columns:repeat(2,1fr)}.ingredient-token.compact{font-size:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
