@font-face{font-family:CodruSerif;src:local('Georgia');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#03090d;color:#eee4c9;font-family:Arial,Helvetica,sans-serif}body{background:radial-gradient(ellipse at 50% 30%,#12232b,#040b10 70%)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid #dcc393;outline-offset:5px}button:hover{color:#fff4db}a{color:inherit;text-decoration:none}#app{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:22px 26px 14px}#stage{width:min(calc((100vh - 75px)*16/9),100%);aspect-ratio:16/9;position:relative;background:#08151d;overflow:hidden;box-shadow:0 28px 100px #0009;isolation:isolate;container-type:inline-size}#game{display:block;width:100%;height:100%;outline:0;touch-action:none}.hidden{display:none!important}.screen{position:absolute;inset:0;z-index:3}.frame-corner{position:absolute;width:18px;height:18px;z-index:30;pointer-events:none;border-color:#bb9f6444;border-style:solid}.tl{top:13px;left:13px;border-width:1px 0 0 1px}.tr{top:13px;right:13px;border-width:1px 1px 0 0}.bl{bottom:13px;left:13px;border-width:0 0 1px 1px}.br{bottom:13px;right:13px;border-width:0 1px 1px 0}.menu-screen{background:linear-gradient(90deg,#051017e6 0%,#06131bb3 32%,#08151d14 65%,#030a0f22 100%)}.menu-top{position:absolute;top:5.2%;left:5.4%;right:5.4%;display:flex;justify-content:space-between;align-items:center}.wordmark{font-size:clamp(7px,1cqw,13px);font-weight:600;letter-spacing:.22em;display:flex;align-items:center;gap:14px;color:#d6c7a8}.brand-mark{color:#d6b47a;font-size:clamp(24px,3cqw,38px);font-weight:normal;line-height:1}.brand-mark.large{font-size:72px}.top-actions{display:flex;align-items:center;gap:22px}.quiet-button{color:#b8c4be;font-size:clamp(8px,1cqw,13px);padding:6px 0;transition:color .2s;display:inline-flex;gap:10px;align-items:center}.icon-button{font-size:clamp(18px,2cqw,25px);line-height:1;padding:6px;color:#b7c8c7}.menu-copy{position:absolute;left:8.4%;top:24%;width:55%;}.eyebrow{font-size:clamp(7px,.85cqw,11px);font-weight:600;letter-spacing:.23em;color:#c9af7d;display:flex;align-items:center;gap:14px;margin:0 0 25px}.short-line{display:inline-block;width:30px;height:1px;background:#b49860}.menu-copy h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,7.8cqw,103px);font-weight:400;letter-spacing:.045em;line-height:1;margin:0;color:#e5dcc7;text-shadow:0 3px 25px #030a10aa}.subtitle{font-family:Georgia,serif;font-style:italic;font-size:clamp(16px,2.35cqw,32px);letter-spacing:.035em;display:flex;align-items:center;gap:18px;margin:15px 0 25px;color:#bcaf94}.subtitle span{height:1px;width:32px;background:linear-gradient(90deg,transparent,#917d55)}.subtitle span:last-child{background:linear-gradient(90deg,#917d55,transparent)}.menu-description{font-family:Georgia,serif;color:#bac5c2;line-height:1.75;font-size:clamp(11px,1.35cqw,18px);margin:0 0 28px;letter-spacing:.02em}.menu-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.primary-button{background:linear-gradient(110deg,#c4a16a,#e0c393);color:#152127;font-size:clamp(11px,1.12cqw,15px);font-weight:600;padding:16px 22px;min-width:260px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;letter-spacing:.02em;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);transition:filter .2s,transform .2s}.primary-button:hover{color:#08151d;filter:brightness(1.12);transform:translateX(3px)}.primary-button b{font-size:20px;font-weight:400}.primary-button.secondary{background:transparent;min-width:0;clip-path:none;padding:5px 0;color:#c8b58d;font-weight:400}.secondary-actions{display:flex;gap:16px;align-items:center;color:#637571}.text-button{padding:5px 0;font-size:clamp(9px,1cqw,13px);color:#b4c1bd}.menu-tags{display:flex;align-items:center;gap:14px;font-size:clamp(6px,.66cqw,9px);letter-spacing:.2em;margin-top:29px;color:#7f9997}.menu-tags i{font-style:normal;color:#b99b64}.menu-footer{position:absolute;bottom:5.5%;left:5.4%;right:5.4%;display:flex;justify-content:space-between;gap:20px;letter-spacing:.18em;font-size:clamp(6px,.67cqw,9px);color:#8b9d98}.footer-right{display:flex;gap:20px;align-items:center}.tiny-diamond{color:#c0a36e;font-size:6px}.chapter-marker{position:absolute;right:6.5%;top:51%;display:flex;flex-direction:column;align-items:center;color:#acb9ad}.chapter-marker>span{font-family:Georgia,serif;font-size:clamp(24px,3.1cqw,40px);color:#d0bd93}.chapter-marker i{height:48px;width:1px;background:linear-gradient(#c9ae76,transparent);margin:14px 0}.chapter-marker p{font-size:clamp(5px,.65cqw,9px);letter-spacing:.22em;line-height:1.9;text-align:center}.outside-footer{display:flex;justify-content:space-between;width:min(calc((100vh - 75px)*16/9),100%);padding:14px 2px 0;color:#657b7c;font-size:10px;letter-spacing:.08em}.outside-footer i{color:#a48b5a;font-style:normal;padding:0 7px}.outside-footer kbd{margin-left:14px}kbd{font:inherit;font-size:.78em;font-family:Arial,sans-serif;padding:3px 6px;border:1px solid #d9cba344;border-radius:3px;color:#d9cba3;background:#101f29a8;white-space:nowrap}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#16323b,#07121b 65%);z-index:60}.loading-screen h1{font:italic 36px Georgia,serif;margin:10px 0 25px;color:#d5ccb8}.loading-screen .eyebrow{margin:20px 0 6px;font-size:10px}.loading-screen>p:last-child{font-size:12px;color:#89a4a3}.load-track{height:2px;width:240px;background:#849a8922}.load-track i{display:block;height:100%;width:0;background:#cfaf72;transition:width .3s}
#hud{position:absolute;inset:0;pointer-events:none;z-index:5;background:linear-gradient(#03101780,transparent 18%,transparent 82%,#020b1370)}#hud button,#minimap{pointer-events:auto}.hud-left{position:absolute;left:3.5%;top:5%;display:flex;gap:16px;align-items:center;width:24%}.hero-medallion{border:1px solid #b89b6455;outline:1px solid #b89b6422;outline-offset:4px;width:46px;height:52px;display:grid;place-items:center;font-size:35px;color:#d7bd87;background:#081922aa;flex-shrink:0;clip-path:polygon(50% 0,100% 18%,100% 82%,50% 100%,0 82%,0 18%)}.hud-left>div:last-child{flex:1}.health-title{display:flex;justify-content:space-between;font-size:clamp(7px,.71cqw,10px);letter-spacing:.17em;margin-bottom:8px;color:#e4d7b9;gap:20px}.health-title span:last-child{color:#9eafa6;letter-spacing:.02em}.health-track{height:9px;background:#081018df;position:relative;outline:1px solid #c6ae7d55;outline-offset:3px}.health-track>i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#936440,#d4b982);transition:width .15s}.health-ticks{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#07101777 calc(20% - 1px),#07101777 20%)}.resources{display:flex;align-items:center;gap:8px;height:23px;margin-top:7px;font-size:12px;color:#d3bd8e}.resources #flasks{letter-spacing:3px;color:#93c3ba;font-size:17px}.resource-divider{height:10px;width:1px;background:#6d847455;margin:0 7px}.ember-icon{font-size:21px}.resource-name{font-size:8px;letter-spacing:.1em;color:#819994}.hud-right{position:absolute;right:3.4%;top:3.5%;width:21%}.hud-top-buttons{display:flex;justify-content:flex-end;gap:24px;align-items:center}.hud-top-buttons>.quiet-button{font-size:11px}#minimap{width:120px;height:66px;margin:8px 0 0 auto;cursor:pointer;opacity:.9}#minimap svg{width:100%;height:100%}#objective{font-size:clamp(8px,.84cqw,12px);line-height:1.5;color:#d2d3bf;text-align:right;margin:8px 0 0 auto;max-width:220px;text-shadow:0 1px 5px #000}.hud-bottom{position:absolute;bottom:4.2%;left:3.7%;right:3.7%;display:flex;align-items:center;justify-content:space-between;gap:15px}.sigils{display:flex;align-items:center;gap:12px}.sigils>span{color:#d4b675;font-size:clamp(13px,1.5cqw,20px);letter-spacing:6px}.sigils small{font-size:clamp(6px,.65cqw,9px);color:#92a5a1;letter-spacing:.17em}.control-strip{display:flex;align-items:center;gap:20px;color:#b2bfba;font-size:clamp(8px,.8cqw,11px)}.control-strip>span{display:flex;gap:8px;align-items:center;white-space:nowrap}.control-strip b{font-weight:400}.control-strip .locked{opacity:.38}.journal-button{font-size:11px}.journal-button>span{font-size:20px;color:#b8a37a}#boss-hud{position:absolute;bottom:13%;left:28%;right:28%;text-align:center}#boss-hud p{font:11px Georgia,serif;letter-spacing:.2em;color:#d2c4a4;margin:0 0 8px}#boss-hud>div{height:6px;outline:1px solid #a47d5866;outline-offset:3px;background:#140f14}#boss-health{display:block;height:100%;width:100%;background:linear-gradient(90deg,#794644,#c3876b);transition:width .15s}.room-banner{position:absolute;left:25%;right:25%;top:23%;text-align:center;z-index:8;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .6s,transform .6s;text-shadow:0 3px 15px #000}.room-banner.visible{opacity:1;transform:translateY(0)}.room-banner p{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#c4ba9e;margin:0 0 10px}.room-banner h2{font:32px Georgia,serif;letter-spacing:.05em;margin:0;color:#eee3c8}.room-banner>span{display:block;width:120px;height:1px;margin:15px auto 0;background:linear-gradient(90deg,transparent,#c2ac78,transparent)}.toast{position:absolute;bottom:15%;left:50%;transform:translate(-50%,10px);padding:13px 20px;background:#071720ed;border:1px solid #a5925d77;border-radius:2px;text-align:center;font-size:13px;line-height:1.5;color:#e5d8b7;max-width:75%;z-index:18;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}.save-indicator{position:absolute;right:4%;bottom:12%;font-size:10px;letter-spacing:.12em;color:#bbc5ad;z-index:12;opacity:0;transition:opacity .4s;pointer-events:none}.save-indicator.visible{opacity:1}.overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:30px;background:#020b13bc;backdrop-filter:blur(7px)}.modal{position:relative;width:min(540px,90%);max-height:95%;overflow:auto;background:linear-gradient(140deg,#122b33f5,#091922fa);border:1px solid #b49a635c;padding:32px 40px;box-shadow:0 20px 70px #0008;text-align:center}.modal:before{content:'◆';position:absolute;top:12px;left:50%;transform:translateX(-50%);font-size:8px;color:#bea46f}.modal h2{font:32px Georgia,serif;font-weight:400;letter-spacing:.02em;margin:10px 0 18px;color:#e4d6b6}.modal .eyebrow{justify-content:center;font-size:9px;margin:10px 0 8px}.modal p{font-size:14px;line-height:1.75;color:#b4c8c3;margin:14px 0}.modal .button-stack{display:flex;flex-direction:column;align-items:center;gap:14px;margin:25px 0 0}.modal .primary-button{font-size:13px;min-width:240px}.modal .secondary-actions{justify-content:center;margin-top:18px}.modal .close-modal{position:absolute;right:18px;top:15px;font-size:22px;color:#99afa9}.modal .rule{height:1px;background:linear-gradient(90deg,transparent,#baa26e66,transparent);margin:20px 0}.modal .controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 25px;text-align:left;font-size:12px;color:#b5c7c2;margin:24px 0}.controls-grid>div{display:flex;align-items:center;gap:12px}.controls-grid kbd{font-size:10px;min-width:40px;text-align:center}.modal small{color:#78948f;font-size:10px;line-height:1.7;display:block}.modal .setting{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0;font-size:13px;color:#c0cfc8}.setting input[type=range]{accent-color:#c1a26b;width:55%;cursor:pointer}.setting input[type=checkbox]{accent-color:#c1a26b;width:18px;height:18px}.modal.wide{width:min(1060px,96%);padding:25px 30px}.world-map{position:relative;margin:20px auto;aspect-ratio:3.3;width:100%;}.world-map svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-room{position:absolute;transform:translate(-50%,-50%);width:14%;min-height:50px;border:1px solid #617a7777;background:#0e222aec;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px 4px;box-shadow:0 5px 15px #0004}.map-room .map-icon{font-size:12px;color:#ac9368}.map-room .map-label{font:11px Georgia,serif;color:#92aaa4}.map-room.visited{border-color:#ae986b99;background:#19353cef}.map-room.visited .map-label{color:#d3cab2}.map-room.current{border:1px solid #e1c388;box-shadow:0 0 20px #c7a36522;background:#30483e}.map-room.current .map-label{color:#f1dfb5}.map-room.unknown{opacity:.35;border-style:dashed}.map-legend{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;font-size:10px;color:#a8bfb4}.map-legend b{font-weight:400;color:#d9ba7d}.journal-lines{text-align:left;margin:20px 0}.journal-lines>div{border-bottom:1px solid #75958a22;padding:12px 0;font-size:12px;line-height:1.6;color:#a3bcb5}.journal-lines b{color:#d9c99e;font-weight:400;display:block;margin-bottom:5px}.stats-row{display:flex;justify-content:center;gap:30px;margin:24px 0}.stats-row b{display:block;font:28px Georgia,serif;color:#d8c497}.stats-row span{font-size:9px;letter-spacing:.12em;color:#8eaaa1}.ability-symbol{font:58px Georgia,serif;color:#d0b47c;margin:10px 0;text-shadow:0 0 30px #c1a16666}.death-modal h2{color:#cd9d8c}.touch-controls{position:absolute;bottom:9%;left:4%;right:4%;z-index:12;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.touch-left,.touch-right{display:flex;align-items:flex-end;gap:10px}.touch-controls button{pointer-events:auto;touch-action:none;border:1px solid #c4bc9766;background:#102830aa;backdrop-filter:blur(2px);border-radius:50%;width:58px;height:58px;font-size:23px;color:#e0d5b5;user-select:none}.touch-controls button:active,.touch-controls button.pressed{background:#c9ad7088}.touch-controls button.small{width:40px;height:40px;font-size:16px}.gym-panel{position:absolute;z-index:15;left:3%;top:25%;background:#06121be8;border:1px solid #c2ac6877;padding:12px;width:220px;font-size:11px;color:#b6cac3}.gym-panel label{display:block;margin:10px 0}.gym-panel input{width:100%;accent-color:#cfaf79}.gym-panel h3{font-size:13px;color:#dcc697}.portrait-hint{display:none}
@media(max-width:900px){#app{padding:0}#stage{width:100%;}.outside-footer{display:none}.menu-copy{top:21%}.menu-copy .eyebrow{margin-bottom:15px}.menu-description{margin-bottom:18px}.primary-button{min-width:200px;padding:12px 16px}.menu-tags{margin-top:20px}.subtitle{margin:12px 0 18px}.secondary-actions{gap:12px}.menu-actions{gap:10px}.control-strip{gap:10px}.hud-left{gap:10px;width:27%}.hero-medallion{width:34px;height:42px;font-size:28px}.resources{font-size:10px;gap:5px}.resources #flasks{font-size:13px}.modal{padding:25px 30px}.modal h2{font-size:26px}.modal p{font-size:12px}.modal .controls-grid{font-size:10px;gap:12px}.room-banner h2{font-size:26px}.map-room{min-height:40px}.map-room .map-label{font-size:9px}.world-map{margin:10px auto 20px}.modal .setting{font-size:12px;margin:16px 0}.hud-top-buttons>.quiet-button{font-size:9px}.hud-right{width:24%}.journal-button{font-size:9px}#minimap{width:90px;height:50px}.room-banner p{font-size:8px}.toast{font-size:11px}.frame-corner{width:12px;height:12px}}
@media(max-height:600px){#app{padding:0}#stage{width:min(calc(100vh*16/9),100%)}.outside-footer{display:none}.modal{max-height:95%;padding:20px 28px}.modal h2{font-size:25px;margin:10px 0}.modal p{font-size:12px;margin:10px 0}.modal .button-stack{margin-top:18px;gap:10px}.modal .primary-button{padding:11px 18px;min-width:215px}.modal .controls-grid{gap:10px 20px;margin:15px 0}.stats-row{margin:16px 0}.modal.wide{padding:18px 26px}.modal .secondary-actions{margin-top:12px}.menu-description{margin-bottom:18px}.menu-tags{margin-top:19px}.primary-button{padding:12px 18px}.menu-copy{top:22%}.eyebrow{margin-bottom:19px}.subtitle{margin:12px 0 18px}.touch-controls button{width:49px;height:49px}.touch-controls button.small{width:35px;height:35px}.touch-left,.touch-right{gap:8px}}
@media(pointer:coarse){.control-strip{display:none}.hud-bottom{bottom:3%}.touch-controls:not(.hidden){display:flex}.hud-left{top:4%}.hud-right{top:3%}.menu-footer .footer-right{display:none}.touch-controls{bottom:10%}.hud-right #objective{max-width:190px}.modal .controls-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.icon-button svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square}
@media(max-width:600px) and (orientation:portrait){.touch-controls{left:3%;right:3%;bottom:12%}.touch-left,.touch-right{gap:5px}.touch-controls button{width:42px;height:42px;font-size:19px}.touch-controls button.small{width:30px;height:30px;font-size:13px}.portrait-hint{display:block;width:90%;max-width:360px;text-align:center;color:#839c96;font-size:11px;line-height:1.6;margin:18px 0 0}.hud-left{width:31%;gap:5px}.hero-medallion{width:24px;height:32px;font-size:21px}.health-title{gap:5px;letter-spacing:.08em}.hud-right{width:29%}#minimap{display:none}.hud-top-buttons{gap:12px}.hud-bottom .sigils small{display:none}.modal{padding:18px 20px;max-height:96%}.modal h2{font-size:20px}.modal p{font-size:10px;line-height:1.5}.modal .primary-button{min-width:190px;font-size:11px;padding:9px 15px}.modal .controls-grid{font-size:9px;gap:8px}.modal .button-stack{margin-top:12px}.modal .eyebrow{font-size:7px}.modal small{font-size:8px}.modal .ability-symbol{font-size:32px;margin:5px 0}.stats-row{gap:20px;margin:12px 0}.stats-row b{font-size:21px}.stats-row span{font-size:7px}.world-map{aspect-ratio:2.6}.map-room .map-label{font-size:6px}.map-room{min-height:28px;padding:3px 1px;gap:2px}.map-room .map-icon{font-size:7px}.map-legend{font-size:7px;gap:10px}.menu-copy{top:23%}.menu-copy .eyebrow{font-size:5px;gap:7px;margin-bottom:10px}.menu-copy h1{font-size:35px}.menu-description{font-size:9px;margin-bottom:12px;line-height:1.5}.subtitle{font-size:14px;margin:6px 0 12px;gap:8px}.subtitle span{width:14px}.menu-tags{display:none}.menu-copy .primary-button{min-width:170px;font-size:10px;padding:8px 12px}.menu-copy .secondary-actions{gap:10px}.menu-copy .text-button{font-size:7px}.menu-top .quiet-button>span{display:none}.chapter-marker{right:7%;top:45%}.chapter-marker>span{font-size:20px}.chapter-marker i{height:22px;margin:6px 0}.chapter-marker p{font-size:5px}.menu-footer{font-size:5px;bottom:4.5%}.loading-screen h1{font-size:25px}.brand-mark.large{font-size:40px}.loading-screen .eyebrow{font-size:7px}}
@media(max-width:600px) and (orientation:portrait){.menu-description{display:none}.menu-copy{top:22%}.menu-copy .menu-actions{gap:8px}}
