/* Gooner House — black / white + #ff66c4 accent */
:root{
  --bg:#000000;
  --panel:#0a0a0a;
  --raised:#141414;
  --line:#2a2a2a;
  --line-strong:#3d3d3d;
  --text:#ffffff;
  --muted:#a3a3a3;
  --dim:#737373;
  --pink:#ff66c4;
  --pink-soft:#ff8fd4;
  --pink-dim:#ff66c422;
  --ink:#000000;
}
body{background:var(--bg);color:var(--text)}
.main-shell,.app-shell{background:var(--bg)}
img{filter:grayscale(1)}
img.brand-logo,.brand-logo{filter:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--pink);outline-offset:3px
}
.eyebrow,.small-label,.nav-label{color:var(--muted);letter-spacing:.12em}

/* Brand — gooner (white) + house (hot pink), logo style */
.brand{color:var(--text);font-weight:700;letter-spacing:-.02em;text-transform:lowercase;line-height:1.05}
.brand-mark{
  background:var(--pink);color:var(--ink);box-shadow:none;
  font-weight:800
}
.brand-word{color:var(--text)}
.brand-accent,.brand-pink{color:var(--pink)}
.brand-small{color:var(--dim);display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px;font-weight:600}
.mobile-brand,.mobile-brand .brand-accent{font-weight:750;letter-spacing:-.03em;text-transform:lowercase}
.mobile-brand .brand-accent{color:var(--pink)}

/* Buttons */
.button{font-weight:650;border-radius:999px;transition:background .15s,border-color .15s,color .15s,transform .15s}
.button.primary,.primary{
  background:var(--pink);color:var(--ink);border:1px solid var(--pink);box-shadow:none
}
.button.primary:hover:not(:disabled),.primary:hover:not(:disabled){
  background:var(--pink-soft);border-color:var(--pink-soft);color:var(--ink);transform:translateY(-1px)
}
.button.secondary,.secondary{
  background:transparent;border:1px solid var(--line-strong);color:var(--text)
}
.button.secondary:hover:not(:disabled),.secondary:hover:not(:disabled){
  border-color:var(--pink);color:var(--pink);background:#0f0f0f
}
.danger{background:var(--raised);color:var(--text);border:1px solid var(--line-strong)}
.danger:hover:not(:disabled){border-color:#fff}
.circle-button,.circle-button{
  border:1px solid var(--line-strong);color:var(--muted);background:var(--panel)
}
.circle-button:hover{border-color:var(--pink);color:var(--pink)}
.text-button{color:var(--muted)}
.text-button:hover{color:var(--pink)}

/* Sidebar */
.sidebar{background:var(--bg);border-right:1px solid var(--line)}
.sidebar-rule{background:var(--line);border:0;height:1px}
.sidebar nav a{color:var(--muted);border:1px solid transparent;border-radius:10px}
.sidebar nav a:hover{background:var(--raised);color:var(--text)}
.sidebar nav a.active{
  background:var(--raised);border-color:var(--pink);color:var(--text)
}
.sidebar nav a .nav-glyph,
.sidebar nav a .nav-arrow{color:var(--dim)}
.sidebar nav a.active .nav-glyph,
.sidebar nav a.active .nav-arrow,
.sidebar nav a[data-nav] .nav-glyph{color:inherit}
.sidebar nav a.active .nav-glyph{color:var(--pink)}
.sidebar nav a[data-nav=community].active,
.sidebar nav a[data-nav=studio].active,
.sidebar nav a[data-nav=saved].active{
  background:var(--raised);border-color:var(--pink);color:var(--text)
}
.sidebar nav a[data-nav=community] .nav-glyph,
.sidebar nav a[data-nav=studio] .nav-glyph,
.sidebar nav a[data-nav=saved] .nav-glyph{color:var(--dim)}
.sidebar nav a.active[data-nav] .nav-glyph{color:var(--pink)}
.nav-count{color:var(--text);background:var(--raised);border:1px solid var(--line)}
.tiny-new{border:1px solid var(--pink);background:transparent;color:var(--pink);border-radius:4px;font-size:8px;letter-spacing:.08em}
.sidebar-link,.sidebar-footer{color:var(--muted)}
.sidebar-link:hover{color:var(--pink)}
.age-chip,.age-chip{
  border:1px solid var(--pink);color:var(--pink);background:transparent;font-weight:700
}
.sidebar-note{
  background:var(--panel);border:1px solid var(--line);border-radius:12px
}
.sidebar-note p{color:var(--text)}
.sidebar-note>span:last-of-type,.sidebar-note span{color:var(--muted)}
.sidebar-note a{color:var(--pink)}

/* Topbar */
.topbar,.topbar{background:rgba(0,0,0,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.breadcrumb{color:var(--muted)}.breadcrumb span{color:var(--dim)}
.preview-label{color:var(--muted)}
.preview-label>span{background:var(--pink);box-shadow:0 0 8px var(--pink-dim)}

/* Discovery / filters / cards — monochrome + pink active */
.discovery-heading h1,.market-page .discovery-heading h1,.studio-page h1{
  font-weight:700;letter-spacing:-.04em;color:var(--text)
}
.studio-shortcut{background:var(--panel);color:var(--text);border:1px solid var(--line-strong)}
.studio-shortcut:hover{border-color:var(--pink);color:var(--pink)}
.search-wrap{background:var(--panel);border:1px solid var(--line-strong);box-shadow:none}
.search-wrap:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-dim)}
.search-wrap input{color:var(--text)}.search-wrap input::placeholder{color:var(--dim)}
.filter{background:var(--panel);color:var(--muted);border:1px solid var(--line)}
.filter:hover:not(.active){border-color:var(--line-strong);color:var(--text)}
.filter.active,.filter.active:hover{
  background:var(--pink);border-color:var(--pink);color:var(--ink)
}
.cast-section-title p{color:var(--muted)}
.character-card{
  --card-accent:var(--pink);
  background:var(--panel);border:1px solid var(--line);box-shadow:none
}
.character-card[data-genre],
.character-card[data-genre=mystery],
.character-card[data-genre=connection],
.character-card[data-genre=adventure]{--card-accent:var(--pink)}
.character-card:hover{
  border-color:var(--pink);
  box-shadow:0 0 0 1px var(--pink-dim);
  transform:translateY(-2px)
}
.character-portrait:after{background:linear-gradient(transparent,#000000c7 60%,#000000ec)}
.portrait-label{background:#000000eb;border-color:var(--pink);color:var(--text)}
.portrait-age{color:var(--text)}
.save-button{color:var(--text);background:#000000d9;border-color:var(--line-strong)}
.save-button:hover:not(:disabled){border-color:var(--pink);color:var(--pink)}
.save-button[aria-pressed=true],.save-button[aria-pressed=true]:hover{
  background:var(--pink);color:var(--ink);border-color:var(--pink);box-shadow:none
}
.card-info h3{color:var(--text)}.card-info h3>span{color:var(--pink)}
.card-role,.card-info>p{color:var(--muted)}
.tag{border-color:var(--line-strong);background:var(--raised);color:var(--muted)}
.avatar{border-color:var(--pink);box-shadow:0 0 0 2px var(--pink-dim);filter:grayscale(1)}

.continue-banner{background:var(--panel);border:1px solid var(--line)}
.continue-banner p{color:var(--text)}.continue-banner .small-label{color:var(--muted)}
.page-foot,.collection-note{border-color:var(--line);color:var(--dim)}
.story-card{background:var(--panel);border:1px solid var(--line)}
.story-card .primary{background:var(--pink);color:var(--ink)}
.empty-state{background:var(--panel);border:1px dashed var(--line-strong)}
.empty-state h2{color:var(--text)}.empty-state p{color:var(--muted)}

/* Modals / age gate */
dialog{
  background:var(--panel);border:1px solid var(--line-strong);
  box-shadow:0 24px 80px #000000cc;color:var(--text)
}
dialog::backdrop{background:#000000e6}
.close-modal{background:#000000df;border-color:var(--line-strong);color:var(--text)}
.close-modal:hover{border-color:var(--pink);color:var(--pink)}
.detail-cover:after{background:linear-gradient(transparent,#000000ed)}
.detail-cover-caption p,.detail-body h2{color:var(--text)}
.detail-bio,.detail-body>.eyebrow{color:var(--muted)}
.scene-option{background:var(--raised);border:1px solid var(--line)}
.scene-option:has(input:checked){
  border-color:var(--pink);background:#1a1a1a;box-shadow:inset 3px 0 0 var(--pink)
}

.age-gate{
  background:var(--bg);border:1px solid var(--line-strong);color:var(--text)
}
.age-gate .gate-top .brand-mark{background:var(--pink);color:var(--ink)}
.age-gate .eyebrow{color:var(--pink)}
.age-gate h1{color:var(--text)}
.gate-rules span{
  border:1px solid var(--line);background:var(--panel);color:var(--muted)
}
.age-check{color:var(--text)}
.age-check input{accent-color:var(--pink)}
.gate-number,.age-chip{border-color:var(--pink);color:var(--pink)}
.gate-exit{color:var(--muted)}
.gate-exit:hover{color:var(--pink)}
.gate-footnote{color:var(--dim)}

/* Chat / studio leftovers — strip multi-hue */
.preview-label>span,
.chat-badge{border-color:var(--line-strong)}
.send-button{background:var(--pink);color:var(--ink)}
.send-button:hover:not(:disabled){background:var(--pink-soft)}
.composer:focus-within{border-color:var(--pink)}
.message.user .message-body{border-color:var(--line-strong);background:var(--raised)}
.choice.active{border-color:var(--pink);background:var(--raised);color:var(--text)}
.queue-overlay progress{accent-color:var(--pink)}
.mobile-nav a.active{border-color:var(--pink);color:var(--pink)}

/* Marketplace / catalog overrides that used purple/blue */
.market-tabs button.active{color:var(--text);border-color:var(--pink)}
.template-option:has(input:checked){border-color:var(--pink);box-shadow:0 0 0 1px var(--pink)}
.catalog-error{background:#140a10;border-color:var(--pink)}
.protocol-status strong{color:var(--pink)}

/* Links in content */
a:hover{color:var(--pink)}
.sidebar nav a:hover{color:var(--text)}


/* Real wordmark logo (not letter G) */
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0 7px}
.brand-logo{display:block;height:28px;width:auto;object-fit:contain;flex-shrink:0}
.gate-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gate-logo{height:34px;width:auto}
.age-gate .gate-top .brand-mark{display:none}


/* P1-S1 character detail + NSFW discover tags */
.tag-filters{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:12px 0 4px;padding:10px 0 2px;border-top:1px solid var(--line,#2a2a2a)}
.tag-filters-label{font-size:9px;letter-spacing:.14em;color:var(--dim,#737373);font-weight:700;margin-right:4px}
.filter.tag-filter{padding:7px 12px;font-size:10px}
.tag.tag-nsfw{border-color:var(--pink,#ff66c4);color:var(--pink,#ff66c4);background:#12080e}
.detail-section{margin:18px 0;padding-top:14px;border-top:1px solid var(--line,#2a2a2a)}
.detail-section h3{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pink,#ff66c4);margin:0 0 10px;font-weight:700}
.detail-lead{font-size:13px;line-height:1.6;color:var(--text,#fff);margin:0 0 8px}
.detail-note{font-size:10px;color:var(--dim,#737373);margin:8px 0 0;line-height:1.5}
.detail-limits{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.detail-limits li{background:var(--raised,#141414);border:1px solid var(--line,#2a2a2a);border-radius:10px;padding:12px 14px}
.detail-limits strong{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--pink,#ff66c4);margin-bottom:6px}
.detail-limits span{font-size:12px;line-height:1.7;color:var(--muted,#a3a3a3)}
.detail-examples{margin:0;padding-left:18px;display:grid;gap:10px}
.detail-examples li{font-size:12px;line-height:1.7;color:var(--muted,#a3a3a3);padding-left:4px}
.detail-body{max-height:min(82vh,860px);overflow:auto}


/* P1-S2 chat toolbar (scripted preview tools) */
.chat-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 24px 0;border-top:1px solid var(--line,#252525);background:#101010}
.chat-toolbar-main{display:flex;flex-wrap:wrap;gap:6px}
.tool-btn{font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:7px 10px;border:1px solid #333;border-radius:6px;color:#bbb;background:#171717}
.tool-btn:hover:not(:disabled){border-color:var(--pink,#ff66c4);color:#fff}
.tool-btn.active{border-color:var(--pink,#ff66c4);color:var(--pink,#ff66c4);background:#12080e}
.tool-btn:disabled{opacity:.4}
.branch-switch{display:flex;align-items:center;gap:8px;font-size:9px;color:#888}
.branch-switch select{min-height:30px;font-size:10px;padding:4px 8px;border:1px solid #333;border-radius:6px;background:#1b1b1b;color:#ddd;max-width:140px}
.toolbar-note{font-size:7px;letter-spacing:.06em;text-transform:uppercase;color:#666;margin-left:auto}
.branch-badge{font-size:7px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--pink,#ff66c4);color:var(--pink,#ff66c4);border-radius:4px;padding:4px 6px;margin-left:8px;white-space:nowrap}
.message.editing .message-body{border-color:var(--pink,#ff66c4)}
.edit-flag{font-size:7px;letter-spacing:.1em;color:var(--pink,#ff66c4);margin-left:8px}
.message-actions button[data-fork]{color:#888}
.message-actions button[data-fork]:hover{color:var(--pink,#ff66c4)}
@media(max-width:650px){
  .chat-toolbar{padding:8px 13px 0;gap:8px}
  .tool-btn{font-size:8px;padding:6px 8px}
  .toolbar-note{width:100%;margin-left:0}
  .branch-badge{margin-left:0}
}


/* P1-S3 limits + heat + OOC (local controls) */
.heat-badge{font-size:7px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--pink,#ff66c4);color:var(--pink,#ff66c4);border-radius:4px;padding:4px 6px;margin-left:8px;white-space:nowrap;background:#12080e}
.scene-controls{border-top:1px solid var(--line,#2a2a2a);background:#0c0c0c;padding:12px 24px 16px}
.scene-controls-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.scene-controls-head h2{margin:4px 0 0;font-size:14px;letter-spacing:-.01em}
.scene-controls-note{font-size:10px;color:var(--dim,#737373);margin:8px 0 14px;line-height:1.5}
.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.control-block{background:var(--raised,#141414);border:1px solid var(--line,#2a2a2a);border-radius:12px;padding:12px 14px}
.control-block-wide{grid-column:1/-1}
.control-block h3{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--pink,#ff66c4);margin:0 0 10px}
.limit-chip-row{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-bottom:8px}
.limit-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:5px 8px;border-radius:999px;border:1px solid var(--line-strong,#3d3d3d);background:#101010;color:var(--text,#fff)}
.limit-chip-x{border:0;background:transparent;color:var(--muted,#a3a3a3);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}
.limit-chip-x:hover{color:var(--pink,#ff66c4)}
.limit-empty{font-size:11px;color:var(--dim,#737373)}
.limit-add-form{display:flex;gap:6px}
.limit-add-form input{flex:1;min-height:32px;border:1px solid #333;border-radius:8px;background:#1b1b1b;color:#ddd;padding:6px 10px;font-size:12px}
.heat-slider-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim,#737373);margin-bottom:6px}
#heat-slider{width:100%;accent-color:var(--pink,#ff66c4)}
.heat-readout{margin-top:8px;font-size:12px;color:var(--text,#fff)}
.heat-readout .detail-note{display:inline;margin-left:6px}
#ooc-note{width:100%;box-sizing:border-box;border:1px solid #333;border-radius:8px;background:#1b1b1b;color:#ddd;padding:10px;font-size:12px;line-height:1.5;resize:vertical;min-height:72px}
.ooc-banner{margin:12px 24px 0;padding:12px 14px;border:1px dashed var(--pink,#ff66c4);border-radius:10px;background:#12080e}
.ooc-banner p{margin:6px 0 0;font-size:12px;line-height:1.6;color:var(--muted,#a3a3a3)}
.char-limits-reflect{margin-top:0}
@media(max-width:750px){
  .controls-grid{grid-template-columns:1fr}
  .scene-controls{padding:10px 13px 14px}
  .heat-badge{margin-left:0}
  .ooc-banner{margin:10px 13px 0}
}


/* P1-S4 persona + pinned memory + lorebook */
.memory-panel{border-top:1px solid var(--line,#2a2a2a)}
.field-label{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim,#737373);margin:8px 0 4px}
.memory-panel input[type=text],.memory-panel textarea,.lore-add-form input,.lore-add-form textarea{width:100%;box-sizing:border-box;border:1px solid #333;border-radius:8px;background:#1b1b1b;color:#ddd;padding:8px 10px;font-size:12px}
.memory-panel textarea,#persona-notes{resize:vertical;min-height:64px;line-height:1.5}
.lore-list{display:grid;gap:10px;margin-bottom:12px}
.lore-entry{border:1px solid var(--line,#2a2a2a);border-radius:10px;padding:10px 12px;background:#101010}
.lore-entry-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lore-entry-head strong{font-size:12px;color:#fff}
.lore-keywords{display:block;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--pink,#ff66c4);margin:6px 0}
.lore-entry p{margin:6px 0 0;font-size:12px;line-height:1.55;color:var(--muted,#a3a3a3)}
.lore-add-form{display:grid;gap:8px;grid-template-columns:1fr 1fr auto}
.lore-add-form textarea{grid-column:1/-1}
.lore-add-form .tool-btn{align-self:end}
.lore-chip{display:inline-flex;align-items:center;margin:10px 24px 0;padding:6px 10px;border:1px solid var(--pink,#ff66c4);border-radius:999px;background:#12080e;color:var(--pink,#ff66c4);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:750px){
  .lore-add-form{grid-template-columns:1fr}
  .lore-chip{margin:8px 13px 0}
}


/* P1-S5 world-state strip + scene-studio bind */
.chat-page.scene-bound{position:relative}
.chat-page.scene-bound .chat-log{position:relative;isolation:isolate}
.chat-page.scene-bound .chat-log::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(180deg,rgba(8,8,8,.82),rgba(8,8,8,.94)),var(--scene-art);
  background-size:cover;background-position:center;opacity:.35;filter:grayscale(1);
}
.chat-page.scene-bound .chat-log > *{position:relative;z-index:1}
.world-state-strip{
  display:flex;flex-wrap:wrap;align-items:stretch;gap:8px 12px;
  padding:10px 24px;border-bottom:1px solid var(--line,#2a2a2a);
  background:linear-gradient(180deg,#12080e 0%,#0c0c0c 100%);
}
.world-meter{min-width:120px;flex:1 1 140px}
.world-meter .wm-label{
  display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--pink,#ff66c4);margin-bottom:4px;
}
.world-meter .wm-value{display:block;font-size:11px;color:#e8e8e8;line-height:1.35}
.world-meter .wm-meter{display:flex;align-items:center;gap:8px}
.meter-track{
  flex:1;height:6px;border-radius:999px;background:#1f1f1f;border:1px solid #333;overflow:hidden;display:inline-block;min-width:64px;
}
.meter-track > i{display:block;height:100%;background:var(--pink,#ff66c4);border-radius:999px}
.meter-num{font-size:10px;color:#bbb;min-width:24px}
.world-strip-note{
  margin-left:auto;align-self:center;font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#666;
}
.scene-ambiance{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;
  margin:12px 24px 0;padding:10px 12px;border:1px solid #2a2a2a;border-radius:10px;background:rgba(12,12,12,.72);
}
.scene-ambiance-label{font-size:12px;color:var(--muted,#a3a3a3);line-height:1.5}
.scene-ambiance-tag{
  font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--pink,#ff66c4);
  border:1px solid var(--pink,#ff66c4);border-radius:4px;padding:4px 7px;white-space:nowrap;
}
.studio-bind-note{
  margin:12px 0 16px;padding:12px 14px;border:1px dashed #3a3a3a;border-radius:12px;background:#101010;
}
.studio-bind-note.bound{border-color:var(--pink,#ff66c4);background:#12080e}
.studio-bind-note p{margin:6px 0 10px;font-size:12px;color:var(--muted,#a3a3a3);line-height:1.55}
#chat-scene-select{
  width:100%;min-height:34px;margin-top:6px;border:1px solid #333;border-radius:8px;
  background:#1b1b1b;color:#ddd;padding:6px 10px;font-size:12px;
}
@media(max-width:650px){
  .world-state-strip{padding:8px 13px;gap:8px}
  .world-strip-note{width:100%;margin-left:0}
  .scene-ambiance{margin:10px 13px 0}
}
