/* Sunshine's small color system: lively frames, quiet paper for the artwork. */
.sunshine-theme {
  --scene:#2857a4; --scene-deep:#203453; --scene-soft:#eaf2ff; --scene-pop:#f6be46;
  --scene-line:#cad8ef; --scene-paper:#fffdf8;
  --primary-color:var(--scene); --accent-color:var(--scene); --text:var(--scene-deep);
  --brand-navy:var(--scene-deep); --headline:var(--scene-deep);
  background:radial-gradient(ellipse at 0 0,var(--scene-soft),transparent 58%),#fffcf5;
  color:var(--scene-deep);
}
.sunshine-theme[data-palette="rose"] { --scene:#a53566; --scene-deep:#552a49; --scene-soft:#ffedf2; --scene-pop:#ffbf8e; --scene-line:#e8bcd1; }
.sunshine-theme[data-palette="mint"] { --scene:#146d60; --scene-deep:#204741; --scene-soft:#e5f7ef; --scene-pop:#f3c95b; --scene-line:#afd9cb; }
.sunshine-theme[data-palette="violet"] { --scene:#7042a4; --scene-deep:#372b55; --scene-soft:#f0eafa; --scene-pop:#edbd65; --scene-line:#d5c5e8; }
.sunshine-theme[data-palette="orange"] { --scene:#ab491d; --scene-deep:#593629; --scene-soft:#fff0df; --scene-pop:#f7c647; --scene-line:#ebc5aa; }
.sunshine-theme[data-palette="teal"] { --scene:#17667d; --scene-deep:#224655; --scene-soft:#e4f6fa; --scene-pop:#ffb786; --scene-line:#b7dce2; }
.sunshine-theme :is(h1,h2,h3) { text-wrap:balance; }
.sunshine-theme :focus-visible { outline-color:var(--scene); outline-offset:4px; }
.sunshine-theme :is(.card,.creator-card,.book-card,.Pack-card,.details-section) {
  border-color:var(--scene-line); border-radius:20px; background-color:#fffefa;
  box-shadow:0 5px 0 var(--scene-soft),0 8px 24px #25365308;
}
.sunshine-theme :is(.button,.cta,.btn,.home-btn,.school-btn,.next-btn,.more-btn) {
  border-radius:12px; border:1px solid transparent; background:var(--scene); color:#fff;
  box-shadow:0 3px 0 var(--scene-deep); text-shadow:none; text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.sunshine-theme :is(.button,.cta,.btn,.home-btn,.school-btn,.next-btn,.more-btn):hover {
  background:var(--scene-deep); color:#fff; transform:translateY(-2px); box-shadow:0 5px 0 var(--scene-line);
}
.sunshine-theme :is(.button,.cta,.btn,.home-btn,.school-btn,.next-btn,.more-btn):active { transform:translateY(2px); box-shadow:none; }
.sunshine-theme > header:not(.reader-header), .sunshine-theme header.site-main-nav {
  background:linear-gradient(115deg,var(--scene-deep),var(--scene)); color:white; border-bottom:4px solid var(--scene-pop); box-shadow:none;
}
.sunshine-theme > header h1, .sunshine-theme header.site-main-nav h1 { color:#fff6d9; text-shadow:none; }
.sunshine-theme > header .home-btn { background:#fff7e7; color:var(--scene-deep); box-shadow:0 3px 0 #00000022; }
.sunshine-theme > footer { background:var(--scene-deep); color:#fff8e9; border-top:4px solid var(--scene-pop); box-shadow:none; }
.sunshine-theme > footer a { color:#ffdb87; }
.sunshine-theme .gallery-thumb { border:5px solid white; border-radius:14px; box-shadow:0 3px 0 var(--scene-line); }

/* Home: sunshine yellow, sky blue, a little strawberry and mint. */
.site-home.sunshine-theme { background:radial-gradient(ellipse at 0 0,#e4f4ff,transparent 26%),radial-gradient(ellipse at 100% 40%,#fff0db,transparent 35%),#fffcf5; }
.site-home.sunshine-theme .hero-banner {
  isolation:isolate; overflow:hidden; background:linear-gradient(120deg,#fff2c6,#fffdf5 58%,#e8f5ff);
  border:2px solid #294e78; border-radius:28px 28px 60px 28px; box-shadow:7px 7px 0 #bcdcf0;
}
.site-home.sunshine-theme .hero-banner::before, .site-home.sunshine-theme .hero-banner::after { content:""; position:absolute; pointer-events:none; z-index:-1; }
.site-home.sunshine-theme .hero-banner::before { width:125px; height:125px; right:-30px; top:-35px; border:22px solid #f8cb65; border-radius:50%; opacity:.6; }
.site-home.sunshine-theme .hero-banner::after { width:110px; height:110px; left:-30px; bottom:-40px; background:radial-gradient(#4c9ca866 1.5px,transparent 2px); background-size:12px 12px; transform:rotate(-12deg); }
.site-home.sunshine-theme .hero-content h2 { color:#24466f; text-shadow:2px 3px 0 #fff; letter-spacing:-.045em; }
.site-home.sunshine-theme .hero-cta { background:#b9413d; box-shadow:0 4px 0 #793432 !important; }
.site-home.sunshine-theme .hero-content > button { background:#fffefa; color:#28517b; border:1px solid #a8c2dc; box-shadow:0 3px 0 #c5d8ea; margin-left:8px; }
.site-home.sunshine-theme .lore-card { background:#eaf5ff; border:1px solid #abcbe7; border-top:5px solid #5c95ca; }
.site-home.sunshine-theme .lore-card:nth-child(2) { background:#fff0e9; border-color:#f1c9b8; border-top-color:#d88163; }
.site-home.sunshine-theme .lore-card:nth-child(3) { background:#eaf6ec; border-color:#b6d9c1; border-top-color:#55a477; }
.site-home.sunshine-theme .lore-card h3 { color:#2c557e; }
.site-home.sunshine-theme .lore-card:nth-child(2) h3 { color:#974c33; }
.site-home.sunshine-theme .lore-card:nth-child(3) h3 { color:#286348; }
.site-home.sunshine-theme :is(.comic,.creators h2) { color:#26476e; }
.site-home.sunshine-theme .comic::after { content:""; display:block; height:5px; width:65px; background:#e6a645; border-radius:10px; margin-top:10px; }
.site-home.sunshine-theme .book-card { border:1px solid var(--scene-line); border-bottom:5px solid #82b7dc; }
.site-home.sunshine-theme .comic-cover { background:#edf4fa; border-radius:14px; }
.site-home.sunshine-theme .creator-card:nth-child(2n) { background:#fff5ee; border-color:#eccbb6; }
.site-home.sunshine-theme .creator-card:nth-child(3n) { background:#eff8ee; border-color:#bfdac0; }
.site-home.sunshine-theme .creator-card img { border:3px solid white; box-shadow:0 0 0 2px #c4d7e7; }
.site-home.sunshine-theme .scrollbox { border:2px solid #aac8df; background:#eef6ff; box-shadow:5px 5px 0 #d4e5f2; }
.site-home.sunshine-theme .slide-caption { background:#21446aee; border:1px solid #acc9e4; }
.site-home.sunshine-theme .saver-buddies { background:linear-gradient(115deg,#eaf8f2,#f8fffa); border:1px solid #a6d4be; border-bottom:5px solid #70b696; }
.site-home.sunshine-theme .saver-content h2 { color:#286850; }
.site-home.sunshine-theme .puzzle-section { background:#f2eefd; border:1px solid #d3c1ee; border-top:5px solid #ac8fd0; }
.site-home.sunshine-theme #fun-zone { background:#fff4d0; border:2px dashed #daaa47; }
.site-home.sunshine-theme :is(#slap-dod,#rangtop-wisdom) { background:#fffaf0; border:1px solid #e8c575; }
.site-home.sunshine-theme .fanart > .card { background:#edf5fb; border-color:#c2d8e9; }
.site-home.sunshine-theme .fanart .card .card:nth-child(3) { background:#fff2eb; border-color:#edd4c2; }
.site-home.sunshine-theme .fanart .card .card:nth-child(4) { background:#f1edfa; border-color:#d8cbea; }
.site-home.sunshine-theme .top-strip { background:#ffe197; color:#233e61; }
.site-home.sunshine-theme .top-strip a { color:#723710 !important; }
.site-home.sunshine-theme .header-logo { border:2px solid #ffdf98; }
.site-home.sunshine-theme .dropdown-content { background:#fffdf6; border:2px solid #adc6e0; box-shadow:5px 5px 0 #19345322; }

/* Catalogs share structure, but each collection has its own visual identity. */
.site-catalog.sunshine-theme :is(header.site,header.site-hero) { padding:28px; border:1px solid var(--scene-line); border-bottom:5px solid var(--scene-pop); border-radius:24px; background:linear-gradient(120deg,var(--scene-soft),#fffaf0); }
.site-catalog.sunshine-theme .title-block h2 { color:var(--scene-deep); font-size:clamp(27px,4vw,40px); letter-spacing:-.04em; }
.site-catalog.sunshine-theme .search { background:white; border:1px solid var(--scene-line); border-radius:12px; padding:4px 10px; }
.site-catalog.sunshine-theme .search input { color:#24364c; }
.site-catalog.sunshine-theme .filter { min-height:42px; background:#fffdf8; border:1px solid var(--scene-line); color:var(--scene-deep); }
.site-catalog.sunshine-theme .filter.active { background:var(--scene); color:white; box-shadow:0 3px 0 var(--scene-deep); }
.site-catalog.sunshine-theme .badge { position:static; align-self:flex-start; width:fit-content; max-width:100%; background:var(--scene-soft); color:var(--scene-deep); box-shadow:none; border:1px solid var(--scene-line); font-size:11px; }
.site-catalog.sunshine-theme .book-card { border:1px solid var(--scene-line); border-bottom:5px solid var(--scene-pop); padding:20px; }
.site-catalog.sunshine-theme .book-title { color:var(--scene-deep); }
.site-catalog.sunshine-theme .book-desc { color:#526174; }
.site-catalog.sunshine-theme .pill { background:var(--scene-soft); color:var(--scene-deep); border:1px solid var(--scene-line); }
.site-catalog.sunshine-theme .coming-soon { border-style:dashed; box-shadow:none; }
.site-catalog.sunshine-theme .comic-cover { background:var(--scene-soft); box-shadow:none; border:1px solid var(--scene-line); }

/* Origin: a mint adventure journal, with subtle ruled-paper lines. */
.sunshine-theme.theme-origin { --scene:#176c68; --scene-deep:#204b49; --scene-soft:#e7f6ee; --scene-pop:#e6b64e; --scene-line:#b5d8cc; }
.theme-origin.site-catalog { background:linear-gradient(#fffdf4e8,#fffdf4e8),repeating-linear-gradient(0deg,#a4cdc0 0 1px,transparent 1px 28px); }
.theme-origin.site-catalog header.site { background:repeating-linear-gradient(0deg,transparent 0 27px,#81b8a519 27px 28px),#e6f5ea; border-radius:8px 28px 28px 8px; border-left:7px solid #398275; border-bottom:1px solid #b5d8cc; box-shadow:5px 5px 0 #d6e6db; }
.theme-origin.site-catalog .book-card { border-radius:8px 20px 20px 8px; border-left:5px solid #549a87; border-bottom:1px solid #b5d8cc; }
.theme-origin.site-catalog .badge { border-radius:5px; background:#ffe8a2; border-color:#dcc073; transform:rotate(-2deg); }

/* Special Edition: plum, cream and gold; double borders like a keepsake book. */
.sunshine-theme.theme-special { --scene:#674494; --scene-deep:#33224f; --scene-soft:#f2eafb; --scene-pop:#edc26b; --scene-line:#d4bfdf; }
.theme-special.site-catalog { background:radial-gradient(ellipse at 100% 0,#ead8f2,transparent 55%),#fcf8f0; }
.theme-special.site-catalog header.site-hero { background:radial-gradient(ellipse at 100% 0,#79598a,transparent 70%),#35254e; border:1px solid #dab266; border-bottom:5px solid #dcb463; box-shadow:0 8px 28px #40234b16; }
.theme-special.site-catalog .site-hero .title-block h2 { color:#ffe4a5; background:none; -webkit-text-fill-color:#ffe4a5; font-family:Georgia,"Times New Roman",serif; font-weight:700; letter-spacing:0; }
.theme-special.site-catalog .site-hero .title-block p { color:#f1e6f7; }
.theme-special.site-catalog .site-hero .filter { border-color:#ad8dbf; }
.theme-special.site-catalog .site-hero .filter.active { color:#39264f; background:#ffe1a0; border-color:#ffe1a0; box-shadow:0 3px 0 #20162e; }
.theme-special.site-catalog .book-card { border:3px double #bb9252; background:#fffaf0; border-radius:24px 24px 8px 8px; box-shadow:0 6px 0 #eadcc2; }
.theme-special.site-catalog .badge { background:#f3dfac; border-color:#d6b878; color:#543d21; letter-spacing:.08em; }
.theme-special.site-catalog .book-title { font-family:Georgia,"Times New Roman",serif; font-size:24px; }
.theme-special.site-catalog .comic-cover { background:#f1e7da; border:1px solid #dac8a5; }

/* The collection identity follows its cards back onto the home/library pages. */
.sunshine-theme .book-card[data-edition="special"], .sunshine-theme .Pack-card[data-pack="special"] { border:3px double #b98f47; background:linear-gradient(140deg,#fff9e9,#f6effa); box-shadow:0 5px 0 #e5d7b9; }
.sunshine-theme .book-card[data-edition="special"] :is(h3,.book-title), .sunshine-theme .Pack-card[data-pack="special"] :is(h3,.book-title) { color:#583775; }
.sunshine-theme .book-card[data-edition="special"] :is(.cta,.button), .sunshine-theme .Pack-card[data-pack="special"] .cta { background:#674494; color:white; box-shadow:0 3px 0 #3b2851; }
.sunshine-theme .book-card[data-edition="special"] .badge { background:#f4e0ab; color:#65471d; border:1px solid #d6b26b; }
.sunshine-theme .Pack-card[data-pack="origin"] { border-radius:8px 22px 22px 8px; border-left:6px solid #3c8b77; background:#eff9f2; }
.sunshine-theme .Pack-card[data-pack="origin"] :is(h3,.book-title) { color:#23695b; }
.sunshine-theme .Pack-card[data-pack="origin"] .cta { background:#176c68; color:white; box-shadow:0 3px 0 #204b49; }
.sunshine-theme .Pack-card[data-pack="origin"] .comic-cover { background:#e1f1df !important; }
.sunshine-theme .Pack-card[data-pack="special"] .comic-cover { background:#f1e5f6 !important; }

/* Character biographies, creators, schools and art all keep their own accents. */
.theme-character .character-page { border:1px solid var(--scene-line); border-top:6px solid var(--scene); border-radius:24px; box-shadow:6px 6px 0 var(--scene-soft); background:#fffdfa; }
.theme-character .character-hero { background:linear-gradient(120deg,var(--scene-soft),#fffaf0); border-radius:18px; padding:24px; }
.theme-character .character-hero img { border-color:var(--scene); box-shadow:5px 5px 0 var(--scene-line); }
.theme-character .character-hero :is(h1,h2) { color:var(--scene-deep); text-shadow:none; }
.theme-character .details-section { border-top:3px solid var(--scene-line); padding:20px; }
.theme-character .details-section h3 { color:var(--scene); border-bottom-color:var(--scene-line); }
.theme-profile .container { border:1px solid var(--scene-line); border-radius:26px; overflow:hidden; background:#fffdf8; box-shadow:6px 6px 0 var(--scene-line); }
.theme-profile .profile-side { background:linear-gradient(160deg,var(--scene-soft),#fff4d3); border-right:1px dashed var(--scene-line); }
.theme-profile .avatar { border:4px solid white; box-shadow:0 0 0 3px var(--scene-line); }
.theme-profile .site-header { background:var(--scene-soft); border:1px solid var(--scene-line); border-radius:18px; padding:22px; }
.theme-profile :is(.site-title,.person-title-jai,.person-title,.bio-title h2) { color:var(--scene-deep); }
.theme-profile .card { border-top:4px solid var(--scene-line); }
.theme-profile .site-sub { color:#536170; }
.theme-gallery .page > header { background:var(--scene-soft); border:1px solid var(--scene-line); border-bottom:5px solid var(--scene-pop); border-radius:20px; padding:24px; }
.theme-gallery .title-block h1 { color:var(--scene-deep); text-shadow:none; }
.theme-gallery .gallery-grid { gap:20px; background:transparent; }
.theme-gallery .gallery-thumb { border:7px solid white; box-shadow:0 4px 0 var(--scene-line),0 8px 22px #2536530b; }
.theme-school .page { background:#fffdf8; border:1px solid var(--scene-line); border-radius:24px; box-shadow:6px 6px 0 var(--scene-soft); }
.theme-school header.top { background:var(--scene-soft); border-bottom:4px solid var(--scene-pop); border-radius:18px; }
.theme-school .top .title-block h1 { color:var(--scene-deep); text-shadow:none; }
.sunshine-theme .home-btn svg { color:inherit; }
.theme-school :is(.fact,.program,.facility) { background:var(--scene-soft); border:1px solid var(--scene-line); border-radius:14px; }
.theme-school :is(.fact strong,.program h3,.facility h3) { color:var(--scene); }
.theme-game :is(.gallery .card,#panel) { background:#fffcf4; border:2px solid var(--scene-line); border-bottom:5px solid var(--scene-pop); border-radius:20px; }
.theme-game #choices button { background:var(--scene); color:white; border-radius:12px; border:0; min-height:44px; box-shadow:0 3px 0 var(--scene-deep); }
.theme-puzzle { background:radial-gradient(circle at 0 0,var(--scene-soft),transparent 65%),#fffcf5; }
.theme-puzzle .preview { border:5px solid white; border-radius:16px; box-shadow:0 3px 0 var(--scene-line); }
.theme-puzzle .dropzone { background:var(--scene-soft); border-color:var(--scene-line); }
.theme-puzzle .dropzone.success { border-color:var(--scene); background:white; }
.theme-puzzle :is(h2,header) { color:var(--scene-deep); }
.theme-landing .nav-link { border:2px solid #f5ce64; border-radius:18px; background:#fffaf1ed; color:#254869; box-shadow:6px 6px 0 #214368; }
.sunshine-theme.theme-landing { background:linear-gradient(#17395535,#17395535),url('../images/SBDP.jpg') center / cover fixed; }

/* Readers: colored book covers around untouched, neutral artwork. */
.theme-reader { --ink:var(--scene-deep); --paper:#fffdf8; --accent:var(--scene); }
.theme-reader .reader-header { background:linear-gradient(110deg,var(--scene-deep),var(--scene)); border-bottom:4px solid var(--scene-pop); }
.theme-reader .reader-heading { padding:10px 0 16px; }
.theme-reader .reader-eyebrow { color:var(--scene); font-weight:800; }
.theme-reader .reader-stage { background:var(--scene-soft); border:1px solid var(--scene-line); border-bottom:5px solid var(--scene-line); border-radius:18px; box-shadow:0 10px 30px #2536530a; }
.theme-reader .reader-page { box-shadow:0 2px 12px #17213b15; }
.theme-reader :is(button,select) { border-color:var(--scene-line); }
.theme-reader .reader-controls button { background:#fffdf8; box-shadow:0 3px 0 var(--scene-line); }
.theme-reader .reader-controls button:last-child { background:var(--scene); color:white; box-shadow:0 3px 0 var(--scene-deep); }
.theme-reader .reader-controls button:hover:not(:disabled) { background:var(--scene-deep); color:white; }
.theme-reader .reader-progress { accent-color:var(--scene); }
.theme-reader .reader-shell:fullscreen { background:#fffaf2; }
.theme-reader.theme-origin .reader-stage { border-left:6px solid var(--scene); border-radius:8px 18px 18px 8px; }
.theme-reader[data-comic="bookB"] { --scene:#8a4771; --scene-deep:#56334d; --scene-soft:#f9ecf1; --scene-line:#ddbdd0; --scene-pop:#ecc271; }
.theme-reader[data-comic="bookC"] { --scene:#27695c; --scene-deep:#294f45; --scene-soft:#edf6e6; --scene-line:#b3cfa9; --scene-pop:#e9bd5f; }
.theme-reader.theme-special .reader-stage { border:3px double #b99550; background:linear-gradient(135deg,#f6edd8,var(--scene-soft)); box-shadow:0 5px 0 #e3d3b5; }
.theme-reader.theme-special h1 { font-family:Georgia,"Times New Roman",serif; font-weight:700; }
.theme-reader.theme-special .reader-eyebrow { color:#76541f; letter-spacing:.18em; }
.theme-reader.theme-special .reader-header { border-bottom-color:#e2bd6d; }
.sunshine-theme.theme-paradise { --scene:#167eae; --scene-deep:#163b68; --scene-soft:#e3f8fa; --scene-pop:#ffce61; --scene-line:#83c9d4; }
.theme-reader.theme-paradise { background:radial-gradient(circle at 15% 10%,#ddfff4,transparent 40%),radial-gradient(circle at 85% 5%,#dce8ff,transparent 40%),#f5fcff; }
.theme-reader.theme-paradise .reader-stage { border:3px solid #53b5cb; background:linear-gradient(135deg,#d9f7fa,#fff3cc); box-shadow:0 6px 0 #b2e5e8; }
.theme-reader.theme-paradise .reader-header { border-bottom-color:#ffce61; }
.theme-reader.theme-paradise .reader-eyebrow { color:#176e83; }

@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .sunshine-theme :is(.book-card,.Pack-card):hover { transform:translateY(-5px); }
  .theme-gallery .gallery-thumb:nth-child(3n+1):hover { transform:rotate(-1deg) translateY(-3px); }
  .theme-gallery .gallery-thumb:nth-child(3n+2):hover { transform:rotate(1deg) translateY(-3px); }
}
@media(max-width:650px) {
  .site-home.sunshine-theme .hero-banner { border-radius:22px 22px 38px 22px; box-shadow:4px 4px 0 #bcdcf0; }
  .site-home.sunshine-theme .hero-content > button { margin-left:0; }
  .site-catalog.sunshine-theme :is(header.site,header.site-hero) { padding:20px 16px; }
  .theme-character .character-hero, .theme-gallery .page > header { padding:18px; }
  .theme-profile .container, .theme-school .page { box-shadow:0 4px 0 var(--scene-line); }
  .theme-reader .reader-stage { border-radius:12px; }
}
@media(prefers-reduced-motion:reduce) { .sunshine-theme *, .sunshine-theme *::before, .sunshine-theme *::after { animation:none !important; transition:none !important; } }
