:root{
  --ink:#22231f;--muted:#746e62;--paper:#f8f1df;--paper2:#efe4cd;--paper3:#e4d4b3;
  --green:#133a34;--green2:#1e5148;--green3:#0b2925;--gold:#b68b34;--gold2:#e0c878;
  --red:#915a50;--success:#4f7667;--shadow:0 24px 70px rgba(35,27,12,.18);
  --serif:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  --ui:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --radius:18px;
}
html{background:#cfc2a7;color:var(--ink);font-family:var(--serif);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html[data-theme="night"]{--ink:#eee5d1;--muted:#b9ae97;--paper:#152b28;--paper2:#1a3430;--paper3:#24413b;--green:#d8c27f;--green2:#ead69c;--green3:#0c1e1b;--gold:#d2b565;--gold2:#f0d98c;--shadow:0 28px 80px rgba(0,0,0,.38)}
*{box-sizing:border-box;min-width:0}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 5%,rgba(255,255,255,.35),transparent 23%),linear-gradient(135deg,#d9cfbb,#c4b493 46%,#ddd4c2);overflow-x:hidden}
html[data-theme="night"] body{background:radial-gradient(circle at 20% 0%,rgba(65,96,88,.2),transparent 24%),linear-gradient(145deg,#081b18,#0d2521 48%,#122d28)}
button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.sq-icon{display:inline-grid;place-items:center;line-height:0;flex:0 0 auto}.sq-icon svg{display:block}
#app{min-height:100vh}.app-shell{max-width:1180px;margin:0 auto;padding:0 18px 110px;position:relative}.ambient{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.ambient i{position:absolute;width:5px;height:5px;border-radius:50%;background:rgba(231,207,138,.38);box-shadow:0 0 15px rgba(231,207,138,.34);animation:drift 12s ease-in-out infinite}.ambient i:nth-child(1){left:8%;top:20%}.ambient i:nth-child(2){right:12%;top:40%;animation-delay:-4s}.ambient i:nth-child(3){left:72%;top:80%;animation-delay:-8s}@keyframes drift{50%{transform:translateY(-18px);opacity:.75}}
.topbar{height:76px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(247,239,220,.9);backdrop-filter:blur(18px);border:1px solid rgba(130,103,53,.18);border-top:0;border-radius:0 0 20px 20px;box-shadow:0 10px 32px rgba(54,41,18,.08)}
html[data-theme="night"] .topbar{background:rgba(16,39,35,.92);border-color:rgba(218,190,111,.15)}
.brand-button{border:0;background:transparent;display:flex;align-items:center;gap:11px;color:inherit;padding:0}.brand-mark{width:42px;height:48px;border-radius:5px 11px 11px 5px;background:linear-gradient(90deg,#0a2925 0 11%,#173f38 11%);border:1px solid #0b2925;color:#efd991;display:grid;place-items:center;font-family:var(--serif);font-weight:700;letter-spacing:.04em;box-shadow:0 7px 16px rgba(17,54,48,.16),inset 0 1px rgba(255,255,255,.08);position:relative}.brand-mark:after{content:"✦";position:absolute;font-size:.52rem;right:5px;top:4px}.brand-copy{text-align:left;line-height:1}.brand-copy strong{font-size:1.08rem;display:block}.brand-copy small{font-family:var(--ui);font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:5px;display:block}.top-actions{display:flex;align-items:center;gap:8px}.icon-button{border:1px solid rgba(142,116,65,.3);background:rgba(255,253,246,.62);color:var(--green);min-height:42px;padding:0 12px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:7px;font-family:var(--ui);font-size:.75rem;font-weight:750;box-shadow:inset 0 1px rgba(255,255,255,.6)}html[data-theme="night"] .icon-button{background:rgba(255,255,255,.04);color:var(--gold2);border-color:rgba(221,197,132,.2)}
.main-stage{min-height:calc(100vh - 170px);margin-top:18px;background:radial-gradient(circle at 15% 5%,rgba(255,255,255,.67),transparent 18%),repeating-linear-gradient(0deg,rgba(87,62,25,.012) 0 1px,transparent 1px 4px),linear-gradient(180deg,#fcf8eb,#f5ebd5);border:1px solid #cfbd95;border-radius:10px 24px 24px 10px;box-shadow:var(--shadow);padding:clamp(26px,5vw,58px);position:relative;overflow:hidden}
.main-stage:before{content:"";position:absolute;left:0;top:0;bottom:0;width:24px;background:linear-gradient(90deg,rgba(81,59,21,.16),rgba(81,59,21,.03),transparent);pointer-events:none}.main-stage:after{content:"StoryQuest";position:absolute;right:28px;bottom:14px;font:600 .6rem/1 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:#9d917a;pointer-events:none}
html[data-theme="night"] .main-stage{background:radial-gradient(circle at 15% 4%,rgba(255,255,255,.035),transparent 20%),repeating-linear-gradient(0deg,rgba(255,255,255,.009) 0 1px,transparent 1px 4px),linear-gradient(180deg,#18342f,#122a26);border-color:rgba(221,193,120,.19)}html[data-theme="night"] .main-stage:before{background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(0,0,0,.06),transparent)}html[data-theme="night"] .main-stage:after{color:#718780}
.bottom-nav{position:fixed;z-index:60;bottom:0;left:50%;transform:translateX(-50%);width:min(980px,calc(100% - 24px));display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:7px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(245,237,219,.96);backdrop-filter:blur(18px);border:1px solid #c7b58f;border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -14px 36px rgba(57,43,20,.13)}html[data-theme="night"] .bottom-nav{background:rgba(15,36,32,.97);border-color:rgba(214,188,119,.18)}
.nav-button{border:0;background:transparent;color:#736b5e;min-height:62px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font:700 .63rem/1 var(--ui);letter-spacing:.05em}.nav-button .sq-icon{width:34px;height:30px;border-radius:999px}.nav-button.active{background:linear-gradient(180deg,rgba(238,226,196,.95),rgba(229,212,173,.9));color:var(--green)}html[data-theme="night"] .nav-button{color:#9faea9}html[data-theme="night"] .nav-button.active{background:rgba(218,190,111,.11);color:var(--gold2)}
.eyebrow{font:800 .66rem/1.2 var(--ui);text-transform:uppercase;letter-spacing:.18em;color:#7a6d56}html[data-theme="night"] .eyebrow{color:#aa9a77}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.06;margin:.22em 0 .45em;text-wrap:balance}h1{font-size:clamp(2.3rem,6vw,4.7rem);letter-spacing:-.015em;color:#163b34}h2{font-size:clamp(1.55rem,4vw,2.55rem);color:#1d433c}h3{font-size:1.2rem;color:#234941}html[data-theme="night"] h1,html[data-theme="night"] h2,html[data-theme="night"] h3{color:#f0e4c9}p{line-height:1.72;margin:.55em 0 1.15em}.author{font-style:italic;color:var(--muted);margin-top:-.3em}.lead{font-size:1.1rem;color:var(--muted);max-width:68ch}.btn{border:0;min-height:48px;padding:13px 20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:800 .72rem/1 var(--ui);text-transform:uppercase;letter-spacing:.08em;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(180deg,#235a50,#123a33);color:#fff9e8;border:1px solid #0d302a;box-shadow:0 10px 20px rgba(17,57,50,.18),inset 0 1px rgba(255,255,255,.13)}.btn.secondary{background:linear-gradient(180deg,#f1e0aa,#dbba63);color:#503a08;border:1px solid #c39b3e}.btn.ghost{background:rgba(255,252,244,.5);color:var(--green);border:1px solid #bca980}.btn.wide{width:100%}html[data-theme="night"] .btn.ghost{color:#ead79d;background:rgba(255,255,255,.03);border-color:rgba(218,190,111,.25)}.text-button{border:0;background:transparent;color:var(--green);display:inline-flex;align-items:center;gap:6px;font:750 .74rem var(--ui)}html[data-theme="night"] .text-button{color:var(--gold2)}
/* Setup */
.setup-shell{min-height:100vh;display:grid;place-items:center;padding:28px 14px;background:linear-gradient(145deg,#0b2925,#123c35 50%,#1c5047)}.setup-book{width:min(760px,100%);padding:58px clamp(26px,7vw,64px);border-radius:8px 22px 22px 8px;background:radial-gradient(circle at 82% 16%,rgba(233,210,143,.09),transparent 18%),linear-gradient(90deg,rgba(5,20,18,.45) 0 7%,transparent 7%),repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 4px),linear-gradient(145deg,#0b302b,#15443c);border:1px solid #08241f;color:#f6edd8;box-shadow:0 34px 80px rgba(0,0,0,.35);text-align:center;position:relative}.setup-book:before,.setup-book:after{content:"";position:absolute;inset:14px;border:1px solid rgba(225,198,121,.72);border-radius:4px 14px 14px 4px;pointer-events:none}.setup-book:after{inset:22px;border-color:rgba(225,198,121,.24)}.setup-kicker{font:800 .65rem var(--ui);text-transform:uppercase;letter-spacing:.22em;color:#d9c58d}.setup-book h1{font-size:clamp(3rem,10vw,5.2rem);color:#fff5dd}.setup-book>p{max-width:590px;margin:0 auto 18px;color:#ddd5c1;font-size:1.08rem}.setup-emblem{width:68px;height:68px;border:1px solid #d6b760;border-radius:50%;display:grid;place-items:center;margin:24px auto;color:#e9cf7d;box-shadow:inset 0 0 0 5px rgba(221,193,112,.06),0 0 30px rgba(221,193,112,.08)}.bookplate{margin:28px auto 0;max-width:610px;background:linear-gradient(180deg,#f9f2df,#efe2c7);color:#27241f;padding:24px;border:1px solid #c8ae72;position:relative;text-align:left}.bookplate>span{display:block;text-align:center;font-style:italic;color:#695735;margin-bottom:13px}.field{display:grid;gap:6px;margin:12px 0;font-family:var(--ui)}.field label{font-size:.77rem;font-weight:800;color:#284a43}.field input{width:100%;padding:12px 13px;border:1px solid #c2ad83;background:#fffaf0;color:#24221e;border-radius:5px}.bookplate .btn+ .btn{margin-top:9px}
/* Covers */
.book-cover{aspect-ratio:2/3;position:relative;color:#efd993;filter:drop-shadow(0 16px 20px rgba(39,27,9,.16));perspective:900px}.book-cover .cover-gilt{position:absolute;inset:0;border-radius:4px 12px 12px 4px;background:linear-gradient(90deg,rgba(0,0,0,.25) 0 8%,transparent 8%),repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px),var(--cover,#173c35);border:1px solid rgba(0,0,0,.35);padding:10% 10% 9% 15%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;box-shadow:inset 0 0 0 1px rgba(234,209,139,.10),inset 0 0 28px rgba(0,0,0,.08)}.book-cover .cover-gilt:before{content:"";position:absolute;inset:7%;border:1px solid rgba(232,205,128,.66);border-radius:2px 8px 8px 2px}.book-cover .cover-gilt:after{content:"";position:absolute;inset:10%;border:1px solid rgba(232,205,128,.18);border-radius:1px 6px 6px 1px}.cover-volume,.cover-tier{font:750 .49rem/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:2}.cover-art{width:70%;aspect-ratio:1;display:grid;place-items:center;position:relative;z-index:2}.cover-art svg{width:100%;height:100%;opacity:.82}.cover-copy{position:relative;z-index:2}.cover-copy strong{display:block;font-size:clamp(.78rem,2vw,1.2rem);line-height:1.1;color:#fff6df;text-wrap:balance}.cover-copy em{font-size:.62em;color:#d7c79f;display:block;margin-top:7px}.tone-blue{--cover:#264b58}.tone-emerald{--cover:#173f37}.tone-rust{--cover:#6e3e2b}.tone-moss{--cover:#465e35}.tone-navy{--cover:#243b55}.tone-pine{--cover:#244b42}.tone-bronze{--cover:#6d522f}.tone-violet{--cover:#55416b}.tone-charcoal{--cover:#303638}.tone-willow{--cover:#50614a}.tone-burgundy{--cover:#663843}.tone-slate{--cover:#495761}.tone-crimson{--cover:#73353a}.tone-plum{--cover:#543a50}.tone-midnight{--cover:#242f45}.tone-oxblood{--cover:#5a2d2d}.tone-olive{--cover:#58613c}.tone-cobalt{--cover:#284d6d}.tone-sepia{--cover:#6b553c}.tone-blackberry{--cover:#453248}.book-cover.medium{width:min(220px,100%)}.book-cover.library{width:150px}.book-cover.shelf{width:92px}.book-cover.collection{width:115px}.book-cover.opening{width:180px}
/* Home */
.home-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;align-items:center}.home-copy{padding:12px 4px}.home-copy h1{max-width:8ch}.home-copy p{font-size:1.08rem;max-width:43ch;color:var(--muted)}.current-book-card{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center;padding:24px;background:linear-gradient(145deg,#10352f,#1d4c44);color:#f9efd8;border:1px solid #0b2b26;border-radius:18px;box-shadow:0 18px 34px rgba(17,49,43,.22);position:relative;overflow:hidden}.current-book-card:after{content:"✦";position:absolute;right:24px;top:18px;font-size:2rem;color:rgba(235,211,143,.17)}.current-book-card h2{color:#fff4d9;margin:.15em 0}.current-book-card .author{color:#d7ccb3}.current-info{position:relative;z-index:2}.chapter-chip{display:inline-block;padding:7px 10px;border:1px solid rgba(228,204,137,.28);font:700 .68rem var(--ui);letter-spacing:.04em;margin:7px 0 14px}.progress-line,.tiny-progress,.progress-track,.lesson-progress{height:5px;background:rgba(255,255,255,.13);overflow:hidden}.progress-line span,.tiny-progress i,.progress-track i,.lesson-progress i{display:block;height:100%;background:linear-gradient(90deg,#caa44d,#efd88c)}.home-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:28px 0;border:1px solid #d3c19a;background:#d3c19a}.home-metrics div{background:rgba(255,252,244,.64);padding:18px;text-align:center}.home-metrics span{display:block;font-size:1.7rem;color:var(--green)}.home-metrics small{font:700 .68rem var(--ui);color:var(--muted)}html[data-theme="night"] .home-metrics{border-color:#355047;background:#355047}html[data-theme="night"] .home-metrics div{background:#17332e}html[data-theme="night"] .home-metrics span{color:#ead394}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:34px 0 16px}.section-head h2{margin:.1em 0}.shelf-strip{display:grid;grid-auto-flow:column;grid-auto-columns:110px;gap:14px;overflow-x:auto;padding:12px 4px 24px;scroll-snap-type:x mandatory}.shelf-strip:after{content:"";height:10px;background:linear-gradient(180deg,#80633c,#553f26);position:absolute}.shelf-book{border:0;background:transparent;color:inherit;text-align:center;scroll-snap-align:start;padding:0}.shelf-book>span{display:block;font-size:.73rem;line-height:1.25;margin-top:10px}.discovery-banner{margin-top:20px;border:1px solid #c7ad70;padding:20px;display:flex;gap:16px;align-items:center;background:linear-gradient(135deg,rgba(250,241,211,.9),rgba(237,220,176,.75))}.discovery-icon{width:52px;height:52px;border:1px solid #b88d31;border-radius:50%;display:grid;place-items:center;color:#785510;flex:0 0 auto}html[data-theme="night"] .discovery-banner{background:rgba(215,185,107,.08);border-color:rgba(215,185,107,.25)}
/* Library */
.page-intro{max-width:760px;margin-bottom:42px}.page-intro p{font-size:1.07rem;color:var(--muted)}.library-section{margin:38px 0 58px}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.library-book{border:1px solid #cfbd96;background:rgba(255,252,244,.48);color:inherit;padding:18px;display:grid;grid-template-columns:150px 1fr;gap:18px;text-align:left;border-radius:12px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.library-book:hover{transform:translateY(-3px);box-shadow:0 15px 28px rgba(57,41,14,.09);border-color:#b59657}.library-book.locked{opacity:.88}.cover-wrap{position:relative}.availability-dot{position:absolute;right:-8px;top:-8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#173c35;color:#f3dfa1;border:1px solid #c6a553;box-shadow:0 6px 12px rgba(35,46,32,.15)}.availability-dot.lock{background:#4c4a43;color:#dfd5bd;border-color:#9e927c}.library-copy h3{margin:.2em 0;font-size:1.25rem}.library-copy>p{font-size:.9rem;color:var(--muted);line-height:1.55}.volume-line{font:800 .59rem var(--ui);letter-spacing:.11em;text-transform:uppercase;color:#8b754c}.library-foot{display:flex;justify-content:space-between;gap:8px;font:700 .62rem var(--ui);color:#716754}.tiny-progress{margin-top:9px;background:#ddd0b4}.tiny-progress i{background:#1e5148}html[data-theme="night"] .library-book{background:rgba(255,255,255,.025);border-color:rgba(213,186,115,.18)}html[data-theme="night"] .tiny-progress{background:#2f4b44}
/* Coming soon */
.sealed-volume{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:48px;align-items:center;max-width:900px;margin:20px auto}.sealed-cover{position:relative}.wax-seal{position:absolute;right:-16px;bottom:12%;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#a44e45,#74342f 75%);color:#e8c9a4;font-weight:800;border:3px double #5b2825;box-shadow:0 8px 16px rgba(66,32,25,.22);transform:rotate(-10deg)}.coming-label{display:inline-block;border:1px solid #b99551;padding:9px 13px;font:800 .67rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:#6b5017;background:#f1e1b3;margin:12px 0}
/* Journey */
.book-hero{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:center}.book-hero p{max-width:60ch}.journey-progress{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:18px 0 22px}.journey-progress>div:first-child{display:flex;gap:5px;align-items:baseline}.journey-progress strong{font-size:1.5rem}.journey-progress span{font:700 .67rem var(--ui);color:var(--muted)}.progress-track{background:#ddd0b4}.journey-map{margin:34px 0;position:relative;border:1px solid #bda673;overflow:hidden;min-height:220px;box-shadow:0 14px 28px rgba(56,41,15,.08)}.map-art svg{display:block;width:100%;height:250px}.map-overlay{position:absolute;left:22px;bottom:20px;max-width:420px;background:rgba(246,237,216,.88);backdrop-filter:blur(7px);padding:14px 16px;border:1px solid rgba(156,126,70,.5)}.map-overlay h2{font-size:1.4rem;margin:.15em 0}html[data-theme="night"] .map-overlay{background:rgba(17,42,37,.86)}.chapter-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.chapter-tile{position:relative;border:1px solid #d2c19d;background:rgba(255,252,244,.47);text-align:left;padding:18px 16px 16px;color:inherit;min-height:175px;display:flex;flex-direction:column;gap:7px;transition:.18s}.chapter-tile:hover:not(:disabled){transform:translateY(-2px);border-color:#b39458}.chapter-tile.done{background:linear-gradient(180deg,rgba(233,239,229,.7),rgba(246,241,224,.6));border-color:#a8b99e}.chapter-tile.locked{opacity:.45}.chapter-number{font:800 .64rem var(--ui);letter-spacing:.13em;color:#8b764f}.chapter-state{position:absolute;right:13px;top:13px;color:#6b806f}.chapter-tile strong{font-size:1.05rem;color:#23433d}.chapter-tile small{font-size:.82rem;line-height:1.48;color:var(--muted);flex:1}.chapter-meta{font:700 .62rem var(--ui);text-transform:uppercase;letter-spacing:.07em;color:#847659}html[data-theme="night"] .chapter-tile{background:rgba(255,255,255,.025);border-color:rgba(213,186,115,.16)}html[data-theme="night"] .chapter-tile.done{background:rgba(118,151,126,.08)}html[data-theme="night"] .chapter-tile strong{color:#eee2c7}
/* Lesson engine */
.lesson-header{text-align:center;max-width:760px;margin:0 auto 28px}.lesson-header .back-link{border:0;background:transparent;color:var(--muted);font:750 .7rem var(--ui);margin-bottom:15px}.lesson-header h1{font-size:clamp(2rem,5vw,3.5rem)}.lesson-progress{max-width:420px;margin:13px auto 0;background:#dccfb1}.lesson-sheet{max-width:800px;margin:0 auto;animation:pageEnter .28s ease both}@keyframes pageEnter{from{opacity:.55;transform:translateX(8px)}to{opacity:1;transform:none}}.chapter-title-page{text-align:center;padding:28px 18px}.chapter-title-page>span{font:800 .67rem var(--ui);letter-spacing:.2em;text-transform:uppercase;color:#817154}.chapter-title-page h2{font-size:clamp(2.5rem,7vw,4.7rem);font-weight:500}.dropcap{max-width:62ch;margin:18px auto;text-align:left}.dropcap:first-letter{float:left;font-size:4.6rem;line-height:.74;padding:.13em .1em 0 0;color:#996d1d}.big-question,.carry-question{margin:24px auto;max-width:660px;border:1px solid #c4a65e;border-left:4px solid #a37520;background:linear-gradient(180deg,#f5e9c9,#ecdbab);padding:20px;font-size:1.38rem;line-height:1.4;text-align:center;color:#4b390f}.big-question small,.carry-question small{display:block;font:800 .61rem var(--ui);letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px;color:#75602c}html[data-theme="night"] .big-question,html[data-theme="night"] .carry-question{background:rgba(207,177,94,.09);color:#eedca7;border-color:rgba(211,181,99,.35)}.quest-list{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:18px 0 26px}.quest-list span{display:inline-flex;align-items:center;gap:7px;border:1px solid #d1c09b;padding:8px 10px;font:700 .68rem var(--ui);color:#655d51}.lesson-focus{display:grid;grid-template-columns:86px 1fr;gap:22px;align-items:start;padding:20px 0}.illuminated-letter{width:82px;height:92px;border:1px solid #b9913f;display:grid;place-items:center;font-size:4.4rem;color:#8e651b;background:linear-gradient(145deg,#f6e8bd,#e6cf8f);box-shadow:inset 0 0 0 6px rgba(255,251,234,.42)}.word-preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0 24px}.word-preview-grid article{border:1px solid #d0bd95;padding:17px;background:rgba(255,252,244,.45)}.word-preview-grid article>span{font-size:1.45rem;color:#194038}.word-preview-grid small{color:var(--muted);line-height:1.45}.reading-page{text-align:center;border-top:1px solid #bda36c;border-bottom:1px solid #bda36c;padding:30px 18px}.reading-emblem{width:80px;height:80px;margin:0 auto 16px;border:1px solid #b78b33;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 28%,#fff5ce,#e3c36b);color:#573f0c;position:relative}.reading-emblem i{position:absolute;right:6px;top:2px;color:#fff3bd}.reading-page .btn{margin-top:8px}.reaction-intro{text-align:center}.reaction-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.reaction{min-height:108px;border:1px solid #ceb98d;background:rgba(255,252,244,.5);color:inherit;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.reaction b{color:#b68b34;letter-spacing:.08em}.reaction span{font:700 .75rem var(--ui)}.reaction.selected{border-color:#486b60;background:#e8eee5}.question-card{padding:8px 0}.question-kicker{font:800 .64rem var(--ui);letter-spacing:.16em;text-transform:uppercase;color:#7b6d55}.question-card h2{font-size:clamp(1.5rem,4vw,2.4rem);max-width:28ch}.answer-list{display:grid;gap:10px;margin:20px 0}.answer{width:100%;border:1px solid #cdb991;background:rgba(255,252,244,.5);color:inherit;padding:14px 15px;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;text-align:left;min-height:58px;transition:.16s}.answer:hover:not(:disabled){border-color:#a88647;background:#fffaf0}.answer>span{width:30px;height:30px;border:1px solid #b89e69;border-radius:50%;display:grid;place-items:center;font:800 .68rem var(--ui);color:#6e5b35}.answer b{font-weight:600;line-height:1.4}.answer.selected{box-shadow:inset 4px 0 #345e53}.answer.correct{border-color:#6c927d;background:#e7eee5;box-shadow:inset 4px 0 #4e7765}.answer-list.compact{grid-template-columns:repeat(2,1fr)}.answer-list.compact .answer{display:flex;justify-content:center}.response-note{padding:14px 15px;border-left:4px solid #a77520;background:#f3e6c3;display:flex;gap:9px;align-items:flex-start;margin:14px 0}.response-note.success{border-color:#4f7865;background:#e6eee4}.response-note em{font:750 .64rem var(--ui);white-space:nowrap;margin-left:auto;color:#6d5a33}.sequence-picked,.sequence-pool{display:grid;gap:8px;margin:12px 0}.sequence-picked button,.sequence-pool button{border:1px solid #cdb991;background:rgba(255,252,244,.5);color:inherit;text-align:left;padding:13px;line-height:1.4}.sequence-picked button{background:#e7eee5}.sequence-picked button span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#194239;color:white;margin-right:8px;font:750 .66rem var(--ui)}.sequence-placeholder{border:1px dashed #c8b795;padding:18px;text-align:center;color:var(--muted)}.match-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:18px 0}.match-grid label{border:1px solid #d0bd95;padding:13px;display:grid;gap:8px}.match-grid select{width:100%;padding:10px;border:1px solid #c3b089;background:#fffaf0;color:#2a2721}.completion-mini,.knowledge-page,.journal-page,.big-question-page,.chapter-complete{text-align:center;padding:24px 0}.completion-mini .sq-icon,.knowledge-mark{width:70px;height:70px;border-radius:50%;border:1px solid #b68b34;display:grid;place-items:center;margin:0 auto 14px;color:#74520f;background:#f0dfaa}.context-example{font-style:italic;color:var(--muted);border-top:1px solid #dbcbaa;padding-top:14px}.knowledge-page p{max-width:64ch;margin:0 auto 22px;font-size:1.08rem}.reflection-cloud{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:20px 0}.reflection-chip{border:1px solid #c9b68d;background:rgba(255,252,244,.5);color:inherit;padding:10px 14px;border-radius:999px}.reflection-chip.selected{background:#173f37;color:#f8efd8;border-color:#173f37}.journal-saved{display:inline-flex;align-items:center;gap:7px;color:#4e6d60;font:750 .72rem var(--ui);margin-bottom:15px}.big-question-page h2{font-size:clamp(1.8rem,5vw,3rem);max-width:24ch;margin-left:auto;margin-right:auto}.keepsake-seal{width:90px;height:90px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff2c6,#dbbb62 68%,#b78f37);border:1px solid #a67d29;color:#63470d;box-shadow:0 10px 22px rgba(113,81,18,.14),inset 0 1px rgba(255,255,255,.7);animation:sealReveal .55s ease both}@keyframes sealReveal{from{transform:scale(.55) rotate(-14deg);opacity:0}to{transform:scale(1);opacity:1}}.complete-journal{max-width:540px;margin:22px auto;padding:20px;border:1px solid #c7ae76;background:repeating-linear-gradient(180deg,#faf3df 0 31px,#e5d7b9 31px 32px);text-align:left}.complete-journal>span{font:800 .62rem var(--ui);text-transform:uppercase;letter-spacing:.13em;color:#7c6840}.complete-journal>strong{display:block;font-size:1.5rem;margin:9px 0;color:#194038}.complete-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}
html[data-theme="night"] .word-preview-grid article,html[data-theme="night"] .reaction,html[data-theme="night"] .answer,html[data-theme="night"] .sequence-picked button,html[data-theme="night"] .sequence-pool button,html[data-theme="night"] .reflection-chip{background:rgba(255,255,255,.025);border-color:rgba(211,186,119,.18)}html[data-theme="night"] .answer:hover:not(:disabled){background:rgba(255,255,255,.05)}html[data-theme="night"] .answer.correct,html[data-theme="night"] .reaction.selected{background:rgba(91,126,106,.12)}html[data-theme="night"] .response-note.success{background:rgba(90,128,105,.11)}html[data-theme="night"] .response-note{background:rgba(193,157,70,.08)}html[data-theme="night"] .match-grid select{background:#1d3933;color:#eee3c9;border-color:#526359}html[data-theme="night"] .complete-journal{background:repeating-linear-gradient(180deg,#1b3530 0 31px,#304b43 31px 32px)}html[data-theme="night"] .complete-journal>strong{color:#ecdba9}
/* Words, Explore, Profile */
.word-summary,.collection-stats,.grownup-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d2bf97;border:1px solid #d2bf97;margin:20px 0 28px}.word-summary>div,.collection-stats>div,.grownup-metrics>div{background:rgba(255,252,244,.6);padding:18px;text-align:center}.word-summary strong,.collection-stats strong,.grownup-metrics strong{display:block;font-size:1.8rem;color:#174039}.word-summary span,.collection-stats span,.grownup-metrics span{font:700 .67rem var(--ui);color:var(--muted)}.word-library{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.word-entry{border:1px solid #d0bd95;padding:18px;display:grid;grid-template-columns:1fr 66px;gap:14px;align-items:center;background:rgba(255,252,244,.4)}.word-entry h3{font-size:1.5rem;margin:.15em 0}.word-entry p{margin:.25em 0}.word-entry small{color:var(--muted);line-height:1.45}.word-level{font:800 .6rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:#806d48}.mastery-ring{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#b58932 var(--p),#dfd2b7 0);position:relative}.mastery-ring:after{content:"";position:absolute;inset:6px;border-radius:50%;background:#f8f0dd}.mastery-ring b{position:relative;z-index:2;font:800 .68rem var(--ui)}.storycraft-panel{display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:center;padding:22px;border:1px solid #c9b27d}.storycraft-orbit{width:210px;height:210px;border:1px solid #b99b59;border-radius:50%;position:relative;display:grid;place-items:center;margin:auto}.storycraft-orbit b{font-size:2rem;color:#1d4b42}.storycraft-orbit span{position:absolute;font:700 .64rem var(--ui);background:#f3e8ce;padding:5px 7px;border:1px solid #c8b17c}.storycraft-orbit span:nth-child(1){top:-11px}.storycraft-orbit span:nth-child(2){right:-25px}.storycraft-orbit span:nth-child(3){bottom:-11px}.storycraft-orbit span:nth-child(4){left:-20px}.journal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.journal-entry{border:1px solid #c4ac76;padding:18px;background:repeating-linear-gradient(180deg,#fbf5e5 0 31px,#e5d8bd 31px 32px)}.journal-entry>span{font:800 .61rem var(--ui);letter-spacing:.11em;text-transform:uppercase;color:#7a6843}.journal-entry blockquote{margin:12px 0;padding-left:12px;border-left:3px solid #b58a34;font-style:italic}.empty-state{color:var(--muted)}.profile-hero{display:flex;justify-content:space-between;gap:24px;align-items:center}.profile-medallion{width:74px;height:74px;border:1px solid #b68a34;border-radius:50%;display:grid;place-items:center;color:#78550e;background:#efdda5}.collection-stats{grid-template-columns:repeat(4,1fr)}.collection-shelf{display:flex;gap:18px;overflow-x:auto;padding:10px 4px 24px}.collection-volume{text-align:center;flex:0 0 120px}.collection-volume>span{font:800 .64rem var(--ui);margin-top:8px;display:block}.collection-volume.complete .book-cover{filter:drop-shadow(0 15px 18px rgba(39,27,9,.14)) saturate(1.1)}.settings-panel{margin:28px 0;border:1px solid #c9b68f;padding:20px}.settings-panel>label{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-top:1px solid #ddd0b3}.settings-panel>label:first-of-type{margin-top:14px}.settings-panel label span{font-weight:600}.settings-panel label small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.settings-panel input{width:42px;height:22px;accent-color:#1b5147}.grownup-entry,.install-panel{border:1px solid #c2a868;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;background:linear-gradient(135deg,rgba(248,236,202,.76),rgba(237,219,175,.65))}.grownup-entry>div,.install-panel>div{display:flex;align-items:center;gap:14px}.grownup-entry p,.install-panel p{margin:.25em 0}.grownup-entry h2,.install-panel h3{margin:.1em 0}html[data-theme="night"] .word-summary,html[data-theme="night"] .collection-stats,html[data-theme="night"] .grownup-metrics{background:#365149;border-color:#365149}html[data-theme="night"] .word-summary>div,html[data-theme="night"] .collection-stats>div,html[data-theme="night"] .grownup-metrics>div{background:#18342f}html[data-theme="night"] .word-summary strong,html[data-theme="night"] .collection-stats strong,html[data-theme="night"] .grownup-metrics strong{color:#ecd99d}html[data-theme="night"] .word-entry,html[data-theme="night"] .settings-panel{background:rgba(255,255,255,.02);border-color:rgba(213,186,115,.18)}html[data-theme="night"] .mastery-ring:after{background:#17322d}html[data-theme="night"] .storycraft-orbit span{background:#1d3a34}html[data-theme="night"] .journal-entry{background:repeating-linear-gradient(180deg,#1a3430 0 31px,#304b43 31px 32px)}html[data-theme="night"] .grownup-entry,html[data-theme="night"] .install-panel{background:rgba(211,181,99,.07);border-color:rgba(211,181,99,.2)}
/* Modals */
.modal-backdrop{position:fixed;inset:0;background:rgba(18,14,8,.66);z-index:200;display:grid;place-items:center;padding:20px;backdrop-filter:blur(5px)}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:linear-gradient(180deg,#fbf4e3,#efe2c8);border:1px solid #c0a46c;padding:26px;box-shadow:0 28px 80px rgba(0,0,0,.34);color:#27231d}.modal h2,.modal h3{color:#1c433b}.modal-mark{width:58px;height:58px;border:1px solid #b78b34;border-radius:50%;display:grid;place-items:center;color:#76530e;margin-bottom:14px}.modal-actions{display:flex;gap:9px;margin-top:18px}.grownup-modal{width:min(720px,100%)}.grownup-metrics{margin:18px 0}.grownup-chart>span{font:800 .65rem var(--ui);text-transform:uppercase;letter-spacing:.1em}.grownup-chart>div{height:7px;background:#dccfb0;margin:7px 0 20px}.grownup-chart i{display:block;height:100%;background:#20584e}.grownup-callout{border-left:4px solid #ae812d;background:#f2e5c2;padding:14px 15px;margin:15px 0}.grownup-callout.soft{border-color:#547969;background:#e6eee4}
/* Signature opening */
.book-open-overlay{position:fixed;inset:0;z-index:300;background:radial-gradient(circle at center,#1d4a42,#071b18 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;opacity:0;transition:opacity .25s ease;color:#ead99f}.book-open-overlay.show{opacity:1}.book-open-overlay.leave{opacity:0}.opening-book{transform:perspective(900px) rotateY(-16deg) scale(.86);transition:transform .55s cubic-bezier(.2,.75,.2,1)}.book-open-overlay.show .opening-book{transform:perspective(900px) rotateY(0) scale(1)}.book-open-overlay>span{font-size:1.3rem;text-align:center;padding:0 20px}
/* Responsive */
@media(max-width:980px){.library-grid{grid-template-columns:1fr}.chapter-path{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{grid-template-columns:1fr}.home-copy h1{max-width:none}.current-book-card{max-width:760px}.sealed-volume{grid-template-columns:260px 1fr}.word-library{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{padding:0 8px 104px}.topbar{height:68px;padding:8px 10px;border-radius:0 0 14px 14px}.brand-mark{width:37px;height:42px}.brand-copy small{font-size:.51rem}.main-stage{margin-top:8px;padding:34px 18px 72px;border-radius:5px 12px 12px 5px}.bottom-nav{width:calc(100% - 10px);padding-left:4px;padding-right:4px}.nav-button{min-height:58px;font-size:.57rem}.current-book-card{grid-template-columns:128px 1fr;gap:17px;padding:18px}.home-metrics{grid-template-columns:repeat(2,1fr)}.library-book{grid-template-columns:118px 1fr;padding:14px}.book-cover.library{width:118px}.chapter-path{grid-template-columns:1fr}.book-hero{grid-template-columns:135px 1fr;gap:18px}.journey-progress{grid-template-columns:1fr}.journey-progress .progress-track{grid-row:2}.journey-map{min-height:180px}.map-art svg{height:200px}.map-overlay{left:12px;right:12px;bottom:12px}.reaction-grid{grid-template-columns:repeat(2,1fr)}.word-preview-grid,.match-grid,.answer-list.compact{grid-template-columns:1fr}.storycraft-panel{grid-template-columns:1fr}.journal-grid{grid-template-columns:1fr}.collection-stats{grid-template-columns:repeat(2,1fr)}.sealed-volume{grid-template-columns:1fr;text-align:center}.sealed-cover{width:230px;margin:auto}.wax-seal{right:-10px}.sealed-copy .lead{margin-left:auto;margin-right:auto}.setup-book{padding:44px 22px}.lesson-focus{grid-template-columns:64px 1fr}.illuminated-letter{width:62px;height:72px;font-size:3.3rem}.response-note{flex-wrap:wrap}.response-note em{margin-left:0}.complete-actions .btn{flex:1 1 100%}.grownup-entry,.install-panel{align-items:flex-start;flex-direction:column}.grownup-entry .btn,.install-panel .btn{width:100%}}
@media(max-width:480px){.top-actions .install-button{display:none}.brand-copy strong{font-size:.98rem}.main-stage{padding-left:15px;padding-right:15px}.current-book-card{grid-template-columns:1fr;text-align:center}.current-cover{width:135px;margin:auto}.current-info .chapter-chip{max-width:100%}.book-cover.medium{width:135px}.library-book{grid-template-columns:92px 1fr;gap:12px}.book-cover.library{width:92px}.library-copy>p{display:none}.library-copy h3{font-size:1.05rem}.library-foot{flex-direction:column;gap:3px}.book-hero{grid-template-columns:1fr;text-align:center}.book-hero-cover{width:130px;margin:auto}.book-hero p{margin-left:auto;margin-right:auto}.journey-progress{justify-items:center}.book-hero .btn{width:100%}.chapter-tile{min-height:150px}.reaction{min-height:88px}.answer{grid-template-columns:30px 1fr;padding:12px}.section-head{align-items:flex-start}.text-button{white-space:nowrap}.word-entry{grid-template-columns:1fr 54px}.mastery-ring{width:52px;height:52px}.profile-hero{align-items:flex-start}.profile-medallion{width:58px;height:58px}.word-summary,.grownup-metrics{grid-template-columns:1fr}.quest-list{justify-content:flex-start}.dropcap:first-letter{font-size:3.8rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* StoryQuest 2.1 — layout system repair & unified collection */
html{scroll-padding-bottom:120px}
.app-shell{padding-bottom:140px}
.main-stage{padding-bottom:88px}

/* Home composition */
.home-hero{
  grid-template-columns:minmax(270px,.78fr) minmax(0,1.42fr);
  gap:36px;
  align-items:stretch;
}
.home-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:10px 4px;
}
.home-copy h1{
  max-width:11ch;
  font-size:clamp(3rem,5vw,4.15rem);
  line-height:.98;
  margin:.18em 0 .5em;
}
.home-copy p{max-width:38ch}
.current-book-card{
  grid-template-columns:160px minmax(0,1fr);
  gap:26px;
  padding:26px;
  min-height:318px;
  align-items:center;
}
.current-cover{width:160px;max-width:100%}
.book-cover.medium{width:160px;max-width:100%}
.current-book-card h2{
  font-size:clamp(1.95rem,3vw,2.65rem);
  line-height:1.02;
  max-width:14ch;
  overflow-wrap:normal;
  word-break:normal;
}
.current-info{min-width:0}
.current-info .chapter-chip{
  display:block;
  width:100%;
  max-width:100%;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
}
.current-info .btn{max-width:100%}

/* Metrics breathe instead of feeling like table cells */
.home-metrics{margin:34px 0 38px}
.home-metrics div{padding:20px 12px}
.home-metrics small{display:block;line-height:1.25;margin-top:5px}

/* Home shelf: deliberate row on desktop, carousel on smaller screens */
.shelf-strip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:20px;
  overflow:visible;
  padding:12px 4px 34px;
  position:relative;
}
.shelf-strip:before{
  content:"";
  position:absolute;
  left:0;right:0;bottom:15px;height:8px;
  background:linear-gradient(180deg,#896941,#554027);
  border-radius:2px;
  box-shadow:0 5px 10px rgba(64,44,20,.12);
}
.shelf-strip:after{display:none}
.shelf-book{
  display:block;
  width:100%;
  padding:0;
  min-width:0;
}
.shelf-book .book-cover.shelf{
  width:min(100%,122px);
  margin:0 auto;
}
.shelf-strip,.collection-shelf{scrollbar-width:none;-ms-overflow-style:none}
.shelf-strip::-webkit-scrollbar,.collection-shelf::-webkit-scrollbar{display:none}

/* Covers: each size gets its own typography rather than viewport-based scaling */
.book-cover .cover-gilt{gap:4px;overflow:hidden}
.cover-copy{width:100%;padding:0 2px}
.cover-copy strong{
  font-size:1rem;
  line-height:1.08;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:auto;
}
.cover-copy em{line-height:1.15;margin-top:5px}
.cover-imprint{
  font:750 .46rem/1 var(--ui);
  letter-spacing:.14em;
  text-transform:uppercase;
  position:relative;
  z-index:2;
  color:#d7c79f;
}
.book-cover.shelf .cover-volume,.book-cover.shelf .cover-imprint{font-size:.42rem;letter-spacing:.11em}
.book-cover.shelf .cover-art{width:58%}
.book-cover.shelf .cover-copy strong{font-size:.72rem;line-height:1.04}
.book-cover.shelf .cover-copy strong.title-long{font-size:.67rem}
.book-cover.shelf .cover-copy strong.title-xlong{font-size:.61rem;line-height:1.02}
.book-cover.shelf .cover-copy em{font-size:.49rem;margin-top:4px}
.book-cover.library .cover-copy strong{font-size:.82rem}
.book-cover.library .cover-copy strong.title-long{font-size:.76rem}
.book-cover.library .cover-copy strong.title-xlong{font-size:.69rem;line-height:1.03}
.book-cover.library .cover-copy em{font-size:.54rem}
.book-cover.medium .cover-copy strong{font-size:1rem}
.book-cover.medium .cover-copy strong.title-long{font-size:.91rem}
.book-cover.medium .cover-copy strong.title-xlong{font-size:.83rem;line-height:1.04}
.book-cover.medium .cover-copy em{font-size:.6rem}
.book-cover.large .cover-copy strong{font-size:1.2rem}
.book-cover.large .cover-copy strong.title-long{font-size:1.08rem}
.book-cover.large .cover-copy strong.title-xlong{font-size:.98rem}
.book-cover.opening .cover-copy strong{font-size:1rem}
.book-cover.opening .cover-copy strong.title-long{font-size:.9rem}
.book-cover.opening .cover-copy strong.title-xlong{font-size:.82rem}
.book-cover.collection .cover-copy strong{font-size:.78rem}
.book-cover.collection .cover-copy strong.title-long{font-size:.7rem}
.book-cover.collection .cover-copy strong.title-xlong{font-size:.64rem}
.cover-art svg{overflow:visible}

/* Unified library — no status hierarchy between books */
.library-intro{max-width:820px}
.unified-library{margin-top:30px}
.library-count{
  font:750 .67rem/1 var(--ui);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  border:1px solid #ccb98f;
  padding:8px 11px;
  border-radius:999px;
  white-space:nowrap;
}
.library-grid{align-items:stretch}
.library-book{height:100%;align-items:start}
.library-copy{min-width:0;display:flex;flex-direction:column;height:100%}
.library-copy h3{overflow-wrap:normal;word-break:normal;line-height:1.12}
.library-copy>p:not(.author){flex:1}
.library-foot{margin-top:auto;padding-top:6px}
.cover-wrap{align-self:start}
.availability-dot{z-index:5}

/* Coming soon: equal membership in one collection */
.sealed-copy .eyebrow{white-space:normal}

/* Fixed navigation should never visually crush end-of-page content */
.bottom-nav{bottom:0}
.discovery-banner{margin-bottom:10px}

/* Tablet */
@media(max-width:980px){
  .home-hero{grid-template-columns:1fr;gap:24px}
  .home-copy{display:block;padding:4px 2px}
  .home-copy h1{max-width:13ch;font-size:clamp(2.8rem,7vw,4rem)}
  .current-book-card{max-width:none;width:100%;grid-template-columns:150px minmax(0,1fr);min-height:0}
  .current-cover,.book-cover.medium{width:150px}
  .shelf-strip{
    display:flex;
    gap:18px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    padding-right:38px;
  }
  .shelf-book{flex:0 0 118px;scroll-snap-align:start}
  .shelf-strip:before{left:0;right:-30px}
}

/* Mobile */
@media(max-width:760px){
  .app-shell{padding-bottom:126px}
  .main-stage{padding-bottom:92px}
  .home-copy h1{font-size:clamp(2.7rem,12vw,3.65rem);max-width:10ch}
  .current-book-card{grid-template-columns:126px minmax(0,1fr);gap:16px;padding:18px}
  .current-cover,.book-cover.medium{width:126px}
  .current-book-card h2{font-size:clamp(1.65rem,6vw,2.1rem);max-width:none}
  .current-info .eyebrow{font-size:.58rem}
  .home-metrics{margin:26px 0 32px}
  .shelf-strip{gap:16px;padding-bottom:32px}
  .shelf-book{flex-basis:108px}
  .shelf-book .book-cover.shelf{width:108px}
  .library-count{font-size:.59rem;padding:7px 9px}
  .library-book{gap:16px}
}

@media(max-width:520px){
  .current-book-card{
    grid-template-columns:1fr;
    text-align:center;
    padding:20px 18px 22px;
  }
  .current-cover{width:132px;margin:0 auto}
  .book-cover.medium{width:132px}
  .current-info .chapter-chip{text-align:left}
  .current-info .btn{width:100%}
  .home-copy h1{max-width:9ch}
  .section-head{align-items:flex-end;gap:10px}
  .section-head h2{font-size:1.9rem}
  .text-button{font-size:.68rem}
  .library-section .section-head{align-items:center}
  .library-book{grid-template-columns:94px minmax(0,1fr)}
  .book-cover.library{width:94px}
  .library-copy h3{font-size:1.04rem}
  .volume-line{font-size:.55rem}
  .library-foot{font-size:.59rem}
}

@media(max-width:360px){
  .main-stage{padding-left:13px;padding-right:13px}
  .brand-copy small{display:none}
  .home-copy h1{font-size:2.65rem}
  .home-metrics{grid-template-columns:1fr 1fr}
  .home-metrics div{padding:16px 8px}
  .section-head{flex-wrap:wrap}
  .library-book{grid-template-columns:82px minmax(0,1fr);padding:12px;gap:11px}
  .book-cover.library{width:82px}
  .availability-dot{width:26px;height:26px;right:-5px;top:-5px}
}

/* Keep the current-book panel compact on normal phones; stack only on very narrow screens */
@media (min-width:361px) and (max-width:520px){
  .current-book-card{
    grid-template-columns:108px minmax(0,1fr);
    text-align:left;
    padding:17px;
    gap:15px;
  }
  .current-cover,.book-cover.medium{width:108px;margin:0}
  .current-book-card h2{font-size:1.55rem;line-height:1.03;text-align:left}
  .current-book-card .author{text-align:left}
  .current-info .chapter-chip{text-align:left;font-size:.62rem;padding:6px 8px;margin:5px 0 10px}
  .current-info .btn{font-size:.64rem;padding:11px 12px;min-height:44px}
}
@media(max-width:360px){
  .current-book-card{grid-template-columns:1fr;text-align:center}
  .current-cover{width:118px;margin:auto}
  .book-cover.medium{width:118px}
  .current-book-card h2{text-align:center;font-size:1.58rem}
  .current-book-card .author{text-align:center}
}
@media(max-width:480px){
  .library-copy .author{display:block!important;font-size:.78rem;margin:.12em 0 .55em;color:var(--muted)}
  .library-copy>p:not(.author){display:none}
}
/* Medium covers need extra breathing room for long classic titles */
.book-cover.medium .cover-gilt{padding:8% 9% 7% 14%;gap:2px}
.book-cover.medium .cover-art{width:45%}
.book-cover.medium .cover-imprint{font-size:.4rem;letter-spacing:.1em}
.book-cover.medium .cover-copy em{margin-top:3px}

/* === StoryQuest 3.0: family sync, streaks & final spacing fixes === */
.account-switch{text-decoration:none}
.streak-badge{display:inline-flex;align-items:center;gap:10px;margin-top:17px;padding:10px 13px;border:1px solid #c9ab69;background:linear-gradient(180deg,#f7edcf,#eddbad);color:#62470e;max-width:100%}
.streak-badge .sq-icon{flex:0 0 auto}.streak-badge div{min-width:0}.streak-badge strong{display:block;font:800 .75rem var(--ui);letter-spacing:.04em}.streak-badge small{display:block;margin-top:2px;font:600 .63rem/1.35 var(--ui);color:#76623a}
html[data-theme="night"] .streak-badge{background:rgba(212,180,96,.11);border-color:rgba(212,180,96,.32);color:#efd994}html[data-theme="night"] .streak-badge small{color:#cfc3a5}
.account-sync-panel,.family-access-panel{margin:25px 0;border:1px solid #cbb789;background:linear-gradient(180deg,rgba(250,243,224,.78),rgba(241,229,199,.62));padding:21px;display:flex;align-items:center;gap:17px}.account-sync-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#173f37;color:#efd58d;border:1px solid #0f312b}.account-sync-panel h2,.family-access-panel h2{margin:.12em 0 .3em}.account-sync-panel p,.family-access-panel p{margin:0;color:var(--muted)}.family-access-panel{justify-content:space-between}.family-access-panel>div:first-child{display:flex;gap:15px;align-items:center}.family-access-actions{display:flex;gap:9px;flex-wrap:wrap}.family-access-actions .btn{text-decoration:none}
html[data-theme="night"] .account-sync-panel,html[data-theme="night"] .family-access-panel{background:rgba(209,180,103,.06);border-color:rgba(209,180,103,.22)}

/* Issue 2: cover labels and continue card spacing */
.book-cover .cover-volume{margin-top:5px;padding:2px 5px;line-height:1.2}
.book-cover .cover-imprint{margin-bottom:5px;padding:2px 5px;line-height:1.2}
.book-cover.medium .cover-gilt{padding-top:9.5%;padding-bottom:8.5%}
.current-info .chapter-chip{padding:9px 11px;line-height:1.35;margin:10px 0 13px;min-height:34px;display:flex;align-items:center}
.current-info .progress-line{margin:4px 0 17px}
.current-info .btn{margin-top:0}

/* Issues 3 & 4: status/reward text must never crowd an action */
.completion-mini>span{display:block;margin:17px 0 20px;line-height:1.4}
.completion-mini>.btn{margin-top:0}
.journal-saved{display:flex;justify-content:center;width:max-content;max-width:100%;margin:18px auto 21px;padding:0 4px;line-height:1.4}
.journal-page>.btn{margin-top:0}
.response-note+.btn{margin-top:18px}

@media(max-width:760px){.family-access-panel{align-items:flex-start;flex-direction:column}.family-access-actions{width:100%}.family-access-actions .btn{flex:1 1 100%;text-align:center}.account-sync-panel{align-items:flex-start}.streak-badge{width:100%}.journal-saved{width:100%;justify-content:center}}
.tone-amber{--cover:#6b5228}

/* === StoryQuest 3.2: Classics / Modern library + Perfect Week streaks === */
.library-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:-12px 0 34px;padding:5px;border:1px solid #ccb98f;background:rgba(255,252,244,.55);width:max-content;max-width:100%}
.library-tab{border:0;background:transparent;color:#665c4a;padding:11px 16px;font:800 .69rem var(--ui);letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;gap:8px;cursor:pointer}
.library-tab span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border:1px solid #c9b78e;background:#f6eedb;color:#755d2d;font-size:.62rem}
.library-tab.active{background:#173f37;color:#fff9e8;box-shadow:inset 0 0 0 1px rgba(229,205,142,.18)}
.library-tab.active span{background:#e8d398;border-color:#d0ad58;color:#533b08}
html[data-theme="night"] .library-tabs{background:rgba(255,255,255,.025);border-color:rgba(216,190,122,.2)}
html[data-theme="night"] .library-tab{color:#cbbf9f}html[data-theme="night"] .library-tab.active{color:#fff6d7}
.modern-series{margin-top:44px}
.modern-series + .modern-series{padding-top:8px;border-top:1px solid rgba(184,153,92,.22)}
.collection-tag,.modern-series-chip{display:inline-flex;align-items:center;border:1px solid #cbb374;background:#f4e6ba;color:#6a4d10;padding:5px 8px;font:800 .57rem var(--ui);letter-spacing:.08em;text-transform:uppercase}
.modern-series-chip{margin:2px 0 16px}
.library-foot .collection-tag{margin-left:auto}
.book-cover .cover-copy strong.title-xxlong{font-size:.78em!important;line-height:1.01!important;letter-spacing:-.015em}
.book-cover.shelf .cover-copy strong.title-xxlong{font-size:.55rem!important}
.book-cover.library .cover-copy strong.title-xxlong{font-size:.62rem!important}
.book-cover.medium .cover-copy strong.title-xxlong{font-size:.75rem!important}
.book-cover.large .cover-copy strong.title-xxlong{font-size:.88rem!important}
.book-cover.opening .cover-copy strong.title-xxlong{font-size:.74rem!important}
.book-cover.collection .cover-copy strong.title-xxlong{font-size:.57rem!important}

.streak-card{margin-top:18px;border:1px solid #c6aa67;background:linear-gradient(180deg,#f9efcf,#efddb0);padding:13px 14px;max-width:420px;color:#60450d}
.streak-main{display:flex;align-items:center;gap:10px}.streak-main>.sq-icon{flex:0 0 auto}.streak-main>div{min-width:0}.streak-main strong{display:block;font:800 .77rem var(--ui);letter-spacing:.035em}.streak-main small{display:block;margin-top:2px;font:600 .62rem var(--ui);color:#78633b}
.freeze-bank{margin-left:auto;white-space:nowrap;border:1px solid #c7aa66;background:rgba(255,250,228,.55);padding:6px 8px;font:800 .63rem var(--ui);color:#674a0d}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:12px}
.week-day{display:grid;gap:4px;place-items:center;min-width:0;padding:6px 2px;border:1px solid rgba(172,139,74,.34);background:rgba(255,252,240,.42)}
.week-day b{font:800 .51rem var(--ui);letter-spacing:.04em;text-transform:uppercase;color:#7a6740}.week-day i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:800 .66rem var(--ui);color:#a28f69;background:rgba(255,255,255,.45)}
.week-day.active i{background:#1d5147;color:#fff6db;box-shadow:0 3px 8px rgba(29,81,71,.14)}
.week-day.freeze i{background:#eaf1f0;color:#376b72;border:1px solid #adc8c7}
.week-copy{display:flex;justify-content:space-between;gap:12px;margin-top:9px;font:700 .57rem var(--ui);color:#796640}
.muted-small{font-size:.78rem!important;color:var(--muted)!important;line-height:1.55!important}
html[data-theme="night"] .streak-card{background:rgba(211,179,95,.10);border-color:rgba(211,179,95,.32);color:#efd997}
html[data-theme="night"] .streak-main small,html[data-theme="night"] .week-copy,html[data-theme="night"] .week-day b{color:#cdbf9b}
html[data-theme="night"] .week-day{background:rgba(255,255,255,.025);border-color:rgba(213,186,115,.16)}
html[data-theme="night"] .freeze-bank{background:rgba(255,255,255,.035);border-color:rgba(213,186,115,.2);color:#efd997}

@media(max-width:620px){
  .library-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .library-tab{justify-content:center;padding:10px 8px}
  .streak-card{max-width:none;width:100%}
  .week-copy{flex-direction:column;gap:3px}
  .week-day{padding:5px 1px}.week-day b{font-size:.47rem}.week-day i{width:20px;height:20px}
}
@media(max-width:360px){
  .streak-main{flex-wrap:wrap}.freeze-bank{margin-left:29px}
  .week-strip{gap:3px}.week-day b{font-size:.43rem}
}

/* === StoryQuest 3.3: A Series of Unfortunate Events — continuous case file === */
.series-strip{margin:26px 0 8px;padding:19px 20px;border-top:1px solid #bea466;border-bottom:1px solid #d7c59c;background:linear-gradient(90deg,rgba(239,224,184,.58),rgba(250,245,229,.22));display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,260px) auto;gap:20px;align-items:center}
.series-strip h3{margin:.14em 0 .25em}.series-strip p{margin:0;color:var(--muted);font-size:.91rem}.series-strip .text-button{justify-self:end;white-space:nowrap}
.series-progress{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:10px;align-items:center}.series-progress>span{height:7px;background:#d9ccb0;border:1px solid rgba(151,119,61,.16);overflow:hidden}.series-progress>span>i{display:block;height:100%;background:linear-gradient(90deg,#214e45,#b48b37)}.series-progress>b{font:800 .61rem var(--ui);letter-spacing:.04em;color:#6c5d42;white-space:nowrap}.series-progress.full{margin:20px 0 29px;grid-template-columns:minmax(120px,1fr) auto}.series-progress.full>span{height:8px}
.case-file{margin:30px 0 8px;padding:28px;border:1px solid #bda36c;background:linear-gradient(180deg,rgba(249,242,222,.66),rgba(236,222,191,.26));position:relative}.case-file:before{content:"";position:absolute;inset:7px;border:1px solid rgba(178,143,70,.21);pointer-events:none}.case-file-top,.case-layout,.case-volumes,.series-retrospective{position:relative;z-index:1}.case-file-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start}.case-file-top p{max-width:66ch;color:var(--muted);margin-bottom:0}.case-stats{display:grid;grid-template-columns:repeat(3,minmax(78px,1fr));border:1px solid #c9b17b;background:rgba(255,252,244,.46)}.case-stats>div{padding:14px 12px;text-align:center;border-left:1px solid #d8c8a5}.case-stats>div:first-child{border-left:0}.case-stats strong{display:block;font-size:1.45rem;color:#183f38}.case-stats span{display:block;margin-top:3px;font:800 .53rem/1.25 var(--ui);letter-spacing:.07em;text-transform:uppercase;color:#7a6b4c}
.case-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.8fr);gap:26px;margin:0 0 30px;padding:22px 0;border-top:1px solid rgba(177,143,73,.3);border-bottom:1px solid rgba(177,143,73,.3)}.strength-list{display:grid;gap:10px;margin-top:13px}.strength-row{display:grid;grid-template-columns:minmax(145px,1fr) minmax(100px,1.2fr) 28px;gap:12px;align-items:center}.strength-row>div strong{display:block;font-size:.95rem}.strength-row>div small{display:block;margin-top:2px;color:var(--muted);line-height:1.32}.strength-row>span{height:6px;background:#d8cbaa;overflow:hidden}.strength-row>span i{display:block;height:100%;background:#7f6939}.strength-row>b{text-align:right;font:800 .66rem var(--ui);color:#6e5b35}.current-case-note{margin-top:13px;padding:16px 0 4px;border-top:2px solid #a78132}.current-case-note strong{display:block;color:#1a433c}.current-case-note p{margin:.42em 0;color:var(--muted);font-size:.9rem}
.case-volumes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-volume{padding:16px 17px;border:1px solid #d0c09c;background:rgba(255,252,244,.34);min-height:150px}.case-volume.sealed{opacity:.64;background:repeating-linear-gradient(135deg,rgba(109,91,56,.025) 0 6px,rgba(255,255,255,.12) 6px 12px)}.case-volume.unlocked{border-color:#bba166}.case-volume.complete{box-shadow:inset 3px 0 0 #9b762e}.case-volume-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;padding-bottom:10px;border-bottom:1px solid rgba(177,145,78,.25)}.case-volume-head>span{font:800 .52rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:#8c7548}.case-volume-head>strong{font-size:.93rem;line-height:1.2;color:#21483f}.case-volume-head>small{font:700 .54rem var(--ui);color:#867653;text-align:right}.case-volume p{margin:.65em 0 0;font-size:.84rem;line-height:1.52;color:#625a4c}.case-volume p b{color:#3d382f}.case-clue{padding-left:10px;border-left:2px solid #b58a34}.case-discovery{color:#3c594f!important}.case-discovery b{color:#2c5148!important}
.series-retrospective{margin-top:24px;padding:22px;border:1px solid #ae8b42;background:linear-gradient(135deg,rgba(235,216,161,.5),rgba(255,250,235,.3));text-align:center}.series-retrospective h3{font-size:1.55rem;margin:.28em auto .4em}.series-retrospective p{max-width:64ch;margin:.4em auto;color:var(--muted)}
.series-word-summary{margin:0 0 25px;padding:21px 0;border-top:1px solid #bfa66f;border-bottom:1px solid #d6c49c;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:25px;align-items:center}.series-word-summary h2{margin:.18em 0 .28em}.series-word-summary p{margin:0;max-width:64ch;color:var(--muted)}.series-word-numbers{display:flex;border:1px solid #c8b17d;background:rgba(255,252,244,.42)}.series-word-numbers>span{min-width:105px;padding:13px 15px;text-align:center;border-left:1px solid #d6c59f}.series-word-numbers>span:first-child{border-left:0}.series-word-numbers strong{display:block;font-size:1.45rem;color:#173f37}.series-word-numbers small{display:block;margin-top:3px;font:800 .54rem var(--ui);letter-spacing:.07em;text-transform:uppercase;color:#756749}
.series-finale{margin:22px 0;padding:25px 22px;border:1px double #a78132;background:linear-gradient(180deg,rgba(242,226,181,.55),rgba(250,244,226,.28));text-align:center}.series-finale h2{font-size:clamp(1.7rem,4vw,2.5rem)}.series-finale p{max-width:66ch;margin:.6em auto 1.2em;color:var(--muted)}
html[data-theme="night"] .series-strip{background:linear-gradient(90deg,rgba(214,181,91,.09),rgba(255,255,255,.015));border-color:rgba(213,186,115,.22)}html[data-theme="night"] .series-progress>span,html[data-theme="night"] .strength-row>span{background:#29453f}html[data-theme="night"] .series-progress>b{color:#c9bb98}
html[data-theme="night"] .case-file{background:linear-gradient(180deg,rgba(208,177,93,.055),rgba(255,255,255,.015));border-color:rgba(216,190,122,.25)}html[data-theme="night"] .case-file:before{border-color:rgba(216,190,122,.1)}html[data-theme="night"] .case-stats,html[data-theme="night"] .series-word-numbers{background:rgba(255,255,255,.025);border-color:rgba(216,190,122,.2)}html[data-theme="night"] .case-stats>div,html[data-theme="night"] .series-word-numbers>span{border-color:rgba(216,190,122,.14)}html[data-theme="night"] .case-stats strong,html[data-theme="night"] .series-word-numbers strong,html[data-theme="night"] .case-volume-head>strong,html[data-theme="night"] .current-case-note strong{color:#efdfb1}html[data-theme="night"] .case-stats span,html[data-theme="night"] .case-volume-head>span,html[data-theme="night"] .case-volume-head>small,html[data-theme="night"] .series-word-numbers small{color:#b9aa86}html[data-theme="night"] .case-layout{border-color:rgba(216,190,122,.15)}html[data-theme="night"] .case-volume{background:rgba(255,255,255,.018);border-color:rgba(216,190,122,.15)}html[data-theme="night"] .case-volume.unlocked{border-color:rgba(216,190,122,.28)}html[data-theme="night"] .case-volume.complete{box-shadow:inset 3px 0 0 #c7a552}html[data-theme="night"] .case-volume-head{border-color:rgba(216,190,122,.12)}html[data-theme="night"] .case-volume p,html[data-theme="night"] .case-volume p b{color:#c8bea7}html[data-theme="night"] .case-discovery,html[data-theme="night"] .case-discovery b{color:#bdd5c9!important}html[data-theme="night"] .series-retrospective,html[data-theme="night"] .series-finale{background:rgba(210,180,96,.07);border-color:rgba(216,190,122,.3)}

@media(max-width:820px){.series-strip{grid-template-columns:1fr;gap:13px}.series-strip .text-button{justify-self:start}.case-file{padding:23px 19px}.case-file-top{grid-template-columns:1fr}.case-stats{width:100%}.case-layout{grid-template-columns:1fr}.case-volumes{grid-template-columns:1fr}.series-word-summary{grid-template-columns:1fr}.series-word-numbers{width:100%}.series-word-numbers>span{flex:1 1 50%}}
@media(max-width:520px){.case-file{padding:22px 14px}.case-stats{grid-template-columns:repeat(3,1fr)}.case-stats>div{padding:11px 5px}.case-stats strong{font-size:1.18rem}.case-stats span{font-size:.47rem}.strength-row{grid-template-columns:minmax(110px,1fr) minmax(70px,1fr) 22px;gap:8px}.strength-row>div small{font-size:.72rem}.case-volume{padding:14px}.case-volume-head{grid-template-columns:1fr auto}.case-volume-head>span{grid-column:1/-1}.series-word-numbers>span{min-width:0;padding:11px 7px}.series-strip{padding:17px 14px}.series-progress.full{grid-template-columns:1fr}.series-progress.full>b{white-space:normal}}


/* StoryQuest 3.4 — Alex Neptune Ocean Quest */
.ocean-strip{background:linear-gradient(90deg,rgba(195,226,226,.48),rgba(250,245,229,.2));border-color:#8fb6b7}
.ocean-strip .series-progress>span,.ocean-file .series-progress>span,.ocean-file .strength-row>span{background:#c8dcda}
.ocean-strip .series-progress>span i,.ocean-file .series-progress>span i,.ocean-file .strength-row>span i{background:#2b6c74}
.ocean-file{border-color:#8caeb0;background:linear-gradient(180deg,rgba(220,239,235,.55),rgba(236,228,203,.24))}
.ocean-file:before{border-color:rgba(52,111,115,.18)}
.ocean-file .case-stats,.ocean-words .series-word-numbers{border-color:#9eb9b7;background:rgba(247,252,248,.45)}
.ocean-file .case-volume.unlocked{border-color:#89aba9}.ocean-file .case-volume.complete{box-shadow:inset 3px 0 0 #397780}.ocean-file .case-clue{border-left-color:#397780}
.ocean-file .current-case-note{border-top-color:#397780}.ocean-file .case-stats strong,.ocean-words .series-word-numbers strong{color:#1c5660}
.ocean-file .power-row>span i{background:#527d8a}.ocean-words{border-color:#95b4b3}.ocean-finale{border-color:#56848b;background:linear-gradient(180deg,rgba(211,235,232,.55),rgba(250,244,226,.28))}
html[data-theme="night"] .ocean-strip{background:linear-gradient(90deg,rgba(71,137,145,.12),rgba(255,255,255,.015));border-color:rgba(124,180,184,.24)}
html[data-theme="night"] .ocean-file{background:linear-gradient(180deg,rgba(60,126,136,.07),rgba(255,255,255,.015));border-color:rgba(124,180,184,.26)}
html[data-theme="night"] .ocean-file:before{border-color:rgba(124,180,184,.11)}html[data-theme="night"] .ocean-file .strength-row>span,html[data-theme="night"] .ocean-file .series-progress>span{background:#294b51}
html[data-theme="night"] .ocean-file .strength-row>span i,html[data-theme="night"] .ocean-file .series-progress>span i{background:#72aeb4}html[data-theme="night"] .ocean-finale{background:rgba(77,139,147,.08);border-color:rgba(124,180,184,.3)}
