@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Inter:wght@400;450;500;600&display=swap');
:root{color-scheme:dark;--gold:#c6b58c;--gold-bright:#e3cf9d;--muted:#8a928c;--ink:#101716;--line:#a38b5840;--serif:'Cinzel',Georgia,serif;--sans:'Inter',Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101718;color:#d4d4c8;font-family:var(--sans);font-size:16px}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:2px solid var(--gold-bright);outline-offset:5px}button:disabled{cursor:default}button:hover{color:#f2dfb3}#game{position:relative;width:100%;height:100%;isolation:isolate}#world{position:absolute;inset:0;display:block;width:100%;height:100%;outline:none;touch-action:none;cursor:crosshair}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 51% 48%,transparent 34%,#07122512 65%,#03091799 115%),linear-gradient(#080d1370,transparent 17%,transparent 76%,#080c10a6 100%);z-index:1}#damage-vignette{position:absolute;inset:0;box-shadow:inset 0 0 140px #ba241cd0;opacity:0;z-index:2;pointer-events:none;transition:opacity .18s}.brand{position:absolute;top:32px;left:36px;display:flex;align-items:center;gap:16px;z-index:3;text-shadow:0 2px 12px #000}.sigil{width:46px;height:56px;color:var(--gold);font-family:Georgia;font-size:42px;text-align:center;border-bottom:1px solid var(--line);filter:drop-shadow(0 0 8px #e1b46933)}.brand h1{font-family:var(--serif);font-weight:500;font-size:25px;letter-spacing:3.5px;text-transform:uppercase;margin:0 0 6px;color:#d5c79f}.brand span{font-size:10px;letter-spacing:4px;color:#8e948a}.location{position:absolute;left:50%;transform:translateX(-50%);top:30px;text-align:center;z-index:3;pointer-events:none;text-shadow:0 2px 8px #000}.eyebrow{font-size:11px;letter-spacing:2.2px;font-weight:500;color:#989d90}.location>div{font-family:var(--serif);font-size:19px;color:#d9d9c8;margin-top:8px;letter-spacing:.7px}.location-rule{display:flex;align-items:center;gap:10px;justify-content:center;font-size:8px;color:#9d8b5d;margin-top:10px}.location-rule:before,.location-rule:after{content:'';height:1px;width:54px;background:linear-gradient(90deg,transparent,#af9c7155)}.location-rule:after{transform:rotate(180deg)}.quest{position:absolute;top:158px;left:38px;width:250px;z-index:3;text-shadow:0 2px 9px #000;transition:opacity .3s}.quest-label{color:#a99b74;font-size:10px;letter-spacing:2px}.quest-label>span{font-size:20px;vertical-align:middle;margin-right:5px}.quest h2{font-family:var(--serif);font-size:19px;line-height:1.4;letter-spacing:.2px;font-weight:500;color:#e0d9bd;margin:9px 0 18px}.quest-line{display:flex;gap:10px;align-items:flex-start;font-size:13px}.quest-line>div{display:flex;flex:1;justify-content:space-between;gap:16px}.quest-marker{height:8px;width:8px;transform:rotate(45deg);border:1px solid #bd9d67;margin:5px 1px}.quest-marker.done{background:#c4ad76}.quest-line #quest-count{color:#caba8a;font-size:12px;white-space:nowrap}.quest p{font-size:12px;line-height:1.7;color:#90948a;max-width:215px;margin:12px 0 15px 20px}.text-button{border:0;background:none;padding:3px 0;color:#a6aa9f;font-size:12px;display:inline-flex;gap:12px;align-items:center}.text-button:hover{color:var(--gold-bright)}kbd{font-family:var(--sans);font-size:9px;border:1px solid #85847555;color:#c2c1ac;border-radius:2px;background:#17201ac9;padding:2px 5px;min-width:18px;text-align:center}.quest .text-button{margin-left:20px;font-size:11px}.map-panel{position:absolute;right:32px;top:30px;z-index:3;width:180px}.map-frame{position:relative;width:180px;height:166px;border:1px solid #7a806244;background:linear-gradient(145deg,#1b2425ba,#090f11c4);box-shadow:inset 0 0 35px #020707b3,0 3px 25px #0002;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}#minimap{width:100%;height:100%;opacity:.85;display:block}.north{position:absolute;left:50%;top:5px;transform:translateX(-50%);font-family:var(--serif);font-size:11px;color:#b8b087;z-index:1}.map-corner{position:absolute;width:12px;height:12px;border-color:#b9a87e66;border-style:solid}.tl{top:4px;left:4px;border-width:1px 0 0 1px}.tr{top:4px;right:4px;border-width:1px 1px 0 0}.bl{bottom:4px;left:4px;border-width:0 0 1px 1px}.br{bottom:4px;right:4px;border-width:0 1px 1px 0}.map-caption{display:flex;gap:10px;justify-content:center;align-items:center;font-size:9px;letter-spacing:1.5px;color:#b4b79f;margin-top:10px}.map-caption .moon{font-size:17px;color:#d1ba78}.map-caption button,.utility button,.footer-right button{width:24px;height:24px;display:grid;place-items:center;background:none;border:0;padding:3px;color:#8f988f}.map-caption button svg{width:12px}.utility{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.utility button{border:1px solid #8e917437;width:28px;height:28px;background:#111b1b60;border-radius:2px}.utility button:hover{border-color:#baa779;color:var(--gold-bright)}svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.enemy-target{position:absolute;left:50%;top:128px;transform:translateX(-50%);text-align:center;z-index:3;min-width:190px;text-shadow:0 2px 8px #000;pointer-events:none}.enemy-target>div:first-child{font-family:var(--serif);font-size:15px;margin-bottom:6px;color:#d0c5aa}.target-track{height:4px;background:#252522;border:1px solid #7970524d}.target-track i{display:block;height:100%;width:100%;background:#a54d39;transition:width .12s}.enemy-target>span{font-size:9px;letter-spacing:2px;color:#898d81;display:block;margin-top:6px}.boss-bar{position:absolute;top:112px;left:50%;transform:translateX(-50%);width:min(420px,50vw);z-index:3;text-align:center;pointer-events:none}.boss-bar>span{font-size:9px;letter-spacing:3px;color:#c4a271}.boss-bar h2{font-size:21px;font-family:var(--serif);font-weight:500;margin:7px 0 11px;text-shadow:0 2px 6px #000;color:#ded3bb}.boss-track{height:8px;padding:2px;background:#0c1113;border:1px solid #907d5d}.boss-track i{display:block;background:linear-gradient(90deg,#67302b,#ba5744);height:100%;transition:width .25s}.arrival{position:absolute;pointer-events:none;top:33%;left:50%;transform:translateX(-50%);width:500px;max-width:90vw;text-align:center;z-index:4;opacity:0;animation:arrival 6.5s 1s forwards;text-shadow:0 2px 14px #000,0 1px 4px #000}.arrival>span{font-size:10px;letter-spacing:5px;color:#b7aa82}.arrival h2{font-family:var(--serif);font-size:42px;font-weight:400;letter-spacing:7px;text-transform:uppercase;margin:13px 0 8px;color:#e0d9c0}.arrival p{font-family:Georgia;font-style:italic;font-size:15px;letter-spacing:.3px;color:#b0b4a7}@keyframes arrival{0%{opacity:0;filter:blur(4px)}20%,66%{opacity:1;filter:blur(0)}100%{opacity:0;visibility:hidden}}.combat-guide{position:absolute;bottom:191px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:13px;color:#b7bda9;white-space:nowrap;text-shadow:0 1px 5px #000;font-size:9px;letter-spacing:1px;transition:opacity 1s}.combat-guide em{font-size:11px;color:#8d978c;font-style:normal;letter-spacing:0;margin-left:6px}.combat-guide i{height:3px;width:3px;background:#83876a;transform:rotate(45deg)}.hud{position:absolute;bottom:0;left:0;right:0;z-index:3;height:167px;background:linear-gradient(0deg,#080e10dd,transparent);pointer-events:none}.character-meta{position:absolute;bottom:34px;left:35px;display:flex;gap:12px;align-items:center}.rank{width:34px;height:38px;background:#1d25239c;border:1px solid #9b8c594d;display:grid;place-items:center;font-family:var(--serif);font-size:17px;color:#bdae7e;clip-path:polygon(50% 0,100% 14%,100% 86%,50% 100%,0 86%,0 14%)}.character-meta strong{display:block;font-size:12px;font-weight:500;color:#bebdaf}.character-meta>div>span{display:block;font-size:8px;letter-spacing:1.2px;margin-top:7px;color:#79867e}.combat-dock{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:20px;pointer-events:auto}.orb-group{text-align:center}.orb-frame{width:109px;height:109px;position:relative;padding:7px;border:1px solid #a7976477;border-radius:50%;background:radial-gradient(circle,#080d10 52%,#66624a 60%,#252c2b 64%,#121c20 66%,#5d6151 69%,#131b1c 71%);box-shadow:0 6px 20px #0009,0 0 0 3px #0a1113,0 0 0 4px #6a705839}.orb-frame:before,.orb-frame:after{content:'';position:absolute;top:49px;width:15px;height:10px;border:1px solid #938c68;background:#29302b;transform:rotate(45deg);z-index:3}.orb-frame:before{left:-9px}.orb-frame:after{right:-9px}.orb{width:100%;height:100%;border-radius:50%;position:relative;overflow:hidden;background:#121010;box-shadow:inset 0 1px 10px #000}.liquid{position:absolute;bottom:0;width:100%;height:100%;transition:height .4s}.health .liquid{background:radial-gradient(ellipse at 32% 80%,#b82f27,transparent 66%),radial-gradient(ellipse at 75% 60%,#670e15,transparent 60%),linear-gradient(#490f18,#981f25 45%,#66101b)}.mana .liquid{background:radial-gradient(ellipse at 28% 75%,#318697,transparent 65%),radial-gradient(ellipse at 85% 60%,#0b2f50,transparent 65%),linear-gradient(#193044,#1c606f 50%,#17424f)}.liquid:before{content:'';position:absolute;top:-7px;left:-30%;width:160%;height:15px;border-radius:50%;background:#ffffff16;filter:blur(2px);animation:liquid 5s ease-in-out infinite}.liquid:after{content:'';position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 10% 85%,transparent 0%,#fff1 1%,transparent 2%,transparent 8%);opacity:.18;transform:rotate(-35deg)}@keyframes liquid{50%{transform:translateX(10%) rotate(5deg)}}.orb-glass{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 35% 18%,#ffffff35,transparent 28%),radial-gradient(ellipse at center,transparent 30%,#0009 95%);box-shadow:inset 0 0 8px #0008,inset 0 1px 2px #fffc}.orb-value{position:absolute;top:39%;left:0;right:0;font-family:var(--serif);font-size:19px;color:#eadcc5;text-shadow:0 1px 5px #000}.orb-value span{display:block;font-family:var(--sans);font-size:9px;color:#d0c4b3aa;margin-top:2px}.orb-cap{position:absolute;bottom:-8px;left:0;right:0;font-size:17px;color:#8e8662;text-shadow:0 2px 2px #000}.orb-label{display:block;font-size:8px;letter-spacing:2.4px;color:#9eaa9c;margin-top:13px}.abilities-wrap{width:366px;margin-bottom:7px}.ability-caption{display:flex;align-items:center;gap:12px;padding:0 2px 10px;font-size:8px;letter-spacing:1.8px;color:#a6a690}.ability-caption i{height:1px;flex:1;background:linear-gradient(90deg,#8f90653d,transparent)}.ability-caption span:last-child{color:#8d9687;font-size:8px;letter-spacing:1px}.abilities{display:flex;align-items:center;gap:7px}.ability{position:relative;flex:1;min-width:0;height:69px;border:1px solid #92907155;background:linear-gradient(145deg,#293533cc,#121b1cfa);box-shadow:inset 0 0 0 3px #08131699,inset 0 0 20px #0007,0 3px 10px #0008;border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 0 0;isolation:isolate;transition:background .15s,border-color .15s,transform .12s}.ability:before{content:'';position:absolute;inset:4px;border:1px solid #a7a37b16;z-index:-1}.ability:hover{border-color:#b9a476;background:linear-gradient(145deg,#424c3c,#152326);transform:translateY(-2px)}.ability:active,.ability.active{transform:translateY(1px);border-color:#dfbb7a;box-shadow:inset 0 0 22px #daa55244}.ability kbd{position:absolute;top:-7px;left:50%;transform:translateX(-50%);font-size:8px;background:#141d1c;padding:2px 5px;border-color:#80826588;z-index:2;white-space:nowrap}.ability-icon{width:31px;height:31px;display:block;filter:drop-shadow(0 0 5px currentColor)}.steel{color:#b1c3b8}.ember{color:#d18b4e}.pale{color:#93b1ad}.ruby{color:#c16056}.ability-name{font-size:8px;display:block;margin-top:6px;white-space:nowrap;color:#bac0ad}.ability .cooldown{position:absolute;inset:0;display:none;background:#061011c9;font-size:21px;font-family:var(--serif);align-items:center;justify-content:center;z-index:1;color:#d0c6a4}.ability.on-cooldown .cooldown{display:flex}.ability.unavailable{filter:saturate(.25);opacity:.65}.slot-divider{height:44px;width:1px;background:linear-gradient(transparent,#a0a77b66,transparent);margin:0 2px}.potion-count{position:absolute;right:7px;top:12px;font-size:10px;color:#d5baa1}.experience-track{margin-top:13px;height:3px;background:#5a60503b;position:relative;box-shadow:0 0 0 1px #303a2d55}.experience-track i{height:100%;width:0;display:block;background:linear-gradient(90deg,#656943,#baae74);transition:width .5s}.experience-track span{position:absolute;right:-4px;top:-4px;font-size:9px;color:#72795c}.footer-right{position:absolute;right:34px;bottom:36px;display:flex;gap:9px;align-items:center;font-size:8px;letter-spacing:1.2px;color:#7d8b80}.footer-right button{pointer-events:auto;margin-left:7px}.save-mark{font-size:16px;color:#8d977b}#float-layer{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.damage-number{position:absolute;left:0;top:0;font-family:var(--serif);font-size:23px;font-weight:600;color:#eee0ad;text-shadow:0 2px 4px #000,0 0 7px #000;white-space:nowrap;will-change:transform,opacity}.damage-number.enemy-damage{font-size:21px;color:#ff293b}.damage-number.magic{color:#ffb86b;font-size:27px}.damage-number.heal{color:#a5d6b6}.damage-number.small{font-size:13px;letter-spacing:1px}#toast{position:absolute;left:50%;bottom:224px;transform:translate(-50%,10px);z-index:5;text-align:center;font-size:13px;letter-spacing:.3px;color:#d9c99f;opacity:0;transition:opacity .2s,transform .3s;text-shadow:0 2px 6px #000;pointer-events:none;width:max-content;max-width:90vw;padding:9px 20px;background:linear-gradient(90deg,transparent,#0a1313c9,transparent)}#toast.visible{opacity:1;transform:translate(-50%,0)}.modal-shade{position:absolute;inset:0;background:#050b0ecc;backdrop-filter:blur(5px);z-index:20;display:grid;place-items:center;padding:24px}.modal-shade[hidden]{display:none}.modal{width:470px;max-width:100%;max-height:95%;overflow:auto;background:linear-gradient(145deg,#1e2929,#0d171a);border:1px solid #98885b88;box-shadow:0 20px 120px #000,inset 0 0 0 6px #141d1c,inset 0 0 0 7px #92805733;padding:42px;text-align:center;outline:none}.modal>.eyebrow{font-size:10px;color:#b6a16d;letter-spacing:3px}.modal h2{font-size:28px;line-height:1.3;font-family:var(--serif);font-weight:400;color:#e0d3b0;margin:16px 0 20px}.modal p{font-size:14px;line-height:1.7;color:#aeb6a9}.modal .primary-button{width:100%;margin-top:22px}.primary-button{border:1px solid #a99b6b;padding:14px 20px;background:linear-gradient(#625b39,#343727);box-shadow:inset 0 0 0 3px #1c251c66;font-family:var(--serif);font-size:14px;letter-spacing:1px;color:#eddfb7}.primary-button:hover{background:linear-gradient(#807144,#4b4d30)}.modal .text-button{margin-top:17px}.controls-table{margin:24px 0;text-align:left}.controls-table>div{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #a9a36e1c;padding:10px 0;font-size:13px;color:#abb6ac}.controls-table kbd{font-size:10px;min-width:45px}.journal-copy{text-align:left}.journal-copy strong{color:#d4c6a0;font-weight:500}.journal-copy .journal-progress{padding-top:14px;border-top:1px solid #96825633;color:#d1bc86}.victory-stats{display:flex;justify-content:center;gap:35px;margin:25px 0}.victory-stats strong{display:block;color:#dcc68e;font-family:var(--serif);font-size:25px;font-weight:400}.victory-stats span{display:block;font-size:10px;letter-spacing:1px;color:#96a28f;margin-top:6px}#loading{position:absolute;inset:0;z-index:30;background:radial-gradient(ellipse at 50% 46%,#233030,#0b1216 70%);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .75s}#loading.done{opacity:0;pointer-events:none}#loading h2{font-family:var(--serif);font-size:42px;letter-spacing:7px;font-weight:400;color:#d3c293;margin:17px 0}#loading-message{font-family:Georgia;font-size:15px;color:#a5ad9e;font-style:italic}.load-sigil{color:#ac9b6e;font-size:50px}.load-track{margin-top:32px;height:2px;width:190px;background:#8f946322}.load-track i{height:100%;display:block;background:#c1aa71;width:5%;transition:width .2s}#audio-prompt{position:absolute;bottom:225px;right:34px;z-index:3;display:flex;gap:8px;align-items:center;font-size:10px;color:#a7b39f;background:#0f181980;padding:9px 12px;border:1px solid #66745433;pointer-events:none;transition:opacity .5s}#audio-prompt svg{width:13px;height:13px}#touch-controls{display:none}#joystick{position:absolute;left:30px;bottom:190px;width:104px;height:104px;border-radius:50%;border:1px solid #c6bd8644;background:#0b1b1d44;touch-action:none;pointer-events:auto;display:grid;place-items:center}#joystick-thumb{width:42px;height:42px;border-radius:50%;border:1px solid #b6b78388;background:#88977a44;pointer-events:none}.map-panel.expanded{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:450px;max-width:85vw;padding:15px;background:#101c20f0;border:1px solid #938358;box-shadow:0 0 0 100vmax #0008;z-index:12}.map-panel.expanded .map-frame{width:100%;height:auto;aspect-ratio:1}.map-panel.expanded .utility{display:none}@media(min-width:1600px){.combat-dock{transform:translateX(-50%) scale(1.1);transform-origin:bottom center;bottom:24px}.hud{height:180px}.combat-guide{bottom:213px}.map-panel{width:200px}.map-frame{width:200px;height:184px}.quest{top:180px}}@media(max-width:1100px){.brand{left:24px;top:24px}.brand h1{font-size:21px}.brand span{font-size:8px;letter-spacing:3px}.sigil{font-size:34px;width:34px}.quest{left:26px;top:137px;width:220px}.quest h2{font-size:17px}.location{top:27px}.location>div{font-size:16px}.map-panel{right:24px;top:24px;width:148px}.map-frame{width:148px;height:138px}.footer-right>span{display:none}.character-meta{left:24px;bottom:30px}.character-meta>div{display:none}.combat-dock{gap:17px}.combat-guide{bottom:181px}.footer-right{right:24px;bottom:28px}}@media(max-width:760px){.brand{top:18px;left:18px;gap:8px}.brand h1{font-size:18px;letter-spacing:2px;margin:0 0 4px}.brand span{font-size:7px;letter-spacing:2px}.sigil{font-size:28px;width:25px;height:35px}.location{display:none}.quest{top:89px;left:20px;width:200px}.quest h2{font-size:15px;margin:5px 0 10px}.quest-label{font-size:8px}.quest-label>span{font-size:17px}.quest-line{font-size:11px}.quest-line #quest-count{font-size:10px}.quest p{font-size:10px;line-height:1.5;max-width:170px;margin:8px 0 10px 18px}.quest .text-button{font-size:9px}.map-panel{right:16px;top:18px;width:116px}.map-frame{width:116px;height:109px}.map-caption{font-size:7px;gap:5px;letter-spacing:.5px;margin-top:4px}.map-caption .moon{font-size:14px}.map-caption button{width:17px}.utility{gap:7px;margin-top:10px}.utility button{height:25px;width:25px}.combat-dock{gap:13px;bottom:17px}.orb-frame{height:72px;width:72px;padding:5px}.orb-frame:before,.orb-frame:after{top:30px;height:7px;width:10px}.orb-frame:before{left:-6px}.orb-frame:after{right:-6px}.orb-cap{font-size:12px;bottom:-6px}.orb-label{font-size:7px;letter-spacing:1.6px;margin-top:9px}.orb-value{font-size:14px;top:34%}.orb-value span{font-size:7px}.abilities-wrap{width:290px;margin-bottom:4px}.ability{height:58px}.ability-icon{width:25px;height:25px}.ability-name{font-size:7px}.ability kbd{font-size:7px}.abilities{gap:5px}.ability-caption{font-size:7px;padding-bottom:9px}.ability-caption span:last-child{font-size:7px}.experience-track{margin-top:10px}.character-meta,.footer-right{display:none}.hud{height:123px}.combat-guide{bottom:137px;gap:8px;font-size:8px}.combat-guide em{font-size:9px;margin-left:3px}#audio-prompt{bottom:179px;right:16px;font-size:8px;padding:6px 8px}.arrival h2{font-size:30px;letter-spacing:5px}.arrival p{font-size:13px}.enemy-target{top:55px;min-width:130px}.boss-bar{top:61px;width:44vw}.boss-bar h2{font-size:17px}.boss-bar>span{font-size:7px}.boss-track{height:6px}#toast{bottom:160px;font-size:12px}.modal{padding:30px}.modal h2{font-size:25px}.map-panel.expanded .map-frame{height:auto}}@media(max-width:520px){.combat-dock{gap:10px;width:calc(100% - 30px);justify-content:center}.orb-frame{width:58px;height:58px;padding:4px}.orb-frame:before,.orb-frame:after{top:23px}.orb-frame:before{left:-5px}.orb-frame:after{right:-5px}.orb-value{font-size:12px}.orb-value span{font-size:6px}.orb-label{font-size:6px;letter-spacing:1px}.abilities-wrap{flex:1;max-width:280px}.ability{height:54px;padding-top:9px}.ability-icon{width:23px;height:23px}.ability-name{font-size:6px}.abilities{gap:4px}.ability kbd{font-size:6px;min-width:14px;padding:2px 3px}.slot-divider{margin:0;width:1px}.potion-count{font-size:8px;right:4px}.ability-caption{font-size:6px;letter-spacing:1px;gap:5px}.ability-caption span:last-child{font-size:6px}.combat-guide{font-size:7px;bottom:122px}.combat-guide em{font-size:8px}.quest{width:183px}.quest-line{font-size:10px}.quest p{max-width:145px}.boss-bar{top:205px;width:65vw}.enemy-target{top:205px}.arrival{top:38%}}@media(pointer:coarse){#touch-controls{display:block;position:absolute;inset:0;pointer-events:none;z-index:3}.combat-guide{display:none}.ability{min-height:58px}.ability-name{font-size:8px}#audio-prompt{bottom:143px}}@media(prefers-reduced-motion:reduce){.liquid:before{animation:none}.arrival{animation-duration:2s}*{scroll-behavior:auto}}
#loading[hidden]{display:none}.ability-name{font-size:10px}.ability-caption,.ability-caption span:last-child{font-size:10px}.ability kbd{font-size:10px}.orb-label{font-size:10px}.brand span{font-size:11px}.quest-label{font-size:11px}.quest-line{font-size:14px}.quest p{font-size:13px}.quest .text-button{font-size:12px}.map-caption{font-size:10px}.character-meta strong{font-size:14px}.character-meta>div>span{font-size:10px}.footer-right{font-size:10px}.combat-guide{font-size:10px}.combat-guide em{font-size:12px}#audio-prompt{font-size:11px}.eyebrow{font-size:12px}.ability-icon{width:29px;height:29px}.ability-name{margin-top:5px}@media(max-width:760px){.ability-name{font-size:8px}.ability kbd{font-size:8px}.ability-caption,.ability-caption span:last-child{font-size:8px}.orb-label{font-size:8px}.brand span{font-size:9px}.quest-label{font-size:10px}.quest-line{font-size:12px}.quest p{font-size:11px}.quest .text-button{font-size:11px}.map-caption{font-size:8px}.combat-guide{font-size:8px}.combat-guide em{font-size:10px}#audio-prompt{font-size:10px}.ability-icon{width:24px;height:24px}}@media(max-width:520px){.ability-name{font-size:7px}.ability kbd{font-size:7px}.ability-caption,.ability-caption span:last-child{font-size:7px}.orb-label{font-size:7px}.ability-icon{width:22px;height:22px}}

[hidden]{display:none!important}

#world-labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.world-label{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:auto;border:0;background:transparent;text-align:center;text-shadow:0 1px 4px #000,0 2px 9px #000;font-family:var(--serif);font-size:13px;color:#cfcaaf;padding:4px 8px}.world-label small{display:block;font-family:var(--sans);font-size:9px;color:#99a999;margin-top:3px}.world-label:hover,.world-label.in-reach{color:#f5dfa7}.npc-mark{display:block;font-family:Georgia;font-size:22px;line-height:24px;color:#cdb677;margin-bottom:3px}.loot-label{font-family:var(--sans);font-size:11px;background:#101a19d9;border:1px solid #8c927550;padding:4px 7px}.loot-label.uncommon{color:#b0d4a4}.loot-label.rare{color:#9bcbde}.loot-label.legendary{color:#f2c77c;border-color:#a8804599;background:#231d15e6}.loot-label.in-reach{border-color:currentColor}#interact-button{position:absolute;left:50%;bottom:178px;transform:translateX(-50%);z-index:5;display:flex;gap:10px;align-items:center;border:1px solid #baaa7455;padding:10px 16px;background:#111c1bea;color:#d8d1b3;font-size:12px;box-shadow:0 4px 20px #0006}#interact-button kbd{font-size:12px}.footer-right{flex-direction:column;align-items:flex-end;gap:9px;bottom:31px}.footer-right>button:last-child{position:absolute;right:0;bottom:68px}.footer-right .inventory-button{display:flex;width:auto;height:auto;gap:8px;padding:7px 10px;border:1px solid #9b8c594d;white-space:nowrap;color:#beb79c;font-size:11px}#gold-counter{color:#b9a66f;font-size:11px}.dialogue-choices{display:flex;flex-direction:column;gap:9px;margin:22px 0 10px}.dialogue-choices button,.item-row button{padding:12px 13px;border:1px solid #ae9c665e;background:#77744720;color:#d2c19a;font-size:12px;line-height:1.5}.dialogue-choices button:hover,.item-row button:hover{background:#9b875033}.dialogue-choices button:disabled,.item-row button:disabled{opacity:.45;cursor:default}.modal .npc-speech{font-family:Georgia;font-size:17px;line-height:1.65;text-align:left;color:#c3c6b6}.modal .purse{font-size:11px;color:#a3976c;letter-spacing:.6px}.inventory-modal{width:620px;padding:30px 36px}.inventory-summary{display:flex;justify-content:space-around;border-top:1px solid #94825544;border-bottom:1px solid #94825544;padding:16px 0;margin:22px 0;color:#d7c698;font-family:var(--serif);font-size:21px}.inventory-summary small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:1px;color:#889b8e;margin-top:6px}.inventory-list{max-height:285px;overflow:auto;padding-right:5px}.item-row{display:flex;gap:20px;align-items:center;text-align:left;padding:14px 0;border-bottom:1px solid #9b91612b}.item-row>div{flex:1}.item-row strong{display:block;font-family:var(--serif);font-size:14px;font-weight:500;color:#c5cbb6;margin:4px 0}.item-row.uncommon strong{color:#aed09e}.item-row.rare strong{color:#9ccddd}.item-row.legendary strong{color:#f1c276}.item-row .item-rarity{font-size:8px;text-transform:uppercase;letter-spacing:1.3px;color:#869587}.item-row p{font-size:10px;line-height:1.5;margin:4px 0;color:#8c9b90}.item-row small{font-size:10px;color:#beb792}.item-row button{padding:6px 10px;min-width:74px;font-size:10px}.modal .inventory-hint{font-size:11px;line-height:1.7;margin-top:16px;color:#8f9e91}.legendary-reward{margin:25px 0;padding:20px 10px;border:1px solid #ac834966;background:#7c5a1d16}.legendary-reward span{font-size:9px;letter-spacing:1.8px;color:#b59b6a}.legendary-reward strong{display:block;font-family:var(--serif);font-size:21px;color:#e8be78;margin-top:13px}.legendary-reward p{font-size:11px;margin-bottom:0}.combat-guide{bottom:220px}.quest{width:258px}.quest p{max-width:222px}.map-panel.expanded:after{content:'◆ Warden   ▪ Villagers   ● Monsters   ▪ Loot';display:block;text-align:center;font-size:9px;color:#acb49c;margin-top:12px}@media(max-width:1100px){.footer-right>span{display:block}.footer-right{right:18px}.quest{width:220px}}@media(max-width:760px){.footer-right{display:flex;right:16px;bottom:137px}.footer-right>button:last-child{display:none}.footer-right .inventory-button{font-size:10px;padding:6px}.combat-guide{bottom:182px}#interact-button{bottom:140px;max-width:65vw;font-size:10px;padding:8px 10px;white-space:nowrap}.world-label{font-size:11px}.world-label small{font-size:8px}.quest{width:190px}.npc-mark{font-size:17px;line-height:20px}.inventory-modal{padding:24px}.item-row{gap:8px}.inventory-summary{font-size:17px}.inventory-summary small{font-size:7px}.item-row strong{font-size:12px}}@media(max-width:520px){#interact-button{bottom:135px}.footer-right{bottom:182px}.quest{width:185px}.npc-label small{display:none}.world-label{font-size:10px}.combat-guide{bottom:165px}}

/* Inventory: a framed equipment sheet above a compact, expandable satchel. */


/* Polished gunmetal, fine brass inlays, and luminous alchemical glass. */
.orb-group{--resource-glow:255,61,86}.mana-group{--resource-glow:52,172,255}
.orb-frame{padding:6px;border-color:#b7a47c80;background:conic-gradient(from 30deg,#121d25,#687078 12%,#26313a 23%,#101920 43%,#8e8977 54%,#26323b 65%,#111920 84%,#696e69);box-shadow:0 8px 24px #000a,0 0 0 3px #081015,0 0 0 4px #b9a27a30,0 0 18px rgba(var(--resource-glow),calc(.32 * var(--potion-strength,1))),0 0 42px rgba(var(--resource-glow),calc(.2 * var(--potion-strength,1))),0 8px 66px rgba(var(--resource-glow),calc(.12 * var(--potion-strength,1)))}
.orb-frame:before,.orb-frame:after{width:10px;height:10px;top:calc(50% - 5px);background:linear-gradient(135deg,#d8c49a,#4a4a41);border:1px solid #cfbd9380;box-shadow:0 2px 5px #0008}
.orb-frame:before{left:-6px}.orb-frame:after{right:-6px}
.orb{background:#070e17;box-shadow:0 0 0 1px rgba(var(--resource-glow),.45),0 0 13px rgba(var(--resource-glow),.28),inset 0 0 12px #000}
.orb-shader{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.shader-ready .liquid{visibility:hidden}
.orb-glass{pointer-events:none;background:radial-gradient(ellipse at 31% 15%,#e5f3ff24,transparent 27%),radial-gradient(ellipse at 50% 45%,transparent 55%,#0008 100%);box-shadow:inset 0 1px 2px #e6f2ff80,inset 0 -2px 3px #d1edff20}
.orb-glass:after{content:'';position:absolute;inset:7% 10% 13%;border-radius:50%;border:1px solid transparent;border-top-color:#ecf7ff4d;transform:rotate(-30deg)}
.orb-value{top:35%;font-size:23px;color:#fff0db;text-shadow:0 2px 6px #000,0 0 16px #0008;font-variant-numeric:tabular-nums}
.orb-value span{font-size:10px;color:#e6eaf0a6;letter-spacing:.3px;margin-top:1px}
.orb-cap{font-size:12px;bottom:-6px;color:#c1ad82}
.orb-label{font-size:10px;letter-spacing:2.6px;color:#bbc4cb;margin-top:12px}
.abilities-wrap{width:396px;margin-bottom:7px}
.ability-caption{color:#c1b99f;font-size:10px;letter-spacing:2px;padding-bottom:13px}
.ability-caption span:last-child{color:#a1b0bb;font-variant-numeric:tabular-nums}
.abilities{gap:8px}
.ability{height:74px;border:1px solid #a5bdcf38;border-radius:7px;background:radial-gradient(ellipse at 50% 16%,#7899a81a,transparent 75%),linear-gradient(160deg,#24313beb,#0c141df5);box-shadow:inset 0 1px 0 #e4f0ff12,inset 0 -1px 0 #000b,0 5px 14px #0005;padding-top:11px;overflow:visible}
.ability:before{inset:3px;border-color:#d5e3ef09;border-radius:4px}
.ability:after{content:'';position:absolute;bottom:0;left:22%;right:22%;height:1px;background:linear-gradient(90deg,transparent,#acc7d080,transparent)}
.ability:hover{background:radial-gradient(ellipse at 50% 15%,#9fc6dc2e,transparent 80%),linear-gradient(160deg,#30424e,#111d29);border-color:#d3c39a99;box-shadow:inset 0 1px 0 #fff2,0 5px 22px #0006}
.ability kbd{top:-8px;border-radius:4px;border-color:#9cabb84d;background:linear-gradient(#25313b,#141e28);color:#dde5e9;font-size:9px;line-height:13px;box-shadow:0 2px 5px #0006;padding:1px 6px}
.ability-icon{width:29px;height:29px;filter:drop-shadow(0 0 8px currentColor)}
.ability-icon svg{stroke-width:1.5}
.steel{color:#c5dedb}.ember{color:#f5af6c}.pale{color:#a8dbe8}.ruby{color:#f18490}
.ability-name{color:#d2dbe0;font-size:10px;margin-top:7px;letter-spacing:.05px}
.ability .cooldown{border-radius:6px;background:#08121de0;color:#f0ddbc}
.potion-count{top:10px;right:6px;font-size:10px;color:#ffd3bd;font-variant-numeric:tabular-nums}
.experience-track{height:3px;border-radius:3px;margin-top:14px;background:#9bbdd016;box-shadow:0 1px 0 #0008}
.experience-track i{border-radius:3px;background:linear-gradient(90deg,#756345,#d9bd7f);box-shadow:0 0 8px #d9bd7f30}
@media(max-width:760px){.abilities-wrap{width:290px}.ability{height:60px;border-radius:5px}.ability-icon{width:24px;height:24px}.ability-name{font-size:8px;margin-top:5px}.ability kbd{font-size:8px}.orb-frame{padding:4px}.orb-value{font-size:17px}.orb-value span{font-size:8px}.orb-label{font-size:8px;letter-spacing:1.6px}.ability-caption,.ability-caption span:last-child{font-size:8px}}
@media(max-width:520px){.abilities-wrap{width:auto;min-width:0}.abilities{gap:4px}.ability{height:54px}.ability-icon{width:22px;height:22px}.ability-name{font-size:7px}.ability kbd{font-size:7px;padding:0 3px}.orb-value{font-size:13px}.orb-value span{font-size:7px}.orb-label{font-size:7px;letter-spacing:1px}.ability-caption,.ability-caption span:last-child{font-size:7px;letter-spacing:.7px}.orb-frame:before,.orb-frame:after{width:7px;height:7px;top:calc(50% - 3px)}.potion-count{font-size:8px;right:4px}}

/* Alchemical glass labels share their tint with the light on the ground. */
.loot-label{user-select:none;-webkit-user-select:none;--loot-rgb:212,220,229;display:inline-flex;align-items:center;gap:7px;max-width:min(280px,calc(100vw - 24px));padding:5px 10px 5px 8px;border:1px solid rgba(var(--loot-rgb),.32);border-radius:5px;background:radial-gradient(ellipse at 20% 0%,rgba(var(--loot-rgb),.14),transparent 75%),linear-gradient(160deg,#1a2833f5,#0a121bf2);box-shadow:inset 0 1px 0 #e9f4ff12,0 3px 10px #0008,0 0 12px rgba(var(--loot-rgb),.12);font-size:12px;font-weight:500;line-height:16px;text-shadow:0 1px 3px #000;transition:border-color .18s,box-shadow .18s,background-color .18s}
.loot-label.common,.loot-label.uncommon,.loot-label.rare,.loot-label.legendary,.loot-label:hover,.loot-label.in-reach{color:color-mix(in srgb,rgb(var(--loot-rgb)) 62%,#f3f5f7)}
.loot-icon{display:flex;flex:0 0 13px;width:13px;height:15px;align-items:center;color:rgb(var(--loot-rgb));filter:drop-shadow(0 0 4px rgba(var(--loot-rgb),.65))}
.loot-icon svg{width:13px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.loot-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loot-label.in-reach::after,.forage-label.in-reach::after{content:'(F)';flex:none}
.loot-label.legendary{border-color:rgba(var(--loot-rgb),.6);box-shadow:inset 0 1px 0 #ffedc52b,0 3px 12px #0009,0 0 19px rgba(var(--loot-rgb),.23)}
.loot-label.in-reach{border-color:rgba(var(--loot-rgb),.65);box-shadow:inset 0 1px 0 #e9f4ff1c,0 3px 12px #0009,0 0 15px rgba(var(--loot-rgb),.22)}
.loot-label:hover,.loot-label:focus-visible{border-color:rgba(var(--loot-rgb),.9);background-color:rgb(var(--loot-rgb));box-shadow:inset 0 1px 0 #fff3,0 4px 12px #0009,0 0 20px rgba(var(--loot-rgb),.32)}
.loot-label:focus-visible{outline:2px solid rgb(var(--loot-rgb));outline-offset:3px}
@media(max-width:760px){.loot-label{gap:6px;padding:5px 8px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.loot-label{transition:none}}

/* Multiplayer identity stays readable against the moonlit world. */
#multiplayer-status{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:35;font:500 14px Inter,sans-serif;color:#dce9e8;background:#101c2be8;border:1px solid #536a75;border-radius:6px;padding:7px 12px;white-space:nowrap;pointer-events:none}
#multiplayer-status.offline{color:#edbb82}
.player-label{position:absolute;left:0;top:0;font:600 14px Inter,sans-serif;white-space:nowrap;text-shadow:0 2px 3px #000,0 0 6px #000;background:#101c2bbf;border-radius:4px;padding:3px 6px;pointer-events:none}
#connection-overlay{position:fixed;inset:0;z-index:65;display:grid;place-items:center;background:#09121ca6;backdrop-filter:blur(3px)}
#connection-overlay[hidden],#restart-vote[hidden]{display:none}
.connection-card{width:min(90vw,410px);padding:32px 28px 24px;border:1px solid #66756e;background:#111e26;text-align:center;color:#e4e5d6;border-radius:8px}.connection-card h2{font:24px/1.4 Cinzel,serif;margin:18px 0 12px}.connection-card p{font:16px/1.5 Inter,sans-serif;margin:0 0 8px;color:#c2cdc9}
.connection-spinner{display:block;width:24px;height:24px;margin:0 auto;border:2px solid #c6b58c30;border-top-color:#c6b58c;border-radius:50%;animation:connection-spin 1.2s linear infinite}
#connection-retry{min-height:44px;margin-top:12px;padding:10px 12px;font:14px/1.5 Inter,sans-serif;color:#a6b4b1;text-decoration:underline;text-underline-offset:4px}
#connection-retry:hover{color:#e4e5d6}#connection-retry:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px;border-radius:2px}
#connection-retry[hidden],#connection-spinner[hidden]{display:none}
@keyframes connection-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.connection-spinner{animation:none}}
#restart-vote{position:fixed;z-index:80;top:54px;left:50%;transform:translateX(-50%);width:min(92vw,430px);padding:14px;background:#13232cf5;border:1px solid #9b9474;border-radius:6px;color:#e6e4cf;font:14px/1.5 Inter,sans-serif;text-align:center}#restart-vote p{margin:0 0 10px}#restart-vote button{font:14px Inter,sans-serif;padding:10px;margin:0 4px;border:1px solid #7b8b88;border-radius:4px;background:#23383f;color:#e8e8d9}#restart-vote button:disabled{opacity:.5}
@media(max-width:650px){#multiplayer-status{top:5px;font-size:12px;padding:4px 8px}.player-label{font-size:12px}#restart-vote{top:35px}}
.forage-label{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12px;color:var(--food-color);border:1px solid #71887877;background:#101d19e6;padding:5px 8px}
.forage-icon{width:17px;height:17px;flex:none}.forage-label.in-reach,.forage-label:focus-visible{border-color:var(--food-color)}

/* Explicit session choice uses the loading screen's existing palette. */
#loading{padding:24px;text-align:center}#loading #loading-title{font-size:clamp(24px,4vw,42px);letter-spacing:2px;max-width:720px;line-height:1.3}
#mode-choice{display:flex;gap:18px;margin-top:32px;max-width:720px;width:100%}#mode-choice[hidden],#load-track[hidden]{display:none}
#mode-choice button{flex:1;min-width:0;min-height:116px;cursor:pointer}#mode-choice strong{display:block;font-size:20px;font-weight:400}#mode-choice span{display:block;margin-top:12px;font:14px/1.5 Inter,sans-serif;letter-spacing:0;color:#ddd9c8}
#mode-choice button:focus-visible,#connection-back:focus-visible{outline:2px solid var(--gold-bright);outline-offset:5px}
#connection-back{display:block;margin:12px auto 0;min-height:44px;font-size:14px}#connection-back[hidden]{display:none}
@media(max-width:560px){#mode-choice{flex-direction:column;max-width:360px;gap:12px}#mode-choice button{min-height:100px}#loading{overflow:auto}}

/* Soundtrack controls share the game menu's quiet, worn-gold palette. */
.soundtrack-settings{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #63573b55}
.soundtrack-settings p{font-size:.875rem;line-height:1.7;margin:.65rem 0 0}
.soundtrack-settings a{color:#cdb47c;text-underline-offset:3px}
.soundtrack-settings a:focus-visible{outline:2px solid #d6c397;outline-offset:4px}
