:root{
  --forest:#173b35;
  --forest-2:#27584d;
  --forest-3:#0f2d29;
  --paper:#fbf6e8;
  --paper-deep:#f2e8d2;
  --paper-edge:#dfd1b2;
  --ink:#2c2922;
  --muted:#716b60;
  --gold:#b98a2d;
  --gold-light:#dcc27f;
  --gold-soft:#f2e4bc;
  --green-soft:#e4ece6;
  --line:#d7cbb1;
  --red:#8b5146;
  --shadow:0 22px 60px rgba(48,37,20,.18);
  --page-shadow:0 16px 45px rgba(65,51,27,.16),0 2px 4px rgba(65,51,27,.08);
  --radius:8px;
  --serif:Baskerville,"Baskerville Old Face","Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;
  --ui:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{background:#d8cfbc;color:var(--ink);font-family:var(--serif)}
body{
  margin:0;min-height:100vh;
  background:
    radial-gradient(circle at 15% 8%,rgba(255,255,255,.35),transparent 24%),
    radial-gradient(circle at 86% 88%,rgba(70,52,24,.09),transparent 28%),
    repeating-linear-gradient(92deg,rgba(74,56,26,.025) 0 1px,transparent 1px 6px),
    linear-gradient(135deg,#d9d1bf,#cfc5af 48%,#ddd4c2);
}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8aad9d;outline-offset:3px}
#app{min-height:100vh}
.shell{max-width:920px;margin:0 auto;min-height:100vh;padding:0 14px 104px}
.topbar{
  position:sticky;top:0;z-index:20;
  min-height:62px;padding:10px 18px;
  background:rgba(244,238,222,.94);
  backdrop-filter:blur(12px);
  border:1px solid rgba(85,67,35,.12);border-top:0;
  box-shadow:0 5px 18px rgba(59,45,24,.08);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.brand{display:flex;align-items:center;gap:11px;color:var(--forest-3)}
.brand-mark{
  width:39px;height:43px;border-radius:3px 7px 7px 3px;
  background:linear-gradient(90deg,#0e2f2a 0 9%,var(--forest) 10% 100%);
  color:var(--gold-light);display:grid;place-items:center;
  font-family:var(--serif);font-size:18px;font-weight:800;
  border:1px solid #0d2b27;box-shadow:inset 1px 0 rgba(255,255,255,.12),0 4px 10px rgba(23,59,53,.17)
}
.brand-copy{line-height:1.05}
.brand-name{font-family:var(--serif);font-weight:800;font-size:1.12rem;letter-spacing:.015em}
.brand-tagline{font-family:var(--ui);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#7d7567;margin-top:3px}
.top-actions{display:flex;gap:8px}
.icon-btn{font-family:var(--ui);border:1px solid #cfc2a7;background:#fffaf0;border-radius:999px;padding:8px 11px;color:var(--forest);font-weight:750;box-shadow:0 2px 6px rgba(70,53,25,.05)}
main.book-page{
  position:relative;
  margin:16px auto 0;padding:34px clamp(18px,5vw,48px) 46px;
  min-height:calc(100vh - 182px);
  background:
    linear-gradient(90deg,rgba(128,96,44,.045),transparent 7%,transparent 93%,rgba(128,96,44,.04)),
    radial-gradient(circle at 18% 12%,rgba(255,255,255,.58),transparent 24%),
    repeating-linear-gradient(0deg,rgba(91,67,31,.018) 0 1px,transparent 1px 4px),
    var(--paper);
  border:1px solid #d6c8aa;border-radius:4px 10px 10px 4px;
  box-shadow:var(--page-shadow);
  overflow:hidden;
  animation:pageIn .28s ease-out both;
}
main.book-page::before{
  content:"";position:absolute;inset:0 auto 0 0;width:16px;pointer-events:none;
  background:linear-gradient(90deg,rgba(85,65,31,.13),rgba(85,65,31,.025),transparent);
}
main.book-page::after{
  content:"StoryQuest";position:absolute;right:24px;bottom:13px;
  font-family:var(--ui);font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:#a59b87;
}
@keyframes pageIn{from{opacity:.65;transform:translateX(7px) rotateY(-1deg)}to{opacity:1;transform:none}}
.hero{
  color:#f9f3df;border-radius:5px 12px 12px 5px;padding:38px clamp(24px,5vw,48px);
  box-shadow:0 18px 34px rgba(18,49,44,.24);position:relative;overflow:hidden;
  background:
    linear-gradient(90deg,rgba(3,22,19,.35) 0 9%,transparent 9% 100%),
    repeating-linear-gradient(35deg,rgba(255,255,255,.018) 0 1px,transparent 1px 5px),
    linear-gradient(145deg,#143a34,#24594f);
  border:1px solid #0e2d28;
}
.hero::before{content:"";position:absolute;inset:13px;border:1px solid rgba(218,194,126,.72);border-radius:3px 8px 8px 3px;pointer-events:none}
.hero::after{content:"✦";position:absolute;right:31px;top:25px;color:var(--gold-light);font-size:1.45rem;opacity:.85}
.hero .eyebrow{color:#e6d7aa}
.hero h1{color:#fff9e9;text-shadow:0 1px 0 rgba(0,0,0,.15)}
.hero .lead{color:#ece7d7;max-width:640px}
.eyebrow{font-family:var(--ui);text-transform:uppercase;letter-spacing:.16em;font-size:.69rem;font-weight:800;color:#766e5e}
h1,h2,h3{margin:.18em 0 .48em;line-height:1.08}
h1{font-family:var(--serif);font-size:clamp(2.15rem,7vw,3.7rem);font-weight:700;letter-spacing:-.02em;color:var(--forest-3)}
h2{font-family:var(--serif);font-size:clamp(1.65rem,5vw,2.35rem);font-weight:700;color:var(--forest)}
h3{font-family:var(--serif);font-size:1.18rem;color:var(--forest);font-weight:700}
p{line-height:1.72;margin:.5em 0 1.1em}
.lead{font-size:1.11rem;line-height:1.72;max-width:650px}
.chapter-heading{text-align:center;margin:0 auto 26px;max-width:680px;position:relative;padding-bottom:16px}
.chapter-heading::after{content:"❦";display:block;color:var(--gold);font-size:1.15rem;margin-top:12px}
.chapter-heading .eyebrow{margin-bottom:7px}
.chapter-heading h2{margin:.08em 0 .35em}
.card{
  position:relative;background:rgba(255,252,242,.62);
  border:1px solid rgba(160,137,93,.32);border-radius:5px;
  padding:20px 21px;box-shadow:0 3px 10px rgba(86,65,31,.045);margin:16px 0;
}
.card::before{content:"";position:absolute;left:0;top:17px;bottom:17px;width:2px;background:rgba(185,138,45,.28)}
.card.tight{padding:15px 17px}.card.tight::before{top:12px;bottom:12px}
.card-title{font-family:var(--serif);font-weight:700;color:var(--forest);font-size:1.13rem}
.muted{color:var(--muted)}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:620px){.grid.two{grid-template-columns:1fr}.hero{padding:31px 25px}.shell{padding-left:8px;padding-right:8px}.topbar{border-radius:0 0 8px 8px}main.book-page{margin-top:8px;padding:28px 20px 42px;border-radius:3px 7px 7px 3px}}
.btn{
  font-family:var(--ui);border:0;border-radius:5px;padding:13px 18px;font-weight:800;letter-spacing:.025em;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease
}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn.primary{background:linear-gradient(180deg,var(--forest-2),var(--forest));color:#fff;box-shadow:0 6px 14px rgba(23,59,53,.19);border:1px solid #10342f}
.btn.secondary{background:linear-gradient(180deg,#f3e5ba,#e5cc8b);color:#503b0c;border:1px solid #d3b66b;box-shadow:0 4px 10px rgba(90,65,13,.11)}
.btn.ghost{background:#fffaf0;color:var(--forest);border:1px solid #c9bda4}
.btn.wide{width:100%}.btn:disabled{opacity:.48;cursor:not-allowed}
.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.progress-wrap{margin:14px 0 10px}.progress-label{font-family:var(--ui);display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);font-weight:750;margin-bottom:7px;letter-spacing:.02em}
.progress{height:5px;background:#dfd3ba;overflow:hidden;position:relative}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#9f7422,var(--gold-light));transition:width .3s ease}
.bottom-nav{
  position:fixed;z-index:30;left:50%;transform:translateX(-50%);bottom:0;width:min(900px,calc(100% - 16px));
  background:rgba(246,239,222,.98);backdrop-filter:blur(12px);
  border:1px solid #cdbf9f;border-bottom:0;border-radius:12px 12px 0 0;
  display:grid;grid-template-columns:repeat(5,1fr);padding:5px 6px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -10px 28px rgba(66,50,23,.12)
}
.nav-btn{font-family:var(--ui);position:relative;border:0;background:transparent;color:#766e60;padding:8px 3px 6px;font-size:.69rem;font-weight:750;display:flex;flex-direction:column;gap:3px;align-items:center;border-radius:5px}
.nav-btn .nav-ico{font-size:1.12rem}.nav-btn.active{color:var(--forest);background:#efe4ca}
.nav-btn.active::after{content:"";position:absolute;bottom:-9px;width:23px;height:13px;background:var(--forest);clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}
.option-list{display:grid;gap:10px;margin:17px 0}
.option{
  width:100%;text-align:left;border:1px solid #cfc2a7;background:rgba(255,253,247,.82);border-radius:4px;padding:14px 15px;color:var(--ink);
  font-family:var(--serif);font-size:1rem;font-weight:600;line-height:1.42;transition:.15s ease;box-shadow:0 2px 4px rgba(75,57,27,.03)
}
.option:hover{border-color:#9d8a64;background:#fffdf7;transform:translateY(-1px)}
.option.selected{border-color:var(--forest);background:#e9eee7;box-shadow:inset 4px 0 var(--forest)}
.option.correct{border-color:#527b68;background:#e4eee6;box-shadow:inset 4px 0 #527b68}.option.wrong{border-color:#a86f63;background:#f5e9e4;box-shadow:inset 4px 0 #a86f63}
.feedback{border-radius:3px;padding:15px 16px;margin:15px 0;background:#e7eee7;border:1px solid #c5d4c8;border-left:5px solid var(--forest)}
.feedback.warn{background:#f7ece7;border-color:#e4c9c0;border-left-color:#9e6258}.feedback.gold{background:#f8efda;border-color:#e4d2a4;border-left-color:var(--gold)}
.xp-chip{font-family:var(--ui);display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:var(--gold-soft);color:#5f460a;font-weight:800;font-size:.78rem}
.pills{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.pill{font-family:var(--ui);background:#efe7d4;border:1px solid #d9ccb0;border-radius:999px;padding:7px 11px;font-size:.79rem;font-weight:700;color:#514b41}
.word-card{border-left:0}.word-card::before{background:var(--gold);width:3px}.word-term{font-family:var(--serif);font-size:1.55rem;font-weight:700;color:var(--forest)}
.big-question{font-family:var(--serif);font-size:1.43rem;line-height:1.45;background:#f1e3bb;border:1px solid #ddc580;border-radius:3px;padding:19px 20px;color:#493812;margin:18px 0;box-shadow:inset 0 0 18px rgba(149,108,28,.05)}
.reading-screen{text-align:center;padding:25px 22px 32px}.reading-screen::before{display:none}.reading-icon{font-size:4.4rem;margin:10px 0 12px;filter:sepia(.2)}
.reaction-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.reaction{font-family:var(--ui);border:1px solid #cfc2a7;border-radius:5px;background:#fffaf0;padding:13px 6px;text-align:center;font-size:.8rem;font-weight:700;color:#5a5348}.reaction span{display:block;font-size:1.75rem;margin-bottom:6px}.reaction.selected{background:#e8eee7;border-color:var(--forest);box-shadow:inset 0 -3px var(--forest)}
@media(max-width:470px){.reaction-grid{grid-template-columns:repeat(2,1fr)}}
.sequence-pool,.sequence-picked{display:grid;gap:9px;margin:12px 0}.sequence-item{font-family:var(--serif);border:1px solid #cfc2a7;background:#fffaf0;padding:13px;border-radius:4px;font-weight:600;text-align:left}.sequence-item.picked{background:#e8eee7;border-color:#829e90}.sequence-number{font-family:var(--ui);display:inline-grid;place-items:center;width:26px;height:26px;background:var(--forest);color:#fff;border-radius:50%;margin-right:8px;font-size:.76rem}
.match-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;margin:11px 0}.match-row select{font-family:var(--ui);width:100%;padding:11px;border:1px solid #cfc2a7;border-radius:4px;background:#fffaf0;color:#453f35}@media(max-width:560px){.match-row{grid-template-columns:1fr}}
.slider-wrap{padding:12px 3px}.slider-labels{font-family:var(--ui);display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.78rem;font-weight:700}.slider{width:100%;accent-color:var(--forest);margin:14px 0}
.metric{margin:12px 0}.metric-head{font-family:var(--ui);display:flex;justify-content:space-between;font-weight:700;font-size:.84rem}.metric-dots{display:flex;gap:5px;margin-top:7px}.dot{width:18px;height:7px;border-radius:99px;background:#ddd1b9}.dot.on{background:var(--forest)}
.map{background:linear-gradient(160deg,#e8e1c9,#efe5ca);border:1px solid #cabc9b;border-radius:4px;padding:22px;min-height:190px;position:relative;overflow:hidden;box-shadow:inset 0 0 35px rgba(88,65,24,.06)}.map::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(25deg,rgba(87,63,21,.025) 0 1px,transparent 1px 6px);pointer-events:none}.map-path{height:4px;background:repeating-linear-gradient(90deg,#9f7422 0 12px,transparent 12px 21px);width:72%;transform:rotate(-8deg);margin:68px 0 0 35px}.map-stop{font-family:var(--ui);position:absolute;left:28px;bottom:30px;background:var(--forest);color:#fff;border-radius:999px;padding:9px 12px;font-weight:800;font-size:.78rem}.map-future{position:absolute;right:30px;top:32px;color:#756b58;font-size:2rem;filter:sepia(1);opacity:.42}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat{background:#efe8d6;border:1px solid #ddd0b4;border-radius:4px;padding:14px}.stat span{font-family:var(--ui);font-size:.78rem;color:#6d665b}.stat strong{font-family:var(--serif);display:block;font-size:1.6rem;color:var(--forest);margin-top:3px}
.mastery{font-family:var(--ui);display:flex;align-items:center;gap:8px;font-size:.8rem}.mastery-dots{display:flex;gap:3px}.mastery-dots i{width:10px;height:10px;border-radius:50%;background:#d9ccb2}.mastery-dots i.on{background:var(--gold)}
.achievement{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#faf1d4,#eed89c);border:1px solid #d8bd6c;border-radius:4px;padding:17px;box-shadow:inset 0 0 20px rgba(145,102,19,.05)}.achievement-icon{font-size:2.35rem}.achievement strong{font-family:var(--serif);color:#543f0e;font-size:1.08rem}
.notice{font-family:var(--ui);font-size:.82rem;background:#eee6d4;border:1px solid #d9ccb2;border-radius:4px;padding:11px 13px;color:#5b554b}
.modal-backdrop{position:fixed;inset:0;background:rgba(31,25,16,.62);z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(500px,100%);background:var(--paper);border:1px solid #d4c5a6;border-radius:6px;padding:25px;box-shadow:0 25px 70px rgba(0,0,0,.30);position:relative}.modal::before{content:"";position:absolute;inset:9px;border:1px solid rgba(185,138,45,.18);pointer-events:none}
.field{font-family:var(--ui);display:grid;gap:7px;margin:13px 0}.field label{font-weight:800;color:var(--forest)}.field input{border:1px solid #cabc9e;border-radius:4px;padding:12px;background:#fffaf0;color:var(--ink)}.field small{color:var(--muted)}
.setup{max-width:720px;margin:0 auto;padding:26px 14px 46px;min-height:100vh;display:grid;align-content:center}.setup-cover{position:relative;background:linear-gradient(90deg,rgba(6,30,26,.38) 0 8%,transparent 8%),repeating-linear-gradient(38deg,rgba(255,255,255,.018) 0 1px,transparent 1px 5px),linear-gradient(145deg,#123a33,#24594d);color:#f8f1db;padding:46px clamp(24px,6vw,54px);border-radius:5px 13px 13px 5px;border:1px solid #0e2e29;box-shadow:0 24px 56px rgba(31,38,30,.28);overflow:hidden}.setup-cover::before{content:"";position:absolute;inset:14px;border:1px solid rgba(222,196,124,.7);border-radius:3px 8px 8px 3px}.setup-logo{position:relative;width:64px;height:72px;border-radius:3px 8px 8px 3px;background:#f1e4bc;color:var(--forest);display:grid;place-items:center;font-family:var(--serif);font-size:1.65rem;font-weight:800;margin-bottom:22px;box-shadow:0 8px 18px rgba(0,0,0,.15)}.setup .eyebrow{color:#e8d7a5}.setup h1{color:#fff8e7;font-size:clamp(2.7rem,10vw,4.5rem)}.setup .lead{color:#ece6d7}.setup-form{position:relative;background:#fbf6e8;color:var(--ink);padding:20px;margin-top:24px;border:1px solid #dfcfaa;border-radius:3px;box-shadow:0 8px 20px rgba(5,22,19,.16)}.setup-form::before{content:"";position:absolute;inset:7px;border:1px solid rgba(185,138,45,.16);pointer-events:none}.setup .notice{margin-top:15px;background:rgba(249,243,225,.10);border-color:rgba(236,216,161,.28);color:#e9e0cd}
hr{border:0;border-top:1px solid var(--line);margin:22px 0}.ornament{text-align:center;color:var(--gold);font-size:1rem;letter-spacing:.4em;margin:18px 0}
.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}
@media(prefers-reduced-motion:reduce){main.book-page{animation:none}.btn{transition:none}}


/* --- StoryQuest v0.3 Deluxe Book Theme --- */
body{
  background:
    radial-gradient(circle at 12% 10%, rgba(255,255,255,.42), transparent 18%),
    radial-gradient(circle at 82% 86%, rgba(78,53,20,.12), transparent 24%),
    linear-gradient(135deg,#d9cfbb 0%,#cabd9f 46%,#ddd3bf 100%);
}
.shell{max-width:980px;padding-bottom:118px}
.topbar{
  margin-top:10px;border-radius:0 0 14px 14px;
  background:linear-gradient(180deg,rgba(251,245,231,.97),rgba(242,233,214,.97));
  box-shadow:0 10px 24px rgba(63,46,17,.10);
}
.brand-mark{
  width:42px;height:48px;border-radius:4px 10px 10px 4px;
  background:
    linear-gradient(90deg,#0b2824 0 11%, #173b35 11% 100%),
    linear-gradient(180deg,rgba(255,255,255,.08),transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 16px rgba(18,49,44,.18);
}
main.book-page{
  margin-top:18px;
  border-radius:8px 18px 18px 8px;
  border-color:#ccb993;
  box-shadow:0 34px 70px rgba(59,43,17,.18), 0 4px 10px rgba(59,43,17,.08);
  background:
    radial-gradient(circle at 15% 10%,rgba(255,255,255,.68),transparent 18%),
    linear-gradient(90deg,rgba(128,96,44,.06),transparent 8%,transparent 92%,rgba(128,96,44,.04)),
    repeating-linear-gradient(0deg,rgba(90,66,29,.022) 0 1px,transparent 1px 4px),
    linear-gradient(180deg,#fdf9ee,#f6efde 72%,#f3ead6 100%);
}
main.book-page::before{
  width:24px;
  background:
    linear-gradient(90deg,rgba(87,64,26,.18),rgba(87,64,26,.045) 36%,transparent 100%),
    repeating-linear-gradient(180deg,rgba(255,255,255,.1) 0 8px,rgba(0,0,0,0) 8px 16px);
}
main.book-page::after{
  content:"StoryQuest • A Reading Journal";
  right:28px;bottom:14px;color:#9f937d;font-size:.62rem;
}
.hero{
  border-radius:10px 18px 18px 10px;
  padding:44px clamp(24px,5vw,54px);
  box-shadow:0 22px 46px rgba(18,49,44,.27);
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.06), transparent 22%),
    linear-gradient(90deg,rgba(6,28,24,.42) 0 8%,transparent 8% 100%),
    repeating-linear-gradient(35deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px),
    linear-gradient(145deg,#12352f,#1d4c44 48%,#275d52 100%);
}
.hero::before{inset:14px;border:1px solid rgba(222,196,124,.78);border-radius:7px 14px 14px 7px}
.hero::after{content:"✦";right:34px;top:26px;font-size:1.55rem;text-shadow:0 0 16px rgba(255,240,196,.18)}
.hero .action-row{margin-top:24px}
.chapter-heading{padding:2px 0 20px}
.chapter-heading::before{
  content:"";display:block;width:140px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  margin:0 auto 16px;
}
.chapter-heading::after{content:"❦ ❦ ❦";letter-spacing:.18em;font-size:1rem}
.card{
  border-radius:8px;
  padding:22px 23px;
  background:linear-gradient(180deg,rgba(255,255,249,.75),rgba(251,246,232,.88));
  box-shadow:0 8px 18px rgba(86,65,31,.06), inset 0 1px rgba(255,255,255,.5);
  overflow:hidden;
}
.card::before{width:3px;background:linear-gradient(180deg,rgba(185,138,45,.12),rgba(185,138,45,.45),rgba(185,138,45,.12))}
.card::after{
  content:"";position:absolute;right:14px;top:12px;width:28px;height:28px;opacity:.13;pointer-events:none;
  background:radial-gradient(circle at center, rgba(185,138,45,.55) 0 2px, transparent 2px),
             radial-gradient(circle at center, transparent 0 8px, rgba(185,138,45,.55) 8px 9px, transparent 9px);
}
.btn{border-radius:999px;padding:13px 20px;box-shadow:0 8px 16px rgba(51,38,16,.08)}
.btn.primary{background:linear-gradient(180deg,#2b6257,#163c35)}
.btn.secondary{background:linear-gradient(180deg,#f4e7bf,#dec075)}
.btn.ghost{background:linear-gradient(180deg,#fffdf7,#f8f1e0)}
.progress{height:8px;border-radius:999px;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
.progress>span{border-radius:999px;box-shadow:0 0 14px rgba(220,194,127,.45)}
.bottom-nav{
  border-radius:18px 18px 0 0;
  background:linear-gradient(180deg,rgba(248,242,228,.98),rgba(240,232,213,.98));
  box-shadow:0 -14px 30px rgba(66,50,23,.13);
}
.nav-btn{padding:9px 4px 8px;border-radius:10px;font-size:.7rem}
.nav-btn.active{background:linear-gradient(180deg,#f4ead2,#e9dac0);color:var(--forest)}
.nav-btn.active::after{bottom:-10px;width:24px;height:15px;background:linear-gradient(180deg,var(--forest-2),var(--forest));clip-path:polygon(0 0,100% 0,100% 74%,50% 100%,0 74%)}
.option{
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,255,250,.96),rgba(253,248,238,.96));
  border-color:#d4c4a3;
  box-shadow:0 5px 10px rgba(75,57,27,.035);
}
.option:hover{box-shadow:0 8px 14px rgba(75,57,27,.06)}
.option.selected{box-shadow:inset 5px 0 var(--forest),0 6px 12px rgba(23,59,53,.07)}
.option.correct{box-shadow:inset 5px 0 #527b68,0 6px 12px rgba(82,123,104,.08)}
.option.wrong{box-shadow:inset 5px 0 #a86f63,0 6px 12px rgba(168,111,99,.08)}
.feedback,.big-question,.notice,.achievement,.stat,.map,.setup-form,.modal{border-radius:8px}
.big-question{
  background:linear-gradient(180deg,#f7eed6,#f0dfb0);
  box-shadow:inset 0 0 24px rgba(149,108,28,.06),0 8px 14px rgba(112,81,18,.05);
}
.reading-screen{
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.72), transparent 26%),
    linear-gradient(180deg,rgba(255,252,244,.94),rgba(250,244,229,.92));
}
.reaction{border-radius:10px}
.sequence-item,.match-row select{border-radius:8px;background:linear-gradient(180deg,#fffdf7,#fbf5e7)}
.map{
  min-height:220px;border-radius:10px;
  background:
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.45), transparent 18%),
    linear-gradient(160deg,#e8ddbe,#f1e6cc 52%,#e6dcc2);
}
.map::after{
  content:"✷";position:absolute;right:22px;bottom:18px;font-size:2rem;color:rgba(87,63,21,.28);
}
.stat{background:linear-gradient(180deg,#f5eddc,#ece0c7)}
.mastery-dots i{width:11px;height:11px}
.achievement{
  background:linear-gradient(135deg,#fff2cf,#efd48f 55%,#e6c26e);
  box-shadow:0 10px 18px rgba(145,102,19,.12), inset 0 1px rgba(255,255,255,.4);
}
.setup-cover{
  border-radius:10px 18px 18px 10px;
  background:
    radial-gradient(circle at 80% 18%, rgba(255,255,255,.06), transparent 18%),
    linear-gradient(90deg,rgba(6,30,26,.40) 0 8%,transparent 8%),
    repeating-linear-gradient(38deg,rgba(255,255,255,.02) 0 1px,transparent 1px 5px),
    linear-gradient(145deg,#123830,#1d4d44 50%,#2a6155 100%);
}
.setup-logo{border-radius:4px 10px 10px 4px}
.journal-entry{
  background:linear-gradient(180deg,#fffdf7,#f7f0df);
}
.journal-question{
  margin-top:16px;padding:15px 16px 14px;border:1px solid rgba(212,188,129,.65);background:rgba(247,236,204,.65);border-radius:8px;
}
.journal-question-label{
  font-family:var(--ui);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#6f5c2f;margin-bottom:8px;
}
.modal{border-radius:10px}
@media(max-width:620px){
  .topbar{margin-top:0}
  .hero{padding:34px 25px}
  .card{padding:18px 18px}
}


/* --- StoryQuest v0.4 Premium Luxe Theme --- */
:root{
  --forest:#143932;
  --forest-2:#24564b;
  --forest-3:#0e2c27;
  --gold:#b58324;
  --gold-light:#e1c57d;
  --paper:#f9f2df;
}
body{
  background:
    radial-gradient(circle at 9% 9%, rgba(255,255,255,.48), transparent 16%),
    radial-gradient(circle at 88% 84%, rgba(88,63,23,.14), transparent 22%),
    linear-gradient(135deg,#d7ccb7 0%,#c4b493 45%,#dfd5c0 100%);
}
.shell{max-width:1000px}
.topbar{
  background:
    linear-gradient(180deg,rgba(252,247,235,.98),rgba(243,234,215,.98));
  border-color:rgba(124,92,38,.18);
}
.brand-mark{
  position:relative;overflow:hidden;
}
.brand-mark::after{
  content:"✦";position:absolute;right:5px;top:4px;font-size:.62rem;color:#fff6d9;opacity:.85;
}
.brand-name{letter-spacing:.02em}
.brand-tagline{color:#87775a}
.icon-btn.icon-only{
  width:42px;height:42px;padding:0;display:grid;place-items:center;
  background:linear-gradient(180deg,#fffef9,#f6eddc);
  box-shadow:0 6px 12px rgba(65,49,21,.08), inset 0 1px rgba(255,255,255,.7);
}
.svg-icon{display:inline-grid;place-items:center;line-height:0}
.nav-ico{
  width:34px;height:34px;border-radius:999px;display:grid;place-items:center;
  background:linear-gradient(180deg,#fffdf6,#f3e9d4);
  border:1px solid rgba(165,137,79,.35);
  box-shadow:0 5px 10px rgba(80,58,22,.06), inset 0 1px rgba(255,255,255,.7);
}
.nav-btn.active .nav-ico{
  background:linear-gradient(180deg,#f3e4b5,#e3c46d);
  color:#4d390a;
  border-color:#c39e46;
}
.nav-label{display:block}
.hero{
  background:
    radial-gradient(circle at 83% 18%, rgba(225,197,125,.11), transparent 17%),
    radial-gradient(circle at 70% 58%, rgba(255,255,255,.04), transparent 20%),
    linear-gradient(90deg,rgba(8,29,25,.42) 0 7%,transparent 7% 100%),
    linear-gradient(145deg,#11342e 0%,#1a473f 48%,#27584d 100%);
}
.hero .lead{font-size:1.14rem}
.hero .progress{background:rgba(255,248,232,.18)}
.hero .progress>span{background:linear-gradient(90deg,#d3b05b,#f0db9a)}
.card{
  border-color:rgba(160,137,93,.42);
  box-shadow:0 10px 22px rgba(86,65,31,.07), inset 0 1px rgba(255,255,255,.55);
}
.card::before{width:4px}
.chapter-heading .progress-wrap{max-width:440px;margin:0 auto}
.chapter-heading h2{font-size:clamp(1.8rem,5vw,2.55rem)}
.btn{
  letter-spacing:.04em;
}
.btn.primary{
  box-shadow:0 12px 22px rgba(20,57,50,.18), inset 0 1px rgba(255,255,255,.15);
}
.btn.secondary{
  box-shadow:0 10px 18px rgba(128,92,22,.12), inset 0 1px rgba(255,255,255,.25);
}
.pill{
  background:linear-gradient(180deg,#f5eddc,#ebdfc5);
  box-shadow:inset 0 1px rgba(255,255,255,.55);
}
.big-question{
  font-size:1.5rem;
  border-color:#d3b05b;
}
.feedback{
  box-shadow:inset 0 1px rgba(255,255,255,.45);
}
.word-card .word-term{letter-spacing:.01em}
.map{
  box-shadow:inset 0 0 35px rgba(88,65,24,.08),0 10px 18px rgba(88,65,24,.06);
}
.map-stop{box-shadow:0 8px 16px rgba(20,57,50,.18)}
.stat{box-shadow:inset 0 1px rgba(255,255,255,.45)}
.achievement{
  border-color:#cfab55;
}
.achievement-icon{
  width:54px;height:54px;border-radius:999px;display:grid;place-items:center;
  background:linear-gradient(180deg,#fff7dc,#f2db9a);
  color:#73530d;
  border:1px solid rgba(177,131,36,.35);
  box-shadow:inset 0 1px rgba(255,255,255,.7),0 6px 12px rgba(145,102,19,.10);
  flex:0 0 auto;
}
.chapter-complete-mark{
  display:flex;align-items:center;justify-content:center;gap:12px;
  margin:2px 0 12px;
}
.complete-icon{
  width:54px;height:54px;border-radius:999px;display:grid;place-items:center;
  background:linear-gradient(180deg,#f8efd6,#eddcb0);
  color:var(--forest);
  border:1px solid rgba(181,131,36,.28);
  box-shadow:0 8px 14px rgba(65,49,21,.08), inset 0 1px rgba(255,255,255,.75);
}
.complete-arrow{font-size:1.5rem;color:#8e7850}
.journal-entry h3{margin-bottom:.5em}
.journal-question{
  background:linear-gradient(180deg,rgba(249,240,214,.86),rgba(244,231,193,.76));
  box-shadow:inset 0 1px rgba(255,255,255,.5);
}
.modal{
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.55), transparent 28%),
    linear-gradient(180deg,#fcf6e7,#f4ead4);
}
.setup-cover{
  box-shadow:0 28px 60px rgba(31,38,30,.30);
}
.setup-form{
  border-radius:8px;
  background:linear-gradient(180deg,#fbf6e8,#f5ecd7);
}
@media(max-width:620px){
  .nav-ico{width:32px;height:32px}
  .achievement-icon,.complete-icon{width:48px;height:48px}
}

/* --- StoryQuest v0.5 Heritage Edition --- */
:root{
  --forest:#16352f;
  --forest-2:#244d44;
  --forest-3:#0c2622;
  --ink:#242018;
  --muted:#6f6758;
  --gold:#a9771c;
  --gold-light:#d7bc70;
  --gold-pale:#efe1b7;
  --paper:#faf4e5;
  --paper-deep:#efe3c8;
  --line:#cdbc98;
}
html{background:#b8aa8c}
body{
  background:
    radial-gradient(circle at 12% 8%,rgba(255,255,255,.33),transparent 18%),
    radial-gradient(circle at 86% 86%,rgba(54,39,16,.16),transparent 24%),
    repeating-linear-gradient(90deg,rgba(68,45,14,.025) 0 1px,transparent 1px 7px),
    linear-gradient(135deg,#cbbda1 0%,#b3a17e 46%,#d4c8ae 100%);
}
.shell{max-width:1020px;padding-left:18px;padding-right:18px}
.topbar{
  min-height:66px;margin-top:14px;padding:10px 20px;
  border-radius:7px 7px 0 0;
  border:1px solid rgba(87,62,22,.22);border-bottom-color:rgba(87,62,22,.14);
  background:
    linear-gradient(180deg,rgba(252,248,238,.985),rgba(240,230,210,.985));
  box-shadow:0 10px 25px rgba(52,38,16,.12), inset 0 1px rgba(255,255,255,.72);
}
.brand{gap:13px}
.brand-mark{
  width:43px;height:50px;border-radius:2px 7px 7px 2px;
  background:
    linear-gradient(90deg,#0b2722 0 12%,transparent 12%),
    repeating-linear-gradient(35deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px),
    linear-gradient(145deg,#12362f,#214a41);
  color:#e7cf8b;border:1px solid #0a2420;
  box-shadow:inset 1px 0 rgba(255,255,255,.08),0 7px 14px rgba(18,49,44,.18);
}
.brand-mark::before{
  content:"";position:absolute;inset:4px;border:1px solid rgba(223,193,109,.52);border-radius:1px 4px 4px 1px;
}
.brand-mark::after{content:"✦";right:4px;top:4px;font-size:.56rem;color:#ead595}
.brand-mark{position:relative}
.brand-name{font-size:1.18rem;font-weight:700;letter-spacing:.035em}
.brand-tagline{font-size:.61rem;letter-spacing:.18em;color:#85765c}
.icon-btn.icon-only{
  width:41px;height:41px;border-radius:50%;
  background:linear-gradient(180deg,#fffdf5,#f0e5ce);
  border:1px solid #c8b88e;color:#4f493d;
  box-shadow:0 5px 10px rgba(57,41,16,.07), inset 0 1px rgba(255,255,255,.8);
}
main.book-page{
  margin-top:0;
  padding:52px clamp(24px,6vw,66px) 62px;
  min-height:calc(100vh - 176px);
  border-radius:0 0 11px 11px;
  border:1px solid #c8b691;border-top:0;
  box-shadow:0 32px 78px rgba(54,38,13,.22),0 5px 12px rgba(54,38,13,.11);
  background:
    radial-gradient(circle at 22% 6%,rgba(255,255,255,.66),transparent 19%),
    radial-gradient(circle at 75% 92%,rgba(119,83,25,.032),transparent 25%),
    repeating-linear-gradient(0deg,rgba(91,67,31,.015) 0 1px,transparent 1px 3px),
    linear-gradient(90deg,rgba(119,85,34,.06),transparent 6%,transparent 94%,rgba(119,85,34,.04)),
    linear-gradient(180deg,#fcf7e9 0%,#f8f0dd 72%,#f2e6cd 100%);
}
main.book-page::before{
  width:28px;
  background:linear-gradient(90deg,rgba(73,49,15,.20),rgba(73,49,15,.07) 28%,rgba(255,255,255,.06) 54%,transparent 100%);
}
main.book-page::after{content:""}
.page-ornament-top{
  position:absolute;left:50%;top:15px;transform:translateX(-50%);
  color:#a97a29;font-size:.72rem;letter-spacing:.25em;opacity:.85;
}
.page-ornament-top::before,.page-ornament-top::after{
  content:"";display:inline-block;width:52px;height:1px;background:linear-gradient(90deg,transparent,#b78a3c);vertical-align:middle;margin:0 12px 2px;
}
.page-ornament-top::after{background:linear-gradient(90deg,#b78a3c,transparent)}
.folio{
  display:flex;align-items:center;justify-content:center;gap:12px;margin:34px auto -35px;
  color:#8c8069;font-family:var(--serif);font-size:.72rem;letter-spacing:.13em;
}
.folio span{display:block;width:36px;height:1px;background:#cdbd99}
.folio b{font-weight:500;font-variant:small-caps}
.hero{
  color:#f7f0dc;border-radius:4px 11px 11px 4px;padding:52px clamp(30px,6vw,62px) 48px;
  border:1px solid #0d2b26;
  box-shadow:0 24px 48px rgba(16,44,39,.26),0 3px 0 rgba(255,255,255,.08) inset;
  background:
    linear-gradient(90deg,rgba(5,25,22,.42) 0 7%,transparent 7% 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px),
    linear-gradient(145deg,#102f2a 0%,#183f38 52%,#244d44 100%);
}
.hero::before{inset:11px;border:1px solid rgba(215,188,106,.82);border-radius:2px 8px 8px 2px}
.hero::after{content:"❦";right:32px;top:24px;font-size:1.18rem;color:#d9bf77;opacity:.9}
.hero h1{font-size:clamp(2.6rem,7vw,4.35rem);letter-spacing:.01em;font-weight:600}
.hero .eyebrow{letter-spacing:.2em;font-size:.64rem;color:#d7c79e}
.hero .lead{font-size:1.12rem;max-width:610px;color:#eee5cf}
.cover-imprint{
  margin:22px 0 14px;font-family:var(--ui);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:#d7c79e;
}
.cover-imprint::before,.cover-imprint::after{content:"";display:inline-block;width:34px;height:1px;background:#9f874f;vertical-align:middle;margin:0 10px 2px}
.chapter-heading{max-width:720px;margin-bottom:34px;padding-bottom:18px}
.chapter-heading::before{width:180px;background:linear-gradient(90deg,transparent,#9e782f,transparent)}
.chapter-heading::after{content:"❦";font-size:1rem;letter-spacing:0}
.chapter-heading .eyebrow{font-size:.64rem;letter-spacing:.2em;color:#7a705f}
.chapter-heading h2{font-weight:600;letter-spacing:.008em;color:#213a35}
h1,h2,h3{font-weight:600}
h1{letter-spacing:.005em}
h3{letter-spacing:.01em}
p{line-height:1.78}
.card{
  margin:20px 0;padding:24px 26px;
  background:transparent;
  border:1px solid rgba(158,126,68,.28);border-radius:0;
  box-shadow:none;
}
.card::before{top:0;bottom:0;width:1px;background:#bd9b55}
.card::after{display:none}
.card.tight{padding:18px 20px}
.card-title{font-size:1.16rem;font-weight:600}
.chapter-opener{
  padding:42px clamp(20px,5vw,52px) 36px;text-align:center;
  border:0;background:transparent;
}
.chapter-opener::before,.chapter-opener::after{display:none}
.chapter-opener h1{
  color:#1d3933!important;font-size:clamp(2.6rem,8vw,4.7rem);font-weight:500;line-height:1.02;margin:.14em 0 .38em;
}
.chapter-number{
  font-family:var(--ui);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:#766b57;font-weight:700;
}
.chapter-flourish{display:flex;align-items:center;justify-content:center;gap:12px;color:#a97b25;margin:14px auto 12px;max-width:310px}
.chapter-flourish span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#b68d42)}
.chapter-flourish span:last-child{background:linear-gradient(90deg,#b68d42,transparent)}
.chapter-flourish b{font-size:1.02rem;font-weight:400}
.drop-cap{max-width:650px;margin-left:auto;margin-right:auto;text-align:left}
.drop-cap::first-letter{
  float:left;font-family:Georgia,var(--serif);font-size:4.25rem;line-height:.78;padding:.13em .11em 0 0;color:#8f651c;
}
.eyebrow{font-size:.64rem;letter-spacing:.18em;color:#736958}
.btn{
  min-height:47px;border-radius:2px;padding:13px 19px;font-size:.73rem;letter-spacing:.105em;text-transform:uppercase;
  box-shadow:none;
}
.btn:hover:not(:disabled){transform:none;filter:brightness(1.025)}
.btn.primary{background:#173a33;border:1px solid #102d28;box-shadow:inset 0 0 0 1px rgba(224,198,126,.12)}
.btn.secondary{background:#e6d39a;color:#4b380d;border:1px solid #b9933f}
.btn.ghost{background:transparent;border:1px solid #bbaa86;color:#2f4b44}
.progress{height:4px;border-radius:0;background:#dfd1b3;box-shadow:none}
.progress>span{border-radius:0;background:#a67725;box-shadow:none}
.progress-label{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.bottom-nav{
  width:min(930px,calc(100% - 28px));padding:4px 10px calc(7px + env(safe-area-inset-bottom));
  border-radius:5px 5px 0 0;border-color:#bda97d;
  background:linear-gradient(180deg,rgba(246,239,223,.99),rgba(232,220,195,.99));
  box-shadow:0 -10px 24px rgba(58,42,17,.13),inset 0 1px rgba(255,255,255,.65);
}
.nav-btn{border-radius:0;font-size:.62rem;letter-spacing:.07em;text-transform:uppercase;color:#756b58;padding:6px 3px 5px}
.nav-ico{
  width:31px;height:31px;border-radius:50%;background:transparent;border:1px solid transparent;box-shadow:none;
}
.nav-btn.active{background:transparent;color:#1a4038}
.nav-btn.active .nav-ico{background:#1a4038;color:#f0deb0;border-color:#1a4038;box-shadow:inset 0 0 0 1px rgba(223,196,120,.18)}
.nav-btn.active::after{bottom:-8px;width:19px;height:12px;background:#173a33}
.option{
  border-radius:0;border-color:#c8b58e;background:rgba(255,252,244,.5);box-shadow:none;
  padding:15px 17px;font-weight:500;
}
.option:hover{border-color:#9d7e45;background:#fffaf0;transform:none}
.option.selected{background:#eef0e7;border-color:#48685e;box-shadow:inset 3px 0 #274f45}
.option.correct{background:#e8eee6;border-color:#779181;box-shadow:inset 3px 0 #527b68}
.option.wrong{background:#f2e7e2;border-color:#bb8b80;box-shadow:inset 3px 0 #9b6258}
.feedback{
  border-radius:0;background:#edf0e8;border-color:#c5d0c2;border-left:3px solid #2d574d;box-shadow:none;
}
.feedback.warn{background:#f4e9e3;border-left-color:#956056}
.feedback.gold{background:#f4ead1;border-left-color:#a87822}
.xp-chip{border-radius:2px;background:#eee0b5;font-size:.67rem;letter-spacing:.06em;text-transform:uppercase}
.pills{gap:6px}
.pill{border-radius:2px;background:#f1ead9;border-color:#d7c5a3;font-size:.7rem;letter-spacing:.03em;box-shadow:none}
.big-question{
  border-radius:0;background:#f3e7c7;border:1px solid #c7a65d;border-left:3px solid #9d701f;box-shadow:none;
  font-size:1.48rem;text-align:center;padding:22px 24px;
}
.reading-screen{background:transparent;padding:34px 24px 38px;border-top:1px solid #bfa66d;border-bottom:1px solid #bfa66d}
.reading-screen::before{display:none}
.reading-icon{font-size:3.2rem;filter:sepia(.35) saturate(.7)}
.reaction{border-radius:0;background:transparent;border-color:#c8b58e;box-shadow:none}
.reaction.selected{background:#edf0e8;border-color:#47675e;box-shadow:inset 0 -2px #294c44}
.sequence-item,.match-row select{border-radius:0;background:rgba(255,252,244,.55);border-color:#c8b58e}
.sequence-number{border-radius:50%;background:#173a33}
.map{
  border-radius:0;min-height:220px;border:1px solid #bfae87;
  background:
    radial-gradient(circle at 18% 25%,rgba(255,255,255,.25),transparent 20%),
    repeating-linear-gradient(25deg,rgba(87,63,21,.018) 0 1px,transparent 1px 6px),
    linear-gradient(160deg,#e4d7b8,#efe4ca 52%,#e0d4b8);
  box-shadow:inset 0 0 30px rgba(72,52,18,.08);
}
.map::after{content:"✧";font-size:1.6rem;right:20px;bottom:16px}
.map-stop{border-radius:2px;background:#173a33;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}
.stat{border-radius:0;background:#eee4cf;border-color:#d5c4a4;box-shadow:none}
.stat span{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}
.stat strong{font-weight:500}
.achievement{
  border-radius:0;border:1px solid #b9913b;background:linear-gradient(180deg,#f4e8c2,#e9d498);box-shadow:none;
}
.achievement-icon{
  width:50px;height:50px;border-radius:50%;background:transparent;border:1px solid #a77d27;color:#775514;box-shadow:inset 0 0 0 4px rgba(255,250,230,.35);
}
.notice{border-radius:0;background:#eee5d3;border-color:#d4c4a4;font-size:.76rem}
.journal-entry{
  border:1px solid #c7ae74;background:
    linear-gradient(90deg,transparent 0 42px,rgba(169,118,38,.16) 42px 43px,transparent 43px),
    repeating-linear-gradient(180deg,transparent 0 31px,rgba(134,108,68,.10) 31px 32px),
    rgba(255,252,244,.5);
  padding-left:58px;
}
.journal-entry::before{display:none}
.journal-question{border-radius:0;border:1px solid rgba(180,146,77,.55);background:rgba(244,233,202,.54);box-shadow:none}
.journal-question-label{font-size:.62rem;letter-spacing:.18em}
.modal{border-radius:2px;border-color:#baa47a;background:linear-gradient(180deg,#fbf5e6,#f1e6cf)}
.modal::before{inset:8px;border-color:rgba(170,127,44,.24)}
.setup{max-width:760px}
.setup-cover{
  border-radius:4px 13px 13px 4px;
  padding:58px clamp(28px,7vw,62px);
  border:1px solid #0c2924;
  box-shadow:0 32px 68px rgba(27,32,25,.33);
  background:
    linear-gradient(90deg,rgba(6,29,25,.48) 0 7%,transparent 7%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px),
    linear-gradient(145deg,#0f302a,#193f38 52%,#244c43);
}
.setup-cover::before{inset:12px;border:1px solid rgba(220,190,105,.84);border-radius:2px 8px 8px 2px}
.setup-cover::after{
  content:"";position:absolute;inset:20px;border:1px solid rgba(220,190,105,.34);border-radius:1px 6px 6px 1px;pointer-events:none;
}
.setup-logo{
  width:72px;height:82px;border-radius:2px 8px 8px 2px;background:transparent;border:1px solid #d7bc70;color:#e6d090;
  box-shadow:inset 0 0 0 5px rgba(220,190,105,.08);margin-left:auto;margin-right:auto;
}
.setup-logo span{font-size:1.5rem;letter-spacing:.06em}
.cover-ornament{display:flex;align-items:center;gap:12px;color:#d5bb72;max-width:260px;margin:14px auto 18px}
.cover-ornament span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#b79b58)}
.cover-ornament span:last-child{background:linear-gradient(90deg,#b79b58,transparent)}
.setup .eyebrow{text-align:center;font-size:.62rem;letter-spacing:.24em;color:#d7c79e}
.setup h1{text-align:center;font-size:clamp(3.1rem,10vw,5rem);font-weight:500;letter-spacing:.02em}
.setup .lead{text-align:center;max-width:600px;margin-left:auto;margin-right:auto;color:#eee6d2}
.setup .ornament{color:#d6bb72}
.setup-form{border-radius:0;background:#f7efdc;border-color:#c8b58e;box-shadow:0 10px 20px rgba(5,22,19,.14)}
.setup-form::before{border-color:rgba(169,118,38,.20)}
.field input{border-radius:0;background:#fffaf0;border-color:#bfad88}
.chapter-complete-mark{gap:10px}
.complete-icon{width:48px;height:48px;border-radius:50%;background:transparent;border:1px solid #b99952;box-shadow:none;color:#21453e}
.complete-arrow{color:#8d7548}
.classic-title{font-weight:500!important;color:#1d3933!important}
@media(min-width:820px){
  .grid.two{gap:22px}
  .card{padding:28px 30px}
  .journal-entry{padding-left:68px}
}
@media(max-width:620px){
  .shell{padding-left:7px;padding-right:7px}
  .topbar{margin-top:0;border-radius:0}
  main.book-page{padding:46px 19px 58px;border-radius:0 0 7px 7px}
  .hero{padding:39px 25px 36px}
  .chapter-opener{padding:30px 8px 24px}
  .drop-cap::first-letter{font-size:3.6rem}
  .journal-entry{padding-left:44px;background:linear-gradient(90deg,transparent 0 31px,rgba(169,118,38,.16) 31px 32px,transparent 32px),repeating-linear-gradient(180deg,transparent 0 31px,rgba(134,108,68,.10) 31px 32px),rgba(255,252,244,.5)}
  .bottom-nav{width:calc(100% - 10px)}
}

/* --- StoryQuest v0.6 Enchanted Collector's Edition --- */
:root{
  --midnight:#0d2b2a;
  --midnight-2:#173f3a;
  --emerald:#214f47;
  --starlight:#f1dda2;
  --starlight-soft:#f7edcf;
  --violet-ink:#3b3952;
  --magic-shadow:0 28px 78px rgba(27,28,32,.24);
}
body{
  background:
    radial-gradient(circle at 13% 10%,rgba(247,232,192,.16),transparent 15%),
    radial-gradient(circle at 84% 13%,rgba(42,88,82,.22),transparent 20%),
    radial-gradient(circle at 77% 85%,rgba(76,60,109,.12),transparent 22%),
    linear-gradient(145deg,#a99979 0%,#887a64 42%,#b7aa90 100%);
}
.shell{position:relative;isolation:isolate}
.magic-atmosphere{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.magic-atmosphere i{position:absolute;width:4px;height:4px;border-radius:50%;background:#f2dda0;box-shadow:0 0 10px rgba(242,221,160,.65);opacity:.38;animation:storySpark 6s ease-in-out infinite}
.magic-atmosphere i:nth-child(1){left:8%;top:16%;animation-delay:-1s}
.magic-atmosphere i:nth-child(2){left:92%;top:24%;width:3px;height:3px;animation-delay:-3.2s}
.magic-atmosphere i:nth-child(3){left:81%;top:62%;animation-delay:-4.4s}
.magic-atmosphere i:nth-child(4){left:14%;top:73%;width:3px;height:3px;animation-delay:-2.1s}
.magic-atmosphere i:nth-child(5){left:45%;top:7%;width:2px;height:2px;animation-delay:-5s}
.magic-atmosphere i:nth-child(6){left:30%;top:91%;width:3px;height:3px;animation-delay:-.6s}
.magic-atmosphere i:nth-child(7){left:66%;top:89%;width:2px;height:2px;animation-delay:-3.8s}
@keyframes storySpark{0%,100%{opacity:.18;transform:scale(.8)}50%{opacity:.7;transform:scale(1.45)}}

.topbar{
  background:linear-gradient(180deg,rgba(252,248,238,.985),rgba(238,227,205,.985));
  box-shadow:0 14px 32px rgba(48,35,15,.15),inset 0 1px rgba(255,255,255,.78);
}
.brand-mark{box-shadow:inset 1px 0 rgba(255,255,255,.08),0 7px 16px rgba(10,38,34,.22),0 0 0 1px rgba(223,193,109,.12)}
.brand-mark::after{filter:drop-shadow(0 0 5px rgba(239,217,151,.55))}

main.book-page{
  box-shadow:0 38px 92px rgba(42,31,12,.27),0 8px 18px rgba(42,31,12,.13),inset 0 1px rgba(255,255,255,.65);
  background:
    radial-gradient(circle at 20% 4%,rgba(255,255,255,.72),transparent 18%),
    radial-gradient(circle at 84% 28%,rgba(211,183,105,.045),transparent 15%),
    radial-gradient(circle at 75% 92%,rgba(95,70,30,.035),transparent 24%),
    repeating-linear-gradient(0deg,rgba(91,67,31,.014) 0 1px,transparent 1px 3px),
    linear-gradient(90deg,rgba(119,85,34,.062),transparent 6%,transparent 94%,rgba(119,85,34,.04)),
    linear-gradient(180deg,#fdf9ec 0%,#f8f0dd 72%,#f1e4c9 100%);
}
main.book-page::before{box-shadow:8px 0 18px rgba(72,47,12,.045)}
.page-ornament-top{filter:drop-shadow(0 0 7px rgba(185,138,45,.16))}

.chapter-starline{display:flex;align-items:center;justify-content:center;gap:11px;margin:0 auto 11px;color:#a97a29}
.chapter-starline i{display:block;width:48px;height:1px;background:linear-gradient(90deg,transparent,#b68b3a)}
.chapter-starline i:last-child{background:linear-gradient(90deg,#b68b3a,transparent)}
.chapter-starline span{font-size:.72rem;filter:drop-shadow(0 0 5px rgba(181,131,36,.18))}

.enchanted-cover,.enchanted-hero{
  background:
    radial-gradient(circle at 78% 18%,rgba(224,197,125,.11),transparent 18%),
    radial-gradient(circle at 24% 74%,rgba(81,111,104,.12),transparent 19%),
    linear-gradient(90deg,rgba(4,24,21,.45) 0 7%,transparent 7% 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.016) 0 1px,transparent 1px 4px),
    linear-gradient(145deg,#092a27 0%,#113a35 47%,#1e5149 100%);
}
.enchanted-cover{box-shadow:0 34px 78px rgba(18,27,24,.36),0 0 0 1px rgba(234,211,149,.08)}
.enchanted-cover::after{
  content:"";position:absolute;inset:27px;pointer-events:none;border:1px solid rgba(229,203,132,.22);border-radius:2px 7px 7px 2px;
}
.cover-constellation{position:absolute;right:8%;top:8%;width:126px;height:92px;opacity:.56;pointer-events:none}
.cover-constellation::before,.cover-constellation::after{content:"";position:absolute;height:1px;transform-origin:left;background:linear-gradient(90deg,rgba(238,215,150,.15),rgba(238,215,150,.55),rgba(238,215,150,.15))}
.cover-constellation::before{width:80px;left:21px;top:44px;transform:rotate(-28deg)}
.cover-constellation::after{width:62px;left:47px;top:24px;transform:rotate(43deg)}
.cover-constellation i{position:absolute;width:5px;height:5px;border-radius:50%;background:#efd997;box-shadow:0 0 9px rgba(239,217,151,.65);animation:starBreath 5s ease-in-out infinite}
.cover-constellation i:nth-child(1){left:15px;top:57px}.cover-constellation i:nth-child(2){left:46px;top:34px;animation-delay:-1s}.cover-constellation i:nth-child(3){left:79px;top:13px;animation-delay:-2.3s}.cover-constellation i:nth-child(4){left:103px;top:55px;animation-delay:-3.6s}.cover-constellation i:nth-child(5){left:62px;top:76px;animation-delay:-4.2s}
@keyframes starBreath{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}

.setup h1{font-size:clamp(3rem,10vw,4.8rem);text-shadow:0 2px 14px rgba(0,0,0,.18)}
.setup .lead{max-width:590px}
.enchanted-cover-art{position:relative;margin:24px auto 12px;max-width:560px;border:1px solid rgba(228,202,132,.35);border-radius:11px;overflow:hidden;box-shadow:0 18px 34px rgba(3,20,18,.25),inset 0 0 0 1px rgba(255,255,255,.05)}
.enchanted-cover-art::after{content:"";position:absolute;inset:8px;border:1px solid rgba(237,216,157,.22);border-radius:7px;pointer-events:none}
.magic-scene-svg{display:block;width:100%;height:auto}
.scene-stars circle,.scene-stars path{animation:sceneTwinkle 4.8s ease-in-out infinite;transform-origin:center}
.scene-stars circle:nth-child(2n){animation-delay:-1.6s}.scene-stars circle:nth-child(3n){animation-delay:-3.1s}
.scene-path{animation:pathGlow 3.8s ease-in-out infinite}
@keyframes sceneTwinkle{0%,100%{opacity:.42}50%{opacity:1}}
@keyframes pathGlow{0%,100%{opacity:.48}50%{opacity:1}}

.bookplate-form{position:relative;margin-top:26px;padding-top:28px}
.bookplate-label{font-family:var(--serif);font-size:1.18rem;font-style:italic;color:#6d5a36;text-align:center;margin:-4px 0 15px}
.bookplate-label::before,.bookplate-label::after{content:"";display:inline-block;width:34px;height:1px;background:#c0a466;vertical-align:middle;margin:0 10px 4px}
.enchanted-cta{position:relative;overflow:hidden}
.enchanted-cta::after{content:"";position:absolute;top:-80%;left:-30%;width:18%;height:260%;background:linear-gradient(90deg,transparent,rgba(255,247,214,.48),transparent);transform:rotate(22deg);animation:foilSweep 5.5s ease-in-out infinite}
@keyframes foilSweep{0%,62%{left:-30%;opacity:0}72%{opacity:.85}88%{left:120%;opacity:0}100%{left:120%;opacity:0}}

.enchanted-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(260px,.92fr);align-items:center;gap:24px;min-height:420px}
.hero-copy{position:relative;z-index:2}
.hero-illustration{position:relative;z-index:1;border:1px solid rgba(229,204,135,.3);border-radius:11px;overflow:hidden;box-shadow:0 18px 32px rgba(2,20,17,.25)}
.hero-illustration::before{content:"";position:absolute;inset:8px;border:1px solid rgba(237,216,157,.18);border-radius:7px;z-index:2;pointer-events:none}
.enchanted-btn{box-shadow:0 8px 20px rgba(3,25,21,.22),inset 0 1px rgba(255,255,255,.22)}

.journey-card{padding-top:30px}
.section-medallion{position:absolute;right:22px;top:-18px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#5c420e;background:linear-gradient(145deg,#f6e9ba,#d7b65e);border:1px solid #b88e35;box-shadow:0 8px 16px rgba(92,66,14,.13),inset 0 1px rgba(255,255,255,.55)}
.section-medallion.small{width:38px;height:38px;right:18px;top:-14px}
.enchanted-map{position:relative;margin-top:18px;border:1px solid #ad9566;background:#e6d8b7;box-shadow:0 16px 28px rgba(80,58,22,.09),inset 0 0 34px rgba(82,57,19,.07);overflow:hidden}
.enchanted-map svg{display:block;width:100%;height:auto}
.map-badge{position:absolute;left:18px;bottom:16px;font-family:var(--ui);font-size:.67rem;letter-spacing:.11em;text-transform:uppercase;color:#fff8de;background:rgba(26,64,56,.94);padding:8px 12px;border:1px solid rgba(229,204,135,.38);box-shadow:0 5px 10px rgba(35,50,38,.14)}
.premium-panels .card{padding-top:30px}
.enchanted-achievement{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff5d7,#ecd38b 58%,#d9b45b)}
.enchanted-achievement::after{content:"✦";position:absolute;right:22px;top:12px;font-size:2.8rem;color:rgba(115,83,13,.12);transform:rotate(12deg)}

.chapter-vignette{max-width:560px;margin:24px auto 28px;border:1px solid #bba06a;box-shadow:0 14px 28px rgba(79,57,21,.10);overflow:hidden;position:relative}
.chapter-vignette::after{content:"";position:absolute;inset:7px;border:1px solid rgba(241,220,163,.3);pointer-events:none}
.quest-pills{justify-content:center}
.quest-pills .pill{display:inline-flex;align-items:center;gap:7px;background:#f3ead6}
.icon-title{display:flex;align-items:center;gap:8px}

/* make ordinary activity panels feel like illuminated pages */
.card:not(.chapter-opener):not(.journal-entry){position:relative}
.card:not(.chapter-opener):not(.journal-entry) h3:first-of-type::after{content:"";display:block;width:34px;height:1px;background:#c2a35f;margin-top:9px;opacity:.58}
.option{position:relative;overflow:hidden}
.option::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:#a77a2c;transition:width .25s ease}
.option:hover::after,.option.selected::after{width:100%}
.feedback.gold{background:linear-gradient(180deg,#f8efd7,#f0e2bd)}

/* journal as a treasured field notebook */
.journal-entry{position:relative;border:1px solid #bca478;background:
  linear-gradient(90deg,transparent 0 38px,rgba(173,108,87,.16) 38px 39px,transparent 39px),
  repeating-linear-gradient(180deg,#fbf5e5 0 31px,#e5d8bd 31px 32px);padding-left:58px;box-shadow:0 12px 24px rgba(70,50,18,.07)}
.journal-entry::before{left:20px;top:23px;bottom:23px;width:13px;background:radial-gradient(circle,#b79a61 0 2px,transparent 2.2px);background-size:13px 28px}
.journal-question{background:rgba(247,236,204,.86)}

/* premium nav feels like little enamel story tokens */
.bottom-nav{background:linear-gradient(180deg,rgba(248,241,224,.99),rgba(229,216,190,.99))}
.nav-ico{transition:transform .22s ease,box-shadow .22s ease}
.nav-btn.active .nav-ico{box-shadow:0 5px 14px rgba(23,58,51,.19),inset 0 0 0 1px rgba(231,207,144,.2)}
.nav-btn.active .nav-ico::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#f1d98f;transform:translate(12px,-12px);box-shadow:0 0 7px rgba(241,217,143,.72)}
.nav-ico{position:relative}

@media(max-width:760px){
  .enchanted-hero{grid-template-columns:1fr;min-height:0}
  .hero-illustration{max-width:520px;width:100%;margin:0 auto}
  .cover-constellation{right:2%;top:4%;transform:scale(.82)}
}
@media(max-width:620px){
  .enchanted-cover-art{margin-left:-6px;margin-right:-6px}
  .chapter-vignette{margin-left:-4px;margin-right:-4px}
  .journal-entry{padding-left:48px}
}
@media(prefers-reduced-motion:reduce){
  .magic-atmosphere i,.cover-constellation i,.scene-stars circle,.scene-stars path,.scene-path,.enchanted-cta::after{animation:none!important}
}
.reading-symbol{position:relative;width:76px;height:76px;margin:4px auto 18px;border-radius:50%;display:grid;place-items:center;color:#4d3b12;background:radial-gradient(circle at 40% 32%,#fff8db,#e9cf83 68%,#caa34d);border:1px solid #b88f38;box-shadow:0 12px 22px rgba(90,65,13,.13),inset 0 1px rgba(255,255,255,.7)}
.reading-spark{position:absolute;right:7px;top:4px;color:#fff4c8;font-size:1rem;filter:drop-shadow(0 0 6px rgba(255,239,186,.8));animation:starBreath 4s ease-in-out infinite}
.inline-label{display:inline-flex!important;align-items:center;gap:6px}
.stat .inline-label{font-size:.72rem}
.pill .svg-icon{vertical-align:-2px}


/* --- StoryQuest v0.7 Final UI Polish --- */
html{-webkit-text-size-adjust:100%}
body,button,input,select,textarea{font-feature-settings:"liga" 1,"kern" 1}
*,*::before,*::after{min-width:0}
img,svg{max-width:100%;height:auto}
.svg-icon,.svg-icon svg,.nav-ico svg,.achievement-icon svg,.complete-icon svg{display:block}

h1,h2,h3,.big-question,.brand-name,.word-term,.bookplate-label,.setup h1{
  text-wrap:balance;
}
p,.option,.feedback,.notice,.pill,.xp-chip,.journal-question,.map-badge,.field small,.lead,.reaction,.stat span,.stat strong,.nav-label,.word-term,.card h3,.card-title,.modal p,
button,select,label,input{
  overflow-wrap:anywhere;
}

.topbar{align-items:center}
.brand{min-width:0}
.brand-copy{min-width:0}
.brand-name{line-height:1.05}
.brand-tagline{line-height:1.2}
.top-actions{align-items:center}
.icon-btn{flex:0 0 auto}

main.book-page{padding-bottom:76px}
.hero,.setup-cover,.card,.modal,.setup-form,.option,.feedback,.notice,.stat,.achievement,.journal-question,.enchanted-cover-art,.hero-illustration,.chapter-vignette,.enchanted-map{backface-visibility:hidden}
.hero-copy,.card,.modal,.setup-form{position:relative;z-index:1}

.grid.two,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat-grid .stat,.grid.two > *{min-width:0}

.action-row{align-items:stretch}
.action-row > .btn{flex:1 1 220px}

.btn,.icon-btn,.reaction,.nav-btn,.option,.sequence-item,.field input,.match-row select{
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease,filter .2s ease,opacity .2s ease;
}

.option,.sequence-item,.reaction,.nav-btn,.pill,.xp-chip,.map-badge{line-height:1.35}
.option,.sequence-item{display:block;text-wrap:pretty}
.feedback p:last-child,.card p:last-child,.journal-question p:last-child{margin-bottom:0}

.chapter-heading,.chapter-opener,.chapter-vignette,.hero-copy,.hero-illustration,.setup .lead,.setup h1,.lead{max-width:100%}
.chapter-opener,.chapter-heading{text-align:center}
.chapter-heading .lead,.hero .lead,.setup .lead,.drop-cap{margin-left:auto;margin-right:auto}
.drop-cap{max-width:68ch}
.big-question{max-width:18ch;margin-left:auto;margin-right:auto}

.word-card > div,.mastery,.match-row,.metric-head,.progress-label,.stat-grid,.achievement,.chapter-complete-mark,.brand,.topbar,.bottom-nav,.nav-btn,.bookplate-label{align-items:center}
.word-card > div{align-items:flex-start}
.mastery{justify-content:flex-end;flex-wrap:wrap}

.nav-btn{min-width:0;justify-content:flex-start}
.nav-btn .nav-ico{flex:0 0 auto}
.nav-label{display:block;max-width:100%;text-align:center;line-height:1.15}

.section-medallion{display:grid;place-items:center;text-align:center;line-height:1}
.section-medallion .svg-icon,.section-medallion svg{display:block}
.map-badge{max-width:min(65%,240px)}
.map-stop,.map-badge,.xp-chip,.pill{white-space:normal}

.field input,.match-row select{width:100%;max-width:100%}
.field label{display:block}
.match-row{align-items:start}
.match-row strong{line-height:1.4}

.reaction-grid{align-items:stretch}
.reaction{display:flex;flex-direction:column;justify-content:center;min-height:88px}
.reaction span{line-height:1}

.sequence-picked:empty::before{content:''}
.sequence-item{width:100%}
.sequence-number{vertical-align:middle;flex:0 0 auto}

.journal-entry h3,.card h3,.modal h2{line-height:1.18}
.journal-question em{display:block;margin-bottom:8px;line-height:1.5}

.modal{max-width:min(560px,100%)}
.modal .action-row{margin-top:18px}
.modal .action-row .btn{flex:1 1 160px}

.setup-cover,.hero{isolation:isolate}
.setup-cover::before,.setup-cover::after,.hero::before,.hero::after{pointer-events:none}
.setup-form{margin-inline:auto;max-width:680px}
.setup .notice{overflow-wrap:break-word}

.stat strong{line-height:1.05}
.achievement{align-items:center}
.achievement > div:last-child{min-width:0}
.chapter-complete-mark{justify-content:center}
.complete-arrow{line-height:1}

.bottom-nav{gap:2px}
.nav-btn{min-height:62px}
.nav-btn.active::after{left:50%;transform:translateX(-50%)}

@media(max-width:900px){
  .grid.two{grid-template-columns:1fr}
  .hero{padding-right:22px}
}
@media(max-width:760px){
  .map-badge{max-width:72%}
  .section-medallion{right:14px}
}
@media(max-width:620px){
  main.book-page{padding-bottom:84px}
  .topbar{padding-left:14px;padding-right:14px}
  .action-row > .btn,.modal .action-row .btn{flex:1 1 100%}
  .stat-grid{grid-template-columns:1fr}
  .bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
  .nav-btn{min-height:58px;padding-left:2px;padding-right:2px}
  .nav-label{font-size:.58rem;letter-spacing:.06em}
  .map-badge{max-width:78%;left:12px;bottom:12px;font-size:.62rem;padding:7px 10px}
  .section-medallion{width:34px;height:34px;top:-11px;right:12px}
  .section-medallion.small{width:30px;height:30px;top:-9px;right:10px}
  .achievement{gap:10px}
  .achievement-icon,.complete-icon{width:44px;height:44px}
  .reaction{min-height:80px}
  .journal-entry{padding-right:14px}
}
@media(max-width:420px){
  .brand-name{font-size:1rem}
  .brand-tagline{font-size:.58rem;letter-spacing:.1em}
  .nav-label{font-size:.55rem}
  .big-question{font-size:1.28rem;padding:18px 18px}
  .setup h1{font-size:clamp(2.55rem,13vw,3.6rem)}
  .chapter-opener h1{font-size:clamp(2.1rem,11vw,3.15rem)}
}
@media(prefers-reduced-motion:reduce){
  .btn,.icon-btn,.reaction,.nav-btn,.option,.sequence-item,.field input,.match-row select{transition:none!important}
}

/* --- StoryQuest v0.9 Library & book collection --- */
.book-author{
  margin:.1rem 0 1.15rem;
  font-family:var(--serif);
  font-size:1.02rem;
  font-style:italic;
  letter-spacing:.035em;
  color:#786b54;
}
.hero-author{
  margin-top:-.25rem;
  color:#e7d9b5;
  opacity:.94;
  font-size:1.06rem;
}
.library-shortcut{gap:7px;width:auto!important;padding-inline:12px!important}
.library-shortcut span:last-child{font-family:var(--ui);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.library-heading{
  max-width:720px;
  margin:0 auto 34px;
  text-align:center;
  padding:14px 6px 10px;
}
.library-heading::after{
  content:"✦  ❦  ✦";
  display:block;
  margin:20px auto 0;
  color:#ad8030;
  letter-spacing:.35em;
  font-size:.8rem;
}
.library-heading h1{margin-top:.18em}
.library-heading .lead{margin-inline:auto;max-width:62ch}
.library-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.library-book{
  appearance:none;
  width:100%;
  min-width:0;
  border:1px solid rgba(156,124,67,.35);
  padding:20px;
  background:linear-gradient(180deg,rgba(255,252,243,.55),rgba(245,236,217,.52));
  color:var(--ink);
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:20px;
  text-align:left;
  align-items:center;
  position:relative;
  overflow:hidden;
  box-shadow:0 12px 24px rgba(75,54,20,.07),inset 0 1px rgba(255,255,255,.5);
}
.library-book::after{
  content:"";
  position:absolute;
  left:0;bottom:0;width:0;height:2px;
  background:linear-gradient(90deg,#8f681f,#d9bb6a);
  transition:width .28s ease;
}
.library-book:hover::after,.library-book:focus-visible::after{width:100%}
.library-book:hover{border-color:rgba(157,119,45,.62);transform:translateY(-2px);box-shadow:0 16px 30px rgba(75,54,20,.1),inset 0 1px rgba(255,255,255,.55)}
.library-book.coming{opacity:.93}
.library-meta{display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.library-number{
  font-family:var(--ui);font-size:.61rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#927237;margin-bottom:6px
}
.library-meta strong{
  font-family:var(--serif);font-size:1.35rem;line-height:1.12;font-weight:600;color:#1f3d36;text-wrap:balance
}
.library-meta em{font-family:var(--serif);font-size:.9rem;color:#786d5b;margin-top:5px}
.library-blurb{display:block;font-family:var(--serif);font-size:.9rem;line-height:1.52;color:#5f584b;margin-top:10px}
.library-status{
  margin-top:14px;
  padding:6px 9px;
  border:1px solid #c7b58c;
  font-family:var(--ui);font-size:.61rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#74664c;background:rgba(244,237,221,.72)
}
.library-status.ready{background:#173a33;color:#f2dfaa;border-color:#173a33;box-shadow:inset 0 0 0 1px rgba(229,204,135,.15)}

.mini-cover{
  width:132px;
  aspect-ratio:2 / 3;
  border-radius:2px 8px 8px 2px;
  color:#f5e8bf;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px 13px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(20,21,18,.45);
  box-shadow:8px 11px 18px rgba(45,33,12,.16),inset 8px 0 11px rgba(0,0,0,.16),inset 0 0 0 1px rgba(231,207,144,.1);
}
.mini-cover::before{
  content:"";position:absolute;inset:8px;border:1px solid rgba(232,207,139,.58);border-radius:1px 5px 5px 1px;pointer-events:none
}
.mini-cover::after{
  content:"";position:absolute;inset:14px;border:1px solid rgba(232,207,139,.18);border-radius:1px 3px 3px 1px;pointer-events:none
}
.cover-rule{position:absolute;left:0;top:0;bottom:0;width:8px;background:rgba(0,0,0,.18);border-right:1px solid rgba(241,217,151,.2)}
.cover-mark{font-size:1.55rem;line-height:1;margin-bottom:18px;color:#f0d889;text-shadow:0 0 12px rgba(240,216,137,.16)}
.cover-mini-title{font-family:var(--serif);font-size:.92rem;line-height:1.16;font-weight:600;text-wrap:balance;max-width:100%}
.cover-mini-author{font-family:var(--serif);font-size:.62rem;line-height:1.25;font-style:italic;margin-top:10px;color:#dfd1a9}
.cover-emerald{background:linear-gradient(145deg,#0b302b,#1d5047)}
.cover-blue{background:linear-gradient(145deg,#263d56,#47657b)}
.cover-burgundy{background:linear-gradient(145deg,#4a2028,#783942)}
.cover-charcoal{background:linear-gradient(145deg,#272a2b,#4a4b48)}
.cover-pine{background:linear-gradient(145deg,#18382f,#365b47)}
.cover-navy{background:linear-gradient(145deg,#1a2c49,#384f72)}
.cover-rust{background:linear-gradient(145deg,#61351f,#965337)}
.cover-bronze{background:linear-gradient(145deg,#5a4627,#8b713c)}
.cover-plum{background:linear-gradient(145deg,#3b293e,#66506a)}
.cover-midnight{background:linear-gradient(145deg,#151f36,#293858)}

.coming-page{
  min-height:62vh;
  display:grid;
  grid-template-columns:minmax(180px,260px) minmax(0,1fr);
  gap:clamp(32px,6vw,70px);
  align-items:center;
  max-width:820px;
  margin:18px auto 34px;
  padding:28px 10px;
}
.coming-cover{width:min(100%,230px);justify-self:center;box-shadow:16px 22px 35px rgba(45,33,12,.18),inset 12px 0 16px rgba(0,0,0,.15),inset 0 0 0 1px rgba(231,207,144,.12)}
.coming-cover .cover-mark{font-size:2.2rem;margin-bottom:28px}
.coming-cover .cover-mini-title{font-size:1.45rem}
.coming-cover .cover-mini-author{font-size:.8rem}
.coming-copy h1{font-size:clamp(2.35rem,6vw,4rem);margin-bottom:.15em}
.coming-copy .book-author{font-size:1.12rem}
.coming-copy .chapter-flourish{justify-content:flex-start;margin-left:0;max-width:260px}
.coming-seal{
  display:inline-flex;align-items:center;justify-content:center;
  margin:7px 0 14px;
  padding:10px 15px;
  border:1px solid #b88d35;
  color:#5b420e;
  background:linear-gradient(180deg,#f6e9ba,#dfc06c);
  font-family:var(--ui);font-size:.68rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;
  box-shadow:inset 0 1px rgba(255,255,255,.5),0 7px 15px rgba(87,62,13,.1)
}

@media(max-width:780px){
  .library-grid{grid-template-columns:1fr}
  .coming-page{grid-template-columns:1fr;text-align:center;gap:30px}
  .coming-copy .chapter-flourish{margin-inline:auto;justify-content:center}
  .coming-copy .action-row{justify-content:center}
}
@media(max-width:520px){
  .library-book{grid-template-columns:92px minmax(0,1fr);gap:15px;padding:15px}
  .mini-cover{width:92px;padding:14px 9px}
  .cover-mark{font-size:1.2rem;margin-bottom:12px}
  .cover-mini-title{font-size:.73rem}
  .cover-mini-author{font-size:.54rem;margin-top:7px}
  .library-meta strong{font-size:1.13rem}
  .library-blurb{font-size:.83rem;line-height:1.45}
  .library-status{margin-top:10px;font-size:.56rem}
  .coming-cover{width:180px}
}
@media(max-width:350px){
  .library-shortcut span:last-child{display:none}
  .library-shortcut{width:42px!important;padding:0!important}
}


/* StoryQuest v1.0 — full Hobbit course */
.chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.chapter-tile{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) 24px;align-items:center;gap:12px;text-align:left;padding:14px 13px;border:1px solid #c8b58e;background:rgba(255,252,244,.62);color:var(--ink);font-family:var(--serif);cursor:pointer;min-height:78px}
.chapter-tile:hover:not(:disabled){border-color:#9e7a38;background:#fffaf0}
.chapter-tile.done{background:linear-gradient(180deg,#f4ead2,#ebddbc);border-color:#b58b3d}
.chapter-tile.locked{opacity:.46;cursor:not-allowed;filter:saturate(.55)}
.chapter-tile-number{width:40px;height:40px;border:1px solid #b79a61;border-radius:50%;display:grid;place-items:center;font-family:var(--ui);font-size:.66rem;letter-spacing:.06em;color:#755718;background:#f6ecd2}
.chapter-tile.done .chapter-tile-number{background:#173a33;color:#f0deb0;border-color:#173a33}
.chapter-tile-copy{display:grid;gap:4px;min-width:0}
.chapter-tile-copy strong{font-size:1rem;line-height:1.18;color:#213a35;text-wrap:balance;overflow-wrap:anywhere}
.chapter-tile-copy em{font-family:var(--ui);font-style:normal;text-transform:uppercase;letter-spacing:.08em;font-size:.58rem;color:#776d5b}
.chapter-tile-mark{text-align:center;color:#a87822;font-size:1.1rem}
.word-summary{font-family:var(--ui);font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:#756b58;margin:10px 0 18px}
.character-arc{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:8px;margin:24px 0;font-family:var(--ui);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#5c574c}
.character-arc i{height:1px;background:linear-gradient(90deg,#b88d3d,#d6bf83)}
.grownup-modal{max-height:88vh;overflow:auto}
@media(max-width:700px){.chapter-grid{grid-template-columns:1fr}.chapter-tile{min-height:72px}.character-arc{grid-template-columns:1fr;text-align:center}.character-arc i{width:1px;height:15px;margin:auto;background:#b88d3d}}


/* --- StoryQuest v1.1 install experience --- */
.install-shortcut{display:inline-flex;align-items:center;gap:7px}
.install-shortcut.compact{white-space:nowrap}
.install-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;background:linear-gradient(180deg,rgba(249,240,212,.78),rgba(242,227,190,.62));border-color:#b99b59}
.install-card.installed{background:linear-gradient(180deg,rgba(233,241,232,.72),rgba(222,234,224,.58));border-color:#839b8d}
.install-card-icon,.install-modal-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;color:#173a33;background:linear-gradient(145deg,#f7e8ae,#d7b45c);border:1px solid #b38a31;box-shadow:0 8px 18px rgba(88,62,12,.12),inset 0 1px rgba(255,255,255,.6)}
.install-card.installed .install-card-icon{background:linear-gradient(145deg,#eef3eb,#cadccf);border-color:#8ca495}
.install-card-copy{min-width:0}
.install-card-copy h3{margin-top:.12em}
.install-card-copy .btn{display:inline-flex;gap:8px;align-items:center}
.install-modal{text-align:center;max-width:500px}
.install-modal-mark{margin:0 auto 16px}
.install-help{text-align:left;line-height:1.7;margin:16px 0}
.install-help > .svg-icon{display:inline-grid;vertical-align:middle;margin-right:7px;color:#6f5316}
.install-steps{margin:12px 0 0;padding-left:1.5rem}
.install-steps li{margin:9px 0;padding-left:4px}
@media(max-width:660px){
  .top-actions{gap:6px}
  .top-actions .icon-btn{padding:8px 9px}
  .top-actions .icon-btn span:not(.svg-icon){display:none}
  .install-card{grid-template-columns:1fr;text-align:center}
  .install-card-icon{margin:0 auto}
  .install-card-copy .btn{width:100%;justify-content:center}
}

.setup-install-button{margin-top:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px}


/* --- StoryQuest v1.3 Responsive QA & final layout polish --- */

/* Prevent decorative medallions from being cropped by legacy card overflow. */
.journey-card,
.premium-panels .card,
.install-card{
  overflow:visible;
}
.journey-card{
  padding-top:34px;
}
.section-medallion{
  z-index:5;
  overflow:visible;
}
.section-medallion .svg-icon,
.section-medallion svg,
.nav-ico,
.nav-ico .svg-icon,
.nav-ico svg,
.icon-btn .svg-icon,
.icon-btn svg,
.achievement-icon,
.achievement-icon svg,
.complete-icon,
.complete-icon svg{
  overflow:visible;
}

/* Header: keep branding and utility icons aligned and fully visible. */
.topbar{
  gap:14px;
}
.brand{
  flex:1 1 auto;
  min-width:0;
}
.top-actions{
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
}
.top-actions .icon-btn{
  min-width:42px;
  min-height:42px;
  flex:0 0 auto;
}
.library-shortcut,
.install-shortcut{
  max-width:100%;
}

/* The Narnia title is intentionally long; give it a tailored book-cover scale. */
.book-narnia .hero-copy h1{
  font-size:clamp(2.7rem,4vw,3.65rem);
  line-height:1.05;
  max-width:13ch;
}
.book-hobbit .hero-copy h1{
  max-width:12ch;
}

/* More resilient book hero layout at in-between widths. */
.enchanted-hero{
  grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);
}
.hero-copy{
  min-width:0;
}
.hero-copy .lead{
  max-width:43rem;
}
.hero-illustration{
  min-width:0;
  width:100%;
}

/* Cards, chapter tiles, labels and buttons should wrap without forcing width. */
.card,
.chapter-tile,
.library-book,
.library-meta,
.library-status,
.action-row,
.action-row .btn,
.pill,
.xp-chip,
.stat,
.word-card,
.feedback,
.big-question,
.journal-entry,
.journal-question{
  min-width:0;
  max-width:100%;
}
.library-status{
  display:inline-block;
  white-space:normal;
  line-height:1.25;
}
.chapter-tile{
  overflow:visible;
}
.chapter-tile-copy strong,
.chapter-tile-copy em,
.library-meta strong,
.library-meta em,
.library-blurb,
.option,
.sequence-item,
.feedback,
.big-question,
.btn span,
.pill,
.xp-chip{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Keep chapter-number circles and end marks centred even with multiline titles. */
.chapter-tile-number,
.chapter-tile-mark{
  align-self:center;
  flex:0 0 auto;
}
.chapter-tile-mark{
  line-height:1;
}

/* Fixed navigation: reserve enough room at the bottom and keep every icon centred. */
.shell{
  padding-bottom:132px;
}
main.book-page{
  padding-bottom:96px;
}
.bottom-nav{
  overflow:visible;
}
.nav-btn{
  justify-content:center;
  overflow:visible;
}
.nav-ico{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  overflow:visible;
}
.nav-label{
  width:100%;
  text-align:center;
}

/* Modal and install layouts remain usable at short viewport heights. */
.modal-backdrop{
  overflow:auto;
  overscroll-behavior:contain;
  padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
}
.modal,
.grownup-modal,
.install-modal{
  max-height:calc(100dvh - 32px);
  overflow:auto;
}

/* Tablet: keep a generous book spread without crowding the illustration. */
@media(max-width:900px){
  .enchanted-hero{
    grid-template-columns:minmax(0,1fr) minmax(225px,.72fr);
    gap:20px;
  }
  .book-narnia .hero-copy h1{
    font-size:clamp(2.45rem,5vw,3.25rem);
    max-width:12ch;
  }
}

/* Mobile: everything becomes one-column and touch targets remain clear. */
@media(max-width:760px){
  .enchanted-hero{
    grid-template-columns:1fr;
    gap:22px;
  }
  .hero-copy h1,
  .book-narnia .hero-copy h1,
  .book-hobbit .hero-copy h1{
    max-width:none;
  }
  .book-narnia .hero-copy h1{
    font-size:clamp(2.35rem,10vw,3rem);
    line-height:1.04;
  }
  .hero .action-row .btn{
    width:100%;
  }
  .journey-card{
    padding-top:32px;
  }
  .section-medallion{
    right:16px;
    top:-17px;
    width:40px;
    height:40px;
  }
  .section-medallion.small{
    right:14px;
    top:-14px;
    width:34px;
    height:34px;
  }
}

@media(max-width:620px){
  .shell{
    padding-bottom:126px;
  }
  main.book-page{
    padding-bottom:100px;
  }
  .topbar{
    gap:8px;
  }
  .brand-mark{
    flex:0 0 auto;
  }
  .top-actions{
    gap:5px;
  }
  .top-actions .icon-btn{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    display:grid;
    place-items:center;
  }
  .library-shortcut span:not(.svg-icon),
  .install-shortcut span:not(.svg-icon){
    display:none;
  }
  .chapter-grid{
    gap:9px;
  }
  .chapter-tile{
    grid-template-columns:40px minmax(0,1fr) 18px;
    gap:9px;
    padding:12px 10px;
    min-height:68px;
  }
  .chapter-tile-number{
    width:36px;
    height:36px;
  }
  .chapter-tile-copy strong{
    font-size:.96rem;
  }
  .chapter-tile-copy em{
    font-size:.55rem;
  }
  .premium-panels .card{
    padding-top:27px;
  }
  .bottom-nav{
    width:calc(100% - 10px);
    padding-left:4px;
    padding-right:4px;
  }
  .nav-btn{
    min-width:0;
    padding:6px 1px 5px;
  }
  .nav-ico{
    width:30px;
    height:30px;
  }
  .nav-label{
    font-size:.54rem;
    letter-spacing:.045em;
  }
  .reaction-grid{
    gap:8px;
  }
  .reaction{
    min-width:0;
  }
  .library-book{
    align-items:start;
  }
  .install-card{
    overflow:visible;
  }
}

/* Very narrow phones: preserve hierarchy rather than squeezing controls. */
@media(max-width:360px){
  .topbar{
    padding-left:10px;
    padding-right:10px;
  }
  .brand-mark{
    width:38px;
    height:44px;
  }
  .brand-name{
    font-size:.96rem;
  }
  .brand-tagline{
    font-size:.54rem;
    letter-spacing:.08em;
  }
  .top-actions .icon-btn{
    width:36px;
    height:36px;
    min-width:36px;
    min-height:36px;
  }
  .book-narnia .hero-copy h1{
    font-size:2.35rem;
  }
  .library-book{
    grid-template-columns:84px minmax(0,1fr);
    gap:12px;
    padding:13px;
  }
  .mini-cover{
    width:84px;
  }
  .library-meta strong{
    font-size:1.05rem;
  }
  .library-blurb{
    font-size:.8rem;
  }
  .chapter-tile{
    grid-template-columns:36px minmax(0,1fr) 15px;
    gap:7px;
  }
  .chapter-tile-number{
    width:32px;
    height:32px;
    font-size:.6rem;
  }
  .nav-label{
    font-size:.51rem;
    letter-spacing:.025em;
  }
  .nav-ico{
    width:28px;
    height:28px;
  }
}

/* Sticky/fixed navigation should never obscure content brought into view. */
html{
  scroll-padding-top:88px;
  scroll-padding-bottom:112px;
}
.journey-card,
.chapter-heading,
.card,
.library-book,
.coming-page{
  scroll-margin-top:88px;
}
