:root{font-family:system-ui,'Segoe UI',sans-serif;color:#f3f9ed;background:#0a242b;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden;touch-action:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:48px;border:none;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffe19a;outline-offset:4px}[hidden]{display:none!important}#game{position:fixed;width:100%;height:100%;inset:0;display:block}#overlay{position:fixed;inset:0;z-index:10;pointer-events:none;overflow:auto;touch-action:pan-y}#overlay>*{pointer-events:auto}.menu{min-height:100%;padding:7vh 7vw;background:linear-gradient(90deg,#061c25ee 0%,#082b31bc 40%,#092b3020 80%);display:flex;flex-direction:column;justify-content:center;position:relative}.brandline{font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;color:#bcddd2;margin-bottom:18px}.logo{font-family:Georgia,serif;font-weight:500;font-size:clamp(4rem,10vw,8.5rem);letter-spacing:-.065em;line-height:1;color:#fff2c4;text-shadow:0 5px 45px #0c171f;margin:0}.subtitle{font-size:clamp(.65rem,1.5vw,1rem);font-weight:600;letter-spacing:.47em;color:#bcdece;margin:16px 0 26px;text-transform:uppercase}.intro{max-width:375px;line-height:1.7;font-size:.9rem;color:#cadfdb;margin:0 0 26px}.play-button{background:#e9be68;color:#203431;padding:17px 34px;min-width:210px;border-radius:7px;font-weight:800;font-size:1.05rem;box-shadow:0 6px 0 #977846,0 12px 30px #05161d77;align-self:flex-start}.play-button:hover{background:#ffe09b}.menu-links{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.ghost{border:1px solid #8ac0b55e;border-radius:8px;background:#0b2b36bb;padding:12px 20px;color:#dcebe5}.quiet{font-size:.7rem;color:#a8c5bf;margin-top:30px;letter-spacing:.08em}.site-link{color:#b5d3cf;font-size:.72rem;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;margin-top:7px}.art-credit{position:absolute;right:26px;bottom:22px;color:#c7d7c6;font-size:.62rem;letter-spacing:.15em}.dialog-shade{min-height:100%;display:grid;place-items:center;padding:24px;background:#071b27c9;}.panel{width:min(720px,100%);background:linear-gradient(150deg,#183c43,#102936);border:1px solid #658a8455;border-radius:20px;padding:30px;box-shadow:0 20px 100px #0006}.panel h1,.panel h2{font-family:Georgia,serif;letter-spacing:-.035em;font-weight:400;color:#fff0c6;margin:0 0 15px}.panel h1{font-size:2.4rem}.panel h2{font-size:1.8rem}.panel p{color:#c1d9d3;font-size:.9rem;line-height:1.65}.eyebrow{font-size:.66rem;letter-spacing:.2em;color:#9accbf;text-transform:uppercase;margin-bottom:12px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.level-card{background:#173e48;border:1px solid #80aaa766;padding:20px 15px;border-radius:12px;text-align:left;min-height:170px}.level-card small{color:#99cbbc;font-size:.65rem;letter-spacing:.1em}.level-card strong{font-family:Georgia,serif;font-size:1.35rem;display:block;margin:15px 0 10px;color:#f7e7b9}.level-card span{font-size:.73rem;color:#b2d4cc}.rule-demo{display:flex;align-items:center;gap:25px;padding:15px 0}.crystal-demo{width:45px;height:45px;transform:rotate(45deg);border:3px solid #c7fff2;border-radius:7px;background:#57cabb;box-shadow:0 0 20px #83f4cb55;display:inline-block;margin:12px}.crystal-demo.striped{background:repeating-linear-gradient(45deg,#174a59 0px,#174a59 6px,#57cabb 6px,#57cabb 13px)}.demo-label{font-size:.82rem;color:#c9e3d9}.control-help{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0;color:#cee4dc;font-size:.84rem}.key{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid #94b6a9;border-radius:9px;color:#ffdd88;font-weight:800;margin-right:7px}#hud{position:fixed;inset:0;pointer-events:none;z-index:4;padding:20px max(24px,env(safe-area-inset-left))}#hud button,#controls{pointer-events:auto}.hud-left{display:flex;align-items:center;gap:18px;font-size:.86rem;background:#0d2531ed;border:1px solid #c3efcb24;border-radius:10px;padding:11px 18px;width:max-content;max-width:85%;text-shadow:0 1px 3px #000}.hud-gem{color:#f7d585}#health{color:#f1b097;letter-spacing:5px}#level-name{color:#c9e5db;font-size:.72rem}#pause{position:absolute;right:max(22px,env(safe-area-inset-right));top:17px;width:50px;background:#18303ccb;border:1px solid #b6d1bc5e;border-radius:12px;font-size:1.3rem}#rule{position:absolute;top:80px;left:25px;display:flex;align-items:center;gap:12px;padding:11px 17px;background:#0c2835d9;border:1px solid #75aa8c70;border-radius:10px;max-width:calc(100% - 50px)}#rule small{display:block;font-size:.52rem;letter-spacing:.16em;color:#c5d1a9;margin-bottom:4px}#rule strong{font-size:.84rem;color:#fff0bb}#rule-texture{display:block;width:23px;height:23px;border:2px solid #c6fff0;background:#58c5b9;transform:rotate(45deg);border-radius:4px;margin-right:4px}#rule-texture.striped{background:repeating-linear-gradient(45deg,#164250 0px,#164250 4px,#58c5b9 4px,#58c5b9 8px)}#mission{position:absolute;right:25px;top:84px;font-size:.7rem;color:#e3f1de;text-align:right;text-shadow:0 2px 4px #051925;max-width:260px;background:#0d2531db;border-radius:7px;padding:7px 10px}#notice{position:absolute;top:31%;left:25%;right:25%;text-align:center;font-size:1rem;font-weight:650;color:#fff0b8;text-shadow:0 2px 8px #002229}#controls{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}#joystick{width:132px;height:132px;border-radius:50%;background:#d3fff015;border:2px solid #b5e7d94d;position:relative;pointer-events:auto;touch-action:none;box-shadow:inset 0 0 25px #061b2455;}#joystick span{position:absolute;bottom:11px;left:0;right:0;text-align:center;color:#b9ebda66;font-size:1rem}#stick{position:absolute;width:58px;height:58px;left:35px;top:35px;background:radial-gradient(circle at 40% 30%,#c1eddb8c,#557d7890);border:2px solid #d2ffef85;border-radius:50%;box-shadow:0 6px 20px #0005;pointer-events:none}.action-buttons{display:flex;gap:18px;align-items:end;pointer-events:auto}.action-buttons button{border-radius:50%;width:85px;height:85px;background:#132f3ba1;border:2px solid #d6eaca66;touch-action:none;box-shadow:0 5px 20px #001a2466}.action-buttons strong{font-size:1.8rem;display:block}.action-buttons small{font-size:.47rem;letter-spacing:.13em;display:block;margin-top:3px}.action-buttons #jump{width:99px;height:99px;border-color:#fbe3a9aa;background:#c3a56439;color:#ffe5a0}.action-buttons #boost{color:#a7efdd;margin-bottom:14px}.action-buttons button.down{transform:scale(.93);background:#e1eccc55}#tutorial{position:absolute;left:200px;right:240px;bottom:40px;text-align:center;color:#e6f6de;font-size:.75rem;line-height:1.7;text-shadow:0 2px 4px #09232e}#rotate{position:fixed;bottom:10px;left:20px;right:20px;text-align:center;padding:12px;background:#17363edb;border:1px solid #8bad9666;border-radius:9px;color:#e8e4c5;z-index:20;font-size:.75rem;pointer-events:none}.field{display:grid;gap:8px;margin:14px 0;font-size:.82rem;color:#c6e2d9}.field input,.field select{width:100%;background:#0b2834;border:1px solid #698e865e;border-radius:8px;padding:12px;color:white}.check{display:flex;align-items:start;gap:12px;color:#c6ddd5;font-size:.8rem;line-height:1.5;margin:16px 0}.check input{width:23px;height:23px;flex-shrink:0;accent-color:#e6c77e}.note{font-size:.74rem!important;color:#a5c3bd!important}.record{border-top:1px solid #74938944;padding:15px 0}.record h3{font-size:.95rem;color:#f2dfac}.record p{font-size:.78rem}.error{color:#ffc1a7}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sound-button{position:absolute;top:22px;right:24px;padding:10px 15px;background:#0b2634cc;border-radius:10px;color:#c9e1d3;font-size:.75rem}.menu-character{position:absolute;right:18vw;bottom:17vh;color:#d5efc7;font-size:.8rem;letter-spacing:.1em}#overlay:empty{display:none}
@media(max-height:550px){.menu{padding:5vh 7vw}.logo{font-size:5.2rem}.brandline{margin-bottom:6px}.subtitle{margin:8px 0 14px}.intro{margin-bottom:18px;font-size:.8rem;max-width:315px}.play-button{padding:13px 28px}.menu-links{margin-top:20px}.quiet{margin-top:15px}.panel{padding:23px}.panel h1{font-size:2rem}.levels{margin:12px 0}.level-card{min-height:135px;padding:16px}.level-card strong{margin:10px 0;font-size:1.2rem}#hud{padding-top:12px}.hud-left{padding:9px 13px}#pause{top:9px;min-height:43px;width:45px}#rule{top:62px;padding:8px 12px}#mission{top:70px}#joystick{width:112px;height:112px}#stick{left:25px;top:25px}#controls{bottom:16px}.action-buttons button{width:73px;height:73px}.action-buttons #jump{width:87px;height:87px}#tutorial{bottom:22px;font-size:.7rem}}
@media(max-width:650px) and (orientation:portrait){.menu{padding:8vh 7vw;background:linear-gradient(180deg,#071c27bb,#09232ade)}.logo{font-size:5.5rem}.subtitle{font-size:.62rem;letter-spacing:.35em}.levels,.twocol{grid-template-columns:1fr}.level-card{min-height:110px}.menu-character{display:none}.art-credit{display:none}.panel{padding:24px}.hud-left{gap:8px;padding:10px}#level-name{display:none}#joystick{width:110px;height:110px}#stick{left:24px;top:24px}.action-buttons{gap:10px}.action-buttons button{width:66px;height:66px}.action-buttons #jump{width:78px;height:78px}#controls{left:14px;right:14px;bottom:45px}#tutorial{left:20px;right:20px;bottom:175px}#mission{top:142px;left:25px;text-align:left}#notice{left:12%;right:12%;top:34%}.intro{max-width:300px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
