:root{--ink: #090d0f;--panel: rgba(12, 18, 20, .9);--panel-solid: #101719;--line: rgba(220, 238, 232, .2);--paper: #e8eee8;--muted: #8e9a96;--orange: #f26a2e;--orange-hot: #ff9a3d;--acid: #d9ff43;--cyan: #68d7d3;--danger: #ff3f43;--shadow: rgba(0, 0, 0, .5);--edge: max(14px, env(safe-area-inset-left));font-family:Bahnschrift,Arial Narrow,Roboto Condensed,Arial,sans-serif;color:var(--paper);background:var(--ink);font-synthesis:none;letter-spacing:0}*{box-sizing:border-box;letter-spacing:0}html,body,#game-shell{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--ink)}body{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--acid);outline-offset:3px}#game-shell{position:relative;isolation:isolate}#game-shell:after{position:absolute;inset:0;z-index:4;pointer-events:none;content:"";opacity:.09;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.1) 4px);mix-blend-mode:overlay}#viewport,#viewport canvas{position:absolute;inset:0;width:100%;height:100%}#viewport canvas{display:block;cursor:crosshair;touch-action:none}.boot{position:absolute;inset:0;z-index:30;display:grid;place-content:center;justify-items:center;background:#0b1113 url(/assets/chainfall-key-art.webp) center / cover no-repeat;transition:opacity .3s ease,visibility .3s ease}.boot:before{position:absolute;inset:0;content:"";background:#0508098a}.boot>*{position:relative;z-index:1;text-shadow:0 3px 18px #000}.boot.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.boot-mark{display:flex;align-items:end;gap:5px;height:42px;margin-bottom:18px}.boot-mark i{display:block;width:10px;height:100%;background:var(--orange);transform:skew(-16deg);animation:boot-pulse .8s ease-in-out infinite alternate}.boot-mark i:nth-child(2){height:72%;animation-delay:.12s}.boot-mark i:nth-child(3){height:45%;background:var(--acid);animation-delay:.24s}.boot-kicker,.boot p,.boot h1{margin:0}.boot-kicker{color:var(--orange);font-size:12px;font-weight:800}.boot h1{font-size:clamp(42px,9vw,96px);line-height:.88;font-weight:950}#boot-status{margin-top:16px;color:var(--muted);font-size:13px}.hud{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:1;transition:opacity .2s ease}.hud.is-hidden{opacity:0}.brand-lockup{position:absolute;top:max(14px,env(safe-area-inset-top));left:var(--edge);display:grid;line-height:.88;text-shadow:0 2px 12px #000}.brand-lockup span{color:var(--orange);font-size:10px;font-weight:900}.brand-lockup strong{font-size:26px;font-weight:950}.objective{position:absolute;top:max(68px,calc(env(safe-area-inset-top) + 62px));left:var(--edge);width:min(286px,calc(100vw - 2 * var(--edge)));padding:11px 13px 10px;overflow:hidden;border-left:3px solid var(--orange);background:linear-gradient(105deg,#080d0ff0,#0d1416b8);box-shadow:0 12px 35px var(--shadow);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.eyebrow,.objective-progress,.status-strip,.charge>div:first-child,.drawer-head,.result-stats,.result-actions{display:flex;align-items:center;justify-content:space-between}.eyebrow{margin-bottom:4px;color:var(--orange-hot);font-size:9px;font-weight:800}.eyebrow b{color:var(--muted)}.objective>strong{display:block;max-width:100%;overflow:hidden;color:var(--paper);font-size:19px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.objective-progress{gap:12px;margin-top:7px;color:var(--muted);font-size:11px}.objective-progress b{flex:0 0 auto;color:var(--acid)}.progress-track,.charge-track{position:relative;width:100%;overflow:hidden;background:#ffffff1c}.progress-track{height:3px;margin-top:7px}.progress-track i,.charge-track i{display:block;width:0;height:100%;background:var(--acid);transition:width .18s ease}.status-strip{position:absolute;top:max(14px,env(safe-area-inset-top));right:var(--edge);gap:1px;overflow:hidden;border:1px solid var(--line);border-top:2px solid var(--orange);border-radius:2px;background:var(--panel);box-shadow:0 12px 35px var(--shadow)}.status-strip>div{display:grid;place-items:center;min-width:78px;min-height:49px;padding:6px 10px;border-right:1px solid var(--line)}.status-strip>div:last-child{border-right:0}.status-strip span,.result-score span,.result-stats small,.controls-note span{color:var(--muted);font-size:8px;font-weight:800}.status-strip strong{color:var(--paper);font-size:17px;line-height:1;font-variant-numeric:tabular-nums}.streak-block strong i{color:var(--orange);font-style:normal}.shells{display:flex;gap:6px;height:18px}.shell{position:relative;display:block;width:8px;height:17px;border:1px solid rgba(0,0,0,.5);border-radius:4px 4px 1px 1px;background:var(--orange-hot);box-shadow:inset 0 -4px #9b371d,0 0 8px #f26a2e59;transform:rotate(9deg);transition:transform .16s ease,opacity .16s ease}.shell.is-spent{opacity:.18;transform:translateY(3px) rotate(9deg);box-shadow:none}.charge{position:absolute;left:50%;bottom:max(30px,calc(env(safe-area-inset-bottom) + 22px));width:min(340px,calc(100vw - 140px));padding:10px 12px 12px;border-bottom:3px solid var(--orange);background:#050809db;opacity:0;transform:translate(-50%,8px);transition:opacity .1s ease,transform .1s ease}.charge.is-active{opacity:1;transform:translate(-50%)}.charge>div:first-child{margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:800}.charge-percent{color:var(--paper)}.charge-track{height:8px}.charge-track i{background:linear-gradient(90deg,var(--cyan) 0 54%,var(--acid) 76%,var(--orange) 100%)}.charge-track em{position:absolute;top:0;left:76%;width:1px;height:100%;background:var(--paper);opacity:.7}.combo{position:absolute;top:24%;left:50%;display:grid;justify-items:center;color:var(--paper);text-shadow:0 4px 20px #000;opacity:0;transform:translate(-50%,-4px) scale(.9) rotate(-2deg);transition:opacity .12s ease,transform .12s ease}.combo.is-active{opacity:1;transform:translate(-50%) scale(1) rotate(-2deg)}.combo span{padding:3px 8px;color:var(--ink);font-size:10px;font-weight:900;background:var(--acid)}.combo strong{color:var(--orange-hot);font-size:clamp(54px,9vw,88px);line-height:.88}.hint,.toast{position:absolute;left:50%;margin:0;padding:7px 11px;color:var(--paper);font-size:11px;font-weight:700;text-align:center;background:#060a0bc7;pointer-events:none;transform:translate(-50%);transition:opacity .24s ease,transform .24s ease}.hint{bottom:max(88px,calc(env(safe-area-inset-bottom) + 76px))}.hint.is-hidden{opacity:0;transform:translate(-50%,5px)}.toast{top:16%;color:var(--acid);opacity:0;transform:translate(-50%,-6px)}.toast.is-active{opacity:1;transform:translate(-50%)}.game-actions{position:absolute;right:var(--edge);bottom:max(14px,env(safe-area-inset-bottom));display:flex;gap:6px;pointer-events:auto}.icon-button,.text-button,.close-button,.primary-button,.secondary-button{border:1px solid var(--line);border-radius:3px;background:#090e10db;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease,transform .1s ease}.icon-button:hover,.text-button:hover,.secondary-button:hover,.close-button:hover{color:var(--acid);border-color:#d9ff438c;background:#121a1c}.icon-button:active,.text-button:active,.primary-button:active,.secondary-button:active{transform:translateY(1px)}.icon-button{width:42px;height:38px;padding:0;font-size:13px;font-weight:900}.text-button{min-width:86px;height:38px;padding:0 12px;font-size:10px;font-weight:900}.drawer{position:absolute;top:0;right:0;z-index:20;width:min(390px,100%);height:100%;padding:max(20px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) 18px;overflow-y:auto;border-left:1px solid var(--line);background:#090e10f7;box-shadow:-24px 0 70px #00000080;opacity:0;pointer-events:none;transform:translate(100%);transition:opacity .18s ease,transform .24s cubic-bezier(.2,.85,.25,1)}.drawer.is-open{opacity:1;pointer-events:auto;transform:translate(0)}.drawer-head{margin-bottom:22px}.drawer-head>div{display:grid}.drawer-head span{color:var(--orange);font-size:10px;font-weight:900}.drawer-head strong{font-size:28px}.close-button{width:38px;height:38px;padding:0;font-size:26px}.level-option{position:relative;display:grid;grid-template-columns:1fr auto;gap:5px 12px;width:100%;min-height:72px;margin-bottom:8px;padding:11px 12px;overflow:hidden;border:1px solid var(--line);border-radius:3px;color:var(--paper);text-align:left;background:#ffffff09;cursor:pointer}.level-option:hover,.level-option.is-active{border-color:var(--orange);background:#f26a2e17}.level-option span{display:flex;gap:8px;align-items:center}.level-option span b{color:var(--orange);font-size:9px}.level-option span em,.level-option>i{color:var(--muted);font-size:9px;font-style:normal}.level-option>strong{grid-column:1 / -1;font-size:16px}.daily-option{min-height:86px;border-color:#d9ff435c;background:linear-gradient(100deg,#d9ff4314,#f26a2e0d)}.level-list{margin-top:18px}.settings-drawer{width:min(360px,100%)}.toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:64px;border-bottom:1px solid var(--line);cursor:pointer}.toggle-row>span{display:grid}.toggle-row b{font-size:15px}.toggle-row small{margin-top:2px;color:var(--muted);font-size:11px}.toggle-row input{position:absolute;opacity:0}.toggle-row>i{position:relative;width:42px;height:22px;border:1px solid var(--line);border-radius:3px;background:#1e282a}.toggle-row>i:after{position:absolute;top:3px;left:3px;width:14px;height:14px;content:"";background:var(--muted);transition:transform .14s ease,background .14s ease}.toggle-row input:checked+i{border-color:var(--orange)}.toggle-row input:checked+i:after{background:var(--orange);transform:translate(20px)}.controls-note{display:grid;gap:4px;margin-top:24px;padding-left:10px;border-left:2px solid var(--cyan)}.controls-note+.controls-note{margin-top:16px}.controls-note b{font-size:12px;line-height:1.35}.result{position:absolute;inset:0;z-index:18;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));overflow-y:auto;background:#050809d1;backdrop-filter:blur(7px);opacity:0;pointer-events:none;transition:opacity .24s ease}.result.is-open{opacity:1;pointer-events:auto}.result-noise{position:absolute;inset:0;overflow:hidden;opacity:.1;background:repeating-linear-gradient(120deg,transparent 0 11px,rgba(255,255,255,.08) 12px);pointer-events:none}.result-content{position:relative;width:min(560px,100%);padding:clamp(22px,4vw,42px);border-top:5px solid var(--orange);border-bottom:1px solid var(--line);background:#0d1416;box-shadow:0 30px 90px #000;text-align:center;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px))}.result-content>span{color:var(--orange);font-size:10px;font-weight:900}.result-content h2{margin:3px 0 8px;font-size:clamp(38px,8vw,70px);line-height:.9}.result-emoji{min-height:43px;margin:14px 0;font-size:31px;overflow-wrap:anywhere}.result-score{display:grid;justify-items:center;margin:12px 0 18px}.result-score strong{color:var(--acid);font-size:clamp(40px,8vw,64px);line-height:.95;font-variant-numeric:tabular-nums}.result-stats{gap:1px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats>span{display:grid;flex:1 1 33%;gap:3px;min-height:58px;padding:10px 4px;border-right:1px solid var(--line)}.result-stats>span:last-child{border-right:0}.result-stats b{color:var(--paper);font-size:18px}.result-streak{margin:14px 0;color:var(--orange-hot);font-size:13px;font-weight:800}.result-actions{gap:8px;flex-wrap:wrap;justify-content:center}.primary-button,.secondary-button{min-height:43px;padding:0 17px;font-size:11px;font-weight:900}.primary-button{border-color:var(--acid);color:var(--ink);background:var(--acid)}.primary-button:hover{background:#efff9e}.secondary-button{background:#151e20}.context-message{position:absolute;inset:0;z-index:40;display:grid;place-content:center;gap:5px;padding:20px;text-align:center;background:#080c0e;opacity:0;pointer-events:none}.context-message.is-open{opacity:1}.context-message strong{color:var(--orange);font-size:20px}.context-message span{color:var(--muted);font-size:12px}@keyframes boot-pulse{0%{transform:skew(-16deg) scaleY(.45);opacity:.4}to{transform:skew(-16deg) scaleY(1);opacity:1}}@media(max-width:720px){.brand-lockup strong{font-size:21px}.brand-lockup span{font-size:8px}.objective{top:max(58px,calc(env(safe-area-inset-top) + 52px));width:min(230px,calc(100vw - 28px));padding:9px 10px}.objective>strong{font-size:16px}.objective-progress{font-size:10px}.status-strip{top:max(10px,env(safe-area-inset-top))}.status-strip>div{min-width:56px;min-height:42px;padding:5px 6px}.status-strip span{font-size:7px}.status-strip strong{font-size:13px}.score-block{display:none!important}.shells{gap:4px;transform:scale(.85)}.hint{bottom:max(72px,calc(env(safe-area-inset-bottom) + 62px));max-width:calc(100vw - 34px);white-space:nowrap}.charge{bottom:max(72px,calc(env(safe-area-inset-bottom) + 62px));width:min(300px,calc(100vw - 34px))}.game-actions{left:var(--edge);right:auto}.icon-button{width:38px}.text-button{min-width:78px;padding:0 8px}}@media(max-width:430px)and (orientation:portrait){.objective{top:max(57px,calc(env(safe-area-inset-top) + 50px));width:calc(100vw - 28px)}.objective-progress span{max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-content{padding:22px 17px 24px}.result-content h2{font-size:42px}.result-stats b{font-size:15px}.result-stats small{font-size:7px}}@media(max-height:520px)and (orientation:landscape){.objective{top:56px;width:245px}.brand-lockup strong{font-size:20px}.hint{bottom:60px}.charge{bottom:58px}.result-content{padding:16px 26px}.result-content h2{font-size:40px}.result-emoji{margin:6px 0}.result-score{margin:6px 0 10px}.result-score strong{font-size:36px}.result-stats>span{min-height:45px;padding:6px 4px}.result-streak{margin:8px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
