:root { --ink:#17352d; --cream:#f5f0df; --paper:#fffdf7; --pine:#0e4538; --pine-deep:#07372f; --gold:#d7aa45; --red:#a82f38; --navy:#142f7d; }
* { box-sizing: border-box; }
html { background: var(--cream); color: var(--ink); }
body { margin:0; font-family: Georgia, "Times New Roman", serif; background:radial-gradient(circle at 50% -10%,#fff 0,#f7f2e4 34%,#e4eadc 100%); min-height:100vh; }
a { color:inherit; }
.home-shell,.story-shell { width:min(100%, 1000px); margin:auto; padding:24px 20px 60px; position:relative; overflow:hidden; }
.home-shell::before,.story-shell::before { content:none; }
.festive-lights { height:32px; display:flex; justify-content:space-around; align-items:flex-start; border-top:4px solid var(--pine); position:relative; z-index:2; margin:-5px 0 12px; }
.festive-lights i { display:block; width:14px; height:21px; border-radius:50% 50% 45% 45%; background:var(--gold); box-shadow:0 0 18px rgba(215,170,69,.9); position:relative; top:-1px; }
.festive-lights i:nth-child(2n) { background:var(--red); box-shadow:0 0 12px rgba(168,47,56,.6); top:3px; }
.festive-lights i:nth-child(3n) { background:#e9eee4; box-shadow:0 0 12px #fff; top:1px; }
.hero { padding:42px 42px 56px; display:grid; grid-template-columns:190px 1fr; gap:36px; align-items:center; position:relative; z-index:1; overflow:hidden; border-radius:28px; margin-bottom:26px; background:radial-gradient(circle at 86% 16%,rgba(215,170,69,.18),transparent 26%),linear-gradient(145deg,#075044,#082f2a); box-shadow:0 22px 55px rgba(7,55,47,.22); border:1px solid rgba(255,255,255,.18); }
.hero::before { content:""; position:absolute; left:0; right:0; top:0; height:34px; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.08),transparent); }
.hero-snowflakes { position:absolute; inset:0; z-index:1; pointer-events:none; color:#fff; font-family:Arial,sans-serif; text-shadow:0 0 10px rgba(255,255,255,.7); }
.hero-snowflakes span { position:absolute; display:block; line-height:1; opacity:.88; }
.hero-snowflakes span:nth-child(1) { left:3.5%; top:10px; font-size:19px; transform:rotate(8deg); }
.hero-snowflakes span:nth-child(2) { left:25%; top:8px; font-size:13px; transform:rotate(-12deg); }
.hero-snowflakes span:nth-child(3) { left:47%; top:12px; font-size:17px; transform:rotate(18deg); }
.hero-snowflakes span:nth-child(4) { left:68%; top:7px; font-size:14px; transform:rotate(-8deg); }
.hero-snowflakes span:nth-child(5) { right:15%; top:10px; font-size:18px; transform:rotate(14deg); }
.hero-snowflakes span:nth-child(6) { right:3.5%; bottom:28px; font-size:20px; transform:rotate(-15deg); }
.hero-logo-wrap { background:#fff; padding:12px; border-radius:50%; box-shadow:0 16px 45px rgba(0,0,0,.28),0 0 0 6px rgba(215,170,69,.78),0 0 0 11px rgba(255,255,255,.13); position:relative; z-index:2; }
.hero-logo { width:100%; aspect-ratio:1; object-fit:contain; border-radius:50%; display:block; }
.hero-copy { min-width:0; position:relative; z-index:2; }
.hero .eyebrow { color:#f2c85f; }
.eyebrow { margin:0 0 14px; color:#7d5d22; font:700 .76rem/1.2 Arial,sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.hero h1 { font-size:clamp(3rem,8vw,6rem); line-height:.86; letter-spacing:-.055em; margin:0; font-weight:600; color:#fffdf4; text-shadow:0 3px 0 rgba(0,0,0,.2); }
.intro { max-width:600px; font-size:clamp(1.05rem,2.4vw,1.25rem); line-height:1.65; margin:30px 0 0; }
.hero .intro { color:#edf3e8; }
.hero-stars { position:absolute; right:28px; top:18px; color:var(--gold); font-size:1.5rem; letter-spacing:.35em; z-index:2; }
.hero-stars span { color:#fff; }
.snow-bank { position:absolute; left:-3%; right:-3%; bottom:-24px; height:48px; border-radius:50% 50% 0 0/75% 75% 0 0; background:#fffdf7; z-index:2; box-shadow:130px -7px 0 -5px #fffdf7,350px 2px 0 -8px #fffdf7,620px -8px 0 -3px #fffdf7; }
.station-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; position:relative; z-index:1; }
.station-card { min-height:180px; padding:0; background:linear-gradient(145deg,rgba(255,253,247,.98),rgba(249,244,225,.94)); border:1px solid rgba(18,61,52,.18); border-top:4px solid var(--pine); border-radius:18px; box-shadow:0 10px 34px rgba(32,54,41,.09); position:relative; overflow:hidden; }
.station-card::after { content:"✦"; position:absolute; right:15px; top:12px; width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:var(--gold); background:rgba(7,55,47,.78); font-size:1.1rem; }
.station-card:nth-child(3n+2) { border-top-color:var(--red); }
.station-card:nth-child(3n) { border-top-color:var(--gold); }
.station-card-image { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:#dfe7dc; }
.station-card-body { display:flex; gap:20px; padding:22px 24px 25px; }
.number { font:600 2.4rem/1 Arial,sans-serif; color:var(--gold); letter-spacing:-.05em; }
.card-copy { flex:1; }
.card-copy>p { margin:1px 0 7px; font:700 .68rem/1 Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#6e746a; }
.card-copy h2 { font-size:1.3rem; line-height:1.18; margin:0 0 22px; }
.card-actions { display:flex; gap:9px; }
.card-actions a,.mode-switch button { text-decoration:none; border:1px solid var(--pine); border-radius:999px; padding:10px 15px; font:700 .82rem/1 Arial,sans-serif; }
.card-actions .listen { background:var(--red); border-color:var(--red); color:white; }
footer { padding:38px 0 0; text-align:center; font-style:italic; color:#59675f; position:relative; z-index:1; }
footer span { color:var(--gold); padding:0 8px; }
.story-shell { max-width:800px; }
.story-nav,.step-nav { display:flex; justify-content:space-between; gap:16px; font:700 .78rem/1.2 Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; padding:10px 0 30px; }
.story-nav a,.step-nav a { text-decoration:none; border-bottom:1px solid currentColor; }
.story-nav .brand-back { display:flex; align-items:center; gap:10px; border:0; }
.brand-back img { width:44px; height:44px; border-radius:50%; background:white; box-shadow:0 0 0 2px rgba(215,170,69,.6); }
.brand-back span { border-bottom:1px solid currentColor; color:var(--ink); }
.story-nav span { color:#6c746d; }
.story-header h1 { display:flex; align-items:flex-start; gap:18px; color:var(--pine); font-size:clamp(2.3rem,8vw,4.7rem); line-height:.98; letter-spacing:-.045em; margin:0 0 28px; }
.story-header h1 span { color:var(--gold); font:600 1.1rem/1 Arial,sans-serif; letter-spacing:0; padding-top:10px; }
.mode-switch { display:inline-flex; background:#e4e5d4; border-radius:999px; padding:4px; margin-bottom:20px; }
.mode-switch button { border:0; background:transparent; cursor:pointer; min-width:110px; }
.mode-switch button.active { background:var(--pine); color:white; box-shadow:0 2px 9px rgba(18,61,52,.22); }
.story-copy { background:linear-gradient(145deg,#fffef9,#faf5e5); border:1px solid rgba(18,61,52,.16); border-top:5px solid var(--gold); border-radius:20px; padding:clamp(24px,6vw,52px); box-shadow:0 18px 55px rgba(32,54,41,.1); }
.story-copy p { font-size:clamp(1.1rem,3vw,1.3rem); line-height:1.72; margin:0 0 1.25em; }
.story-copy p:last-child { margin-bottom:0; }
.story-copy.compact { margin-top:18px; }
.stella{color:#b72e38}.bruno{color:#126795}.linus{color:#3c761c}.fips{color:#9a5a10}.maja{color:#6f3f92}.narrator{color:#26332e}
.audio-panel { border-radius:20px; background:var(--pine); color:white; padding:28px; display:grid; grid-template-columns:auto 1fr; gap:10px 18px; align-items:center; box-shadow:0 18px 55px rgba(18,61,52,.2); }
.audio-icon { width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--gold);font:700 1.6rem/1 Arial,sans-serif;color:var(--pine);grid-row:1/3; }
.audio-panel p,.audio-panel h2 { margin:0; }.audio-panel>div+div>p{font:700 .65rem/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.15em;color:#d7d8c7;margin-bottom:6px}.audio-panel h2{font-size:1.35rem}
.audio-panel audio { grid-column:1/-1; width:100%; margin-top:14px; }.audio-panel .audio-note{grid-column:1/-1;font:italic .82rem/1.4 Georgia,serif;color:#d7d8c7}
.story-illustration { margin:20px 0; overflow:hidden; border-radius:20px; background:var(--pine); border:1px solid rgba(18,61,52,.2); box-shadow:0 18px 55px rgba(32,54,41,.12); }
.story-illustration img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.story-illustration figcaption { padding:12px 18px 13px; color:#fffdf4; font:700 .72rem/1.3 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.legend { display:flex; flex-wrap:wrap; gap:10px 16px; padding:20px 4px; font:600 .75rem/1 Arial,sans-serif; color:#59665f; }
.legend span { display:flex;align-items:center;gap:6px }.legend i { width:8px;height:8px;border-radius:50%;background:currentColor }.legend i.narrator{background:#26332e}.legend i.stella{background:#b72e38}.legend i.bruno{background:#126795}.legend i.linus{background:#3c761c}.legend i.fips{background:#9a5a10}.legend i.maja{background:#6f3f92}
.step-nav { padding-top:28px; }
@media(max-width:680px){.home-shell{padding:18px 14px 45px}.hero{padding:30px 22px 48px;grid-template-columns:86px 1fr;gap:18px;align-items:start;border-radius:22px}.hero-logo-wrap{padding:6px}.hero h1{font-size:clamp(2.2rem,10.5vw,3.6rem)}.hero .eyebrow{font-size:.6rem}.hero .intro{grid-column:1/-1;margin-top:20px}.hero-stars{right:14px;top:9px;font-size:1rem}.station-grid{grid-template-columns:1fr}.station-card{min-height:0}.station-card-body{padding:20px}.story-shell{padding:18px 14px 45px}.story-nav{padding-bottom:34px}.story-header h1{display:block}.story-header h1 span{display:block;padding:0 0 10px}.story-copy{border-radius:16px}.story-illustration{border-radius:16px}.audio-panel{padding:22px}.step-nav{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
