:root{
  --bg:#08090a;
  --panel:#121314;
  --panel2:#18191a;
  --line:#302c29;
  --line2:#57463a;
  --text:#f3eee6;
  --muted:#9f9890;
  --red:#a52f35;
  --red2:#e05b55;
  --red3:#5f2023;
  --gold:#c59b58;
  --gold-soft:#7d633d;
  --shadow:0 24px 70px rgba(0,0,0,.5)
}

body{
  background:
    linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),
    radial-gradient(circle at 14% 8%,rgba(122,31,31,.2),transparent 28%),
    #08090a;
  background-size:32px 32px,32px 32px,auto;
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(115deg,transparent 0 44%,rgba(197,155,88,.025) 44.2% 44.35%,transparent 44.5%)}
.ambient{opacity:.08}
.brand-portrait{width:52px;height:52px;overflow:hidden;border-radius:12px;background:radial-gradient(circle at 60% 35%,#5d291f,#111 67%);box-shadow:inset 0 0 0 1px #e0a96542,0 0 22px rgba(190,72,45,.16)}
.brand-portrait img{width:64px;height:64px;max-width:none;object-fit:contain;transform:translate(-6px,-3px);filter:saturate(.94) contrast(1.04)}
.brand:hover .brand-portrait{border-color:#d8995d;box-shadow:inset 0 0 0 1px #e0a96566,0 0 27px rgba(190,72,45,.25)}

.brand-mark,.brand b,.hero h1,.character-head h1,.hero-stat strong,.section-heading h2,.card-body h3,.title-row input,.section-toggle span:first-child,.output-head h2,.modal-head h2,.char-panel-head h2,.step-number,.stagebar-label span,.persona-stage>span,.avatar,.automated-forge h2{font-family:'Sora',sans-serif}
.hero h1,.character-head h1{letter-spacing:-.035em}
.hero h1 em,.character-head h1 em{color:#e6ad70;-webkit-text-stroke:0;text-shadow:0 0 26px rgba(197,155,88,.14);font-style:normal}

.topbar{background:rgba(8,9,10,.92);border-bottom-color:#382f2a;box-shadow:0 8px 35px rgba(0,0,0,.35)}
.brand-mark{width:42px;border-color:var(--gold-soft);background:linear-gradient(145deg,#4b2020,#120d0d);box-shadow:inset 0 0 0 3px #0d0d0d,0 0 24px rgba(224,91,85,.13);transform:rotate(-2deg);font-size:10px;letter-spacing:-.06em}
.brand small{color:#a68d68}
.nav-btn.active:after{background:linear-gradient(90deg,transparent,var(--red2),var(--gold),transparent);height:2px}
.save-state{padding:7px 10px;border:1px solid #2d322d;border-radius:99px;background:#0d100e;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.save-state i{box-shadow:0 0 8px #6ebc87}

.panel{background:linear-gradient(145deg,rgba(25,25,25,.97),rgba(13,14,15,.98));border-color:#332f2c;box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.025)}
.primary{border-color:#863b38;background:linear-gradient(180deg,#b43c3c,#772326);box-shadow:inset 0 1px rgba(255,255,255,.14),0 10px 28px rgba(104,24,27,.26);text-shadow:0 1px #511}
.secondary{background:linear-gradient(180deg,#1d1e1f,#121314);border-color:#3a3632}
.secondary:hover,.icon-btn:hover{border-color:#816646;background:#24211d}
.eyebrow{color:var(--gold);letter-spacing:.22em}
.hero-stat{border-left-color:#57463a}
.hero-stat strong{color:#ead7b9;text-shadow:0 0 28px rgba(197,155,88,.18)}
input,select,textarea{background:#0d0e0f;border-color:#34312e}
input:focus,select:focus,textarea:focus{border-color:#8e6843;box-shadow:0 0 0 3px rgba(197,155,88,.09)}

.persona-card{background:linear-gradient(165deg,#171719,#0d0e0f);border-color:#35312e;border-radius:5px}
.persona-card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);opacity:.45;z-index:2}
.persona-card:hover{border-color:#856448;box-shadow:0 20px 50px rgba(0,0,0,.48),0 0 28px rgba(138,52,43,.08)}
.card-art{background:radial-gradient(circle at 72% 18%,var(--avatar2),transparent 40%),linear-gradient(145deg,var(--avatar1),#090a0b);border-bottom:1px solid #3b312c}
.avatar{border-color:#b9976166;border-radius:12px;transform:rotate(-2deg);box-shadow:inset 0 0 0 3px #08080877,0 12px 28px #0009}
.favorite{border-radius:4px;border-color:#6c5945}.favorite.on{color:#f0bd6d;box-shadow:0 0 15px rgba(197,155,88,.16)}
.chip{color:#e1bf8c;background:#2a2117;border-color:#5f4930;border-radius:4px;text-transform:uppercase;letter-spacing:.08em}
.card-actions button:hover{background:#2c2420}
.library-kind-tabs{display:flex;align-items:center;border:1px solid #4a4038;border-radius:6px;overflow:hidden;background:#0d0e0f}
.library-kind-tabs button{border:0;border-right:1px solid #38322d;background:transparent;color:#8f8880;padding:9px 12px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.library-kind-tabs button:last-child{border-right:0}
.library-kind-tabs button.active{color:#f2e2ca;background:linear-gradient(180deg,#39241e,#211816);box-shadow:inset 0 -2px #b8744c}
.card-art{position:relative}
.artwork-avatar{position:relative;overflow:hidden;padding:0;color:#f5ead9;cursor:pointer}
.artwork-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:rotate(2deg) scale(1.08)}
.artwork-avatar.has-artwork .avatar-initials{opacity:0}
.avatar-edit{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:21px;height:21px;border:1px solid #d7b17a80;border-radius:50%;background:#0b0b0cdc;color:#f0c78c;font:700 11px/1 sans-serif;opacity:.75;transform:rotate(2deg);transition:.18s}
.artwork-avatar:hover .avatar-edit{opacity:1;transform:rotate(2deg) scale(1.08)}
.library-type-badge{align-self:flex-end;margin-left:auto;padding:4px 7px;border:1px solid #6f5a42;border-radius:3px;background:#0b0c0dde;color:#d8b77e;font:700 8px 'Sora',sans-serif;letter-spacing:.12em}
.character-library-card:before{background:linear-gradient(90deg,transparent,#9b4f48,transparent)}
.character-library-card .library-type-badge{border-color:#79433e;color:#df9790}
.character-primary-actions .character-library-save{width:auto;margin:0}

.editor-head,.character-head{border-bottom:1px solid #3a322d;padding-bottom:24px}
.title-row span{border-color:#67543b;color:#d0ac75;background:#17130e}
.mode-switch{background:#0c0d0e;border-color:#37322e;padding:3px}
.mode-switch button{min-width:86px}
.mode-switch button.active{background:linear-gradient(180deg,#4b2321,#2b1717);box-shadow:inset 0 0 0 1px #793b38;color:#fff3e5}
.editor-tools{border-color:#4b382c;background:linear-gradient(135deg,#211814,#121314)}
.spark{background:#291918;border-color:#75413b;color:#f0c0b9}

.persona-stagebar{padding:0;margin-bottom:14px;border-radius:7px;overflow:hidden}
.stagebar-label{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #332f2c;background:#0f1011}
.stagebar-label span{color:var(--gold);font:600 9px 'Sora',sans-serif;letter-spacing:.14em}
.stagebar-label small{color:#7f7972;font-size:9px}
.stagebar-track{display:flex;overflow-x:auto;scrollbar-width:thin;background:#111213}
.persona-stage{position:relative;flex:1 0 116px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;min-height:50px;padding:9px 11px;border:0;border-right:1px solid #2e2c2a;background:transparent;color:#827c76;text-align:left;cursor:pointer}
.persona-stage:last-child{border-right:0}
.persona-stage>span{display:grid;place-items:center;width:22px;height:22px;border:1px solid #49423a;border-radius:50%;font:600 8px 'Sora',sans-serif}
.persona-stage b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}
.persona-stage small{font-size:8px;color:#716b65}
.persona-stage.complete>span{border-color:#53705a;color:#9dd0a7;background:#142019}
.persona-stage.active{color:#f3e7d3;background:linear-gradient(180deg,#29201b,#1b1715)}
.persona-stage.active:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;background:linear-gradient(90deg,var(--red2),var(--gold));box-shadow:0 0 10px rgba(224,91,85,.3)}
.persona-stage.active>span{border-color:#b67c4c;color:#f2c986;background:#2b1b14}

.form-section{border-color:#35312e;background:#101112;border-radius:7px}
.form-section.active-stage{border-color:#65483a;box-shadow:0 14px 38px rgba(0,0,0,.28),0 0 24px rgba(130,47,40,.07)}
.section-toggle{background:linear-gradient(180deg,#191a1b,#141516);padding:17px 18px}
.active-stage>.section-toggle{background:linear-gradient(100deg,#2a1b19,#181717 46%,#161719)}
.section-toggle span:last-child{color:#b78b58;transition:.2s}
.form-section:not(.collapsed)>.section-toggle span:last-child{transform:rotate(180deg)}
.section-count{font-size:9px;letter-spacing:.07em}
.section-content{border-top-color:#39322e;background:linear-gradient(180deg,rgba(16,13,12,.8),rgba(13,14,15,.4))}
.optional-badge{background:#211d18!important;border-color:#51442f!important;color:#b8a078!important}

.output-column,.character-output{border-top-color:#745342}
.output-column:before,.character-output:before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
#outputPreview,.character-preview{background:#0a0b0c;border-color:#34312e;box-shadow:inset 0 12px 30px rgba(0,0,0,.26)}
.output-tabs button.active{color:#efb37c;border-color:var(--gold)}
.output-actions{display:grid;grid-template-columns:1fr;gap:8px}
.output-actions .wide{grid-column:auto}
.forge-export-menu{border:1px solid #3a3632;border-radius:7px;background:#101112}
.forge-export-menu>summary{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;list-style:none;color:#c9bfb2;font-size:11px;font-weight:700;cursor:pointer}
.forge-export-menu>summary::-webkit-details-marker{display:none}
.forge-export-menu>summary span{color:#9b805c;transition:.2s}
.forge-export-menu[open]>summary span{transform:rotate(180deg)}
.forge-export-menu>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:10px;border-top:1px solid #34312e}
.forge-export-menu>div>.secondary{padding:9px 6px;font-size:10px}

.char-panel{padding:0;border-radius:7px;overflow:hidden}
.char-panel-head{position:relative;margin:0;padding:16px 18px;cursor:pointer;list-style:none;background:linear-gradient(180deg,#191a1b,#131415)}
.char-panel-head::-webkit-details-marker{display:none}
.char-panel-head>small{margin-left:auto;margin-right:26px}
.stage-chevron{position:absolute;right:18px;color:#b78b58;transition:.2s}
.char-stage[open]{border-color:#65483a;box-shadow:0 14px 38px rgba(0,0,0,.28),0 0 24px rgba(130,47,40,.07)}
.char-stage[open] .char-panel-head{background:linear-gradient(100deg,#2a1b19,#181717 48%,#161719);border-bottom:1px solid #39322e}
.char-stage[open] .stage-chevron{transform:rotate(180deg)}
.char-stage[open] .step-number{border-color:#a86a44;color:#f0c37c;background:#2b1b14;box-shadow:0 0 16px rgba(197,155,88,.08)}
.char-stage-content{padding:18px}
.char-stage:not([open]) .step-number{filter:saturate(.5)}
.trait-axis{background:#0d0e0f;border-color:#34312e}
.trait-axis input[type=range]{background:linear-gradient(90deg,#7e3334 0%,#4a443a 50%,#a55a3d 100%)}
.trait-axis input[type=range]::-webkit-slider-thumb{border-color:#e6c28a;background:#8e3c32;box-shadow:0 0 0 4px #a46b4033}
.char-generate-row{border-top-color:#3a322d}
.character-status{background:#0d0e0f;border-color:#35312e}

.character-export-menu{margin-bottom:3px}
.forge-export-menu>.character-export-body{display:grid;grid-template-columns:1fr;gap:10px;padding:12px}
.character-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.character-export-actions .primary{grid-column:1/-1}
.export-divider{display:flex;align-items:center!important;gap:10px!important;padding:2px 0!important;border:0!important;color:#746d65;font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.export-divider:before,.export-divider:after{content:"";height:1px;background:#34312e;flex:1}
.png-file-picker{display:block;text-align:center;cursor:pointer}
.png-file-status{display:grid;gap:3px}
.png-file-status b{font-size:11px;color:#dccdd0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.png-file-status small{font-size:9px;color:var(--muted);line-height:1.4}
.png-version-label{display:grid;gap:6px;color:#bca9ae;font-size:10px;font-weight:700}
.png-version-label select{width:100%}

@media(max-width:980px){
  .persona-stage{flex-basis:135px}
  .output-column:before,.character-output:before{display:none}
}
@media(max-width:650px){
  .brand small{display:none}
  .persona-stagebar{margin-left:-2px;margin-right:-2px}
  .stagebar-label small{display:none}
  .persona-stage{flex-basis:108px;grid-template-columns:auto 1fr}
  .persona-stage small{display:none}
  .section-count{max-width:120px;text-align:right}
  .char-panel-head{align-items:center;flex-direction:row}
  .char-panel-head>small{display:none}
  .forge-export-menu>div{grid-template-columns:1fr}
  .character-export-actions{grid-template-columns:1fr}
  .character-export-actions .primary{grid-column:auto}
}
