:root{--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--ink:#3b2f2a;--paper:#fff8ec;--paper2:#f6ead6;--accent:#ff8a5c;--accent2:#ffc36b;--font:"Nunito", ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, -apple-system, sans-serif}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:none;background:#0e1320;margin:0;overflow:hidden}#game{touch-action:none;outline:none;width:100vw;height:100vh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;z-index:10;position:fixed;top:0;bottom:0;left:0;right:0}#ui button{font-family:var(--font)}.hidden{display:none!important}.hud{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.hud-btn{pointer-events:auto;-webkit-backdrop-filter:blur(6px);cursor:pointer;background:#1e243a8c;border:0;border-radius:16px;place-items:center;width:52px;height:52px;display:grid;position:absolute;box-shadow:0 4px 14px #0003}.hud-btn:active{transform:scale(.94)}.hud-menu{top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r))}.hud-hint{top:calc(12px + var(--safe-t));right:calc(74px + var(--safe-r));background:#fff8eccc}.hud-hint .ico{width:26px;height:26px}.inventory{pointer-events:auto;bottom:calc(14px + var(--safe-b));scrollbar-width:none;background:#fff8ecd1;border-radius:22px;gap:8px;max-width:calc(100vw - 280px);padding:8px;display:flex;position:absolute;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 6px 20px #0000002e}.inventory.empty{display:none}.inv-slot{background:var(--paper2);cursor:pointer;border:2px solid #0000;border-radius:16px;flex:none;place-items:center;width:56px;height:56px;transition:transform .15s,border-color .15s,background .15s;display:grid}.inv-slot.sel{border-color:var(--accent);background:#ffe3cc;transform:translateY(-6px)}.item-flash{filter:drop-shadow(0 6px 18px #ffdc8ccc);animation:1.4s forwards itemflash;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes itemflash{0%{opacity:0;transform:translate(-50%,-30%)scale(.5)}25%{opacity:1;transform:translate(-50%,-60%)scale(1.25)}70%{opacity:1;transform:translate(-50%,-60%)scale(1)}to{opacity:0;transform:translate(-50%,180%)scale(.4)}}.joy-zone,.touch-action{display:none}body.touch-ui .joy-zone{display:block}body.touch-ui .touch-action{display:grid}.joy-zone{pointer-events:auto;touch-action:none;width:46vw;max-width:300px;height:44vh;max-height:320px;position:absolute;bottom:0;left:0}.joy-base{left:calc(84px + var(--safe-l));top:calc(100% - 96px - var(--safe-b));opacity:.75;background:#fff8ec38;border:2px solid #fff8ec80;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;transition:opacity .2s;position:absolute}.joy-base.active{opacity:1}.joy-knob{background:#fff8eceb;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #00000040}.touch-action{pointer-events:auto;right:calc(22px + var(--safe-r));bottom:calc(26px + var(--safe-b));touch-action:none;background:#fff8eceb;border:0;border-radius:50%;place-items:center;width:84px;height:84px;position:absolute;box-shadow:0 6px 18px #00000040}.touch-action.dim{opacity:.45}.touch-action:active{transform:scale(.93)}body.touch-ui .inventory{bottom:calc(18px + var(--safe-b));max-width:calc(100vw - 300px)}@media (max-width:520px){body.touch-ui .inventory{bottom:calc(170px + var(--safe-b));z-index:1;max-width:calc(100vw - 32px)}.hud-hint{top:calc(74px + var(--safe-t));right:calc(12px + var(--safe-r))}}.layer-world{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.bubble{opacity:0;will-change:transform;transition:opacity .25s;position:absolute;top:0;left:0}.bubble.show{opacity:1}.bubble.hide{opacity:0!important}.bubble .b-in{background:var(--paper);white-space:nowrap;border-radius:22px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;animation:.35s cubic-bezier(.3,1.6,.5,1) pop;display:flex;position:relative;box-shadow:0 6px 18px #14142840}.bubble .b-in:after{content:"";border:9px solid #0000;border-bottom:0;border-top-color:var(--paper);margin-left:-9px;position:absolute;bottom:-9px;left:50%}.bubble.think .b-in{background:#f2f6ff;border-radius:26px}.bubble.think .b-in:after{background:#f2f6ff;border:0;border-radius:50%;width:12px;height:12px;margin-left:-6px;bottom:-16px;box-shadow:-10px 12px 0 -3px #f2f6ff}.bubble .say{color:var(--ink);letter-spacing:.02em;font-size:20px;font-weight:800}.bubble .ico{width:40px;height:40px}.tok{display:inline-grid;position:relative}.tok.crossed>.ico:last-child{position:absolute;top:0;bottom:0;left:0;right:0}@keyframes pop{0%{transform:scale(.4)}to{transform:scale(1)}}.marker{pointer-events:auto;cursor:pointer;box-sizing:border-box;opacity:.7;will-change:transform;background:#fff8ece6;border:2.5px solid #3b2f2a8c;border-radius:50%;place-items:center;width:48px;height:48px;transition:opacity .25s,background .2s;display:grid;position:absolute;top:0;left:0;box-shadow:0 3px 10px #14142859,0 0 0 3px #ffffff59}.marker .ico{width:28px;height:28px}.marker.near{opacity:1;background:#fff;animation:1.2s ease-in-out infinite bob}.marker.off{opacity:0;pointer-events:none}@keyframes bob{50%{margin-top:-6px}}.fade{opacity:1;pointer-events:auto;background:#0b0f1a;position:absolute;top:0;bottom:0;left:0;right:0}.letterbox>div{background:#07090f;height:0;transition:height .6s;position:absolute;left:0;right:0}.letterbox>div:first-child{top:0}.letterbox>div:last-child{bottom:0}.letterbox.on>div{height:7vh}.toast{left:50%;bottom:calc(110px + var(--safe-b));opacity:0;color:#fff;text-align:center;background:#141828d9;border-radius:14px;max-width:86vw;padding:10px 18px;font-weight:700;transition:all .3s;position:absolute;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.loading{right:calc(20px + var(--safe-r));bottom:calc(20px + var(--safe-b));color:#fff;align-items:center;gap:10px;font-weight:700;display:none;position:absolute}.loading.on{display:flex}.spin{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:28px;height:28px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal{pointer-events:auto;padding:calc(40px + var(--safe-t)) 16px calc(16px + var(--safe-b));box-sizing:border-box;background:#0a0e1a73;justify-content:center;align-items:center;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.modal.on{display:flex}.modal.title-mode{padding:calc(56px + var(--safe-t)) 16px calc(6vh + var(--safe-b));background:linear-gradient(#0a0e1a2e 0%,#0a0e1a00 30% 60%,#0a0e1a66 100%);align-items:stretch}.modal.title-mode .title-panel{flex-direction:column;justify-content:space-between;width:100%;max-width:none;padding:0;display:flex}.panel{background:var(--paper);box-sizing:border-box;border-radius:28px;min-width:min(360px,88vw);max-width:min(560px,92vw);max-height:100%;padding:24px 26px;animation:.3s cubic-bezier(.3,1.4,.5,1) pop;overflow-y:auto;box-shadow:0 20px 60px #00000059}.panel h2{text-align:center;margin:0 0 16px;font-size:26px;font-weight:900}.panel h3{margin:16px 0 8px;font-size:18px}.title-panel{box-shadow:none;text-align:center;background:0 0;min-width:0}.game-title{overflow-wrap:anywhere;color:#fff8ec;text-shadow:0 4px #c0603f,0 10px 30px #00000059;letter-spacing:.01em;margin:0;padding:0 12px;font-size:clamp(34px,10vw,84px);font-weight:900;line-height:1}.subtitle{color:#fff;text-shadow:0 2px 10px #00000080;margin:10px 0 26px;font-size:18px;font-weight:700}.col{flex-direction:column;align-items:stretch;gap:12px;min-width:min(300px,80vw);margin:0 auto;display:flex}.row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.btn{background:var(--paper2);min-height:52px;color:var(--ink);cursor:pointer;border:0;border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:10px 22px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:0 3px #0000001f}.btn:active{box-shadow:none;transform:translateY(2px)}.btn.primary{color:#fff;text-shadow:0 1px #00000026;background:linear-gradient(#ffb07a,#ff8358)}.btn.share{color:#fff;background:linear-gradient(#8fd0ff,#5aa8ea)}.btn.dev{color:#9fffa8;background:#2b2b3a}.btn:disabled{opacity:.5;cursor:default}.btn .ico{flex:none;width:26px;height:26px}.msg{text-align:center;font-size:18px;font-weight:700}.set-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;display:flex}.set-label{font-size:17px;font-weight:800}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg-b{background:var(--paper2);min-height:44px;color:var(--ink);cursor:pointer;border:2px solid #0000;border-radius:14px;padding:8px 14px;font-size:15px;font-weight:800}.seg-b.on{border-color:var(--accent);background:#ffe3cc}.slider{width:min(240px,60vw);accent-color:var(--accent);height:32px}.controls-help{opacity:.8;white-space:pre-line;margin:16px 0;font-size:14px;line-height:1.5}.touch-only{display:none}body.touch-ui .touch-only{display:block}body.touch-ui .desk-only{display:none}.res-table,.board-table{border-collapse:collapse;width:100%;font-size:17px}.res-table td,.board-table td{border-bottom:1px solid #3b2f2a1f;padding:8px 6px}.res-table td.v,.board-table td.v{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.board-table td.rk{opacity:.6;width:28px}.board-table tr.me td{background:#ffe3cc}.share-media{justify-content:center;margin:4px 0 12px;display:flex}.share-media video,.share-media img{background:#000;border-radius:14px;max-width:100%;max-height:38vh}.share-text{white-space:pre-wrap;background:var(--paper2);-webkit-user-select:text;user-select:text;border-radius:10px;max-height:18vh;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:12px;overflow:auto}.share-status{text-align:center;min-height:22px;margin-top:8px;font-weight:700}.share-status a{color:#2b6fb8}.chapter-card{text-align:center;color:#fff8ec;opacity:0;text-shadow:0 3px 16px #0000008c;transition:opacity .9s,transform .9s;position:absolute;top:34%;left:0;right:0;transform:translateY(12px)}.chapter-card.show{opacity:1;transform:none}.ch-num{letter-spacing:.3em;text-transform:uppercase;opacity:.85;font-size:18px;font-weight:800}.ch-name{margin-top:6px;font-size:clamp(30px,7vw,56px);font-weight:900}.show-card{opacity:0;pointer-events:auto;background:#0a0e1a66;place-items:center;transition:opacity .3s;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.show-card.show{opacity:1}.show-card .card-in{background:#f3e6c8;border-radius:20px;align-items:center;gap:14px;padding:26px 30px;display:flex;transform:rotate(-2deg);box-shadow:0 20px 60px #0006,inset 0 0 0 6px #e2cfa4}.show-card.big .ico{width:88px;height:88px}.credits{opacity:0;color:#fff8ec;text-align:center;background:#080a1499;transition:opacity .8s;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.credits.show{opacity:1}.credits.hide{opacity:0}.cr-in{padding:0 16px;animation:linear forwards roll;position:absolute;top:62%;left:0;right:0}.cr-h{letter-spacing:.25em;text-transform:uppercase;opacity:.7;margin-top:42px;font-size:15px;font-weight:800}.cr-l{margin-top:8px;font-size:24px;font-weight:800}@keyframes roll{to{transform:translateY(calc(-100% - 62vh))}}.sandbox-tag{left:calc(12px + var(--safe-l));top:calc(12px + var(--safe-t));color:#1a1a1a;letter-spacing:.08em;text-transform:uppercase;background:#ffcf3a;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:900;position:absolute}.dev-stats{left:calc(12px + var(--safe-l));top:calc(46px + var(--safe-t));color:#9fffa8;white-space:pre;background:#0009;border-radius:8px;padding:6px 8px;font:12px/1.35 ui-monospace,Menlo,monospace;position:absolute}.dev-console{left:50%;bottom:calc(120px + var(--safe-b));pointer-events:auto;background:#0a0a10e6;border-radius:12px;width:min(520px,92vw);padding:8px;position:absolute;transform:translate(-50%)}.dev-console input{box-sizing:border-box;color:#9fffa8;-webkit-user-select:text;user-select:text;background:#000;border:1px solid #333;border-radius:8px;width:100%;padding:10px;font:14px ui-monospace,Menlo,monospace}.dev-console .log{color:#cfd;white-space:pre-wrap;max-height:30vh;margin-bottom:6px;font:12px ui-monospace,Menlo,monospace;overflow:auto}.hud-rec{top:calc(12px + var(--safe-t));right:calc(136px + var(--safe-r));background:#fff8eccc}.hud-rec .ico{width:30px;height:30px}.hud-rec.recording{display:none}@media (max-width:520px){.hud-rec{top:calc(136px + var(--safe-t));right:calc(12px + var(--safe-r))}}.rec-pill{pointer-events:auto;top:calc(12px + var(--safe-t));right:calc(136px + var(--safe-r));color:#fff;font-variant-numeric:tabular-nums;background:#141620c7;border-radius:18px;align-items:center;gap:10px;padding:6px 6px 6px 14px;font-weight:800;display:flex;position:absolute;box-shadow:0 4px 14px #00000040}@media (max-width:520px){.rec-pill{top:calc(136px + var(--safe-t));right:calc(12px + var(--safe-r))}}.rec-dot{background:#ff4a3d;border-radius:50%;width:12px;height:12px;animation:1s steps(2,end) infinite recblink}@keyframes recblink{50%{opacity:.25}}.rec-stop{color:#fff;background:#ff5a4a;min-height:44px;padding:6px 16px;font-size:16px}.share-meta,.share-where{text-align:center;opacity:.75;margin:4px 0;font-size:14px}.share-input{box-sizing:border-box;width:100%;color:var(--ink);font:600 16px/1.35 var(--font);resize:none;-webkit-user-select:text;user-select:text;background:#fff;border:2px solid #3b2f2a2e;border-radius:12px;margin-top:10px;padding:10px 12px}.share-input:focus{border-color:var(--accent);outline:none}.hud-rec{overflow:visible}.rec-ring{pointer-events:none;opacity:0;width:calc(100% + 8px);height:calc(100% + 8px);transition:opacity .25s;position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px;transform:rotate(-90deg)}.hud-rec.uploading .rec-ring{opacity:1}.hud-rec.uploading{opacity:1;cursor:default}.hud-rec.uploading .ico{opacity:.55;animation:1.2s ease-in-out infinite recpulse}@keyframes recpulse{50%{transform:scale(.85)}}.rr-bg{fill:none;stroke:#ffffff59;stroke-width:4px}.rr-fg{fill:none;stroke:#ff8358;stroke-width:4.5px;stroke-linecap:round;transition:stroke-dashoffset .2s linear}.toast.link{pointer-events:auto}.toast.link a{color:#ffd08a;text-decoration:underline}
