/* The bookshelf shares the site's type, buttons and listening controls. */
.setup-screen { background:radial-gradient(ellipse at 65% 18%,#eae2f05c,transparent 55%),#faf9fc; }
.setup-main { width:min(1120px,90%); margin:0 auto; padding:48px 0 42px; }
.setup-main h1 { font-size:clamp(36px,4.2vw,58px); }
.setup-sub { font-size:15px; }
#setup-mode-cards { display:inline-flex; gap:4px; padding:5px; margin:26px auto 30px; background:#ece8f0; border:1px solid #e6e0ed; border-radius:100px; }
.journey-tab { padding:12px 24px; border-radius:100px; background:transparent; color:#74677d; font-size:13px; transition:background .25s,color .25s,box-shadow .25s; }
.journey-tab span { margin-right:7px; }
.journey-tab.active { background:#fff; color:#302638; box-shadow:0 3px 12px #39254a0e; }
.library-message { font-size:13px; color:var(--ink2); padding:0 0 16px; }
.library-message:has(#library-status:empty) { display:none; }
[data-theme=peach] { --book-wash:#f4e6df; --book-ink:#634237; --book-accent:#aa715c; }
[data-theme=mint] { --book-wash:#e2eee7; --book-ink:#35584b; --book-accent:#608575; }
[data-theme=honey] { --book-wash:#f3e8d4; --book-ink:#715534; --book-accent:#ad844b; }
[data-theme=moon] { --book-wash:#e5dff1; --book-ink:#524169; --book-accent:#8974a2; }
.library-feature { position:relative; isolation:isolate; display:grid; grid-template-columns:1.08fr 1fr; min-height:390px; text-align:left; border-radius:32px; background:linear-gradient(115deg,#fff9,var(--book-wash)); border:1px solid #fff; box-shadow:0 14px 55px #6b537c07,inset 0 0 80px #fff4; transition:background .5s; overflow:hidden; }
.library-copy { position:relative; z-index:2; padding:46px 20px 48px 52px; align-self:center; }
.library-copy .eyebrow { color:var(--book-ink); font-size:10px; margin-bottom:15px; }
.library-copy h2 { font-size:clamp(32px,3.8vw,49px); line-height:1.08; letter-spacing:-.045em; max-width:430px; text-wrap:balance; }
.book-description { font-size:14px; line-height:1.8; color:#716675; max-width:350px; margin:18px 0; }
.book-facts { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 25px; }
.book-facts span { padding:6px 11px; border:1px solid #81728a22; border-radius:30px; font-size:10px; color:var(--book-ink); background:#fff4; }
.library-copy .primary-btn { font-size:13px; padding:16px 25px; }
.feature-note { font-size:10px; color:#796e7d; margin-top:13px; }
.feature-art { position:relative; display:grid; place-items:center; min-height:380px; perspective:1100px; }
.book-cover { position:relative; aspect-ratio:2/3; border-radius:3px 9px 9px 3px; background:var(--book-wash,#e8deef); box-shadow:-3px 1px 0 #fff,-7px 3px 0 var(--book-accent,#9780b0),9px 20px 25px #46384a24; transform:rotateY(-16deg) rotateZ(8deg); overflow:hidden; }
.book-cover::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#fff4,transparent 2%,#30212433 3%,transparent 5%,#fff3 6%,transparent 10%); pointer-events:none; }
.book-cover img { width:100%; height:100%; object-fit:cover; }
.feature-book { width:205px; z-index:2; animation:book-float 7s ease-in-out infinite; }
.cover-type { position:absolute; inset:0; padding:8% 10%; color:var(--book-ink); background:linear-gradient(#fffc,transparent 43%); }
.cover-type>span { font-size:6px; letter-spacing:.16em; font-weight:700; display:block; margin-bottom:7%; }
.cover-type strong { display:block; font-size:24px; line-height:1.08; letter-spacing:-.04em; text-wrap:balance; }
[data-theme=moon] .cover-type { color:#fff; background:linear-gradient(#30254755,transparent 50%); }
.book-pedestal { position:absolute; bottom:19px; width:270px; height:25px; background:#fff7; border-radius:50%; box-shadow:0 10px 25px #4e3f5914; }
.book-orbit { position:absolute; width:310px; height:310px; border-radius:50%; border:1px solid #fff8; transform:rotate(-25deg) scaleX(1.27); }
.orbit-two { width:370px; height:370px; opacity:.5; transform:rotate(30deg) scaleX(.92); }
.book-spark { position:absolute; color:var(--book-accent); font-size:24px; animation:spark-drift 5s ease-in-out infinite alternate; }
.spark-one { left:10%; top:26%; }
.spark-two { right:12%; top:64%; font-size:36px; animation-delay:-2s; }
.feature-navigation { position:absolute; right:24px; bottom:19px; z-index:3; display:flex; align-items:center; gap:7px; }
.feature-navigation>span { font-size:10px; color:var(--book-ink); letter-spacing:.1em; margin-right:8px; }
.feature-navigation button { width:44px; height:44px; border-radius:50%; background:#ffffffb0; border:1px solid #ffffffa0; font-size:17px; color:var(--book-ink); transition:transform .2s; }
.feature-navigation button:hover { transform:translateY(-2px); background:#fff; }
.shelf-heading { display:flex; justify-content:space-between; align-items:end; text-align:left; margin:36px 0 22px; }
.shelf-heading .eyebrow { font-size:8px; margin-bottom:8px; }
.shelf-heading h2 { font-size:24px; letter-spacing:-.035em; }
.shelf-heading>span { font-size:11px; color:#86778e; }
.story-shelf { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; text-align:left; padding:3px 3px 16px; }
.shelf-book { text-align:left; background:transparent; padding:0; border-radius:18px; color:var(--ink); }
.shelf-art { height:190px; display:grid; place-items:center; border:1px solid #e6e0ec; border-radius:18px; background:linear-gradient(140deg,#fff8,var(--book-wash)); position:relative; transition:background .3s,border-color .3s,box-shadow .3s; }
.shelf-art .book-cover { width:94px; transform:rotateY(-13deg) rotateZ(5deg); transition:transform .45s cubic-bezier(.2,.7,.3,1); }
.shelf-book:nth-child(even) .book-cover { transform:rotateY(-13deg) rotateZ(-5deg); }
.shelf-art .cover-type strong { font-size:12px; }
.shelf-art .cover-type>span { font-size:3px; }
.shelf-book:hover .book-cover,.shelf-book[aria-checked=true] .book-cover { transform:translateY(-7px) rotateY(-8deg) rotateZ(0); }
.shelf-book[aria-checked=true] .shelf-art { border-color:var(--book-accent); box-shadow:0 0 0 2px #ad97c820; }
.shelf-check { position:absolute; top:12px; right:12px; width:19px; height:19px; display:grid; place-items:center; border:1px solid #88729750; color:transparent; border-radius:50%; font-size:10px; }
.shelf-book[aria-checked=true] .shelf-check { color:white; background:var(--book-accent); border-color:var(--book-accent); }
.shelf-book>strong { display:block; font-size:13px; font-weight:600; margin:13px 0 5px; }
.shelf-caption { font-size:10px; color:#84768e; }
.talk-preview { display:flex; justify-content:center; align-items:center; gap:80px; text-align:left; min-height:300px; margin-bottom:25px; }
.talk-preview .eyebrow { font-size:9px; margin-bottom:15px; }
.talk-preview h2 { font-size:44px; line-height:1.07; letter-spacing:-.05em; }
.talk-preview p:last-child { font-size:14px; color:var(--ink2); line-height:1.8; margin-top:20px; }
.talk-preview>img { height:290px; width:260px; object-fit:contain; animation:nimba-breathe 5s infinite ease-in-out; }
.setup-main:has(#story-library:not(.hidden))>#setup-start-btn { display:none; }
.setup-screen .setup-footnote { font-size:11px; }
.story-art-preview { width:82px; height:112px; object-fit:cover; border-radius:5px 10px 10px 5px; box-shadow:5px 8px 15px #4b325329; margin-bottom:22px; }
@keyframes book-float { 0%,100% { transform:translateY(0) rotateY(-16deg) rotateZ(8deg); } 50% { transform:translateY(-12px) rotateY(-10deg) rotateZ(5deg); } }
@keyframes spark-drift { to { transform:translateY(-12px) rotate(20deg); opacity:.45; } }
@media(max-width:760px) {
    .setup-main { width:90%; padding:30px 0; }
    .setup-main h1 { font-size:36px; }
    .setup-sub { font-size:12px; line-height:1.7; max-width:280px; margin:12px auto 0; }
    #setup-mode-cards { margin:20px auto 24px; }
    .journey-tab { font-size:12px; padding:12px 17px; }
    .library-feature { grid-template-columns:1fr; border-radius:24px; }
    .feature-art { grid-row:1; min-height:260px; }
    .feature-book { width:145px; }
    .feature-book .cover-type strong { font-size:18px; }
    .book-orbit { width:220px; height:220px; }
    .orbit-two { width:270px; height:270px; }
    .book-pedestal { width:210px; height:18px; bottom:10px; }
    .library-copy { padding:18px 26px 62px; }
    .library-copy h2 { font-size:34px; }
    .library-copy .eyebrow { font-size:8px; margin-bottom:10px; }
    .book-description { font-size:13px; margin:13px 0; line-height:1.7; }
    .book-facts { margin-bottom:18px; }
    .library-copy .primary-btn { width:100%; }
    .feature-note { text-align:center; font-size:9px; }
    .feature-navigation { bottom:15px; right:22px; }
    .shelf-heading { margin:29px 0 20px; }
    .shelf-heading h2 { font-size:22px; }
    .shelf-heading .eyebrow { font-size:7px; }
    .story-shelf { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; }
    .shelf-art { height:175px; }
    .shelf-art .book-cover { width:90px; }
    .shelf-book>strong { font-size:12px; line-height:1.4; }
    .talk-preview { gap:10px; min-height:250px; }
    .talk-preview h2 { font-size:30px; }
    .talk-preview p:last-child { font-size:11px; }
    .talk-preview>img { width:45%; height:230px; }
    .talk-preview .eyebrow { font-size:7px; }
    .setup-screen .setup-footnote { font-size:10px; }
    .story-art-preview { width:50px; height:70px; margin:0 auto 15px; }
}
@media(prefers-reduced-motion:reduce) {
    .feature-book,.book-spark,.talk-preview>img { animation:none; }
    .library-feature,.journey-tab,.shelf-art,.shelf-art .book-cover,.feature-navigation button { transition:none; }
}
