:root{font-family:"Segoe UI",Arial,sans-serif;color:#eaf7f3;background:#102d38;font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(ellipse at 70% 0,#2c5e65,#143b46 45%,#102b36 80%)}button,a,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,.stage:focus-visible{outline:3px solid #f6d88d;outline-offset:3px}
.shell{max-width:1390px;margin:auto;padding:10px clamp(12px,3vw,38px) 28px}.topbar{display:flex;align-items:center;gap:18px;min-height:46px;border-bottom:1px solid #b8e7ed24}.brand{color:#fff9e8;text-decoration:none;font-weight:800;font-size:15px}.tag{margin-left:auto;font-size:10px;letter-spacing:.2em;color:#a5c9c8;font-weight:800}#sound{margin-left:auto;background:transparent;color:#d1e5e1;border:1px solid #b8e7ed36;border-radius:8px;min-height:36px;padding:5px 12px;font-size:11px}
.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:22px 0 17px}.eyebrow{font-size:10px;letter-spacing:.24em;font-weight:800;color:#e3c784;margin:0 0 7px}h1{font-family:Georgia,serif;font-size:clamp(33px,4vw,52px);letter-spacing:-.04em;line-height:1;margin:0}.intro>p{font-family:Georgia,serif;font-style:italic;color:#bfd8d6;font-size:18px;margin:0 0 4px}
#volume{width:72px;min-height:36px;accent-color:#e9c379;margin:0}
.stage{position:relative;width:100%;height:clamp(510px,51vw,730px);overflow:hidden;border:1px solid #adcfc475;border-radius:18px;background:#9bd8ec;box-shadow:0 18px 70px #0005,0 0 0 5px #a0cbb50a;touch-action:none}.stage canvas{display:block;width:100%;height:100%}.game-hud{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:14px;padding:15px 20px;background:linear-gradient(#173c4db5,transparent);color:#fff;text-shadow:0 1px 4px #173845}.realm-label{display:grid;gap:3px;min-width:130px}.realm-label span{font-size:9px;letter-spacing:.2em;font-weight:800}.realm-label strong{font-size:17px}.hud-values{margin-left:auto;display:flex;gap:28px;text-align:center}.hud-values div{display:grid;gap:2px}.hud-values span{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.hud-values strong{font-size:19px;font-variant-numeric:tabular-nums}#lives{color:#ffebc6;letter-spacing:2px;font-size:16px}
#pause{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border:1px solid #fff7;border-radius:12px;background:#184751b5;color:#fff;font-size:20px}#pause:disabled{opacity:.35;cursor:default}.progress{position:absolute;z-index:3;left:20px;right:20px;top:74px;height:3px;background:#ffffff40;border-radius:5px;overflow:hidden}.progress>div{height:100%;width:0;background:linear-gradient(90deg,#ffce85,#a1ffe4);transition:width .3s}.height-label{position:absolute;right:18px;bottom:18px;display:grid;gap:3px;text-align:right;color:#f2fffa;font-size:12px;font-weight:800;text-shadow:0 1px 4px #234453;z-index:1}.height-label span:last-child{font-size:10px;font-weight:400}.toast{position:absolute;left:50%;top:100px;transform:translateX(-50%);z-index:4;background:#153e49e8;color:#ffecb5;padding:9px 18px;border:1px solid #dfc99688;border-radius:99px;text-align:center;font-size:12px;font-weight:700;max-width:90%;pointer-events:none}
.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;padding:clamp(24px,4vw,62px);background:#153e4969;backdrop-filter:blur(4px)}.overlay-art{display:none}.overlay.ready{background:#85cee3;backdrop-filter:none}.overlay.ready .overlay-art{display:block;position:absolute;inset:0;background:linear-gradient(90deg,#092b40e8 0,#103b4cb5 28%,#163e4015 75%),url("../../assets/island-climb.png") center/cover no-repeat}.overlay-card{position:relative;max-width:430px;width:100%;border:1px solid #e8d9af55;border-radius:17px;background:#113947f0;padding:28px;box-shadow:0 10px 50px #0b233230}.overlay.ready .overlay-card{background:transparent;border:0;padding:0;box-shadow:none}.overlay-card h2{font-family:Georgia,serif;font-size:clamp(29px,3.9vw,51px);line-height:1.05;letter-spacing:-.04em;color:#fff7e4;margin:0 0 16px}.overlay-card>p:not(.eyebrow){font-size:13px;color:#d2e5df;line-height:1.6;max-width:350px;margin:0 0 22px}.start-options{display:flex;gap:9px;margin:20px 0}.start-options label{display:grid;gap:6px;flex:1;color:#d9eee6;text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:800}.start-options select{width:100%;min-width:0;min-height:39px;padding:8px;border:1px solid #aacfc068;border-radius:8px;color:#fff4d8;background:#1a4856;font-size:11px;letter-spacing:normal}#start{display:flex;align-items:center;justify-content:space-between;gap:35px;min-width:214px;min-height:50px;padding:12px 20px;border:1px solid #ffe8a8;border-radius:9px;color:#173c40;background:linear-gradient(#ffe6a4,#e9ba62);font-weight:850;font-size:14px;box-shadow:0 4px 0 #95692c,0 8px 24px #0003}#start:hover{filter:brightness(1.1)}#start:disabled{filter:grayscale(1);cursor:default}.overlay-card .quick-help{font-size:10px!important;line-height:1.8!important;color:#d1dfcf!important;margin:22px 0 0!important}.quick-help b{padding:0 6px;color:#f1d494}.quick-help span{color:#adc5c7}
.touch-controls{position:absolute;left:15px;bottom:max(14px,env(safe-area-inset-bottom));z-index:4;pointer-events:none}
.direction-pad{width:156px;height:156px;padding:4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:3px;border:1px solid #f2dfa089;border-radius:18px;background:#173e4bdc;box-shadow:0 7px 25px #16323c8c;touch-action:none;pointer-events:auto;user-select:none;-webkit-user-select:none}
.direction-pad button{min-width:0;min-height:0;padding:0;border:1px solid #f4eed28c;border-radius:11px;background:#234d59dc;color:#fff4d1;font-size:24px;font-weight:800;display:grid;place-items:center;touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.direction-pad button.pressed{background:#e8ca88;color:#24403b;box-shadow:inset 0 2px 8px #9b752b80}.direction-pad .pad-centre{background:#d8e5dfd9;color:#21434a;font-size:19px;display:flex;flex-direction:column;justify-content:center;gap:0}.pad-centre small{font-size:7px;letter-spacing:.06em}
.hint{margin:12px 3px 24px;font-size:12px;line-height:1.5;color:#bdd6d3}.journey-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:10px 0 26px}.info-card{position:relative;padding-left:36px}.note-number{position:absolute;left:0;top:2px;color:#b99d5e;font-size:10px;font-weight:800}.info-card h2{font-family:Georgia,serif;font-size:19px;margin:0 0 8px;color:#fff1d2}.info-card p{font-size:12px;line-height:1.65;color:#aac9c6;margin:0}kbd{font:inherit;font-size:10px;color:#e1e6d2;background:#a7cfbc12;border:1px solid #a4bfad40;border-radius:4px;padding:1px 4px}.game-footer{border-top:1px solid #b4d3ca24;padding-top:16px;display:flex;gap:25px;align-items:center;justify-content:space-between}.game-footer>p{max-width:420px;font-size:10px;line-height:1.7;color:#89aaa9}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:761px) and (hover:hover) and (pointer:fine){.touch-controls{display:none}}
@media(max-width:760px){.shell{padding:5px 10px 20px}.tag{display:none}.intro{margin:16px 0 14px}.intro>p{display:none}.eyebrow{font-size:8px}.stage{height:calc(100svh - 55px);min-height:440px;max-height:800px;border-radius:14px}.game-hud{padding:12px 11px;gap:8px}.realm-label{min-width:86px}.realm-label span{font-size:7px}.realm-label strong{font-size:12px}.hud-values{gap:12px}.hud-values span{font-size:7px}.hud-values strong{font-size:15px}#lives{font-size:11px;letter-spacing:0}.progress{top:67px;left:12px;right:12px}.overlay{padding:24px}.overlay.ready{align-items:end}.overlay.ready .overlay-art{background-image:linear-gradient(0deg,#123642 0,#143b48ee 35%,#143b4840 70%),url("../../assets/island-climb.png");background-position:60% top}.overlay-card h2{font-size:36px}.overlay-card>p:not(.eyebrow){font-size:12px;margin-bottom:14px}.overlay-card .quick-help{margin-top:15px!important}.start-options{margin:14px 0}.height-label{bottom:18px;right:15px}.journey-notes{grid-template-columns:1fr;gap:20px;padding-top:0}.game-footer{display:block}.toast{top:82px}.hint{font-size:11px}.touch-controls{left:10px}}
@media(max-width:360px){.touch-controls{left:7px}.direction-pad{width:150px;height:150px}.hud-values{gap:8px}.overlay{padding:19px}.overlay-card h2{font-size:31px}.overlay-card .quick-help{font-size:9px!important}}
@media(max-height:520px) and (orientation:landscape){.intro{display:none}.stage{height:calc(100svh - 52px);min-height:290px;max-height:none}.overlay{padding:15px 28px}.overlay-card{max-width:440px;padding:18px}.overlay-card h2{font-size:27px;margin-bottom:8px}.overlay-card>p:not(.eyebrow){font-size:11px;margin-bottom:8px}.start-options{margin:8px 0}.overlay-card .quick-help{display:none}.game-hud{padding:8px 15px}.progress{top:61px}.touch-controls{bottom:8px}.height-label{bottom:18px}.overlay.ready .overlay-art{background-image:linear-gradient(90deg,#103846ee,#153e4950),url("../../assets/island-climb.png")}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Crystal quest and the paused crafting pack. */
.quest-bar{position:absolute;z-index:3;top:83px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#fff9d8;font-size:11px;font-weight:700;text-shadow:0 1px 3px #173845;pointer-events:none}
#quest-status{max-width:58%;padding:5px 9px;background:#194751cc;border-radius:20px}
#gear{pointer-events:auto;display:flex;align-items:center;gap:7px;min-height:44px;border:1px solid #ffe1a58c;border-radius:12px;padding:5px 12px;color:#fff1c9;background:#153d4ae8;font-size:12px}
#gear small{font-size:8px;letter-spacing:.1em;color:#c9d8c7}#gear:disabled{opacity:.45;cursor:default}#gear[data-craft-ready="true"]{box-shadow:0 0 0 2px #ead48465}
.toast{top:142px}.progress{height:5px}.progress>div{background:linear-gradient(90deg,#a496fc,#81eff5,#caffe5,#ffe298)}
.gear-overlay{position:absolute;inset:0;z-index:7;display:grid;place-items:center;padding:20px;background:#123541b8;backdrop-filter:blur(5px)}
.gear-card{width:min(560px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid #d8c49a9c;border-radius:20px;background:linear-gradient(140deg,#244f57,#143742);box-shadow:0 16px 60px #08252d66;touch-action:pan-y}
.gear-card>header{display:flex;align-items:start;gap:15px;justify-content:space-between}.gear-card h2{font:27px/1.1 Georgia,serif;color:#fff1d2;margin:0}.gear-copy{color:#c1d8d3;font-size:12px;line-height:1.6;margin:14px 0}
#close-gear{flex-shrink:0;min-width:44px;min-height:44px;border:1px solid #dfcb9b66;border-radius:50%;background:#173e48;color:#ffe9b9;font-size:24px}
.materials{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.materials span{background:#143641;border:1px solid #91b0a83d;border-radius:20px;padding:8px 12px;color:#dfecd9;font-size:12px}.materials strong{color:#ffe8a7}
.weapon-list{display:grid;gap:8px}.weapon-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px 10px;border:1px solid #b2c5ae29;border-radius:14px;background:#122f376e}.weapon-row[data-equipped="true"]{border-color:#eace8a9c;background:#355351}
.weapon-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#ffe2a2;background:#789a9230;font-size:24px}.weapon-name{display:block;font-size:13px;color:#fff0cc}.weapon-description,.weapon-cost{margin:5px 0 0;font-size:10px;color:#b9d2ca;line-height:1.4}.weapon-cost{color:#e8cf9b}
.weapon-action{min-height:44px;min-width:68px;border:1px solid #e6ca8470;border-radius:10px;background:#e8c683;color:#183e42;padding:6px 10px;font-size:11px;font-weight:800}.weapon-action:disabled{background:#27454b;color:#849e9a;border-color:#6688814d;cursor:default}.gear-footnote{margin:15px 0 0;color:#9ebbb4;font-size:10px;line-height:1.5}
@media(max-width:760px){.quest-bar{top:76px;left:11px;right:11px;font-size:10px}#gear{font-size:11px;padding:5px 8px;gap:5px}#gear small{font-size:7px}#quest-status{padding:5px 8px}.toast{top:132px;font-size:10px}.gear-overlay{padding:12px}.gear-card{padding:17px}.gear-card h2{font-size:22px}.gear-copy{font-size:11px}.weapon-row{grid-template-columns:27px 1fr auto;gap:8px;padding:10px 8px}.weapon-icon{width:27px;height:27px;font-size:20px}.weapon-action{min-width:61px;padding:5px 7px}.height-label{bottom:18px}}
@media(max-width:360px){.quest-bar{gap:6px;font-size:9px}#gear{max-width:135px}.weapon-row{grid-template-columns:1fr auto}.weapon-icon{display:none}.materials{gap:5px}.materials span{font-size:10px;padding:7px 9px}.gear-card{padding:13px}.gear-card h2{font-size:21px}}
@media(max-height:520px) and (orientation:landscape){.quest-bar{top:69px;left:15px;right:15px;font-size:10px}.toast{top:117px}.direction-pad{width:150px;height:150px}.height-label{bottom:18px}.gear-overlay{padding:9px}.gear-card{padding:15px}.gear-card>header{position:sticky;top:-15px;background:#214b54;padding:8px 0}.gear-copy{margin:10px 0}}
.crystal-rack{display:flex;gap:8px;list-style:none;margin:0;padding:0;align-items:center}
.crystal-rack li{position:relative;width:32px;height:38px;filter:drop-shadow(0 2px 3px #15343d99)}.crystal-rack svg{display:block;width:100%;height:100%;overflow:visible}
.crystal-shape{fill:#16354377;stroke:var(--crystal);stroke-width:1.5;stroke-dasharray:2 2;opacity:.78}.crystal-facets{fill:none;stroke:var(--crystal);stroke-width:.6;opacity:.26}
.crystal-rack [data-found="true"] .crystal-shape{fill:var(--crystal);stroke:#fff2c9;stroke-dasharray:none;opacity:1}.crystal-rack [data-found="true"] .crystal-facets{stroke:#fff8e5;opacity:.8}
.crystal-check{display:none;position:absolute;bottom:-1px;right:-3px;color:#fff;font-size:11px;font-weight:900;text-shadow:0 1px 3px #18383d}.crystal-rack [data-found="true"] .crystal-check{display:block}
#quest-status{position:absolute;top:46px;left:0;max-width:100%;font-size:10px;padding:4px 9px;pointer-events:none}
.toast{top:161px}
@media(max-width:760px){.crystal-rack{gap:4px}.crystal-rack li{width:26px;height:32px}#gear #equipped-name{display:none}#gear{min-width:57px;justify-content:center}#gear small{font-size:8px}#quest-status{top:43px;font-size:9px}.toast{top:148px}}
@media(max-width:360px){.crystal-rack{gap:3px}.crystal-rack li{width:25px;height:31px}#gear{max-width:none;min-width:54px;padding:5px}}
@media(max-height:520px) and (orientation:landscape){.crystal-rack li{width:24px;height:28px}.crystal-rack{gap:5px}#quest-status{top:39px;font-size:9px}.toast{top:135px;font-size:10px}}
.boss-health{position:absolute;z-index:3;left:50%;top:153px;transform:translateX(-50%);width:190px;max-width:64%;padding:7px 10px;border:1px solid #efb39688;border-radius:12px;background:#4a2b40df;color:#fff0d5;text-align:center;font-size:10px;pointer-events:none}.boss-health>div{height:5px;margin-top:6px;border-radius:8px;overflow:hidden;background:#160d2766}.boss-health i{display:block;height:100%;background:linear-gradient(90deg,#ee866e,#ffdf9a);transition:width .15s}.has-guardian .toast{top:204px}
@media(max-height:520px) and (orientation:landscape){.boss-health{top:123px;width:165px;padding:5px 8px;font-size:9px}.has-guardian .toast{top:167px}}
