:root {
  --ink: #17143d;
  --deep: #242056;
  --night: #100d30;
  --lavender: #9d86db;
  --lilac: #c5b6ef;
  --moon: #fff5c6;
  --gold: #efc764;
  --rose: #d999af;
  --cream: #fff9ec;
  --paper: #f7efd9;
  --sage: #8eb899;
  --white: #fffefa;
  --shadow: 0 28px 80px rgba(12, 9, 43, .22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Trebuchet MS", "Avenir Next", Avenir, sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 100; transform: translateY(-180%); background: var(--white); padding: .7rem 1rem; border-radius: 99px; }
.skip-link:focus { transform: translateY(0); }

.night-sky { position: absolute; inset: 0 0 auto; height: 850px; pointer-events: none; overflow: hidden; z-index: 1; }
.star { position: absolute; width: 4px; height: 4px; background: white; border-radius: 50%; box-shadow: 0 0 9px white; animation: twinkle 3s ease-in-out infinite; }
.star-a { left: 7%; top: 22%; }.star-b { left: 22%; top: 12%; animation-delay: -.7s; }.star-c { right: 12%; top: 19%; animation-delay: -1.4s; }
.star-d { right: 38%; top: 9%; animation-delay: -2s; }.star-e { left: 42%; top: 35%; animation-delay: -.4s; }.star-f { right: 4%; top: 48%; animation-delay: -1s; }

.site-header {
  position: absolute; z-index: 30; top: 0; left: 0; right: 0;
  max-width: 1240px; margin: 0 auto; padding: 1.5rem 2.25rem;
  display: flex; align-items: center; justify-content: space-between; color: white;
}
.site-header::after { content:""; position:absolute; left:2.25rem; right:2.25rem; bottom:0; border-bottom:1px solid rgba(255,255,255,.16); }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; line-height: 1; }
.brand-star { width: 2.55rem; height: 2.55rem; display:grid; place-items:center; color: var(--ink); background: var(--gold); border-radius:50% 50% 48% 52%; font-size:1.15rem; box-shadow:0 0 22px rgba(239,199,100,.48); }
.brand strong { display:block; font-family: Georgia, serif; font-size:1.3rem; font-style:italic; font-weight:600; }
.brand small { display:block; margin-top:.3rem; font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; }
nav { display:flex; align-items:center; gap:1.35rem; }
nav a { position:relative; font-size:.77rem; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-.5rem; height:1px; background:var(--gold); transition:right .25s; }
nav a:hover::after, nav a:focus-visible::after { right:0; }
.menu-button { display:none; border:0; background:transparent; color:white; padding:.5rem; }
.menu-button span { display:block; width:1.5rem; height:1px; margin:5px; background:currentColor; }

.hero {
  position: relative; min-height: 820px; padding: 10.5rem max(2rem, calc((100vw - 1160px)/2)) 7rem;
  display: grid; grid-template-columns: 1fr 1.06fr; align-items:center; gap: 5rem;
  color: white; background:
    radial-gradient(circle at 76% 30%, rgba(151,127,219,.34), transparent 24rem),
    linear-gradient(145deg, #15123c 0%, #28205c 58%, #15123f 100%);
  overflow:hidden;
}
.hero::after { content:""; position:absolute; z-index:4; height:90px; bottom:-55px; left:-3%; right:-3%; background:var(--cream); border-radius:50% 50% 0 0; }
.hero-copy { position:relative; z-index:5; max-width:570px; }
.eyebrow { display:flex; align-items:center; gap:.7rem; margin:0 0 1.2rem; color:#6f5d75; font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.hero .eyebrow { color: var(--lilac); }
.eyebrow span { color:var(--gold); }
h1,h2,h3,p { text-wrap: pretty; }
h1,h2 { font-family: Georgia, "Times New Roman", serif; font-weight:400; line-height:1.02; letter-spacing:-.035em; }
h1 { margin:0; max-width:650px; font-size:clamp(3.4rem,6vw,6.2rem); }
h1 em, h2 em { color:var(--gold); font-weight:400; }
.hero-lede { max-width:540px; margin:1.8rem 0; color:#e5def2; font-size:1.03rem; }
.hero-actions { display:flex; align-items:center; gap:1.7rem; margin-top:2.2rem; }
.primary-button, .secondary-button { border:0; cursor:pointer; transition:transform .25s, box-shadow .25s, background .25s; }
.primary-button { display:inline-flex; align-items:center; gap:1.1rem; padding:1rem 1.2rem 1rem 1.5rem; border-radius:99px; background:var(--gold); color:var(--ink); font-weight:800; box-shadow:0 12px 30px rgba(239,199,100,.18); }
.primary-button span:last-child { display:grid; place-items:center; width:2rem; height:2rem; color:white; background:var(--ink); border-radius:50%; }
.primary-button:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(239,199,100,.3); }
.text-link { font-size:.82rem; font-weight:700; letter-spacing:.05em; text-decoration:none; }
.text-link span { margin-left:.4rem; color:var(--gold); }
.quiet-note { margin-top:2.5rem; color:#a8a0c3; font-size:.76rem; }

.door-scene { position:relative; z-index:3; height:570px; min-width:0; }
.moon { position:absolute; width:270px; height:270px; right:10%; top:2%; border-radius:50%; background:radial-gradient(circle at 35% 35%, #fffdf4, var(--moon) 46%, #e7d79c 100%); box-shadow:0 0 70px rgba(255,245,198,.32); opacity:.85; }
.moon::after { content:""; position:absolute; width:45px; height:45px; border-radius:50%; top:53px; left:45px; background:rgba(214,198,143,.15); box-shadow:105px 56px 0 17px rgba(214,198,143,.11), 38px 115px 0 7px rgba(214,198,143,.12); }
.cloud { position:absolute; z-index:1; width:230px; height:45px; border-radius:50%; background:rgba(231,224,246,.1); filter:blur(1px); }
.cloud::before,.cloud::after { content:""; position:absolute; border-radius:50%; background:inherit; }
.cloud::before { width:90px; height:70px; left:40px; top:-30px; }.cloud::after { width:120px; height:80px; right:25px; top:-38px; }
.cloud-one { top:20%; right:-10%; animation:drift 11s ease-in-out infinite alternate; }.cloud-two { top:34%; left:-10%; transform:scale(.65); animation:drift 14s ease-in-out infinite alternate-reverse; }
.hill { position:absolute; z-index:2; bottom:30px; border-radius:50% 50% 0 0; }
.hill-back { width:120%; height:250px; left:-8%; background:#30295d; clip-path:ellipse(60% 50% at 50% 100%); }
.hill-front { width:130%; height:195px; left:-15%; background:#1a183e; clip-path:ellipse(58% 55% at 50% 100%); }
.star-door { position:absolute; z-index:6; bottom:99px; left:50%; width:190px; height:290px; transform:translateX(-50%); border:0; background:transparent; cursor:pointer; }
.door-glow { position:absolute; inset:-45px; border-radius:50% 50% 35% 35%; background:radial-gradient(ellipse,rgba(244,217,142,.48),transparent 68%); animation:breathe 3s ease-in-out infinite; }
.door-frame { position:absolute; inset:0; padding:11px; overflow:hidden; border:3px solid #eccd78; border-radius:95px 95px 12px 12px; background:#3a2f68; box-shadow:0 0 0 6px #1a173c,0 0 0 9px rgba(239,199,100,.5),0 0 35px rgba(255,224,134,.7); }
.door-space { position:relative; display:block; width:100%; height:100%; border-radius:83px 83px 7px 7px; background:radial-gradient(circle at 50% 55%,#faf0b2 0 3%,#9d83e0 4% 16%,#352b76 38%,#17143d 72%); overflow:hidden; transition:filter .5s; }
.door-space::after { content:""; position:absolute; inset:0; background:conic-gradient(from 20deg at 50% 55%,transparent,rgba(255,255,255,.32),transparent 12%,transparent 30%,rgba(255,255,255,.18),transparent 44%); animation:spin 12s linear infinite; }
.door-space i { position:absolute; z-index:2; width:5px; height:5px; background:white; border-radius:50%; box-shadow:0 0 7px white; animation:twinkle 2s infinite; }
.door-space i:nth-child(1){left:30%;top:20%}.door-space i:nth-child(2){left:68%;top:28%;animation-delay:-.4s}.door-space i:nth-child(3){left:42%;top:47%;animation-delay:-1s}.door-space i:nth-child(4){left:73%;top:66%;animation-delay:-1.5s}.door-space i:nth-child(5){left:24%;top:75%;animation-delay:-.7s}

.door-experience{position:relative;z-index:5;min-width:0}
.star-door{width:230px;height:340px}
.door-frame{z-index:2;border-radius:115px 115px 12px 12px;transform-origin:left center;transition:transform .85s ease;backface-visibility:hidden}
.door-portal{position:absolute;inset:0;z-index:1;display:block;overflow:hidden;border:3px solid #eccd78;border-radius:115px 115px 12px 12px;background:var(--night);box-shadow:0 0 28px rgba(239,199,100,.4);opacity:0;visibility:hidden;transition:opacity .6s ease}
.door-portal img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.star-door.open .door-portal{opacity:1;visibility:visible}
.star-door.open .door-frame{transform:perspective(650px) rotateY(-105deg);animation:none}
.star-door.open .door-glow{opacity:1}
.door-welcome{position:relative;max-width:460px;margin:-.3rem auto 1rem;padding:1.5rem;border:1px solid #e6d19e;border-radius:22px;background:var(--cream);color:var(--ink);text-align:center;box-shadow:var(--shadow)}
.door-welcome[hidden]{display:none}
.door-greeting{margin:0 0 1rem;font-family:Georgia,serif;font-size:clamp(1.4rem,3vw,1.85rem);line-height:1.3}
.door-greeting em{display:block;margin-top:.25rem;color:#74509b}
.door-books-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.4rem;border-radius:99px;background:var(--gold);color:var(--ink);font-size:1rem;font-weight:700;text-decoration:none}
.door-books-link:hover{background:#f5d88c}
.door-close{display:block;min-height:44px;margin:.4rem auto -.5rem;padding:.5rem;border:0;background:transparent;color:#695478;font:inherit;font-size:.875rem;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.scene-prompt{max-width:90%;width:max-content;text-align:center;white-space:normal;font-size:.875rem;line-height:1.5;letter-spacing:.04em}

.door-step { position:absolute; left:-20px; right:-20px; bottom:-15px; height:24px; border-radius:50%; background:#797090; box-shadow:0 12px 0 #312b4e; }
.garden { position:absolute; z-index:5; left:0; right:0; bottom:62px; display:flex; justify-content:space-between; align-items:end; color:#b6afd7; font-size:1.5rem; text-shadow:0 0 10px #c8b8ff; }
.garden span:nth-child(even){font-size:1rem;color:#fff2c0}.garden span:nth-child(2){margin-bottom:34px}.garden span:nth-child(5){margin-bottom:22px}
.path { position:absolute; z-index:4; left:38%; right:38%; bottom:0; height:130px; background:linear-gradient(#82799e,#4f496e); clip-path:polygon(35% 0,65% 0,100% 100%,0 100%); }
.fireflies i { position:absolute; z-index:8; width:5px;height:5px;background:#fff1a9;border-radius:50%;box-shadow:0 0 10px 3px rgba(255,231,126,.65);animation:float 4s ease-in-out infinite; }
.fireflies i:nth-child(1){left:18%;bottom:30%;}.fireflies i:nth-child(2){left:28%;bottom:48%;animation-delay:-1s}.fireflies i:nth-child(3){right:21%;bottom:32%;animation-delay:-2s}.fireflies i:nth-child(4){right:10%;bottom:46%;animation-delay:-.5s}.fireflies i:nth-child(5){right:33%;bottom:21%;animation-delay:-2.7s}
.scene-prompt { position:absolute; z-index:10; left:50%; bottom:25px; transform:translateX(-50%); margin:0; color:#d8d0eb; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }


.story-world { padding:7rem 0 0; background:var(--cream); }
.section-heading { width:min(1160px,calc(100% - 4rem)); margin:0 auto 4rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem 5rem; align-items:end; }
.section-heading .eyebrow { grid-column:1/-1; }
h2 { margin:0; font-size:clamp(2.7rem,5vw,5.2rem); }
.section-heading h2 em { color:var(--lavender); }
.section-heading>p:last-child { max-width:420px; margin:0 0 .5rem; color:#6f6772; font-size:1.05rem; }
.book-feature { width:min(1160px,calc(100% - 4rem)); margin:0 auto; display:grid; grid-template-columns:minmax(270px,390px) 1fr; gap:clamp(3rem,8vw,8rem); align-items:center; padding:4rem; border-radius:28px; background:#efe5cd; }
.book-cover { position:relative; aspect-ratio:4/5.3; padding:2rem 1.7rem; text-align:center; color:white; background:radial-gradient(circle at 50% 48%,#594c91,#282052 64%,#18143d); border-radius:4px 20px 20px 4px; border-left:11px solid #181431; box-shadow:-12px 12px 0 #d2bc90, 0 30px 50px rgba(44,31,51,.28); transform:rotate(-2deg); overflow:hidden; }
.official-cover{padding:0;background:#18143d}.official-cover img{display:block;width:100%;height:100%;object-fit:cover}

.coming-soon{width:min(1160px,calc(100% - 4rem));margin:8rem auto 0;scroll-margin-top:2rem}
.coming-heading{max-width:760px;margin-bottom:2.5rem}.coming-heading h2{font-size:clamp(2.7rem,5vw,4.8rem);line-height:1.05}.coming-heading h2 em{color:#846bb3;font-weight:400}.coming-heading>p:last-child{max-width:680px;color:#695f6b;font-size:1.05rem}
.coming-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.coming-card{display:grid;grid-template-columns:135px 1fr;gap:1.5rem;align-items:center;padding:1.4rem;border:1px solid #ded3bc;border-radius:24px;background:#fffdf7;box-shadow:0 16px 36px rgba(33,23,62,.06)}
.coming-portrait{height:170px;border-radius:16px;overflow:hidden;background:#e8d9be}.coming-portrait img{width:100%;height:100%;object-fit:cover;display:block}
.coming-label{display:block;color:#795d9a;font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.coming-card h3{margin:.55rem 0;font-family:Georgia,serif;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:400;line-height:1.18}
.coming-card p{margin:.5rem 0;color:#695f6b;font-size:.88rem;line-height:1.55}.coming-card small{color:#8d7999;font-size:.69rem;font-style:italic}
.halloween-feature{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(210px,.75fr) 1.25fr;gap:clamp(2rem,5vw,5rem);align-items:center;margin-top:1.2rem;padding:2rem clamp(2rem,5vw,5rem);overflow:hidden;border-radius:28px;color:#fff8ec;background:radial-gradient(circle at 18% 35%,#5c496d 0,#322b59 36%,#191538 80%)}
.halloween-feature::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;background:radial-gradient(circle at 70% 0%,#ca905d,transparent 38%),radial-gradient(circle at 98% 100%,#9d81ca,transparent 38%)}
.halloween-glow{position:absolute;inset:0;pointer-events:none}.halloween-glow span{position:absolute;right:7%;top:3%;font-size:5rem;color:#f5dca4;text-shadow:0 0 30px #e7ad72}.halloween-glow i,.halloween-glow b{position:absolute;color:#f8d992;font-size:1.2rem;font-style:normal}.halloween-glow i{top:20%;left:7%}.halloween-glow b{bottom:10%;right:15%}
.halloween-art{width:min(100%,280px);aspect-ratio:1/1;margin:auto;border:8px solid rgba(242,208,142,.55);border-radius:50%;overflow:hidden;background:#75628d;box-shadow:0 0 0 14px rgba(255,237,178,.08),0 20px 50px rgba(8,5,28,.35)}
.halloween-art img{display:block;width:100%;height:100%;object-fit:cover}
.halloween-kicker{color:#f5d99e;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.halloween-copy h3{margin:.75rem 0 1.25rem;font-family:Georgia,serif;font-weight:400;font-size:clamp(2.1rem,4vw,3.7rem);line-height:1.08}.halloween-copy h3 em{color:#f1c782;font-weight:400}
.halloween-copy>p:not(.halloween-kicker){max-width:580px;color:#e3d9e9;font-size:1rem}.halloween-signoff{display:block;margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.25);font-family:Georgia,serif;font-size:.95rem;font-style:italic;color:#f5d99e}.halloween-signoff span{padding-left:.5rem}
.book-cover::after { content:""; position:absolute; inset:0; border:1px solid rgba(255,255,255,.18); margin:10px; border-radius:2px 14px 14px 2px; pointer-events:none; }
.cover-stars { color:var(--gold); font-size:.9rem; letter-spacing:.3em; }.cover-series { display:block; margin:1rem 0; color:#d5caee; font-size:.55rem; letter-spacing:.17em; text-transform:uppercase; }
.book-cover h3 { margin:.5rem 0; font-family:Georgia,serif; font-size:clamp(1.7rem,3vw,2.8rem); line-height:1.04; font-weight:400; }.book-cover h3 em {color:var(--gold);font-weight:400}.book-cover>p{position:absolute;left:0;right:0;bottom:1.1rem;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:#d9d0ef}
.cover-window { position:absolute; left:16%; right:16%; bottom:14%; height:44%; overflow:hidden; border:2px solid #d9bd68; border-radius:50% 50% 7px 7px; background:radial-gradient(circle at 65% 26%,#fff7bd 0 3%,transparent 4%),linear-gradient(#17123c 0 65%,#6a5b79 66%); box-shadow:0 0 20px rgba(239,199,100,.25); }
.cover-window::before {content:"";position:absolute;bottom:-20%;left:-10%;width:120%;height:50%;border-radius:50%;background:#24204a}.little-star{position:absolute;right:18%;top:18%;color:#fff2a5;font-size:1.4rem;text-shadow:0 0 18px white;animation:float 3s ease-in-out infinite}.girl-silhouette{position:absolute;z-index:2;left:33%;bottom:8%;width:37%;height:45%;background:#2d1834;border-radius:48% 48% 25% 25%}.girl-silhouette::before,.girl-silhouette::after{content:"";position:absolute;top:-23%;width:55%;aspect-ratio:1;border-radius:50%;background:#2d1834}.girl-silhouette::before{left:-20%}.girl-silhouette::after{right:-20%}
.book-copy { max-width:580px; }.book-copy>p{color:#62596a}.book-copy .drop-cap{font-family:Georgia,serif;color:var(--ink);font-size:1.3rem;line-height:1.6}.drop-cap::first-letter{float:left;font-size:4rem;line-height:.72;margin:.35rem .5rem 0 0;color:#806bb8}
.story-details { display:grid; grid-template-columns:repeat(3,1fr); margin:2rem 0; padding:1.4rem 0; border-top:1px solid #cfc1a8; border-bottom:1px solid #cfc1a8; }.story-details div{padding:0 1rem;border-right:1px solid #cfc1a8}.story-details div:first-child{padding-left:0}.story-details div:last-child{border:0}.story-details strong,.story-details span{display:block}.story-details strong{font-family:Georgia,serif;font-size:1.2rem}.story-details span{color:#776e78;font-size:.68rem;line-height:1.35;text-transform:uppercase;letter-spacing:.08em}
.secondary-button { padding:.9rem 1.3rem; border:1px solid #9e8f73; border-radius:99px; color:var(--ink); background:transparent; font-size:.82rem; font-weight:700; }.secondary-button:hover{background:var(--white);transform:translateY(-2px)}
.story-peek { position:fixed; z-index:100; inset:50% auto auto 50%; width:min(92vw,720px); transform:translate(-50%,-50%); padding:1.2rem; border-radius:25px; background:var(--paper); box-shadow:0 0 0 100vmax rgba(11,8,33,.75),var(--shadow); }.story-peek[hidden]{display:none}.peek-header{display:flex;align-items:center;justify-content:space-between;padding:.3rem .4rem 1rem}.peek-header span,.peek-header strong{display:block}.peek-header span{color:#847783;font-size:.63rem;letter-spacing:.15em;text-transform:uppercase}.peek-header strong{font-family:Georgia,serif;font-size:1.3rem}.peek-header button,.peek-controls button{border:0;cursor:pointer}.peek-header button{font-size:1.7rem;background:transparent}.peek-stage{position:relative;min-height:390px;padding:2rem;display:flex;align-items:end;border-radius:16px;overflow:hidden;background:linear-gradient(#211b51 0 55%,#403863 56%);color:white}.peek-stage::before{content:"";position:absolute;left:-5%;right:-5%;bottom:-34%;height:60%;border-radius:50%;background:#222044}.peek-stage p{position:relative;z-index:2;width:min(90%,500px);margin:0 auto;padding:1rem 1.3rem;text-align:center;border-radius:14px;background:rgba(18,14,45,.7);font-family:Georgia,serif}.peek-art{position:absolute;inset:0}.peek-star{position:absolute;right:26%;top:25%;font-size:2.3rem;color:#fff4a8;text-shadow:0 0 20px white;animation:float 2.5s ease-in-out infinite}.peek-window{position:absolute;left:15%;top:18%;width:24%;height:40%;border:7px solid #664d74;background:#17123d;box-shadow:inset 0 0 0 2px #aa83a1}.peek-controls{display:flex;justify-content:center;gap:.65rem;padding:.95rem 0 .1rem}.peek-dot{width:9px;height:9px;padding:0;border-radius:50%;background:#b9abbd}.peek-dot.active{width:30px;border-radius:99px;background:#7660b3}

.explore { margin-top:8rem; padding:8rem max(2rem,calc((100vw - 1160px)/2)); color:white; background:var(--deep); scroll-margin-top:2rem; }
.explore-top { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem; }.explore .eyebrow{color:var(--lilac)}.explore h2{font-size:clamp(2.7rem,4vw,4.5rem)}
.tab-panel { display:grid; grid-template-columns:1.45fr .8fr; gap:3rem; align-items:start; }.character-stage { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }.character-card { padding:1rem .6rem .9rem; border:1px solid rgba(255,255,255,.11); border-radius:18px; color:white; background:rgba(255,255,255,.035); cursor:pointer; text-align:center; transition:.25s; }.character-card:hover,.character-card.selected{transform:translateY(-4px);border-color:rgba(239,199,100,.6);background:rgba(255,255,255,.1);box-shadow:0 15px 30px rgba(5,3,20,.2)}.character-card>span:last-child{display:block}.character-card strong,.character-card small{display:block}.character-card strong{margin-top:.5rem;font-family:Georgia,serif;font-size:.92rem}.character-card small{color:#aaa1c4;font-size:.62rem}
.portrait { position:relative; display:block; width:96px; height:96px; margin:0 auto; overflow:hidden; border:2px solid rgba(255,255,255,.72); border-radius:50%; background:#17133f; box-shadow:0 9px 24px rgba(0,0,0,.28); }
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transform:scale(1.4)}
.portrait-horris img{object-position:67% 76%;transform:scale(2.1)}
.character-detail { position:sticky; top:2rem; min-height:420px; padding:2.4rem; border-radius:24px; background:var(--cream); color:var(--ink); }.detail-number{display:block;color:#a595b7;font-family:Georgia,serif;font-size:1rem}.detail-role{margin:2.2rem 0 .4rem;color:#8a7596;font-size:.66rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.character-detail h3,.map-story h3{margin:.2rem 0 1.2rem;font-family:Georgia,serif;font-size:2.3rem;font-weight:400;line-height:1.1}.character-detail>p:not(.detail-role),.map-story>p:not(.detail-role){color:#615869}.character-fact{display:flex;gap:.8rem;margin-top:2rem;padding-top:1.2rem;border-top:1px solid #ddd2bd}.character-fact>span{color:#9c7bc6}.character-fact p{margin:0;color:#766c78;font-size:.75rem}
.detail-image{display:block;width:100%;height:250px;margin-bottom:1.3rem;object-fit:cover;object-position:50% 30%;border-radius:16px;box-shadow:0 14px 30px rgba(44,31,51,.18)}
.character-detail .detail-role{margin-top:.8rem}
.visualcast { padding:9rem max(2rem,calc((100vw - 1160px)/2)) 4rem; display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(3rem,7vw,7rem); background:#f8f0dc; }
.visualcast-copy>p:not(.eyebrow){color:#695f6b}.visualcast-copy h2 em{color:#8e74c3}.format-list{margin-top:2.5rem;border-top:1px solid #d8cdb8}.format-item{width:100%;display:flex;align-items:start;gap:1rem;padding:1.15rem .6rem;border:0;border-bottom:1px solid #d8cdb8;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:.2s}.format-item:hover,.format-item.active{padding-left:1rem;background:rgba(255,255,255,.52)}.format-item>span{color:#9b86ab;font-family:Georgia,serif;font-size:.75rem}.format-item strong,.format-item small{display:block}.format-item strong{font-family:Georgia,serif;font-size:1.15rem}.format-item small{color:#756b76}
.visualcast-player { align-self:center; padding:.75rem; border:1px solid #d2c4aa; border-radius:26px; background:#221d50; box-shadow:var(--shadow); }.player-top{display:flex;justify-content:space-between;padding:.4rem .6rem .9rem;color:#c7beda;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.live-dot::before{content:"";display:inline-block;width:6px;height:6px;margin-right:.45rem;border-radius:50%;background:#d7a0b2;box-shadow:0 0 7px #d7a0b2}.player-scene{position:relative;min-height:430px;overflow:hidden;border-radius:18px;background:linear-gradient(#17133f 0 58%,#3d4e4b 59%);}.player-scene::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-25%;height:60%;border-radius:50%;background:#202e31}.player-moon{position:absolute;right:12%;top:9%;width:105px;height:105px;border-radius:50%;background:var(--moon);box-shadow:0 0 38px rgba(255,245,198,.38)}.player-stars{position:absolute;top:14%;left:8%;color:white;letter-spacing:.45rem}.player-village{position:absolute;z-index:2;left:5%;right:5%;bottom:12%;height:40%}.player-village i{position:absolute;bottom:0;width:17%;height:45%;background:#16182b;border-radius:45% 45% 4% 4%;box-shadow:inset 12px 0 rgba(255,255,255,.03)}.player-village i::before{content:"";position:absolute;left:35%;top:38%;width:20%;height:20%;background:#f3c974;box-shadow:0 0 10px #f3c974}.player-village i:nth-child(1){left:3%;height:47%}.player-village i:nth-child(2){left:28%;height:65%;width:22%}.player-village i:nth-child(3){right:24%;height:42%}.player-village i:nth-child(4){right:1%;height:55%;width:19%}.guiding-star{position:absolute;z-index:5;left:20%;top:30%;color:#fff3a5;font-size:1.8rem;text-shadow:0 0 18px white}.visualcast-player.playing .guiding-star{animation:star-journey 8s ease-in-out infinite}.player-caption{position:absolute;z-index:8;left:50%;bottom:5%;width:max-content;max-width:88%;transform:translateX(-50%);padding:.6rem .9rem;border-radius:8px;background:rgba(8,6,28,.78);color:white;font-size:.75rem;text-align:center}.player-caption.hidden{display:none}.player-controls{display:flex;align-items:center;gap:.9rem;padding:.8rem .5rem .25rem;color:#d7cfee;font-size:.65rem}.player-controls button{border:0;background:transparent;color:white;cursor:pointer}.player-controls>button:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold);color:var(--ink)}.player-progress{position:relative;flex:1;height:3px;overflow:hidden;background:#575075;border-radius:99px}.player-progress span{display:block;width:0;height:100%;background:var(--gold)}.visualcast-player.playing .player-progress span{animation:progress 18s linear forwards}.closing-invitation{grid-column:1/-1;margin-top:7rem;padding:4rem 0 0;border-top:1px solid #d8cdb8;text-align:center}.closing-invitation>span{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto 1.3rem;border-radius:50%;background:var(--gold);color:var(--ink)}.closing-invitation p{max-width:710px;margin:0 auto 1.5rem;font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.35}.closing-invitation a{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.closing-invitation a span{color:#8e74c3}

.about-preview{padding:8rem max(2rem,calc((100vw - 1160px)/2));display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(3rem,7vw,7rem);align-items:center;background:#fffaf0}.about-preview-art{border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.about-preview-art img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%}.about-preview-copy h2 em{color:#8e74c3}.about-preview-copy>p:not(.eyebrow){color:#695f6b;font-size:1.05rem}.about-link{display:inline-block;margin-top:1rem;text-decoration:none}

.about-page{background:var(--cream)}.about-main{padding-top:7rem}.about-hero{min-height:780px;padding:5rem max(2rem,calc((100vw - 1160px)/2));display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(3rem,7vw,7rem);align-items:center;background:var(--deep);color:white}.about-hero-image{border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.about-hero-image img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.about-hero-copy h1{font-family:Georgia,serif;font-size:clamp(3rem,6vw,5.7rem);font-weight:400;line-height:.98}.about-hero-copy h1 em{color:var(--gold);font-weight:400}.about-hero-copy>p:last-child{max-width:620px;color:#d7cfee;font-size:1.08rem}.about-grid{padding:7rem max(2rem,calc((100vw - 1160px)/2));display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;background:var(--cream)}.about-grid article{padding:2.3rem;border:1px solid #d8cdb8;border-radius:24px;background:#fffaf0}.about-number{color:#9b86ab;font-family:Georgia,serif}.about-grid h2{margin:1.5rem 0 1rem;font-size:2rem}.about-grid p{color:#695f6b}.about-promise{padding:0 max(2rem,calc((100vw - 1160px)/2)) 7rem;display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:center}.about-promise h2{font-size:clamp(2.6rem,5vw,4.5rem)}.about-promise p{color:#695f6b}.about-promise img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;border-radius:28px;box-shadow:var(--shadow)}.about-quote{padding:7rem max(2rem,calc((100vw - 960px)/2));text-align:center;color:white;background:var(--night)}.about-quote>span{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin:0 auto 2rem;border-radius:50%;background:var(--gold);color:var(--ink)}.about-quote blockquote{margin:0 auto 2.5rem;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1.25}.about-quote .primary-button{display:inline-flex;text-decoration:none}

footer { padding:2.5rem max(2rem,calc((100vw - 1160px)/2)); display:grid; grid-template-columns:1fr auto; align-items:center; gap:.5rem 2rem; color:#b9b0cc; background:var(--night); }.footer-brand{grid-row:1/4;color:white}.footer-brand .brand-star{width:2.2rem;height:2.2rem;font-size:.9rem}footer>p{margin:0;text-align:right;font-family:Georgia,serif;font-style:italic}.parent-link{font-family:inherit;font-style:normal;font-size:.9rem}.parent-link a{color:#f1d99e;text-underline-offset:4px}.copyright{font-family:inherit;font-size:.62rem;font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:#77708e}

.reveal { opacity:0; transform:translateY(24px); transition:opacity .75s ease,transform .75s ease; }.reveal.visible { opacity:1; transform:none; }
:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@keyframes twinkle{50%{opacity:.25;transform:scale(.7)}}
@keyframes float{50%{transform:translateY(-12px)}}
@keyframes drift{to{transform:translateX(45px)}}
@keyframes breathe{50%{opacity:.55;transform:scale(1.06)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes door-open{to{transform:perspective(500px) rotateY(-72deg)}}
@keyframes star-journey{0%{left:20%;top:30%}35%{left:50%;top:18%}70%{left:72%;top:37%}100%{left:20%;top:30%}}
@keyframes progress{to{width:100%}}

@media (max-width: 980px) {
  .hero{grid-template-columns:1fr;gap:1rem;padding-top:9rem;text-align:center}.hero-copy{margin:0 auto}.hero .eyebrow,.hero-actions{justify-content:center}.door-scene{height:510px}.section-heading{grid-template-columns:1fr}.book-feature{grid-template-columns:300px 1fr;padding:2.5rem;gap:3rem}.tab-panel{grid-template-columns:1fr}.character-detail{position:static;min-height:0}.map-wrap{grid-template-columns:1fr}.map-story{padding:2rem}.visualcast,.about-preview,.about-hero,.about-promise{grid-template-columns:1fr}.visualcast-copy{max-width:700px}.closing-invitation{margin-top:3rem}.character-stage{grid-template-columns:repeat(4,1fr)}.about-grid{grid-template-columns:1fr}.about-hero{padding-top:7rem}.about-hero-image{max-width:640px}
}
@media (max-width: 850px) {
  .coming-grid{grid-template-columns:1fr}
}
@media (max-width: 720px) {
  .site-header{padding:1.1rem 1.25rem}.site-header::after{left:1.25rem;right:1.25rem}.menu-button{display:block}.site-header nav{position:absolute;top:100%;left:1rem;right:1rem;display:none;flex-direction:column;gap:0;padding:.6rem;border-radius:15px;background:rgba(20,16,56,.98);box-shadow:var(--shadow)}.site-header nav.open{display:flex}.site-header nav a{width:100%;padding:.9rem}.brand small{font-size:.53rem}.hero{padding-left:1.25rem;padding-right:1.25rem;min-height:1050px}.hero-actions{flex-direction:column;gap:1rem}h1{font-size:clamp(3.15rem,15vw,4.8rem)}.door-scene{height:440px}.moon{width:210px;height:210px}.star-door{transform:translateX(-50%) scale(.82);bottom:65px}.garden{bottom:46px}.scene-prompt{bottom:6px}.section-heading,.book-feature{width:calc(100% - 2.5rem)}.story-world{padding-top:5rem}.book-feature{grid-template-columns:1fr;padding:1.4rem}.book-cover{width:min(85%,320px);margin:0 auto}.story-details{grid-template-columns:1fr}.story-details div,.story-details div:first-child{padding:.8rem 0;border-right:0;border-bottom:1px solid #cfc1a8}.story-details div:last-child{border-bottom:0}.explore{margin-top:5rem;padding:5rem 1.25rem}.explore-top{display:block}.character-stage{grid-template-columns:repeat(2,1fr)}.portrait{width:82px;height:82px}.visualcast{padding:5rem 1.25rem 3rem}.player-scene{min-height:350px}.player-top{gap:1rem}.player-time{display:none}.closing-invitation{padding-top:3rem}footer{grid-template-columns:1fr;text-align:center}.footer-brand{grid-row:auto;margin:auto}footer>p{text-align:center}
}
@media (max-width: 720px) {
  .coming-soon{width:calc(100% - 2.5rem);margin-top:5rem}.coming-card{grid-template-columns:90px 1fr;gap:1rem;padding:1rem}.coming-portrait{height:125px}.halloween-feature{grid-template-columns:1fr;padding:2rem 1.4rem;text-align:center}.halloween-art{width:170px}.halloween-copy>p:not(.halloween-kicker){margin-left:auto;margin-right:auto}.halloween-glow span{font-size:3rem}
}
@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}
}

/* Book One ebook beta retains the moonlit palette of the story world. */
.festival-product,.spanish-book-product{margin-top:2rem}.festival-launch{padding:1rem 1.2rem;border-left:3px solid #b18539;background:#fbf2dc;border-radius:0 12px 12px 0;line-height:1.7}
.ebook-shop{width:min(1160px,calc(100% - 4rem));margin:6rem auto;scroll-margin-top:7rem}
.ebook-heading{max-width:720px;margin-bottom:2.2rem}.ebook-heading h2 em{color:#74559e}.ebook-heading>p:not(.eyebrow){font-size:1.1rem;color:#61566b}
.ebook-languages{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.ebook-languages a{display:inline-flex;align-items:center;padding:.6rem 1rem;border:1px solid #bba7d0;border-radius:99px;min-height:44px;background:#fffdf8;color:#453361;text-decoration:none;font-size:1rem}.ebook-languages a:hover{background:#eee5f7}.ebook-languages a:focus-visible{outline:3px solid #74549c;outline-offset:4px}#book-one-english,#book-one-espanol{scroll-margin-top:7rem}
.ebook-product{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);padding:clamp(1.5rem,4vw,3.5rem);border:1px solid #d7cab4;border-radius:28px;background:#fffdf8;align-items:start}
.ebook-cover-wrap{padding:1.4rem;border-radius:18px;background:linear-gradient(145deg,#242056,#100d30);align-self:center}.ebook-cover{display:block;width:100%;height:auto;border-radius:8px;box-shadow:0 18px 35px #08051a77}
.ebook-beta{display:inline-block;padding:.4rem .8rem;border-radius:99px;background:#ece3f8;color:#422d63;font-size:.875rem;font-weight:700}
.ebook-series{margin:1.5rem 0 .3rem;color:#6d5e7d;font-size:.875rem}.ebook-product h3{margin:.4rem 0;font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,4vw,3rem);line-height:1.15}.ebook-author{font-size:.95rem;color:#685a72}.ebook-product-copy>p{font-size:1rem}
.ebook-specs{margin:1.6rem 0}.ebook-specs>div{display:grid;grid-template-columns:5.2rem 1fr;gap:.65rem;padding:.55rem 0;border-bottom:1px solid #e6dfd2}.ebook-specs dt{color:#695b78;font-size:.875rem}.ebook-specs dd{margin:0;font-size:1rem}
.ebook-price{display:flex;gap:1rem;align-items:center;margin:1.6rem 0}.ebook-price strong{font-size:2.2rem;line-height:1.2}.ebook-price span{font-size:.875rem;color:#655771;max-width:140px}
.ebook-actions{display:flex;flex-wrap:wrap;gap:.7rem}.ebook-actions button,.ebook-actions a{padding:.9rem 1.2rem;border-radius:99px;font-size:1rem;font-weight:700;min-height:48px}.ebook-primary{border:1px solid #242056;background:#242056;color:#fff;cursor:pointer}.ebook-primary:hover{background:#3b306e}.ebook-buy{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;background:#ece3f8;color:#422d63;border:1px solid #bfaad7;text-decoration:none;cursor:pointer}.ebook-buy:hover{background:#e0d0f2}.ebook-buy:focus-visible{outline:3px solid #7858a0;outline-offset:3px}
.ebook-note{color:#62556a;font-size:.875rem!important;line-height:1.6}.ebook-delivery{margin-top:1rem;border-top:1px solid #e6dfd2;padding-top:1rem;font-size:1rem}.ebook-delivery summary{cursor:pointer;font-weight:700}.ebook-delivery p{color:#62556a}.ebook-credit{color:#685b72;font-size:.875rem;max-width:720px;margin:1.2rem 0}.ebook-shop-link{display:inline-block;margin:1.2rem 0 0 1rem;text-underline-offset:4px;font-weight:700;font-size:1rem}
.ebook-reader{border:0;border-radius:20px;padding:1.2rem;background:#fffdf8;color:#17143d;width:min(760px,calc(100% - 1.5rem));max-height:92vh;overflow:auto}.ebook-reader::backdrop{background:#100d30d9}.ebook-reader-head{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem}.ebook-reader-head p{font-size:.875rem;margin:0;color:#685b72}.ebook-reader-head h3{font-size:1.25rem;margin:.25rem 0}.ebook-reader-head>button{font-size:1.8rem;width:44px;height:44px;flex-shrink:0;border:1px solid #d5ccdd;border-radius:50%;background:#f2edf7;color:#17143d;cursor:pointer}.ebook-reader img{display:block;max-width:100%;max-height:64vh;width:auto;height:auto;margin:auto;object-fit:contain}.ebook-reader-controls{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin:1rem 0}.ebook-reader-controls button{border:1px solid #cfc4d9;border-radius:99px;background:#eee8f4;padding:.65rem .85rem;cursor:pointer;font-size:.875rem;color:#17143d;min-height:44px}.ebook-reader-controls button:disabled{opacity:.5;cursor:default}.ebook-reader-controls span{font-size:.875rem;white-space:nowrap}.ebook-sample-download{display:block;text-align:center;font-size:.875rem;text-underline-offset:4px}.ebook-reading{overflow:hidden}
@media(max-width:850px){.ebook-product{grid-template-columns:1fr}.ebook-cover-wrap{width:min(100%,360px);margin:auto}.ebook-shop{width:calc(100% - 2.5rem)}.ebook-shop-link{display:block;margin-left:0}.ebook-actions button,.ebook-actions a{width:100%}.ebook-reader-head h3{font-size:1.05rem}}

/* Free coloring downloads */
.coloring-section{width:min(1160px,calc(100% - 4rem));margin:5rem auto;scroll-margin-top:2rem}
.coloring-heading{max-width:700px;margin-bottom:2rem}.coloring-heading .eyebrow{font-size:.875rem}.coloring-heading h2{font-size:clamp(2.5rem,4.5vw,4.5rem);margin:0 0 1.5rem}.coloring-heading h2 em{color:#74549c}.coloring-heading>p:last-child{font-size:1.05rem;color:#62556a}
.coloring-pack{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding:clamp(1.25rem,3vw,2.5rem);background:#fffdf8;border:1px solid #dfd4ea;border-radius:24px;box-shadow:0 14px 42px #2420560d}
.coloring-cover{display:block;line-height:0;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #17143d15}.coloring-cover img{display:block;width:100%;height:auto}.coloring-label{display:inline-block;font-size:.875rem;color:#594273;background:#eee5f7;padding:.4rem .8rem;border-radius:99px}.coloring-copy h3{font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:400;line-height:1.15;margin:1.1rem 0}.coloring-copy>p{font-size:1rem}.coloring-details{color:#62556a}.coloring-download{display:inline-flex;justify-content:center;align-items:center;padding:.9rem 1.3rem;min-height:48px;background:var(--deep);color:white;border-radius:99px;text-decoration:none;font-size:1rem;font-weight:700}.coloring-download:hover{background:#463574}.coloring-preview{display:inline-block;margin:1rem;font-size:1rem;text-underline-offset:4px}.coloring-print-note{color:#62556a;font-size:.875rem!important;line-height:1.6}.coloring-cover:focus-visible,.coloring-download:focus-visible,.coloring-preview:focus-visible{outline:3px solid #74549c;outline-offset:4px}
@media(max-width:1080px) and (min-width:721px){.site-header{padding-left:1.25rem;padding-right:1.25rem;gap:1rem;flex-wrap:wrap}.site-header nav{gap:1rem;flex-wrap:wrap;justify-content:flex-end}.brand{flex-shrink:0}}
@media(max-width:720px){.coloring-section{width:calc(100% - 2.5rem);margin:4rem auto}.coloring-pack{grid-template-columns:1fr}.coloring-cover{width:min(100%,300px);margin:auto}.coloring-download{width:100%;text-align:center}.coloring-preview{display:block;width:fit-content;margin:1rem 0}.coloring-label{border-radius:12px}}

/* Spanish coloring pages and family announcements */
.coloring-languages{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 0}
.coloring-languages a{font-size:1rem;letter-spacing:normal;text-transform:none;padding:.6rem 1rem;border:1px solid #bba7d0;border-radius:99px;color:#453361;background:#fffdf8;text-decoration:none;min-height:44px}
.coloring-languages a::after{display:none}
.coloring-languages a:hover{background:#eee5f7}
.spanish-coloring{margin-top:3.5rem;padding-top:3rem;border-top:1px solid #d9cae4;scroll-margin-top:2rem}
.spanish-pack-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;margin-bottom:2rem}
.spanish-pack-heading h3,.spanish-announcements-heading h3{font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:400;line-height:1.15;margin:1rem 0}
.spanish-pack-heading p,.spanish-announcements-heading p{font-size:1rem;max-width:680px;color:#62556a}
.spanish-pack-actions{display:flex;flex-direction:column;align-items:center;max-width:310px}
.spanish-pack-actions .coloring-download{text-align:center}
.spanish-pages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.spanish-page{background:#fffdf8;border:1px solid #dfd4ea;border-radius:20px;overflow:hidden}
.spanish-page-image{display:block;line-height:0;background:white;padding:.75rem}
.spanish-page-image img{display:block;width:100%;height:auto}
.spanish-page-copy{padding:1.1rem 1.25rem 1.4rem}
.spanish-page h4,.spanish-announcement h4{font-family:Georgia,serif;font-size:1.35rem;line-height:1.3;margin:0 0 1rem;font-weight:400}
.spanish-page-copy .coloring-download{width:100%;padding:.8rem .75rem}
.spanish-announcements-heading{margin-top:3rem}
.spanish-announcements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start}
.spanish-announcement{border:1px solid #dfd4ea;border-radius:20px;overflow:hidden;background:#fffdf8}
.spanish-announcement-image{display:block;background:#242056;line-height:0}
.spanish-announcement-image img{display:block;width:100%;height:auto}
.spanish-announcement-copy{padding:1.5rem}
.spanish-announcement-copy p{font-size:1rem;color:#62556a}
.spanish-announcement-copy .coloring-preview{margin:.75rem 0;min-height:44px;display:flex;align-items:center;width:fit-content}
.coloring-languages a:focus-visible,.spanish-page-image:focus-visible,.spanish-announcement-image:focus-visible{outline:3px solid #74549c;outline-offset:4px}
@media(max-width:850px){.spanish-pack-heading{grid-template-columns:1fr;gap:.5rem}.spanish-pack-actions{align-items:flex-start;max-width:none}.spanish-pack-actions .coloring-preview{margin:1rem 0}}
@media(max-width:650px){.spanish-pages,.spanish-announcements{grid-template-columns:1fr}.spanish-page-image{max-width:340px;margin:auto}.spanish-page-copy{padding-top:.75rem}.spanish-coloring{margin-top:2.5rem;padding-top:2rem}.spanish-pack-actions{width:100%}.spanish-announcement-copy{padding:1.25rem}}

/* Matching book invitations stay side by side, including on phones. */
.book-announcements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,3vw,1.5rem);margin-top:2rem;align-items:stretch}
.book-announcement{min-width:0;display:flex;flex-direction:column;border:2px solid #d9ba7d;border-radius:22px;padding:clamp(.5rem,1.5vw,.85rem);background:#fffdf8;box-shadow:0 8px 24px #2420560c;overflow:hidden}
.book-announcement-spanish{border-color:#c4b0df;background:#fcf9ff}
.announcement-language{align-self:flex-start;margin:.25rem .25rem .75rem;padding:.3rem .7rem;border-radius:99px;background:#f9ecd1;color:#65491d;font-size:.875rem;font-weight:700;line-height:1.4}
.book-announcement-spanish .announcement-language{background:#ece3f8;color:#453361}
.book-announcement-image{display:block;flex-shrink:0;border-radius:14px;overflow:hidden;line-height:0;background:#242056}
.book-announcement-image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.book-announcement-copy{display:flex;flex-direction:column;flex:1;min-width:0;padding:clamp(.4rem,1.5vw,1rem);overflow-wrap:anywhere}
.book-announcement-copy h4{font-family:Georgia,serif;font-size:clamp(1.05rem,2.3vw,1.65rem);font-weight:400;line-height:1.25;margin:.7rem 0 .5rem}
.book-announcement-copy p{font-size:1rem;line-height:1.5;color:#62556a;margin:0 0 1rem}
.announcement-shop-link{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;width:100%;box-sizing:border-box;padding:.65rem .6rem;border-radius:16px;background:#242056;color:#fff;font-size:1rem;font-weight:700;line-height:1.3;text-decoration:none;margin-top:auto}
.announcement-shop-link:hover{background:#463574}
.announcement-download{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:.35rem;text-align:center;font-size:.875rem;line-height:1.4;text-underline-offset:3px}
.announcement-view-note{font-size:.875rem!important;color:#62556a;line-height:1.6;margin-top:.8rem;max-width:720px}
.announcement-view-note span{display:block}
.book-announcement-image:focus-visible,.announcement-shop-link:focus-visible,.announcement-download:focus-visible{outline:3px solid #74549c;outline-offset:3px}

/* A simple bilingual app announcement, with solid surfaces and no imagery. */
.halloween-downloads{margin:2.5rem 0 3rem;padding:clamp(1.25rem,3vw,2.5rem);border:1px solid #d7b784;border-radius:26px;background:#f8edda;scroll-margin-top:2rem}
.halloween-downloads-heading{max-width:760px;margin-bottom:1.75rem}.halloween-downloads-heading h3{font:400 clamp(1.9rem,3.5vw,2.8rem)/1.15 Georgia,serif;margin:.5rem 0 1rem;color:#493153}.halloween-downloads-heading h3 em{color:#8a5828}.halloween-downloads-heading>p{color:#62556a}
.halloween-download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.halloween-download-card{background:#fffefa;border:1px solid #ddcfb9;border-radius:20px;padding:1.3rem;min-width:0}.halloween-preview-image{display:block;max-width:170px;margin:0 auto 1.3rem;border:1px solid #d8d0c1;border-radius:8px;overflow:hidden;line-height:0}.halloween-preview-image img{display:block;width:100%;height:auto}.halloween-download-card h4{font:400 1.55rem/1.25 Georgia,serif;color:#493153;margin:1rem 0}.halloween-download-card p{font-size:.95rem;color:#62556a}.halloween-download-card .coloring-download{width:100%;text-align:center;padding:.8rem .65rem;font-size:.9rem}.halloween-download-card .coloring-preview{display:block;width:fit-content;margin:1rem 0 .25rem;min-height:30px}.halloween-preview-image:focus-visible{outline:3px solid #74549c;outline-offset:4px}
@media(max-width:700px){.halloween-download-grid{grid-template-columns:1fr}.halloween-downloads{padding:1.2rem}.halloween-download-card{padding:1.2rem}}
.app-announcement{padding:4.5rem max(1.25rem,calc((100vw - 1160px)/2));background:#ede6fa;color:var(--ink);scroll-margin-top:6rem}
.app-announcement-inner{max-width:1050px;margin:auto;text-align:center}
.app-kicker{margin:0 0 1rem;color:#664480;font-size:.875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.app-announcement h2{margin:0 auto 2rem;max-width:850px;font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1.2;overflow-wrap:break-word}
.app-announcement h2 em{display:block;margin-top:.4rem;color:#74509b}
.app-announcement-languages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.app-language-card{padding:clamp(1.5rem,3vw,2.5rem);border:1px solid #c7b5dd;border-top:4px solid var(--gold);border-radius:24px;background:#fffefa;min-width:0}
.app-language-label{display:inline-block;padding:.3rem .8rem;border-radius:99px;background:#eee5f8;color:#614078;font-size:.875rem;font-weight:700}
.app-language-card h3{margin:1.25rem 0 .9rem;color:#67428d;font-family:Georgia,serif;font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.15;overflow-wrap:break-word}
.app-language-card p{margin:1rem 0;font-size:1rem;line-height:1.65;color:#5a4b68}
.app-language-card .app-invitation{font-size:1.125rem;font-weight:700;color:var(--ink)}
.app-language-card .app-signoff{margin:1.5rem 0 0;padding-top:1.2rem;border-top:1px solid #e8dff0;color:#67428d;font-family:Georgia,serif;font-style:italic}
.app-open-button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:50px;padding:.85rem 1.5rem;border-radius:99px;background:#67428d;color:white;font-weight:700;text-decoration:none;margin:.5rem 0}
.app-open-button:hover{background:#49305f}.app-open-button:focus-visible{outline:3px solid #9a6c22;outline-offset:4px}
.app-language-card .app-install-note{font-size:.9rem;line-height:1.7;text-align:left;background:#f5effa;border-radius:16px;padding:1rem 1.2rem}
@media(max-width:700px){.app-announcement{padding-top:3rem;padding-bottom:3rem}.app-announcement-languages{grid-template-columns:1fr;gap:1.25rem}}

/* Free five-page adventures: uncropped art and readable bilingual story text. */
.adventures-section{padding:5rem max(1.25rem,calc((100vw - 1060px)/2));background:#f4efdf;scroll-margin-top:2rem}
.adventures-heading{max-width:780px;margin:0 auto 2rem;text-align:center}
.adventures-heading .eyebrow{justify-content:center;color:#655072}
.adventures-heading h2{font-size:clamp(2.7rem,5vw,4.5rem);margin:.6rem 0 1.25rem;color:#392852}
.adventures-heading>p:not(.eyebrow){color:#62556a;font-size:1.05rem}
.adventure-languages{display:flex;justify-content:center;gap:.6rem;margin:1.5rem 0}
.adventure-languages button{min-height:46px;min-width:110px;border:1px solid #c6b5d7;border-radius:99px;background:#fffefa;color:#49325f;padding:.6rem 1rem;cursor:pointer}
.adventure-languages button[aria-pressed=true]{background:#49325f;color:white;border-color:#49325f}
.adventure-reader{max-width:1000px;margin:auto;border:1px solid #d7c9dd;border-radius:26px;overflow:hidden;background:#fffefa;box-shadow:0 15px 45px #3b245510;scroll-margin-top:1rem}
.adventure-reader[hidden],.adventure-pending[hidden],.adventure-ending-wrap[hidden]{display:none}
.adventure-book-heading{padding:1.7rem 2rem;text-align:center}
.adventure-destination{color:#77623f;font-size:.9rem;margin:0 0 .5rem}
.adventure-book-heading h3{font-family:Georgia,serif;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.2;font-weight:400;margin:0;color:#392852}
#adventure-image{display:block;width:100%;height:auto;aspect-ratio:1672/941;background:#eee5da;object-fit:contain}
.adventure-page-copy{max-width:760px;margin:auto;padding:1.7rem 2rem 2rem}
.adventure-page-number{color:#806342;font-size:.9rem;letter-spacing:.03em;margin:0 0 1rem;font-weight:700}
#adventure-text{font-family:Georgia,serif;font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.8;color:#382c44}
#adventure-text p{margin:0 0 .9rem}
.adventure-controls{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem}
.adventure-controls button{border:1px solid #c5b1d5;border-radius:99px;background:#ede4f6;color:#49325f;min-height:48px;padding:.7rem 1.2rem;font-weight:700;cursor:pointer}
.adventure-controls button:last-child{background:#49325f;color:white}
.adventure-controls button:disabled{opacity:.45;cursor:default}
.adventure-controls button:focus-visible,.adventure-languages button:focus-visible{outline:3px solid #9a6c22;outline-offset:4px}
.adventure-ending-wrap{background:#f1ebf7;border-radius:18px;padding:1rem 1.2rem;margin-top:1.25rem;color:#49325f}
.adventure-ending-wrap p{margin:.4rem 0}.adventure-ending-wrap p:first-child{font-family:Georgia,serif;font-style:italic}
footer.adventure-book-footer{padding:1.25rem 2rem;background:#f5efdf;color:#62556a;text-align:center;display:block;border-top:1px solid #e3d8c5}
.adventure-book-footer p{font-size:.85rem;margin:.3rem 0}.adventure-book-footer p:last-child{font-weight:700;color:#49325f}
.adventure-pending{max-width:760px;margin:auto;padding:2rem;background:#fffefa;border-radius:22px;border:1px solid #d7c9dd;text-align:center}
@media(min-width:1081px){.site-header nav{gap:.9rem}.site-header nav a{font-size:.72rem;letter-spacing:.05em}}
@media(max-width:600px){.adventures-section{padding:3rem 1rem}.adventure-book-heading{padding:1.3rem 1rem}.adventure-page-copy{padding:1.3rem 1.1rem 1.5rem}.adventure-controls{gap:.5rem}.adventure-controls button{padding:.7rem .9rem;font-size:.9rem}.adventure-reader{border-radius:18px}footer.adventure-book-footer{padding:1.1rem}.adventures-heading .eyebrow{font-size:.65rem}}

.halloween-kitchen-section{padding:80px max(6vw,20px);background:#f8efdf;color:#342739}.halloween-kitchen-section header{max-width:760px;margin-bottom:25px}.halloween-kitchen-section h2{font-size:clamp(2rem,4vw,3rem)}.halloween-recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:25px}.halloween-recipe-card{background:#fffaf1;border:1px solid #d8b888;border-radius:24px;padding:30px;min-width:0}.halloween-recipe-card h3{font-size:1.8rem}.halloween-recipe-card h4{margin:24px 0 12px;font-size:1.12rem}.halloween-recipe-card li{line-height:1.65;margin:10px 0}.halloween-recipe-card ul,.halloween-recipe-card ol{padding-left:22px}.halloween-recipe-card p{line-height:1.65}.recipe-meta{color:#70513a}.recipe-note{padding-top:16px;border-top:1px solid #d8b888}.halloween-kitchen-section [hidden]{display:none!important}@media(max-width:700px){.halloween-recipe-grid{grid-template-columns:1fr}.halloween-recipe-card{padding:22px}}
