*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#081c30;color:#f6f4e8;font:14px system-ui,sans-serif}button,select,a{font:inherit;-webkit-tap-highlight-color:transparent}button,select{color:inherit}button{cursor:pointer}button:disabled{opacity:.45}[hidden]{display:none!important}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #ffe29b;outline-offset:4px}#scene{display:block;width:100%;height:100%;touch-action:none}header{position:fixed;top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:flex;justify-content:space-between;align-items:start}.brand{background:#081e30de;padding:14px 18px;border:1px solid #61dbe14d;border-radius:14px;color:inherit;text-decoration:none;font-weight:800;letter-spacing:.16em}.brand span{color:#5eeafa}.brand small{display:block;font-size:8px;letter-spacing:.18em;margin-top:7px;font-weight:500;color:#b6d6dc}#pause,select{background:#081e30de;border:1px solid #6cdbe359;border-radius:22px;padding:10px 16px}.objective{position:fixed;top:22px;left:50%;transform:translateX(-50%);display:flex;gap:12px;align-items:center;padding:12px 20px;background:#072334e8;border:1px solid #57e9ef99;border-radius:14px;max-width:460px;width:40vw}.marker{font-size:32px;color:#5eeafa}.objective strong{display:block;color:#5eeafa;font-size:15px}.objective div>span{display:block;font-size:12px;margin-top:3px;color:#d2e6e6}.stats{position:fixed;top:108px;left:26px;display:flex;gap:10px;flex-direction:column}.stats span{background:#071d30d9;padding:8px 12px;border-radius:10px;font-size:11px}#stars{color:#ffe19b;font-size:16px}#panel{position:fixed;bottom:70px;left:26px;width:320px;padding:22px;background:linear-gradient(150deg,#082638ee,#07192df0);border:1px solid #74c7d35c;border-radius:20px}.eyebrow{font-size:8px;letter-spacing:.14em;color:#b1e0df}h1{font-size:32px;line-height:1.08;letter-spacing:-.04em;margin:12px 0}h1 em{color:#ed79ec;font-style:normal}#panel p{font-size:12px;line-height:1.65;color:#cbdfdf}#start{display:block;width:100%;background:#5eeafa;border:0;color:#082636;border-radius:12px;padding:15px;font-weight:800}#panel small{display:block;font-size:10px;margin:12px 0;color:#b1cdd5}#panel a{font-size:11px;color:#d5eceb}footer{position:fixed;bottom:max(15px,env(safe-area-inset-bottom));left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#c6dbe0}footer select{font-size:11px;padding:6px}#controls{position:fixed;bottom:65px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#joystick{pointer-events:auto;touch-action:none;width:122px;height:122px;border:2px solid #b0e3e580;border-radius:50%;background:#061c30b8;position:relative}#stick{position:absolute;left:calc(50% - 23px);top:calc(50% - 23px);width:46px;height:46px;border-radius:50%;background:linear-gradient(#e3ffff,#719fa9);box-shadow:0 4px 12px #0006}.pad-label{position:absolute;bottom:10px;width:100%;text-align:center;font-size:8px;letter-spacing:.18em;color:#b6d8df}.action-buttons{display:flex;gap:14px}.action-buttons button{pointer-events:auto;touch-action:none;width:78px;height:78px;border:1px solid #5eeafaaa;border-radius:50%;background:#082334db}.action-buttons button b{display:block;font-size:29px;line-height:1.1;color:#a2f6fa}.action-buttons button span{font-size:9px;letter-spacing:.1em}.action-buttons button:active{background:#276579}#error{position:fixed;inset:20%;background:#0a2438;padding:30px;border:1px solid #5eeafa}#error a{color:#5eeafa}
@media(max-width:700px){header{left:14px;right:14px;top:max(12px,env(safe-area-inset-top))}.brand{padding:10px 12px;font-size:10px}.brand small{font-size:7px}#pause{font-size:11px;padding:9px 12px}.objective{top:86px;width:calc(100% - 28px);max-width:none;padding:9px 12px}.objective strong{font-size:12px}.objective div>span{font-size:10px}.marker{font-size:25px}.stats{top:158px;left:14px;right:14px;flex-direction:row;justify-content:space-between}.stats span{font-size:9px}#stars{font-size:12px}#panel{bottom:55px;left:14px;width:calc(100% - 28px);padding:16px}h1{font-size:25px;margin:9px 0}h1 br{display:none}h1 em{margin-left:6px}#panel p{font-size:11px;margin:8px 0}#panel small{margin:8px 0}footer{left:14px;right:14px;justify-content:flex-end}footer>span{display:none}#controls{left:16px;right:16px}#joystick{width:110px;height:110px}.action-buttons{gap:9px}.action-buttons button{width:68px;height:68px}}
@media(max-height:500px){.objective{top:12px;width:40%;left:52%}.stats{top:88px}#panel{bottom:40px;width:285px;padding:12px}#panel p,#panel small,.eyebrow{display:none}h1{font-size:23px}#controls{bottom:40px}#joystick{width:90px;height:90px}#panel a{display:block;margin-top:8px}}
/* Keep the scene open for visual comparison on both phone and landscape. */
#panel{width:280px;padding:14px 16px;background:#072333d9;backdrop-filter:blur(12px)}
#panel .eyebrow,#panel small,#panel p{display:none}#panel h1{font-size:22px;margin:0 0 12px}#panel a{display:inline-block;margin-top:10px;font-size:10px}#start{padding:12px}header .brand{background:#072333c9}.objective{background:#072333dc}.stats{top:104px}
@media(max-width:700px){#panel{bottom:48px;left:14px;width:calc(100% - 28px);padding:12px 14px}#panel h1{font-size:19px;margin:0 0 8px}#panel a{display:none}.objective{top:68px}.stats{top:130px}#panel #start{padding:11px}}
@media(max-height:500px){#panel{bottom:36px;width:235px}#panel h1{font-size:17px}.objective{top:12px}.stats{top:80px}}
/* Optional information stays inside a collapsed native disclosure. */
header{z-index:5;pointer-events:none}header>button,#info{pointer-events:auto}#info{position:relative;font-size:13px}#info summary{cursor:pointer;list-style:none;border:1px solid #78cbd17a;border-radius:24px;background:#082334df;padding:11px 17px;min-height:44px}#info summary::after{content:' ▾';color:#85e9ee}#info[open] summary::after{content:' ▴'}#info summary::-webkit-details-marker{display:none}.info-content{position:absolute;left:0;top:52px;width:min(320px,calc(100vw - 48px));max-height:calc(100dvh - 170px);overflow:auto;padding:18px;background:#072333f2;border:1px solid #78cbd17a;border-radius:16px;box-shadow:0 10px 40px #0005}.info-content .brand{display:block;font-size:11px}.info-content .objective,.info-content .stats,.info-content footer{position:static;transform:none;width:auto;max-width:none;margin:14px 0;padding:0;display:flex;left:auto;right:auto;top:auto;bottom:auto}.info-content .objective{border:0;background:none}.info-content .stats{flex-direction:row;justify-content:space-between}.info-content p{font-size:12px;line-height:1.6;color:#cbe2e4}.info-content footer{flex-direction:column;align-items:start;gap:12px}.info-content footer>span{display:block;font-size:10px}.info-content footer select{font-size:12px}.info-content .marker{font-size:23px}#info summary:focus-visible{outline:3px solid #ffe29b;outline-offset:3px}

/* Landscape gameplay: corner controls, unobstructed route and safe-area spacing. */
#rotate-hint{display:none;position:fixed;z-index:100;inset:0;padding:max(28px,env(safe-area-inset-top)) 28px;background:radial-gradient(ellipse at center,#164654,#081c30 75%);color:#f1ffff;text-align:center;align-items:center;justify-content:center;flex-direction:column;gap:18px;touch-action:none}
#rotate-hint strong{font-size:clamp(24px,6vw,32px);max-width:340px;line-height:1.2}#rotate-hint p{max-width:290px;margin:0;color:#b8d7df;line-height:1.6}#rotate-hint svg{width:96px;height:96px;color:#5eeafa}
.portrait-blocked #rotate-hint{display:flex}
@media(orientation:portrait){#rotate-hint{display:flex}#panel,#controls,header{visibility:hidden}}
@media(orientation:landscape){
 header{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top))}
 #controls{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
 #joystick{width:94px;height:94px;background:#061c307a}.action-buttons button{width:66px;height:66px;background:#08233499}.action-buttons{gap:12px}
 #panel{left:50%;transform:translateX(-50%);bottom:max(14px,env(safe-area-inset-bottom));width:260px;background:#072333ba}
 #panel h1{font-size:17px}#panel a{display:none}.info-content{max-height:calc(100dvh - 90px)}
 .in-game #info summary,.in-game #pause{background:#08233480}
}
