@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&display=swap');
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#8fcac3;color:#fff;font-family:Outfit,system-ui,sans-serif}canvas{display:block;width:100vw;height:100dvh;touch-action:none}button{font:inherit;color:inherit;cursor:pointer;border:0}header{position:absolute;top:28px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;gap:10px;align-items:center;font-size:24px;font-weight:900;letter-spacing:1px;text-shadow:0 2px 10px #183b4b45}.brand>span{font-size:40px}.brand small{display:block;font-size:10px;letter-spacing:2.3px;margin-top:4px}.topright{display:flex;align-items:center;gap:20px;font-size:13px;font-weight:700;letter-spacing:1px}.topright button{pointer-events:auto;width:42px;height:42px;background:#15343ddd;border:1px solid #ffffff30;border-radius:12px;font-size:22px}.status{position:absolute;left:32px;top:113px;background:#142c35ed;box-shadow:0 8px 30px #173e3720;border:1px solid #ffffff20;border-radius:17px;padding:16px 20px;width:248px}.player{display:flex;gap:13px;align-items:center;font-size:35px}.player b{font-size:11px;letter-spacing:1.6px;display:block;margin-bottom:7px}.player #hearts{font-size:17px;letter-spacing:1px}.resources{display:flex;justify-content:space-between;border-top:1px solid #ffffff16;padding-top:12px;margin-top:12px;font-size:17px}.resources b{margin-left:5px}.quest{position:absolute;right:32px;top:113px;width:260px;background:#16323cda;border:1px solid #ffffff20;padding:20px;border-radius:17px}.quest small{font-size:10px;letter-spacing:2px;color:#c4f395}.quest h2{font-size:20px;line-height:1.25;margin:10px 0}.quest p{font-size:13px;line-height:1.65;color:#c0d3d5;margin:10px 0 20px}.badge{font-size:10px;letter-spacing:1px;font-weight:700;color:#d5f0cf}.badge span{margin:0 8px;color:#8baba3}#notice{position:absolute;left:50%;bottom:164px;transform:translateX(-50%);padding:10px 18px;border-radius:30px;background:#18363bd9;font-size:14px;white-space:nowrap;transition:opacity .3s}.toolbar{position:absolute;bottom:61px;left:50%;transform:translateX(-50%);display:flex;gap:6px;background:#142c35f0;border:1px solid #ffffff25;border-radius:20px;padding:9px;box-shadow:0 12px 40px #0f393a40}.toolbar button{background:transparent;position:relative;min-width:92px;height:78px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid transparent}.toolbar button:hover{background:#ffffff15}.toolbar button.active{background:#d7fca9;color:#223b2d;box-shadow:0 2px 15px #d7fca925}.toolbar span{font-size:30px}.toolbar b{font-size:11px;font-weight:500}.toolbar kbd{position:absolute;top:5px;left:7px;font-size:10px;opacity:.6}.compass{position:absolute;right:40px;bottom:85px;text-align:center;font-size:13px;font-weight:bold}.compass span{font-size:50px}footer{position:absolute;bottom:17px;left:0;width:100%;display:flex;justify-content:center;align-items:center;gap:22px;color:#244647;font-size:11px;font-weight:600}kbd{font:inherit;font-size:10px;background:#ffffff32;padding:3px 5px;border-radius:4px;margin-right:4px}footer button{background:none;font-size:11px;color:#244647}.veil{position:absolute;inset:0;background:#102d3a80;backdrop-filter:blur(8px);display:grid;place-items:center;z-index:10}.veil[hidden]{display:none}.dialog{width:min(450px,90vw);padding:34px;background:#142c35;border:1px solid #ffffff30;border-radius:24px;text-align:center;box-shadow:0 20px 100px #0004}.large{font-size:48px}.dialog h1{font-size:30px}.dialog p{font-size:16px;line-height:1.6;color:#c0d3d5}.instructions{text-align:left;font-size:14px;line-height:1.9;color:#cad8d9}.dialog button{margin-top:25px;padding:14px 30px;background:#d7fca9;color:#20382d;border-radius:10px;font-weight:700}.mobile{display:none}@media(max-width:700px){header{top:16px;left:16px;right:16px}.brand{font-size:17px}.brand small{font-size:8px;letter-spacing:1px}.brand>span{font-size:30px}.topright{gap:8px;font-size:10px}.status{left:16px;top:85px;width:193px;padding:12px}.player{font-size:27px}.player #hearts{font-size:13px}.quest{display:none}.resources{font-size:14px}.toolbar{bottom:20px;padding:6px;gap:2px}.toolbar button{min-width:60px;height:68px}.toolbar span{font-size:25px}.toolbar b{font-size:9px}footer,.compass{display:none}#notice{bottom:105px;font-size:11px;max-width:95vw;white-space:normal;text-align:center}.mobile{display:block}#stick{position:absolute;left:24px;bottom:140px;width:104px;height:104px;background:#15323b66;border:1px solid #ffffff70;border-radius:50%;touch-action:none}#stick div{width:42px;height:42px;position:absolute;top:30px;left:30px;background:#e7ffccbb;border-radius:50%;pointer-events:none}.mobile button{position:absolute;right:25px;bottom:140px;width:70px;height:70px;background:#d7fca9d9;border:2px solid #ffffff70;border-radius:50%;font-size:30px;touch-action:none}.mobile #dash{right:100px;bottom:215px;width:50px;height:50px;font-size:23px}}

.experience{margin-top:14px}.experience>div:first-child{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#d7fca9}.xpbar{height:6px;border-radius:6px;background:#ffffff16;margin-top:7px;overflow:hidden}#xpfill{height:100%;width:0;background:#c7f8a2;transition:width .2s}.resources{margin-top:12px}.upgrade-dialog{width:min(820px,94vw);padding:32px;background:#142c35;border:1px solid #c7f8a255;border-radius:24px;text-align:center}.upgrade-dialog>small{color:#d7fca9;letter-spacing:2px}.upgrade-dialog h1{font-size:30px;margin:14px 0 8px}.upgrade-dialog p{color:#bdced1;font-size:15px}#choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}#choices button{display:flex;align-items:center;flex-direction:column;gap:15px;background:#203d46;border:1px solid #ffffff25;border-radius:16px;padding:25px 15px;text-align:center;min-height:205px}#choices button:hover,#choices button:focus,#choices button:focus-visible,#choices button[data-selected="true"]{background:#304f45;border-color:#d7fca9;outline:2px solid #d7fca9;transform:translateY(-3px)}#choices span{font-size:43px}#choices strong{font-size:19px}#choices small{font-size:14px;line-height:1.45;color:#cbdad6}.quest{width:260px}.badge #loadout{font-size:20px;letter-spacing:3px;margin:0 0 10px;display:block}.toolbar b{font-size:10px}#notice{pointer-events:none}.dialog{max-height:90dvh;overflow:auto}.mobile button{transition:opacity .15s}@media(max-width:700px){.status{width:180px}.experience>div:first-child{font-size:10px}.resources{padding-top:8px;margin-top:9px}.upgrade-dialog{padding:22px 16px;max-height:94dvh;overflow:auto}.upgrade-dialog h1{font-size:23px}#choices{grid-template-columns:1fr;gap:9px;margin-top:16px}#choices button{min-height:84px;padding:13px 15px;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;text-align:left}#choices span{font-size:34px;grid-row:span 2}#choices strong{font-size:17px}#choices small{font-size:13px}.toolbar b{font-size:8px}#hearts{max-width:126px;white-space:normal}.topright{gap:6px}.brand small{font-size:7px;letter-spacing:.8px}}

.topright a{pointer-events:auto;text-decoration:none;color:#fff;background:#16313deb;padding:11px 14px;border:1px solid #ffffff30;border-radius:10px;font-size:13px;letter-spacing:0}.scoreline{display:flex;justify-content:space-between;font-size:12px;margin-top:10px;color:#d7fca9}.scoreline span{color:#b8ccd0}.adventure{width:min(650px,94vw);max-height:92dvh;overflow:auto;padding:30px;background:#142c35;border:1px solid #c7f8a255;border-radius:22px;box-shadow:0 20px 80px #0005}.adventure>small{color:#c7f8a2;font-size:12px;line-height:1.6}.adventure h1{font-size:28px;margin:12px 0 20px}.adventure p{color:#c3d5d7;font-size:14px;line-height:1.6}.run-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.run-fields label{font-size:14px;color:#d7fca9;display:flex;flex-direction:column;gap:9px}.run-fields select{width:100%;min-width:0;padding:12px 9px;color:white;background:#25434e;border:1px solid #ffffff40;border-radius:9px;font:inherit;font-size:13px}.records{padding:15px;background:#203d46;border-radius:12px;margin:18px 0}.records h2{font-size:18px;margin:0}.records p{font-size:13px}.records small{color:#adc5c8;line-height:1.5}.adventure button{padding:13px 17px;border-radius:10px;background:#d7fca9;color:#18362b;font-weight:700}.menu-actions{display:flex;gap:10px;margin:18px 0}.menu-actions button[hidden]{display:none}.adventure>a{display:block;color:#d7fca9;font-size:14px;margin-top:16px}#runMenu{z-index:30}#stageModal{z-index:15}.veil button:focus,.veil button:focus-visible,.veil select:focus,.veil select:focus-visible,.veil a:focus,.veil a:focus-visible,.veil [data-menu-selected="true"],.adventure button:focus-visible,.topright a:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 4px #d7fca944}@media(max-width:700px){header{align-items:flex-start}.brand{font-size:14px}.brand small{display:none}.brand>span{font-size:22px}.topright{gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:210px}.topright a{padding:9px;font-size:11px}.topright button{width:32px;height:32px;font-size:16px}.topright #day{order:4;flex-basis:100%;text-align:right}.adventure{padding:22px}.adventure h1{font-size:24px}.run-fields{grid-template-columns:1fr}.menu-actions{flex-wrap:wrap}.scoreline{font-size:10px}.status{top:90px}.adventure p{font-size:14px}}

.title-screen{background:radial-gradient(circle at 50% 35%,#285456aa,#102d3acc 70%)}.title-card{border-color:#d7fca988}.title-kicker{display:block;text-align:center;letter-spacing:3px}.title-card h1{font-size:clamp(36px,7vw,64px);letter-spacing:2px;text-transform:uppercase;margin:10px 0 6px;text-align:center;text-shadow:0 4px 20px #06151bcc}.title-subtitle{text-align:center;margin:0 0 22px!important;color:#d7fca9!important;font-size:15px!important}
.status,.toolbar{background:rgb(20 44 53 / 50%)}.powerups{position:absolute;right:118px;bottom:28px;display:flex;gap:7px;z-index:4}.powerups button{min-width:58px;height:42px;padding:5px 8px;border-radius:12px;background:#16313de6;border:1px solid #ffffff35;display:grid;grid-template-columns:auto auto;grid-template-rows:1fr auto;align-items:center;justify-content:center;gap:0 6px;font-size:18px}.powerups button b{font-size:12px}.powerups button kbd{grid-column:1/-1;font-size:7px;padding:0;background:transparent;opacity:.65;margin:0}.powerups button:disabled{opacity:.32;cursor:default}
@media(max-width:700px){header{top:8px;left:10px;right:10px}.brand{font-size:12px;gap:5px;line-height:1.05}.brand>span{font-size:18px}.topright{gap:3px;max-width:190px}.topright a{padding:7px 9px;font-size:10px}.topright button{width:30px;height:30px;font-size:15px}.topright #day{font-size:9px;line-height:1}.status{left:10px;top:62px;width:150px;padding:8px 9px;border-radius:12px}.player{gap:7px;font-size:20px}.player b{font-size:9px;letter-spacing:1px;margin-bottom:3px}.player #hearts{font-size:10px;letter-spacing:0;max-width:none;white-space:nowrap}.experience{margin-top:8px}.experience>div:first-child{font-size:8px;letter-spacing:.4px}.xpbar{height:4px;margin-top:4px}.scoreline{font-size:8px;margin-top:6px}.resources{font-size:10px;padding-top:6px;margin-top:6px}.resources b{margin-left:2px}.toolbar{bottom:7px;width:calc(100vw - 12px);padding:3px;gap:0;border-radius:13px;justify-content:center}.toolbar button{min-width:0;width:20%;height:49px;border-radius:9px;gap:1px;padding:2px}.toolbar span{font-size:19px}.toolbar b{font-size:7px;line-height:1.05}.toolbar kbd{top:2px;left:3px;font-size:7px;padding:1px 2px}#notice{bottom:62px;font-size:10px;padding:7px 11px;max-width:82vw}#stick{left:12px;bottom:72px;width:78px;height:78px}#stick div{width:30px;height:30px;top:23px;left:23px}.mobile button{right:12px;bottom:76px;width:58px;height:58px;font-size:24px}.mobile #dash{right:72px;bottom:135px;width:42px;height:42px;font-size:19px}}
@media(max-width:700px){.powerups{right:7px;top:72px;bottom:auto;gap:4px;flex-direction:column}.powerups button{min-width:40px;width:40px;height:35px;padding:2px 4px;border-radius:9px;font-size:15px;gap:0 3px}.powerups button b{font-size:9px}.powerups button kbd{display:none}}
#settingsModal{z-index:40}.settings-panel{width:min(560px,94vw)}.settings-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.settings-fields label{font-size:14px;color:#d7fca9;display:flex;flex-direction:column;gap:8px}.settings-fields label:first-child{grid-column:1/-1}.settings-fields select{width:100%;padding:12px 9px;color:#fff;background:#25434e;border:1px solid #ffffff40;border-radius:9px;font:inherit;font-size:13px}.setting-help{padding:13px 15px;background:#203d46;border-radius:12px;border:1px solid #ffffff18}#touchTarget{position:fixed;width:34px;height:34px;border:2px solid #e7ffccaa;border-radius:50%;box-shadow:0 0 0 7px #18363b38;pointer-events:none;transform:translate(-50%,-50%);z-index:3}#touchTarget::after{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:#e7ffccdd}
@media(max-width:700px){body{touch-action:none}.topright{max-width:225px}.settings-fields{grid-template-columns:1fr}.settings-fields label:first-child{grid-column:auto}#stick{width:var(--touch-stick-size,78px);height:var(--touch-stick-size,78px)}#stick div{width:38%;height:38%;top:31%;left:31%}#stick.floating{position:fixed;bottom:auto;background:#15323b7a;z-index:3}.settings-panel{padding:20px}.settings-panel h1{font-size:23px;margin-bottom:10px}.settings-panel p{font-size:13px}.settings-fields{gap:10px;margin:14px 0}.settings-fields select{padding:10px 8px;font-size:12px}}
@media(pointer:coarse){body{touch-action:none}.mobile{display:block}#stick{position:absolute;left:12px;bottom:72px;width:var(--touch-stick-size,78px);height:var(--touch-stick-size,78px);background:#15323b66;border:1px solid #ffffff70;border-radius:50%;touch-action:none}#stick div{width:38%;height:38%;position:absolute;top:31%;left:31%;background:#e7ffccbb;border-radius:50%;pointer-events:none}#stick.floating{position:fixed;bottom:auto;background:#15323b7a;z-index:3}.mobile button{position:absolute;right:12px;bottom:76px;width:58px;height:58px;background:#d7fca9d9;border:2px solid #ffffff70;border-radius:50%;font-size:24px;touch-action:none}.mobile #dash{right:72px;bottom:135px;width:42px;height:42px;font-size:19px}}
