:root{color-scheme:dark;--bg:#101c20;--panel:#18282b;--card:#203337;--line:#365052;--text:#ecede3;--muted:#a9bdb8;--accent:#98d6c6;--gold:#d6b780}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input,textarea,select{font:inherit;color:inherit}button,input,textarea,select{border:1px solid var(--line);border-radius:7px;background:var(--bg);padding:.65rem .8rem}input:not([type=checkbox]),select,textarea{width:100%}textarea{resize:vertical;line-height:1.6}button{cursor:pointer}button:hover{border-color:var(--accent);background:#294341}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);color:#112925;border-color:var(--accent);font-weight:650}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip{position:fixed;top:-5rem;left:1rem;background:var(--panel);z-index:30;padding:.6rem}.skip:focus{top:1rem}header{padding:1.1rem 3vw;display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);align-items:center}.brand{font-size:.7rem;letter-spacing:.15em;text-decoration:none;color:var(--gold)}.brand span{color:var(--muted)}nav{display:flex;flex-wrap:wrap;gap:1.4rem;font-size:.8rem}.hero{max-width:1500px;margin:auto;padding:2.5rem 2rem 1.5rem}.eyebrow{font-size:.7rem;letter-spacing:.17em;color:var(--gold);font-weight:700;margin:0 0 .65rem}h1{font:clamp(2rem,4vw,3.3rem)/1.15 Georgia,serif;margin:0 0 .8rem}h2{font:1.45rem/1.3 Georgia,serif;margin:0 0 1rem}h3{font-size:1rem}.hero>p:not(.eyebrow){color:var(--muted);max-width:650px}.badge{font-size:.65rem;letter-spacing:.1em;border:1px solid var(--line);padding:.3rem .55rem;border-radius:4px;color:var(--muted)}.status{max-width:1440px;margin:.5rem auto 1rem;padding:.7rem 1rem;border-left:3px solid var(--accent);background:var(--panel);min-height:3rem}.status.error{border-color:#e5a592;color:#ffd2c2}main{max-width:1500px;margin:auto;padding:0 2rem 2rem;display:grid;grid-template-columns:270px minmax(0,1fr) minmax(320px,.8fr);gap:1.25rem;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.3rem;min-width:0}.controls{grid-row:span 2;position:sticky;top:1rem;max-height:calc(100dvh - 2rem);overflow:auto}.controls button{width:100%;margin:.3rem 0}.wardrobe{grid-row:span 2}.character{grid-column:3}.prompt{grid-column:3}label{display:block;font-size:.8rem;color:var(--muted);margin:.8rem 0 .35rem}.check{display:flex;align-items:center;gap:.5rem}.check input{accent-color:var(--accent);width:1.1rem;height:1.1rem}.hint{font-size:.77rem;color:var(--muted);line-height:1.6}.button-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.button-row button{flex:1}.notes{display:block;font:italic .9rem Georgia,serif;margin-top:1.2rem}hr{border:0;border-top:1px solid var(--line);margin:1.4rem 0}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.outfit-heading{padding:1.25rem 0}.outfit-heading input{font:1.7rem Georgia,serif;background:transparent;border-color:transparent;padding:.2rem 0}.palette-line{font-size:.8rem;color:var(--gold)}.garment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.garment{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:1rem;min-width:0}.garment h3{font:1.1rem Georgia,serif;margin:.45rem 0}.garment .slot{font-size:.65rem;color:var(--gold);letter-spacing:.14em;text-transform:uppercase}.garment textarea{font-size:.8rem;min-height:110px}.garment p{font-size:.78rem}.garment .check{margin-top:.6rem}.garment.held{border-color:var(--gold)}details{border-top:1px solid var(--line);padding-top:.8rem;margin-top:1.2rem}summary{cursor:pointer;font-size:.8rem;color:var(--accent)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:.75rem/1.65 ui-monospace,monospace;max-height:400px;overflow:auto}#mapping,.warnings{padding-left:1.1rem;font-size:.78rem;color:var(--muted)}.warnings{color:var(--gold)}.accessory{border-bottom:1px solid var(--line);padding-bottom:.5rem}.accessory button{font-size:.75rem;margin-top:.5rem}footer{padding:2rem;text-align:center;color:var(--muted);font-size:.75rem;border-top:1px solid var(--line)}body[data-mode=outfit] .character{display:none}body[data-mode=outfit] .prompt{grid-row:span 2}.presentation label{margin-top:.5rem}
@media(max-width:1250px){main{grid-template-columns:250px minmax(0,1fr)}.wardrobe{grid-row:auto}.character,.prompt{grid-column:2}.controls{grid-row:span 3}body[data-mode=outfit] .prompt{grid-row:auto}}
@media(max-width:760px){header{align-items:flex-start;flex-direction:column}nav{gap:.8rem;flex-wrap:wrap}.hero{padding:2rem 1rem 1rem}main{display:flex;flex-direction:column;padding:0 .7rem 1rem}.panel{width:100%}.controls{position:static;max-height:none}.status{margin:.5rem .7rem 1rem}.garment-grid{grid-template-columns:1fr}.section-heading{flex-wrap:wrap}.panel{padding:1rem}}
@media print{header,.hero,.controls,.character,.wardrobe,.status,footer,.prompt .button-row,.presentation{display:none}main{display:block}.prompt{border:0}textarea{border:0}body{background:white;color:black}}

.palette-editor{border:1px solid var(--line);border-radius:9px;margin:0 0 1.2rem;padding:1rem;min-width:0}.palette-editor legend{font-size:.8rem;color:var(--gold);padding:0 .4rem}.palette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.palette-colour{display:grid;grid-template-columns:2.7rem minmax(0,1fr);gap:.35rem;min-width:0}.palette-colour label,.palette-colour span{grid-column:1/-1;margin:0}.palette-colour input[type=color]{width:2.7rem;height:2.7rem;padding:.2rem;cursor:pointer}.palette-colour input[type=text]{font-family:ui-monospace,monospace;min-width:0;padding:.45rem}.palette-colour input[aria-invalid=true]{border-color:#e5a592}.block-export textarea{font:.75rem/1.65 ui-monospace,monospace;white-space:pre;overflow:auto}.block-export button{min-width:120px}
@media(max-width:380px){.palette-grid{grid-template-columns:1fr}}

.hair-editor{border:1px solid var(--line);border-radius:9px;margin:1.2rem 0;padding:1rem;min-width:0}.hair-editor legend{font-size:.8rem;color:var(--gold);padding:0 .4rem}.hair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.hair-grid label{margin-top:.5rem;min-width:0}.hair-grid select,.hair-grid textarea{display:block;margin-top:.35rem}.hair-editor button:disabled{cursor:not-allowed}.hair-editor .hint,.hair-editor li{overflow-wrap:anywhere}.hair-editor h3{font:1.15rem Georgia,serif;margin-top:1.5rem}
@media(max-width:480px){.hair-grid{grid-template-columns:1fr}}

.save-state{font-size:.8rem;border-left:3px solid var(--accent);padding:.5rem .65rem;background:var(--bg)}.save-state.unsaved{border-color:var(--gold);color:var(--gold)}
