:root{--sky:#bfe6f5;--mist:#e9f6fb;--paper:#fff;--ink:#1d3557;--ink-soft:#4a6385;--sun:#ffc93c;--sun-deep:#e0a400;--berry:#d63a6a;--berry-deep:#a8244f;--moss:#3f8a4f;--moss-deep:#2c6638;--line:#cfe3ee;--on-sun:var(--ink);--on-accent:#fff;--error:var(--berry-deep);--btn-surface:var(--paper);--font-text:"Andika", system-ui, sans-serif;--font-display:"Lilita One", "Andika", system-ui, sans-serif;--display-weight:400;--display-spacing:.01em;--radius-panel:28px;--radius-button:20px;--radius-field:14px;--pad-panel:clamp(1rem, 2.4vmin, 1.5rem);--key:clamp(64px, 9.5vmin, 84px);color:var(--ink);font-family:var(--font-text);-webkit-tap-highlight-color:transparent;font-size:18px;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--sky);min-height:100dvh}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-spacing);margin:0;line-height:1.1}h1{font-size:max(1.75rem,min(4vmin,2.6rem))}h2{font-size:max(1.4rem,min(3vmin,1.8rem))}h3{font-size:1.3rem}p{margin:0}:focus-visible{outline:4px solid var(--ink);outline-offset:3px}.btn{--btn-bg:var(--btn-surface);--btn-fg:var(--ink);--btn-edge:var(--line);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-button);background:var(--btn-bg);color:var(--btn-fg);font:inherit;min-height:56px;box-shadow:0 6px 0 var(--btn-edge);cursor:pointer;border:0;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-weight:700;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--btn-edge);transform:translateY(5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sun{--btn-bg:var(--sun);--btn-fg:var(--on-sun);--btn-edge:var(--sun-deep)}.btn-moss{--btn-bg:var(--moss);--btn-fg:var(--on-accent);--btn-edge:var(--moss-deep)}.btn-berry{--btn-bg:var(--berry);--btn-fg:var(--on-accent);--btn-edge:var(--berry-deep)}.btn-big{font-family:var(--font-display);font-weight:var(--display-weight);min-height:max(60px,min(8.5vmin,84px));box-shadow:0 8px 0 var(--btn-edge);padding:.75rem 1.75rem;font-size:max(1.35rem,min(3.2vmin,1.8rem))}.btn-quiet{box-shadow:none;min-height:44px;color:var(--ink-soft);text-underline-offset:3px;background:0 0;padding:.5rem .75rem;text-decoration:underline}.btn-quiet:active:not(:disabled){box-shadow:none;transform:none}.icon-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--ink);min-height:46px;font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-spacing);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:18px;align-items:center;gap:.45rem;padding:.3rem .5rem;font-size:1rem;text-decoration:none;display:inline-flex}.icon-link:active{background:var(--mist)}.icon-tile{--edge:var(--line);background:var(--mist);width:30px;height:30px;color:var(--ink-soft);box-shadow:0 3px 0 var(--edge);border-radius:10px;flex:none;place-items:center;transition:transform 80ms,box-shadow 80ms;display:grid}.icon-tile svg{width:20px;height:20px}.icon-tile-moss{--edge:var(--moss-deep);background:var(--moss);color:var(--on-accent)}.icon-link:active .icon-tile{box-shadow:0 1px 0 var(--edge);transform:translateY(2px)}.panel{background:var(--paper);border-radius:var(--radius-panel);padding:var(--pad-panel)}.page{max-width:1180px;padding:max(16px, env(safe-area-inset-top)) 16px 32px;margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.muted{color:var(--ink-soft)}.error{color:var(--error);font-weight:700}label{flex-direction:column;gap:.35rem;font-weight:700;display:flex}input[type=text],input[type=email],input[type=number],input[type=search],input[type=password],textarea{font:inherit;color:var(--ink);border:3px solid var(--line);border-radius:var(--radius-field);background:var(--paper);width:100%;min-height:52px;padding:.6rem .8rem}input:focus,textarea:focus{border-color:var(--ink);outline:none}.checkbox{cursor:pointer;flex-direction:row;align-items:center;gap:.75rem;font-size:1.15rem}.checkbox input{width:32px;height:32px;accent-color:var(--moss)}.avatar{--size:72px;width:var(--size);height:var(--size);font-size:calc(var(--size) * .55);border:5px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.avatar .character{width:100%}.tabs .avatar{border-width:2px}.avatar-link{border-radius:50%;text-decoration:none;display:inline-flex;position:relative}.avatar-link .avatar{--size:56px}.avatar-link:after{content:"✏️";background:var(--paper);width:28px;height:28px;box-shadow:0 2px 0 var(--line);border-radius:50%;place-items:center;font-size:.8rem;display:grid;position:absolute;bottom:-6px;right:-8px}.avatar-grid{--choice:clamp(64px, 9.5vmin, 84px);grid-template-columns:repeat(auto-fill, var(--choice));gap:.75rem;display:grid}.avatar-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--choice);height:var(--choice);border:5px solid var(--line);background:var(--mist);font-size:calc(var(--choice) * .5);cursor:pointer;border-radius:50%;place-items:center;padding:0;line-height:1;display:grid;overflow:hidden}.avatar-choice[aria-pressed=true]{border-color:var(--ink);background:var(--sun)}.character{aspect-ratio:1;width:100%;display:block;position:relative}.character-full{aspect-ratio:540/1060}.ch-part{position:absolute;top:0;bottom:0;left:0;right:0}.ch-part svg{width:100%;height:100%;display:block}.character-idle{transform-origin:50% 100%;animation:5s ease-in-out infinite alternate ch-sway}.character-idle .ch-part{transform-origin:50% 100%;animation:2.8s ease-in-out infinite alternate ch-breathe}@keyframes ch-sway{0%{transform:rotate(-1deg)}to{transform:rotate(1deg)}}@keyframes ch-breathe{to{transform:scaleY(1.012)}}.avatar-initial{font-family:var(--font-display);font-weight:var(--display-weight);font-size:calc(var(--size) * .45);color:#fff;line-height:1}.starter{flex-direction:column;gap:1rem;min-height:100dvh;display:flex}.starter-head h1{margin:0}.starter-grid{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;gap:.75rem;display:grid}@media (orientation:landscape){.starter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.starter-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:5px solid var(--line);border-radius:var(--radius-panel);background:var(--paper);cursor:pointer;padding:.5rem .25rem}.starter-choice .character{max-height:min(52dvh,360px);margin:0 auto}@media (orientation:portrait){.starter-choice .character{max-height:30dvh}}.starter-choice[aria-pressed=true]{border-color:var(--ink);background:var(--sun)}.starter-actions{justify-content:flex-end}.quest-choice{flex-direction:column;gap:1rem;min-height:100dvh;display:flex}.quest-choice-top{justify-content:flex-end;display:flex}.quest-choice-head{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.quest-choice-head h1,.quest-choice-head p{margin:0}.quest-choice-head .badge-picture{width:max(120px,min(24vmin,200px));height:auto}.quest-choice-actions{flex-wrap:wrap;justify-content:center}.look-builder{grid-template-columns:max(110px,min(22vmin,190px)) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.look-preview{border-radius:var(--radius-panel);background:var(--mist);padding:.75rem;position:sticky;top:1rem}.look-choices h3{margin:.5rem 0 0}.look-swatches{--choice:clamp(44px, 6.5vmin, 56px)}.look-original:after{content:"★";color:#fff;font-size:calc(var(--choice) * .45);text-shadow:0 1px 2px #00000080;line-height:1}.look-parts{--choice:clamp(84px, 13vmin, 120px)}@media (max-width:520px){.look-builder{grid-template-columns:1fr}.look-preview{width:130px;margin:0 auto;position:static}}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(max(210px,40%),1fr));gap:1rem;display:grid}.theme-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:5px solid var(--line);border-radius:var(--radius-button);background:var(--mist);color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:stretch;padding:0;display:flex;overflow:hidden}.theme-card[aria-pressed=true]{border-color:var(--ink)}.theme-swatch{height:max(64px,min(9vmin,92px));display:block;position:relative}.theme-swatch:after{content:"";background:var(--swatch-accent);border-radius:50%;width:30px;height:30px;position:absolute;top:16px;right:18px}.theme-name{padding:.6rem .8rem .15rem;font-size:1.45rem;line-height:1.1}.theme-blurb{color:var(--ink-soft);padding:0 .8rem .75rem;font-size:.95rem}.theme-quest{align-items:center;gap:.6rem;padding:0 .8rem .75rem;font-weight:700;display:flex}.theme-badge{align-items:center;gap:.15rem;display:inline-flex}.theme-progress{color:var(--ink-soft)}.badge-shelf{flex-wrap:wrap;gap:.75rem;display:flex}.badge-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-button);background:var(--mist);color:var(--ink);font:inherit;cursor:pointer;border:4px solid #0000;padding:.3rem;position:relative}.badge-button[aria-pressed=true]{border-color:var(--ink)}.badge-button .badge-picture{width:max(56px,min(10vmin,88px));height:auto;display:block}.badge-count{background:var(--sun);color:var(--on-sun);border-radius:999px;padding:0 .4rem;font-size:.9rem;font-weight:700;position:absolute;bottom:.1rem;right:.15rem}.badge-name{min-height:1.4em;font-family:var(--font-display);font-weight:var(--display-weight);margin:0;font-size:max(1.2rem,min(3vmin,1.6rem))}.settings{align-items:start;gap:1rem;display:grid}@media (orientation:landscape) and (min-width:900px){.settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"look theme""pin theme""badges theme"}.settings-look{grid-area:look}.settings-theme{grid-area:theme}.settings-pin{grid-area:pin}.settings-badges{grid-area:badges}}.pin-dialog{background:var(--sky);border-radius:var(--radius-panel);padding:var(--pad-panel) calc(var(--pad-panel) * 1.5);text-align:center;flex-direction:column;align-items:center;gap:1rem;max-height:100%;display:flex;overflow-y:auto}.avatar-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;display:grid}.avatar-tile{text-align:center;flex-direction:column;align-items:center;gap:.25rem;display:flex}.avatar-tile img{border:5px solid var(--line);object-fit:cover;border-radius:50%;width:112px;height:112px}.who{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:100dvh;padding:24px 16px;display:flex}.login-form{text-align:left;width:100%;max-width:420px}.who-grid{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.who-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--ink);background:var(--paper);border-radius:var(--radius-panel);cursor:pointer;width:200px;box-shadow:0 8px 0 var(--line);border:0;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 2rem 1.25rem;display:flex}.who-card .avatar{--size:112px}.who-card .who-name{font-family:var(--font-display);font-size:1.6rem}.install-hint{text-align:left;align-items:flex-start;gap:1.25rem;max-width:640px;display:flex}.install-hint img{border-radius:14px;flex:none}.install-hint .stack{gap:.6rem}.install-hint .share-icon{vertical-align:-.25em}.pin{flex-direction:column;align-items:center;gap:1.25rem;display:flex}.pin-dots{gap:1rem;display:flex}.pin-dots span{border:4px solid var(--ink);border-radius:50%;width:26px;height:26px}.pin-dots span.filled{background:var(--ink)}.pin-dots.shake{animation:.4s shake}@keyframes shake{20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.pin-keys{grid-template-columns:repeat(3, var(--key));gap:14px;display:grid}.pin-keys .btn{font-family:var(--font-display);min-height:var(--key);padding:0;font-size:2rem;font-weight:400}.who-pin-hello,.who-pin-pad{flex-direction:column;align-items:center;gap:1rem;display:flex}.who-pin-hello .avatar{--size:clamp(84px, 13vmin, 112px)}@media (orientation:landscape){.who-pin{grid-template-columns:auto auto;grid-template-areas:"hello pad""back pad";place-content:center;gap:1rem max(2rem,min(8vw,6rem));display:grid}.who-pin-hello{grid-area:hello;align-self:end}.who-pin-pad{grid-area:pad}.who-pin-back{grid-area:back;place-self:start center}}.home-page{height:100dvh;padding-bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.home-page .topbar{margin-bottom:.75rem}.home-nav-level,.home-nav-quest,.home-nav-cta,.home-foot{display:none}.home{flex:1;gap:1rem;min-height:0;display:grid}.home-side{gap:.75rem;min-height:0}.home-books{flex-direction:column;gap:.5rem;min-height:0;display:flex}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:.75rem;display:flex}.panel-head .icon-link{margin-inline-start:-.5rem;margin-inline-end:-.5rem}.home-books .book-list{flex:1;gap:0;min-height:0;overflow-y:auto}.home-books .book-cover-sm{max-width:48px;height:48px}.book-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}@media (orientation:landscape){.home{grid-template-rows:minmax(0,1fr);grid-template-columns:max(260px,min(27vw,320px)) minmax(0,1fr)}.home-side{margin:-8px;padding:8px;overflow-y:auto}.home-books{flex:0 auto;min-height:140px}}@media (orientation:portrait){.home{grid-template-rows:auto minmax(0,1fr)}.home-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"level books""cta books";align-items:start;gap:.75rem 1rem;display:grid}.home-level{grid-area:level}.home-cta{grid-area:cta}.home-books{contain:size;grid-area:books;align-self:stretch}}@media (not (max-width:600px)) and (not (max-height:500px)){.home-page{max-width:max(1400px,85vw)}.home-page .path{height:auto;box-shadow:none;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}.home-page .topbar,.home-side{z-index:1;position:relative}.home-page .topbar{pointer-events:none}.home-page .topbar>*{pointer-events:auto}.home-nav{display:none}}.hero-level{align-items:center;gap:1rem;display:flex}.level-badge{font-family:var(--font-display);line-height:1}.level-badge small{font-family:var(--font-text);color:var(--ink-soft);font-size:1rem;font-weight:700;display:block}.level-badge strong{font-weight:var(--display-weight);font-size:max(2.6rem,min(6vmin,4.5rem))}.pointsbar{background:var(--mist);border:4px solid var(--ink);border-radius:999px;height:34px;overflow:hidden}.pointsbar-fill{background:var(--sun);border-right:4px solid var(--ink);height:100%;transition:width .9s cubic-bezier(.2,.8,.2,1)}.pointsbar-fill[data-empty=true]{border-right:0}.pointsbar-compact{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.pointsbar-compact .pointsbar{border-width:3px;flex:1;min-width:24px;height:16px}.pointsbar-compact .pointsbar-fill{border-right-width:3px}.pointsbar-compact small{color:var(--ink-soft);white-space:nowrap;flex:none;font-size:.85rem;font-weight:700}.quest-pips{gap:4px;display:flex}.quest-pip{background:var(--mist);height:12px;box-shadow:inset 0 0 0 2px var(--line);border-radius:999px;flex:1}.quest-pip[data-reached=true]{background:var(--sun);box-shadow:inset 0 0 0 2px var(--ink)}.home-player{isolation:isolate;background:0 0;flex-direction:column;gap:.6rem;display:flex;position:relative}.home-player:before{content:"";z-index:-1;border-radius:inherit;background:var(--paper);opacity:.75;position:absolute;top:0;bottom:0;left:0;right:0}.player-head{align-items:center;gap:.75rem;display:flex}.player-name{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.player-name h1{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.6rem;overflow:hidden}.player-switch{min-height:36px;margin-left:-.5rem;font-size:.95rem}.player-switch .icon-tile{width:26px;height:26px}.player-switch .icon-tile svg{width:17px;height:17px}.player-level{align-items:center;gap:.6rem;display:flex}.level-chip{background:var(--sun);min-width:52px;color:var(--on-sun);box-shadow:inset 0 0 0 3px var(--ink);font-family:var(--font-display);font-weight:var(--display-weight);border-radius:14px;flex:none;justify-items:center;padding:.3rem .5rem;font-size:1.7rem;line-height:1;display:grid}.level-chip small{font-family:var(--font-text);letter-spacing:.05em;text-transform:uppercase;font-size:.65rem;font-weight:700}.home-player .pointsbar-compact .pointsbar{height:22px}.player-stats{flex-direction:column;gap:.35rem;display:flex}.player-totals{font-size:.9rem}.player-quest{border-top:2px dashed var(--line);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name count""pips pips""steps steps";align-items:baseline;gap:.35rem .5rem;padding-top:.6rem;display:grid}.player-quest-name{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-spacing);grid-area:name;font-size:1.1rem}.player-quest-count{grid-area:count;font-size:.95rem;font-weight:700}.player-quest .quest-pips{grid-area:pips;align-self:center}.player-quest-steps{grid-area:steps;font-size:.95rem}.home-player .home-books{border-top:2px dashed var(--line);padding-top:.6rem}@media (orientation:landscape){.home-player{min-height:0}}@media (orientation:portrait) and (not (max-width:600px)) and (not (max-height:500px)){.player-side{display:block}.home-player{grid-template-columns:auto minmax(0,1fr) minmax(0,.85fr);grid-template-areas:"head stats books""quest quest books""cta cta books";align-items:center;gap:.6rem 1rem;display:grid}.player-head{grid-area:head}.player-stats{grid-area:stats}.player-quest{grid-area:quest;grid-template-areas:"name steps""pips count"}.home-player .home-books{border-top:0;border-left:2px dashed var(--line);padding:0 0 0 1rem}}.child-home .home-side{gap:.6rem .75rem}.child-home .home-side .panel{padding:.85rem 1rem}.child-home .home-cta{min-height:52px;box-shadow:0 6px 0 var(--btn-edge);padding-block-start:.4rem;padding-block-end:.4rem;font-size:1.4rem}.child-home .home-books h3{font-size:1.15rem}.child-home .home-books .book-list li{padding:.4rem 0}.child-home .home-books .book-cover-sm{max-width:40px;height:40px}.book-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.book-list li{border-bottom:2px dashed var(--line);justify-content:space-between;gap:.75rem;padding:.6rem 0;display:flex}.book-list li>span:last-child:not(.book-row){white-space:nowrap}.book-list li:last-child{border-bottom:0}.book-list .tag{align-self:center}.path-slot{height:100%;min-height:0;position:relative}.path-waiting{z-index:1;max-width:min(440px,100% - 24px);font-family:var(--font-display);color:var(--ink);pointer-events:none;background:#fffffff0;border-radius:16px;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;margin:0;padding:.5rem .8rem;line-height:1.2;display:flex;position:absolute;bottom:12px;left:12px;box-shadow:0 3px 10px #0000002e}.path{border-radius:var(--radius-panel);height:100%;min-height:0;box-shadow:0 0 0 3px var(--line);position:relative;overflow-y:auto}.path-journey{position:relative;overflow:hidden}.path-full,.path-layers,.path-layer{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.path-layer{overflow:hidden;container-type:size}.path-layer-box{aspect-ratio:2/3;width:max(100cqw,66.6667cqh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.path-layer-art{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.path-layer-fill{position:absolute;left:0;right:0}.path-piece{aspect-ratio:1;object-fit:contain;animation-duration:calc(var(--dur) * var(--vary,1));animation-delay:calc(var(--dur) * var(--n,0) * -.37);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;position:absolute}.motion-drift{--dur:70s;animation-name:piece-drift}.motion-sway{--dur:6s;transform-origin:50% 100%;animation-name:piece-sway}.motion-bob{--dur:5s;animation-name:piece-bob}.motion-twinkle{--dur:4s;animation-name:piece-twinkle}.motion-cross{--dur:120s;animation-name:piece-cross;animation-timing-function:linear;animation-direction:normal;animation-delay:calc(var(--dur) * var(--vary,1) * var(--phase) * -1);transform:rotate(var(--rot,0deg)) scaleX(var(--mirror,1))}@keyframes piece-cross{0%{transform:translate(var(--from-x), var(--from-y)) rotate(var(--rot,0deg)) scaleX(var(--mirror,1))}to{transform:translate(var(--to-x), var(--to-y)) rotate(var(--rot,0deg)) scaleX(var(--mirror,1))}}.path-pinned{height:var(--journey);position:absolute;top:0;left:0;right:0;container-type:size}@keyframes piece-drift{0%{transform:translate(-15%)}to{transform:translate(15%)}}@keyframes piece-sway{0%{transform:skew(-4deg)}to{transform:skew(4deg)}}@keyframes piece-bob{0%{transform:translateY(-3%)}to{transform:translateY(3%)}}@keyframes piece-twinkle{0%{opacity:.6}to{opacity:1}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.path{scroll-timeline:--path-scroll block}.path-layer{height:calc(var(--view) + (var(--journey) - var(--view)) * var(--depth));animation:linear both path-depth;animation-timeline:--path-scroll;bottom:auto}.path-pinned{animation:linear both path-pin;animation-timeline:--path-scroll}}}@keyframes path-depth{0%{transform:translateY(0)}to{transform:translateY(calc((var(--journey) - var(--view)) * (1 - var(--depth))))}}@keyframes path-pin{0%{transform:translateY(0)}to{transform:translateY(calc((var(--journey) - var(--view)) * (var(--depth) - 1)))}}.path-goal-art{pointer-events:none;position:absolute}.path-goal-art>*{position:absolute}.path-goal-art svg{overflow:visible}.path-goal-art .moving{animation:6s ease-in-out infinite alternate goal-bob}.path-goal-box svg{display:block}.path-goal-wiggle{transform-origin:50% 90%;animation:3.5s ease-in-out infinite goal-wiggle;position:absolute;top:0;bottom:0;left:0;right:0}.path-goal-flame{transform-origin:50% 0;animation:.6s ease-in-out infinite goal-flame;position:absolute}.path-goal-glow{background:radial-gradient(closest-side, var(--sun), transparent);opacity:.45;border-radius:50%;animation:4s ease-in-out infinite alternate goal-glow}@keyframes goal-bob{0%{transform:translateY(-2%)}to{transform:translateY(2%)}}@keyframes goal-wiggle{0%,18%,to{transform:rotate(0)}3%{transform:rotate(calc(-6deg * var(--wiggle,1)))}7%{transform:rotate(calc(5deg * var(--wiggle,1)))}11%{transform:rotate(calc(-3deg * var(--wiggle,1)))}15%{transform:rotate(calc(2deg * var(--wiggle,1)))}}@keyframes goal-flame{0%,to{transform:scale(1)}22%{transform:scale(.94,1.1)}48%{transform:scale(1.04,.92)skew(2deg)}74%{transform:scale(.97,1.06)skew(-2deg)}}@keyframes goal-glow{0%{opacity:.25}to{opacity:.6}}.path-me{pointer-events:none;position:absolute}.path-level{font-family:var(--font-display);font-weight:var(--display-weight)}.path-goal{width:max-content;max-width:52%;font-family:var(--font-display);color:var(--ink);background:#fffffff0;border-radius:16px;margin:0;padding:.25rem .7rem .35rem;line-height:1.2;transition:opacity .2s;position:absolute;transform:translateY(-50%);box-shadow:0 3px 10px #0000002e}.path-goal.dark,.path-waiting.dark{color:#fff;background:#000000a6}.path-goal[data-covered]{opacity:0}.path-goal small{font-family:var(--font-text);font-size:.85rem;font-weight:700;display:block}.path-goal strong{-webkit-line-clamp:2;font-weight:var(--display-weight);overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:max(1.1rem,min(2.4vmin,1.4rem));display:-webkit-box;overflow:hidden}.path-goal .path-goal-left{opacity:.75}.path-goal .tag{font-family:var(--font-text);margin-top:.25rem}.choice-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.choice{flex-direction:column;min-height:max(88px,min(12vmin,130px));font-size:1.1rem}.choice .emoji{font-size:max(2rem,min(4.5vmin,2.6rem));line-height:1}.choice[aria-pressed=true]{--btn-bg:var(--sun);--btn-fg:var(--on-sun);--btn-edge:var(--sun-deep)}.choice small{color:var(--ink-soft);font-weight:400}.choice[aria-pressed=true] small,.book-choices .btn[aria-pressed=true] small{color:inherit}.book-choices{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.book-choices .btn{text-align:left;justify-content:flex-start;gap:.75rem}.book-choice-text{flex-direction:column;gap:.1rem;display:flex}.book-choices .btn[aria-pressed=true]{--btn-bg:var(--sun);--btn-fg:var(--on-sun);--btn-edge:var(--sun-deep)}.book-choices small{color:var(--ink-soft);font-weight:400}.book-cover{object-fit:cover;background:var(--paper);box-shadow:1px 2px 0 var(--line), 1px 2px 3px 1px #0003;border-radius:2px 5px 5px 2px;flex:none;place-items:center;display:inline-grid}.book-cover-sm{max-width:60px;height:60px}.book-cover-md{max-width:120px;height:120px}.book-cover-empty{box-shadow:none;background:0 0;border-radius:0}.book-row{align-items:center;gap:.75rem;min-width:0;display:flex}.book-list li>.book-row+span{align-self:center}.book-row-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.book-row-text .btn-quiet{padding-inline-start:0;padding-inline-end:0}.book-actions{flex-wrap:wrap;align-items:center;column-gap:1.25rem;display:flex}.suggestions{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.btn.suggestion{text-align:center;flex-direction:column;justify-content:flex-start;gap:.4rem;padding:.9rem .6rem}.suggestion small{color:var(--ink-soft);font-weight:400}.suggestion[aria-busy=true]{opacity:.6}.source-note{font-size:.85rem}.counter{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.counter output{font-family:var(--font-display);text-align:center;min-width:3ch;font-size:max(3rem,min(7vmin,4rem));line-height:1.1}.points-preview{font-family:var(--font-display);color:var(--moss);font-size:max(1.8rem,min(4.5vmin,2.4rem));line-height:1.1}.log-page{max-width:860px}.log-layout{align-items:start;gap:1rem;display:grid}.log-side{display:contents}.log-save{z-index:1;padding:.75rem 0 max(.75rem, env(safe-area-inset-bottom));background:var(--sky);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex;position:sticky;bottom:0}.log-save-info{flex-direction:column;gap:.25rem;display:flex}.log-books-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.log-books-new{align-items:flex-start}.log-layout .panel{scroll-margin-top:12px}@media (orientation:landscape) and (min-width:900px){.log-page{max-width:1180px;height:100dvh;padding-bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.log-layout{flex:1;grid-template:"books side"minmax(0,1fr)"mode side"/minmax(0,1fr) minmax(360px,420px);min-height:0}.log-books{grid-area:books;align-self:stretch;overflow-y:auto}.log-mode{grid-area:mode}.log-side{flex-direction:column;grid-area:side;align-self:stretch;gap:1rem;min-height:0;margin:-8px;padding:8px;display:flex;overflow-y:auto}.log-save{margin-top:auto;padding-bottom:.25rem}.log-side .counter{gap:.6rem}.log-side .counter output{flex-basis:100%;order:-1}.log-side .counter .btn{min-width:56px;padding-inline-start:.8rem;padding-inline-end:.8rem}}.overlay{z-index:10;background:#1d35578c;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.celebrate{background:var(--paper);border-radius:var(--radius-panel);text-align:center;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:520px;padding:2rem;animation:.45s cubic-bezier(.3,1.6,.5,1) pop;display:flex}.celebrate .big-number{font-family:var(--font-display);font-size:5rem;line-height:1}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.tabs{flex-wrap:wrap;gap:.5rem;display:flex}.tabs .btn[aria-selected=true]{--btn-bg:var(--ink);--btn-fg:#fff;--btn-edge:#0f2340}.adult-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:1.25rem;display:grid}.child-grid{grid-template-columns:minmax(260px,1fr) minmax(320px,2fr);align-items:start;gap:1.25rem;display:grid}.child-grid>.wide{grid-column:1/-1}.child-grid>*{min-width:0}.tempo-choices .choice{min-height:0;padding-block-start:.6rem;padding-block-end:.6rem}.card-part{border-top:2px dashed var(--line);padding-top:.75rem}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));align-items:start;gap:1rem;display:grid}.adult-page{--pad-panel:1rem;--radius-panel:20px;--radius-button:14px;--radius-field:10px;font-size:16px}.adult-page h1{font-size:1.6rem}.adult-page h2{font-size:1.25rem}.adult-page h3{font-size:1.05rem}.adult-page .stack{gap:.75rem}.adult-page .row{gap:.5rem}.adult-page .topbar{margin-bottom:0}.adult-page .child-grid{gap:1rem}.adult-page .btn{min-height:42px;box-shadow:0 4px 0 var(--btn-edge);padding:.4rem .9rem}.adult-page .btn:active:not(:disabled){box-shadow:0 1px 0 var(--btn-edge);transform:translateY(3px)}.adult-page .btn-quiet{min-height:36px;box-shadow:none;padding:.3rem .5rem}.adult-page .btn-quiet:active:not(:disabled){box-shadow:none;transform:none}.adult-page .choice{font-size:inherit}.adult-page .tempo-choices{grid-template-columns:repeat(3,1fr);gap:.5rem}.adult-page .tempo-choices .choice{padding-inline-start:.4rem;padding-inline-end:.4rem}.adult-page input[type=text],.adult-page input[type=email],.adult-page input[type=number],.adult-page input[type=search],.adult-page input[type=password],.adult-page textarea{border-width:2px;min-height:42px;padding:.4rem .7rem}.adult-page input[type=number]{max-width:9rem}.adult-page .reward-row{padding:.4rem 0}@media (min-width:1000px),(min-width:640px) and (max-width:820px){.adult-page .reward-row{grid-template-columns:90px minmax(0,1fr) 12.5rem}.adult-page .reward-row>.row{flex-wrap:nowrap;grid-column:auto}}.adult-page .tag{font-size:.75rem}.adult-page table{font-size:.9em}.adult-page .install-hint{align-items:center;gap:.9rem;max-width:none}.adult-page .install-hint img{border-radius:10px;width:44px;height:44px}.adult-page .install-hint .stack{gap:.25rem}.reward-row{border-bottom:2px dashed var(--line);grid-template-columns:90px 1fr;align-items:center;gap:.75rem;padding:.6rem 0;display:grid}.reward-row>.row{grid-column:2}.reward-row>.row:empty{display:none}.reward-row:last-child{border-bottom:0}.prize-field{align-items:center;gap:.5rem;display:flex}.prize-field input{flex:1;min-width:0}.btn.dice-btn{flex:none;width:42px;min-height:42px;padding:0}.dice-btn svg{width:26px;height:26px}.dice-btn svg.is-rolling{animation:.45s cubic-bezier(.3,1.4,.6,1) dice-roll}@keyframes dice-roll{0%{transform:rotate(-200deg)scale(.6)}}.tag{background:var(--mist);border-radius:999px;padding:.1rem .6rem;font-size:.85rem;font-weight:700;display:inline-block}.tag-unlocked{background:var(--berry);color:var(--on-accent)}.tag-claimed{background:var(--moss);color:var(--on-accent)}table{border-collapse:collapse;width:100%;font-size:.95rem}td,th{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .35rem}.field-hint{color:var(--ink-soft);font-size:.9rem;font-weight:400}.who a,.admin-page a{color:var(--ink);text-underline-offset:3px;font-weight:700}.register{gap:1.25rem}.register .login-form{max-width:460px}.register-intro{gap:.5rem;max-width:460px}.register-intro p{margin:0}.register-consent{align-items:flex-start;font-size:1rem;font-weight:400}.register-consent input{flex:none;width:26px;height:26px;margin-top:.1rem}.register-code-toggle{align-self:flex-start}.admin-login{width:100%;max-width:420px;margin:10vh auto 0}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;display:grid}.admin-stat{flex-direction:column;gap:.1rem;display:flex}.admin-stat-value{font-family:var(--font-display);font-size:2rem;line-height:1}.admin-mode.is-on{--btn-bg:var(--ink);--btn-fg:#fff;--btn-edge:#0f2340}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));align-items:start;gap:1rem;display:grid}.admin-family-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.admin-email{word-break:break-all;font-size:.9rem}.admin-page .admin-email{color:var(--ink-soft);font-weight:400}.admin-tags{gap:.35rem}.admin-facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem 1rem;margin:0;display:grid}.admin-facts dt{color:var(--ink-soft);font-size:.8rem}.admin-facts dd{margin:0;font-weight:700}.admin-code{letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.admin-secret{background:var(--mist);border-radius:var(--radius-field);padding:.75rem}.admin-secret p{margin:0}.admin-secret p+p{margin-top:.35rem}.admin-delete{border-top:2px dashed var(--line);padding-top:.75rem}.admin-delete p{margin:0}.admin-voucher.is-off{opacity:.65}.admin-link{color:var(--ink-soft);word-break:break-all;-webkit-user-select:all;user-select:all;margin:0;font-size:.8rem}.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:.75rem;display:grid}.admin-page select,.admin-page input[type=date]{font:inherit;color:var(--ink);border:2px solid var(--line);border-radius:var(--radius-field);background:var(--paper);min-height:42px;padding:.4rem .7rem}.idea-row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.idea-row>input[type=text]{flex:14rem;width:auto;min-width:0}.idea-item{border-bottom:2px dashed var(--line);padding:.5rem 0}.idea-item:last-child{border-bottom:0}.idea-ages{flex-wrap:wrap;gap:.25rem .75rem;display:flex}.idea-age{cursor:pointer;flex-direction:row;align-items:center;gap:.3rem;font-size:.9rem;font-weight:400}.idea-age input{width:20px;height:20px;accent-color:var(--moss);margin:0}.idea-error{flex-basis:100%;margin:0}@media (max-width:820px){.child-grid{grid-template-columns:1fr}}@media (max-width:600px),(max-height:500px){.home-page{height:auto}.home{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.home-side{flex-direction:column;margin:0;padding:0;display:flex;overflow:visible}.home-books{contain:none}.path{height:min(100dvh - 32px,150vw)}.home-page.child-home{height:100dvh;padding-bottom:max(8px, env(safe-area-inset-bottom))}.child-home .home{grid-template-rows:minmax(0,1fr)}.child-home .home-side{display:none}.child-home .path{height:auto;box-shadow:none;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}.child-home .topbar,.child-home .home-foot{z-index:1;position:relative}.child-home .topbar{pointer-events:none;gap:.75rem;margin-bottom:.6rem}.child-home .topbar>*{pointer-events:auto}.home-who{background:var(--paper);min-width:0;box-shadow:0 5px 0 var(--line);border-radius:22px;flex-wrap:nowrap;flex:1;gap:.6rem;padding:4px .75rem 4px 4px}.home-who-text{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.home-who h1{white-space:nowrap;text-overflow:ellipsis;font-size:1.35rem;overflow:hidden}.child-home .avatar-link .avatar{--size:44px;border-width:3px}.child-home .avatar-link:after{width:22px;height:22px;font-size:.65rem;bottom:-4px;right:-6px}.home-nav-level,.home-nav-quest{align-items:center;gap:.4rem;display:flex}.home-nav-quest .quest-pips{flex:1;gap:2px;min-width:0}.home-nav-quest .quest-pip{background:var(--line);height:8px;box-shadow:none}.home-nav-quest .quest-pip[data-reached=true]{background:var(--sun);box-shadow:none}.home-nav-quest small{color:var(--ink-soft);white-space:nowrap;flex:none;font-size:.85rem;font-weight:700}.home-nav-badge{background:var(--sun);min-width:30px;height:30px;color:var(--on-sun);box-shadow:inset 0 0 0 3px var(--ink);font-family:var(--font-display);font-weight:var(--display-weight);border-radius:999px;flex:none;place-items:center;padding:0 .35rem;line-height:1;display:grid}.home-nav-cta{font-family:var(--font-display);font-weight:var(--display-weight);min-height:48px;box-shadow:0 5px 0 var(--btn-edge);flex:none;padding:.4rem .9rem;font-size:1.05rem;display:inline-flex}.home-foot{background:var(--paper);box-shadow:0 5px 0 var(--line);border-radius:22px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:.75rem;margin-bottom:5px;padding:4px;display:grid}.home-foot-item{justify-content:center;padding-inline-start:.4rem;padding-inline-end:.4rem;position:relative}.home-foot-item+.home-foot-item:before{content:"";background:var(--line);border-radius:1px;width:2px;position:absolute;top:12px;bottom:12px;left:-1px}}@media (max-width:520px){.choice-grid{grid-template-columns:1fr}.choice{flex-direction:row;min-height:80px}.who-card{width:150px;padding:1rem}.who-card .avatar{--size:84px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
