@font-face{font-family:RabenSerif;src:local("Palatino Linotype"),local("Book Antiqua"),local("Georgia");font-display:swap}
:root{color-scheme:dark;--ink:#080e18;--paper:#e7e3d8;--muted:#969eab;--gold:#d4b883;--line:rgba(212,184,131,.23);--blue:#9cc8dc;--touch-scale:1;--footer:34px}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);color:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:hover:not(:disabled){color:#fff3d8}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}#game-root{position:fixed;inset:0 0 calc(var(--footer) + env(safe-area-inset-bottom)) 0;overflow:hidden;isolation:isolate;user-select:none;touch-action:none}#game{display:block;width:100%;height:100%;background:#080e18}#screen-layer{position:absolute;inset:0;pointer-events:none}.screen{position:absolute;inset:0;pointer-events:auto;padding:clamp(20px,5.2vh,65px) max(30px,env(safe-area-inset-right)) 24px max(30px,env(safe-area-inset-left));overflow:auto}.centered{display:flex;justify-content:center;align-items:center}.dimmed{background:rgba(4,8,14,.7);backdrop-filter:blur(7px)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:RabenSerif,Georgia,serif;font-weight:400}h2{font-size:clamp(28px,4.3vw,50px);line-height:1.1;letter-spacing:-.02em;margin-bottom:18px}h3{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);margin:26px 0 14px}p{line-height:1.75;font-size:15px}small{font-size:11px;line-height:1.5}strong{font-weight:500}.overline{font-size:10px;font-weight:600;letter-spacing:.28em;color:var(--gold);line-height:1.5;margin:0 0 18px}.utility{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(32px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;z-index:6;pointer-events:none}.edition{color:var(--gold);font-size:24px;display:flex;align-items:center;gap:12px}.edition span{font-size:10px;letter-spacing:.22em;opacity:.7}.utility-actions{display:flex;align-items:center;gap:14px;pointer-events:auto}.utility-button{font-size:14px;min-width:38px;min-height:38px;color:#d6d8da}.utility-button span{font-size:10px;opacity:.5}.utility-button:last-child{font-size:23px}.title-screen{display:flex;align-items:center;padding-left:clamp(45px,8.8vw,180px);overflow:hidden}.title-copy{width:650px;max-width:65%;padding-top:42px;position:relative;z-index:2}.title-copy .overline{font-size:10px;letter-spacing:.36em;margin-bottom:12px}h1{font-size:clamp(47px,6.8vw,105px);letter-spacing:.04em;line-height:1;margin:0 0 11px;color:#e3d4b3;text-shadow:0 2px 14px #05070b,0 0 40px rgba(220,199,155,.13)}.subtitle{font-size:clamp(8px,.85vw,12px);letter-spacing:.28em;color:#c0bdaf;margin:0}.title-rule{display:flex;align-items:center;gap:16px;width:250px;margin:25px 0;color:var(--gold);font-size:16px}.title-rule:before,.title-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold));opacity:.5}.title-rule:after{transform:rotate(180deg)}.title-intro{color:#a8b3c2;font-family:RabenSerif,Georgia,serif;font-size:18px;line-height:1.7;margin-bottom:22px;max-width:390px}.menu-actions{display:flex;align-items:flex-start;flex-direction:column;gap:2px}.menu-item{font-family:RabenSerif,Georgia,serif;font-size:22px;text-align:left;min-width:240px;min-height:43px;position:relative;padding:5px 8px 5px 25px;transition:color .15s,letter-spacing .15s}.menu-item:before{content:"";position:absolute;left:0;top:19px;width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg);opacity:0}.menu-item:hover:before,.menu-item.primary:before{opacity:1}.menu-item:hover,.menu-item.primary{color:var(--gold)}.menu-item:hover{letter-spacing:.03em}.input-hint{font-size:8px;letter-spacing:.16em;color:#6c7a8d;margin:26px 0 0;line-height:1.8}.title-caption{position:absolute;right:10%;bottom:9%;text-align:center;display:flex;flex-direction:column;gap:8px;text-shadow:0 2px 12px #000}.title-caption span{letter-spacing:.35em;font-family:Georgia,serif;color:var(--gold);font-size:14px}.title-caption small{color:#99a7b8;letter-spacing:.08em;font-size:10px}.version{position:absolute;right:30px;bottom:20px;color:#667386;font-size:10px;letter-spacing:.1em}.save-card{padding:13px 0 0 25px;color:#8e9ba8;font-size:11px;line-height:1.8}.save-card strong{display:block;color:#c6cdd2}.panel{width:min(100%,650px);padding:34px 38px;background:linear-gradient(140deg,rgba(20,29,42,.95),rgba(8,14,24,.97));border:1px solid var(--line);box-shadow:0 30px 100px #0008;position:relative;max-height:100%;overflow:auto}.panel:before,.story-card:before{content:"";position:absolute;left:12px;top:12px;width:20px;height:20px;border-top:1px solid #ad94675c;border-left:1px solid #ad94675c;pointer-events:none}.panel:after,.story-card:after{content:"";position:absolute;right:12px;bottom:12px;width:20px;height:20px;border-bottom:1px solid #ad94675c;border-right:1px solid #ad94675c;pointer-events:none}.panel.wide{width:min(100%,1000px)}.panel.narrow{width:min(100%,480px);text-align:center}.panel.narrow p{color:#aeb5c0}.panel-intro{color:var(--muted);margin-bottom:28px}.gold-button,.outline-button{min-height:46px;padding:12px 22px;border:1px solid var(--line);font-size:12px;letter-spacing:.04em;transition:background .15s}.gold-button{background:linear-gradient(135deg,#b89c68,#dbbf88);color:#11151c;font-weight:650;border-color:#e1c58f;box-shadow:0 5px 22px #0003}.gold-button:hover:not(:disabled){background:#ead2a4;color:#080e18}.outline-button{background:#17212e60;color:#d4d9de}.outline-button:hover{border-color:#a99670}.text-button{font-size:12px;min-height:44px;padding:12px 0;color:#9aa8b8;display:block}.fineprint{font-size:11px;color:#8c99aa;line-height:1.8;margin:16px 0 0}.difficulty-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.difficulty-card{padding:24px 18px;text-align:left;border:1px solid var(--line);background:#080f1a7d;min-height:220px;display:flex;flex-direction:column;gap:12px}.difficulty-card:hover{border-color:var(--gold);background:#192435}.difficulty-card .mode-sigil{font-size:28px;color:var(--gold)}.difficulty-card strong{font-family:Georgia,serif;font-size:22px}.difficulty-card small{color:#98a6b7}.difficulty-card .mode-stats{font-size:12px;color:#d5c7ad;margin-top:auto}.difficulty-card .mode-choose{font-size:10px;letter-spacing:.1em;color:var(--gold)}.story-screen{display:flex;align-items:center;padding-left:clamp(40px,9vw,170px);background:linear-gradient(90deg,rgba(5,10,17,.94),rgba(6,12,20,.75) 50%,rgba(5,10,17,.1));overflow:hidden}.story-card{max-width:570px;padding:34px 40px;position:relative;background:#07111ac2;border:1px solid var(--line)}.story-card h2{font-size:clamp(30px,3.8vw,50px);max-width:510px}.story-card>p:not(.overline){font-family:Georgia,serif;font-size:17px;color:#c2c6cb;line-height:1.9}.story-card .story-hint{font-family:system-ui,sans-serif;font-size:12px;color:#92adc1;border-left:1px solid var(--gold);padding-left:16px;margin:26px 0}.story-number{position:absolute;right:9%;bottom:10%;font-family:Georgia,serif;font-size:130px;color:#d9c99a26}.hud{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(26px,env(safe-area-inset-left));right:max(26px,env(safe-area-inset-right));display:flex;align-items:flex-start;justify-content:space-between;gap:22px;z-index:3;pointer-events:none;text-shadow:0 2px 5px #000}.hud-vitals{display:flex;gap:13px;min-width:245px}.hud-sigil{width:53px;height:65px;border:1px solid #a4a58365;background:#09111ccd;border-radius:40% 40% 48% 48%;display:flex;align-items:center;justify-content:center;font-size:42px;color:#d5c292}.vital-content{min-width:177px}.hp-row{display:flex;align-items:center;gap:14px;margin-bottom:6px;height:20px}#hp{font-size:18px;letter-spacing:3px;color:#d58694;white-space:nowrap}#hp .empty{color:#4a3b4b}#lives{font-size:11px;color:#d6c8a8;white-space:nowrap}.meter-row{display:flex;align-items:center;gap:7px;height:15px}.meter-row label{font-size:8px;text-transform:uppercase;color:#b4c2cf;width:30px;letter-spacing:.05em}.meter{height:5px;width:130px;border:1px solid #7794ab66;background:#101820}.meter span{display:block;height:100%;background:linear-gradient(90deg,#365b87,#83bddb);transition:width .15s}.meter.moon span{background:linear-gradient(90deg,#72668e,#d8d4e8)}.meter-row>span{font-size:8px;color:#b6bcc8;min-width:24px}.hud-journey{text-align:center;display:flex;flex-direction:column;gap:5px;margin-top:2px}.hud-journey>span:first-child{font-size:8px;letter-spacing:.24em;color:#c3ac7a}.hud-journey strong{font-family:Georgia,serif;font-size:15px;color:#ddd7c9}.hud-journey>span:last-child{font-size:8px;color:#8d9cad;letter-spacing:.1em}.hud-tools{display:flex;align-items:center;gap:16px;pointer-events:auto}.weapon-current{display:flex;align-items:center;gap:7px;max-width:160px;padding:0;text-align:left}.weapon-current canvas{width:43px;height:43px}.weapon-current span{font-size:10px;color:#bfd0dc;line-height:1.5;max-width:90px}#shards{font-size:11px;color:#bdcddb;white-space:nowrap}.pause-button{width:43px;height:43px;border:1px solid #a7b2bd4d;background:#08101b99;font-size:21px;color:#d4c6a7}.boss-hud{position:absolute;bottom:25px;left:30%;width:40%;text-align:center;z-index:3;pointer-events:none}.boss-hud>span{font-family:Georgia,serif;font-size:17px;color:#e2cbae;text-shadow:0 2px 5px #000}.boss-meter{height:7px;margin:10px 0 7px;background:#0c101b;border:1px solid #b599665c}.boss-meter>span{height:100%;display:block;background:linear-gradient(90deg,#773d55,#b9788d);transition:width .15s}.boss-hud small{font-size:9px;color:#b9bec5;letter-spacing:.1em;text-shadow:0 1px 5px #000}.toast{position:absolute;top:112px;left:50%;transform:translateX(-50%);max-width:min(620px,80%);padding:14px 25px;background:#0b1425e8;border:1px solid #a7a07a4a;color:#e8d6af;text-align:center;font-family:Georgia,serif;font-size:16px;z-index:8;pointer-events:none;animation:toast-in .2s ease-out}.toast.life{font-size:24px;color:#ffe0a1}.save-status{position:absolute;right:27px;top:105px;color:#8aa5b7;font-size:9px;letter-spacing:.12em;z-index:3}.pause-panel{width:min(100%,680px);text-align:center}.pause-panel h2{margin-bottom:24px}.pause-panel>.gold-button{min-width:240px}.inventory-label{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:27px 0 12px;font-size:9px;color:var(--gold);letter-spacing:.15em}.inventory-label small{letter-spacing:0;color:#8d9cac}.inventory{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:14px 0}.inventory button{height:69px;border:1px solid #5b657847;background:#0c1520;display:flex;align-items:center;justify-content:center;position:relative}.inventory button.selected{border-color:var(--gold);background:#293244}.inventory canvas{width:44px;height:44px}.inventory .lock{color:#515965;font-size:20px}.inventory .upgrade{position:absolute;bottom:3px;right:5px;color:var(--gold);font-size:8px}.spell-detail{font-size:11px;color:#a9bcc9;min-height:34px;margin-bottom:18px}.pause-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.panel-heading h2{margin-bottom:26px}.close-button{width:40px;min-height:40px;font-size:30px;color:#a6afbb;line-height:1}.settings-panel{width:min(100%,760px);display:flex;flex-direction:column;overflow:hidden}.settings-scroll{overflow:auto;padding-right:12px;scrollbar-color:#536071 #111925;touch-action:pan-y;overscroll-behavior:contain;min-height:0}.setting-row{display:flex;align-items:center;gap:16px;min-height:47px;border-bottom:1px solid #75829a1a}.setting-row label{flex:1;font-size:12px;color:#bbc4cf}.setting-row select{min-width:145px}.setting-row input[type=range]{width:160px;accent-color:var(--gold)}.setting-row output{font-size:10px;color:#96a6b9;width:36px;text-align:right}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold);margin-right:10px}select{background:#111e2d;border:1px solid #56647770;color:#d2dae2;padding:8px 12px;font-size:12px;border-radius:0;min-height:38px;max-width:100%}.key-bindings,.gamepad-bindings{display:grid;grid-template-columns:1fr 1fr;gap:7px 20px}.binding{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#aab8c7;min-height:35px}.binding button{min-width:85px;border:1px solid #6d7e9344;font-size:10px;padding:8px 10px;background:#162334}.binding select{font-size:10px;max-width:150px;min-height:32px;padding:5px}.offline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}progress{width:100%;height:7px;margin-top:15px;accent-color:var(--gold)}.soundroom{display:grid;grid-template-columns:1fr 80px;gap:8px;margin-top:15px}details{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}summary{font-size:12px;color:#c9c2b1;cursor:pointer;padding:8px 0}.privacy{padding-top:20px;border-top:1px solid #b2b7a526;margin-bottom:10px}.world-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;max-height:58vh;overflow:auto;touch-action:pan-y}.world-card{display:flex;align-items:center;gap:15px;padding:13px;background:#09111bdd;border:1px solid #9b9b8a22;min-height:87px}.world-card img{width:100px;height:57px;object-fit:cover;opacity:.8}.world-card.locked{opacity:.4}.world-card>div{display:flex;flex-direction:column;gap:6px}.world-card small{font-size:8px;color:#b2a382;letter-spacing:.1em}.world-card strong{font-family:Georgia,serif;font-size:16px}.world-card p{margin:0;color:#8c9cae;font-size:10px}.help-panel{width:min(100%,740px)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 25px;margin:25px 0}.help-grid strong{font-size:12px;color:#d7c59e}.help-grid p{font-size:12px;color:#a3afbd;margin:7px 0 0;line-height:1.8}.ending-panel{max-width:650px;text-align:center;background:#101922db}.ending-panel h2{color:#ead5aa}.ending-panel>p:not(.overline){font-family:Georgia,serif;font-size:17px;color:#c7cbcd}.ending-panel .text-button{margin:10px auto 0}.ending-stats{font-family:system-ui,sans-serif!important;font-size:11px!important;letter-spacing:.1em;margin:25px 0}.credits-panel{max-width:650px;text-align:center}.credits-panel>p{color:#abb9c8;font-size:13px}.credits-panel dt{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-top:22px}.credits-panel dd{font-size:12px;color:#a6b2bf;line-height:1.8;margin:8px 0}.credits-panel .gold-button{margin-top:22px}.touch-controls{position:absolute;inset:0;z-index:4;pointer-events:none;display:none}.direction-pad{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:20px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,37px);transform:scale(var(--touch-scale));transform-origin:bottom left}.touch{pointer-events:auto;touch-action:none;border:1px solid #b9b8a35c;background:#0d1928ad;box-shadow:inset 0 0 15px #15293855,0 4px 20px #0005;color:#cdd8e0;min-width:48px;min-height:48px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;font-size:30px;opacity:.78}.touch.held{background:#7693ac66;border-color:#e1d3b4;opacity:1}.direction-pad .up{grid-area:1/2}.direction-pad .left{grid-area:2/1}.direction-pad .right{grid-area:2/3}.direction-pad .down{grid-area:3/2}.action-pad{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:20px;width:230px;height:130px;transform:scale(var(--touch-scale));transform-origin:bottom right}.action-pad .touch{position:absolute}.touch small{font-size:7px;letter-spacing:.09em;line-height:1.4}.touch.magic,.touch.jump{width:68px;height:68px}.touch.magic{right:82px;bottom:0;color:#a9d7f2}.touch.jump{right:0;bottom:28px}.touch.special,.touch.transform{width:51px;height:51px}.touch.special{right:92px;top:0;color:#cfbfeb}.touch.transform{left:0;bottom:16px;color:#e7d5ac}.touch span{line-height:1}.rotate-hint{position:absolute;inset:0;z-index:15;background:#0b1425f7;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px}.rotate-hint>span{font-size:70px;color:var(--gold);margin-bottom:20px}.rotate-hint p{color:#a2b1c3;max-width:300px}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#080e18;z-index:50}.loading>span{font-family:Georgia,serif;letter-spacing:.23em;font-size:25px}.loading p{font-size:11px;letter-spacing:.15em;color:#8597ac;margin-top:18px}.moon-mark{font-size:60px;color:var(--gold);margin-bottom:24px}.loading-line{height:1px;width:170px;background:#665b42;overflow:hidden;margin-top:20px}.loading-line:after{content:"";display:block;width:50px;height:100%;background:#d8bc86;animation:loading 1.6s infinite}#game-credit{position:fixed;left:0;right:0;bottom:0;min-height:calc(var(--footer) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#070c13;border-top:1px solid #75859721;display:flex;align-items:center;justify-content:center;z-index:100}#game-credit a{color:#abb3bc;font-size:12px;letter-spacing:.06em;min-height:var(--footer);padding:7px 20px;display:flex;align-items:center;text-decoration:none}#game-credit a:hover{color:#e5cda0}.no-script{position:fixed;inset:20% 10%;background:#101c2b;padding:40px;z-index:100}.screen::-webkit-scrollbar,.settings-scroll::-webkit-scrollbar{width:5px}.screen::-webkit-scrollbar-thumb,.settings-scroll::-webkit-scrollbar-thumb{background:#536071}@keyframes loading{0%{transform:translateX(-50px)}100%{transform:translateX(175px)}}@keyframes toast-in{from{opacity:0;margin-top:8px}to{opacity:1;margin-top:0}}
@media(pointer:coarse){.touch-controls:not([hidden]){display:block}.hud{top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.boss-hud{bottom:24px;left:32%;width:33%}.utility-button{min-width:48px;min-height:48px}.menu-item{min-height:46px}.title-copy{padding-top:35px}}
@media(max-height:620px){:root{--footer:28px}.utility{top:9px;left:20px;right:18px}.edition{font-size:21px}.utility-actions{gap:6px}.title-screen{padding-top:26px;padding-bottom:15px;padding-left:7.5vw}.title-copy{padding-top:5px;max-width:64%;width:600px}.title-copy .overline{font-size:8px;letter-spacing:.25em;margin-bottom:8px}h1{font-size:clamp(42px,7.8vw,68px);margin-bottom:8px}.subtitle{font-size:8px}.title-rule{margin:15px 0;width:200px}.title-intro{font-size:14px;line-height:1.6;margin-bottom:10px}.menu-actions{gap:0}.menu-item{min-height:34px;font-size:18px;padding-top:3px;padding-bottom:3px}.menu-item:before{top:15px}.input-hint{margin-top:12px;font-size:7px}.title-caption{bottom:9%;right:8%}.title-caption small{font-size:8px}.save-card{font-size:9px;padding-top:4px}.panel{padding:22px 28px}.screen{padding-top:18px;padding-bottom:18px}h2{font-size:32px;margin-bottom:14px}.overline{margin-bottom:10px;font-size:8px}.panel-intro{font-size:12px;margin-bottom:15px}.difficulty-card{min-height:190px;padding:17px 14px;gap:9px}.difficulty-card strong{font-size:20px}.difficulty-card small{font-size:10px}.difficulty-card .mode-sigil{font-size:23px}.story-card{max-width:530px;padding:22px 28px}.story-card>p:not(.overline){font-size:14px;line-height:1.7;margin-bottom:15px}.story-card .story-hint{font-size:10px;margin:16px 0}.story-card h2{font-size:31px}.story-number{font-size:90px}.hud-vitals{min-width:190px;gap:9px}.hud-sigil{height:49px;width:41px;font-size:32px}.vital-content{min-width:145px}#hp{font-size:14px;letter-spacing:2px}.meter{width:95px}.meter-row{gap:5px;height:12px}.hp-row{height:17px;margin-bottom:3px}.hud-journey strong{font-size:12px}.hud-journey{max-width:230px}.hud-journey>span{font-size:7px!important}.hud-tools{gap:10px}.weapon-current span{display:none}.weapon-current canvas{width:35px;height:35px}.pause-button{width:36px;height:36px;font-size:17px}#shards{font-size:9px}.toast{top:80px;font-size:13px;padding:10px 18px}.save-status{top:77px;font-size:8px}.pause-panel{max-width:620px;padding:19px 28px}.pause-panel h2{font-size:28px;margin-bottom:14px}.pause-panel>.gold-button{min-height:38px;padding:8px 18px}.inventory-label{padding-top:17px;padding-bottom:9px}.inventory{margin:9px 0;gap:6px}.inventory button{height:51px}.inventory canvas{width:35px;height:35px}.spell-detail{min-height:22px;margin-bottom:10px;font-size:10px}.pause-links .outline-button{min-height:37px;padding:8px 12px;font-size:11px}.pause-panel .fineprint{margin-top:10px;font-size:9px}.boss-hud>span{font-size:13px}.boss-meter{margin:6px 0;height:5px}.boss-hud small{font-size:7px}.help-grid{gap:10px 20px;margin:12px 0}.help-grid p{font-size:10px}.help-grid strong{font-size:11px}.gold-button,.outline-button{min-height:40px;padding:10px 18px;font-size:11px}.credits-panel dd{font-size:10px;margin:5px 0}.credits-panel dt{margin-top:14px}.credits-panel>p{font-size:11px}.credits-panel .gold-button{margin-top:15px}.world-card{min-height:70px;padding:9px}.world-card img{width:75px;height:45px}.world-card strong{font-size:13px}.world-card p{font-size:8px}.world-list{max-height:58vh}.settings-panel .panel-heading h2{margin-bottom:14px}.setting-row{min-height:40px}.direction-pad{bottom:13px;left:18px;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,33px)}.action-pad{bottom:14px;right:18px;width:204px;height:115px}.touch.magic,.touch.jump{width:61px;height:61px}.touch.magic{right:73px}.touch.jump{bottom:22px}.touch.special{right:79px}.touch.transform,.touch.special{width:48px;height:48px}.touch small{font-size:6px}.touch{min-width:48px;min-height:48px}.title-intro br{display:none}}
@media(max-height:410px){.title-intro{display:none}.title-rule{margin:11px 0}.menu-item{font-size:17px;min-height:31px}.menu-item:before{top:13px}.title-copy{padding-top:17px}.title-copy .overline{font-size:7px}.input-hint{margin-top:9px}.save-card{display:none}.title-caption{bottom:6%}.subtitle{font-size:7px}.panel h2{font-size:26px}.panel{padding:18px 25px}.difficulty-card{min-height:165px;padding:12px 14px;gap:7px}.difficulty-card .mode-sigil{font-size:18px}.difficulty-card strong{font-size:18px}.difficulty-card small{font-size:9px}.difficulty-card .mode-stats{font-size:10px}.panel-intro{font-size:11px;margin-bottom:12px}.difficulty-cards{margin-bottom:6px}.overline{margin-bottom:6px}.fineprint{font-size:9px;margin-top:8px}.story-card>p:not(.overline){font-size:12px;line-height:1.6}.story-card .story-hint{font-size:9px;line-height:1.5;margin:12px 0}.story-card{padding:17px 24px;max-width:500px}.story-card h2{font-size:27px}.inventory-label{padding-top:12px}.pause-panel h2{font-size:26px;margin-bottom:10px}.pause-panel .overline{margin-bottom:5px}.inventory button{height:45px}.inventory{margin:8px 0}.pause-links .outline-button{min-height:32px;padding:6px 10px;font-size:10px}.pause-panel .fineprint{font-size:8px;margin-top:7px}.spell-detail{margin-bottom:7px;min-height:17px;font-size:9px}.pause-panel>.gold-button{min-height:34px;font-size:10px}.hud-journey{max-width:205px}.hud-journey strong{font-size:10px}.boss-hud{bottom:14px}.toast{top:69px;font-size:12px}.title-caption small{display:none}.help-grid p{font-size:9px}.help-grid{gap:8px 15px}.settings-panel{max-height:100%}.world-list{max-height:56vh}.ending-panel>p:not(.overline){font-size:13px}.credits-panel{max-height:100%}}
@media(max-width:620px) and (orientation:portrait){.title-copy{max-width:100%;width:100%;padding-top:50px}.title-screen{align-items:flex-start;padding-top:12vh}.title-copy h1{font-size:11vw}.title-caption{display:none}.subtitle{font-size:8px}.title-intro{max-width:260px}.input-hint{max-width:230px}.difficulty-cards{grid-template-columns:1fr;gap:9px}.difficulty-card{min-height:130px;gap:7px}.difficulty-card .mode-sigil{display:none}.world-list{grid-template-columns:1fr}.key-bindings,.gamepad-bindings{grid-template-columns:1fr}.setting-row input[type=range]{width:100px}.setting-row{gap:8px}.setting-row label{font-size:11px}.panel{padding:24px}.help-grid{grid-template-columns:1fr}.title-screen .version{right:15px}.story-screen{padding:24px}.story-card{max-width:100%}.story-number{display:none}.utility .edition span{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.meter span.low{background:linear-gradient(90deg,#806141,#d2a975)}.mana span.dry{animation:dry .25s 2}@keyframes dry{50%{background:#cf8d92}}.title-intro{white-space:pre-line}@media(pointer:coarse){.pause-button{min-width:48px;min-height:48px}.direction-pad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,44px)}}
/* 1.1 · a permanent install entry and Android controls beside the playfield. */
.install-app{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:30;display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 16px;border:1px solid #d4b8839c;border-radius:12px;background:linear-gradient(145deg,#e6d3a8,#be9c63);color:#17212b;box-shadow:0 3px 14px #0006;font-size:12px;font-weight:700;letter-spacing:.015em;white-space:nowrap}.install-app:hover:not(:disabled){color:#080e18;background:#f3dfb4}.utility-actions{margin-right:148px}.install-panel{max-width:610px}.install-panel>p{font-size:14px;color:#bec7d2}.install-steps{padding-left:24px;color:#d0d4da;line-height:1.8;font-size:14px;display:grid;gap:12px;margin:24px 0}.install-panel .gold-button{margin-top:24px}.rotate-hint .gold-button{margin:10px 0 12px}.rotate-hint h2{font-size:30px;max-width:320px}.rotate-hint>span{font-size:58px;margin-bottom:14px}.rotate-hint .outline-button{min-height:44px}.direction-pad .up{font-size:27px}.direction-pad .up small{font-size:7px;line-height:1;letter-spacing:.08em}.touch-controls{background:transparent}
@media(pointer:coarse) and (orientation:landscape){
 :root{--left-rail:136px;--right-rail:174px;--footer:24px}
 #game-root[data-scene="game"],#game-root[data-scene="pause"]{background:radial-gradient(ellipse at 50% 40%,#1c2939,#080e18 80%)}
 #game-root[data-scene="game"] #game,#game-root[data-scene="pause"] #game{position:absolute;left:calc(var(--left-rail) + env(safe-area-inset-left));top:0;width:calc(100% - var(--left-rail) - var(--right-rail) - env(safe-area-inset-left) - env(safe-area-inset-right));height:100%;border-left:1px solid #d4b88340;border-right:1px solid #d4b88340}
 #game-root[data-scene="game"] .touch-controls:before,#game-root[data-scene="game"] .touch-controls:after{content:"";position:absolute;top:0;bottom:0;z-index:-1;background:linear-gradient(90deg,#111d2b,#080f19);border-right:1px solid #83929a22}
 #game-root[data-scene="game"] .touch-controls:before{left:0;width:calc(var(--left-rail) + env(safe-area-inset-left))}
 #game-root[data-scene="game"] .touch-controls:after{right:0;width:calc(var(--right-rail) + env(safe-area-inset-right));transform:scaleX(-1)}
 .direction-pad{left:calc(env(safe-area-inset-left) + var(--left-rail)/2 - 66px);top:calc(53% - 66px);bottom:auto;width:132px;height:132px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);transform:scale(min(var(--touch-scale),1));transform-origin:center}
 .direction-pad .touch{width:48px;height:48px;min-width:48px;min-height:48px;font-size:30px;opacity:.94}
 .direction-pad .up{font-size:25px}
 .action-pad{left:auto;right:calc(env(safe-area-inset-right) + (var(--right-rail) - 152px)/2);top:calc(56% - 82px);bottom:auto;width:152px;height:172px;transform:scale(min(var(--touch-scale),1.12));transform-origin:center}
 .action-pad .touch{opacity:.94}.touch.magic,.touch.jump{width:66px;height:66px}.touch.magic{left:0;right:auto;top:62px;bottom:auto}.touch.jump{left:auto;right:0;top:104px;bottom:auto}.touch.transform,.touch.special{width:52px;height:52px}.touch.transform{left:3px;right:auto;top:1px;bottom:auto}.touch.special{left:auto;right:7px;top:29px;bottom:auto}.touch small{font-size:7px}
 .hud{left:calc(var(--left-rail) + env(safe-area-inset-left) + 10px);right:calc(var(--right-rail) + env(safe-area-inset-right) + 10px);top:max(10px,env(safe-area-inset-top));gap:8px}
 .hud-vitals{min-width:132px;gap:5px}.hud-sigil{display:none}.vital-content{min-width:130px}.hp-row{gap:7px}#hp{font-size:13px;letter-spacing:1px}#lives{font-size:9px}.meter{width:78px}.meter-row{gap:4px}.meter-row label{font-size:7px;width:28px}.meter-row>span{font-size:7px;min-width:15px}.hud-journey{max-width:150px}.hud-journey strong{font-size:10px}.hud-journey>span:first-child{font-size:6px!important}.hud-journey>span:last-child{font-size:6px!important}.hud-tools{gap:6px}.weapon-current canvas{width:31px;height:31px}.pause-button{width:44px;height:44px;min-width:44px;min-height:44px}#shards{display:none}
 .boss-hud{left:calc(var(--left-rail) + env(safe-area-inset-left) + 18px);width:calc(100% - var(--left-rail) - var(--right-rail) - env(safe-area-inset-left) - env(safe-area-inset-right) - 36px);bottom:14px}.boss-hud>span{font-size:13px}.boss-hud small{font-size:7px}.boss-meter{margin:5px 0;height:5px}
 #game-root[data-scene="game"] .toast{left:calc((100% + var(--left-rail) - var(--right-rail))/2);max-width:calc(100% - var(--left-rail) - var(--right-rail) - 26px);top:70px;font-size:12px;padding:10px 14px}
 .save-status{right:calc(var(--right-rail) + env(safe-area-inset-right) + 14px);top:66px;font-size:7px}
 .install-app{right:max(10px,env(safe-area-inset-right));top:max(9px,env(safe-area-inset-top));width:145px;min-height:43px;padding:0 10px;font-size:11px;border-radius:10px}
 .utility-actions{margin-right:158px}.title-copy{max-width:69%}.title-caption{right:7%}
 #game-credit a{font-size:10px;min-height:24px;padding:3px 16px}
}
@media(pointer:coarse) and (orientation:landscape) and (max-width:740px){
 :root{--left-rail:124px;--right-rail:154px}.direction-pad{left:calc(env(safe-area-inset-left) + var(--left-rail)/2 - 62px);grid-template-columns:repeat(3,41px);grid-template-rows:repeat(3,42px);width:124px;height:128px}.action-pad{right:calc(env(safe-area-inset-right) + 2px);width:148px}.touch.magic,.touch.jump{width:62px;height:62px}.install-app{width:136px;font-size:10px;gap:6px}.hud-journey{display:none}.hud-tools{margin-left:auto}.hud-vitals{min-width:120px}.utility-actions{margin-right:144px;gap:2px}.utility{left:12px;right:8px}.edition span{display:none}.title-copy{max-width:76%}.title-copy h1{font-size:8vw}.title-caption{display:none}.install-panel>p,.install-steps{font-size:12px}.install-steps{gap:8px;margin:16px 0}
}
@media(pointer:coarse) and (orientation:portrait){.install-app{right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:30}.utility-actions{margin-right:135px}.rotate-hint{padding-top:75px}.install-panel{max-height:100%;overflow:auto;touch-action:pan-y}.install-steps{font-size:13px}}
@media(pointer:coarse) and (orientation:landscape){:root{--left-rail:calc(144px * var(--touch-scale));--right-rail:calc(174px * var(--touch-scale))}.direction-pad{left:calc(env(safe-area-inset-left) + var(--left-rail)/2 - 66px);transform:scale(var(--touch-scale))}.action-pad{transform:scale(var(--touch-scale))}}
@media(pointer:coarse) and (orientation:landscape) and (max-width:740px){:root{--left-rail:calc(136px * var(--touch-scale));--right-rail:calc(154px * var(--touch-scale))}.direction-pad{left:calc(env(safe-area-inset-left) + var(--left-rail)/2 - 66px);width:132px;height:132px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}.action-pad{right:calc(env(safe-area-inset-right) + (var(--right-rail) - 148px)/2)}}
@media(pointer:coarse) and (orientation:landscape){.direction-pad{width:136px;height:136px;left:calc(env(safe-area-inset-left) + var(--left-rail)/2 - 68px);top:calc(53% - 68px)}}

/* Ravenmoon 1.2: explicit door interaction and checkpoint status. */
.checkpoint-name{color:#9fd6ee!important;font-size:9px!important;letter-spacing:.06em}
.interact-button{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);pointer-events:auto;touch-action:none;display:flex;align-items:center;gap:9px;min-height:48px;padding:8px 17px;border:1px solid #9abdd19c;border-radius:9px;background:#102435ed;color:#e1eef1;box-shadow:0 3px 14px #0008}.interact-button>span{font-size:25px}.interact-button small{font-size:10px;font-weight:600;letter-spacing:.06em}.interact-button.held{background:#3b647c}.interact-button:active{transform:translateX(-50%)}
@media(pointer:coarse) and (orientation:landscape){.interact-button{left:calc((100% + var(--left-rail) - var(--right-rail))/2);bottom:17px;min-height:46px;padding:6px 12px}.interact-button small{font-size:9px}.checkpoint-name{font-size:7px!important}}

@media(pointer:coarse) and (orientation:landscape) and (max-width:740px){.hud-journey{display:contents}.hud-journey>span,.hud-journey>strong{display:none}.hud-journey .checkpoint-name{display:block;position:absolute;left:0;top:54px;text-align:left}}
/* No install promotion flashes while the installed app is booting, nor when
   its standalone window temporarily switches to immersive fullscreen. */
[data-installed-app] #install-app,[data-installed-app] #install{display:none!important}
@media(display-mode:standalone),(display-mode:minimal-ui),(display-mode:window-controls-overlay),(display-mode:fullscreen){#install-app,#install{display:none!important}}
