@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');
:root{color-scheme:dark;--night:#100d18;--paper:#e6dcee;--muted:#b4a2c4;--violet:#a188c6;--azure:#9cd3ef;--line:#665178;--danger:#e8a3b4;font-family:'DM Sans',system-ui,sans-serif;background:var(--night);color:var(--paper)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--azure);outline-offset:5px}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}
#game-shell{position:relative;width:100%;height:100%;isolation:isolate;background:var(--night)}#valley{width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px 35px #08060b80;z-index:1}
.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:500;color:var(--muted);margin:0}.overlay{position:absolute;inset:0;z-index:6;display:grid;place-items:center;padding:20px;background:#0b08129c;backdrop-filter:blur(3px);overflow:auto}.paper-panel{position:relative;text-align:center;width:min(660px,100%);padding:25px 40px 20px;background:linear-gradient(135deg,#292033f5,#1a1522fc 70%);border:1px solid #6f587d;box-shadow:0 22px 100px #050308a0;clip-path:polygon(0 1%,28% 0,61% .7%,99% 0,100% 30%,99.5% 60%,100% 99%,68% 100%,34% 99.4%,0 100%,.6% 61%,0 24%)}
.paper-panel:before{content:'';position:absolute;inset:7px;border:1px solid #6b54733b;pointer-events:none}.ornament{color:var(--azure);font-family:Georgia,serif;font-size:32px;line-height:1;margin-bottom:12px}h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:clamp(42px,6vw,66px);line-height:.98;letter-spacing:-.02em;margin:12px 0 15px}h1 em{font-weight:400;color:#c1a2d9}#panel-copy{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;line-height:1.4;color:#cbbbd7;margin:0 0 18px}.run-goal{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 18px}.run-goal strong{font-weight:500;color:var(--paper)}
fieldset{padding:0;border:0;margin:0}legend{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 auto 10px}#starters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.starter{background:#16111d;border:1px solid #584461;padding:12px 10px;text-align:left;transition:background .15s,border-color .15s}.starter:hover,.starter.selected{background:#352841;border-color:#b597cb}.starter b{display:block;color:var(--azure);font-family:Georgia,serif;font-size:27px;font-weight:400;height:34px}.starter strong{display:block;font-size:12px;font-weight:500;margin-bottom:5px}.starter span{display:block;font-size:10px;line-height:1.6;color:#bba9c9}.controls-copy{display:flex;justify-content:center;gap:7px 17px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin:17px 0}.touch-copy{display:none;font-size:11px;line-height:1.6;color:var(--muted)}
.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:30px;border:1px solid #ac96be;background:#d4c2df;color:#21172c;padding:12px 24px;font-size:12px;font-weight:600;min-height:44px;transition:background .15s,transform .15s}.primary-button:hover{background:#e4d6ed;transform:translateY(-1px)}#primary-action{margin-top:2px;min-width:215px}#panel-footnote{font-size:9px;line-height:1.7;color:#a08baf;margin:15px 0 0}a{color:inherit;text-underline-offset:3px}.small-button{background:#18111ed9;border:1px solid #6a5475;color:#d6c7e0;font-size:11px;padding:8px 11px;min-height:36px;white-space:nowrap}.small-button:hover{background:#392a48}.key{font-size:9px;border:1px solid currentColor;border-radius:2px;padding:1px 4px;opacity:.65;margin-left:5px}
#hud{position:absolute;top:0;left:0;right:0;padding:23px 28px 17px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:15px;background:linear-gradient(#0e0b16ee,#100c18a0,transparent);z-index:3;pointer-events:none}#hud button{pointer-events:auto}.hud-health{width:190px;position:relative}.health-track{height:5px;background:#3e294b;margin:9px 0 5px;overflow:hidden}#health-fill{display:block;width:100%;height:100%;background:#c9a4d8;transition:width .15s}#health-number{font-size:10px;color:#b9a4c9;font-variant-numeric:tabular-nums}.hud-time{text-align:center}.hud-time strong{display:block;font:400 30px/1.2 'Cormorant Garamond',Georgia,serif;letter-spacing:.05em;margin-top:3px;font-variant-numeric:tabular-nums}.hud-time small{font:400 13px 'DM Sans',sans-serif;color:#9c8aa9}.hud-controls{display:flex;justify-content:flex-end;gap:8px}.xp-track{grid-column:1/-1;height:2px;background:#56426270;margin-top:-7px}#xp-fill{display:block;height:100%;background:var(--azure);width:0;transition:width .15s}
#objective{position:absolute;left:28px;top:106px;display:flex;align-items:center;gap:9px;font-size:11px;color:#d0bddb;z-index:3;max-width:calc(100% - 56px);pointer-events:none}.objective-dot{width:5px;height:5px;background:var(--azure);transform:rotate(45deg);flex:none}#tower-count{font-variant-numeric:tabular-nums;color:var(--azure);white-space:nowrap}#toast{position:absolute;top:145px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 35px));text-align:center;color:#e7dbef;text-shadow:0 2px 8px #000;font-family:'Cormorant Garamond',Georgia,serif;font-size:23px;z-index:4;pointer-events:none;opacity:0;transition:opacity .3s}#toast.visible{opacity:1}
#loadout{position:absolute;bottom:22px;left:27px;display:flex;align-items:center;gap:19px;z-index:3;pointer-events:none}.weapon{display:flex;align-items:center;gap:8px;opacity:.35}.weapon.learned{opacity:1}.weapon-symbol{font-family:Georgia,serif;font-size:27px;color:#c5a3dc}.weapon>span:last-child{font-size:10px}.weapon small{font-size:9px;display:block;color:#aa96ba;margin-top:4px}#level-tag{font-size:9px;letter-spacing:.1em;color:#b09ac1;border-left:1px solid #654c74;padding-left:16px}#interact{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);z-index:4;background:#a9d3e8;color:#142733;border-color:#d0eeff;white-space:nowrap}#interact:hover{transform:translateX(-50%) translateY(-1px)}
#choices{display:grid;gap:10px;margin:22px 0 7px}.choice{border:1px solid #6c537b;background:#1e1629;text-align:left;display:grid;grid-template-columns:38px 1fr;gap:10px;padding:15px;color:var(--paper)}.choice:hover{background:#382647;border-color:#c3a6d8}.choice .choice-symbol{font:400 27px Georgia,serif;color:var(--azure);align-self:center}.choice strong{display:block;font-size:13px;font-weight:500;margin-bottom:5px}.choice small{font-size:11px;line-height:1.6;color:#bca7c9}.choice .choice-key{float:right;color:#8e779f;font-size:10px}.result-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:15px 30px;margin:23px 0}.result-stats div{font-size:10px;color:#b6a0c5}.result-stats b{display:block;font:400 30px Georgia,serif;color:var(--paper);margin-bottom:6px}.pause-help{font-size:12px;color:#bba7c9;line-height:1.9}.pause-help strong{color:var(--paper);font-weight:500}
#touch-pad{position:absolute;width:94px;height:94px;border-radius:50%;border:1px solid #bba4cc66;background:#21162f55;z-index:4;pointer-events:none;transform:translate(-50%,-50%)}#touch-pad i{position:absolute;left:30px;top:30px;width:32px;height:32px;border-radius:50%;background:#d8c3e776}
noscript{position:absolute;top:40%;left:10%;right:10%;z-index:10;background:#251a30;padding:30px;text-align:center}
@media(max-height:760px) and (min-width:601px){.paper-panel{padding:18px 35px 14px}h1{font-size:48px;margin:9px 0}.ornament{display:none}#panel-copy{font-size:18px;margin-bottom:12px}.run-goal{margin-bottom:12px}.starter{padding:8px 10px}.starter b{height:28px;font-size:24px}.controls-copy{margin:12px 0}#panel-footnote{margin-top:10px}}
@media(max-width:600px){.overlay{padding:14px;align-items:safe center}.paper-panel{padding:22px 20px 18px}.ornament{font-size:26px;margin-bottom:8px}h1{font-size:46px}#panel-copy{font-size:18px}.run-goal{font-size:11px}#starters{gap:6px}.starter{padding:9px 7px}.starter strong{font-size:10px}.starter span{font-size:9px}.starter b{font-size:24px;height:28px}.touch-copy{display:block}.controls-copy{display:none}#hud{padding:16px 14px 12px;gap:10px;grid-template-columns:1fr auto}.hud-health{width:135px}.hud-health .eyebrow,.hud-time .eyebrow{font-size:8px;letter-spacing:.1em}.hud-time{grid-column:2;grid-row:1;text-align:right}.hud-time strong{font-size:27px}.hud-controls{grid-column:1/-1;justify-content:flex-start;margin-top:-6px}.small-button{font-size:10px;padding:7px 10px;min-height:34px}.xp-track{margin-top:-4px}#objective{left:14px;top:135px;max-width:calc(100% - 28px);font-size:10px}#toast{top:168px;font-size:20px}#loadout{left:14px;bottom:17px;gap:13px}.weapon{gap:4px}.weapon-symbol{font-size:23px}.weapon>span:last-child{font-size:9px}.weapon small{font-size:8px}#level-tag{display:none}#interact{bottom:90px;padding:11px 17px;gap:12px}.key{display:none}.choice{padding:13px 10px}.vignette{box-shadow:inset 0 0 60px 10px #08060b60}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
#boss-hud{position:absolute;z-index:3;top:137px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 56px));pointer-events:none;background:linear-gradient(#130e1ce8,#160f20b8);padding:12px 16px 9px;border:1px solid #76527880}.boss-heading{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.1em;color:#dfc9e6}#binding-count{font-size:9px;letter-spacing:0;color:#bd9fce}.boss-track{height:5px;background:#4a294e;margin-top:9px;overflow:hidden}#boss-fill{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ad80b9,#d6add2);transition:width .15s}#boss-state{margin:8px 0 0;color:#c5accf;font-size:10px;line-height:1.5}#game-shell[data-encounter="boss"] #toast{top:245px}#game-shell[data-encounter="boss"] #objective{color:#d8bbdd}
@media(max-width:600px){#boss-hud{top:168px;width:calc(100% - 28px);padding:10px 12px}.boss-heading{flex-wrap:wrap;font-size:9px;gap:4px}#boss-state{font-size:9px}#game-shell[data-encounter="boss"] #toast{top:285px}#objective-text{min-width:0}#tower-count{flex:none}}
.title-sound{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin:0 auto 9px;color:var(--paper);font-size:12px;cursor:pointer;width:fit-content}
.title-sound input,#audio-mix input{accent-color:var(--azure)}
#audio-mix{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 24px;margin:14px auto 18px}
#audio-mix label{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--paper)}
#audio-mix input{width:120px;margin:0}
.overlay{align-items:safe center}
.combat-table{width:100%;border-collapse:collapse;margin:14px auto 0;color:var(--paper);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}
.combat-table caption{text-align:left;font:400 22px Georgia,serif;margin-bottom:7px}
.combat-table th,.combat-table td{padding:6px;border-bottom:1px solid #6f587d66}
.combat-table th:first-child{text-align:left}
.combat-table thead{color:#cab4d7;font-size:11px}
.combat-table tfoot{color:var(--azure);font-weight:600}
.combat-note{font-size:11px;line-height:1.5;color:#c4b2cf;text-align:left;margin:8px 0}
#starters{grid-template-columns:repeat(5,minmax(0,1fr))}
.starter[data-starter="thread"] b,.weapon[data-weapon="thread"] .weapon-symbol{color:#b8e5d8}
.weapon[data-weapon="storm"] .weapon-symbol{color:#a9d9ff}
.weapon[data-weapon="crescent"] .weapon-symbol{color:#f1d1b6}
.starter[data-starter="vesper"] b,.weapon[data-weapon="vesper"] .weapon-symbol{color:#f0cfff}
.weapon[data-weapon="tether"] .weapon-symbol{color:#e8c792}
#loadout{right:190px;flex-wrap:wrap;row-gap:8px}
#maps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px}
.map-choice{min-height:40px;white-space:normal}
.map-choice.selected{background:#352841;border-color:#b597cb;color:var(--paper)}
.map-choice[data-map="chapel"].selected{background:#294147;border-color:#82b2bb}
.starter:disabled{opacity:.75}
.starter:disabled:hover{background:#16111d;border-color:#584461}
.panel-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}
#journal-button{min-height:44px}
.journal,.journal-result{text-align:left;color:#cfbdd8;font-size:13px;line-height:1.55}
.journal h2,.journal-result h2{font:400 23px Georgia,serif;color:var(--paper);margin:19px 0 7px}
.journal ul,.journal-result ul{list-style:none;margin:0;padding:0}
.journal-result{margin:16px 0;padding:9px 12px;border:1px solid #6f587d88;background:#241b2d}
.journal-result h2{margin:4px 0 7px;font-size:19px}
.journal-result p{margin:6px 0}
.journal-lead{padding:10px 12px;border-left:2px solid #9bd4c9;background:#243334;color:#d8efe9;margin:8px 0}
.journal-lead strong{display:block;color:#b8e5d8}
.journal-save-note{font-size:12px;color:#efd0a9}
.journal-discoveries li,.journal-records li{border-bottom:1px solid #6f587d66;padding:6px 0}
.journal-discoveries strong,.journal-discoveries span{display:block}
.journal-discoveries strong,.journal-runs strong,.journal-records strong{color:var(--paper)}
.journal-runs details{border-bottom:1px solid #6f587d66}
.journal-runs summary{cursor:pointer;padding:8px 0;min-height:40px}
.journal-runs summary span{display:inline-block;margin-left:7px;color:#c4a9d0}
.journal-run{padding:0 12px 10px}
.journal-run p{margin:3px 0}
.journal-records li{display:flex;justify-content:space-between;gap:10px}
@media(max-width:600px){
 #starters{grid-template-columns:repeat(2,minmax(0,1fr))}
 #loadout{right:14px;flex-wrap:wrap;gap:6px 10px}
 #interact.ratchet{bottom:max(190px,calc(var(--minimap-bottom,65px) + 108px))}
 #journal-button{padding-inline:13px}
}
@media(max-width:420px){
 .combat-table{font-size:11px}
 .combat-table thead{font-size:10px}
 .combat-table th,.combat-table td{padding:5px 3px}
 #loadout{gap:6px 8px}
 .weapon-symbol{font-size:19px}
}
