:root{color-scheme:light;--ink:#103e58;--soft:#47798b;--blue:#078acb;--orange:#ff6c2e;--dark-orange:#d94b19;--panel:rgba(248,253,255,.94);--top:env(safe-area-inset-top,0px);--bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:#103e58;color:var(--ink);font-family:"Trebuchet MS","Arial Rounded MT Bold",system-ui,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;user-select:none;-webkit-user-select:none;overscroll-behavior:none}button,a{font:inherit;touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:4px solid #ffb52db3;outline-offset:3px}.hidden{display:none!important}#game{position:relative;width:100%;height:100%;height:100dvh;min-height:280px;overflow:hidden;isolation:isolate}.scenery,#night,canvas{position:absolute;inset:0;width:100%;height:100%}.scenery{z-index:-3;background:#7793b8 url('assets/clearing.webp') center/cover no-repeat}#night{z-index:-2;background:linear-gradient(#071a4940,#12265710);opacity:0;transition:opacity 2s}canvas{display:block;touch-action:none;cursor:ew-resize}.tools{position:absolute;z-index:8;top:calc(14px + var(--top));right:max(14px,env(safe-area-inset-right));display:flex;gap:7px}.icon-button{width:44px;height:44px;border:2px solid #103e581a;border-radius:50%;background:#f8fdffeb;box-shadow:0 6px 20px #1655731f;display:grid;place-items:center}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button.muted{opacity:.65}.icon-button.muted:after{content:"";position:absolute;width:23px;height:2px;background:var(--ink);transform:rotate(-45deg)}
.screen{position:absolute;inset:0;z-index:9;display:flex;align-items:center;justify-content:center;padding:max(22px,var(--top)) max(16px,env(safe-area-inset-right)) max(22px,var(--bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(#76c8ed10,#effafe38)}.panel{width:min(92vw,455px);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:clamp(25px,6vw,41px) clamp(20px,6vw,38px) clamp(21px,5vw,32px);border:2px solid #fffffff5;border-radius:30px;background:var(--panel);box-shadow:0 20px 60px #1c5c7a38,inset 0 1px 0 #fff;text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:none}.eyebrow{margin:0 0 8px;color:var(--orange);font-size:.76rem;font-weight:1000;letter-spacing:.2em;text-transform:uppercase}h1,h2{margin:0;font-weight:1000;line-height:.9;letter-spacing:-.065em;text-transform:uppercase;text-shadow:0 3px 0 white}h1{font-size:clamp(2.55rem,11vw,4.8rem);line-height:.84;letter-spacing:-.072em}h1 span{display:block;margin-top:11px;color:var(--blue);font-size:.47em;letter-spacing:.07em}h2{font-size:clamp(2.2rem,9vw,3.6rem)}.tagline{max-width:325px;margin:18px auto;color:var(--soft);font-size:clamp(.9rem,3.4vw,1.02rem);font-weight:700;line-height:1.42}.how-to{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.how-to>div{padding:10px 5px 9px;border-radius:13px;background:#103e580f;color:var(--soft);font-size:.64rem;font-weight:900;line-height:1.25}.how-to b{display:grid;width:25px;height:25px;margin:0 auto 6px;place-items:center;border-radius:50%;background:white;color:var(--blue);font-size:.8rem;box-shadow:0 2px 0 #103e581a}.actions{display:grid;gap:12px}.primary,.secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:55px;padding:13px 24px;border:0;border-radius:16px;text-decoration:none;font-size:1rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;transition:transform .12s,box-shadow .12s,background .12s}.primary{color:white;background:var(--orange);box-shadow:0 6px 0 var(--dark-orange),0 12px 24px #d94b1938}.primary:hover{background:#ff7b40}.primary:active{transform:translateY(3px) scale(.99);box-shadow:0 2px 0 var(--dark-orange)}.primary:disabled{opacity:.6}.secondary{min-height:47px;color:var(--soft);background:#103e5812}.secondary:hover{background:#103e581c}.best,.help{color:var(--soft);font-size:.65rem;font-weight:800;line-height:1.6;margin:18px 0 0}.best b{color:var(--ink)}.text-button{display:block;margin:6px auto 0;background:none;border:0;min-height:44px;padding:12px 10px;color:var(--soft);font-size:.72rem;font-weight:900;text-transform:uppercase}.result-score strong{display:block;color:var(--blue);font-size:clamp(3rem,15vw,5.1rem);font-weight:1000;letter-spacing:-.07em;line-height:1}.result-score span,.result-score small{display:block;color:var(--soft);font-size:.62rem;font-weight:900;letter-spacing:.1em;margin:5px 0}.result-stats{display:flex;justify-content:space-around;gap:8px;padding:16px 0 20px}.result-stats b{display:block;font-size:1.2rem}.result-stats span{display:block;color:var(--soft);font-size:.55rem;font-weight:900;margin-top:4px;letter-spacing:.06em}
#hud{position:absolute;inset:0;pointer-events:none}.score-row{position:absolute;left:max(14px,env(safe-area-inset-left));top:calc(14px + var(--top));display:flex;gap:7px}.chip,.heat-box,.night-progress{border:2px solid #103e581a;background:#f8fdffeb;box-shadow:0 6px 20px #1655731f}.chip{border-radius:999px;padding:12px 15px;text-align:center}.chip strong{font-size:1.3rem;font-weight:1000;line-height:1}.chip span{margin-left:4px;color:var(--soft);font-size:.6rem;font-weight:1000;letter-spacing:.07em;text-transform:uppercase}.heat-box{position:absolute;top:calc(14px + var(--top));left:50%;transform:translateX(-50%);width:210px;padding:10px 14px;border-radius:18px}.heat-label{display:flex;justify-content:space-between;font-size:.65rem;font-weight:1000;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}.track{height:8px;overflow:hidden;border-radius:99px;background:#103e581a}.track i{display:block;width:100%;height:100%;transform-origin:left;border-radius:inherit}#heatFill{background:linear-gradient(90deg,#f14b2e,#ff8d25,#ffc126)}.heat-box.low{border-color:#ff6c2e;box-shadow:0 0 0 3px #ff6c2e38}.night-progress{position:absolute;top:calc(81px + var(--top));left:50%;transform:translateX(-50%);width:180px;padding:8px 13px;border-radius:16px;text-align:center}.night-progress span{font-size:.62rem;letter-spacing:.12em;font-weight:1000}.night-progress .track{height:4px;margin:5px 0}#timeFill{background:var(--blue)}.night-progress b{display:block;color:var(--soft);font-size:.55rem}.control-bar{position:absolute;bottom:calc(16px + var(--bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.move-buttons{display:flex;gap:9px}.move-buttons button{pointer-events:auto;width:62px;height:58px;touch-action:none;background:#f8fdffe8;border:2px solid #ffffffdd;border-radius:16px;box-shadow:0 4px 0 #638da1;color:var(--blue);font-size:20px}.move-buttons button:active{background:#cfedf8;transform:translateY(2px)}.drag-note{font-size:.6rem;font-weight:1000;letter-spacing:.13em;color:#e8f6ff;text-shadow:0 1px 3px #103e58}.dash-button{position:relative;pointer-events:auto;touch-action:none;overflow:hidden;display:flex;align-items:center;gap:11px;min-width:175px;min-height:58px;border:2px solid #ffab83;border-radius:17px;color:#fff;background:var(--orange);box-shadow:0 4px 0 var(--dark-orange);padding:8px 16px;text-align:left}.dash-icon{font-size:37px;font-weight:bold;line-height:1}.dash-button b{display:block;font-size:.8rem;font-weight:1000;letter-spacing:.1em}.dash-button small{display:block;margin-top:4px;font-size:.46rem;font-weight:900;letter-spacing:.05em}.dash-button>i{position:absolute;left:0;bottom:0;width:100%;height:4px;background:#ffcc62;transform-origin:left}.dash-button.cooling{background:#47798b;border-color:#86b2c5;box-shadow:0 4px 0 #23566b}.hint{position:absolute;bottom:calc(92px + var(--bottom));left:50%;transform:translateX(-50%);max-width:90%;width:max-content;text-align:center;color:var(--ink);background:#f5fbffe6;border-radius:20px;font-size:.65rem;font-weight:900;padding:8px 14px}.callout{position:absolute;z-index:3;top:27%;left:50%;width:90%;transform:translate(-50%,5px);opacity:0;color:#fff;font-size:clamp(1.3rem,4vw,2.3rem);font-weight:1000;letter-spacing:.02em;text-align:center;text-shadow:0 3px 0 #103e5866,0 6px 20px #103e5855;text-transform:uppercase;pointer-events:none;transition:opacity .2s,transform .2s}.callout small{display:block;margin-top:8px;font-size:.7rem;font-weight:800;letter-spacing:0;text-transform:none}.callout.show{opacity:1;transform:translate(-50%,0)}.load-error{position:absolute;bottom:10px;left:10px;z-index:20;padding:14px;background:#fff;border-radius:12px;font-size:12px}.load-error button{border:0;background:none;text-decoration:underline}
@keyframes panel-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:700px){.score-row{gap:6px}.chip{padding:12px 10px}.chip strong{font-size:1.1rem}.chip span{font-size:.48rem}.heat-box{top:calc(77px + var(--top));left:14px;transform:none;width:calc(55% - 19px);padding:10px 11px}.night-progress{top:calc(77px + var(--top));left:auto;right:14px;transform:none;width:calc(45% - 19px);padding:7px 10px}.heat-label{font-size:.58rem}.night-progress span{font-size:.52rem}.night-progress b{font-size:.49rem}.night-progress .track{margin:4px 0}.move-buttons button{width:52px;height:56px}.dash-button{min-width:150px;min-height:56px;padding:8px 12px}.dash-button small{font-size:.39rem}.drag-note{display:none}.hint{font-size:.55rem;bottom:calc(86px + var(--bottom));padding:7px 10px}.callout{top:27%}}
@media(max-height:610px){.panel{width:min(90vw,560px);padding:17px 28px}h1{font-size:clamp(2.25rem,12vh,3.5rem)}h2{font-size:2.2rem}.tagline{margin:9px auto 11px;font-size:.84rem}.how-to{margin-bottom:11px}.actions{grid-template-columns:1.35fr 1fr}.primary,.secondary{min-height:46px;padding:9px 17px}.best{margin-top:14px}.result-score strong{font-size:2.8rem}.result-stats{padding:10px 0 14px}.help{display:none}}
@media(max-height:500px) and (orientation:landscape){.screen{padding-top:max(12px,var(--top));padding-bottom:max(12px,var(--bottom))}.panel{width:min(72vw,490px);padding:15px 25px}.eyebrow{font-size:.6rem}h1{font-size:2.7rem}h2{font-size:2rem}.tagline{max-width:360px;font-size:.75rem}.how-to>div{padding:6px 5px;font-size:.55rem}.how-to b{width:20px;height:20px;font-size:.65rem;margin-bottom:4px}.best{font-size:.5rem;margin-top:11px}.heat-box{top:calc(14px + var(--top));left:50%;transform:translateX(-50%);width:160px}.night-progress{top:calc(74px + var(--top));left:50%;right:auto;transform:translateX(-50%);width:150px;padding:6px 10px}.night-progress span{font-size:.5rem}.night-progress b{font-size:.46rem}.control-bar{bottom:calc(10px + var(--bottom))}.move-buttons button{width:56px;height:46px}.dash-button{min-height:46px;padding:5px 12px}.hint{bottom:calc(16px + var(--bottom));font-size:.55rem;max-width:35%;padding:7px 10px}.drag-note{display:none}.callout{top:34%;font-size:1.4rem}.result-panel .tagline{margin:8px 0}.result-score strong{font-size:2.6rem}.result-stats{padding:8px 0 10px}.result-panel .text-button{padding:8px;min-height:34px}.result-panel{width:min(74vw,520px)}.result-panel .eyebrow{margin-bottom:6px}}
@media(max-width:360px){.control-bar{left:12px;right:12px}.move-buttons{gap:7px}.move-buttons button{width:46px}.dash-button{min-width:145px}.tools{gap:5px}.score-row{left:12px}.chip{padding:12px 8px}.chip span{font-size:.43rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

#dawn{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#ffe8ba9e,#dceefa60 55%,#fff2cb4a);opacity:0;transition:opacity .3s}
