/* Jade, aged gold and quiet ink edges. Keep the established HUD geometry. */
.vitals,.quest,#boss-hud,.tool{box-shadow:inset 0 1px #e4e4b21f,0 2px 8px #061f2929}
.vitals{border-radius:3px}.portrait{outline:1px solid #d4cda526;outline-offset:2px}
.health{isolation:isolate}.health>#hp-trail{position:absolute;inset:0 auto 0 0;background:#eac28b;z-index:-1}
.health>#hp-fill{position:relative}.health span{z-index:1;font-variant-numeric:tabular-nums}
.health-low .health{border-color:#f0b18b}.health-low #hp-fill{background:linear-gradient(90deg,#a15e44,#e9ac76)}
.health-low #hp-text{color:#fff0d0}.health-low{border-left-color:#edb483}
.skill{box-shadow:inset 0 1px 2px #e0f4db44,inset 0 -5px 12px #102f354d,0 3px 9px #08233080}
.skill::before{content:"";position:absolute;inset:5px;border:1px solid #cae5cf26;border-radius:50%;pointer-events:none}
.skill.attack::before{border-color:#efe0a857}
.skill svg.cooldown-ring{position:absolute;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);overflow:visible;transform:rotate(-90deg);pointer-events:none}
.cooldown-ring circle{fill:none;stroke:#e9d6a4;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:0 100}
.skill.locked svg.cooldown-ring{opacity:1}
.skill:not(.cooling) .cooldown-ring,.skill.unlearned .cooldown-ring{visibility:hidden}
.skill .cooldown{font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #102e2d;pointer-events:none}
.skill.cast-feedback{box-shadow:inset 0 0 15px #effac174,0 0 0 3px #ecd49c80}
.skill.cast-feedback>svg:not(.cooldown-ring){transform:scale(.88);opacity:1}
.skill.cooling:not(.attack)>svg:not(.cooldown-ring){opacity:0}
.skill.unlearned{background:#223e3bc9;border-style:dashed}.skill.no-mana:not(.cooling){border-color:#93b9c2}
.skill span{text-shadow:0 1px 2px #092725,0 0 5px #092725}
#joystick{box-shadow:inset 0 1px 4px #def1cb26}.joystick-ring{border-style:dashed;opacity:.8}
#stick{box-shadow:inset 0 1px 3px #eef7d952,0 3px 10px #061f2866}
.enemy-label{width:74px;margin-left:-37px;line-height:1.5;font-family:system-ui,sans-serif;text-shadow:0 1px 2px #0a2728,0 0 5px #0a2728}
.enemy-label i{height:3px;background:#e4bd85;box-shadow:0 0 0 1px #132d2ad9}
.damage-number{font-family:Georgia,serif;font-weight:700;color:#fff1c1}
#route-pin{width:max-content;max-width:150px;margin-left:0;padding:0 10px;border-radius:2px;border-bottom-color:#ead69a}
.loot-notice{border-radius:2px;box-shadow:inset 0 1px #cfdeb524,0 3px 10px #08262c26}
.tool,.interact,.primary,.secondary,.small-button,.choice{transition:background-color .12s,border-color .12s,box-shadow .12s}
button:focus-visible{outline:2px solid #f2dfaa;outline-offset:3px}
.tool:active,.small-button:active:not(:disabled),.secondary:active,.choice:active{box-shadow:inset 0 2px 7px #061f2980;background-color:#355e50}
.primary:active,.interact:active{box-shadow:inset 0 2px 8px #45624666}
.save-status{border-color:transparent;background:#16352eb3;box-shadow:none;border-radius:18px;color:#d1dfcb}
.save-status::before{content:"◇";color:#b5d1b4;margin-right:5px}
.save-status[data-kind=warning]{border-color:#d6b575;background:#293e30f5;border-radius:4px}
.save-status[data-kind=warning]::before{content:"!";color:#ffdc99}
.story-card,.account-card{background:linear-gradient(130deg,#264b42fa,#143632fc 70%);border-color:#c3ba898f;box-shadow:inset 0 0 0 4px #102d292e,0 16px 45px #071f2966}
.story-card>h2{border-bottom:1px solid #cabd8552;padding-bottom:10px}
.story-card>.eyebrow{color:#cabd8b}
.camp-nav{gap:2px;margin-top:0;justify-content:space-between;border-bottom:1px solid #d0c49838}
.camp-nav button{position:relative;flex:1;padding:8px 10px;margin:0;border:0;border-radius:0;background:transparent;color:#c2d2c1;white-space:nowrap}
.camp-nav button.selected{background:linear-gradient(0deg,#d4cd9e21,transparent);color:#f3e3b4;border-bottom:2px solid #ddc98d}
.camp-nav button.selected::before{content:"";position:absolute;width:4px;height:4px;background:#dec98e;bottom:-3px;left:calc(50% - 2px);transform:rotate(45deg)}
.resource-line{display:flex;gap:18px;flex-wrap:wrap;border-top:0;border-bottom:1px solid #b2b88a33}
.resource-line span{color:#bbcbb8;font-size:12px}.resource-line b{color:#f1dcaa;font-size:15px;font-weight:500;margin-left:5px;font-variant-numeric:tabular-nums}
.camp-item{border-bottom-color:#aec19726}.camp-item>img{border:1px solid #cfbc846e;border-radius:5px;background:radial-gradient(ellipse at 50% 35%,#54765a7d,#102f2c);box-shadow:inset 0 0 0 3px #142e2933}
.camp-item h3{letter-spacing:.5px}.camp-item .item-tag{display:block;font:11px/1.6 system-ui,sans-serif;color:#b5c4a9;margin:0 0 4px}
.camp-item .item-tag.equipped{color:#e8d39b}
.camp-item .gear-comparison{font-size:12px;color:#a7d9bd;display:flex;flex-wrap:wrap;gap:4px 12px}
.gear-comparison .worse{color:#e4b692}.gear-comparison .comparison-label{color:#b8c9b5}
.small-button{background:#45674b4d;border-color:#a8c39a55;color:#eae6cd;border-radius:3px}
.small-button[data-operation=sell]{background:transparent;color:#bdc8b4;border-color:transparent}
.small-button:disabled{cursor:default;opacity:1;background:#18383166;border-color:#88a48930;color:#aebcac}
.small-button .action-reason{display:block;font:11px/1.5 system-ui,sans-serif;color:#bbcab5;margin-top:3px;max-width:260px}
.panel-message[data-kind=success]{border-left:2px solid #b4d1a6;color:#d8edc7;padding-left:10px}
.panel-message[data-kind=warning]{border-left:2px solid #e5b97f;padding-left:10px}
.camp-context{color:#e8c790;font:12px/1.6 system-ui,sans-serif;margin:4px 0 8px}
@media(max-width:600px){.camp-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.camp-nav button{font-size:13px;padding:8px 5px}.resource-line{gap:12px}.story-card>h2{padding-bottom:8px}.camp-item .small-button{min-height:44px}.small-button .action-reason{max-width:205px}}
@media(max-width:360px){#game[data-mobile=true][data-orientation=portrait] .save-status{max-width:104px}}
@media(max-height:520px) and (orientation:landscape){body[data-release] .story-card>h2{padding-bottom:4px}body[data-release] .camp-nav{display:flex;flex-wrap:nowrap;gap:2px}body[data-release] .camp-nav button{flex:1;padding:8px 10px}.camp-context{font-size:11px;margin:0 0 4px}}
#game[data-reduced-motion=true] button{transition:none}
@media(hover:hover){.small-button:hover:not(:disabled),.camp-nav button:hover{border-color:#dbcea1;color:#fff0c9;background-color:#42655066}.tool:hover{border-color:#d3d3ac}.secondary:hover{border-color:#c3c491}}
