@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Cormorant+Garamond:wght@500;600&display=swap');
:root{color-scheme:dark;--bg:#0c1115;--surface:#141c22;--line:#33404a;--gold:#ddbd7c;--text:#e9eeed;--muted:#a8b4bc;--teal:#80cfbf;--red:#f09b8f;--font:'Barlow',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 var(--font)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button,input{border-radius:5px}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}button{border:1px solid var(--line);background:#1c272e;color:var(--text);padding:9px 15px;transition:background .15s,border-color .15s}button:hover:not(:disabled){border-color:var(--gold);background:#2c353a}button.primary{background:var(--gold);color:#161c20;border-color:var(--gold);font-weight:700}button.primary:hover:not(:disabled){background:#f0d597}.quiet{background:transparent}.shell{max-width:1400px;margin:auto;padding:0 32px}.top{min-height:80px;display:flex;justify-content:space-between;align-items:center;gap:20px}.wordmark{font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;letter-spacing:.15em;color:var(--gold)}.edition{font-size:12px;letter-spacing:.14em;color:var(--muted);margin-left:25px}nav{display:flex;gap:8px}h1,h2,h3,p{margin:0}h1{font:500 34px/1.15 'Cormorant Garamond',Georgia,serif}h2{font-size:21px;font-weight:500}h3{font-size:18px}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--gold);font-weight:600}.battle{position:relative;isolation:isolate;overflow:hidden;border:1px solid #3b4547;border-radius:8px;background:#17222b;min-height:325px}.battle:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,18,24,.77),rgba(9,18,24,.2) 50%,rgba(9,18,24,.68)),linear-gradient(0deg,#0f171ded,transparent 80%),url('assets/sanctuary.png') center 55%/cover}.battle-top{display:flex;justify-content:space-between;align-items:start;padding:22px 26px 0}.round{text-align:center;display:flex;align-items:center;gap:14px}.round strong{font:40px/1 Georgia,serif}.combatants{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:12px 26px 22px;min-height:215px}.hero{display:flex;gap:18px;align-items:center;min-width:290px}.hero-art{width:118px;height:155px;object-fit:cover;object-position:top;border-radius:60px 60px 10px 10px;border:1px solid #9e9169;filter:saturate(.75)}.hero-info{min-width:165px}.hero-info h2{font:34px Georgia,serif;margin:3px 0 13px}.hp-label{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:5px}.hp-track{height:6px;background:#3b3436;border-radius:2px;overflow:hidden}.hp-track i{display:block;height:100%;background:#a9c6bc;transition:width .2s}.hero-stats{display:flex;gap:16px;color:var(--muted);margin-top:12px;font-size:14px}.hero-stats b{font-size:22px;font-weight:500;color:var(--teal);margin-right:4px}.enemies{display:flex;justify-content:flex-end;gap:14px;flex:1}.enemy{width:230px;padding:16px;text-align:left;background:#101820df;border:1px solid #67717b;position:relative}.enemy.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.enemy.dead{opacity:.4;filter:grayscale(1)}.enemy-name{display:block;font-size:18px;min-height:27px;margin-bottom:10px}.enemy-top{display:flex;align-items:center;gap:12px}.enemy img{width:43px;height:43px;object-fit:cover;border-radius:50%;margin-bottom:10px}.intent{display:block;color:var(--red);font-weight:600;margin-top:14px;font-size:16px}.intent.buff{color:var(--gold)}.enemy-meta{font-size:13px;color:var(--muted);margin-top:7px;display:block}.target-label{position:absolute;right:8px;top:-10px;background:var(--gold);color:#171e22;font-size:11px;letter-spacing:.08em;padding:1px 6px}.forecast{border-top:1px solid #ffffff19;padding:10px 26px;display:flex;gap:24px;align-items:center;background:#0b141bbf}.forecast>span{font-size:11px;color:var(--muted);letter-spacing:.13em}.forecast div{font-size:15px}.forecast b{color:var(--text);font-size:18px}.forecast em{font-style:normal;color:var(--red)}.workbench{padding-top:23px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.turn-controls{display:flex;align-items:center;gap:22px}.action-count{color:var(--gold);white-space:nowrap}.guide{color:var(--muted);font-size:15px;min-height:24px;margin:9px 0 14px}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.slot{position:relative;border:1px solid var(--line);border-top:2px solid #91b9ae;background:linear-gradient(135deg,#1b272d,#111a20);border-radius:6px;padding:16px;display:flex;flex-direction:column;min-height:218px}.slot.strike{border-top-color:var(--gold)}.slot.power{border-top-color:#b6a5d6}.slot.empty{border-style:dashed;background:transparent;justify-content:space-between}.slot.compatible{border-color:var(--gold);box-shadow:0 0 15px #ddbd7c12}.slot-heading{display:flex;justify-content:space-between;gap:8px;font-size:12px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.slot h3{margin:13px 0 8px;font-size:19px;font-weight:600}.slot p{font-size:15px;color:#c1ced4;margin-bottom:15px;flex:1}.slot .charges{letter-spacing:3px;color:var(--gold);font-size:17px}.slot .charges .spent{color:#46525a}.slot button{width:100%;font-size:14px}.slot .used-text{color:var(--muted);font-size:13px}.slot .preview{color:var(--teal);font-size:14px;display:block;margin-top:8px}.attack-options{display:flex;gap:20px;flex-wrap:wrap;padding-top:12px;min-height:36px;color:var(--muted);font-size:14px}.attack-options label{display:flex;align-items:center;gap:8px}.attack-options input{accent-color:var(--gold);width:17px;height:17px}.reserve-section{margin-top:15px;padding:18px 0;border-top:1px solid var(--line)}.muted{color:var(--muted);font-size:14px}.reserve-section h2{font-size:18px;margin-bottom:3px}.reserve-section h2 span{font-size:14px;color:var(--muted);margin-left:7px}.piles{font-size:14px;white-space:nowrap;color:var(--muted)}.reserve{display:flex;gap:10px;flex-wrap:wrap;min-height:79px;margin-top:13px}.reserve-card{flex:1;min-width:195px;max-width:320px;text-align:left;background:#151e25;padding:11px 14px;display:flex;flex-direction:column;gap:3px}.reserve-card.selected{border-color:var(--gold);background:#302d25}.reserve-card small{color:var(--gold);font-size:12px;letter-spacing:.05em}.reserve-card strong{font-size:16px;font-weight:500}.reserve-card span{font-size:13px;color:var(--muted)}.empty-reserve{align-self:center;color:var(--muted);font-size:15px}.record{border-top:1px solid var(--line);padding:15px 0;display:grid;grid-template-columns:1fr auto;gap:25px}.record p{font-size:14px;color:var(--muted);margin-top:4px}.record details[open]{grid-column:1/-1}.record summary{cursor:pointer;font-size:14px;color:var(--muted)}.record ol{padding-left:0;list-style:none;max-height:260px;overflow:auto;font-size:14px;color:var(--muted)}.record li{padding:6px 0;border-bottom:1px solid #243038}.record li b{color:var(--gold);margin-right:12px}footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#819099;padding:0 0 20px;gap:15px}footer button{font-size:13px}dialog{border:1px solid #68716c;background:#111b22;color:var(--text);border-radius:10px;padding:32px;max-width:690px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 30px 130px #000b}dialog::backdrop{background:#050a10c9;backdrop-filter:blur(5px)}dialog h2{font:36px/1.1 'Cormorant Garamond',Georgia,serif;margin:8px 0 12px}dialog p{color:#b6c2ca;margin-bottom:18px}fieldset{border:0;padding:0;margin:22px 0}legend{font-size:14px;color:var(--gold);margin-bottom:10px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{display:block;border:1px solid var(--line);border-radius:6px;padding:15px;cursor:pointer;background:#17232b}.choice:has(input:checked){border-color:var(--gold);background:#2b2a25}.choice input{accent-color:var(--gold);margin-right:8px}.choice strong{font:25px Georgia,serif}.choice span{display:block;color:#bfccd2;font-size:14px;margin-top:8px}.fight-choices{display:flex;flex-direction:column;gap:8px}.fight-choice{padding:11px 14px;background:#17232b;border:1px solid var(--line);border-radius:5px;cursor:pointer}.fight-choice:has(input:checked){border-color:var(--gold)}.fight-choice input{accent-color:var(--gold);margin-right:10px}.fight-choice span{color:var(--muted);font-size:14px;margin-left:10px}.seed-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}.seed-row input{width:100px;background:#0d161d;color:var(--text);border:1px solid var(--line);padding:7px}.seed-row span{color:var(--muted);font-size:13px}.rule-strip{display:flex;justify-content:space-between;border-block:1px solid var(--line);padding:14px 0;margin:20px 0;font-size:14px;color:var(--muted)}.rule-strip b{color:var(--gold);font-size:18px;margin-right:4px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}.rules-copy h3{color:var(--gold);margin:22px 0 8px}.rules-copy p{font-size:16px}.retain-choices{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.retain-choices label{padding:13px;border:1px solid var(--line);border-radius:5px}.retain-choices input{accent-color:var(--gold);margin-right:12px}.retain-choices span{display:block;margin-left:30px;font-size:14px;color:var(--muted)}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-stats div{background:#1b282f;padding:14px;font-size:13px;color:var(--muted)}.result-stats strong{display:block;font-size:28px;font-weight:500;color:var(--gold)}#resultDialog .muted{margin-top:22px}@media(min-width:1450px){.shell{padding:0 45px}.battle{min-height:355px}.combatants{min-height:235px}.slot{min-height:225px}}@media(max-width:900px){.shell{padding:0 18px}.edition{display:none}.combatants{gap:18px;flex-wrap:wrap}.hero{min-width:250px}.enemies{flex-wrap:wrap}.enemy{width:190px}.slots{grid-template-columns:repeat(2,1fr)}.slot{min-height:215px}.forecast{flex-wrap:wrap;gap:8px}.section-head{align-items:start}.piles{white-space:normal;text-align:right}}@media(max-width:560px){.shell{padding:0 12px}.top{gap:10px;min-height:75px;flex-wrap:wrap;padding:12px 0}.wordmark{font-size:23px}.top nav{gap:4px}.top button{padding:7px 9px;font-size:14px}.battle-top{padding:18px 15px 0}h1{font-size:29px}.combatants{padding:15px;display:block}.hero{margin-bottom:20px}.hero-art{width:80px;height:100px}.hero-info{flex:1}.hero-info h2{font-size:27px;margin-bottom:8px}.enemies{justify-content:stretch;gap:9px}.enemy{flex:1;min-width:0;padding:12px}.enemy-name{font-size:16px;min-height:45px}.enemy img{display:none}.enemy-meta{font-size:12px}.intent{font-size:14px}.forecast{padding:10px 15px}.turn-controls{gap:10px;flex-direction:column;align-items:end}.action-count{font-size:14px}.slot{padding:12px;min-height:235px}.slot h3{font-size:18px}.slot p{font-size:14px}.slot-heading{font-size:11px}.slot .charges{font-size:14px;letter-spacing:0}.reserve-card{min-width:145px}.reserve-section .section-head{display:block}.piles{display:block;text-align:left;margin-top:8px}.choices{grid-template-columns:1fr}.fight-choice span{display:block;margin-left:24px}.rule-strip{flex-wrap:wrap;gap:12px}.record{gap:8px}footer{align-items:start}.result-stats{grid-template-columns:repeat(2,1fr)}dialog{padding:23px}.dialog-actions button{flex:1}dialog h2{font-size:31px}}

/* Experiment 02: visible alternatives and finite resources. */
.enemy{width:260px}.enemy-target{width:100%;padding:0;border:0;background:none;text-align:left}.enemy-target:hover:not(:disabled){background:none}.possibility{padding:9px 0;border-top:1px solid #3a4650;margin-top:8px;display:flex;flex-direction:column;gap:4px}.possibility strong{color:var(--gold);font-size:15px}.possibility span{font-size:14px}.possibility button{font-size:13px;padding:5px 8px}.possibility.committed{border-left:3px solid var(--teal);padding-left:8px}.possibility>b{font-size:11px;color:var(--teal);letter-spacing:.12em}.possibility.rejected{opacity:.35}.enemy>small{display:block;font-size:12px;color:var(--muted);margin-top:8px}#switchButton{font-size:13px;margin:0 0 14px;padding:7px 9px}.destroyed-pile{padding:12px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.destroyed-pile summary{cursor:pointer;color:var(--red)}.destroyed-pile p{margin-top:8px}.hero{min-width:260px}@media(max-width:560px){.enemy{width:auto}.enemy-name{font-size:15px}.possibility span{font-size:13px}.combatants{padding:12px}.hero{min-width:0}.enemies{align-items:start}}

.slot.aimed{outline:1px solid var(--gold);outline-offset:2px}.slot .skill-select{border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;width:auto}.slot .skill-select:hover{color:var(--gold);background:none}.forecast #forecast{display:flex;flex-direction:column;gap:4px}.forecast #forecast strong{color:var(--gold)}.forecast #forecast span{color:var(--text);font-size:14px}.forecast{min-height:76px}

.walkthrough{position:fixed;z-index:30;width:min(370px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--gold);background:#13222b;box-shadow:0 8px 50px #000b;border-radius:8px;padding:18px;display:block}.walkthrough[hidden],#walkArrow[hidden]{display:none}.walkthrough h2{margin:7px 0;font-size:21px}.walkthrough p{color:#d4dfe4;font-size:16px;line-height:1.45}.walkthrough-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;justify-content:space-between}.walkthrough-actions button{font-size:14px;padding:8px 10px}.walkthrough-actions #exitWalkthrough{width:100%;text-align:right;border:0;padding:0 0 4px;color:var(--muted);font-size:13px}.tutorial-active{padding-bottom:320px}.tutorial-focus{outline:3px solid var(--gold)!important;outline-offset:5px}#walkArrow{position:fixed;inset:0;width:100vw;height:100vh;z-index:29;pointer-events:none;overflow:visible}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.help-term{cursor:help;text-decoration:underline dotted #b8a06b;text-underline-offset:4px;text-decoration-thickness:1px;border-radius:2px}.help-term:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.hero-stats .help-term{display:inline;font:inherit;color:inherit}#stanceHelp{display:table;margin:8px 0 14px;font-size:12px;color:var(--muted)}.mechanic-popup{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:16px 18px;border:1px solid var(--gold);border-radius:8px;background:#17232b;color:var(--text);box-shadow:0 10px 40px #0009;font:16px/1.5 'Segoe UI',sans-serif}.mechanic-popup strong{color:var(--gold);font-size:17px}.mechanic-popup p{margin:7px 0 0;color:#d0dadd}
.tutorial-focus{outline-color:#72e1d2!important;box-shadow:0 0 18px #72e1d233}.walkthrough{background:#30291e;border:2px solid #ddbd7c}.walkthrough p{color:#f0e5d0}
