/* Seasonal looks (see SEASONS.md and seasons.json). Every rule is scoped to html[data-season="..."], which site/season.js
   sets in <head> before the page paints. No attribute (no season, or JavaScript off) = the normal brand, untouched.
   Ornaments are CSS backgrounds on pseudo-elements: purely decorative and never announced by screen readers. The look is
   chosen before first paint, so the ornaments that take space (scene rows, night band, bunting, dividers) never shift the page after it appears.
   Nothing here animates or transitions. No text sits on an ornament; label colours are AA (check_site measures). */
html[data-season] header.site::after,html[data-season] .hero::after,html[data-season] .hero-h1::before,html[data-season] .quiz-card::after,html[data-season] main.home::before{content:"";pointer-events:none;background:no-repeat center/contain}
html[data-season] header.site::after{position:absolute;right:1rem;bottom:-18px;width:57px;height:32px}
@media (min-width:761px){html[data-season] header.site{position:relative}}
@media (max-width:760px){html[data-season] header.site::after{right:4.4rem}
 html[data-season-group="halloween"]:has(main.home) header.site::after,html[data-season="thanksgiving"]:has(main.home) header.site::after{display:none}}
/* hero row under the headline (Thanksgiving, desktop) and corner ornament beside the headline (phone) */
@media (min-width:761px){
 html[data-season="thanksgiving"] .hero::after{display:block;margin:.5rem 0 0;width:320px;max-width:100%;height:40px;background-position:left center}}
@media (max-width:760px){
 html[data-season="halloween-e"] .hero-h1::before,html[data-season="halloween-f"] .hero-h1::before,html[data-season="halloween-mix"] .hero-h1::before{content:"";pointer-events:none;background:no-repeat center/contain;float:right;width:96px;height:96px;margin:-.2rem -.4rem .2rem .3rem}
 html[data-season="thanksgiving"] .hero-h1::before{float:right;width:72px;height:72px;margin:.1rem -.2rem .2rem .4rem}}
/* full-width illustrated scene under the hero (E, F; desktop): a grid row of its own, in place before first paint */
@media (min-width:761px){
 html[data-season="halloween-e"] .hero-wrap::after,html[data-season="halloween-f"] .hero-wrap::after,html[data-season="halloween-mix"] .hero-wrap::after{content:"";pointer-events:none;grid-column:1/-1;display:block;margin-top:-.6rem;background:no-repeat left bottom/contain}
 html[data-season="halloween-e"] .hero-wrap::after,html[data-season="halloween-mix"] .hero-wrap::after{height:170px}
 html[data-season="halloween-f"] .hero-wrap::after{height:140px}}
/* night band across the top of the home page (D); no text on it */
html[data-season="halloween-d"] main.home::before{display:block;height:150px;border-radius:12px;background-size:cover;background-position:center;margin:0 0 .8rem}
@media (max-width:760px){html[data-season="halloween-d"] main.home::before{height:112px;margin:.1rem 0 .6rem}}
/* section divider on the home page (all three looks) */
html[data-season-group="halloween"] .cats::before{content:"";pointer-events:none;display:block;height:40px;margin:0 0 .6rem}
/* page-margin ornaments on wide screens only (D bats on the left, F web on the right), never over content */
@media (min-width:1240px){html[data-season="halloween-d"] body::before,html[data-season="halloween-f"] body::before{content:"";pointer-events:none;position:absolute;background:no-repeat center/contain}
 html[data-season="halloween-d"] body::before{top:120px;left:max(4px,calc(50% - 650px));width:140px;height:220px;background-image:url(/assets/seasons/halloween/d/corner-v2.svg)}
 html[data-season="halloween-f"] body::before{top:0;right:max(0px,calc(50% - 660px));width:160px;height:230px;background-image:url(/assets/seasons/halloween/f/corner-v2.svg)}}
html[data-season] .quiz-card{position:relative}
html[data-season] .quiz-card::after{position:absolute;top:-18px;right:-10px;width:52px;height:52px}
@media print{html[data-season] header.site::after,html[data-season] .hero::after,html[data-season] .hero-h1::before,html[data-season] .quiz-card::after,html[data-season] main.home::before,html[data-season] main::before,html[data-season] .hero-wrap::after,html[data-season] .cats::before,html[data-season] body::before,html[data-season] main hr::before{display:none}
 html[data-season="halloween-e"] .hero-wrap,html[data-season="halloween-mix"] .hero-wrap{background:none}
 html[data-season="halloween-mix"] main hr,html[data-season="halloween-mix"] .guide-group+.guide-group::before{background:none}}

/* ---- Halloween D: Moonlit Night (tall night-sky band: glowing moon, many bats, fence, lit jack-o'-lanterns) ---- */
html[data-season="halloween-d"] header.site{border-bottom-width:6px;border-image:linear-gradient(90deg,#1C1622 0 70%,#5A3480 85%,#E8751A) 1}
html[data-season="halloween-d"] header.site::after{background-image:url(/assets/seasons/halloween/d/header-motif-v2.svg)}
html[data-season="halloween-d"] main.home::before{background-image:url(/assets/seasons/halloween/d/hero-desktop-v2.svg)}
@media (max-width:760px){html[data-season="halloween-d"] main.home::before{background-image:url(/assets/seasons/halloween/d/hero-mobile-v2.svg)}}
html[data-season="halloween-d"] .quiz-card::after{background-image:url(/assets/seasons/halloween/d/card-accent-v2.svg)}
html[data-season="halloween-d"] .cats::before{background:url(/assets/seasons/halloween/d/divider-v2.svg) center/170px 40px no-repeat,linear-gradient(#1C1622,#1C1622) center/100% 2px no-repeat}
html[data-season="halloween-d"] .guide-card,html[data-season="halloween-d"] .card{border-top-color:#1C1622;border-top-width:5px}
html[data-season="halloween-d"] .quiz-card{border-left-color:#5A3480}
html[data-season="halloween-d"] .badge:not(.gift):not(.first):not(.ph):not(.warn){background:#2D1D42;color:#FFD7A0}

/* ---- Halloween E: Jack-o'-Lantern Patch (pumpkin-patch scene, orange wash, thick orange-and-black stripes) ---- */
html[data-season="halloween-e"] header.site{border-bottom-width:10px;border-image:repeating-linear-gradient(-45deg,#1C1622 0 10px,#E8751A 10px 20px) 1}
html[data-season="halloween-e"] header.site::after{background-image:url(/assets/seasons/halloween/e/header-motif-v2.svg);bottom:-24px;height:40px;width:64px}
html[data-season="halloween-e"] .hero-wrap{background:linear-gradient(180deg,#FFE0C0,#FFF0DF 62%,#FFF8F1);border-radius:16px;margin:0 -1rem 1rem;padding:.9rem 1rem .3rem}
@media (max-width:760px){html[data-season="halloween-e"] .hero-wrap{border-radius:0;padding-bottom:.9rem}}
html[data-season="halloween-e"] .hero-wrap::after{background-image:url(/assets/seasons/halloween/e/hero-desktop-v2.svg)}
html[data-season="halloween-e"] .hero-h1::before{background-image:url(/assets/seasons/halloween/e/hero-mobile-v2.svg)}
html[data-season="halloween-e"] .quiz-card::after{background-image:url(/assets/seasons/halloween/e/card-accent-v2.svg)}
html[data-season="halloween-e"] .cats::before{background:url(/assets/seasons/halloween/e/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-e"] .guide-card,html[data-season="halloween-e"] .card{border-top:7px solid transparent;border-image:repeating-linear-gradient(-45deg,#1C1622 0 8px,#E8751A 8px 16px) 1}
html[data-season="halloween-e"] .quiz-card{border-left-color:#E8751A;border-left-width:6px}
html[data-season="halloween-e"] .badge:not(.gift):not(.first):not(.ph):not(.warn){background:#FFE1BF;color:#6B2A00}

/* ---- Halloween F: Haunted Cute (ghost group, big web with a dangling spider, purple bat bunting) ---- */
html[data-season="halloween-f"] header.site{border-bottom-color:#6B3FA0;border-bottom-width:5px}
html[data-season="halloween-f"] header.site::after{background-image:url(/assets/seasons/halloween/f/header-motif-v2.svg)}
html[data-season="halloween-f"] main::before,html[data-season="halloween-f"] main.home::before{content:"";pointer-events:none;display:block;height:36px;margin:-.6rem 0 .3rem;background:url(/assets/seasons/halloween/f/bunting-v2.svg) left top/120px 36px repeat-x}
html[data-season="halloween-f"] .hero-wrap::after{background-image:url(/assets/seasons/halloween/f/hero-desktop-v2.svg)}
html[data-season="halloween-f"] .hero-h1::before{background-image:url(/assets/seasons/halloween/f/hero-mobile-v2.svg)}
html[data-season="halloween-f"] .quiz-card::after{background-image:url(/assets/seasons/halloween/f/card-accent-v2.svg)}
html[data-season="halloween-f"] .cats::before{background:url(/assets/seasons/halloween/f/divider-v2.svg) center/170px 40px no-repeat,linear-gradient(#B9A3D6,#B9A3D6) center/100% 2px no-repeat}
html[data-season="halloween-f"] .guide-card,html[data-season="halloween-f"] .card{border-top-color:#6B3FA0;border-top-width:5px}
html[data-season="halloween-f"] .quiz-card{border-left-color:#6B3FA0}
html[data-season="halloween-f"] #guides-h,html[data-season="halloween-f"] #cats-h{color:#5A3390}
html[data-season="halloween-f"] .badge:not(.gift):not(.first):not(.ph):not(.warn){background:#EFE6F8;color:#4B2A73}

/* ---- Halloween MIX (the live look): one look across the site, dressed per page type by <body data-page>, which build.py
   sets at build time (seasons.tag_pages; screen only, so print stays plain): home = E's pumpkin patch; craft = the five craft/directory pages, D's moonlit
   band; content = every other page (guides, patterns, quiz, about, thanks, privacy, 404, roundups), F's ghosts, web and
   spider beside the heading. Site-wide for cohesion: E's striped header band, striped card tops, orange labels, and
   section dividers that rotate pumpkin, bat, ghost. Purple only inside the art; headings keep the brand colours. ---- */
@media screen{
html[data-season="halloween-mix"] header.site{border-bottom-width:10px;border-image:repeating-linear-gradient(-45deg,#1C1622 0 10px,#E8751A 10px 20px) 1}
html[data-season="halloween-mix"] header.site::after{background-image:url(/assets/seasons/halloween/e/header-motif-v2.svg);bottom:-24px;height:40px;width:64px}
html[data-season="halloween-mix"] body[data-page="craft"] header.site::after{background-image:url(/assets/seasons/halloween/d/header-motif-v2.svg)}
html[data-season="halloween-mix"] body[data-page="content"] header.site::after{background-image:url(/assets/seasons/halloween/f/header-motif-v2.svg)}
html[data-season="halloween-mix"] .guide-card,html[data-season="halloween-mix"] .card{border-top:7px solid transparent;border-image:repeating-linear-gradient(-45deg,#1C1622 0 8px,#E8751A 8px 16px) 1}
html[data-season="halloween-mix"] .quiz-card{border-left-color:#E8751A;border-left-width:6px}
html[data-season="halloween-mix"] .quiz-card::after{background-image:url(/assets/seasons/halloween/e/card-accent-v2.svg)}
html[data-season="halloween-mix"] .badge:not(.gift):not(.first):not(.ph):not(.warn){background:#FFE1BF;color:#6B2A00}
/* home: E's jack-o'-lantern patch on the orange wash; the one divider is a bat (pumpkins are already right above it) */
html[data-season="halloween-mix"] .hero-wrap{background:linear-gradient(180deg,#FFE0C0,#FFF0DF 62%,#FFF8F1);border-radius:16px;margin:0 -1rem 1rem;padding:.9rem 1rem .3rem}
@media (max-width:760px){html[data-season="halloween-mix"] .hero-wrap{border-radius:0;padding-bottom:.9rem}}
html[data-season="halloween-mix"] .hero-wrap::after{background-image:url(/assets/seasons/halloween/e/hero-desktop-v2.svg)}
html[data-season="halloween-mix"] .hero-h1::before{background-image:url(/assets/seasons/halloween/e/hero-mobile-v2.svg)}
html[data-season="halloween-mix"] .cats::before{background:url(/assets/seasons/halloween/d/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
/* craft and directory pages: D's moonlit night band at the top (no text on it), margin bats on wide screens */
html[data-season="halloween-mix"] body[data-page="craft"] main::before{content:"";pointer-events:none;display:block;height:150px;border-radius:12px;margin:0 0 .8rem;background:url(/assets/seasons/halloween/d/hero-desktop-v2.svg) center/cover no-repeat}
@media (max-width:760px){html[data-season="halloween-mix"] body[data-page="craft"] main::before{height:112px;margin:.1rem 0 .6rem;background-image:url(/assets/seasons/halloween/d/hero-mobile-v2.svg)}}
@media (min-width:1240px){html[data-season="halloween-mix"] body[data-page="craft"]::before{content:"";pointer-events:none;position:absolute;top:120px;left:max(4px,calc(50% - 650px));width:140px;height:220px;background:url(/assets/seasons/halloween/d/corner-v2.svg) no-repeat center/contain}}
/* reading pages: ghosts with a corner web and dangling spider, floated beside the breadcrumb and heading; text flows around it */
html[data-season="halloween-mix"] body[data-page="content"] .guide-link{display:flow-root}
html[data-season="halloween-mix"] body[data-page="content"] main::before{content:"";pointer-events:none;float:right;width:240px;height:130px;margin:-.4rem -.6rem .4rem 1rem;background:url(/assets/seasons/halloween/mix/ghost-corner-v1.svg) right top/contain no-repeat}
@media (max-width:760px){html[data-season="halloween-mix"] body[data-page="content"] main::before{width:96px;height:96px;margin:-.3rem -.4rem .2rem .5rem;background-image:url(/assets/seasons/halloween/f/hero-mobile-v2.svg)}}
/* rotating section dividers: pumpkin, bat, ghost, in page order (guide and pattern page breaks; guide groups on /guides/) */
html[data-season="halloween-mix"] body[data-page="content"] main hr{border:0;height:40px;margin:1.6rem 0;background:url(/assets/seasons/halloween/e/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-mix"] body[data-page="content"] main hr:nth-of-type(3n+2){background:url(/assets/seasons/halloween/d/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-mix"] body[data-page="content"] main hr:nth-of-type(3n){background:url(/assets/seasons/halloween/f/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-mix"] .guide-group+.guide-group::before{content:"";pointer-events:none;display:block;height:40px;margin:0 0 1rem;background:url(/assets/seasons/halloween/e/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-mix"] .guide-group:nth-of-type(3n+2)+.guide-group::before{background:url(/assets/seasons/halloween/d/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
html[data-season="halloween-mix"] .guide-group:nth-of-type(3n)+.guide-group::before{background:url(/assets/seasons/halloween/f/divider-v2.svg) center/170px 40px no-repeat,repeating-linear-gradient(-45deg,#1C1622 0 6px,#E8751A 6px 12px) center/100% 4px no-repeat}
}

/* ---- Thanksgiving: Harvest Hearth (autumn leaves and pumpkins; simple, enabled:false until approved) ---- */
html[data-season="thanksgiving"] header.site{border-image:linear-gradient(90deg,#E5AC3A,#D9762B 55%,#A84428) 1}
html[data-season="thanksgiving"] header.site::after{background-image:url(/assets/seasons/thanksgiving/header-motif-v1.svg)}
html[data-season="thanksgiving"] .hero::after{background-image:url(/assets/seasons/thanksgiving/hero-desktop-v1.svg)}
html[data-season="thanksgiving"] .hero-h1::before{background-image:url(/assets/seasons/thanksgiving/hero-mobile-v1.svg)}
html[data-season="thanksgiving"] .quiz-card::after{background-image:url(/assets/seasons/thanksgiving/card-accent-v1.svg)}
html[data-season="thanksgiving"] .guide-card,html[data-season="thanksgiving"] .card{border-top-color:#D9762B}
html[data-season="thanksgiving"] .quiz-card{border-left-color:#D9762B}
html[data-season="thanksgiving"] .badge:not(.gift):not(.first):not(.ph):not(.warn){background:#FBE3CC;color:#7A3412}

/* ---- Placeholders (minimal: header rule colour + one small motif; not polished, enabled:false in seasons.json) ---- */
html[data-season="christmas"] header.site{border-bottom-color:#4E6E8E}
html[data-season="christmas"] header.site::after{background-image:url(/assets/seasons/christmas/header-motif-v1.svg)}
html[data-season="valentines"] header.site{border-bottom-color:#A84B5C}
html[data-season="valentines"] header.site::after{background-image:url(/assets/seasons/valentines/header-motif-v1.svg)}
html[data-season="stpatricks"] header.site{border-bottom-color:#4F7A3A}
html[data-season="stpatricks"] header.site::after{background-image:url(/assets/seasons/stpatricks/header-motif-v1.svg)}
