:root{color-scheme:dark;--ink:#090a12;--bone:#e7ddc5;--blood:#a83242;--aether:#87d5c8;--gold:#bca26a}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);font-family:Georgia,"Times New Roman",serif;color:var(--bone)}
.game-shell{position:relative;width:100%;height:100%;isolation:isolate;background:#0b0c16}canvas{display:block;width:100%;height:100%;touch-action:none}
.game-shell:after{content:"";pointer-events:none;position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 50% 45%,transparent 38%,rgba(0,0,0,.45) 100%);box-shadow:inset 0 0 90px #000}
.title-card,.pause{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 44%,rgba(27,30,43,.72),rgba(4,5,10,.96) 70%);padding:2rem;transition:opacity .5s}
.eyebrow,.place,.controls,.label,.relic span,.objective span{font-family:ui-sans-serif,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.eyebrow{font-size:.68rem;color:var(--gold);margin:0 0 1.1rem}.title-card h1{font-size:clamp(3rem,9vw,7.4rem);font-weight:400;line-height:.82;letter-spacing:-.055em;margin:0;text-shadow:0 7px 35px #000}.title-card h1 span{display:inline-block;font-size:.34em;font-style:italic;color:var(--blood);letter-spacing:0}.place{font-size:.66rem;color:#a99d88;margin:1.7rem 0 .7rem}.premise{max-width:34rem;font-size:clamp(.95rem,2vw,1.25rem);font-style:italic;color:#bcb3a4;margin:.4rem 0 2rem}
.title-actions{display:flex;gap:.7rem;justify-content:center}.save-status{margin:.75rem 0 0;color:#78756f;font:500 .55rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.title-save-panel{width:min(42rem,92vw);margin:1rem auto .15rem}.title-save-heading{display:block;margin-bottom:.45rem;color:var(--gold);font:600 .55rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}.title-save-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.title-save-slot{position:relative;min-width:0}.title-save-slot-main{width:100%;min-height:4.5rem;padding:.6rem .7rem;text-align:left}.title-save-slot-main strong,.title-save-slot-main span,.title-save-slot-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-save-slot-main strong{color:#dbc382;font-size:.62rem}.title-save-slot-main span{margin-top:.3rem;color:#d2c8b5;font-size:.68rem;letter-spacing:.02em;text-transform:none}.title-save-slot-main small{margin-top:.22rem;color:#777268;font:500 .48rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.02em;text-transform:none}.title-save-slot-main.empty{opacity:.62}.title-save-delete{position:absolute;right:.3rem;top:.3rem;padding:.18rem .32rem;border-color:#633943;color:#c97682;background:#160a0e;font-size:.46rem}.title-save-delete:disabled{display:none}@media(max-width:700px){.title-save-slots{grid-template-columns:1fr}.title-save-slot-main{min-height:3.6rem}}
button{font:inherit;color:var(--bone);background:rgba(15,16,25,.85);border:1px solid #7e6d4a;padding:.75rem 1.5rem;cursor:pointer;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;transition:.2s}button:hover,button:focus-visible{background:#282534;border-color:#d0b675;outline:none;transform:translateY(-1px)}
.controls{font-size:.6rem;color:#807a73;margin-top:2rem}.controller-controls{margin-top:.65rem;color:#696762}kbd{font:inherit;border:1px solid #5d5955;border-radius:2px;padding:.12rem .35rem;margin-left:.3rem;color:#bbb3a7}
.hud{position:absolute;z-index:3;left:0;right:0;top:0;padding:1.1rem 1.4rem;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;text-shadow:0 2px 4px #000;background:linear-gradient(rgba(3,4,9,.68),transparent)}
.vitals{display:grid;grid-template-columns:auto auto;gap:.1rem .7rem;align-items:center}.sigil{grid-row:1/3;font-size:2.4rem;color:var(--aether);filter:drop-shadow(0 0 8px #4ea898)}.label{display:block;font-size:.48rem;color:#aaa094;margin-bottom:.15rem}.bar{width:calc(165px * var(--capacity-scale,1));height:6px;background:#27242a;border:1px solid #4d4542;transition:width .35s ease}.bar i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#6a1626,#bf3d4e);transition:width .2s}.bar.mana i{background:linear-gradient(90deg,#296f70,#89d4c5)}
.objective{text-align:center;font-size:.72rem}.objective span,.relic span{display:block;color:#938b7c;font-size:.48rem;margin-bottom:.2rem}.objective strong{font-weight:400;font-style:italic}.relic{display:flex;gap:1.25rem;text-align:right}.relic strong{font-size:.86rem;color:var(--gold)}
.shared-power{position:fixed;left:50%;bottom:1.15rem;transform:translateX(-50%);display:flex;align-items:center;gap:.7rem;min-width:18rem;padding:.5rem .7rem;background:rgba(5,8,13,.9);border:1px solid rgba(135,213,200,.42);box-shadow:0 0 20px rgba(40,130,125,.16);text-align:left;text-shadow:0 2px 4px #000}.shared-power img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(112,229,211,.42))}.shared-power div{min-width:0;flex:1}.shared-power span{display:block;color:#8caaa3;font:600 .46rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}.shared-power strong{display:block;margin:.12rem 0 .08rem;font-size:1rem;font-weight:400;color:#d8f5ed}.shared-power small{display:block;color:#9fd7cc;font:500 .56rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.03em}.shared-power>b{color:#c7eee5;font:500 .56rem ui-sans-serif,system-ui,sans-serif;white-space:nowrap}.shared-power kbd{margin-left:.1rem;padding:.08rem .24rem}.shared-power.power-unavailable{border-color:rgba(137,133,126,.42)}.shared-power.power-unavailable img{filter:grayscale(.35) brightness(.8)}.shared-power.power-unavailable small{color:#9a958c}
.prompt,.toast{position:absolute;z-index:4;left:50%;transform:translateX(-50%);bottom:12%;padding:.6rem 1rem;background:rgba(4,5,9,.88);border:1px solid #554e45;font-size:.8rem;letter-spacing:.03em;pointer-events:none}.toast{bottom:22%;color:var(--aether);font-style:italic;border-color:#416b67;transition:opacity .3s}.hidden{display:none!important}
.pause{background:rgba(4,5,10,.88);gap:.8rem}.pause p{font-size:2rem;letter-spacing:.3em;margin:0 0 1rem}
.witch-map{position:absolute;z-index:7;inset:0;display:grid;place-items:center;background:rgba(2,3,7,.9);padding:2vh 2vw}
.map-frame{position:relative;width:min(94vw,calc(68vh * 1.7778));background:#050609;border:1px solid #6e5a37;box-shadow:0 0 0 6px rgba(8,8,10,.8),0 18px 80px #000;overflow:hidden}
.map-art{position:relative;width:100%;aspect-ratio:16/9;background:url('assets/maps/coven-constellation-v3.png') center/cover no-repeat}
.map-art:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 44%,rgba(0,0,0,.22) 88%)}
.map-selection{position:absolute;z-index:2;left:var(--map-x,34%);top:var(--map-y,11%);width:9.2%;aspect-ratio:1;border:3px solid #d9b968;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 9px #fff1a2,0 0 24px #d2a54b,0 0 44px rgba(214,164,66,.75);animation:mapPulse 1.6s ease-in-out infinite;pointer-events:none}
.map-power-nodes{position:absolute;z-index:1;inset:0;pointer-events:none}.map-power-node{position:absolute;left:var(--map-x);top:var(--map-y);width:9.2%;aspect-ratio:1;transform:translate(-50%,-50%);overflow:hidden;border-radius:50%;background:#071012;box-shadow:0 0 0 2px #9d8757,0 0 18px rgba(115,239,216,.72)}.map-power-node img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);filter:drop-shadow(0 0 7px rgba(156,255,237,.65))}
@keyframes mapPulse{50%{filter:brightness(1.35);box-shadow:0 0 14px #fff4b0,0 0 34px #e3b450,0 0 60px rgba(214,164,66,.9)}}
.map-nav{position:absolute;z-index:4;top:45%;width:3.6rem;height:5rem;padding:0;border-color:#b79557;background:rgba(4,5,8,.78);font-size:3rem;line-height:1}.map-prev{left:1.2rem}.map-next{right:1.2rem}
.map-panel{position:relative;z-index:3;width:100%;text-align:center;padding:.65rem 1.2rem .55rem;background:#050609;text-shadow:0 2px 4px #000;border-top:1px solid #423820}
.map-kicker{margin:0 0 .2rem;color:#bca26a;font:600 .58rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.24em;text-transform:uppercase}.map-panel h2{margin:0;font-size:clamp(1.35rem,3vw,2.1rem);font-weight:400}.map-panel>p:nth-of-type(2){margin:.25rem 0 .65rem;color:#c9bea8;font-style:italic}.map-actions{display:flex;gap:.55rem;justify-content:center}.map-actions button{padding:.55rem 1rem}.map-controls{margin:.6rem 0 0;color:#8f887c;font:500 .55rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.map-reward{display:flex;align-items:center;justify-content:center;gap:.7rem;margin:.35rem auto .55rem;color:#b9f4e8}.map-reward img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(108,239,218,.45))}.map-reward div{text-align:left}.map-reward span{display:block;color:#8caa9e;font:600 .48rem ui-sans-serif,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}.map-reward strong{display:block;font-size:1.05rem;font-weight:400}.map-actions button:disabled{opacity:.35;cursor:not-allowed;transform:none}
@media(max-width:700px){.objective{display:none}.hud{padding:.7rem}.vitals{grid-template-columns:auto auto}.bar{width:calc(120px * var(--capacity-scale,1))}.relic{font-size:.75rem}.controls{line-height:2}.title-card h1 span{display:block;margin:.25em}.shared-power{bottom:.65rem;min-width:min(18rem,94vw);padding:.42rem .55rem}.shared-power img{width:40px;height:40px}.shared-power span{font-size:.4rem}.shared-power strong{font-size:.9rem}}
