/* Child skin only: no geometry, typography, layout, content, or illustration filters. */
body[data-halloween-variant] .hero-base{content:normal}
body[data-halloween-variant]{--paper:#171c35;--ink:#f3eadc;--muted:#c0bfd2;--gold:#ccb9ef;--orange:#d7c4f3;--ui-paper:var(--paper);--ui-ink:var(--ink);--ui-muted:var(--muted);--ui-line:#454661;--ui-gold:var(--gold);--hw-panel:#252a46;--hw-hover:#343655;--hw-button-ink:#25243a;--hw-hero-shade:#171a386b;--hw-line:#454661;background-color:var(--paper);color:var(--ink)}
body[data-halloween-variant=b]{--paper:#2a1e30;--ink:#fff0d9;--muted:#d6bdc9;--gold:#edba7e;--orange:#f3c68e;--ui-line:#654659;--hw-panel:#39283d;--hw-hover:#4b3447;--hw-button-ink:#372130;--hw-hero-shade:#30183262;--hw-line:#654659}
body[data-halloween-variant=c]{--paper:#152639;--ink:#edf1ed;--muted:#bdcbd9;--gold:#c9dcec;--orange:#d3e4f3;--ui-line:#425b73;--hw-panel:#21364b;--hw-hover:#2c4860;--hw-button-ink:#1b3044;--hw-hero-shade:#122d4655;--hw-line:#425b73}
body[data-halloween-variant] :is(.primary){background-color:var(--gold);color:var(--hw-button-ink)}
body[data-halloween-variant] .primary:hover{background-color:var(--orange)}
body[data-halloween-variant] :is(.secondary,.tag,.panel,.place-panel,.story-card,.event-card,.invitation,.voyage-reply,.close,.atlas-filter,.atlas-place,.atlas-label-toggle,.atlas-empty,.atlas-back,.dot-title){background-color:var(--hw-panel);color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant] :is(.text-link,.atlas-directory a,.atlas-directory button,.atlas-tales a,.atlas-dismiss,.atlas-back,.atlas-filter button,.atlas-label-toggle,.atlas-top h1,.atlas-top h2){color:var(--ink)}
body[data-halloween-variant] :is(.text-link,.painted-choice,.atlas-tales a,footer){border-color:var(--hw-line)}
body[data-halloween-variant] :is(.text-link:hover,.painted-choice[aria-pressed=true] strong,.header nav a:hover,footer a:hover){color:var(--orange)}
body[data-halloween-variant] :is(.painted-choice[aria-pressed=true],.site-header>nav>a[aria-current=page]){border-color:var(--orange)}
body[data-halloween-variant] :is(.atlas-place .atlas-overline,.atlas-tales small,.atlas-directory summary span,.atlas-count){color:var(--muted)}
body[data-halloween-variant] :is(.site-pocket a:hover,.site-header .child-news-button:hover,.atlas-filter button[aria-pressed=true],.atlas-back:hover,.atlas-tales .atlas-visit:hover){background-color:var(--hw-hover);color:var(--ink)}
body[data-halloween-variant] .atlas-tales a.atlas-visit{background-color:var(--hw-panel);border-color:var(--hw-line);color:var(--ink)}
body[data-halloween-variant] .atlas-marker>span{background-color:var(--hw-panel);color:var(--ink)}
body[data-halloween-variant] .hero{background-color:var(--paper)}
body[data-halloween-variant] .hero::after{background:linear-gradient(90deg,var(--hw-hero-shade),transparent 70%)}
@media(max-width:800px){
 body[data-halloween-variant] .hero::after{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 90%,transparent) 0,color-mix(in srgb,var(--paper) 70%,transparent) 45%,transparent 78%)}
}
/* Story paper stays light by default; pictures are always original and unfiltered. */
body[data-halloween-variant] :is(.book,.reader-paper,.story-paper,.public-excerpt){--ink:#203c35;--muted:#59675a;--ui-ink:#214b4b;--ui-muted:#68766b;color:#203c35}
/* Native atlas action cards are light CTAs, including their title, subtitle and arrow. */
body[data-halloween-variant] .atlas-place a.atlas-visit{background-color:var(--gold);border-color:var(--gold);color:var(--hw-button-ink)}
body[data-halloween-variant] .atlas-place a.atlas-visit:hover{background-color:var(--orange);border-color:var(--orange);color:var(--hw-button-ink)}
body[data-halloween-variant] .atlas-place a.atlas-visit :is(span,small,strong),
body[data-halloween-variant] .atlas-place .primary :is(span,small,strong){color:var(--hw-button-ink)}
body[data-halloween-variant] .atlas-place .child-unvisited,
body[data-halloween-variant] .atlas-place .child-unvisited>p{color:var(--muted)}


/* Shared page surfaces. Native typography, placement and all raster art remain intact. */
body[data-halloween-variant]{--sea:var(--orange);--line:var(--hw-line);--scroll-track:var(--paper);--scroll-thumb:var(--hw-line);--scroll-thumb-hover:var(--muted)}
body[data-halloween-variant] :is(.chronicle,.chronicle .map-viewport,.chronicle .map-canvas,.event-chronicle,.reader-dashboard,.collection-page,.catalog-prose){background-color:var(--paper);color:var(--ink)}
body[data-halloween-variant] :is(.chronicle-heading,.chronicle-act.halloween header){background:transparent}
body[data-halloween-variant] .event-chronicle{background-image:linear-gradient(var(--paper),color-mix(in srgb,var(--paper) 75%,transparent),var(--paper)),url('assets/skins/halloween/forest-v2.png')}
body[data-halloween-variant] .halloween-preview{--ui-ink:var(--ink);--ui-muted:var(--muted);--event-paper:var(--paper);--event-accent:var(--orange);--event-border:var(--hw-line);--event-shadow:#08091566;background-color:var(--paper);color:var(--ink)}
body[data-halloween-variant] .halloween-preview::after{background:radial-gradient(ellipse at 50% 48%,color-mix(in srgb,var(--paper) 96%,transparent) 25%,color-mix(in srgb,var(--paper) 85%,transparent) 58%,color-mix(in srgb,var(--paper) 33%,transparent) 85%,transparent)}
body[data-halloween-variant] :is(.chronicle-card,.chronicle-card.ahead,.chronicle-card.sealed,.chronicle-controls,.event-story,.book-spread,.reader-book-home .dashboard-top,.stars-book,.account-return-layout,.account-save-status,.peek-treasure,.child-feedback,.child-result-card,.child-news,.completion.child-completion,.entry-road,.journey-help,.journey-finish,.wardrobe,.fit-panel,.choice,.identity-options button,.item-choice,.future-items,.road-card,.portrait-pending,.collection-workbench,.route-strip,.illustrated-neighbors a,.taste-choices button,.catalog-grid article,.story-node,.story-node.completed,.story-node.locked,.path-card.ahead,.path-card.sealed){background:var(--hw-panel);color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant] :is(.book-page.left,.stars-balance,.stars-ledger){background:transparent}
body[data-halloween-variant] .book-spread::before{background:var(--hw-line)}
body[data-halloween-variant] :is(.chronicle-art,.stage,.dashboard-cover,.reader-book-home .dashboard-feature-art,.reader-book-home .dashboard-next .dashboard-cover img,.reader-book-home .dashboard-feature-art img){background-color:var(--hw-panel);border-color:var(--hw-line)}
body[data-halloween-variant] :is(.chronicle-heading h1,.chronicle-act header,.chronicle-act.winter h2,.chronicle-act.autumn h2,.event-heading h1,.reader-dashboard,.stars-tally b,.fit-panel summary,.catalog-prose,.portrait-back,.book-page .role){color:var(--ink)}
body[data-halloween-variant] :is(.chronicle-heading>span,.act-kicker,.chronicle-card small,.chronicle-seal,.chronicle-controls #zoom-label,.chronicle-hint,.peek-people>span,.peek-treasures small,.peek-unwritten p,.peek-unavailable,.event-heading p,.event-story p,.story-marks>span,.path-tabs a,.collection-tabs a,.portrait-toolbar,.page-label,.page-foot,.meeting-card span,.collection-footer,.item-origin small,.item-use p,.catalogue-note,.future-items ul,.reward-choice small,.collection-hint,.family-intro,.family-footnote,.portrait-heading p,.portrait-footnote,.wardrobe-footer,.heading p:not(.eyebrow),.portrait-label,.quiet,.outfit-caption span:last-child,.wardrobe-heading>span,.status,.catalog-grid p,.dashboard-address p,.dashboard-muted,.stars-balance p,.stars-entry p,.stars-tally,.stars-ledger .stars-note,.stars-soon p,.homes-coming-heading p,.homes-coming-bottom p,.account-return-art>p,.account-local-note p,.peek-treasure small,.child-feedback p,.child-feedback-close,.child-result-card p,.child-news-close,.child-news-row span span,.child-completion>p,.child-result-more small,.child-feedback [data-child-history],.entry-road small,.story-spread .lead,.breadcrumbs,.story-facts,.benefits p,.story-node small,.season-band p,.sealed-place,.map-demo-note,.public-status){color:var(--muted)}
body[data-halloween-variant] :is(.act-numeral,.quiet-link,.item-use a,.book-navigation,.road-card span,.family-reader-state,.portrait-eyebrow,#portrait-status,.text-button,.dashboard-wallet strong,.dashboard-continue small,.dashboard-story span,.stars-kicker,.stars-total,.stars-entry>strong,.stars-soon>span,.account-kicker,.coming-soon-label,.homes-coming-heading .coming-soon-label,.achievement small,.achievement.earned small,.site-header .site-stars,.child-news-row small,.child-result-card small,.child-feedback a,.child-news-row:not(.seen) strong::after){color:var(--orange)}
body[data-halloween-variant] .dashboard-reread{color:var(--orange)!important}
body[data-halloween-variant] :is(.path-tabs a[aria-current],.collection-tabs a[aria-current],.inventory-filters button[aria-pressed=true],.person-choice[aria-pressed=true]){color:var(--orange);border-color:var(--orange)}
body[data-halloween-variant] :is(.person-choice .face,.person-choice.locked .face,.book-known-friends .face,.family-reader-face,.account-child img,.meeting-card img){background-color:var(--hw-panel)}
body[data-halloween-variant] :is(.person-choice[aria-pressed=true] .face,.family-reader:has(input:checked) .family-reader-face,.choice:hover){border-color:var(--orange)}
body[data-halloween-variant] :is(.chronicle-controls button:hover,.family-reader:hover,.item-choice:hover,.site-account .site-logout:hover,main>.site-back:hover,#tabs button:hover){background-color:var(--hw-hover);color:var(--ink)}
body[data-halloween-variant] :is(.reader-dashboard .primary,.account-return-actions .primary,.public-story .primary,.child-result-card a,.journey-help button,.avatar-motion button,.fit-actions button,.child-news-read,.deck-nav button,.season-jumps button,.find-reader){background:var(--gold);color:var(--hw-button-ink);border-color:var(--gold)}
body[data-halloween-variant] :is(.choice[aria-pressed=true],.identity-options button[aria-pressed=true],#tabs button[aria-pressed=true],#tabs button[aria-selected=true],.item-choice[aria-pressed=true],.taste-choices button[aria-pressed=true],.j-tabs button[aria-pressed=true]){background:var(--gold);color:var(--hw-button-ink);border-color:var(--gold)}
body[data-halloween-variant] .choice[aria-pressed=true]::after{color:var(--hw-button-ink)}
body[data-halloween-variant] :is(#tabs button,.fit-fields input,.fit-fields select,.family-add input,.family-add select,.name-form input,.account-page input,.account-page select,.map-tools input){color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant] :is(.fit-fields input,.fit-fields select,.family-add input,.family-add select,.name-form input,.account-page input,.account-page select){background-color:var(--hw-panel);color-scheme:dark}
body[data-halloween-variant] :is(.child-news-row,.public-benefits article,.public-related a,.map-viewport,.chronicle-card:hover,.j-tabs button,.map-tools button,#undo){border-color:var(--hw-line)}
body[data-halloween-variant] .child-news-row:not(.seen){background:linear-gradient(90deg,var(--hw-hover),transparent)}
body[data-halloween-variant] :is(.season-band,.season-band:nth-of-type(even),.season-band[class*="winter"],.season-band[class*="autumn"]){background:color-mix(in srgb,var(--hw-panel) 50%,transparent)}
body[data-halloween-variant] .path-card .node-mark{background:var(--hw-panel);color:var(--ink)}
body[data-halloween-variant] .scary-note{background:var(--hw-hover);color:var(--ink)}
body[data-halloween-variant] :is(dialog::backdrop,#story-peek::backdrop,.child-news::backdrop){background:#080b19b3}
body[data-halloween-variant] .site-pocket>div{background:var(--hw-panel);border-color:var(--hw-line)}
body[data-halloween-variant] .site-pocket :is(a,.site-logout){color:var(--ink)}
/* The actual reading leaf owns its ink tokens; only its surrounding chrome is themed. */
body[data-halloween-variant] .first20-reading{--paper:var(--story-paper,#f8efdf);--ink:var(--story-ink,#343d32);--muted:var(--story-muted,#68705d);--ui-paper:var(--story-paper,#f8efdf);--ui-ink:var(--story-ink,#343d32);--ui-muted:var(--story-muted,#68705d)}
body[data-halloween-variant] :is(.reading-bar,.reader-tools,.reading-popover){background-color:var(--hw-panel);color:#f3eadc;border-color:var(--hw-line)}
body[data-halloween-variant] :is(.reading-book-title,.reading-popover a,.reading-popover summary,.reader-tools button){color:inherit}
body[data-halloween-variant] .reading-popover select{background:var(--hw-panel);color:#f3eadc;border-color:var(--hw-line)}
/* Nested native portrait editor (the parent attaches this same stylesheet). */
body.simple-avatar[data-halloween-variant]{background:var(--paper);color:var(--ink)}
body.simple-avatar[data-halloween-variant] :is(header,.library,.properties,.workspace,.simple-avatar__actions,.avatar-part-tools,.avatar-part-tools__label,#referencePanel,.card){background:var(--hw-panel);color:var(--ink);border-color:var(--hw-line)}
body.simple-avatar[data-halloween-variant] :is(button,select,input[type=number]){background:var(--hw-panel);color:var(--ink);border-color:var(--hw-line)}
body.simple-avatar[data-halloween-variant] :is(button:hover,.layer-row.active>button:first-child){background:var(--hw-hover)}
body.simple-avatar[data-halloween-variant] :is(.primary,.simple-avatar__actions .primary,button.active,button[aria-pressed=true],.simple-avatar__category[aria-pressed=true],.simple-avatar__variants button[aria-pressed=true],.simple-avatar__subcategories button[aria-pressed=true]){background:var(--gold);color:var(--hw-button-ink);border-color:var(--gold)}
body.simple-avatar[data-halloween-variant] .card.selected{background:var(--hw-hover);border-color:var(--orange)}
body.simple-avatar[data-halloween-variant] :is(.brand,.avatar-part-tools__label){color:var(--ink)}
body.simple-avatar[data-halloween-variant] :is(.hint,#saveState,#status,details,.category-switch small,.card small,.preview-bar>div,.preview-bar p,.simple-avatar__random){color:var(--muted)}
/* Administrative surfaces use the same palette; permissions and state are untouched. */
body[data-halloween-variant] .admin-page{color:var(--ink)}
body[data-halloween-variant] .admin-page :is(.admin-table-wrap,.admin-event,button,input,select,textarea){background-color:var(--hw-panel);color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant] .admin-page th{background-color:var(--hw-hover);color:var(--ink)}
body[data-halloween-variant] .admin-page :is(th,td,.admin-child){border-color:var(--hw-line)}
body[data-halloween-variant] .admin-page :is(.admin-note,caption){color:var(--muted)}
body[data-halloween-variant] .admin-page :is(a,summary,.admin-kicker,.admin-warning){color:var(--orange)}
body[data-halloween-variant] .admin-page .admin-event-state{background-color:var(--gold);color:var(--hw-button-ink)}
body[data-halloween-variant] .admin-page button:hover{background-color:var(--hw-hover)}
body[data-halloween-variant] .admin-page progress{accent-color:var(--gold)}
body[data-halloween-variant] .admin-page :is(input,select,textarea){color-scheme:dark}
body[data-halloween-variant] .admin-page :is(button,a,summary,input,select,textarea):focus-visible{outline-color:var(--orange)}
body[data-halloween-variant] .portrait-heading h1{border-bottom-color:var(--orange)}
/* Counter ink and the root scrollbar cannot inherit their palette from a child surface. */
body[data-halloween-variant] .site-header .child-news-button>b{color:var(--hw-button-ink)}
html:has(>body[data-halloween-variant]){--scroll-track:#171c35;--scroll-thumb:#454661;--scroll-thumb-hover:#c0bfd2}
html:has(>body[data-halloween-variant=b]){--scroll-track:#2a1e30;--scroll-thumb:#654659;--scroll-thumb-hover:#d6bdc9}
html:has(>body[data-halloween-variant=c]){--scroll-track:#152639;--scroll-thumb:#425b73;--scroll-thumb-hover:#bdcbd9}
/* These raster objects were multiplied into pale paper; on a night surface that hides them. */
body[data-halloween-variant] .personal-door .door-picture>img,
body[data-halloween-variant] .personal-door .door-picture>.painted-item{mix-blend-mode:normal}
body[data-halloween-variant] .personal-door h3{color:var(--ink)}
body[data-halloween-variant] .personal-door :is(p,small){color:var(--muted)}
/* Painted edge atmosphere; animation path retained from the earlier event site. */
#halloween-child-atmosphere{position:fixed;inset:0;z-index:25;overflow:hidden;pointer-events:none}
.halloween-child-spider{position:absolute;top:-40px;left:8px;width:26px;height:34px;opacity:0;animation:halloween-child-descent 31s linear infinite;animation-delay:var(--spider-delay)}
.halloween-child-spider:nth-child(2){left:auto;right:8px;width:30px}
.halloween-child-spider:nth-child(3){left:19px;width:34px}
.halloween-child-spider:nth-child(4){left:auto;right:20px;width:28px}
.halloween-child-spider-art{position:relative;display:block;width:100%;height:auto}
.halloween-child-thread{position:absolute;left:50%;bottom:85%;width:34px;height:110vh;max-width:none;transform:translateX(-50%);object-fit:fill;animation:halloween-child-release 31s linear infinite;animation-delay:var(--spider-delay)}
#halloween-child-atmosphere.is-paused *{animation-play-state:paused}
#halloween-child-motion{position:fixed;right:12px;bottom:10px;z-index:26;padding:5px 9px;font:11px/1.4 Onest,sans-serif;border:1px solid var(--hw-line);border-radius:20px;background:var(--hw-panel);color:var(--muted)}
body.is-reading #halloween-child-atmosphere,body.is-reading #halloween-child-motion,body:has(.first20-reading) #halloween-child-atmosphere,body:has(.first20-reading) #halloween-child-motion{display:none}
@keyframes halloween-child-descent{0%{transform:translateY(0);opacity:0}5%{opacity:.8}28%{transform:translateY(24vh)}35%{transform:translateY(28vh)}90%{transform:translateY(calc(100vh + 100px)) rotate(18deg);opacity:.8}91%,100%{transform:translateY(calc(100vh + 100px)) rotate(18deg);opacity:0}}
@keyframes halloween-child-release{0%,28%{opacity:.5}32%,100%{opacity:0}}
@media(max-width:700px){.halloween-child-spider:nth-child(n+3){display:none}.halloween-child-spider{left:-8px}.halloween-child-spider:nth-child(2){right:-8px}}
@media(prefers-reduced-motion:reduce){#halloween-child-atmosphere,#halloween-child-motion{display:none}}
/* Story palettes own their reading leaf, never the shared seasonal header. */
body[data-halloween-variant]>header.site-header.site-header{--ui-paper:var(--paper);--ui-ink:var(--ink);--ui-muted:var(--muted);--ui-line:var(--hw-line);--ui-gold:var(--gold);background:var(--paper);color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant]>header.site-header.site-header :is(nav>a,.season-badge,.reader-link,.site-account summary,.site-pocket a,.site-logout){color:var(--ink)}
body[data-halloween-variant]>header.site-header.site-header .season-badge time{color:var(--muted)}
body[data-halloween-variant]>header.site-header.site-header :is(nav>a:hover,.site-stars){color:var(--orange)}
body[data-halloween-variant] .season-leaves{display:none}
/* Native roleplay chrome uses !important; override only chrome in the active child skin. */
body[data-halloween-variant]>header.site-header{background:var(--paper)!important;color:var(--ink)!important}
body[data-halloween-variant]>header.site-header :is(nav>a,.site-pocket a,.reader-link,.season-badge){color:var(--ink)!important}
body[data-halloween-variant]>header.site-header :is(nav>a:hover,.site-stars){color:var(--orange)!important}
body[data-halloween-variant] .reading-bar{background:var(--hw-panel)!important;color:#f3eadc!important}
body[data-halloween-variant] .reading-bar :is(a,summary){color:#f3eadc!important}
body[data-halloween-variant] .character-index input{color:var(--ink);border-color:var(--hw-line)}
body[data-halloween-variant] .character-index input::placeholder{color:var(--muted);opacity:1}
@media(max-width:700px){
 #halloween-child-motion{position:static;display:block;width:max-content;max-width:calc(100% - 32px);margin:16px auto}
}
@media(prefers-reduced-motion:reduce){#halloween-child-motion{display:none}}

body[data-halloween-variant]{--halloween-paper:var(--hw-panel);--halloween-ink:#f3eadc;--halloween-accent:var(--orange);--halloween-border:var(--hw-line)}
