@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--espresso:#24160f;--wood:#3a2418;--paper:#f2e4c9;--paper-2:#e9d8b6;--ink:#2a1a10;--ink-soft:#6b5440;--brass:#b8893a;--stamp:#d1462f;--good:#4f7a3a;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{background:var(--espresso);height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:ManusCC0,system-ui,sans-serif;overflow:hidden}#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.layer{pointer-events:none;position:absolute;inset:0}.layer>*{pointer-events:auto}.layer[hidden]{display:none}button{font:inherit;color:inherit;cursor:pointer}.fatal{color:var(--paper);text-align:center;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.boot{background:var(--espresso);color:var(--paper);place-content:center;justify-items:center;gap:14px;display:grid;position:absolute;inset:0}.logo-mark{font-size:44px}.boot-title{letter-spacing:.3em;font-size:14px;font-weight:700}.bar{background:#f2e4c926;width:200px;height:3px}.bar i{background:var(--brass);width:10%;height:100%;transition:width .3s;display:block}.menu-card{background:var(--paper);background-image:radial-gradient(#785a320f 1px,#0000 1px);background-size:4px 4px;border-radius:3px;width:min(420px,100vw - 24px);max-height:calc(100vh - 24px);padding:26px 26px 20px;position:absolute;top:50%;left:clamp(12px,5vw,64px);overflow:auto;transform:translateY(-50%);box-shadow:0 30px 60px #00000073,0 0 0 1px #0000001a}.menu-card.wide{width:min(760px,100vw - 24px)}.menu-card.small{gap:8px;width:min(320px,100vw - 24px);display:grid;left:50%;transform:translate(-50%,-50%)}.enter .menu-card,.enter .result-card,.enter .steam-panel{animation:slip-in .26s var(--ease)}.enter .menu-card.small{animation:none}@keyframes slip-in{0%{opacity:0;translate:-12px}to{opacity:1;translate:0}}.reduced-motion *{transition:none!important;animation:none!important}.kicker{letter-spacing:.18em;color:var(--stamp);text-transform:uppercase;font-size:11px;font-weight:700}h1{letter-spacing:-.01em;text-transform:uppercase;margin:8px 0 10px;font-size:clamp(44px,9vw,64px);line-height:.92}h2{text-transform:uppercase;letter-spacing:.04em;margin:6px 0;font-size:26px}h3{letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:13px}.lede{color:var(--ink-soft);margin:0 0 12px;font-size:15px;line-height:1.45}.dots{border-top:2px dotted #2a1a1059;margin:14px 0}.menu-list{gap:2px;display:grid}.menu-list button{text-align:left;background:0 0;border:0;border-bottom:1px solid #2a1a101f;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 4px;transition:background .15s,padding .15s;display:flex}.menu-list button b{text-transform:uppercase;letter-spacing:.06em;font-size:17px}.menu-list button span{color:var(--ink-soft);font-size:13px}.menu-list button:hover,.menu-list button:focus-visible{background:#d1462f14;outline:none;padding-left:10px}.menu-list button.minor b{color:var(--ink-soft);font-size:14px}.foot{color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin-top:12px;font-size:12px}.back{color:var(--ink-soft);letter-spacing:.08em;background:0 0;border:0;margin-bottom:6px;padding:0;font-size:13px}.back:hover{color:var(--stamp)}.tickets{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.ticket{text-align:left;border:1px solid #2a1a1033;border-left:6px solid var(--brass);transition:transform .15s var(--ease), box-shadow .15s;background:#fbf3e2;border-radius:2px;gap:4px;padding:12px 12px 12px 14px;display:grid;position:relative}.ticket:after{content:"";border-right:2px dashed #2a1a1026;position:absolute;top:0;bottom:0;right:44px}.ticket:hover:not([disabled]){transform:translateY(-2px);box-shadow:0 8px 18px #00000026}.ticket.locked{opacity:.55;cursor:not-allowed}.ticket.cleared{border-left-color:var(--good)}.t-level{letter-spacing:.16em;color:var(--stamp);font-size:10px;font-weight:700}.ticket b{text-transform:uppercase;letter-spacing:.04em;font-size:18px}.t-blurb{color:var(--ink-soft);padding-right:48px;font-size:13px;line-height:1.35}.t-stars{color:var(--brass);letter-spacing:.1em;font-size:14px}.field{margin:10px 0}.field>label{letter-spacing:.16em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.seg{flex-wrap:wrap;gap:4px;display:flex}.seg label{cursor:pointer}.seg input{opacity:0;pointer-events:none;position:absolute}.seg span,.seg button{text-transform:capitalize;background:0 0;border:1px solid #2a1a104d;border-radius:2px;padding:7px 11px;font-size:13px;display:inline-block}.seg input:checked+span,.seg button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.primary,.row button,.menu-card.small button,.toggle{border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.1em;background:0 0;border-radius:2px;padding:11px 16px;font-size:13px;font-weight:700}.primary{color:#fff6ea;background:var(--stamp)!important;border-color:var(--stamp)!important}.primary:hover{filter:brightness(1.08)}.row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.toggle{text-transform:none;letter-spacing:0;border-color:#2a1a1040;justify-content:space-between;width:100%;margin:6px 0;font-size:15px;font-weight:400;display:flex}.toggle i{color:var(--ink-soft);font-style:normal;font-weight:700}.toggle.on i{color:var(--stamp)}.controls-help p{color:var(--ink-soft);font-size:13px;line-height:1.5}.gallery{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin:10px 0;display:grid}.gallery figure,.shift-cups figure{text-align:center;margin:0}.gallery img,.shift-cups img{aspect-ratio:1;border-radius:50%;width:100%;box-shadow:0 0 0 6px #fbf7f0,0 6px 14px #00000040}.gallery figcaption{justify-content:space-between;margin-top:10px;font-size:12px;display:flex}.empty{color:var(--ink-soft)}.learn .cols{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.learn section p{color:var(--ink-soft);margin:0;font-size:13.5px;line-height:1.5}.fine{color:var(--ink-soft);border-top:2px dotted #2a1a1040;margin-top:14px;padding-top:10px;font-size:12px;line-height:1.5}.brief .steps{margin:8px 0;padding-left:20px}.brief .steps li{margin:6px 0;font-size:14.5px;line-height:1.4}.brief .meta{color:var(--ink-soft);letter-spacing:.06em;font-size:12px}.layer-hud>*{pointer-events:none}.layer-hud button,.layer-hud .tilt-track,.layer-hud .touch-buttons button{pointer-events:auto}.slip{background:var(--paper);border-radius:2px;gap:2px;max-width:min(300px,52vw);padding:10px 14px;display:grid;position:absolute;top:12px;left:12px;rotate:-1deg;box-shadow:0 10px 24px #00000059}.slip b{text-transform:uppercase;letter-spacing:.04em;font-size:18px}.slip span{color:var(--ink-soft);font-size:12px;line-height:1.35}.inset{background:#6b3f22;border-radius:50%;width:112px;height:112px;position:absolute;top:12px;right:12px;box-shadow:0 0 0 5px #fbf7f0,0 8px 20px #0006}.gauges{color:var(--paper);background:#24160fcc;border:1px solid #b8893a80;border-radius:3px;grid-template-columns:repeat(3,38px);justify-items:center;gap:6px;padding:10px 8px;display:grid;position:absolute;top:140px;right:12px}.g{justify-items:center;gap:4px;display:grid}.g label{letter-spacing:.12em;color:var(--brass);font-size:8.5px}.g b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}.meter{background:#f2e4c91f;border-radius:2px;width:12px;height:84px;position:relative;overflow:hidden}.meter i{background:var(--paper);transition:height .1s linear;position:absolute;bottom:0;left:0;right:0}.meter em{background:var(--stamp);height:1px;position:absolute;left:-2px;right:-2px}.meter.height.close i{background:var(--stamp)}.meter.flow i{background:var(--brass)}.zone{letter-spacing:.14em;background:#f2e4c91f;border-radius:2px;grid-column:1/-1;padding:3px 6px;font-size:9px;font-weight:700}.zone.close{background:var(--stamp)}.patience-read{font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:12px;font-weight:700}.patience-read.low{color:#ff8b6b;animation:.8s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.4}}.coach{background:var(--paper);opacity:0;max-width:min(520px,100vw - 150px);transition:opacity .2s, translate .2s var(--ease);border-left:5px solid var(--brass);border-radius:2px;padding:10px 16px 10px 14px;font-size:15px;line-height:1.35;position:absolute;bottom:18px;left:50%;translate:-50%;box-shadow:0 10px 24px #00000059}.coach.show{opacity:1}.coach.warn{border-left-color:var(--stamp)}.coach.good{border-left-color:var(--good)}.coach .who{letter-spacing:.18em;color:var(--ink-soft);margin-bottom:2px;font-size:10px;font-weight:700;display:block}.hud-buttons{gap:6px;display:flex;position:absolute;bottom:16px;left:12px}.hud-buttons button{color:var(--paper);letter-spacing:.08em;background:#24160fd9;border:1px solid #b8893a99;border-radius:2px;padding:9px 12px;font-size:13px;font-weight:700}.hud-buttons .serve{background:var(--stamp);border-color:var(--stamp)}.hud-buttons .serve[disabled]{opacity:.4}.hud-buttons .off{opacity:.45;text-decoration:line-through}.tilt{color:var(--paper);letter-spacing:.16em;flex-direction:column;align-items:center;gap:6px;font-size:10px;font-weight:700;display:none;position:absolute;bottom:90px;right:18px}.tilt-track{touch-action:none;background:#24160fcc;border:1px solid #b8893a99;border-radius:27px;width:54px;height:min(44vh,280px);position:relative}.tilt-thumb{background:var(--paper);border-radius:50%;width:46px;height:46px;margin:0 0 -23px -23px;position:absolute;left:50%;box-shadow:0 4px 10px #0006}.tilt-mark{background:var(--stamp);height:2px;position:absolute;left:4px;right:4px}.tilt-mark:after{content:"FLOW";color:#ff9a80;margin-right:10px;font-size:9px;position:absolute;top:-6px;right:100%}.touch-buttons{flex-direction:column;gap:10px;display:none;position:absolute;bottom:90px;right:86px}.touch-buttons button{width:74px;height:74px;color:var(--paper);letter-spacing:.1em;touch-action:none;-webkit-user-select:none;user-select:none;background:#24160fd9;border:2px solid #b8893acc;border-radius:50%;font-size:13px;font-weight:700;position:relative;overflow:hidden}.touch-buttons button.held{background:var(--stamp)}.touch-buttons .focus i{background:var(--brass);height:4px;position:absolute;bottom:0;left:0}.layer-hud.touch .tilt,.layer-hud.touch .touch-buttons{display:flex}.layer-hud.touch .hud-buttons{bottom:16px}.layer-hud.touch .coach{max-width:min(360px,100vw - 260px);font-size:13px;top:12px;bottom:auto;left:50%}.steam-panel{background:var(--paper);border-radius:3px;justify-items:center;gap:8px;width:min(420px,100vw - 20px);max-height:calc(100vh - 20px);padding:18px;display:grid;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 30px 60px #00000080}.steam-canvas{aspect-ratio:300/340;touch-action:none;cursor:ns-resize;background:linear-gradient(#efe1c4,#e6d3ae);border-radius:2px;width:min(240px,60vw);height:auto}.steam-read{grid-template-columns:repeat(4,1fr);gap:6px;width:100%;display:grid}.steam-read>div{text-align:center;border-top:3px solid var(--brass);background:#fbf3e2;padding:6px 2px;display:grid}.steam-read>div.ok{border-top-color:var(--good)}.steam-read>div.bad{border-top-color:var(--stamp)}.steam-read label{letter-spacing:.14em;color:var(--ink-soft);font-size:9px}.steam-read b{font-variant-numeric:tabular-nums;font-size:17px}.steam-read span{color:var(--ink-soft);font-size:10px}.steam-help{color:var(--ink-soft);margin:0;font-size:12.5px;line-height:1.45}.steam-btn{touch-action:none;-webkit-user-select:none;user-select:none}.steam-btn.held{filter:brightness(.85)}.result-card{background:var(--paper);background-image:radial-gradient(#785a320f 1px,#0000 1px);background-size:4px 4px;border-radius:3px;width:min(560px,100vw - 20px);max-height:calc(100dvh - 20px);padding:20px 22px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 30px 60px #00000080}.result-top{grid-template-columns:120px 1fr auto;align-items:center;gap:16px;margin-top:10px;display:grid}.thumb{border-radius:50%;width:120px;height:120px;box-shadow:0 0 0 7px #fbf7f0,0 8px 18px #0000004d}.looks{color:var(--ink-soft);font-family:Georgia,Times New Roman,serif;font-style:italic}.shape-name{font-family:Georgia,Times New Roman,serif;font-size:32px;font-style:italic;line-height:1.05}.quip{color:var(--ink-soft);margin-top:4px;font-size:13px;line-height:1.35}.wanted{margin-top:4px;font-size:13px}.stars{color:var(--brass);letter-spacing:.1em;margin-top:2px;font-size:20px}.hanko{border:4px solid var(--stamp);text-align:center;width:92px;height:92px;color:var(--stamp);animation:stamp .18s var(--ease) both .25s;background:#d1462f0d;border-radius:50%;place-content:center;display:grid;rotate:-8deg}.hanko span{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1}.hanko small{letter-spacing:.14em;margin-top:3px;font-size:9px;font-weight:700}.hanko.fail{color:#7a6656;border-color:#7a6656}.hanko.big{width:130px;height:130px;margin:10px auto}.hanko.big span{font-size:30px}@keyframes stamp{0%{opacity:0;scale:1.5}to{opacity:1;scale:1}}.crits{gap:5px;display:grid}.crit{letter-spacing:.06em;grid-template-columns:90px 1fr 32px;align-items:center;gap:8px;font-size:12px;display:grid}.crit label{text-transform:uppercase;color:var(--ink-soft);font-size:11px}.cbar{background:#2a1a101f;height:6px}.cbar i{background:var(--ink);height:100%;display:block}.crit b{text-align:right;font-variant-numeric:tabular-nums}.praise,.faults{margin:10px 0 0;padding-left:18px;font-size:13.5px;line-height:1.4}.praise li{color:var(--good)}.faults li{color:var(--ink);margin:3px 0}.faults li::marker{color:var(--stamp)}.rule{color:var(--stamp);margin-top:10px;font-size:14px;font-weight:700}.milk-note,.best{color:var(--ink-soft);letter-spacing:.05em;margin-top:8px;font-size:12px}.shift-cups{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:14px;margin:14px 0;display:grid}.shift-cups figcaption{color:var(--ink-soft);margin-top:8px;font-size:10.5px}@media (max-width:640px){.menu-card{padding:20px 18px 16px;left:50%;transform:translate(-50%,-50%)}.enter .menu-card{animation:none}.result-top{grid-template-columns:90px 1fr}.thumb{width:90px;height:90px}.hanko{grid-column:1/-1;justify-self:center;width:80px;height:80px}.shape-name{font-size:26px}.inset{width:84px;height:84px}.gauges{grid-template-columns:repeat(3,30px);padding:8px 5px;top:108px}.meter{height:60px}.slip{max-width:46vw}.slip span{display:none}}@media (max-height:520px){.tilt-track{height:46vh}.tilt,.touch-buttons{bottom:70px}.touch-buttons button{width:60px;height:60px}.gauges{display:none}}.boot-icon{filter:drop-shadow(0 6px 14px #00000073);width:96px;height:96px}.layer-hud.touch .tilt-mark:after{display:none}@media (max-width:640px){.layer-hud.touch .coach{max-width:calc(100vw - 150px);top:74px;left:10px;translate:0}}.cupimg{filter:drop-shadow(0 2px 3px #2a1a122e);background-repeat:no-repeat;flex:none;display:inline-block}.book{max-width:980px}.book-h{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft,#6b4a35);border-bottom:1px dashed #6b4a3559;margin:18px 0 10px;padding-bottom:6px;font-size:13px}.book-h small{float:right;letter-spacing:.05em;color:var(--hanko,#d1462f)}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.book-card{text-align:center;background:#fffaf08c;border:1px solid #6b4a3526;border-radius:10px;flex-direction:column;align-items:center;margin:0;padding:10px 8px 12px;display:flex}.book-card figcaption{flex-direction:column;gap:4px;margin-top:6px;display:flex}.book-card b{font-size:15px}.book-card span{opacity:.82;font-size:12px;line-height:1.35}.book-card em{letter-spacing:.06em;text-transform:uppercase;opacity:.55;font-size:11px;font-style:normal}.book-card.got em{opacity:1;color:#3f7a4a}.book-card.fail:not(.got) .cupimg{filter:grayscale(.35)drop-shadow(0 2px 3px #2a1a122e)}.brief{position:relative}.brief-ex{float:right;flex-direction:column;align-items:center;gap:2px;margin:0 0 6px 12px;display:flex}.brief-ex small{letter-spacing:.12em;text-transform:uppercase;opacity:.6;font-size:10px}.newfind{background:var(--hanko,#d1462f);color:#fff8ec;letter-spacing:.06em;border-radius:999px;margin:2px 0 8px;padding:4px 10px;font-size:12px;animation:.5s cubic-bezier(.2,1.6,.4,1) .25s both newfind-pop;display:inline-block}@keyframes newfind-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media (max-width:520px){.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.brief-ex .cupimg{transform-origin:100% 0;transform:scale(.8)}}.menu-list .start-here{background:var(--stamp);color:#fff6e8;border:0;border-radius:3px;gap:2px;margin:2px 0 8px;padding:14px 16px;display:grid;box-shadow:0 6px 14px #d1462f59}.menu-list .start-here b{letter-spacing:.08em;font-size:20px}.menu-list .start-here span{color:#ffe3d6;font-size:13px}.menu-list .start-here:hover{filter:brightness(1.06);padding:14px 16px}.stepbar{background:var(--paper);pointer-events:none;border-radius:3px;width:min(560px,100vw - 680px);min-width:300px;padding:8px 12px 10px;position:absolute;top:12px;left:50%;translate:-50%;box-shadow:0 10px 24px #00000059}.stepbar:empty{display:none}.stepbar ol{gap:4px;margin:0 0 6px;padding:0;list-style:none;display:flex}.stepbar li{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);opacity:.55;white-space:nowrap;border-bottom:3px solid #2a1a101f;flex:1;align-items:center;gap:5px;padding:3px 4px;font-size:11px;font-weight:700;display:flex}.stepbar li i{background:#2a1a101f;border-radius:50%;flex:none;place-items:center;width:17px;height:17px;font-size:10px;font-style:normal;display:inline-grid}.stepbar li.done{opacity:.8;border-bottom-color:var(--good)}.stepbar li.done i{background:var(--good);color:#fff}.stepbar li.now{opacity:1;color:var(--ink);border-bottom-color:var(--stamp)}.stepbar li.now i{background:var(--stamp);color:#fff}.stepbar p{color:var(--ink);margin:0;font-size:15px;line-height:1.35}.stepbar.flash{animation:step-flash .7s var(--ease,ease-out)}@keyframes step-flash{0%{transform:scale(1.06);box-shadow:0 0 0 4px #ffd65ae6,0 10px 24px #00000059}to{transform:scale(1)}}.howto{background:var(--paper);pointer-events:auto;border-top:5px solid var(--stamp);border-radius:3px;width:min(300px,100vw - 190px);padding:12px 14px;position:absolute;top:120px;left:12px;box-shadow:0 16px 34px #00000073}.howto dl{grid-template-columns:auto 1fr;gap:6px 10px;margin:8px 0 10px;font-size:13px;line-height:1.35;display:grid}.howto dt{text-transform:uppercase;letter-spacing:.08em;color:var(--stamp);padding-top:2px;font-size:11px;font-weight:700}.howto dd{margin:0}.howto .primary{width:100%}.howto small{text-align:center;color:var(--ink-soft);margin-top:6px;font-size:10.5px;display:block}.zone{text-align:center;gap:1px;display:grid}.zone b{letter-spacing:.14em;font-size:9.5px}.zone span{letter-spacing:0;word-spacing:normal;opacity:.9;font-size:9.5px;font-weight:400;line-height:1.25}.layer-hud.easy .gauges{grid-template-columns:repeat(2,52px);max-width:130px}.layer-hud.easy .tilt{display:flex}.layer-hud.easy .tilt-mark{background:var(--brass);height:3px}.layer-hud.easy .tilt-mark:after{content:"AUTO";color:#f0cf8a}.touch-buttons .pourbtn{display:none}.layer-hud.easy .touch-buttons .pourbtn{background:#d1462fe6;border-color:#ffd2c4;width:88px;height:88px;font-size:15px;display:block}.layer-hud.easy .touch-buttons .pourbtn.held{background:#ff6a4d;box-shadow:0 0 0 6px #ff6a4d59}.layer-hud.easy .touch-buttons{align-items:center}.layer-hud.touch .stepbar{width:min(440px,100vw - 300px);min-width:0;padding:6px 10px 8px}.layer-hud.touch .stepbar p{font-size:13px}.layer-hud.touch .coach{max-width:min(420px,100vw - 330px);top:auto;bottom:16px;left:50%;translate:-50%}@media (max-width:900px){.stepbar{width:calc(100vw - 170px);min-width:0;top:74px;left:12px;translate:0}.layer-hud.touch .stepbar{width:calc(100vw - 150px)}.stepbar li{letter-spacing:.04em;gap:3px;padding:2px;font-size:9.5px}.stepbar li i{width:15px;height:15px}.howto{top:auto;bottom:64px}}@media (max-width:640px){.layer-hud.touch .coach{max-width:calc(100vw - 190px);top:auto;bottom:64px;left:10px;translate:0}.layer-hud.easy .gauges{grid-template-columns:repeat(2,36px);max-width:96px}.stepbar ol li:not(.now){flex:none}.stepbar ol li:not(.now) span{display:none}.layer-hud.easy .touch-buttons .pourbtn{width:76px;height:76px}.touch-buttons button{width:62px;height:62px;font-size:12px}.touch-buttons{right:80px}.howto{width:calc(100vw - 190px);bottom:64px}}
