@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-latin-600-normal-tIfxVoAe.woff2)format("woff2"),url(/assets/baloo-2-latin-600-normal-B4tNaogw.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--ink:#1e1b3a;--yellow:#ffc93c;--pink:#ff8fa3;--lilac:#b9a4ff;--lilac-soft:#f2edff;--mint:#7de2b8;--green:#19b37c;--green-soft:#e6f8ef;--sky:#8cc8ff;--blue:#2456e8;--cream:#fff1c7;--kraft:#f2d3ae;--kraft-dark:#d9a066;--muted:#4a4766;--muted-2:#6a6684;--soft:#f4f2fa;--rule:#e4e1f0;--here-bg:#d6f5e7;--here:#0c5c3c;--away-bg:#ffe3e6;--away:#8c1d2a;--head:"Baloo 2", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif;--nav-h:80px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-size:16px;font-weight:600;line-height:1.45}h1,h2,h3{font-family:var(--head);margin:0;font-weight:800;line-height:1.05}p{margin:0}a{color:var(--blue)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}img{display:block}ul,ol{margin:0;padding:0;list-style:none}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:24px 16px}.text-here{color:var(--here);font-weight:800}.text-away{color:var(--away);font-weight:800}.text-bag{color:#7a4d1c;font-weight:800}.fine{color:var(--muted);text-align:center;font-size:12px;font-weight:700;line-height:1.4}.btn{border:3px solid var(--ink);min-height:56px;color:var(--ink);box-shadow:0 5px 0 var(--ink);font-family:var(--head);background:#fff;border-radius:29px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:19px;font-weight:800;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.btn:disabled{opacity:.45;box-shadow:none}.btn-small{min-height:46px;box-shadow:0 3px 0 var(--ink);border-radius:23px;padding:0 16px;font-size:15px}.btn-blue{background:var(--blue);color:#fff}.btn-yellow{background:var(--yellow)}.btn-green{background:var(--green)}.btn-pink{background:var(--pink)}.btn-lilac{background:var(--lilac)}.btn-kraft{background:var(--kraft)}.btn-white{background:#fff}.btn-dashed{box-shadow:none;background:#fff;border-style:dashed;width:100%;min-height:50px;font-size:17px}.btn-mini{border:2px solid var(--ink);background:#fff;border-radius:20px;height:40px;padding:0 14px;font-size:13px;font-weight:800}.text-link{min-height:44px;color:var(--blue);text-underline-offset:3px;background:0 0;border:0;justify-content:center;align-items:center;padding:10px 4px;font-size:15px;font-weight:800;text-decoration:underline;display:inline-flex}.text-link.small{min-height:32px;padding:4px 0;font-size:13px}.text-link.danger,.danger{color:var(--away)}.round-btn{border:3px solid var(--ink);width:44px;height:44px;color:var(--ink);background:#fff;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.row-btns{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.logo{background:var(--blue);border:3px solid var(--ink);border-radius:30%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;transform:rotate(-6deg)}.avatar{border:3px solid var(--ink);font-family:var(--head);color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.cover{object-fit:cover;border:2px solid var(--ink);background:var(--soft);border-radius:10px;flex-shrink:0}.cover-blank{text-align:center;font-family:var(--head);background:var(--cream);justify-content:center;align-items:center;padding:6px;font-size:12px;display:inline-flex}.cover-xs{border-radius:6px;width:40px;height:60px}.cover-row{width:72px;height:108px}.cover-pile{width:60px;height:90px}.cover-slot{width:64px;height:96px}.rating{white-space:nowrap;align-items:center;gap:4px;font-size:13px;font-weight:800;display:inline-flex}.rating-label{color:var(--muted);font-weight:700}.pill{white-space:nowrap;border-radius:9px;align-self:flex-start;padding:2px 9px;font-size:12px;font-weight:800;display:inline-block}.pill-shelf{background:var(--here-bg);color:var(--here)}.pill-away{background:var(--away-bg);color:var(--away)}.pill-bag{background:var(--kraft);color:#5a3a14}.pill-home{background:var(--cream);color:#5c4300}.tag{border:2px solid var(--ink);background:#fff;border-radius:11px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-flex}.tag-kraft{background:var(--kraft)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips-scroll{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:2px 16px 6px;overflow-x:auto}.chip{border:2px solid var(--ink);background:#fff;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.chip.on{background:var(--yellow)}.chip.on-green{background:var(--mint)}.chip-avoid.on{background:var(--away-bg)}.chip.static{min-height:30px;font-size:13px}.seg{flex-wrap:wrap;gap:8px;display:flex}.seg-btn{border:3px solid var(--ink);background:#fff;border-radius:16px;flex:1;min-height:48px;padding:0 12px;font-size:15px;font-weight:800}.seg-btn.on{background:var(--yellow);box-shadow:0 3px 0 var(--ink)}.notice{background:var(--cream);border-radius:16px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.4}.notice-pink{background:var(--away-bg);color:var(--away);margin:0 16px}.notice-green{background:var(--green-soft)}.notice-link{color:var(--ink);margin:12px 16px 0;text-decoration:none;display:block}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.empty h2{font-size:22px}.empty p{color:var(--muted);max-width:320px}.card{border:3px solid var(--ink);background:#fff;border-radius:22px;flex-direction:column;gap:10px;padding:14px;display:flex}.card-dashed{border-style:dashed}.card-title{font-size:19px}.label{letter-spacing:.06em;font-size:12px;font-weight:800}.label-green{color:var(--here)}.label-red{color:var(--away)}hr.dash{border:0;border-top:2px dashed #b8b4cc;width:100%;margin:4px 0}.loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-book{background:var(--blue);border:3px solid var(--ink);border-radius:16px;width:56px;height:56px;animation:.9s ease-in-out infinite alternate wobble}@keyframes wobble{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}.toast{left:50%;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;z-index:50;border-radius:18px;width:min(420px,100% - 32px);padding:14px 16px;font-size:15px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 6px #1e1b3a40}.page{max-width:640px;margin:0 auto;padding-bottom:32px}.page.has-nav{padding-bottom:calc(var(--nav-h) + 32px + env(safe-area-inset-bottom))}.page-title{align-items:center;gap:10px;padding:14px 16px 0;font-size:30px;display:flex}.lead{color:var(--muted);padding:6px 16px 0;font-size:15px;font-weight:700}.page-head{align-items:center;gap:12px;padding:12px 16px;display:flex}.page-head h1{font-size:30px}.section-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tabbar{z-index:20;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:6px 0 calc(10px + env(safe-area-inset-bottom));border-top:3px solid var(--ink);background:#fff;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{font-family:var(--head);color:var(--muted-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.tab.on{color:var(--ink)}.tab.on .tab-icon{background:var(--cream)}.tab-icon{border-radius:14px;padding:3px 12px;display:flex;position:relative}.badge{border:2px solid var(--ink);background:var(--lilac);min-width:22px;height:20px;color:var(--ink);font-family:var(--body);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:800;display:flex;position:absolute;top:-8px;right:-10px}.badge-bag{background:var(--kraft)}.topbar{display:none}.topbar.guest{border-bottom:3px solid var(--ink);z-index:20;background:#fff;align-items:center;gap:12px;height:64px;padding:0 16px;display:flex;position:sticky;top:0}.topbar.guest .brand{font-family:var(--head);color:var(--ink);flex:1;align-items:center;gap:8px;font-size:20px;font-weight:800;text-decoration:none;display:flex}.topbar.guest .topnav{display:none}.guest-signin{min-height:42px}.welcome{flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;display:flex}.welcome-hero{background:var(--yellow);border-bottom:3px solid var(--ink);height:330px;position:relative;overflow:hidden}.welcome-brand{font-family:var(--head);align-items:center;gap:10px;font-size:22px;font-weight:800;display:flex;position:absolute;top:16px;left:16px}.fan{position:absolute;inset:0}.fan .cover{border-width:3px;border-radius:14px;width:120px;height:180px;position:absolute}.fan-0{z-index:2;top:86px;left:calc(50% - 64px);width:128px!important;height:192px!important}.fan-1{top:120px;left:calc(50% - 168px);transform:rotate(-10deg)}.fan-2{top:110px;left:calc(50% + 48px);transform:rotate(9deg)}.welcome-body{flex-direction:column;gap:12px;padding:22px 16px 0;display:flex}.welcome-body h1{font-size:34px}.facts{flex-direction:column;gap:6px;font-size:15px;font-weight:700;display:flex}.facts li{align-items:center;gap:8px;display:flex}.dot{border:2px solid var(--ink);border-radius:6px;flex-shrink:0;width:12px;height:12px}.welcome-actions{flex-direction:column;gap:8px;margin-top:auto;padding:24px 16px 28px;display:flex}.g-mark{border:2px solid var(--ink);border-radius:15px;justify-content:center;align-items:center;width:30px;height:30px;font-size:18px;line-height:1;display:inline-flex}.join{flex-direction:column;max-width:520px;min-height:100vh;margin:0 auto;display:flex}.steps{flex-direction:column;gap:14px;padding:14px 16px 0;display:flex}.steps-row{justify-content:space-between;align-items:center;gap:10px;min-height:44px;display:flex}.steps-count{color:var(--muted);font-size:13px;font-weight:800}.signed-in{background:var(--soft);border-radius:18px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:13px;font-weight:800;display:inline-flex}.steps-bar{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.steps-bar span{background:var(--rule);border-radius:4px;height:8px}.steps-bar span.on{background:var(--ink)}.join-form{flex-direction:column;flex:1;gap:16px;padding:20px 16px 26px;display:flex}.join-intro{flex-direction:column;gap:8px;display:flex}.join-intro h1{font-size:32px}.join-intro p{color:var(--muted);font-size:15px;font-weight:700}.join-icon{border:3px solid var(--ink);width:64px;height:64px;color:var(--ink);border-radius:20px;justify-content:center;align-items:center;display:flex;transform:rotate(-5deg)}.join-actions{flex-direction:column;gap:10px;margin-top:auto;padding-top:8px;display:flex}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field-label{padding:0;font-size:14px;font-weight:800}.field-hint{color:var(--muted);font-size:12px;font-weight:700}.field-error{color:var(--away);font-size:13px;font-weight:800}.input{border:3px solid var(--ink);width:100%;min-height:52px;font:inherit;color:var(--ink);background:#fff;border-radius:16px;padding:0 14px;font-size:17px;font-weight:800}textarea.input{resize:vertical;min-height:0;padding:10px 14px;font-size:15px;font-weight:700}select.input{padding:0 10px;font-size:15px}.prefixed{border:3px solid var(--ink);background:#fff;border-radius:18px;height:56px;display:flex;overflow:hidden}.prefixed:focus-within{outline:3px solid var(--blue);outline-offset:2px}.prefix{background:var(--cream);border-right:3px solid var(--ink);flex-shrink:0;justify-content:center;align-items:center;width:72px;font-size:16px;font-weight:800;display:flex}.prefix-mint{background:var(--here-bg)}.prefixed input{min-width:0;font:inherit;letter-spacing:.03em;color:var(--ink);border:0;outline:none;flex:1;padding:0 14px;font-size:19px;font-weight:800}.info{border-radius:20px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.info-green{background:var(--green-soft)}.info-icon{border:2px solid var(--ink);background:var(--green);width:34px;height:34px;color:var(--ink);border-radius:17px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.child-card{border:3px solid var(--ink);border-radius:22px;align-items:center;gap:12px;padding:12px 14px;display:flex}.child-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.child-card-text strong{font-family:var(--head);font-size:20px;line-height:1.1}.child-card-text span{color:var(--muted);font-size:13px;font-weight:700}.child-form{flex-direction:column;gap:14px;display:flex}.dob{grid-template-columns:1fr 1.6fr 1.2fr;gap:8px;display:grid}.age-note{background:var(--green-soft);border-radius:12px;padding:8px 12px;font-size:14px;font-weight:800}.colours{flex-wrap:wrap;gap:10px;display:flex}.colour{border:3px solid var(--ink);border-radius:22px;width:44px;height:44px}.colour.on{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--ink)}.plans{flex-direction:column;gap:10px;display:flex}.plan{border:3px solid var(--ink);text-align:left;background:#fff;border-radius:22px;align-items:center;gap:14px;min-height:78px;padding:12px 16px;display:flex}.plan.on{background:var(--yellow);box-shadow:0 5px 0 var(--ink)}.plan-slots{gap:5px;width:70px;display:flex}.plan-slots span{background:var(--ink);border-radius:4px;width:20px;height:30px}.plan-text{flex-direction:column;flex:1;display:flex}.plan-text strong{font-family:var(--head);font-size:20px;line-height:1.1}.plan-text span,.plan-price span{font-size:13px;font-weight:700}.plan-price{flex-direction:column;align-items:flex-end;display:flex}.plan-price strong{font-family:var(--head);font-size:24px;line-height:1}.rules{background:var(--soft);border-radius:22px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.rules h2{font-size:18px}.rules p{gap:10px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.rules-tick{color:var(--here);flex-shrink:0}.agree{align-items:flex-start;gap:12px;min-height:44px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.agree input,.check-row input{width:24px;height:24px;accent-color:var(--blue);flex-shrink:0;margin:0}.pay-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.pay-head h1{font-size:30px}.pay-amount{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.pay-amount strong{font-family:var(--head);font-size:32px;line-height:1}.pay-amount span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:800}.qr-card{border:3px solid var(--ink);background:var(--cream);text-align:center;border-radius:26px;flex-direction:column;align-items:center;gap:10px;padding:16px;display:flex}.qr-card h2{font-size:19px}.qr-card p{color:#4a3a22;font-size:13px;font-weight:700;line-height:1.35}.qr-frame{border:3px solid var(--ink);background:#fff;border-radius:16px;width:210px;height:210px;padding:10px;position:relative}.qr-svg{width:100%;height:100%;display:block}.qr-logo{background:#fff;border-radius:14px;padding:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.qr-soon{background:var(--soft);justify-content:center;align-items:center;display:flex}.qr-btns{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.qr-btns .btn{font-family:var(--body);padding:0 8px;font-size:14px}.thanks{background:var(--green-soft);border:3px solid var(--ink);border-radius:22px;align-items:center;gap:12px;padding:14px 16px;display:flex}.thanks>span{flex-direction:column;gap:2px;font-size:13px;font-weight:700;display:flex}.thanks strong{font-family:var(--head);font-size:20px;line-height:1.05}.thanks svg{color:var(--ink);flex-shrink:0}.home-head{justify-content:space-between;align-items:center;padding:12px 16px 8px;display:flex}.home-hi{font-family:var(--head);align-items:center;gap:10px;font-size:22px;font-weight:800;display:flex}.home-kids{text-decoration:none;display:flex}.home-kids .avatar+.avatar{margin-left:-10px}.bag-card{background:var(--kraft);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);color:var(--ink);border-radius:24px;flex-direction:column;gap:10px;margin:4px 16px 0;padding:14px;text-decoration:none;display:flex}.bag-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.bag-card-title{font-family:var(--head);align-items:center;gap:8px;font-size:21px;font-weight:800;display:flex}.bag-card-row{align-items:center;gap:8px;display:flex}.bag-card-text{flex-direction:column;flex:1;padding-left:4px;font-size:14px;line-height:1.35;display:flex}.bag-card-text span{color:#4a3a22;font-weight:700}.slot-mini{border:2.5px dashed var(--ink);width:40px;height:60px;font-family:var(--head);background:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:flex}.slot-mini-surprise{background:var(--kraft-dark);border-style:solid}.home-section{flex-direction:column;gap:10px;padding:18px 16px 0;display:flex}.home-section h2{font-size:19px}.home-books{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.home-book{color:var(--ink);align-items:center;gap:8px;min-width:0;text-decoration:none;display:flex}.home-book>span{flex-direction:column;gap:1px;min-width:0;font-size:13px;line-height:1.15;display:flex}.find-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.find-tile{border:3px solid var(--ink);min-height:118px;color:var(--ink);border-radius:20px;flex-direction:column;justify-content:space-between;padding:10px;text-decoration:none;display:flex}.find-tile>span{flex-direction:column;display:flex}.find-tile strong{font-family:var(--head);font-size:18px;line-height:1}.find-tile>span>span{font-size:12px;font-weight:700;line-height:1.25}.piles-card{background:var(--lilac-soft);border:3px solid var(--ink);color:var(--ink);border-radius:20px;align-items:center;gap:12px;margin:16px 16px 0;padding:12px 14px;text-decoration:none;display:flex}.piles-card>span{flex-direction:column;flex:1;font-size:13px;font-weight:700;display:flex}.piles-card strong{font-family:var(--head);font-size:18px;line-height:1}.due-strip{background:var(--cream);min-height:48px;color:var(--ink);border-radius:24px;align-items:center;gap:10px;margin:12px 16px 0;padding:6px 6px 6px 12px;font-size:14px;font-weight:800;line-height:1.25;text-decoration:none;display:flex}.due-strip>span:nth-child(2){flex:1}.due-icon{background:var(--yellow);border:2px solid var(--ink);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.due-btn{border:2px solid var(--ink);background:#fff;border-radius:18px;align-items:center;height:36px;padding:0 14px;display:flex}.swipe{flex-direction:column;max-width:520px;min-height:100vh;margin:0 auto;padding-bottom:24px;display:flex;overflow-x:hidden}.swipe-head{justify-content:space-between;align-items:center;gap:8px;padding:12px 16px 6px;display:flex}.kid-select{border:3px solid var(--ink);border-radius:22px;align-items:center;gap:6px;height:44px;padding:0 12px 0 6px;font-size:15px;font-weight:800;display:inline-flex;position:relative}.kid-select select{appearance:none;font:inherit;background:0 0;border:0;padding-right:4px;font-weight:800}.pile-btn{border:3px solid var(--ink);background:var(--lilac);height:44px;color:var(--ink);white-space:nowrap;border-radius:22px;align-items:center;gap:6px;padding:0 6px 0 12px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.pile-count{border:2px solid var(--ink);background:#fff;border-radius:13px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 6px;font-size:13px;display:inline-flex}.swipe-hint{text-align:center;color:var(--muted);padding:0 16px;font-size:14px;font-weight:700}.deck{flex:1;min-height:470px;margin:12px 24px 0;position:relative}.swipe-card{border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink);touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#fff;border-radius:28px;flex-direction:column;transition:transform .22s ease-out;display:flex;position:absolute;inset:0;overflow:hidden}.swipe-card.leaving{transition:transform .22s ease-in}.swipe-card-under{opacity:.6;transform:rotate(3deg)scale(.96)}.swipe-cover-wrap{background:var(--cream);flex:1;justify-content:center;align-items:center;min-height:0;padding:18px;display:flex;position:relative}.swipe-cover{aspect-ratio:2/3;pointer-events:none;border-width:3px;border-radius:14px;width:auto;max-width:100%;height:100%;max-height:330px}.sticker{border:3px solid var(--ink);font-family:var(--head);border-radius:16px;padding:6px 12px;font-size:16px;font-weight:800;position:absolute;top:14px;right:14px;transform:rotate(8deg)}.stamp{z-index:3;font-family:var(--head);background:#fff;border:4px solid;border-radius:12px;padding:4px 14px;font-size:34px;font-weight:800;position:absolute;top:24px}.stamp-yes{color:var(--green);left:20px;transform:rotate(-12deg)}.stamp-nah{color:var(--away);right:20px;transform:rotate(12deg)}.swipe-info{border-top:3px solid var(--ink);flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex}.swipe-info h1{font-size:26px}.swipe-info h1 a{color:var(--ink);text-decoration:none}.swipe-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;font-weight:800;display:flex}.hear{border:2px solid var(--ink);background:#fff;border-radius:20px;align-self:flex-start;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.hear.on{background:var(--sky)}.blurb{max-height:120px;font-size:14px;font-weight:700;line-height:1.45;overflow:auto}.swipe-btns{justify-content:center;gap:28px;padding:18px 16px 0;display:flex}.swipe-btn{border:3px solid var(--ink);width:88px;height:88px;box-shadow:0 5px 0 var(--ink);font-family:var(--head);border-radius:44px;flex-direction:column;justify-content:center;align-items:center;gap:0;font-size:16px;font-weight:800;display:flex}.swipe-btn.nah{background:#fff}.swipe-btn.yes{background:var(--yellow);border-radius:50px;width:100px;height:100px;font-size:18px}.swipe-btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.deck-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:32px 24px;display:flex}.deck-empty h2{font-size:26px}.deck-empty p{color:var(--muted)}.library-side{display:none}.library-main{flex-direction:column;gap:12px;padding:0 16px;display:flex}.library-main .page-title{padding:14px 0 0}.search-row{gap:8px;display:flex}.search{border:3px solid var(--ink);background:#fff;border-radius:26px;flex:1;align-items:center;gap:8px;min-width:0;height:52px;padding:0 14px;display:flex}.search:focus-within{outline:3px solid var(--blue);outline-offset:2px}.search input{min-width:0;font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:16px;font-weight:700}.btn-filter{border:3px solid var(--ink);background:var(--sky);white-space:nowrap;border-radius:26px;align-items:center;gap:6px;height:52px;padding:0 14px;font-size:15px;font-weight:800;display:inline-flex}.child-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.child-tab{border:2px solid var(--ink);background:#fff;border-radius:20px;align-items:center;gap:6px;min-height:40px;padding:0 12px 0 4px;font-size:14px;font-weight:800;display:inline-flex}.child-tab.on{background:var(--lilac-soft);box-shadow:0 3px 0 var(--ink)}.list-head{justify-content:space-between;align-items:center;font-size:14px;font-weight:800;display:flex}.sort{color:var(--blue);background:0 0;border:0;min-height:40px;font-size:14px;font-weight:800}.book-list{flex-direction:column;display:flex}.book-row{border-top:2px solid var(--rule);align-items:center;gap:8px;padding:12px 0;display:flex}.book-row-link{min-width:0;color:var(--ink);flex:1;gap:12px;text-decoration:none;display:flex}.book-row-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.book-row-title{font-family:var(--head);font-size:18px;line-height:1.1}.book-row-blurb{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;display:-webkit-box;overflow:hidden}.pile-heart{border:3px solid var(--ink);width:56px;height:56px;color:var(--ink);background:#fff;border-radius:18px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:0;font-size:11px;font-weight:800;text-decoration:none;display:flex}.pile-heart.on{background:var(--lilac-soft)}.pile-heart.big{width:auto;height:56px;font-family:var(--head);box-shadow:0 5px 0 var(--ink);border-radius:28px;flex-direction:row;gap:8px;padding:0 18px;font-size:17px}.pile-heart.big span:before{content:"Add to "}.pile-heart.big.on span:before{content:""}.more{align-self:center}.sheet{z-index:40;background:#fff;padding-bottom:24px;position:fixed;inset:0;overflow-y:auto}.sheet-top{z-index:1;background:#fff;justify-content:flex-end;padding:12px 16px 0;display:flex;position:sticky;top:0}.sheet-small{background:#1e1b3a66;justify-content:center;align-items:flex-end;padding:16px;display:flex}.sheet-card{border:3px solid var(--ink);background:#fff;border-radius:26px;flex-direction:column;gap:12px;width:min(480px,100%);padding:20px;display:flex}.sheet-card h2{font-size:24px}.filters{flex-direction:column;gap:18px;padding:0 16px;display:flex}.filters-head{justify-content:space-between;align-items:center;display:flex}.filters-head h2{font-size:26px}.filters section{flex-direction:column;gap:10px;display:flex}.filters h3{font-size:17px}.age-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.age-dot{border:3px solid var(--ink);height:48px;font-family:var(--head);background:#fff;border-radius:24px;font-size:18px;font-weight:800}.age-dot.on{background:var(--yellow);box-shadow:0 3px 0 var(--ink)}.stage-list{flex-direction:column;gap:4px;display:flex}.check-row{align-items:center;gap:12px;min-height:44px;font-size:15px;display:flex}.switch-row{border-top:2px solid var(--rule);justify-content:space-between;align-items:center;min-height:48px;font-weight:800;display:flex}.switch-row input{appearance:none;border:3px solid var(--ink);background:var(--rule);cursor:pointer;border-radius:15px;width:52px;height:30px;margin:0;position:relative}.switch-row input:after{content:"";border:2px solid var(--ink);box-sizing:border-box;background:#fff;border-radius:10px;width:20px;height:20px;transition:left .15s;position:absolute;top:2px;left:2px}.switch-row input:checked{background:var(--green)}.switch-row input:checked:after{left:24px}.filters-done{margin-top:4px}.book-top{background:var(--cream);border-bottom:3px solid var(--ink);padding:12px 16px 20px}.book-top-bar{justify-content:space-between;align-items:center;display:flex}.accession{border:2px solid var(--ink);background:#fff;border-radius:10px;padding:3px 10px;font-size:13px;font-weight:800}.book-hero{text-align:center;flex-direction:column;align-items:center;gap:14px;padding-top:10px;display:flex}.book-cover{width:180px;height:270px;box-shadow:6px 6px 0 var(--ink);border-width:3px;border-radius:14px;transform:rotate(-2deg)}.book-hero-text{flex-direction:column;align-items:center;gap:6px;display:flex}.series-line{color:var(--muted);font-size:13px;font-weight:800}.book-hero h1{font-size:30px}.authors{font-weight:800}.gr-badge{border:2px solid var(--ink);background:#fff;border-radius:18px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:700;display:inline-flex}.gr-badge strong{font-family:var(--head);font-size:24px;line-height:1}.shelf-line{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.book-actions{flex-direction:column;gap:12px;padding:16px;display:flex}.book-action-btns{flex-wrap:wrap;gap:10px;display:flex}.book-action-btns .btn{flex:1;min-width:150px}.facts-grid{border:3px solid var(--ink);border-radius:20px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 16px;display:grid;overflow:hidden}.facts-grid div{border-right:2px solid var(--rule);border-bottom:2px solid var(--rule);flex-direction:column;padding:10px;display:flex}.facts-grid strong{font-family:var(--head);font-size:18px;line-height:1.1}.facts-grid span{color:var(--muted);font-size:12px;font-weight:700}.book-section{flex-direction:column;gap:10px;padding:22px 16px 0;display:flex}.book-section h2{font-size:22px}.book-section h3{font-size:17px}.book-section p{font-weight:600;line-height:1.55}.age-chart{background:var(--soft);border-radius:18px;flex-direction:column;gap:8px;padding:12px;display:flex}.age-chart-row{grid-template-columns:96px 1fr 44px;align-items:center;gap:8px;font-size:13px;font-weight:800;display:grid}.age-chart-track{border:2px solid var(--rule);background:#fff;border-radius:7px;height:14px;position:relative}.age-chart-bar{background:var(--mint);border:2px solid var(--ink);border-radius:7px;min-width:12px;position:absolute;top:-2px;bottom:-2px}.age-chart-label{text-align:right}.age-chart-axis{color:var(--muted);justify-content:space-between;margin-left:104px;margin-right:52px;font-size:11px;font-weight:800;display:flex}.ratings{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;display:grid}.ratings div{border:3px solid var(--ink);border-radius:18px;flex-direction:column;padding:12px;display:flex}.ratings strong{font-family:var(--head);align-items:center;gap:4px;font-size:22px;display:inline-flex}.guide{background:var(--soft);border-radius:22px;margin:22px 16px 0;padding:16px}.guide-label{letter-spacing:.08em;color:var(--blue);font-size:12px;font-weight:800}.guide-levels{flex-direction:column;gap:6px;display:flex}.guide-level{grid-template-columns:1fr auto 80px;align-items:center;gap:10px;font-size:13px;font-weight:800;display:grid}.dots{gap:4px;display:flex}.dots span{border:2px solid var(--ink);background:#fff;border-radius:6px;width:12px;height:12px}.dots span.on{background:var(--pink)}.more-row{gap:12px;padding-bottom:6px;display:flex;overflow-x:auto}.more-book{width:100px;color:var(--ink);flex-direction:column;flex-shrink:0;gap:4px;line-height:1.15;text-decoration:none;display:flex}.more-book .cover{width:100px;height:150px}.edition{padding:22px 16px 0}.pile-tabs{gap:8px;padding:14px 16px 0;display:flex;overflow-x:auto}.pile-tab{border:3px solid var(--ink);min-height:48px;font-family:var(--head);background:#fff;border-radius:24px;flex-shrink:0;align-items:center;gap:8px;padding:0 8px 0 6px;font-size:17px;font-weight:800;display:inline-flex}.pile-tab.on{background:var(--lilac);box-shadow:0 4px 0 var(--ink)}.pile-tab-count{border:2px solid var(--ink);min-width:26px;height:26px;font-family:var(--body);background:#fff;border-radius:13px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.bag-strip{background:var(--kraft);border:3px solid var(--ink);color:var(--ink);border-radius:20px;align-items:center;gap:10px;margin:14px 16px 0;padding:10px 14px;text-decoration:none;display:flex}.bag-strip-slots{gap:4px;display:flex}.bag-strip-slots span{border:2px dashed var(--ink);background:#fff;border-radius:4px;width:16px;height:24px}.bag-strip-slots span.full{background:var(--kraft-dark);border-style:solid}.bag-strip-text{flex:1;font-size:14px;font-weight:800;line-height:1.3}.pile-list{flex-direction:column;padding:8px 16px 0;display:flex}.pile-row{border-bottom:2px solid var(--rule);align-items:center;gap:8px;padding:12px 0;display:flex}.pile-row.in-bag{background:linear-gradient(90deg,#f2d3ae80,#0000)}.pile-row-link{min-width:0;color:var(--ink);flex:1;gap:12px;text-decoration:none;display:flex}.pile-row-text{flex-direction:column;gap:3px;min-width:0;display:flex}.pile-row-text strong{font-family:var(--head);font-size:17px;line-height:1.1}.pile-row-btns{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.pile-act{border:3px solid var(--ink);white-space:nowrap;background:#fff;border-radius:22px;align-items:center;min-height:44px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.pile-act.in{background:var(--kraft);box-shadow:0 3px 0 var(--ink)}.pile-act.static{color:var(--muted);border:0;padding:0 4px}.pile-act.waiting{color:var(--away)}.pile-remove{border:2px solid var(--rule);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.bag-section{flex-direction:column;gap:10px;padding:18px 16px 0;display:flex}.bag-section h2{font-size:20px}.return-list{flex-direction:column;gap:8px;display:flex}.return-row{border:3px solid var(--ink);text-align:left;background:#fff;border-radius:20px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.return-row.on{background:var(--away-bg)}.return-text{flex-direction:column;flex:1;min-width:0;display:flex}.tick{border:3px solid var(--ink);background:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.return-row.on .tick{background:var(--ink);color:#fff}.maths{background:var(--ink);color:#fff;border-radius:16px;margin:16px 16px 0;padding:10px 14px;font-size:14px;font-weight:700}.maths strong{color:var(--yellow)}.slots{flex-direction:column;gap:10px;display:flex}.slot{border:3px solid var(--ink);background:#fff;border-radius:22px;align-items:center;gap:12px;padding:22px 12px 12px;display:flex;position:relative}.slot-n{letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:800;position:absolute;top:4px;left:14px}.slot-book{background:#fffaf3}.slot-surprise{background:#fff4f6}.slot-empty{border-style:dashed;flex-wrap:wrap}.slot-empty-box{border:3px dashed var(--ink);width:64px;height:96px;font-family:var(--head);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:32px;font-weight:800;display:flex}.slot-empty-btns{flex-direction:column;flex:1;gap:8px;min-width:180px;display:flex}.slot-empty-btns .btn{font-family:var(--body);font-size:15px}.q{border:2px solid var(--ink);width:22px;height:22px;font-family:var(--head);background:#fff;border-radius:11px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.slot-text{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.slot-text strong{font-family:var(--head);font-size:18px;line-height:1.1}.slot-links{gap:14px;display:flex}.surprise-box{border:3px solid var(--ink);background:var(--kraft-dark);width:64px;height:96px;font-family:var(--head);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:36px;font-weight:800;display:flex}.small-box{border-width:2px;border-radius:6px;width:40px;height:60px;font-size:24px}.send{flex-direction:column;gap:8px;padding:22px 16px 0;display:flex}.who-btns{flex-wrap:wrap;gap:10px;padding:0 0 4px;display:flex}.surprise .who-btns,.surprise .field{padding:14px 16px 0}.surprise>.small{padding:8px 16px 0}.who-btn{border:3px solid var(--ink);min-height:56px;font-family:var(--head);background:#fff;border-radius:28px;align-items:center;gap:10px;padding:0 16px 0 8px;font-size:18px;font-weight:800;display:inline-flex}.who-btn.on{background:var(--yellow);box-shadow:0 4px 0 var(--ink)}.locked-head{background:var(--kraft);border-bottom:3px solid var(--ink);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.locked-head h1{font-size:30px}.locked-tag{background:var(--ink);color:var(--yellow);letter-spacing:.06em;border-radius:10px;align-self:flex-start;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-flex}.locked .card{margin:14px 16px 0}.locked-row{align-items:center;gap:12px;display:flex}.locked-row>span:last-child{flex-direction:column;display:flex}.timeline{background:var(--soft);border-radius:22px;flex-direction:column;gap:12px;margin:14px 16px 0;padding:14px 16px;display:flex}.step{align-items:flex-start;gap:12px;display:flex}.step>span:last-child{flex-direction:column;display:flex}.step-dot{border:3px solid var(--ink);color:#fff;background:#fff;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.step.done .step-dot{background:var(--ink)}.step.now .step-dot{background:var(--yellow);color:var(--ink)}.reveal-head{background:var(--yellow);border-bottom:3px solid var(--ink);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:16px;display:flex}.reveal-head h1{font-size:32px}.reveal-bag{font-family:var(--head);background:0 0;border:0;flex-direction:column;align-items:center;gap:16px;margin:40px auto 0;font-size:24px;font-weight:800;display:flex}.reveal-bag svg{animation:1.2s ease-in-out infinite alternate wobble}.reveal-list{flex-direction:column;gap:12px;padding:16px 16px 0;display:flex}.reveal-card{border:3px solid var(--ink);border-radius:22px;gap:12px;padding:12px;display:flex}.reveal-card>span{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.reveal-card strong{font-family:var(--head);font-size:19px;line-height:1.05}.cover-reveal{width:70px;height:105px}.for-tag{border:2px solid var(--ink);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:800}.family-section{flex-direction:column;gap:10px;padding:10px 16px;display:flex}.family-section h2{font-size:19px}.plan-mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.plan-mini-btn{border:3px solid var(--ink);background:#fff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:64px;display:flex}.plan-mini-btn strong{font-family:var(--head);font-size:20px;line-height:1}.plan-mini-btn span{font-size:12px;font-weight:800}.plan-mini-btn.on{background:var(--yellow);box-shadow:0 4px 0 var(--ink)}.rows{flex-direction:column;display:flex}.acct-row{border-top:2px solid var(--rule);align-items:center;gap:12px;min-height:62px;display:flex}.acct-row:last-child{border-bottom:2px solid var(--rule)}.acct-icon{border:2px solid var(--ink);width:32px;height:32px;font-family:var(--head);color:var(--ink);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.acct-text{flex-direction:column;flex:1;min-width:0;display:flex}.acct-text strong{font-size:15px}.acct-text span{color:var(--muted);overflow-wrap:anywhere;font-size:12px;font-weight:700}.acct-link{padding:10px 0;font-size:14px;font-weight:800}.lost{background:var(--away-bg);border:3px solid var(--ink);border-radius:22px;flex-direction:column;gap:10px;margin:14px 16px 0;padding:14px;display:flex}.lost h2{font-size:19px}.lost p{font-size:14px;font-weight:700}.lost .btn{align-self:flex-start}.report{flex-direction:column;gap:10px;display:flex}.family-foot{justify-content:space-between;padding:18px 16px 0;display:flex}@media (width>=900px){:root{--nav-h:0px}.tabbar{display:none}.page.has-nav{padding-bottom:48px}.topbar.guest .topnav{display:flex}.topbar{z-index:20;border-bottom:3px solid var(--ink);background:#fff;align-items:center;gap:24px;height:76px;padding:0 32px;display:flex;position:sticky;top:0}.brand{font-family:var(--head);color:var(--ink);align-items:center;gap:10px;font-size:24px;font-weight:800;text-decoration:none;display:flex}.topnav{flex:1;justify-content:center;gap:8px;display:flex}.topnav-link{height:46px;font-family:var(--head);color:var(--ink);border:3px solid #0000;border-radius:23px;align-items:center;gap:8px;padding:0 18px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.topnav-link.on{border-color:var(--ink);background:var(--yellow)}.topnav-link.nav-pile.on{background:var(--lilac)}.topnav-link.nav-bag.on{background:var(--kraft)}.topnav-badge{border:2px solid var(--ink);min-width:24px;height:24px;font-family:var(--body);background:#fff;border-radius:12px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;display:inline-flex}.topbar-family{text-decoration:none;display:flex}.topbar-family .avatar+.avatar{margin-left:-10px}.page{max-width:1120px;padding-left:32px;padding-right:32px}.home{max-width:760px}.library{grid-template-columns:300px 1fr;align-items:start;gap:32px;display:grid}.library-side{max-height:calc(100vh - 110px);padding:20px 4px 20px 0;display:block;position:sticky;top:96px;overflow-y:auto}.library-side .filters{padding:0}.btn-filter{display:none}.library-main{padding:0}.book-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}.book-page{grid-template-columns:360px 1fr;align-items:start;gap:0 40px;display:grid}.book-top{border:3px solid var(--ink);border-radius:28px;grid-row:span 8;margin-top:24px;position:sticky;top:96px}.book-page>section,.book-page>p{grid-column:2}.book-actions{padding-top:24px}.facts-grid,.guide{margin-left:16px;margin-right:0}.bag,.piles,.family,.surprise,.reveal{max-width:720px}.welcome{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;max-width:1120px;min-height:100vh;display:grid}.welcome-hero{border-bottom:0;border-right:3px solid var(--ink);grid-row:span 2;height:auto;min-height:100vh}.fan .cover{width:180px;height:270px}.fan-0{top:30%;left:calc(50% - 96px);width:192px!important;height:288px!important}.fan-1{top:calc(30% + 40px);left:calc(50% - 250px)}.fan-2{top:calc(30% + 30px);left:calc(50% + 70px)}.welcome-body{padding:96px 48px 0}.welcome-body h1{font-size:48px}.welcome-actions{max-width:520px;padding:32px 48px}.toast{bottom:24px}}
