:root{color-scheme:dark;--ink: #18211f;--ink-2: #24312d;--paper: #efe5ce;--paper-2: #d8c7a5;--sage: #9eb6a5;--mint: #b8f0c8;--amber: #f2b84b;--rust: #d45d3f;--line: rgba(239, 229, 206, .18);--glass: rgba(19, 28, 25, .86);--shadow: 0 18px 54px rgba(0, 0, 0, .35);font-family:Avenir Next,Segoe UI,ui-sans-serif,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#111a17}body{color:var(--paper)}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid var(--mint);outline-offset:3px}[hidden]{display:none!important}#app{position:relative;width:100%;height:100%;min-height:520px;isolation:isolate}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.vignette,.grain{position:absolute;inset:0;pointer-events:none}.vignette{z-index:1;background:radial-gradient(circle at 52% 44%,transparent 30%,rgba(5,9,8,.14) 62%,rgba(5,9,8,.76) 120%)}.grain{z-index:2;opacity:.12;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.025) 3px 4px);mix-blend-mode:soft-light}.topbar{position:absolute;z-index:8;top:0;left:0;right:0;min-height:68px;display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(230px,1fr);align-items:center;gap:20px;padding:13px clamp(18px,3vw,48px);border-bottom:1px solid rgba(239,229,206,.14);background:linear-gradient(180deg,#0c1210e6,#0c121052);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:12px;letter-spacing:.08em}.brand strong{display:block;font-size:13px;font-weight:780}.brand small{display:block;margin-top:3px;color:var(--sage);font-size:8px;letter-spacing:.19em}.brand-fold{position:relative;width:28px;height:30px;border:1px solid var(--amber);transform:rotate(-9deg) skewY(18deg);box-shadow:inset -8px 0 #f2b84b26}.brand-fold:after{content:"";position:absolute;left:50%;top:-1px;bottom:-1px;border-left:1px dashed var(--paper);opacity:.7}.top-actions{justify-self:end;display:flex;gap:8px}.ink-button,.text-button{border:1px solid var(--line);background:#efe5ce0d;padding:9px 12px;font-size:9px;font-weight:720;letter-spacing:.12em;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.ink-button:hover,.text-button:hover{background:#b8f0c81f;border-color:#b8f0c880}.ink-button:active,.text-button:active{transform:translateY(1px)}.route-stamps{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;min-width:80px}.route-stamp{min-width:34px;padding:5px 6px 4px;border:1px solid currentColor;color:var(--amber);font:700 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-align:center;transform:rotate(-2deg);opacity:.8}.route-stamp.failed{color:var(--rust);border-style:dashed;transform:rotate(2deg);opacity:.65}.commission{position:absolute;z-index:6;top:96px;left:clamp(18px,3vw,48px);width:min(306px,calc(100vw - 36px));padding:18px 20px 16px;background:linear-gradient(135deg,#18211fe6,#18211f8f);border:1px solid rgba(239,229,206,.14);border-left:2px solid var(--amber);box-shadow:0 16px 42px #00000038;backdrop-filter:blur(8px)}.commission-index{display:flex;align-items:center;gap:8px;color:var(--amber);font:700 9px/1 ui-monospace,monospace;letter-spacing:.14em}.commission-index i{width:42px;border-top:1px solid rgba(242,184,75,.42)}.commission-index span:last-child{color:var(--sage)}.eyebrow{margin:0 0 8px;color:var(--sage);font-size:8px;font-weight:760;letter-spacing:.18em;line-height:1.5;text-transform:uppercase}.commission h1{margin:6px 0 8px;color:var(--paper);font:650 clamp(25px,3vw,37px)/.98 Georgia,serif;letter-spacing:-.03em}.commission>p:not(.eyebrow):not(.stock-copy){margin:0;color:#c4c8b9;font-size:11px;line-height:1.6}.obstacle-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}.obstacle-tag{padding:5px 7px;border:1px solid rgba(242,184,75,.32);color:#f5ca7c;font-size:7px;font-weight:800;letter-spacing:.12em}.commission-data{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:17px;background:var(--line);border:1px solid var(--line)}.commission-data div{padding:9px 8px 8px;background:#0a100eb8}.commission-data span{display:block;color:var(--sage);font-size:6px;letter-spacing:.14em}.commission-data strong{display:block;margin-top:4px;color:var(--paper);font:650 10px/1.1 ui-monospace,monospace}.stock-rule{height:3px;margin-top:15px;background:#efe5ce1a}.stock-rule i{display:block;width:100%;height:100%;background:repeating-linear-gradient(90deg,var(--amber) 0 13px,transparent 13px 16px);transition:width .18s ease}.stock-copy{margin:7px 0 0!important;color:#829087!important;font-size:8px!important}.status-strip{position:absolute;z-index:6;top:100px;right:clamp(18px,3vw,48px);display:flex;align-items:center;gap:9px;min-height:32px;padding:7px 10px;border:1px solid var(--line);background:#111a17bd;color:#bdc7b9;font:650 8px/1 ui-monospace,monospace;letter-spacing:.1em;backdrop-filter:blur(9px)}.status-lamp{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 12px #b8f0c88c}.status-strip.running .status-lamp{background:var(--amber);box-shadow:0 0 12px #f2b84bb3;animation:lamp-pulse .8s ease-in-out infinite alternate}.status-strip.failed .status-lamp{background:var(--rust);box-shadow:0 0 12px #d45d3fb3}.status-strip b{padding-left:9px;border-left:1px solid var(--line);color:var(--amber);font-size:8px}@keyframes lamp-pulse{to{opacity:.35}}.crease-console{position:absolute;z-index:7;left:50%;bottom:22px;width:min(880px,calc(100vw - 36px));transform:translate(-50%);padding:13px 15px 11px;background:linear-gradient(160deg,#131d19f0,#0c1311cc);border:1px solid rgba(239,229,206,.2);border-top-color:#b8f0c88f;box-shadow:0 16px 44px #00000047;backdrop-filter:blur(11px)}.console-head{display:flex;align-items:center;justify-content:space-between;padding:0 3px 9px}.console-head strong{font:650 13px/1 Georgia,serif}.console-head .eyebrow{margin-bottom:3px}.angle-readout{display:flex;align-items:baseline;gap:7px}.angle-readout span{color:var(--amber);font:700 22px/1 ui-monospace,monospace}.angle-readout small{color:var(--sage);font-size:7px;letter-spacing:.13em}.hinge-row{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.hinge-card{position:relative;min-width:0;padding:9px 8px 8px;border:1px solid var(--line);background:#efe5ce09;text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,transform .14s ease}.hinge-card:hover{background:#b8f0c812}.hinge-card.selected{border-color:var(--amber);background:#f2b84b17;transform:translateY(-2px)}.hinge-card:before{content:"";position:absolute;left:8px;right:8px;top:4px;border-top:1px solid rgba(158,182,165,.2);transform:rotate(var(--tilt, 0deg));transform-origin:center}.hinge-card span{display:block;color:var(--sage);font-size:7px;font-weight:750;letter-spacing:.13em}.hinge-card strong{display:block;margin-top:5px;font:700 clamp(15px,2.2vw,21px)/1 ui-monospace,monospace}.hinge-card small{display:block;margin-top:5px;color:#76847a;font-size:6px;letter-spacing:.1em}.console-actions{display:grid;grid-template-columns:1fr 235px;gap:10px;margin-top:9px}.angle-buttons{display:flex;gap:6px}.angle-buttons button{flex:1;border:1px solid var(--line);background:#efe5ce0a;font-size:8px;font-weight:760;letter-spacing:.08em;cursor:pointer}.angle-buttons button:hover{border-color:var(--sage);background:#9eb6a51a}.release-button,.primary-button{border:1px solid var(--mint);background:var(--mint);color:#17231c;font-weight:820;letter-spacing:.1em;cursor:pointer;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.release-button{display:flex;align-items:center;justify-content:space-between;padding:0 13px;font-size:9px}.release-button b{padding-left:12px;border-left:1px solid rgba(23,35,28,.25);font-size:7px}.release-button:hover,.primary-button:hover{background:#d6ffe1;box-shadow:0 0 25px #b8f0c833}.release-button:active,.primary-button:active{transform:translateY(1px)}.release-button:disabled{opacity:.38;cursor:default}.legend{display:flex;flex-wrap:wrap;gap:15px;padding:9px 2px 0;color:#78877c;font-size:7px;letter-spacing:.06em}.legend span,.help-keys span{display:flex;align-items:center;gap:4px}kbd{min-width:18px;padding:3px 4px;border:1px solid rgba(239,229,206,.2);border-bottom-color:#efe5ce61;background:#efe5ce0d;color:#c7cfc2;font:700 7px/1 ui-monospace,monospace;text-align:center}.screen{position:absolute;z-index:20;inset:0;display:grid;place-items:center start;padding:86px 6vw 178px;background:linear-gradient(90deg,#070c0ae6,#070c0a80 45%,#070c0a1f 78%);backdrop-filter:blur(2px)}.start-screen{background:radial-gradient(circle at 68% 45%,#26372f52,#070c0ab8 74%)}.screen-card{position:relative;width:min(510px,46vw);max-height:calc(100dvh - 40px);overflow-y:auto;padding:clamp(27px,4vw,46px);border:1px solid rgba(239,229,206,.26);border-top-color:#f2b84bad;background:linear-gradient(145deg,#1d2a24f0,#0f1714e6);box-shadow:0 28px 90px #0000006b}.screen-card:before,.screen-card:after{content:"";position:absolute;width:20px;height:20px;border-color:var(--amber);opacity:.7}.screen-card:before{left:8px;top:8px;border-left:1px solid;border-top:1px solid}.screen-card:after{right:8px;bottom:8px;border-right:1px solid;border-bottom:1px solid}.ticket-number{position:absolute;top:14px;right:16px;color:var(--amber);font:700 8px/1 ui-monospace,monospace;letter-spacing:.13em}.screen-card h2{margin:8px 0 17px;color:var(--paper);font:600 clamp(34px,5vw,56px)/.98 Georgia,serif;letter-spacing:-.045em}.screen-card h2 em{color:var(--amber);font-weight:inherit}.screen-card>p:not(.eyebrow):not(.small-note){margin:0;color:#bcc6b8;font-size:12px;line-height:1.7}.primary-button{min-height:48px;margin-top:24px;padding:0 19px;font-size:9px}.primary-button span{margin-left:18px;font-size:16px}.text-button{width:100%;margin-top:8px;background:transparent}.small-note{margin:12px 0 0!important;color:#728078!important;font-size:8px!important;line-height:1.5!important}.brief-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:24px;background:var(--line);border:1px solid var(--line)}.brief-grid span{padding:12px 8px;background:#efe5ce06;color:#87958a;font-size:7px;letter-spacing:.1em}.brief-grid b{display:block;margin-bottom:6px;color:var(--amber);font:700 13px/1 ui-monospace,monospace}.compact-card{max-width:470px;text-align:center}.compact-card h2{font-size:clamp(32px,5vw,48px)}.compact-card .primary-button{width:100%}.result-seal{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border:2px double var(--rust);color:var(--rust);font:800 10px/1 ui-monospace,monospace;letter-spacing:.08em;transform:rotate(-4deg)}.result-seal.success{border-color:var(--mint);color:var(--mint)}.result-code{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:12px;border:1px dashed rgba(239,229,206,.23);background:#00000024}.result-code span{color:var(--sage);font-size:7px;letter-spacing:.12em}.result-code strong{color:var(--amber);font:700 11px/1 ui-monospace,monospace}.end-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:22px;background:var(--line);border:1px solid var(--line)}.end-stats div{padding:12px 7px;background:#00000024}.end-stats span{display:block;color:var(--sage);font-size:6px;letter-spacing:.12em}.end-stats strong{display:block;margin-top:5px;color:var(--amber);font:700 15px/1 ui-monospace,monospace}.help-card{position:absolute;z-index:30;top:92px;right:clamp(18px,3vw,48px);width:min(390px,calc(100vw - 36px));max-height:calc(100dvh - 112px);overflow:auto;padding:25px;border:1px solid rgba(239,229,206,.28);background:#101916fa;box-shadow:var(--shadow)}.help-card h2{margin:6px 0 12px;font:600 30px/1 Georgia,serif}.help-card p{color:#b5c0b2;font-size:10px;line-height:1.65}.help-card p b{color:var(--paper)}.help-close{position:absolute;top:8px;right:8px;width:30px;height:30px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:20px}.help-keys{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px;color:#829086;font-size:7px}.toast{position:absolute;z-index:25;left:50%;top:92px;transform:translate(-50%);max-width:min(440px,calc(100vw - 36px));padding:10px 14px;border:1px solid rgba(242,184,75,.4);background:#141d19f2;color:#f1d18c;font-size:9px;letter-spacing:.08em;text-align:center;box-shadow:var(--shadow)}.touch-controls{display:none}@media(min-width:821px){.screen-card{animation:ledger-in .38s cubic-bezier(.16,1,.3,1) both}@keyframes ledger-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}}@media(max-width:820px){.screen{place-items:center;background:#070c0ab8;backdrop-filter:blur(6px)}.screen-card{width:min(560px,100%)}.topbar{grid-template-columns:1fr auto;min-height:66px;padding:12px 16px}.route-stamps{display:none}.top-actions .ink-button:nth-child(2){display:none}.commission{top:78px;left:14px;width:min(292px,calc(100vw - 28px));padding:14px 15px 13px}.commission h1{font-size:27px}.commission>p:not(.eyebrow):not(.stock-copy){display:none}.commission-data{margin-top:11px}.stock-rule,.stock-copy{display:none}.status-strip{top:auto;bottom:188px;right:14px}.crease-console{bottom:12px;width:calc(100vw - 24px);padding:10px}.console-actions{grid-template-columns:1fr}.angle-buttons button{min-height:34px}.release-button{min-height:42px}.legend{display:none}.screen{padding:72px 14px 184px}.screen-card{max-height:calc(100dvh - 28px);padding:27px 22px}.screen-card h2{font-size:36px}.help-card{top:74px;right:14px;max-height:calc(100dvh - 88px)}.touch-controls{position:absolute;z-index:8;left:14px;right:14px;bottom:210px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}.touch-select,.touch-adjust{display:flex;align-items:center;gap:5px;padding:4px;border:1px solid var(--line);background:#111a17db;pointer-events:auto;backdrop-filter:blur(8px)}.touch-select span{min-width:48px;color:var(--amber);font:700 7px/1 ui-monospace,monospace;text-align:center}.touch-controls button{min-width:42px;height:42px;border:1px solid var(--line);background:#efe5ce0f;font-size:9px;font-weight:760}.touch-adjust button{min-width:50px}}@media(max-width:520px){#app{min-height:480px}.brand small{display:none}.brand strong{font-size:10px}.brand-fold{width:22px;height:25px}.top-actions{gap:4px}.top-actions .ink-button{padding:8px 7px;font-size:7px}.commission{width:calc(100vw - 28px)}.commission-index{font-size:7px}.obstacle-tag{font-size:6px}.commission-data strong{font-size:8px}.status-strip{display:none}.hinge-row{gap:4px}.hinge-card{padding:8px 5px 7px}.hinge-card span{font-size:6px}.hinge-card strong{font-size:14px}.hinge-card small{display:none}.angle-readout span{font-size:18px}.console-head strong{font-size:11px}.brief-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.brief-grid span{display:block;padding:10px 5px;text-align:center}.brief-grid b{margin-bottom:5px}.end-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.end-stats div{padding:10px 5px;text-align:center}.end-stats strong{margin-top:5px}}@media(max-height:650px){#app{min-height:0}.topbar{min-height:60px;padding-top:10px;padding-bottom:10px}.commission{top:72px;padding:13px 15px}.commission>p:not(.eyebrow):not(.stock-copy),.stock-rule,.stock-copy{display:none}.commission h1{margin-bottom:9px;font-size:25px}.commission-data{margin-top:9px}.screen{padding:68px 16px 152px}.screen-card{max-height:calc(100vh - 220px);overflow-y:auto;padding:25px 30px}.screen-card h2{font-size:36px}.screen-card>p:not(.eyebrow):not(.small-note){font-size:10px}.primary-button{min-height:42px;margin-top:16px}.crease-console{bottom:9px}}@media(max-width:820px)and (max-height:600px){.topbar{min-height:56px}.commission{display:none}.crease-console{bottom:7px}.touch-controls{bottom:194px}.screen{padding:62px 12px 174px}.screen-card{max-height:calc(100vh - 236px);padding:22px}.screen-card h2{margin-bottom:12px;font-size:30px}.brief-grid{margin-top:14px}.help-card{top:64px;max-height:calc(100vh - 76px);overflow-y:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
