:root{--ink:#2b2a26;--muted:#7a7466;--card:#fffdf8;--accent:#7a5c2e;--accent2:#c9894a}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#fbe3c4 0%,#0000 60%),radial-gradient(900px 500px at 110% 110%,#dfe9f5 0%,#0000 55%),#f7f3ea;place-items:center;margin:0;padding:16px;font:17px/1.5 Georgia,Times New Roman,serif;display:grid}.card{background:var(--card);border-radius:22px;width:100%;max-width:400px;padding:40px 32px 32px;animation:.5s ease-out rise;box-shadow:0 20px 60px #5a3c141f,0 2px 6px #0000000a}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.brand{color:var(--accent);letter-spacing:.01em;text-align:center;margin:0 0 28px;font-size:26px}.brand:before{content:"✦ ";color:var(--accent2)}h1{margin:0 0 6px;font-size:28px;font-weight:400}.lead{color:var(--muted);margin:0 0 24px}.small{color:var(--muted);margin:18px 0 0;font-size:14px}.center{text-align:center}.icon{margin:4px 0 10px;font-size:44px;animation:3s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-6px)}}input[type=email]{width:100%;font:inherit;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;margin:0 0 12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s}input[type=email]:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.primary{width:100%;font:inherit;color:#fff;cursor:pointer;background:linear-gradient(135deg, var(--accent2), var(--accent));border:0;border-radius:12px;padding:14px 16px;font-size:17px;transition:transform .1s;box-shadow:0 8px 20px #7a5c2e40}.primary:active{transform:scale(.98)}.primary[disabled]{opacity:.7;cursor:default}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.notice{color:#6b4a1d;background:#fff4e5;border:1px solid #f3d3a6;border-radius:12px;margin:0 0 22px;padding:12px 14px;font-size:15px}.secondary{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;padding:12px 18px}.secondary:hover{border-color:var(--accent2)}.card:has(.childcard){max-width:540px}.childcard label{color:var(--ink);margin:22px 0 2px;display:block}.childcard .hint{color:var(--muted);margin:0 0 8px;font-size:14px}.childcard input[type=text],.childcard select,.childcard textarea{width:100%;font:inherit;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.childcard textarea{resize:vertical;line-height:1.45}.childcard input[type=text]:focus,.childcard select:focus,.childcard textarea:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.childcard .row,.chips{gap:10px;display:flex}.chips .chip{margin:0}.chip input{opacity:0;pointer-events:none;position:absolute}.chip span{cursor:pointer;background:#fff;border:1.5px solid #e4dccb;border-radius:999px;padding:10px 22px;transition:all .15s;display:inline-block}.chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.chip input:focus-visible+span{box-shadow:0 0 0 4px #c9894a40}.more{border-top:1px solid #eee5d4;margin:26px 0 4px;padding-top:18px}.more summary{cursor:pointer;color:var(--accent);list-style:none}.more summary:before{content:"＋ "}.more[open] summary:before{content:"－ "}.more>.hint{margin-top:8px}.childcard .primary{margin-top:28px}a.primary,a.secondary{text-align:center;text-decoration:none;display:inline-block}a.primary{width:auto;padding:12px 22px}.childcard ::placeholder,input::placeholder{color:#b3ab9a;font-style:italic}.stages{gap:8px;margin:0 0 22px;display:flex}.stage{flex-direction:column;flex:1;gap:6px;display:flex}.stage .bar{background:#efe6d4;border-radius:6px;height:6px;overflow:hidden}.stage .bar span{background:linear-gradient(90deg, var(--accent2), var(--accent));height:100%;transition:width .35s;display:block}.stage .label{color:#b1a895;font-size:12px;line-height:1.2}.stage.on .label{color:var(--accent)}.stage.done .label{color:var(--muted)}.childcard h1{margin-bottom:8px;font-size:25px}.childcard input[type=date]{width:100%;font:inherit;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;padding:12px 14px}.childcard input[type=date]:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.cardnav{align-items:center;gap:14px;margin-top:26px;display:flex}.cardnav .grow{flex:1}.primary.small{width:auto;padding:12px 28px}.primary:disabled{opacity:.45;cursor:default;box-shadow:none}.people{flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.people li{background:#fff8ee;border:1px solid #ecdcc1;border-radius:999px;align-items:baseline;gap:8px;padding:6px 12px;display:flex}.people li .small{margin:0}.addperson{gap:10px;display:grid}.addperson input,.addperson select{width:100%;font:inherit;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;padding:12px 14px}.addperson .row{justify-content:flex-end;align-items:center;gap:14px;display:flex}.addbtn{width:100%}.childcard.center .primary{max-width:320px;margin:18px auto 0;display:block}@media (max-width:420px){:is(.card:has(.childcard),.card:has(.makebook),.card:has(.library)){padding:26px 22px 22px}}.addperson input:focus,.addperson select:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.cardnav .primary{margin-top:0}.card:has(.makebook){max-width:560px}.tiles{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}.tile{font:inherit;text-align:left;cursor:pointer;color:var(--ink);background:#fff;border:1.5px solid #ece3d1;border-radius:16px;flex-direction:column;gap:4px;padding:18px 16px;transition:transform .12s,border-color .15s,box-shadow .15s;display:flex}.tile:hover{border-color:var(--accent2);transform:translateY(-2px);box-shadow:0 10px 24px #7a5c2e1f}.tile-icon{font-size:28px}.tile b{font-size:20px;font-weight:400}.tile span:last-child{color:var(--muted);font-size:14px;line-height:1.35}.makebook textarea{width:100%;font:inherit;resize:vertical;background:#fff;border:1.5px solid #e4dccb;border-radius:14px;margin-top:4px;padding:14px 16px;line-height:1.5}.makebook textarea:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.makebook textarea::placeholder{color:#b3ab9a;font-style:italic}.makebook .hint{color:var(--muted);margin:0 0 8px;font-size:14px}.nudge{color:#6b4a1d;background:#fff4e5;border:1px solid #f3d3a6;border-radius:12px;margin:12px 0 0;padding:10px 14px;font-size:15px}.makebook .primary{margin-top:18px}.backlink{margin:0 0 14px;font-size:15px;display:inline-block}@media (max-width:380px){.tiles{grid-template-columns:1fr}}.card:has(.reader){max-width:920px;padding:28px 24px}.reader .pic{aspect-ratio:4/3;object-fit:cover;border-radius:14px;width:100%;display:block}.reader .placeholder{color:#a08a66;background:radial-gradient(circle at 30% 25%,#fde7c8,#0000 55%),radial-gradient(circle at 75% 80%,#dfe9f5,#0000 50%),#f6efe2;place-items:center;font-style:italic;display:grid}.reader.cover{text-align:center}.reader.cover .pic{aspect-ratio:1;max-width:520px;margin:0 auto 22px}.reader .title{margin:0 0 4px;font-size:32px}.reader.cover .primary{max-width:320px;margin-top:8px}.progress{background:#f0e7d6;border-radius:4px;height:4px;margin:0 0 18px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--accent2), var(--accent));height:100%;transition:width .35s;display:block}.spread{gap:18px;animation:.35s ease-out pagein;display:grid}@keyframes pagein{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.words{margin:0;font-size:21px;line-height:1.6}@media (min-width:760px){.spread{grid-template-columns:3fr 2fr;align-items:center;gap:32px}.words{font-size:23px}}.turn{justify-content:space-between;align-items:center;margin-top:20px;display:flex}.arrow{font:inherit;cursor:pointer;width:52px;height:52px;color:var(--accent);background:#fff;border:1.5px solid #e4dccb;border-radius:50%;font-size:22px}.arrow:hover{border-color:var(--accent2)}.reader.end{text-align:center;padding:20px 0}.theend{color:var(--accent);margin:0 0 16px;font-size:30px}.back{max-width:520px;color:var(--muted);margin:0 auto 28px;font-size:19px;font-style:italic;line-height:1.6}.love{background:#fff8ee;border:1px solid #f3dcb8;border-radius:16px;max-width:420px;margin:0 auto 18px;padding:20px}.love p{margin:0 0 12px;font-size:20px}.love .love-heading{margin:0 0 6px;font-size:22px}.love .love-line{color:var(--muted);margin:0 0 16px;font-size:16px;line-height:1.5}.flowbar{background:#efe6d4;border-radius:5px;height:5px;margin:0 0 20px;overflow:hidden}.flowbar span{background:linear-gradient(90deg, var(--accent2), var(--accent));height:100%;transition:width .35s;display:block}.note{border-left:4px solid var(--accent2);background:#fff8ee;border-radius:10px;margin:6px 0 10px;padding:16px 18px;font-size:18px;line-height:1.5}.row-between{justify-content:space-between;margin-top:16px;display:flex}.stagelist{gap:10px;margin:8px 0 22px;padding:0;list-style:none;display:grid}.stagelist li{color:#b1a895;padding-left:30px;position:relative}.stagelist li:before{content:"○";position:absolute;left:4px}.stagelist li.now{color:var(--ink)}.stagelist li.now:before{content:"◐";color:var(--accent2);animation:1.2s linear infinite spin;display:inline-block}.stagelist li.done{color:var(--muted)}.stagelist li.done:before{content:"✓";color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.tile[aria-pressed=true]{border-color:var(--accent)}@keyframes stepin{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.step-in,.card,.spread,.icon,.stagelist li.now:before{animation:none!important}*{transition:none!important}}button,.primary,.secondary,a.primary,.chip span,.link{min-height:44px}.link{align-items:center;display:inline-flex}.card{min-width:0}.card:has(.library){max-width:560px}.library>h1{margin-bottom:14px}.kids{flex-wrap:wrap;gap:8px;margin:0 0 18px;display:flex}.kid{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:1.5px solid #e4dccb;border-radius:999px;align-items:center;gap:8px;padding:4px 16px 4px 5px;font-size:15px;display:inline-flex}.kid[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff}.avatar{color:#5a4320;border-radius:50%;flex:none;place-items:center;font-family:Georgia,serif;line-height:1;display:inline-grid;box-shadow:inset 0 0 0 2px #ffffffb3}.kid-solo{align-items:center;gap:10px;margin:0 0 18px;font-size:17px;display:flex}.covers{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:18px 16px;margin:0;padding:0;list-style:none;display:grid}.book{min-width:0;position:relative}.shelf-cover{aspect-ratio:3/4;color:var(--ink);background:var(--tint,#f3ead9);border-radius:4px 12px 12px 4px;text-decoration:none;display:block;position:relative;overflow:hidden;box-shadow:inset 6px 0 #0000000f,inset 8px 0 6px -4px #0000001f,0 8px 18px #5a3c1429}.shelf-cover img{object-fit:cover;width:100%;height:100%}.kind-grow{--tint:#e3ecd6}.kind-explore{--tint:#dbe6f1}.kind-imagine{--tint:#e8def0}.kind-celebrate{--tint:#f6e4c6}.cover-face{text-align:center;background:radial-gradient(circle at 70% 20%,#ffffffb3,#0000 55%);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 12px 14px 18px;display:flex;position:absolute;inset:0}.cover-icon{font-size:30px}.cover-title{text-wrap:balance;font-size:16px;line-height:1.25}.cover-for{color:var(--muted);font-size:12px;font-style:italic}.ribbon{background:var(--accent2);color:#fff;letter-spacing:.06em;text-transform:uppercase;padding:3px 34px;font-size:12px;position:absolute;top:10px;right:-30px;transform:rotate(35deg)}.shelf-cover.add{text-align:center;color:var(--accent);box-shadow:none;background:0 0;border:1.5px dashed #e0d4bd;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:15px;display:flex}.shelf-cover.add .plus{font-size:34px;line-height:1}.book-more{z-index:1;font:inherit;width:34px;height:34px;min-height:34px;color:var(--ink);cursor:pointer;background:#ffffffd9;border:0;border-radius:50%;font-size:17px;line-height:1;position:absolute;bottom:6px;right:6px;box-shadow:0 2px 6px #0000001f}.pop{z-index:2;background:var(--card);border:1px solid #eadfcb;border-radius:12px;justify-content:center;padding:4px 10px;display:flex;position:absolute;inset:auto 6px 46px;box-shadow:0 10px 24px #5a3c142e}.pop.confirm{aspect-ratio:3/4;text-align:center;border-radius:4px 12px 12px 4px;flex-direction:column;justify-content:center;align-items:center;gap:2px;inset:0}.pop p{margin:0 0 4px;font-size:14px;line-height:1.35}.pop .link{min-height:36px}.danger{color:#a3412b}.arrived{text-align:center;background:linear-gradient(#fff6e8,#0000);border-radius:16px;margin:0 0 20px;padding:18px 16px;position:relative}.arrived h2{margin:0 0 12px;font-size:21px;font-weight:400}.arrived .primary,.empty .primary,.welcome .primary{text-align:center;text-decoration:none;display:block}.empty,.welcome{text-align:center;padding:8px 0 4px}.empty h2{text-wrap:balance;margin:0 0 16px;font-size:21px;font-weight:400}.empty .small{margin-top:10px}.shelf-art{border-bottom:6px solid #e2d3b6;border-radius:2px;width:180px;height:92px;margin:6px auto 18px;position:relative}.shelf-art span{border:1.5px dashed #dccbad;border-radius:3px 3px 0 0;width:26px;position:absolute;bottom:0}.shelf-art span:first-child{height:62px;left:34px}.shelf-art span:nth-child(2){height:74px;left:66px}.shelf-art span:nth-child(3){transform-origin:0 100%;height:54px;left:98px;transform:rotate(9deg)}.welcome .shelf-art span{border-style:solid;border-color:#0000}.welcome .shelf-art span:first-child{background:#e3ecd6}.welcome .shelf-art span:nth-child(2){background:#f6e4c6}.welcome .shelf-art span:nth-child(3){background:#dbe6f1}.lib-foot{border-top:1px solid #efe6d6;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:26px;padding-top:12px;display:flex}.lib-foot form{margin:0}:root{--quick:.12s;--move:.24s;--ease:cubic-bezier(.2, .8, .2, 1)}.card{animation-duration:.28s;animation-timing-function:var(--ease)}.step-in{animation:stepin var(--move) var(--ease)}.spread{animation-duration:var(--move);animation-timing-function:var(--ease)}button,a.primary,.secondary,.tile,.kid,.sbtn,.shelf-cover,.book-more,.chip span{-webkit-tap-highlight-color:transparent;transition:transform var(--quick) var(--ease), background-color var(--quick), border-color var(--quick), box-shadow var(--quick), color var(--quick), opacity var(--quick)}button:active:not(:disabled),a.primary:active,.secondary:active,.tile:active,.kid:active,.sbtn:active,.book-more:active{transform:scale(.96)}.shelf-cover:active{transform:scale(.97)}@media (hover:hover){.book-more:hover{background:#fff}.shelf-cover:hover{transform:translateY(-3px)rotate(-.6deg);box-shadow:inset 6px 0 #0000000f,inset 8px 0 6px -4px #0000001f,0 14px 26px #5a3c1433}.shelf-cover.add:hover{box-shadow:none;border-color:var(--accent2)}}.sbtn[aria-pressed=true]{animation:pick .2s var(--ease)}@keyframes pick{50%{transform:scale(1.1)}}.pop{animation:popin .16s var(--ease);transform-origin:bottom}@keyframes popin{0%{opacity:0;transform:translateY(-4px)scale(.97)}}.book.arrive .shelf-cover{animation:arrive .28s var(--ease) both}@keyframes arrive{0%{opacity:0;transform:translateY(16px)scale(.92)}}.arrived h2,.arrived .primary{animation:stepin var(--move) var(--ease) both}.notice{animation:popin .2s var(--ease)}.primary[aria-busy=true]:after{content:"";vertical-align:-3px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-left:10px;animation:.7s linear infinite spin;display:inline-block}.burst{pointer-events:none;width:0;height:0;position:absolute;top:34px;left:50%}.burst i{opacity:0;width:7px;height:7px;animation:burst .52s var(--ease) 80ms;border-radius:50%;position:absolute}@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(.6)}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(1)}}.childcard.center,.feedback.center{position:relative}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.burst{display:none}}.card:has(.feedback){max-width:560px}@media (max-width:420px){.card:has(.feedback){padding:26px 22px 22px}}.feedback h1{font-size:24px}.feedback .hint{color:var(--muted);margin:0 0 6px;font-size:14px}.scale{grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 14px;display:grid}.sbtn{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;font-size:18px;transition:background .15s,border-color .15s}@media (hover:hover){.sbtn:hover{border-color:var(--accent2)}}@media (hover:none){.safe .secondary:hover{border-color:#e4dccb}}.sbtn[aria-pressed=true],.safe .secondary[aria-pressed=true]{border-color:var(--accent2);background:#fdebd2}.anchors{color:var(--muted);margin:0 0 8px;font-size:14px}.anchors div{grid-template-columns:26px 1fr;gap:6px;margin:0 0 4px;display:grid}.anchors dt{color:var(--accent);font-weight:700}.anchors dd{margin:0}.safe{gap:10px;margin:0 0 14px;display:grid}.feedback textarea{width:100%;font:inherit;resize:vertical;background:#fff;border:1.5px solid #e4dccb;border-radius:12px;padding:12px 14px}.feedback textarea:focus{border-color:var(--accent2);outline:none;box-shadow:0 0 0 4px #c9894a2e}.feedback .primary{margin-top:14px}.feedback a.primary{text-align:center;text-decoration:none;display:block}.card{position:relative}.home-link{width:44px;height:44px;color:var(--accent);transition:transform var(--quick) var(--ease), background-color var(--quick);background:#f6efe2;border-radius:50%;place-items:center;font-size:24px;text-decoration:none;display:grid;position:absolute;top:18px;left:18px}.home-link:active{transform:scale(.94)}@media (hover:hover){.home-link:hover{background:#efe3cf}}.tiles.styles .tile span{font-size:13px}.tile.soon{opacity:.6;cursor:default}.soon-badge{letter-spacing:.06em;text-transform:uppercase;background:#f6efe2;border-radius:999px;align-self:flex-start;padding:2px 10px;display:inline-block;color:var(--accent)!important;font-size:11px!important}.fb-book{align-items:center;gap:10px;margin:0 0 8px;font-size:15px;display:flex}.fb-book b{font-weight:400}.mini-cover{aspect-ratio:3/4;background:var(--tint,#f3ead9);border-radius:3px 6px 6px 3px;flex:none;width:30px;box-shadow:inset 3px 0 #00000014,0 2px 5px #5a3c142e}.love-done{text-align:center;color:var(--accent)}.note-links{flex-wrap:wrap;justify-content:center;gap:0 22px;margin-top:10px;display:flex}.lib-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.lib-head h1{margin-right:auto}.lib-head .credits{white-space:nowrap;color:var(--muted,#6f685c);background:var(--chip,#f1e6d4);border-radius:999px;margin:0;padding:4px 10px;font-size:14px;font-weight:600}.shelf-cover.making{cursor:default;animation:1.8s ease-in-out infinite making}@keyframes making{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.shelf-cover.making{animation:none}}.waiting .dots:after{content:"⏳";margin-right:8px}.credit-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.lib-head .credits.ask{cursor:pointer;font:inherit;color:var(--accent);border:0;font-size:14px;font-weight:600}.lib-head .credits.ask:disabled{cursor:default;color:var(--muted)}.lib-head h1{white-space:nowrap}.credit-row{flex-direction:column;align-items:flex-end;gap:4px}.lib-head .credits.ask{background:var(--chip,#f1e6d4);border-radius:999px;min-height:0;padding:4px 10px;line-height:1.4}
