:root{color-scheme:light;--ink:#372951;--muted:#81758f;--purple:#8963d4;--line:#e5dced}*{box-sizing:border-box}body{margin:0;background:#faf7fc;color:var(--ink);font-family:ui-rounded,"Avenir Next",Avenir,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ab82e7;outline-offset:4px}.app{width:min(1140px,100%);margin:auto;padding:28px 42px 20px}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{color:var(--ink);text-decoration:none;font-size:20px;font-weight:750;letter-spacing:-.7px;display:flex;align-items:center;gap:10px}.brand-mark{color:var(--purple);font-size:31px}.brand-tag{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;border:1px solid var(--line);border-radius:20px;padding:5px 8px;margin-left:4px;color:var(--muted)}.tools{display:flex;gap:8px}.icon-button{border:1px solid var(--line);background:#fff9;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink)}.icon-button:disabled{opacity:.35;cursor:default}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:39px 0 27px}.eyebrow{font-size:9px;letter-spacing:1.6px;color:#9688ab;display:flex;align-items:center;gap:8px;font-weight:650}.eyebrow span{height:5px;width:5px;border-radius:50%;background:#b99ada}h1{font-size:clamp(35px,4.5vw,53px);letter-spacing:-2.5px;font-weight:750;margin:8px 0 7px;line-height:1.08}h1 em{font-style:normal;color:var(--purple)}.title-star{font-size:33px;vertical-align:top;margin-left:12px;color:#d9b655;display:inline-block;transform:rotate(13deg)}.intro p{font-size:14px;color:var(--muted);margin:0}.best-badge{display:flex;gap:12px;align-items:center;padding:15px 22px;background:#f2edf7;border:1px solid #eae2f2;border-radius:17px}.badge-star{font-size:31px;color:#a28cc0}.best-badge .label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.best-badge strong{font-size:22px;letter-spacing:2px;font-variant-numeric:tabular-nums}.game-frame{height:460px;position:relative;overflow:hidden;border:1px solid #dfd2ed;border-radius:25px;background:#eee4fa;box-shadow:0 12px 45px #5b398311;touch-action:none;user-select:none;-webkit-user-select:none}.game-hud{position:absolute;top:22px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:center;z-index:2;pointer-events:none}.world-label{display:flex;align-items:center;gap:7px;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#8b72a8}.live-dot{height:5px;width:5px;background:#a58bca;border-radius:50%}.scoreboard{display:flex;align-items:center;gap:20px}.star-count{color:#af8956;font-size:16px}.star-count b{font-size:12px;font-weight:600;color:#796881;margin-left:3px}.score-label{font-size:9px;letter-spacing:1px;color:#9884ab;display:flex;align-items:center;gap:8px}.score-label strong{font-size:21px;letter-spacing:2px;color:#64517a;font-variant-numeric:tabular-nums}canvas{width:100%;height:100%;display:block;touch-action:none}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:3;background:linear-gradient(90deg,#efe6fb00,#f4edfd44,#efe6fb00)}.overlay[hidden]{display:none}.overlay-card{text-align:center;background:#fffafdf2;padding:26px 33px 22px;border-radius:22px;border:1px solid #ffffffb0;box-shadow:0 15px 60px #8263aa0b;max-width:90%}.overlay-kicker{font-size:8px;letter-spacing:1.7px;font-weight:700;color:#a38bbd}h2{font-size:28px;letter-spacing:-1px;margin:12px 0;color:#55406e}.overlay-card p{font-size:13px;line-height:1.7;margin:0 0 20px;color:#8a789c}.play-button{background:#8d65d0;color:white;border:0;border-radius:12px;padding:15px 24px;min-width:210px;font-size:14px;font-weight:650;box-shadow:0 6px 17px #8d65d028;display:inline-flex;gap:28px;justify-content:center;align-items:center}.play-button:hover{background:#7a52bf}.play-button span{font-size:21px;line-height:.7}.overlay-hint{font-size:10px;color:#a995bb;margin-top:15px}.scene-caption{position:absolute;bottom:19px;left:27px;font-size:9px;letter-spacing:.6px;color:#a48eb7;pointer-events:none}.scene-caption span{margin-right:6px}.controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.control-tip{display:flex;align-items:center;gap:13px}.tip-icon{height:39px;width:39px;display:grid;place-items:center;background:#f0eaf7;border-radius:11px;color:#9c80bb;font-size:24px}.control-tip strong{display:block;font-size:12px;font-weight:600}.control-tip div>span{display:block;color:#9c8da9;font-size:11px;margin-top:4px}.control-buttons{display:flex;gap:10px}.action-button{display:flex;align-items:center;justify-content:center;gap:13px;padding:12px 18px;border-radius:13px;border:1px solid var(--line);color:#726183;background:#fff9;min-width:148px;text-align:left;user-select:none;-webkit-user-select:none}.action-button>span{font-size:22px}.action-button div{font-size:12px;font-weight:650}.action-button small{display:block;font-size:9px;font-weight:400;opacity:.65;margin-top:4px}.jump-button{background:#ede3fa;border-color:#e2d3f4;color:#8762b5}.action-button:active{transform:translateY(1px);background:#e5d8f6}footer{display:flex;justify-content:space-between;margin-top:26px;color:#b1a4bc;font-size:10px}footer b{color:#bca5d7;padding-left:5px}.toast{position:absolute;top:67px;left:50%;transform:translateX(-50%);padding:8px 14px;border-radius:22px;background:#fff9;color:#8d6eb5;font-size:11px;pointer-events:none;opacity:0;transition:opacity .2s;white-space:nowrap}.toast.show{opacity:1}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}@media(min-width:1400px){.app{padding-top:45px}.intro{margin-top:47px}.game-frame{height:500px}}@media(max-width:680px){.app{padding:16px 16px max(16px,env(safe-area-inset-bottom))}.topbar{padding-top:env(safe-area-inset-top)}.brand{font-size:17px;gap:7px}.brand-mark{font-size:25px}.brand-tag{display:none}.icon-button{height:35px;width:35px}.intro{margin:26px 0 19px;gap:10px}.eyebrow{font-size:7px;letter-spacing:1px}h1{font-size:36px;letter-spacing:-1.6px}.title-star{display:none}.intro p{font-size:11px}.best-badge{padding:10px 12px;gap:0;border-radius:12px}.badge-star{display:none}.best-badge .label{font-size:8px}.best-badge strong{font-size:17px;letter-spacing:1px}.game-frame{height:clamp(300px,48vh,440px);height:clamp(300px,48svh,440px);border-radius:20px}.game-hud{top:17px;left:18px;right:18px}.world-label{font-size:7px;letter-spacing:.8px}.scoreboard{gap:12px}.score-label{font-size:7px;gap:5px}.score-label strong{font-size:18px}.star-count{font-size:13px}.overlay-card{padding:24px 18px 20px}h2{font-size:24px}.overlay-kicker{font-size:7px}.overlay-card p{font-size:12px}.scene-caption{left:18px;font-size:8px;bottom:17px}.controls{flex-direction:column;margin-top:16px;gap:14px}.control-tip{gap:8px;align-self:center}.tip-icon{display:none}.control-tip strong{font-size:11px;display:inline}.control-tip div>span{font-size:10px;display:inline;margin-left:10px}.control-buttons{width:100%;gap:10px}.action-button{flex:1;min-width:0;padding:13px 12px}.action-button div{font-size:12px}.action-button small{font-size:9px}footer{margin-top:20px;font-size:8px}footer span:last-child{display:none}}@media(max-height:500px) and (orientation:landscape){.app{padding:10px 20px}.topbar{position:absolute;right:22px;top:12px;z-index:6}.brand,.intro,footer,.control-tip{display:none}.game-frame{height:calc(100svh - 84px);min-height:230px}.game-hud{right:110px}.controls{margin-top:8px;align-items:center}.control-buttons{justify-content:center;max-width:440px;margin:auto}.action-button{padding:7px 18px}.action-button small{display:none}.overlay-card{padding:16px 25px}.overlay-card p{margin-bottom:10px}h2{margin:7px 0;font-size:23px}.overlay-hint{display:none}}
@media(max-width:680px) and (max-height:700px) and (orientation:portrait){.app{padding-top:12px}.intro{margin:14px 0 13px}.eyebrow,.intro p{display:none}h1{font-size:28px;letter-spacing:-1px;margin:0}.best-badge{padding:8px 10px}.game-frame{height:clamp(230px,46svh,320px)}.controls{margin-top:12px}.control-tip{display:none}.action-button{padding:11px 12px}footer{margin-top:12px}}
