@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-cyrillic-ext-400-normal-VNDy5CZS.woff2) format("woff2"),url(/assets/andika-cyrillic-ext-400-normal-BJwze9_g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-cyrillic-400-normal-DYbdP60f.woff2) format("woff2"),url(/assets/andika-cyrillic-400-normal-CIdpN1kB.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-vietnamese-400-normal-afg23LQ3.woff2) format("woff2"),url(/assets/andika-vietnamese-400-normal-Bw99zChb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-ext-400-normal-D580Nkki.woff2) format("woff2"),url(/assets/andika-latin-ext-400-normal-NXfvB_tZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-400-normal-BTFTIZb-.woff2) format("woff2"),url(/assets/andika-latin-400-normal-BK42By1L.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-cyrillic-ext-700-normal-DvCsrHON.woff2) format("woff2"),url(/assets/andika-cyrillic-ext-700-normal-BdIUMeTx.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-cyrillic-700-normal-D404ywHU.woff2) format("woff2"),url(/assets/andika-cyrillic-700-normal-Bzg0mZT8.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-vietnamese-700-normal-CS3rZngu.woff2) format("woff2"),url(/assets/andika-vietnamese-700-normal-CZOGxJjV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-ext-700-normal-Ch3SGZaH.woff2) format("woff2"),url(/assets/andika-latin-ext-700-normal-DBt0PRsd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-700-normal-Dk95f5lc.woff2) format("woff2"),url(/assets/andika-latin-700-normal-CAUSQC6x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-devanagari-600-normal-CuT_xCk5.woff2) format("woff2"),url(/assets/baloo-2-devanagari-600-normal-Cnn1WFYO.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-vietnamese-600-normal-C5EqHgu0.woff2) format("woff2"),url(/assets/baloo-2-vietnamese-600-normal-CGkk4Wtx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-latin-ext-600-normal-DiVeaYrH.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-600-normal-CFaB2nBN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-devanagari-800-normal-BURIY0wZ.woff2) format("woff2"),url(/assets/baloo-2-devanagari-800-normal-YLp1oUqR.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-vietnamese-800-normal-ConLnEgt.woff2) format("woff2"),url(/assets/baloo-2-vietnamese-800-normal-GQACmpuv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-800-normal-D-iCxxqE.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #3b2a4a;--ink-soft: #6a5a78;--paper: #fffdf7;--bg: #fff4dc;--bg-2: #ffe7c2;--coral: #ff6b5b;--blue: #3d8bff;--teal: #14b8a6;--violet: #8b6cf0;--sun: #ffd84d;--radius: 28px;--title: "Baloo 2", "Trebuchet MS", sans-serif;--body: "Andika", "Comic Sans MS", system-ui, sans-serif;--text-size: 26px;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);background-image:radial-gradient(circle at 12% 18%,#ffe9b8 0 90px,transparent 91px),radial-gradient(circle at 88% 82%,#ffd9cf 0 120px,transparent 121px);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible+.box,input[type=range]:focus-visible{outline:4px solid var(--blue);outline-offset:3px}.library{min-height:100%;padding:24px 20px 32px;max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:36px}.library main{display:flex;flex-direction:column;gap:44px}.lib-header{display:flex;align-items:center;gap:14px}.logo{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;font-size:32px;background:var(--coral);box-shadow:0 5px #d84b3d;flex:none}.brand{margin:0;font-family:var(--title);font-weight:800;font-size:clamp(26px,4.5vw,36px);line-height:1}.tagline{margin:4px 0 0;color:var(--ink-soft);font-size:16px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center}.hero-cover{position:relative;display:block;aspect-ratio:1 / 1;border-radius:8px 22px 22px 8px;overflow:hidden;box-shadow:5px 5px #f4ead4,10px 10px #e8d9b8,14px 14px #c84432,0 34px 50px -18px #5028148c;transition:transform .25s ease}.hero-cover:hover{transform:rotate(-1.2deg) translateY(-4px)}.hero-cover .scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hero-cover-title{position:absolute;top:7%;left:0;right:0;text-align:center;font-family:var(--title);font-weight:800;font-size:clamp(38px,6.5vw,68px);line-height:.92;color:#fff;-webkit-text-stroke:.06em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--ink)}.hero-cover-title span{display:block}.hero-cover-title .accent{color:var(--coral);font-size:1.12em}.eyebrow{display:inline-block;margin:0 0 10px;padding:3px 12px;border-radius:999px;background:var(--sun);font-family:var(--title);font-weight:800;font-size:15px}.hero-info h1{margin:0;font-family:var(--title);font-weight:800;font-size:clamp(36px,5vw,54px);line-height:1}.by{margin:6px 0 14px;color:var(--ink-soft);font-size:19px;font-weight:700}.blurb{margin:0 0 18px;font-size:19px;line-height:1.6}.tags{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:8px}.tags li{background:var(--bg-2);border-radius:999px;padding:4px 13px;font-size:15px;font-weight:700}.read-btn{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;font-family:var(--title);font-weight:800;font-size:22px;padding:10px 26px;border-radius:999px;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);transition:transform .1s ease,box-shadow .1s ease}.read-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.cast-row{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}.cast-row li{display:flex;align-items:center;gap:6px;padding:3px 12px 3px 3px;border-radius:999px;background:var(--soft);border:2px solid var(--c);font-family:var(--title);font-weight:800;font-size:15px;color:color-mix(in srgb,var(--c) 60%,var(--ink))}.cast-row .avatar{width:34px;height:34px;border-radius:50%;background:#fff}.tips h2{margin:0 0 16px;font-family:var(--title);font-weight:800;font-size:clamp(24px,3.4vw,32px)}.tips-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tip{background:var(--paper);border:3px solid var(--ink);border-radius:22px;padding:18px 20px 20px;box-shadow:0 6px #3b2a4a24}.tip-icon{font-size:30px}.tip h3{margin:6px 0;font-family:var(--title);font-weight:800;font-size:21px}.tip p{margin:0;font-size:16.5px;line-height:1.55;color:var(--ink-soft)}.soon-row{text-align:center;padding:18px;border:3px dashed rgba(59,42,74,.3);border-radius:22px;color:var(--ink-soft);font-family:var(--title);font-weight:800;font-size:19px}.lib-footer{text-align:center;color:var(--ink-soft);font-size:14px}@media (max-width: 820px){.hero{grid-template-columns:1fr;gap:34px}.hero-cover{max-width:440px;width:100%;margin:0 auto}.tips-grid{grid-template-columns:1fr}}.reader{position:relative;height:100%;height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#fff8e8,#f7e2bf 60%,#e9c690);user-select:none;-webkit-user-select:none}.corner{position:absolute;top:max(12px,env(safe-area-inset-top));z-index:20;display:flex;gap:10px;transition:opacity .5s ease,transform .5s ease}.corner.left{left:14px}.corner.right{right:14px}.reader.idle .corner,.reader.idle .page-pill,.reader.idle .edge-arrow{opacity:0;pointer-events:none}.reader.idle .corner{transform:translateY(-8px)}.fab{height:52px;min-width:52px;padding:0 14px;border-radius:999px;border:3px solid var(--ink);background:#fffdf7eb;box-shadow:0 4px 0 var(--ink),0 10px 24px #5028142e;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:22px;transition:transform .1s ease,box-shadow .1s ease}.fab:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.fab.listen{background:var(--teal);color:#fff}.fab.listen.on{background:var(--sun);color:var(--ink)}.fab-label{font-family:var(--title);font-weight:800;font-size:18px}.reader.idle .corner.right:has(.fab.listen.on){opacity:1;transform:none;pointer-events:auto}.reader.idle .corner.right:has(.fab.listen.on) .fab:not(.listen){visibility:hidden}@media (hover: none){.hide-touch{display:none}}.desk{position:absolute;top:72px;right:0;bottom:48px;left:0;display:flex;align-items:center;justify-content:center}@media (max-width: 520px){.desk{top:64px;right:0;bottom:48px;left:0}}.book-frame{position:relative;filter:drop-shadow(0 26px 30px rgba(80,40,20,.35))}.flipbook{margin:0 auto}.flip-page{background:#fffaf0;overflow:hidden}.flip-page[data-density=hard]{border-radius:6px 18px 18px 6px}.edge-arrow{position:absolute;top:50%;z-index:15;width:56px;height:96px;margin-top:-48px;border:0;border-radius:28px;background:#fffdf7bf;color:var(--ink);font-size:54px;line-height:1;font-family:var(--title);box-shadow:0 8px 20px #50281426;transition:opacity .4s ease,background .2s ease;display:none}.edge-arrow.prev{left:14px}.edge-arrow.next{right:14px}.edge-arrow:hover{background:#fff}.edge-arrow:disabled{opacity:0!important;pointer-events:none}@media (hover: hover) and (pointer: fine){.edge-arrow{display:block}}.page-pill{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;padding:4px 16px;border-radius:999px;background:#3b2a4ad1;color:#fff;font-family:var(--title);font-weight:800;font-size:16px;transition:opacity .5s ease;pointer-events:none}.hint{position:absolute;left:0;right:0;bottom:max(48px,calc(env(safe-area-inset-bottom) + 40px));text-align:center;font-family:var(--title);font-weight:800;font-size:17px;color:var(--ink-soft);pointer-events:none;animation:hint 2.4s ease-in-out infinite;padding:0 16px}.reader.is-spread .hint{display:none}@keyframes hint{50%{opacity:.35}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#3b2a4a73;display:grid;place-items:center;padding:16px}.dialog{width:min(420px,100%);background:var(--paper);border:4px solid var(--ink);border-radius:24px;padding:22px;box-shadow:0 8px 0 var(--ink);display:flex;flex-direction:column;gap:14px;user-select:text;-webkit-user-select:text}.dialog label{font-family:var(--title);font-weight:800;font-size:26px}.dialog input{font-family:var(--title);font-weight:800;font-size:28px;color:var(--coral);border:0;border-bottom:4px dotted var(--coral);background:transparent;padding:6px 2px;outline:none}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.dialog .end-btn{font-size:20px;padding:8px 20px;border-width:3px;box-shadow:0 4px 0 var(--ink)}.bpage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;container-type:inline-size;background:#fffaf0}.bpage.left{border-radius:10px 0 0 10px}.bpage.right{border-radius:0 10px 10px 0}.bpage.solo{border-radius:6px 18px 18px 6px}.bpage.single{border-radius:4px 12px 12px 4px}.bpage .scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.paper{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(120,90,40,.06) 1px,transparent 1px);background-size:5px 5px;mix-blend-mode:multiply}.bpage.left .paper{box-shadow:inset -2.5cqw 0 3cqw -1cqw #46280a52,inset -.4cqw 0 .4cqw #46280a40}.bpage.right .paper{box-shadow:inset 2.5cqw 0 3cqw -1cqw #46280a52,inset .4cqw 0 .4cqw #46280a40}.bpage.single .paper{box-shadow:inset 1.6cqw 0 1.6cqw -1cqw #46280a4d}.bpage.solo .paper{box-shadow:inset 1.6cqw 0 1.6cqw -1cqw #46280a59,inset -.6cqw 0 1cqw -.6cqw #fff9}.pnum{position:absolute;bottom:2.6cqw;font-family:var(--title);font-weight:800;font-size:3.4cqw;color:var(--ink);background:#ffffffd9;border-radius:99px;min-width:6cqw;height:6cqw;display:grid;place-items:center;padding:0 1.4cqw}.pnum.pl{left:3cqw}.pnum.pr{right:3cqw}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.overlay a,.overlay button{pointer-events:auto;cursor:pointer}.overlay button *,.overlay a *{pointer-events:none}.ptext{position:absolute;top:6cqw;left:7cqw;right:7cqw;font-size:4.3cqw;line-height:1.5;color:var(--ink);letter-spacing:.01em;word-spacing:.06em;text-shadow:0 0 .4em #fff,0 0 .25em #fff,0 0 .12em #fff}.ptext p{margin:0 0 .6em;border-radius:.4em;transition:background .3s ease,box-shadow .3s ease}.ptext p.big{font-family:var(--title);font-weight:600;font-size:1.04em;line-height:1.38}.ptext .active{background:#ffec8ccc;box-shadow:0 0 0 .3em #ffec8ccc}.ptext .say{color:color-mix(in srgb,var(--c) 55%,var(--ink));font-weight:700}.ptext .who{display:inline-flex;align-items:center;gap:.2em;margin-right:.35em;padding:0 .55em 0 .15em;border-radius:99px;background:var(--c);color:#fff;font-family:var(--title);font-weight:800;font-size:.78em;line-height:1.6;vertical-align:.12em;text-shadow:none;border:.12em solid var(--ink)}.ptext .who .avatar{width:1.5em;height:1.5em;border-radius:50%;background:#fff}.ptext.center{text-align:center}.ptitle{margin:0 0 .25em;font-family:var(--title);font-weight:800;font-size:2em;line-height:1;color:var(--coral)}.ptext.notebook{top:5cqw;left:13.5cqw;right:6cqw;font-size:3.6cqw;text-shadow:none}.questions{margin:0;padding:0 0 0 1.2em;display:flex;flex-direction:column;gap:.45em}.questions li::marker{font-family:var(--title);font-weight:800;color:var(--coral)}.promises{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4em}.promises .promise{display:flex;align-items:center;gap:.5em;width:100%;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;line-height:1.3}.promises .box{flex:none;width:1.4em;height:1.4em;border-radius:.3em;border:.12em solid var(--ink);background:#fff;display:grid;place-items:center;font-size:1em}.promises .promise.checked{color:#1f8a4c}.bravo{margin:.6em 0 0;font-family:var(--title);font-weight:800;color:#1f9d55;animation:pop-in .5s cubic-bezier(.3,1.6,.5,1)}@keyframes pop-in{0%{transform:scale(.5);opacity:0}}.cover-text{position:absolute;top:7cqw;left:0;right:0;text-align:center}.cover-text h1{margin:0;font-family:var(--title);font-weight:800;font-size:13cqw;line-height:.92;color:#fff;-webkit-text-stroke:.06em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--ink)}.cover-text h1 span{display:block}.cover-text h1 .accent{color:var(--coral);font-size:1.12em}.cover-text h1.the-end{color:var(--sun);font-size:20cqw}.author-pill{display:inline-block;margin:3cqw 0 0;background:#fff;border:.6cqw solid var(--ink);border-radius:99px;padding:.6cqw 4cqw;font-family:var(--title);font-weight:800;font-size:4.4cqw;color:var(--ink)}.end-actions{margin-top:4cqw;display:flex;justify-content:center;gap:2.5cqw}.end-btn{display:inline-block;text-decoration:none;border:.6cqw solid var(--ink);border-radius:99px;background:var(--coral);color:#fff;font-family:var(--title);font-weight:800;font-size:4cqw;padding:1cqw 4cqw;box-shadow:0 .8cqw 0 var(--ink)}.end-btn.ghost{background:#fff;color:var(--ink)}.owner-text{position:absolute;top:16cqw;left:10cqw;right:10cqw;text-align:center;font-family:var(--title);font-weight:800;color:var(--ink)}.owner-line{margin:0;font-size:8cqw;line-height:1.2}.owner-input{display:block;cursor:pointer;width:100%;margin:3cqw 0;border:0;border-bottom:.8cqw dotted var(--coral);background:transparent;text-align:center;font-family:var(--title);font-weight:800;font-size:9cqw;color:var(--coral);outline:none}.owner-input::placeholder{color:#f3b7ad;font-size:.6em}.title-text{position:absolute;top:12cqw;left:8cqw;right:8cqw;text-align:center;color:var(--ink)}.title-text h1{margin:0 0 4cqw;font-family:var(--title);font-weight:800;font-size:10cqw;line-height:1;color:var(--coral)}.by-line{margin:0;font-size:3.6cqw;color:var(--ink-soft)}.by-name{margin:.5cqw 0 0;font-family:var(--title);font-weight:800;font-size:6cqw}@media (max-width: 520px){.fab{height:46px;min-width:46px}.fab-label{font-size:16px}}.error-screen{min-height:100%;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.error-card{max-width:440px;text-align:center;background:var(--paper);border:4px solid var(--ink);border-radius:28px;padding:28px 22px;box-shadow:0 10px #3b2a4a2e}.error-emoji{font-size:64px}.error-card h1{font-family:var(--title);font-size:28px;margin:8px 0}.error-card p{margin:0 0 20px;font-size:19px;color:var(--ink-soft)}.error-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.error-actions .end-btn{font-size:19px;padding:8px 20px;border-width:3px;box-shadow:0 4px 0 var(--ink)}.scene g[class]{transform-box:fill-box;transform-origin:center}.scene .bob{animation:bob 2.6s ease-in-out infinite}.scene .shake{animation:shake .45s linear infinite}.scene .shake-soft{animation:shake 1.2s linear infinite}.scene .float{animation:float 3s ease-in-out infinite}.scene .twinkle{animation:twinkle 1.8s ease-in-out infinite}.scene .rise{animation:rise 3.4s ease-in-out infinite}.scene .spin{animation:spin 2.2s linear infinite}.scene .puff{animation:puff 1.8s ease-out infinite}.scene .pulse{animation:pulse .9s ease-in-out infinite}.scene .sway{animation:sway 3s ease-in-out infinite}.scene .walk{animation:walk .7s ease-in-out infinite}.scene .stomp{animation:stomp .8s ease-in-out infinite}.scene .pop{animation:pop .8s cubic-bezier(.3,1.6,.5,1) both}.scene .wobble{animation:wobble 2.2s ease-in-out infinite}.scene .buzz{animation:buzz 1.4s linear infinite}.scene .glow{animation:glow 1.6s ease-in-out infinite}.scene .drift{animation:drift 4s ease-in-out infinite}.scene .drift-slow{animation:drift-slow 12s ease-in-out infinite}.scene .beat{animation:beat 1.1s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-10px)}}@keyframes shake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-4px) rotate(-1.5deg)}75%{transform:translate(4px) rotate(1.5deg)}}@keyframes float{50%{transform:translateY(-12px)}}@keyframes twinkle{50%{transform:scale(.6) rotate(20deg);opacity:.6}}@keyframes rise{0%{transform:translateY(20px);opacity:0}30%,70%{opacity:1}to{transform:translateY(-40px);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes puff{0%{transform:translateY(10px) scale(.6);opacity:0}40%{opacity:1}to{transform:translateY(-40px) scale(1.2);opacity:0}}@keyframes pulse{50%{transform:scale(1.07) rotate(-2deg)}}@keyframes sway{50%{transform:rotate(3deg)}}@keyframes walk{50%{transform:translateY(-6px) rotate(2deg)}}@keyframes stomp{0%,to{transform:translateY(0)}30%{transform:translateY(-14px) rotate(-2deg)}60%{transform:translateY(0) rotate(1deg)}}@keyframes pop{0%{transform:scale(.4) translateY(40px);opacity:0}}@keyframes wobble{25%{transform:rotate(8deg) translateY(-6px)}75%{transform:rotate(-8deg) translateY(6px)}}@keyframes buzz{0%{transform:translate(0)}25%{transform:translate(14px,-8px)}50%{transform:translate(4px,10px)}75%{transform:translate(-12px,-4px)}to{transform:translate(0)}}@keyframes glow{50%{transform:scale(1.08);filter:drop-shadow(0 0 18px #ffe14d)}}@keyframes drift{50%{transform:translate(6px,14px) rotate(40deg)}}@keyframes drift-slow{50%{transform:translate(40px)}}@keyframes beat{0%,to{transform:scale(1)}15%{transform:scale(1.12)}30%{transform:scale(1)}45%{transform:scale(1.08)}}@media (prefers-reduced-motion: reduce){.scene g[class]{animation:none!important}.hint{animation:none}}
