/* Familiar woodland colours, with a stable identity for each character. */
[data-character], [data-character-id] { --character-accent:#f1c77d; --character-bg:#102c37; --character-panel:#183843; --character-line:#526b70; }
[data-character=rowan], [data-character-id=rowan] { --character-accent:#efc178; --character-bg:#302b22; --character-panel:#40392b; --character-line:#8d754e; }
[data-character=fern], [data-character-id=fern] { --character-accent:#a5dbb6; --character-bg:#17392f; --character-panel:#234a3d; --character-line:#608574; }
[data-character=bramble], [data-character-id=bramble] { --character-accent:#efa991; --character-bg:#382b2b; --character-panel:#493535; --character-line:#966d61; }
[data-character=clover], [data-character-id=clover] { --character-accent:#9adbd1; --character-bg:#163b3d; --character-panel:#224e50; --character-line:#578d8a; }
[data-character=pip], [data-character-id=pip] { --character-accent:#f0ba98; --character-bg:#352e29; --character-panel:#483e33; --character-line:#947358; }
[data-character=moss], [data-character-id=moss] { --character-accent:#9bd8cc; --character-bg:#153837; --character-panel:#224b47; --character-line:#5c8980; }
[data-character=wren], [data-character-id=wren] { --character-accent:#b0d0ef; --character-bg:#1a304b; --character-panel:#243f60; --character-line:#6c88a5; }
[data-character=ember], [data-character-id=ember] { --character-accent:#f0c67e; --character-bg:#352d23; --character-panel:#483d2c; --character-line:#917b55; }
[data-character] { --gold:var(--character-accent); --panel:var(--character-panel); --line:var(--character-line); --gold-dark:#17272b; }
body[data-character] { background:var(--character-bg); transition:background-color .2s ease; }
body[data-character] .game-shell, body[data-character] .story-panel { background:var(--character-bg); }
body[data-character] .topbar, body[data-character] .game-controls { background:var(--character-bg); border-color:var(--character-line); }
body[data-character]:not([data-character=together]) .story-panel { box-shadow:inset 0 4px var(--character-accent); }
body[data-character]:not([data-character=together]) :is(.choice,.blueprint,.growing-clues,.signal-token,.callout,.search-pocket,.picnic-goal,.wk-tools) { background:var(--character-panel); border-color:var(--character-line); }
body[data-character] .btn.primary:hover:not(:disabled) { background:var(--character-accent); filter:brightness(1.06); }
body[data-character] .choice.selected, body[data-character] .choice:hover { border-color:var(--character-accent); }
body[data-character] .story-art .art-shade { background:linear-gradient(180deg,#091b384a,transparent 30%,transparent 65%,var(--character-bg)); }
.character-portrait { display:block; width:56px; height:56px; flex-shrink:0; border:2px solid var(--character-accent); border-radius:50%; background-color:#102c37; background-size:200% 100%; background-repeat:no-repeat; background-position:0 0; }
.character-portrait[data-portrait-side=second] { background-position:100% 0; }
.character-portrait:is([data-character-id=rowan],[data-character-id=fern]) { background-image:url('assets/lantern-companions.png'); }
.character-portrait:is([data-character-id=bramble],[data-character-id=clover]) { background-image:url('assets/picnic-companions.png'); }
.character-portrait:is([data-character-id=pip],[data-character-id=moss]) { background-image:url('assets/workshop-companions-portraits.png'); }
.character-portrait:is([data-character-id=wren],[data-character-id=ember]) { background-image:url('assets/post-companions.png'); }
.character-turn { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; width:100%; max-width:530px; }
.character-tab { display:flex; align-items:center; gap:.65rem; min-width:0; min-height:74px; padding:.5rem .65rem; background:transparent; color:var(--ink,#f4f1e8); border:1px solid var(--character-line); border-radius:12px; text-align:left; }
.character-tab.active { background:var(--character-panel); border:2px solid var(--character-accent); padding:calc(.5rem - 1px) calc(.65rem - 1px); }
.character-tab > span:last-child { min-width:0; }
.character-tab strong,.character-tab small { display:block; line-height:1.35; overflow-wrap:break-word; }
.character-tab strong { font-size:1rem; color:var(--character-accent); }
.character-tab small { font-size:.875rem; color:var(--ink,#f4f1e8); }
button.character-tab small { text-decoration:underline; text-underline-offset:3px; }
.character-tab:not(.active) .character-portrait { opacity:.8; }
.character-presence { display:flex; align-items:center; gap:.5rem; width:100%; max-width:530px; margin:0 auto 1rem; color:var(--ink,#f4f1e8); }
.character-presence > span:last-child { margin-left:.25rem; font-size:1rem; }
.character-presence small { display:block; color:var(--muted,#b3c4c7); font-size:.875rem; }
.role-card .character-portrait { width:84px; height:84px; margin-bottom:.75rem; }
.role-card[data-character-id] { background:var(--character-panel); border-color:var(--character-accent); }
.role-card[data-character-id] h2 { color:var(--character-accent); }
.role-card p { font-size:1rem; }
.search-heading .character-turn { max-width:440px; }
.overlay[data-character] { background:var(--character-bg); color:var(--ink); border:2px solid var(--character-accent); }
.overlay .character-turn { margin:0 0 1.25rem; }
.overlay .character-presence { margin-top:.5rem; }
.wk-layout .wk-tools { background:var(--character-panel); border:1px solid var(--character-line); }
.wk-layout .wk-heading { border-bottom:3px solid var(--character-accent); padding-bottom:.65rem; }
.wk-grid { border-color:var(--character-accent); }
.wk-role.spark { background:#483e33; }
.wk-role.tinker { background:#224b47; }
.wk-role[aria-pressed=true] { outline-color:var(--character-accent); }
/* The receiving character owns a handoff dialog; closing returns to the current view. */
.overlay[data-character] .btn.primary { background:var(--character-accent); }
/* Night Post uses the same identity tokens inside its offline iframe. */
body[data-character-game=night-post] { --bg:var(--character-bg); --paper:#f4f1e8; --muted:#c5d2d5; }
body[data-character-game=night-post] :is(.map-panel,.lantern-panel,.paw-tools,.role-bar) { background:var(--character-panel); border-color:var(--character-line); }
body[data-character-game=night-post] .role-bar { border-left:4px solid var(--character-accent); }
body[data-character-game=night-post] .role-bar .character-portrait { width:64px; height:64px; }
body[data-character-game=night-post] .role-options .role-option { border-color:var(--character-accent); background:var(--character-panel); color:#f4f1e8; }
body[data-character-game=night-post] .role-option strong { color:var(--character-accent); }
body[data-character-game=night-post] .role-option .character-portrait { width:64px; height:64px; }
body[data-character-game=night-post] :is(.role-option small,.role-bar .eyebrow,.role-bar h2 small,.pass-top,.pass-primary) { font-size:.875rem; }
body[data-character-game=night-post] .role-bar h2 { color:var(--character-accent); }
body[data-character-game=night-post] dialog { background:var(--character-bg); border:2px solid var(--character-accent); }
body[data-character-game=night-post] .help-fox .character-presence { flex-wrap:wrap; }
body[data-character-game=night-post] .finish-copy > .character-presence { margin-bottom:1rem; }
@media(max-width:780px) {
 .character-tab { gap:.4rem; padding:.45rem; }
 .character-tab.active { padding:calc(.45rem - 1px); }
 .character-tab .character-portrait { width:46px; height:46px; }
 .search-heading .character-turn { max-width:none; margin-top:.85rem; }
 .character-presence .character-portrait { width:44px; height:44px; }
 .scene-meta { margin-bottom:1.1rem; }
 .wk-layout .wk-tools { padding:.7rem; border-radius:12px; }
 body[data-character-game=night-post] .role-bar { flex-wrap:wrap; padding:.6rem; gap:.65rem; }
 body[data-character-game=night-post] .role-bar .pass-top { margin-left:auto; max-width:none; min-height:44px; }
 body[data-character-game=night-post] .role-options { grid-template-columns:1fr; }
 body[data-character-game=night-post] .role-option { padding:.75rem; }
}
@media(max-width:380px) {
 .character-tab { flex-direction:column; align-items:flex-start; }
 .character-tab small { font-size:.875rem; }
 .role-card .character-portrait { width:70px; height:70px; }
}
@media(prefers-reduced-motion:reduce) { body[data-character] { transition:none; } }
@media(forced-colors:active) { .character-tab.active { outline:2px solid Highlight; } .character-portrait { forced-color-adjust:none; } }

.character-turn[data-mood=delighted] .character-portrait { box-shadow:0 0 0 3px #f1c77d33; }
body[data-character-game=night-post] .welcome-companions { position:absolute; left:6%; right:6%; bottom:7%; padding:.8rem; border-radius:14px; background:#102c37ed; }
body[data-character-game=night-post] .welcome-companions .character-presence { margin:0; justify-content:center; flex-wrap:wrap; }
body[data-character-game=night-post] .welcome-companions .character-presence > span:last-child { flex-basis:100%; text-align:center; }
body[data-character-game=night-post] .help-fox { display:block; }
@media(max-width:780px) {
 body[data-character-game=night-post] .welcome-companions { bottom:4%; left:auto; right:4%; padding:.5rem; }
 body[data-character-game=night-post] .welcome-companions .character-presence > span:last-child { display:none; }
 body[data-character-game=night-post] .welcome-companions .character-presence { width:auto; }
}
