/* Brightwit Books: shared styles for every page */
:root{
  --canvas:#F8F3E6;
  --panel:#FFFBF1;
  --sky:#7FC1E3;
  --sky-soft:#D8ECF6;
  --grass:#A3B384;
  --grass-deep:#5E7447;
  --sand:#D9B98A;
  --coral:#EC917F;
  --sun:#F6D46B;
  --accent:#C4503C;
  --accent-hover:#A8412F;
  --accent-muted:#F2C3B8;
  --text-primary:#1B2A4A;
  --text-secondary:#4A5878;
  --line:#8C97AE;
  --ease-out:cubic-bezier(.22,.8,.26,1);
  --ease-soft:cubic-bezier(.45,.05,.25,1);
  --radius:18px;
  --shadow:0 1px 2px rgba(27,42,74,.06),0 10px 30px rgba(27,42,74,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--text-primary);
  font:400 18px/1.6 "Nunito",system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  animation:page-in .6s var(--ease-out) both}
@keyframes page-in{from{opacity:0}to{opacity:1}}
h1,h2,h3{font-family:"Fredoka","Nunito",sans-serif;font-weight:600;line-height:1.1;margin:0 0 .4em;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4vw,3rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%;display:block}
.mono{font:500 .78rem/1.2 "DM Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}
.skip{position:absolute;left:-999px;top:8px;background:var(--panel);padding:10px 14px;border-radius:10px;z-index:100}
.skip:focus{left:16px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}

/* One environment: a slow soft drift of light behind everything */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.env::before{content:"";position:absolute;inset:-20%;
  background:radial-gradient(40% 35% at 20% 15%,rgba(246,212,107,.18),transparent 70%),
             radial-gradient(45% 40% at 85% 70%,rgba(127,193,227,.16),transparent 70%);
  animation:drift 90s ease-in-out -30s infinite alternate}
@keyframes drift{to{transform:translate3d(4%,-3%,0) scale(1.05)}}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(16px,4vw,40px);transition:background .4s var(--ease-soft),box-shadow .4s var(--ease-soft)}
.nav.solid{background:rgba(248,243,230,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(27,42,74,.08)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:600 1.3rem/1 "Fredoka",sans-serif}
.brand img{width:34px;height:34px;border-radius:6px}
.nav ul{display:flex;gap:clamp(12px,2.5vw,28px);list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-weight:700;font-size:.98rem;position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.nav ul a:hover::after{transform:scaleX(1)}
@media (max-width:560px){.nav ul li.opt{display:none}.brand{font-size:1.08rem;gap:8px}.brand img{width:30px;height:30px;border-radius:5px}.nav ul{gap:14px}.nav ul a{font-size:.9rem}}
.nav ul a,.brand{white-space:nowrap}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--accent);color:#FFFBF1;
  font:600 1.08rem/1 "Fredoka",sans-serif;padding:16px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;
  box-shadow:0 6px 18px rgba(196,80,60,.28);transition:transform .3s var(--ease-out),background .3s var(--ease-soft),box-shadow .3s var(--ease-soft)}
.btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 10px 24px rgba(196,80,60,.32)}
.btn.ghost{background:transparent;color:var(--text-primary);box-shadow:inset 0 0 0 2px var(--text-primary)}
.btn.ghost:hover{background:var(--text-primary);color:var(--panel)}
@media (pointer:coarse){.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}

/* Layout */
main{display:block}
.wrap{width:min(1080px,100% - 32px);margin-inline:auto}
.section{padding:clamp(72px,11vw,140px) 0;position:relative;scroll-margin-top:40px}
.kicker{display:block;margin-bottom:14px}
.lede{font-size:1.2rem;color:var(--text-secondary);max-width:46ch}

/* Entrances */
.rise{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.in .rise,.rise.in{opacity:1;transform:none}
.in .rise:nth-child(2){transition-delay:.09s}
.in .rise:nth-child(3){transition-delay:.18s}
.in .rise:nth-child(4){transition-delay:.27s}
.in.settled .rise:nth-child(n){transition-delay:0s}

/* Cards */
.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow)}
.cover{aspect-ratio:8.5/11;border-radius:10px;overflow:hidden;background:var(--sky-soft);position:relative}
.cover img{width:100%;height:100%;object-fit:cover}
.cover.blank{max-width:260px;display:grid;place-items:center;background:linear-gradient(160deg,var(--sky-soft),var(--panel))}
.cover.blank svg{width:40%;opacity:.55}
.badge{display:inline-block;font:500 .72rem/1 "DM Mono",monospace;letter-spacing:.06em;text-transform:uppercase;
  padding:6px 9px;border-radius:999px;background:var(--sky-soft);color:var(--text-primary)}
.badge.soon{background:#F6E7C2}

/* Book grid (series + book pages) */
.page-head{padding:clamp(120px,16vw,170px) 0 30px}
.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:28px;list-style:none;margin:0;padding:0}
.book a{text-decoration:none;display:block}
.book .cover{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out);box-shadow:var(--shadow)}
.book a:hover .cover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 18px 40px rgba(27,42,74,.16)}
.book h3{margin:14px 0 6px}
.book-meta{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}

/* Footer */
.foot{padding:56px 0 40px;border-top:1px solid rgba(27,42,74,.1);color:var(--text-secondary);font-size:.95rem}
.foot .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:baseline}
.foot ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .rise{opacity:1;transform:none}
}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
