@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#eef0dd;--muted:#b7c2b4;--gold:#e4c783;--line:#cfccaa30;--panel:#142623f5;--font:'Manrope',sans-serif;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}body{margin:0;overflow:hidden;color:var(--ink);background:#172b28;font-family:var(--font);font-size:16px}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{border:1px solid var(--line);background:#ffffff09;padding:12px 18px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#ffffff18;border-color:#e4c78388}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}#world{width:100%;height:100%;position:fixed;inset:0;display:block;touch-action:none}#vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #07181266;background:linear-gradient(180deg,#071b193b,transparent 22%,transparent 78%,#071b1977)}.screen{position:fixed;inset:0}.menu{background:linear-gradient(90deg,#0c201ce6 0%,#142720b8 34%,#11292022 65%,transparent);display:flex;flex-direction:column;padding:34px 4.5vw}.menu-top{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.17em}.seal{height:38px;width:34px;border:1px solid #c7c7a77a;display:grid;place-items:center;font:25px var(--serif);color:var(--gold)}.edition{margin-left:auto;color:#fffde2d0;letter-spacing:.14em}.menu-content{margin:auto 0;max-width:690px;padding-bottom:20px}.eyebrow{font-size:12px;letter-spacing:.17em;font-weight:700;color:var(--gold);margin:0 0 14px}.menu h1{font-family:var(--serif);font-size:clamp(66px,7.5vw,120px);font-weight:500;letter-spacing:-.045em;line-height:.95;margin:23px 0 28px;text-shadow:0 3px 24px #0002}.menu h1 span{display:block;font-size:clamp(25px,2.7vw,42px);letter-spacing:.015em;color:#eee7ca;font-weight:400;line-height:1.5}.rule{height:1px;width:64px;background:var(--gold);margin:26px 0}.intro{font-size:18px;color:#d3dac9;line-height:1.85}.menu-actions{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:30px}.primary{background:var(--gold);border:1px solid var(--gold);color:#172821;font-weight:700;padding:17px 25px;min-width:258px;text-align:left}.primary:hover:not(:disabled){background:#f4d798;color:#14221b}.primary span{float:right;margin-left:30px;font-size:20px;font-weight:400}.text-button{border:0;background:none;padding:12px 0;font-size:14px;color:var(--muted)}.control-intro{font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:center;margin-top:22px}kbd{font-family:var(--font);font-size:11px;letter-spacing:.07em;border:1px solid #d4ddc340;border-radius:3px;display:inline-block;padding:3px 6px;color:#edeed9;white-space:nowrap}.menu-footer{display:flex;gap:30px;align-items:center;font-size:11px;letter-spacing:.07em;color:#c8d0bd}.menu-footer>a{margin-left:auto;font-size:13px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c6da98;margin-right:10px}.hud-top{display:flex;justify-content:space-between;align-items:start;position:absolute;top:30px;left:34px;right:34px;pointer-events:none;text-shadow:0 2px 7px #18231a}.location{display:flex;align-items:center;gap:17px;min-width:230px}.crest{color:var(--gold);font-size:36px}.location h2{font:600 29px var(--serif);margin:0}.location .eyebrow{font-size:10px;letter-spacing:.18em;margin:0 0 4px;display:block}.compass{text-align:center;color:#e9ecd7;position:absolute;left:50%;transform:translateX(-50%);font-size:13px}.compass>div{font-size:17px;letter-spacing:10px;color:#e5e4c6aa;white-space:nowrap}.resources{display:flex;align-items:center;gap:13px;background:#10251c66;border:1px solid #e9e9c12b;padding:12px 18px;font-size:13px}.resources strong{font-size:18px;color:#f4deb0}.coin-icon{font-size:24px;color:var(--gold)}.resource-divider{width:1px;height:20px;background:var(--line);margin:0 5px}.quest-tracker{position:absolute;top:126px;left:35px;max-width:310px;border-left:2px solid var(--gold);padding:4px 0 6px 16px;text-shadow:0 2px 8px #142318}.quest-tracker .eyebrow{font-size:10px;margin:0}.quest-tracker p{font-size:14px;line-height:1.6;margin:9px 0 6px}.quest-tracker small{font-size:12px;color:#dee3c3c9}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:30px serif;color:#fff8;text-shadow:0 0 2px #000;pointer-events:none}.interaction{position:absolute;left:50%;top:61%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;white-space:nowrap;background:#13251fde;backdrop-filter:blur(10px);padding:12px 20px;box-shadow:0 4px 35px #0003;font-size:14px}.interaction kbd{font-size:14px;background:#dfca90;color:#1d2e20;border:0}.hud-bottom{position:absolute;left:35px;bottom:26px;right:30px;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.status-bars{width:245px;text-shadow:0 2px 4px #132c16}.status-bars>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.15em}.status-bars small{font-size:11px;letter-spacing:0}.stamina-track{height:3px;background:#d2e0b833;margin:10px 0 12px}.stamina-track i{display:block;background:#d3cf9b;width:100%;height:100%}#world-event{display:block;max-width:260px;color:#cdd8bb;line-height:1.5}.quick-actions{display:flex;gap:7px;pointer-events:auto;margin:0 15px}.quick-actions button{background:#10261eb3;padding:9px 13px;font-size:12px;border-color:#a4b49a33;display:flex;gap:8px;align-items:center}.quick-actions kbd{font-size:10px}.minimap-wrap{position:relative;width:145px;height:145px;background:#12291cd1;border:1px solid #d8cf9a70;border-radius:50%;overflow:hidden;box-shadow:0 3px 22px #0003}.minimap-wrap canvas{width:100%;height:100%}.minimap-wrap>span{position:absolute;top:5px;left:calc(50% - 4px);font-size:10px;color:var(--gold)}.world-marker{position:absolute;pointer-events:none;transform:translate(-50%,-100%);text-align:center;color:#ffe2a3;text-shadow:0 2px 5px #253021}.world-marker span{font-size:30px}.world-marker small{display:block;font-size:11px}#toast{position:absolute;left:50%;bottom:116px;transform:translateX(-50%);max-width:min(500px,90vw);background:#102920e8;border:1px solid #bcc7924d;padding:12px 20px;opacity:0;transition:opacity .2s;text-align:center;font-size:14px;pointer-events:none}#toast.visible{opacity:1}dialog{color:var(--ink);width:min(760px,92vw);max-height:85dvh;border:1px solid #d0bd8370;background:var(--panel);padding:30px;box-shadow:0 35px 120px #0009;overflow:auto}dialog::backdrop{background:#08141077;backdrop-filter:blur(5px)}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.panel-heading .eyebrow{font-size:10px;margin-bottom:6px}.panel-heading h2{font:500 38px var(--serif);margin:0}.close{border:0;font:30px var(--serif);padding:2px 12px;color:var(--muted)}.dialogue{font:26px/1.5 var(--serif);color:#e2e7d5;margin:0 0 20px}.merchant-note{font-size:13px;line-height:1.6;color:var(--muted)}.trade-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:24px 0 10px;font-size:14px}.trade-head select{background:#21362a;color:var(--ink);padding:7px;border:1px solid var(--line);font:inherit}.trade-row{display:grid;grid-template-columns:minmax(125px,1fr) 58px 75px 100px 100px;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:13px 0;font-size:14px}.trade-row button{padding:8px;font-size:13px;white-space:nowrap}.good-name{display:flex;gap:12px;align-items:center}.good-mark{width:30px;height:30px;border:1px solid #bbc88d55;background:#b3c28b0c;color:var(--gold);display:grid;place-items:center;font:20px var(--serif)}.trade-row small{color:var(--muted);font-size:12px}.trade-labels{font-size:10px;letter-spacing:.04em;color:var(--muted)}.trade-balance{color:var(--gold)}.dialogue-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.inventory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.inventory-item{padding:17px;background:#b9c69209;border:1px solid var(--line);display:flex;align-items:center;gap:13px}.inventory-item strong{display:block;font-size:15px}.inventory-item small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.inventory-item b{margin-left:auto;color:var(--gold)}.journal-entry{border-left:2px solid #657758;padding:0 0 0 15px;margin:22px 0}.journal-entry h3{font:600 23px var(--serif);margin:0 0 8px}.journal-entry p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.journal-entry.complete{border-color:var(--gold)}.journal-entry.complete h3{color:var(--gold)}.journal-log{font-size:13px;color:var(--muted);line-height:1.8;border-top:1px solid var(--line);padding-top:16px}.setting{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.setting small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.setting input[type=range]{accent-color:var(--gold);width:150px}.setting input[type=checkbox]{accent-color:var(--gold);width:18px;height:18px}.setting select{background:#233a2a;color:var(--ink);padding:8px;border:1px solid var(--line)}.map-canvas{display:block;width:100%;max-height:52vh;aspect-ratio:1.35;object-fit:contain;border:1px solid var(--line);background:#172d25}.map-legend{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:12px;margin-top:15px}#touch-controls{display:none}#fatal{position:absolute;top:35%;left:50%;transform:translateX(-50%);padding:30px;background:var(--panel);border:1px solid var(--line);width:min(500px,90vw);z-index:10;line-height:1.6}#fatal a{color:var(--gold);margin-right:20px}@media(max-width:850px){.quick-actions{gap:3px;position:absolute;left:50%;bottom:0;transform:translateX(-50%);margin:0}.quick-actions button{font-size:0;padding:7px}.quick-actions button kbd{font-size:11px}.status-bars{width:175px}.minimap-wrap{width:110px;height:110px}.resources{padding:8px 10px;gap:7px}.resources #time{display:none}.compass{top:85px}.quest-tracker{top:143px}.menu-content{max-width:550px}.menu-top{font-size:10px}.edition{font-size:9px}.menu-footer{font-size:9px;gap:15px}}@media(max-width:560px){.menu{padding:22px}.menu h1{font-size:68px}.menu h1 span{font-size:27px}.eyebrow{font-size:10px}.edition{display:none}.intro{font-size:16px}.menu-footer>span{max-width:135px;line-height:1.7}.control-intro{font-size:10px;gap:7px}.hud-top{top:18px;left:17px;right:17px}.location{gap:9px;min-width:0}.location h2{font-size:25px}.location .eyebrow{font-size:8px}.crest{font-size:25px}.resources{font-size:11px}.resources strong{font-size:15px}.resources .coin-icon{font-size:18px}.quest-tracker{left:20px;top:115px;max-width:210px}.quest-tracker p{font-size:12px}.quest-tracker small{font-size:10px}.quest-tracker .eyebrow{font-size:8px}.compass{top:63px}.hud-bottom{left:18px;right:18px;bottom:20px}.status-bars{width:135px}.status-bars small{font-size:10px}.minimap-wrap{width:85px;height:85px}.trade-row{grid-template-columns:1fr 40px 40px 67px 67px;gap:5px;font-size:12px}.trade-row button{font-size:11px;padding:7px 1px}.good-mark{display:none}.trade-labels{font-size:9px}.panel-heading h2{font-size:30px}dialog{padding:20px 15px}.dialogue{font-size:23px}.inventory-grid{gap:7px}.inventory-item{padding:12px;gap:5px}.inventory-item strong{font-size:13px}.inventory-item small{font-size:11px}.primary{min-width:240px}.quick-actions{bottom:108px}.setting{font-size:13px;gap:10px}.setting input[type=range]{width:110px}}@media(pointer:coarse){#touch-controls{display:block}#joystick{position:absolute;width:112px;height:112px;left:23px;bottom:126px;border:1px solid #f1e9b64d;background:#0e271d4d;border-radius:50%;touch-action:none;pointer-events:auto}#joystick i{position:absolute;width:42px;height:42px;left:34px;top:34px;border-radius:50%;background:#dde0b345;pointer-events:none}#look-pad{position:absolute;right:0;top:25%;width:43%;height:42%;touch-action:none}#touch-use,#touch-sprint{position:absolute;bottom:150px;right:24px;border-radius:50%;width:76px;height:76px;font-size:12px;background:#1a3024b3;padding:0;touch-action:none}#touch-sprint{bottom:239px;width:55px;height:55px;right:33px}.interaction{top:58%}.control-intro{display:none}.quick-actions{bottom:0;left:53%}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#panel-feedback{padding:12px 15px;border:1px solid var(--line);background:#c5b47714;color:var(--gold);font-size:14px;line-height:1.5;margin:-8px 0 20px}
/* Fantasy edition: clear combat controls over a fuller, textured world. */
:root{--panel:#111d29f7;--gold:#d9be85}.menu{background:linear-gradient(90deg,#07131dec,#10212aca 33%,#13292522 69%,transparent)}.menu h1{letter-spacing:-.035em}.edition{color:#e3d4b4}.rpg-tabs{display:flex;gap:8px;margin:0 0 22px}.rpg-tabs button{flex:1;padding:11px;font-size:13px;border-color:#afbec22b}.character-choice{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:center}.character-list{display:grid;gap:10px}.character-option{display:flex;align-items:center;gap:17px;text-align:left;padding:19px 17px;border:1px solid #a1b0be2d}.character-option.selected{background:#d8c59112;border-color:var(--hero-color);box-shadow:inset 3px 0 var(--hero-color)}.character-option strong{display:block;font:600 25px var(--serif)}.character-option small{display:block;font-size:12px;color:#b9c4c5;margin-top:3px}.character-option>span:last-child{margin-left:auto;color:var(--hero-color)}.character-number{font:22px var(--serif);color:var(--hero-color)}.character-display{position:relative;background:radial-gradient(ellipse at 50% 70%,#819bbe26,transparent 65%);border-bottom:1px solid #c7b17b40;text-align:center}.character-display canvas,#hero-preview{display:block;width:100%;height:320px;object-fit:contain}.character-caption{font-size:11px;color:#b9ac90;letter-spacing:.12em}.character-description{font-size:22px;margin-top:24px}.character-stats{display:flex;gap:14px;justify-content:space-between;border-top:1px solid #b4c7cc29;border-bottom:1px solid #b4c7cc29;padding:15px 0;margin:17px 0}.character-stats span{font-size:11px;color:#acb9c0}.character-stats b{display:block;font:500 23px var(--serif);color:#e8dbb9;margin-bottom:3px}.hero-summary{display:grid;grid-template-columns:1fr 230px;align-items:center;gap:15px}.hero-summary .dialogue{font-size:23px}.hero-summary canvas{height:270px}.xp-track{height:4px;background:#394453}.xp-track i{display:block;height:100%;background:#c9b175}.weapon-grid,.spell-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weapon-card,.spell-card{background:#52647b0b;border:1px solid #819bad33;padding:19px;display:flex;flex-direction:column}.weapon-card.equipped{border-color:#c8b27a;box-shadow:inset 0 2px #c8b27a}.weapon-card-top{display:flex;align-items:center;justify-content:space-between;color:#aabac2;font-size:11px;gap:8px}.weapon-card-top small{color:#d9c695;font-size:10px}.weapon-card h3,.spell-card h3{font:600 25px var(--serif);margin:9px 0;color:#e9e5d1}.weapon-card p,.spell-card p{font-size:13px;line-height:1.7;color:#b7c3c7;margin:4px 0 15px;flex:1}.weapon-stats{display:flex;gap:12px;font-size:11px;color:#c2c9c5;margin:0 0 16px}.weapon-card button{font-size:13px;width:100%;padding:10px}.supply-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #a1b0be22;font-size:14px}.supply-row button{font-size:13px;padding:9px}.spell-title{display:flex;align-items:center;gap:13px}.spell-title small{font-size:10px;letter-spacing:.12em;color:var(--spell-color)}.spell-title h3{margin:3px 0}.spell-glyph{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--spell-color);color:var(--spell-color);font:29px Georgia;flex-shrink:0}.spell-binding{display:flex;align-items:center;gap:6px;font-size:11px;color:#aabbc6}.spell-binding>span{margin-right:auto}.spell-binding button{padding:5px 9px;font-size:13px}.spell-binding .bound{color:var(--spell-color);border-color:var(--spell-color);background:#cbd2fd18}.spell-card.locked{opacity:.43}.locked-note{font-size:11px;color:#bcb6c7}.rpg-vitals{position:absolute;left:35px;bottom:122px;width:250px;pointer-events:none;text-shadow:0 1px 5px #051014}.vitals-heading{display:flex;justify-content:space-between;font-size:11px;margin-bottom:10px;letter-spacing:.09em;color:#dacda7}.vital{margin-top:9px}.vital-label{display:flex;justify-content:space-between;font-size:10px;margin-bottom:4px;color:#d1dada}.vital-track{height:5px;background:#101c27c9;border:1px solid #c5d2e125}.vital-track i{display:block;height:100%;transition:width .15s}#health-fill{background:linear-gradient(90deg,#743f4c,#d4847c)}#mana-fill{background:linear-gradient(90deg,#455d98,#9dabdf)}#active-effects{display:block;min-height:14px;font-size:11px;margin-top:10px;color:#bfdaeb}.combat-dock{position:absolute;left:50%;bottom:83px;transform:translateX(-50%);text-align:center}.weapon-readout{display:flex;justify-content:center;gap:10px;align-items:center;font-size:11px;color:#d9d6c1;margin-bottom:10px;text-shadow:0 1px 6px #06131b}.weapon-readout small{font-size:10px;color:#bac8c7}.spell-hotbar{display:flex;gap:7px;justify-content:center}.spell-hotbar button{position:relative;display:grid;grid-template-columns:28px 1fr;grid-template-rows:23px 17px;gap:2px 6px;width:103px;padding:10px 9px;background:#0d1d2ae0;border:1px solid #b7c5e444;text-align:left;backdrop-filter:blur(8px)}.spell-hotbar button.selected{border-color:var(--spell-color)}.spell-hotbar button.recharging{opacity:.58}.spell-hotbar button.out-of-mana .hotbar-cost{color:#da968c}.hotbar-glyph{grid-row:span 2;align-self:center;font:27px Georgia;color:var(--spell-color)}.hotbar-name{font-size:10px;white-space:nowrap;align-self:end}.hotbar-cost{font-size:9px;color:#aebccc}.spell-hotbar kbd{position:absolute;top:-7px;right:6px;background:#172633;font-size:9px;padding:0 4px}.combat-buttons{display:flex;gap:6px;justify-content:center;margin-top:7px}.combat-buttons button{padding:5px 10px;background:#112030cc;border-color:#9baabe33;font-size:10px}.combat-buttons button kbd{font-size:9px;padding:0 3px}#enemy-target{position:absolute;left:50%;top:100px;transform:translateX(-50%);width:230px;text-align:center;pointer-events:none;font:20px var(--serif);text-shadow:0 2px 5px #000}.enemy-track{height:4px;background:#172328b8;margin-top:7px;border:1px solid #d3a6a63f}#enemy-health{height:100%;display:block;background:#c17d74;transition:width .1s}#damage-overlay{position:fixed;inset:0;box-shadow:inset 0 0 150px 20px #be392e;pointer-events:none;opacity:0}.quest-tracker{max-width:280px}.quick-actions{gap:5px}.quick-actions button{padding:8px 10px}.touch-combat{display:none}.menu-footer .live-dot{background:#b3b2e5}@media(max-width:1100px){.rpg-vitals{width:190px}.spell-hotbar button{width:87px;grid-template-columns:22px 1fr;padding:9px 6px}.hotbar-glyph{font-size:23px}.hotbar-name{font-size:9px}.hotbar-cost{font-size:8px}.combat-dock{bottom:94px}.quest-tracker{max-width:235px}}@media(max-width:720px){.character-choice{grid-template-columns:1fr 160px;gap:12px}.character-display canvas{height:270px}.character-option{padding:13px 10px;gap:10px}.character-option strong{font-size:23px}.character-option small{font-size:10px}.character-number{font-size:17px}.character-option>span:last-child{display:none}.hero-summary{grid-template-columns:1fr 150px}.hero-summary canvas{height:230px}.rpg-vitals{left:18px;bottom:115px;width:145px}.combat-dock{bottom:27px}.hud-bottom .quick-actions{bottom:210px}.spell-hotbar button{width:79px;height:51px;grid-template-columns:21px 1fr;padding:8px 5px;gap:1px 4px}.combat-buttons{margin-top:4px}.combat-buttons button{font-size:9px;padding:4px 7px}.weapon-readout{font-size:10px}.weapon-readout small{font-size:9px}.status-bars{display:none}.minimap-wrap{position:absolute;right:0;bottom:105px;width:80px;height:80px}.weapon-grid,.spell-grid{gap:8px}.weapon-card,.spell-card{padding:13px}.weapon-card h3,.spell-card h3{font-size:22px}.weapon-card p,.spell-card p{font-size:12px}.weapon-stats{gap:8px;font-size:10px;flex-wrap:wrap}.spell-title{gap:8px}.spell-glyph{width:32px;height:32px;font-size:23px}.spell-title small{font-size:8px}.spell-binding button{padding:4px 7px}.spell-binding>span{display:none}#enemy-target{top:100px;width:170px}.quest-tracker{top:132px;max-width:195px}}@media(pointer:coarse){.touch-combat{display:flex;position:absolute;right:22px;bottom:245px;gap:10px}.touch-combat button{border-radius:50%;width:64px;height:64px;padding:0;background:#182636c9;font-size:12px;touch-action:none}#touch-sprint{bottom:330px}#touch-use{bottom:165px}.rpg-vitals{bottom:115px}.hud-bottom .quick-actions{bottom:210px}.combat-dock{bottom:24px}.minimap-wrap{bottom:105px}.status-bars{display:none}}

/* Keep interactive HUD controls above the transparent touch-look surface. */
.combat-dock,.touch-combat{z-index:3}
@media(pointer:coarse){.hud-bottom .quick-actions{left:0;bottom:250px;transform:none;margin:0;z-index:3}}
@media(pointer:coarse) and (max-width:720px) and (min-height:640px){.rpg-vitals{top:235px;bottom:auto}}
/* Spell feedback stays within the world view and never intercepts controls. */
#combat-numbers{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.damage-number{position:absolute;transform:translate(-50%,-50%);font:700 20px var(--font);text-shadow:0 2px 4px #091626,0 0 12px #0009;white-space:nowrap}.damage-number.combo-number{font-size:15px;letter-spacing:.12em}#combat-callout{position:absolute;top:55%;left:50%;transform:translateX(-50%);font-size:14px;letter-spacing:.09em;pointer-events:none;text-shadow:0 2px 8px #061627;text-align:center;white-space:nowrap}#crosshair.hit{color:#ffe0a1;font-size:42px;text-shadow:0 0 10px #ffcf7a}#enemy-status{display:block;font:12px var(--font);margin-top:5px;color:#b6d5ee}#enemy-target.threat #enemy-status{color:#ffc28c}.spell-combos{border:1px solid #84bce443;border-left:3px solid #92c9ed;background:#84bce409;padding:16px 20px;margin:0 0 20px}.spell-combos strong{font:600 24px var(--serif);color:#cce5f7}.spell-combos p{font-size:14px;line-height:1.8;color:#cbd6de}.spell-combos small{font-size:13px;color:#a8bac7}.combat-buttons{flex-wrap:wrap;max-width:440px}.spell-hotbar button.selected{box-shadow:inset 0 -2px var(--spell-color),0 0 12px #a9bbff15}#cycle-spell{color:#b9d9f5}@media(max-width:720px){.combat-buttons{max-width:340px}.combat-buttons button{padding:5px 6px}.damage-number{font-size:18px}#combat-callout{font-size:12px;max-width:90vw;white-space:normal}.combat-dock{bottom:15px}}
/* Legends of the Wild: boss encounters, heavy blows, skill ranks and the wider world. */
@property --charge{syntax:'<number>';inherits:true;initial-value:0}
#boss-bar{position:absolute;left:50%;top:92px;transform:translateX(-50%);width:min(560px,46vw);pointer-events:none;text-align:center;text-shadow:0 2px 6px #000c;z-index:2;--boss:#d9be85}.boss-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:2px 12px;margin-bottom:7px}#boss-name{font:600 27px/1.05 var(--serif);letter-spacing:.02em;color:#f5ead0}#boss-title{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--boss)}.boss-track{position:relative;height:11px;background:#0a1219e0;border:1px solid #d9be8570;box-shadow:0 0 0 1px #0009,0 4px 18px #0007;overflow:hidden}.boss-track>i{position:absolute;left:0;top:0;bottom:0;display:block;width:100%}#boss-lag{background:#f2dca0b0;transition:width .5s ease-in .35s}#boss-health{background:linear-gradient(180deg,#e58c7e,#9a3443 58%,#6a2031);box-shadow:inset 0 1px #ffffff40;transition:width .12s}.boss-notch{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#f7e6b4;box-shadow:0 0 4px #000;z-index:1}.boss-notch.passed{background:#f7e6b440;box-shadow:none}.boss-poise-track{height:4px;width:76%;margin:3px auto 0;background:#0a1219c0;border:1px solid #d9be8538}#boss-poise{display:block;height:100%;background:linear-gradient(90deg,#9b8043,#f2d489);transition:width .15s}#boss-phase{display:block;margin-top:6px;font-size:11px;letter-spacing:.14em;color:#e0d6bc;text-transform:uppercase}#boss-bar.casting #boss-phase{color:#ffc590}#boss-bar.unblockable #boss-phase{color:#ff8394;font-weight:700}#boss-bar.broken .boss-track{border-color:#ffe08a;animation:boss-broken .45s ease-in-out infinite alternate}#boss-bar.broken #boss-poise{background:linear-gradient(90deg,#fff3c0,#ffd45c);box-shadow:0 0 8px #ffd45c}#boss-bar.broken #boss-phase{color:#ffe08a;font-weight:700;letter-spacing:.24em}@keyframes boss-broken{from{box-shadow:0 0 0 1px #0009,0 0 5px #ffd45c55}to{box-shadow:0 0 0 1px #0009,0 0 24px #ffd45cd0}}
#boss-bar:not([hidden])~#enemy-target{top:172px}#hud .quest-tracker{transition:opacity .3s,visibility .3s}#hud.boss-fight .quest-tracker{opacity:0;visibility:hidden}
#boss-banner{position:absolute;left:50%;top:25%;transform:translateX(-50%);width:min(740px,92vw);text-align:center;pointer-events:none;z-index:3;text-shadow:0 3px 18px #000,0 0 36px #000b;animation:banner-in .9s cubic-bezier(.2,.8,.2,1)}#boss-banner small{display:block;font-size:12px;font-weight:700;letter-spacing:.32em;color:var(--gold)}#boss-banner strong{display:block;font:500 clamp(40px,6vw,78px)/1.05 var(--serif);letter-spacing:-.01em;color:#f7eed4;margin:8px 0 4px}#boss-banner strong::after{content:'';display:block;width:140px;height:1px;margin:14px auto 10px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}#boss-banner span{display:block;font:italic 21px/1.4 var(--serif);color:#dfe2d1}#boss-banner.defeat strong,#boss-banner.victory strong{color:#f3d58f}@keyframes banner-in{from{opacity:0;transform:translate(-50%,14px) scale(.97)}to{opacity:1;transform:translate(-50%,0)}}
#charge-meter{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;pointer-events:none;--charge:0;transition:--charge .1s linear;background:conic-gradient(#f3d58f calc(var(--charge)*360deg),#0c151ccc 0);-webkit-mask:radial-gradient(circle,transparent 23px,#000 24px,#000 28px,transparent 29px);mask:radial-gradient(circle,transparent 23px,#000 24px,#000 28px,transparent 29px)}#charge-meter.full{background:#fff4d2;animation:charge-full .16s ease-in-out infinite alternate}@keyframes charge-full{from{opacity:.75;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}
#combo-pips{position:absolute;left:50%;top:calc(50% + 32px);transform:translateX(-50%);display:flex;gap:8px;pointer-events:none;opacity:0;transition:opacity .25s}#combo-pips.active{opacity:1}#combo-pips i{width:7px;height:7px;transform:rotate(45deg);border:1px solid #f3e2b099;background:#0b141c99;transition:background .1s,box-shadow .1s}#combo-pips i.lit{background:#f1d593;box-shadow:0 0 7px #f1d593}#combo-pips i:last-child.lit{background:#ff9a55;border-color:#ffc08a;box-shadow:0 0 10px #ff9a55}
.enemy-poise-track{height:2px;margin:3px 16% 0;background:#1723288f}#enemy-poise{display:block;height:100%;background:#e8c874;transition:width .12s}#enemy-target.staggered #enemy-status{color:#ffe08a;font-weight:700}#enemy-target.staggered .enemy-poise-track{background:#ffe08a;box-shadow:0 0 8px #ffd45c}
#active-effects{display:flex;flex-wrap:wrap;gap:2px 9px}.fx.good{color:#bfe8cf}.fx.bad{color:#ffab94}.fx.info{color:#bfdaeb}.fx.riposte{color:#ffe08a;font-weight:700;letter-spacing:.06em}
.spell-hotbar button[data-rank]::after{content:attr(data-rank);position:absolute;top:-7px;left:6px;padding:0 4px;background:#172633;color:var(--spell-color);font-size:8px;font-weight:700;letter-spacing:.05em;line-height:14px}.spell-hotbar button.channelling{border-color:var(--spell-color);box-shadow:inset 0 0 16px #ffe38a2e,0 0 14px #ffe38a59}#weapon-name.legendary{color:#f3d58f;text-shadow:0 0 10px #d9be8577,0 1px 6px #06131b}
/* Panels: skill ranks, legendary arms, sigils, legends journal and waystones. */
.skill-points{display:flex;align-items:center;gap:16px;border:1px solid #d9be8545;background:#d9be850e;padding:14px 18px;margin:0 0 18px}.skill-points>b{font:600 42px/1 var(--serif);color:var(--gold);min-width:34px;text-align:center}.skill-points span{font-size:14px;color:#ebe5cf}.skill-points small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.55}.rank-pips{display:flex;gap:3px;margin-left:auto;align-self:flex-start}.rank-pips i{font:700 10px var(--font);min-width:22px;text-align:center;padding:2px 3px;border:1px solid #ffffff1f;color:#ffffff40}.rank-pips i.on{border-color:var(--spell-color);color:var(--spell-color);background:#ffffff0a}.spell-card.mastered{border-color:var(--spell-color);box-shadow:inset 0 2px var(--spell-color)}.spell-card p.mastery{flex:0;font-size:12px;line-height:1.55;margin:0 0 12px;padding-left:10px;border-left:2px solid #ffffff1c;color:#9eaeb7}.spell-card p.mastery b{color:#d6d1bc;font-weight:600}.spell-card p.mastery.earned{border-color:var(--spell-color);color:#e0e7e9}.spell-card p.mastery.earned b{color:var(--spell-color)}.spell-card .potency{color:var(--spell-color)}.spell-card .upgrade{width:100%;margin-top:10px;padding:9px;font-size:12px}.spell-card .upgrade:not(:disabled){border-color:var(--spell-color);background:#d9be8512;color:#f5e6bd}.spell-card .upgrade:hover:not(:disabled){background:#d9be8526}
.weapon-card.legendary{border-color:var(--legend-color);background:linear-gradient(160deg,#ffffff0e,#52647b07 55%);box-shadow:inset 0 0 26px -14px var(--legend-color)}.weapon-card.legendary.equipped{box-shadow:inset 0 2px var(--legend-color),inset 0 0 26px -12px var(--legend-color)}.weapon-card.legendary .weapon-card-top span,.weapon-card.legendary .weapon-card-top small{color:var(--legend-color)}.weapon-card.legendary h3{color:#f5e6bd}.weapon-card p.legend-source{flex:0;font-size:12px;font-style:italic;color:var(--legend-color);margin:-8px 0 12px}.weapon-stats .element{color:#9fdcff}.heavy-note{display:block;font-size:11px;color:#d8c89d;letter-spacing:.03em;margin:-6px 0 14px}
.journal-heading{font:600 28px var(--serif);color:#efe3c1;margin:30px 0 6px}.sigil-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.sigil{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border:1px solid #ffffff14;text-align:center;opacity:.55}.sigil i{display:grid;place-items:center;width:52px;height:52px;border:1px solid #ffffff2a;border-radius:50%;font:normal 28px Georgia,serif;color:#ffffff5c}.sigil small{font-size:11px;line-height:1.4;color:var(--muted)}.sigil.won{opacity:1;border-color:var(--sigil);background:#ffffff06}.sigil.won i{color:var(--sigil);border-color:var(--sigil);box-shadow:0 0 18px -4px var(--sigil),inset 0 0 12px -6px var(--sigil);text-shadow:0 0 12px var(--sigil)}.sigil.won small{color:#ebe2c6}.hero-boons{font-size:13px;line-height:1.6;color:#d6cfb2;margin:4px 0 8px}.hero-boons b{color:var(--gold);font-weight:600}.controls-help{display:grid;grid-template-columns:max-content 1fr;gap:8px 14px;align-items:center;font-size:13px;line-height:1.5;color:#c3cdcf;margin:18px 0 6px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.controls-help kbd{justify-self:start}.controls-help b{color:var(--gold);font-weight:600}
.legend-entry{--legend:#d9be85}.legend-entry.awaits{border-color:var(--legend)}.legend-entry.awaits h3{color:#f3e7c9}.legend-entry.slain{border-color:var(--gold)}.legend-entry.slain h3{color:var(--gold)}.legend-entry.sealed{border-color:#6b5f80;opacity:.78}.legend-status{display:inline-block;font:700 9px var(--font);letter-spacing:.16em;padding:2px 7px;margin-right:9px;border:1px solid currentColor;vertical-align:1px}.legend-entry.awaits .legend-status{color:var(--legend)}.legend-entry.slain .legend-status{color:var(--gold)}.legend-entry.sealed .legend-status{color:#b7a8dc}.journal-entry p.legend-hint{margin-top:6px;font-style:italic;color:#aebbb4}
.waystone-list{display:grid;gap:8px;margin:14px 0}.waystone-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid #9fe8ff26;background:#9fe8ff07}.waystone-row>div{min-width:0}.waystone-rune{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border:1px solid #9ff0ff55;color:#a8f2ff;font:22px Georgia,serif;text-shadow:0 0 10px #7fe9ff}.waystone-row strong{display:block;font:600 21px var(--serif)}.waystone-row small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.waystone-row button{margin-left:auto;padding:9px 14px;font-size:13px;white-space:nowrap;flex-shrink:0}.waystone-row button:not(:disabled){border-color:#9ff0ff66;color:#dffaff}.waystone-row.here{border-color:#9ff0ff80;box-shadow:inset 3px 0 #9ff0ff}.waystone-row.dormant{opacity:.5;border-style:dashed}.waystone-row.dormant .waystone-rune{color:#7d8f92;border-color:#7d8f9255;text-shadow:none}.travel-warning{padding:10px 14px;border:1px solid #e0826f55;background:#e0826f12;color:#f3b9a8;font-size:13px;line-height:1.5}
.map-canvas{aspect-ratio:1.25;max-height:60vh}.map-legend .lg-way{color:#a8f2ff}.map-legend .lg-legend{color:#f0c9a0}.map-legend .lg-red{color:#d99a8c}.map-legend .lg-blue{color:#a7dfff}.map-legend .lg-lava{color:#f08a52}
@media(pointer:coarse){#touch-dodge{background:#1d3438c9;border-color:#9ff0ff40}}
@media(max-width:1100px){#boss-bar{top:96px;width:min(480px,50vw)}#boss-name{font-size:24px}}
@media(max-width:850px){#boss-bar{top:86px;width:min(460px,66vw)}#hud.boss-fight .compass{visibility:hidden}}
@media(max-width:720px){#boss-bar{top:84px;width:calc(100vw - 40px)}#boss-name{font-size:21px}#boss-title{font-size:9px;letter-spacing:.12em}.boss-track{height:9px}#boss-phase{font-size:10px;margin-top:4px;letter-spacing:.1em}#boss-bar:not([hidden])~#enemy-target{top:160px}#boss-banner{top:21%}#boss-banner small{font-size:10px;letter-spacing:.24em}#boss-banner span{font-size:16px}#boss-banner strong::after{margin:9px auto 7px}.sigil-row{grid-template-columns:repeat(2,1fr)}.skill-points{padding:11px 13px;gap:12px}.skill-points>b{font-size:32px}.rank-pips i{min-width:18px;font-size:9px;padding:1px 2px}.waystone-row{gap:10px;padding:10px}.waystone-row strong{font-size:18px}.waystone-rune{width:32px;height:32px;font-size:19px}.controls-help{grid-template-columns:1fr;gap:2px;font-size:12px}.controls-help span{margin-bottom:6px}.journal-heading{font-size:24px}}
@media(max-width:560px){#boss-bar{top:72px;width:calc(100vw - 34px)}#boss-bar:not([hidden])~#enemy-target{top:150px}#charge-meter{width:52px;height:52px;margin:-26px 0 0 -26px;-webkit-mask:radial-gradient(circle,transparent 20px,#000 21px,#000 25px,transparent 26px);mask:radial-gradient(circle,transparent 20px,#000 21px,#000 25px,transparent 26px)}.waystone-row button{padding:8px 9px;font-size:12px}.waystone-row small{font-size:11px}.map-canvas{max-height:50vh}}
@media(pointer:coarse) and (max-width:560px){.hud-bottom .quick-actions{gap:3px}.hud-bottom .quick-actions button{padding:6px 5px}.touch-combat{right:12px;gap:6px}.touch-combat button{width:54px;height:54px;font-size:11px}}@media(pointer:coarse) and (max-width:380px){.touch-combat button{width:50px;height:50px;font-size:10px}}
/* Stamina lives with the other vitals so dodges and heavy blows can be read on every screen. */
.stamina-vital .vital-track.stamina-track{height:4px;margin:0;background:#101c27c9}.stamina-vital #stamina{background:linear-gradient(90deg,#b9b27a,#e9e0a6)}#stamina{transition:width .08s linear}#stamina.exhausted{animation:stamina-low .5s ease-in-out infinite alternate}@keyframes stamina-low{from{opacity:.55}to{opacity:1}}.road-rule{height:1px;background:#d2e0b833;margin:10px 0 12px}
#combat-callout{top:max(55%,calc(50% + 50px))}
@media(prefers-reduced-motion:reduce){#boss-bar.broken .boss-track,#charge-meter.full,#stamina.exhausted,#boss-banner{animation:none}}
/* Hunters & Alchemists: bounties, brewing, the bestiary and echoes of fallen legends. */
.bounty-board{border-color:#c98879}.bounty-board h3{color:#f0d2b8}.journal-entry p.bounty-offer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;margin-bottom:6px}.bounty-offer b{font:600 20px var(--serif);color:#f3e7c9}.bounty-offer span{color:var(--gold);font-size:13px;align-self:center}
.bounty-row{display:flex;align-items:center;gap:14px;padding:12px 14px;margin:8px 0;border:1px solid #c988793a;background:#c988790a}.bounty-name{flex:1;min-width:0}.bounty-name b{display:block;font:600 19px var(--serif);color:#efe3c1}.bounty-name small{display:block;font-size:12px;color:var(--muted);margin:2px 0 7px}.bounty-row button{flex-shrink:0;padding:9px 14px;font-size:13px;white-space:nowrap}.bounty-row.ready{border-color:#e4c78388;box-shadow:inset 3px 0 var(--gold)}.bounty-row.ready button{border-color:var(--gold);color:#f8e7bb;background:#e4c7831a}
.bounty-track{display:block;height:3px;background:#ffffff14}.bounty-track>i{display:block;height:100%;background:linear-gradient(90deg,#b8735f,#e4c783);transition:width .2s}.bounty-entry .bounty-track{margin-top:8px;max-width:320px}.journal-entry.ready{border-color:#e4c783aa}.journal-entry.ready p{color:#ead9a8}
.brew-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 6px}.brew-card{--brew:#8fb4ff;border-color:color-mix(in srgb,var(--brew) 32%,transparent)}.brew-card .weapon-card-top span{color:var(--brew);text-transform:uppercase;letter-spacing:.12em}.brew-card h3{font-size:22px}.brew-card p{font-size:12px}.brew-card .weapon-stats{flex-wrap:wrap;gap:4px 10px}.brew-missing{display:block;font-size:11px;color:#d8c89d;margin:-8px 0 12px}.brew-card button:not(:disabled){border-color:color-mix(in srgb,var(--brew) 55%,transparent)}
.brew-mana{--brew:#8fb4ff}.brew-ironbark{--brew:#d3a96b}.brew-swiftfoot{--brew:#9fe0a8}
.brew-list{display:grid;gap:8px;margin:12px 0}.brew-row{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--line);background:#b9c69209}.brew-row>div{flex:1;min-width:0}.brew-row strong{display:block;font-size:15px}.brew-row strong b{color:var(--brew);margin-left:4px}.brew-row small{display:block;color:var(--muted);font-size:12px;margin-top:4px;line-height:1.5}.brew-row button{flex-shrink:0;padding:9px 16px;font-size:13px}.brew-row.empty{opacity:.55}.brew-flask{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:1px solid var(--brew);color:var(--brew);font:18px Georgia,serif;text-shadow:0 0 10px var(--brew)}
.brew-pouch{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 4px}.brew-pouch span{padding:10px 12px;border:1px solid color-mix(in srgb,var(--brew) 40%,transparent);font-size:12px;color:#d7dccf}.brew-pouch b{display:block;font:500 24px/1.1 var(--serif);color:var(--brew)}.brew-pouch small{display:block;font-size:11px;color:#bfe8cf;margin-top:2px}.brew-pouch .empty{opacity:.5}
.bestiary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0 22px}.beast{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:11px 13px;border:1px solid #c9887938;background:#c988790a}.beast strong{font:600 19px var(--serif);color:#efe3c1;min-width:0}.beast strong em{display:block;font:italic 12px var(--font);color:var(--legend,#c9b48a)}.beast>b{color:var(--gold);font-size:13px;align-self:start;padding-top:3px}.beast small{grid-column:1/-1;font-size:12px;line-height:1.5;color:var(--muted)}.beast.unknown{border-style:dashed;opacity:.62}.beast.unknown strong{color:#a9b2a6}.beast.legend{border-color:var(--legend);background:linear-gradient(160deg,#ffffff08,transparent 60%)}.beast.legend.unknown{border-color:#ffffff22}
.echo-status{grid-column:1/-1;justify-self:start;margin-top:5px;padding:2px 8px;border:1px solid #c9b8ff66;color:#ddd2ff;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.echo-status.bested{border-color:#ffffff26;color:#9aa39c}.map-legend .lg-echo{color:#dccfff}
#mana-button{color:#c4d6ff}#mana-button.empty{opacity:.6}#mana-count{color:#a9c4ff;font-weight:700}
@media(max-width:720px){.brew-grid{grid-template-columns:1fr 1fr}.bestiary{gap:6px}.beast{padding:9px 10px}.beast strong{font-size:17px}.bounty-row{gap:10px;padding:10px}.bounty-name b{font-size:17px}}
@media(max-width:560px){.brew-grid,.bestiary{grid-template-columns:1fr}.brew-pouch{gap:5px}.brew-pouch span{padding:8px;font-size:11px}.brew-pouch b{font-size:20px}.bounty-row{flex-wrap:wrap}.bounty-name{flex-basis:100%}.bounty-row button,.brew-row button{padding:8px 10px;font-size:12px}.bounty-row button{width:100%}.brew-row{gap:10px;padding:10px}.brew-row small{font-size:11px}.brew-flask{width:30px;height:30px;font-size:15px}.journal-entry p.bounty-offer{flex-direction:column}}
/* Touch: the minimap leaves the thumb zone for the top-right corner, so Interact, the combat buttons and Run never sit on top of it. */
@media(pointer:coarse){.minimap-wrap{position:fixed;top:118px;right:30px;bottom:auto;width:110px;height:110px}#hud.boss-fight .minimap-wrap{visibility:hidden}}
@media(pointer:coarse) and (max-width:850px){.minimap-wrap{top:84px;width:96px;height:96px}}
@media(pointer:coarse) and (max-width:720px){.minimap-wrap{top:66px;right:17px;width:78px;height:78px}#joystick{bottom:152px}}
