@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#101a18;--panel:#101b19ed;--line:#b5b88c28;--gold:#d4b77d;--muted:#8f9f92;--text:#e4e7d7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:#0a1211;color:var(--text);font-family:var(--sans);font-size:13px;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.2)}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}.game-shell{height:100dvh;min-height:420px;display:flex;flex-direction:column}
.topbar{height:72px;flex-shrink:0;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#111b19;border-bottom:1px solid var(--line);z-index:2}.wordmark{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;font-size:27px;letter-spacing:3px;color:#ece7d4;text-decoration:none;white-space:nowrap}.brand-rune{color:var(--gold);font-size:36px}.edition{font:9px var(--sans);letter-spacing:2px;color:var(--gold);margin:6px 0 0 6px;border-left:1px solid var(--line);padding-left:14px}.chapter{font-size:10px;letter-spacing:1.7px;color:#c3c8b7;display:flex;align-items:center;gap:13px}.chapter>span:last-child{font-size:11px;letter-spacing:.3px;color:var(--muted)}.chapter-divider{color:#59675a}.tiny-diamond{color:var(--gold);font-size:8px}nav{display:flex;align-items:center;gap:12px}.device-indicator{font-size:9px;letter-spacing:1.2px;color:var(--muted);margin-right:10px}.header-button{background:transparent;border:1px solid var(--line);border-radius:5px;min-width:30px;height:30px;font-size:16px;color:#b8c0af}#sound-label{font-size:8px}
#game-area{position:relative;flex:1;overflow:hidden;background:#1c342b}#world{display:block;width:100%;height:100%;outline:none;cursor:crosshair;touch-action:none}.world-top{position:absolute;left:32px;right:32px;top:28px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.objective-panel{border-left:2px solid #b49b6580;padding:3px 0 9px 18px;text-shadow:0 2px 8px #000;background:linear-gradient(90deg,#0a18196b,transparent);max-width:370px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold);display:flex;align-items:center;gap:7px}.gold-dot{height:4px;width:4px;background:var(--gold);display:inline-block;transform:rotate(45deg)}h1{font-family:var(--serif);font-size:28px;font-weight:500;margin:9px 0 7px;line-height:1.1}.objective-panel p{font-size:12px;color:#d2d6c5;margin:0 0 14px}.objective-detail{display:flex;gap:9px;color:#9eaf9d;font-size:10px;align-items:center}.objective-detail>span:first-child{color:var(--gold);font-size:17px}.map-panel{width:194px;padding:9px;background:#101c1bdf;border:1px solid #a1b49530;border-radius:5px;box-shadow:0 6px 22px #0003}.map-heading,.map-footer{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#bdc6b2}.map-heading{margin:1px 1px 9px}.map-compass{color:var(--gold)}#minimap{display:block;width:100%;height:116px;border:1px solid #91a28c20;border-radius:2px}.map-footer{justify-content:center;gap:6px;margin-top:9px;color:#8b9f8a;font-size:7px}.safe-dot{width:4px;height:4px;background:#a4b58d;border-radius:50%}
.bottom-hud{position:absolute;bottom:46px;left:32px;right:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;pointer-events:none}.hero-panel{display:flex;align-items:center;gap:12px;width:290px;padding-bottom:9px}.portrait{width:57px;height:62px;background:linear-gradient(135deg,#5b6346,#263b34);border:1px solid #c6b98a77;border-radius:18px 18px 9px 9px;position:relative;display:grid;place-items:center;box-shadow:inset 0 0 15px #08151080}.portrait>span{font-size:34px;color:#d3c795;text-shadow:0 0 14px #e8d7876b}.portrait small{position:absolute;bottom:-7px;left:17px;padding:2px 5px;background:#1c2821;border:1px solid #b9a47166;font-size:8px;color:var(--gold)}.hero-stats{flex:1}.hero-name{display:flex;justify-content:space-between;align-items:center;letter-spacing:1.2px;font-size:9px;gap:15px;margin-bottom:9px}.hero-name>span{font-size:9px;letter-spacing:.4px;color:#b1baa6}.health-track{height:9px;border:1px solid #a6b5913d;background:#0b1715;padding:2px;box-shadow:0 2px 5px #0005}#health-fill{height:100%;background:linear-gradient(90deg,#668d58,#aac18a);transition:width .1s;box-shadow:0 0 7px #91b76d44}.hero-sub{display:flex;justify-content:space-between;color:#829581;letter-spacing:1px;font-size:8px;margin-top:9px}.hero-sub b{color:#d2b87f;font-weight:500}.coin{display:inline-block;width:7px;height:7px;border:1px solid #c5a86d;border-radius:50%;margin-right:3px}
.action-panel{pointer-events:auto;padding:10px 15px 12px;border:1px solid #b7c0912e;background:linear-gradient(180deg,#172822ed,#0d1917f5);border-radius:7px;box-shadow:0 8px 30px #0005}.action-caption{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:8px;letter-spacing:2px;color:#91a28c}.action-caption button{font-size:8px;letter-spacing:1px;color:var(--gold);background:none;padding:0}.action-caption kbd{margin-left:4px}.action-row{display:flex;align-items:center;gap:10px}#action-slots{display:flex;gap:8px}.slot-divider{height:35px;width:1px;background:var(--line);margin:0 3px}.primary-slot,.action-slot{width:55px;height:57px;border:1px solid #aabc9160;border-radius:4px;background:linear-gradient(140deg,#3b5141,#1d3029);display:flex;align-items:center;justify-content:center;position:relative}.primary-slot{border-color:#c5b47655;background:linear-gradient(140deg,#4c5134,#25362a)}.primary-icon{font-size:37px;color:#e4d89b;text-shadow:0 0 15px #d2c78688}kbd{font-family:var(--sans);font-size:9px;padding:2px 5px;border:1px solid #b9c49935;border-radius:3px;background:#14211deb;color:#c7d0b9;white-space:nowrap}.primary-slot>kbd,.action-slot>kbd{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);z-index:3}.action-slot svg{width:31px;height:31px;filter:drop-shadow(0 0 8px currentColor)}.action-slot{color:var(--ability-color);border-color:color-mix(in srgb,var(--ability-color) 45%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--ability-color) 16%,#13251e),#15261f)}.slot-charges{position:absolute;right:4px;top:3px;font-size:9px;color:#eee7d2}.cooldown-shade{position:absolute;bottom:0;left:0;right:0;background:#050f10bb;pointer-events:none}.cooldown-number{position:absolute;inset:0;display:grid;place-items:center;font-size:20px;color:#f0ead7;z-index:2;text-shadow:0 2px 3px #000}.region-panel{width:270px;text-align:right;display:flex;flex-direction:column;gap:8px;padding-bottom:8px}.region-panel .eyebrow{justify-content:flex-end;font-size:8px;letter-spacing:1.8px}.region-title{font-family:var(--serif);font-size:25px;color:#d8deca}#movement-hint{font-size:9px;letter-spacing:.3px;color:#92a38e}#movement-hint span{padding:0 7px}.game-footnote{position:absolute;bottom:0;left:0;right:0;height:30px;border-top:1px solid #9bb48b15;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#0a1415b3;font-size:8px;letter-spacing:1.3px;color:#7f9384}.game-footnote span span{margin:0 10px;color:#4c6457}.game-footnote .tiny-diamond{color:var(--gold);margin-right:0}
.toast{position:absolute;top:32%;left:50%;transform:translate(-50%,-10px);background:#0c1b18e8;border:1px solid #ccb57b55;border-radius:5px;color:#e5d8b3;padding:12px 22px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;max-width:85%;font-size:12px}.toast.visible{opacity:1;transform:translate(-50%,0)}.interaction{position:absolute;left:50%;bottom:175px;transform:translateX(-50%);background:#0d1b17dc;border:1px solid var(--line);border-radius:4px;padding:10px 15px;white-space:nowrap;font-size:11px}.interaction kbd{margin-right:7px}.overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:25px;background:#05121075;backdrop-filter:blur(4px)}.overlay.intro{background:linear-gradient(90deg,#081511b3,#08151138);backdrop-filter:blur(2px)}.modal{position:relative;width:510px;max-height:100%;overflow:auto;padding:38px;background:linear-gradient(140deg,#23372eee,#101f1cf5);border:1px solid #b8be8c55;border-radius:8px;box-shadow:0 25px 100px #0008;text-align:center}.modal:before{content:'';position:absolute;left:28px;right:28px;top:0;height:1px;background:linear-gradient(90deg,transparent,#d9c388,transparent)}.modal .eyebrow{justify-content:center;letter-spacing:3px}.modal-rune{font-size:55px;color:var(--gold);margin-bottom:14px;line-height:1}.modal h2{font:500 48px/1.02 var(--serif);margin:15px 0;color:#ece8d4;letter-spacing:-1px}.modal p{font-size:12px;color:#acbca7;line-height:1.8;margin:0 auto 20px;max-width:380px}.intro-features{display:flex;justify-content:center;gap:20px;margin:24px 0;color:#b9c8ae;font-size:9px;letter-spacing:1px}.intro-features span:before{content:'◇';color:var(--gold);margin-right:7px}.button-main{display:block;width:100%;background:#c6b07c;color:#18241c;min-height:46px;border:1px solid #e2c995;border-radius:3px;font-weight:700;font-size:10px;letter-spacing:2px;padding:12px 20px;box-shadow:0 3px 15px #0002}.button-secondary{display:block;width:100%;min-height:40px;background:transparent;border:1px solid var(--line);border-radius:3px;color:#b7c4ac;font-size:10px;letter-spacing:1px;padding:10px;margin-top:10px}.modal-note{margin-top:17px!important;margin-bottom:0!important;font-size:9px!important;letter-spacing:.3px;color:#849a84!important}.modal-buttons{display:flex;gap:9px;margin-top:20px}.modal-buttons>*{flex:1;margin:0}.controls-list{margin:20px 0;text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.controls-list>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:10px;color:#b5c3aa}.settings-row{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:15px;font-size:11px;border-top:1px solid var(--line);padding:14px 0}.settings-row select{background:#14271f;color:var(--text);border:1px solid var(--line);border-radius:3px;padding:7px;font:11px var(--sans)}.settings-row input{accent-color:var(--gold)}.loadout-modal{width:600px;padding:28px}.loadout-modal h2{font-size:36px;margin:10px 0}.loadout-tabs{display:flex;gap:8px;margin:20px 0}.loadout-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;background:#14261f;border:1px solid var(--line);border-radius:4px;padding:10px 5px;color:#a9baa2;font-size:9px}.loadout-tab svg{width:26px;height:26px;color:var(--ability-color)}.loadout-tab.selected{border-color:var(--gold);background:#3c4430;color:#ead8ad}.ability-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ability-option{display:flex;align-items:center;gap:12px;text-align:left;background:#13251f;border:1px solid var(--line);border-radius:4px;padding:12px}.ability-option svg{width:28px;height:28px;flex-shrink:0;color:var(--ability-color)}.ability-option strong{display:block;font-size:11px;font-weight:500;margin-bottom:4px}.ability-option small{font-size:9px;line-height:1.5;color:#8ea187;display:block}.ability-option.equipped{border-color:#bda87680}.assigned-badge{color:var(--gold)!important;margin-top:3px}.victory-stats{display:flex;justify-content:center;gap:32px;margin:24px 0}.victory-stats strong{display:block;font:32px var(--serif);color:var(--gold)}.victory-stats span{font-size:9px;letter-spacing:1px;color:#a0b596}
@media(min-width:1600px){.topbar{padding:0 45px}.world-top{left:45px;right:45px;top:35px}.bottom-hud{left:45px;right:45px;bottom:55px}.action-slot,.primary-slot{width:64px;height:64px}.hero-panel{width:330px}.map-panel{width:220px}#minimap{height:136px}}
@media(max-width:1100px){.chapter{display:none}.region-panel{display:none}.bottom-hud{justify-content:center;gap:30px}.hero-panel{width:255px}.device-indicator{font-size:8px}.world-top{left:22px;right:22px}.topbar{padding:0 22px}.game-footnote{padding:0 22px;font-size:7px}}
@media(max-width:680px){.topbar{height:56px;padding:0 14px;gap:10px}.wordmark{font-size:21px;letter-spacing:2px;gap:6px}.brand-rune{font-size:28px}.edition,.device-indicator{display:none}nav{gap:6px}.world-top{top:17px;left:15px;right:15px}.objective-panel{max-width:220px;padding-left:10px}.objective-panel h1{font-size:22px}.objective-panel p{font-size:10px}.objective-detail{font-size:9px}.map-panel{width:123px;padding:6px}#minimap{height:80px}.map-heading{font-size:6px;letter-spacing:.5px}.map-footer{font-size:5px;letter-spacing:.5px}.bottom-hud{bottom:36px;left:12px;right:12px;gap:12px;align-items:center;flex-direction:column}.hero-panel{width:270px;padding:0}.portrait{width:34px;height:36px;border-radius:10px}.portrait>span{font-size:24px}.portrait small{left:9px;font-size:6px;bottom:-6px}.hero-name{margin-bottom:5px}.hero-sub{margin-top:5px}.action-panel{padding:8px 12px 11px}.action-slot,.primary-slot{width:47px;height:44px}.action-slot svg{width:26px;height:26px}.action-caption{margin-bottom:7px}.game-footnote{justify-content:center;padding:0 8px;font-size:6px}.game-footnote>span:last-child{display:none}.modal{padding:25px;width:460px}.modal h2{font-size:40px}.intro-features{gap:12px;font-size:8px}.overlay{padding:15px}.controls-list{gap:10px}.controls-list>div{font-size:9px}.ability-options{gap:6px}.ability-option{padding:9px;gap:7px}.ability-option small{font-size:8px}.interaction{bottom:208px}.toast{top:37%}}
@media(max-height:620px) and (min-width:681px){.topbar{height:52px}.world-top{top:15px}.map-panel{width:145px}#minimap{height:85px}.modal{padding:22px}.modal-rune{font-size:35px;margin-bottom:8px}.modal h2{font-size:36px;margin:10px 0}.modal p{margin-bottom:12px}.intro-features{margin:15px 0}.bottom-hud{bottom:40px}.objective-panel h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.toast{z-index:20}
.balance-trigger{padding:0 9px;font-size:9px;letter-spacing:1px;color:var(--gold)}
.balance-trigger.custom:after{content:' •';color:#d7d9a4}
.seed-field{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;margin:20px 0;color:var(--gold)}
.seed-field input,.seed-field select{width:180px;max-width:60%;padding:12px;background:#10241d;color:var(--gold);border:1px solid var(--line);border-radius:4px;font:14px var(--sans)}
.seed-field input:focus-visible,.seed-field select:focus-visible{outline:2px solid var(--gold)}
#dungeon-error{min-height:22px;color:#edb497;font-size:11px}
#dungeon-seed-label{color:#a4cbd1;margin-top:5px;letter-spacing:.5px}
#save-status{color:#b0c8a0;margin-top:5px;letter-spacing:.4px}
#save-status.save-failed{color:#edac8e}
.save-message{color:var(--gold);font-size:11px;line-height:1.6;margin:15px 0}
.balance-modal{width:800px;height:min(780px,100%);padding:24px;display:flex;flex-direction:column;overflow:hidden;text-align:left}
.balance-modal h2{font-size:36px;text-align:center;margin:9px 0}
.balance-modal .balance-intro{max-width:none;text-align:center;margin:0 0 10px;font-size:11px}
.balance-run{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;background:#0c191766;border:1px solid var(--line);padding:10px;border-radius:4px;font-size:9px;color:#9eb399}
.balance-run b{color:var(--gold);font-weight:500}
.balance-tabs{display:flex;gap:5px;margin:15px 0 0;padding-bottom:10px;border-bottom:1px solid var(--line)}
.balance-tabs button{flex:1;background:#11231e;border:1px solid var(--line);color:#adbea5;border-radius:4px;padding:10px 6px;font-size:10px}
.balance-tabs button.selected{border-color:var(--gold);color:#e7d8ac;background:#39452e}
.balance-fields{flex:1;min-height:90px;overflow:auto;padding:0 12px 0 2px;scrollbar-color:#657452 #12241e;scrollbar-width:thin;overscroll-behavior:contain}
.balance-field{display:flex;gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.balance-field label{flex:1;font-size:12px;color:#e0dfc8}
.balance-field label small{display:block;color:#92a88d;font-size:9px;line-height:1.5;margin-top:5px}
.balance-values{display:flex;align-items:center;gap:10px;width:300px;flex-shrink:0}
.balance-values input[type=range]{width:140px;min-width:50px;accent-color:var(--gold);cursor:pointer}
.balance-values input[type=number]{width:78px;padding:8px 5px;background:#10241d;color:var(--gold);border:1px solid #b5b88c55;border-radius:4px;font:12px var(--sans)}
.balance-values input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.balance-values input[aria-invalid=true]{outline:2px solid #db8976}
.balance-values>span{font-size:9px;color:#a8b59b;min-width:32px}
.balance-bottom{border-top:1px solid var(--line);padding-top:10px}
.balance-bottom #balance-estimates{color:#b7c4a7;font-size:9px;line-height:1.5;max-width:none;margin:0 0 5px}
#balance-status{color:var(--gold);font-size:10px;min-height:18px;margin-bottom:6px}
.balance-actions{display:flex;gap:8px}
.balance-actions button{margin:0;min-height:40px;font-size:9px;letter-spacing:1px}
.balance-actions .button-main{flex:1.3}.balance-actions .button-secondary{flex:1}
.balance-modal .balance-explain{max-width:none;font-size:9px;line-height:1.5;color:#92a68c;margin:8px 0 0}
.balance-fields h3{font:500 22px var(--serif);color:#ded5b9;margin:16px 0 5px}
.profile-buttons{display:flex;gap:8px;margin:8px 0 15px}.profile-buttons button{margin:0;font-size:9px}
.preset-row{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}
.preset-row>span{flex:1;font-size:11px;color:#d8d6bb}.preset-row small{display:block;font-size:9px;color:#91a68b;margin-top:3px}
.preset-row button{margin:0;width:auto;min-height:32px;font-size:9px;padding:7px 14px}
@media(max-width:680px){.balance-modal{padding:16px 12px}.balance-modal h2{font-size:30px}.balance-field{display:block;padding:10px 0}.balance-values{width:100%;margin-top:8px}.balance-values input[type=range]{flex:1}.balance-modal .balance-intro{font-size:10px}.balance-run{gap:6px 10px;font-size:8px;padding:8px}.balance-tabs{gap:3px;margin-top:10px}.balance-tabs button{font-size:8px;padding:9px 4px}.balance-actions{gap:5px}.balance-actions button{font-size:8px;padding:8px 5px;letter-spacing:.5px}.balance-bottom .balance-explain{font-size:8px}.balance-trigger{font-size:8px;padding:0 5px}.topbar{gap:5px}.wordmark{font-size:19px;letter-spacing:1.5px}}

.balance-values select{width:100%;padding:10px;background:#10241d;color:var(--gold);border:1px solid #b5b88c55;border-radius:4px;font:12px var(--sans)}
.balance-values select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.balance-fields .balance-section{font:10px var(--sans);letter-spacing:2px;text-transform:uppercase;color:var(--gold);padding:14px 0 5px}
@media(max-width:680px){.balance-tabs{flex-wrap:wrap}.balance-tabs button{flex:1 0 20%}}
@media(max-width:440px){.topbar .wordmark{font-size:17px;letter-spacing:1px}.topbar .brand-rune,#sound-label{display:none}.topbar nav{gap:4px}.topbar .header-button{min-width:28px}.topbar .balance-trigger{font-size:7px;padding:0 4px}}
