[hidden]{display:none!important}:root{--bg: #efe7da;--surface: #fbf7f0;--surface-2: #f4efe6;--ink: #2b2b2e;--ink-2: #4a4a50;--line: #e2d8c8;--accent: #2b2b2e;--focus: #0072b2;--radius: 16px;--shadow: 0 10px 30px rgba(43, 43, 46, .14), 0 2px 6px rgba(43, 43, 46, .08);--ease: .2s ease;font-family:Atkinson Hyperlegible,system-ui,sans-serif;font-size:18px;line-height:1.5;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg)}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}:where(#ui)>*{pointer-events:auto}h1,h2,h3{font-weight:700;line-height:1.2;margin:0 0 .5em}h1{font-size:2.4rem;letter-spacing:-.01em}h2{font-size:1.5rem}h3{font-size:1.1rem;margin-top:1.2em}p{margin:0 0 .8em}.muted{color:var(--ink-2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{font:inherit;font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;min-height:44px;border-radius:999px;border:2px solid var(--ink);background:var(--surface);color:var(--ink);cursor:pointer;transition:background var(--ease),transform var(--ease),box-shadow var(--ease)}.btn:hover{background:#fff;transform:translateY(-1px)}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:#000}.btn.small{padding:6px 14px;min-height:38px;font-size:.85rem}.btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.55;cursor:default;transform:none}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:12px}.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;border:1px solid var(--line)}.card.small{padding:10px 16px}.hud-top{position:fixed;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}.hud-top>*{pointer-events:auto}.chip{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);font-weight:700}.chip .swatch{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:15px;background:var(--accent)}.hud-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}.volume{display:inline-flex;align-items:center;gap:8px;background:var(--surface);padding:4px 14px;border-radius:999px;box-shadow:var(--shadow);min-height:38px;font-size:.85rem;font-weight:700}.volume input{width:90px;accent-color:var(--ink)}.task-bar{position:fixed;left:50%;bottom:20px;transform:translate(-50%);display:flex;align-items:center;gap:16px;max-width:calc(100% - 32px);border-top:4px solid var(--accent)}.task-bar .timer{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-2);min-width:4ch}.room-controls{position:fixed;left:16px;top:76px;width:280px}.room-controls-inner{display:grid;gap:12px}.field{display:grid;gap:4px;font-size:.85rem;font-weight:700}.field span{display:flex;justify-content:space-between}.field select,.field input[type=range]{font:inherit;font-weight:400;accent-color:var(--ink)}.field select{padding:6px 8px;border-radius:10px;border:2px solid var(--line);background:#fff}.crosshair{position:fixed;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px #00000059;pointer-events:none;transition:transform var(--ease),background var(--ease)}.crosshair.active{transform:scale(1.8);background:#fff9}.hint{position:fixed;left:50%;bottom:112px;transform:translate(-50%);background:#2b2b2ed1;color:#fff;padding:6px 14px;border-radius:999px;font-size:.85rem;pointer-events:none;white-space:nowrap}.toast{position:fixed;left:50%;top:84px;transform:translate(-50%,-8px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;opacity:0;transition:opacity var(--ease),transform var(--ease);pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.caption{position:fixed;left:50%;bottom:156px;transform:translate(-50%);max-width:min(720px,90vw);background:#000000d9;color:#fff;padding:10px 18px;border-radius:10px;font-size:1.1rem;pointer-events:none}.fade{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);opacity:0;transition:opacity .4s ease;pointer-events:none}.fade.on{opacity:1}.modal-root:empty{display:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;background:#2b2b2e59;animation:fadein .2s ease;overflow-y:auto}.modal{width:min(600px,100%);max-height:calc(100vh - 32px);overflow-y:auto;border-top:6px solid var(--accent)}.modal .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}.modal .icon{font-size:2rem;line-height:1}.quote{border-left:4px solid var(--accent);padding:4px 0 4px 16px;margin:16px 0;font-size:1.05rem}.quote cite{display:block;font-style:normal;color:var(--ink-2);font-size:.9rem;margin-top:4px}.stat{background:var(--surface-2);border-radius:12px;padding:12px 16px;margin:12px 0}.stat small{display:block;color:var(--ink-2);margin-top:4px}.task{font-weight:700;font-size:1.1rem}.warning{display:flex;gap:10px;background:#fff4e0;border:2px solid #e69f00;border-radius:12px;padding:10px 14px;margin:12px 0;font-size:.95rem}.note{font-size:.9rem;color:var(--ink-2)}.compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.compare div{background:var(--surface-2);border-radius:12px;padding:14px;text-align:center}.compare b{display:block;font-size:2rem;font-variant-numeric:tabular-nums}.compare span{font-size:.85rem;color:var(--ink-2);font-weight:700}.start{width:min(640px,100%);text-align:left}.start .tagline{font-size:1.2rem;color:var(--ink-2)}.dots{display:flex;gap:8px;margin:16px 0 20px}.dots span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:18px}.controls-list{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.95rem;margin:12px 0}kbd{font-family:inherit;font-weight:700;font-size:.8rem;background:#fff;border:1px solid var(--line);border-bottom-width:3px;border-radius:6px;padding:1px 7px}.room-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.room-list button{width:100%;text-align:left;font:inherit;display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:#fff;cursor:pointer;transition:border-color var(--ease),transform var(--ease)}.room-list button:hover{border-color:var(--ink);transform:translate(2px)}.room-list .swatch{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none}.room-list small{display:block;color:var(--ink-2)}.room-list .done{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--ink-2)}.panel-root{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;pointer-events:none}.panel-root>*{pointer-events:auto}.reflection{width:min(680px,100%);max-height:calc(100vh - 140px);overflow-y:auto}.results{width:100%;border-collapse:collapse;margin:8px 0;font-size:.95rem}.results th,.results td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.results thead th{font-size:.8rem;color:var(--ink-2)}.results td{font-variant-numeric:tabular-nums}.results .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.actions{list-style:none;padding-left:0;margin:4px 0}.actions li{margin:6px 0;display:flex;gap:10px}.pledge-msg{font-weight:700;margin-top:8px;min-height:1.5em}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width: 720px){.room-controls{top:auto;bottom:90px;width:auto;right:16px}.hint{display:none}.volume input{width:60px}}.menu-card{width:min(760px,100%);max-height:calc(100vh - 230px);margin-bottom:70px;overflow-y:auto;border-top:6px solid var(--accent)}.menu-card .ask{font-size:1.05rem}.patience-row{display:flex;align-items:center;gap:12px;font-size:.85rem;font-weight:700;color:var(--ink-2);margin-bottom:12px}.patience{flex:1;height:12px;border-radius:999px;background:var(--line);overflow:hidden}.patience i{display:block;height:100%;background:var(--accent);transition:width .2s linear}.menu{border-radius:12px;padding:14px 18px;margin-bottom:12px}.menu-title{margin:0 0 8px}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:4px 20px}.menu-sec h4{margin:8px 0 4px}.menu-row{display:flex;justify-content:space-between;gap:8px}.menu .w{display:inline-block}.menu-card.hard .menu{background:repeating-linear-gradient(45deg,#e6dccb 0,#e6dccb 5px,#d9cdb8 5px,#d9cdb8 10px);color:#7a7266;font-family:Georgia,serif;font-style:italic;font-size:.8rem;letter-spacing:-.06em;line-height:1.1}.menu-card.hard .menu-sec h4{font-size:.85rem}.menu-card.hard .menu .w{transition:transform .25s ease}.menu-card.easy .menu{background:#fff8e7;color:var(--ink);font-size:1.1rem;letter-spacing:.05em;word-spacing:.2em;line-height:1.8}.menu-card.easy .menu-sec{border-top:2px solid var(--line);padding-top:4px}.menu-card.easy .menu-row{cursor:pointer;border-radius:6px;padding:0 6px}.menu-card.easy .menu-row:hover,.menu-card.easy .menu-row:focus-visible{background:#f0e6cc}.menu-card .price{font-variant-numeric:tabular-nums;font-weight:700}.pay-label{font-weight:700;margin:12px 0 0}.price-options{margin-top:8px}.sms-from{font-weight:700;margin:0}.sms{background:#e4eefb;border-radius:16px 16px 16px 4px;padding:10px 14px;margin:0}.order-ticket{background:var(--surface-2);border-radius:12px;padding:10px 14px;margin:0}.form-card{width:min(860px,100%);max-height:calc(100vh - 230px);margin-bottom:70px;overflow-y:auto;display:grid;grid-template-columns:1fr 1.4fr;gap:24px;border-top:6px solid var(--accent)}@media (max-width: 720px){.form-card{grid-template-columns:1fr}}.instr{background:#fffbe8;border:1px solid var(--line);border-radius:12px;padding:14px 18px;align-self:start;transform:rotate(-1deg)}.instr h3{margin-top:0}.instr dl{margin:0}.instr dt{font-size:.8rem;font-weight:700;color:var(--ink-2)}.instr dd{margin:0 0 10px;font-weight:700}.form-card label{display:grid;gap:4px;font-weight:700;font-size:.9rem;margin-bottom:10px}.form-card input[type=text]{font:inherit;font-weight:400;padding:8px 10px;border-radius:10px;border:2px solid var(--line);background:#fff}.form-card input[aria-invalid=true]{border-color:#b03a00}.form-card label.next input{border-color:var(--accent);box-shadow:0 0 0 3px #d55e0033}.form-card .guide{background:var(--surface-2);border-radius:12px;padding:10px 14px;font-size:.95rem}.form-card.calm .instr{transform:none}.form-err{color:#b03a00;font-weight:700;min-height:1.5em;margin:0}.panel-root>.edge-shadow{position:fixed;width:34vmin;height:70vmin;border-radius:50%;background:radial-gradient(closest-side,rgba(25,25,30,.5),transparent);filter:blur(12px);opacity:0;transition:opacity 2s ease;pointer-events:none}.edge-shadow.on{opacity:1}@media (prefers-reduced-motion: reduce){.menu-card.hard .menu .w{transition:none}}.vision-overlay{position:fixed;pointer-events:none;opacity:0;z-index:3}.vision-spider{width:56px;height:56px;margin:-28px 0 0 -28px}.vision-spider .l0{animation:leg .16s ease-in-out infinite alternate;transform-origin:center}.vision-spider .l1{animation:leg .16s ease-in-out infinite alternate-reverse;transform-origin:center}.vision-cat{width:150px;height:94px;bottom:6px}.vision-cat .l0{animation:catleg .38s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:top}.vision-cat .l1{animation:catleg .38s ease-in-out infinite alternate-reverse;transform-box:fill-box;transform-origin:top}@keyframes leg{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@keyframes catleg{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}.btn kbd{color:inherit;background:#ffffff26;border-color:#ffffff73;margin-left:4px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-head h2,.panel-head .ask{margin:0 0 12px}.panel-head .btn{flex:none}.btn:not(.primary) kbd{background:var(--surface-2)}.stat-label{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:2px}
