html:has(.app-root){scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;scroll-padding-top:88px}html:has(.app-root)::-webkit-scrollbar{width:10px;height:10px;display:block}html:has(.app-root)::-webkit-scrollbar-thumb{background:var(--surface-3);border:2px solid var(--bg-base);border-radius:999px}html:has(.app-root){font-family:var(--font-body);letter-spacing:0;font-size:15px;line-height:1.5}html:has(.app-root) body{font-family:var(--font-body);letter-spacing:0;font-size:15px;line-height:1.5}html:has(.app-root) body{color:var(--text-primary);background:var(--bg-base)}.app-root ::selection{background:color-mix(in srgb, var(--accent) 32%, transparent)}.app-root :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-root input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--surface-2) inset;caret-color:var(--text-primary);transition:background-color 9999s}.app-root input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--surface-2) inset;caret-color:var(--text-primary);transition:background-color 9999s}.app-root input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--surface-2) inset;caret-color:var(--text-primary);transition:background-color 9999s}.app-scroll{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}.app-scroll::-webkit-scrollbar{width:8px;height:8px}.app-scroll::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:999px}.mk-preview [data-slot]{border:1.5px dashed color-mix(in srgb, var(--p-from,var(--accent)) 70%, transparent);background:color-mix(in srgb, var(--p-from,var(--accent)) 9%, transparent);cursor:pointer;border-radius:.2em;min-width:.85em;margin:0 .06em;padding:0 .08em;transition:background-color .12s,border-color .12s;display:inline-block}.mk-preview [data-slot]:hover{background:color-mix(in srgb, var(--p-from,var(--accent)) 18%, transparent)}.mk-preview [data-slot][data-active]{background:color-mix(in srgb, var(--p-from,var(--accent)) 24%, transparent);border-style:solid}.mk-preview .mk-caret{border-left:2px solid var(--p-from,var(--accent));margin:0 -1px;animation:1.06s step-end infinite mk-blink;display:inline-block}.mk-preview span.mk-caret:empty{vertical-align:-.2em;height:1.05em}@keyframes mk-blink{50%{border-color:#0000}}@media (prefers-reduced-motion:reduce){.mk-preview .mk-caret{animation:none}}:root{--p-glow:100%}:root[data-theme=dark]{--p-glow:0%}:root[data-theme=dark] .combo-glow,:root[data-theme=dark] .level-pulse{animation:none}.backdrop-art{opacity:.72}:root[data-theme=dark] .backdrop-art{opacity:.6}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.3}}.twinkle{animation:3.2s ease-in-out infinite twinkle}.twinkle-slow{animation:5.4s ease-in-out 1.2s infinite twinkle}@keyframes bubble-rise{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-70px)}}.bubble-rise{transform-box:fill-box;animation:4.4s ease-in infinite both bubble-rise}.engraved{opacity:.32;filter:drop-shadow(0 -1px #00000073)drop-shadow(0 1px #ffffff1a)}:root[data-theme=light] .engraved{opacity:.3;filter:drop-shadow(0 -1px #0000001f)drop-shadow(0 1px #fffffff2)}@keyframes emoji-fall{0%{opacity:0;transform:translateY(-12vh)rotate(0)}8%{opacity:1}to{transform:translate3d(var(--dx,0px), 112vh, 0) rotate(var(--rot,360deg));opacity:1}}.icon-rain{z-index:90;pointer-events:none;position:fixed;inset:0;overflow:hidden}.icon-rain span{animation:emoji-fall var(--dur,2.2s) cubic-bezier(.33, 0, .66, 1) var(--delay,0s) both;will-change:transform;position:absolute;top:0}@keyframes doodle-float{0%{transform:translateY(-6px)rotate(-2deg)}to{transform:translateY(8px)rotate(2deg)}}.doodle-float{transform-box:fill-box;transform-origin:50%;animation:7s ease-in-out infinite alternate doodle-float}.doodle-float-slow{transform-box:fill-box;transform-origin:50%;animation:11s ease-in-out infinite alternate-reverse doodle-float}@keyframes tutor-bounce{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-10px)rotate(-4deg)}55%{transform:translateY(0)rotate(3deg)}75%{transform:translateY(-4px)rotate(0)}}.tutor-bounce{animation:.7s cubic-bezier(.34,1.56,.64,1) tutor-bounce}@keyframes tutor-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)rotate(-2deg)}75%{transform:translate(5px)rotate(2deg)}}.tutor-shake{animation:.42s ease-in-out tutor-shake}@keyframes combo-glow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--p-pop,#ff7a45) 0%, transparent)}50%{box-shadow:0 0 22px 2px color-mix(in srgb, var(--p-pop,#ff7a45) 45%, transparent)}}.combo-glow{animation:1.6s ease-in-out infinite combo-glow}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-40deg)}70%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.star-pop{animation:.6s cubic-bezier(.34,1.56,.64,1) both star-pop}@keyframes level-pulse{0%,to{outline:0 solid color-mix(in srgb, var(--p-from,#4f7cff) 40%, transparent);outline-offset:2px}60%{outline:12px solid color-mix(in srgb, var(--p-from,#4f7cff) 0%, transparent);outline-offset:4px}}.level-pulse{animation:1.9s ease-out infinite level-pulse}@keyframes pin-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.pin-bob{animation:1.6s ease-in-out infinite pin-bob}@keyframes road-dash{to{stroke-dashoffset:-32px}}.road-dash{animation:2.4s linear infinite road-dash}@media (prefers-reduced-motion:reduce){.icon-rain,.doodle-float,.doodle-float-slow,.tutor-bounce,.tutor-shake,.combo-glow,.level-pulse,.pin-bob,.road-dash,.twinkle,.twinkle-slow,.bubble-rise{animation:none!important}.icon-rain{display:none}.star-pop{animation:none!important}}:root,:root[data-theme=dark]{--auth-card-fill:#16191c94;--auth-field-fill:#0b0e108c;--auth-field-solid:#0e1113;--auth-error:#ff9d9d;--auth-oauth-fill:#1c202380;--auth-glow-alpha:.16;--auth-cta-ring:#1ad1b766;--auth-check-ink:#062420;--auth-snack-ink:#fff;--auth-m3-primary:#6c63ff;--auth-field-hover:#ffffff0a}:root[data-theme=light]{--auth-card-fill:#ffffffbd;--auth-field-fill:#fff;--auth-field-solid:#fff;--auth-error:#b3261e;--auth-oauth-fill:#ffffff80;--auth-glow-alpha:.1;--auth-cta-ring:#1ad1b74d;--auth-check-ink:#fff;--auth-snack-ink:#10161a;--auth-m3-primary:#96f;--auth-field-hover:#0000000a}.auth-px{--spacing:4px}.app-root .auth-input:focus-visible,.app-root .auth-dialog-panel:focus-visible{outline:none}.app-root .auth-input:hover{background-image:linear-gradient(var(--auth-field-hover), var(--auth-field-hover))}.app-root .auth-input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--auth-field-solid) inset}.app-root .auth-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--auth-field-solid) inset}.app-root .auth-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--auth-field-solid) inset}@keyframes auth-enter{0%{opacity:0;transform:translateY(6vh)}to{opacity:1;transform:none}}.auth-enter{animation:.9s cubic-bezier(.16,1,.3,1) both auth-enter}@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes auth-arc{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:70 150;stroke-dashoffset:-28px}to{stroke-dasharray:70 150;stroke-dashoffset:-99px}}.auth-spinner{animation:1.4s linear infinite auth-spin}.auth-spinner circle{animation:1.4s ease-in-out infinite auth-arc}@keyframes auth-fade-in{0%{opacity:0}}.auth-snack{animation:.25s cubic-bezier(.16,1,.3,1) both auth-fade-in}.auth-dialog{animation:.15s ease-out both auth-fade-in}@media (prefers-reduced-motion:reduce){.auth-enter,.auth-snack,.auth-dialog{animation:none}}@property --t{syntax:"<number>";inherits:true;initial-value:0}.book-root{--desk-shadow:#2e200e4d;--book-ease:cubic-bezier(.45, .05, .25, 1);--bd:var(--font-book-display), "Cormorant Garamond", Georgia, serif;--bb:var(--font-book-body), "Crimson Text", Georgia, serif;--font-scale:1;--dim:0%;--grain:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxODAnIGhlaWdodD0nMTgwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjg1JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIC4zNiAgMCAwIDAgMCAuMjcgIDAgMCAwIDAgLjE1ICAwIDAgMCAuMTEgMCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbHRlcj0ndXJsKCNuKScvPjwvc3ZnPg==) 0 0 / 180px 180px;--hide-noise:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMDAnIGhlaWdodD0nMjAwJz48ZmlsdGVyIGlkPSdsJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjYnIG51bU9jdGF2ZXM9JzMnIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9JzAgMCAwIDAgMCAgMCAwIDAgMCAwICAwIDAgMCAwIDAgIDAgMCAwIC4zMiAwJy8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI2wpJy8+PC9zdmc+) 0 0 / 200px 200px;--cover:#1f4b47;--cover-deep:#0d2523}:root[data-theme=dark] .book-root:not([data-print]){--dim:9%;--desk-shadow:#0009}.book-display{font-family:var(--bd)}.book-script{font-family:var(--font-book-script), "Pinyon Script", cursive;font-weight:400}[data-paper]{--paper-shown:color-mix(in srgb, var(--paper) calc(100% - var(--dim,0%)), black);--paper-pattern:linear-gradient(transparent, transparent);--paper-vignette:#8c683221;--emboss-light:#ffffffd9;--emboss-dark:#00000059}[data-paper=parchment]{--paper:#f6edd8;--paper-deep:#eadcbc;--paper-edge:#d4c094;--ink:#3a2c1d;--ink-soft:#6e5a41;--ink-faint:#3a2c1d4d;--rule:#6e5a4152}[data-paper=cream]{--paper:#fbf5e6;--paper-deep:#efe5cc;--paper-edge:#dccca4;--ink:#33291e;--ink-soft:#6a5a46;--ink-faint:#33291e47;--rule:#6a5a4647;--paper-vignette:#8c68320f}[data-paper=white],[data-paper=lined],[data-paper=grid],[data-paper=dotted]{--paper:#fdfdfb;--paper-deep:#ececea;--paper-edge:#d6d6d2;--ink:#26272c;--ink-soft:#5b5d66;--ink-faint:#26272c42;--rule:#3c3e4638;--paper-vignette:#0000000a}[data-paper=lined]{--paper:#fcfbf6;--paper-pattern:linear-gradient(90deg, transparent 8.5%, #e25c5c61 8.5%, #e25c5c61 calc(8.5% + 1px), transparent calc(8.5% + 1px)), repeating-linear-gradient(transparent 0 1.6em, #568cdc3d 1.6em calc(1.6em + 1px))}[data-paper=grid]{--paper:#fbfbf7;--paper-pattern:repeating-linear-gradient(90deg, #568cdc2b 0 1px, transparent 1px 1.25em), repeating-linear-gradient(#568cdc2b 0 1px, transparent 1px 1.25em)}[data-paper=dotted]{--paper:#fbf9f3;--paper-pattern:radial-gradient(circle, #4646644d .06em, transparent .085em) 0 0 / 1.25em 1.25em}[data-paper=kraft]{--paper:#caa97d;--paper-deep:#b8946a;--paper-edge:#9e7c52;--ink:#34230f;--ink-soft:#5b4226;--ink-faint:#34230f57;--rule:#50371959;--paper-vignette:#462d0f33}[data-paper=blush]{--paper:#fbe9e6;--paper-deep:#f1d3cf;--paper-edge:#e0b4ae;--ink:#4a2730;--ink-soft:#7c5059;--ink-faint:#4a273047;--rule:#7c505947;--paper-vignette:#be5a6414}[data-paper=midnight]{--paper:#1b2340;--paper-deep:#141a31;--paper-edge:#2b3458;--ink:#eef1ff;--ink-soft:#aab3d6;--ink-faint:#eef1ff4d;--rule:#aab3d64d;--paper-vignette:#00000059;--paper-shown:var(--paper);--emboss-light:#ffffff24;--emboss-dark:#0009;--paper-pattern:radial-gradient(circle, #ffffff8c .035em, transparent .07em) 0 0 / 3.3em 3.9em, radial-gradient(circle, #ffffff59 .03em, transparent .06em) 1.4em 2.1em / 4.6em 3.4em}[data-font=storybook]{--bd:var(--font-book-round), "Fredoka", sans-serif;--bb:var(--font-book-round), "Fredoka", sans-serif;--font-scale:.88}[data-font=handwritten]{--bd:var(--font-book-hand), "Patrick Hand", cursive;--bb:var(--font-book-hand), "Patrick Hand", cursive;--font-scale:1.02;--clamp-leading:1.25}[data-font=typewriter]{--bd:var(--font-book-type), "Courier Prime", monospace;--bb:var(--font-book-type), "Courier Prime", monospace;--font-scale:.8}[data-material]{--cover-base:linear-gradient(140deg, var(--cover), var(--cover-deep))}[data-material=leather]{--cover-texture:radial-gradient(110% 80% at 28% 18%, #ffffff1a, transparent 60%), radial-gradient(90% 90% at 85% 100%, #0006, transparent 65%), var(--hide-noise)}[data-material=cloth]{--cover-texture:repeating-linear-gradient(0deg, #ffffff0f 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, #0000001c 0 1px, transparent 1px 3px), radial-gradient(120% 90% at 30% 15%, #ffffff14, transparent 60%), radial-gradient(90% 90% at 85% 100%, #00000059, transparent 65%)}[data-material=velvet]{--cover-texture:radial-gradient(70% 55% at 35% 30%, #ffffff2b, transparent 70%), radial-gradient(100% 100% at 80% 100%, #00000080, transparent 60%), var(--hide-noise)}[data-material=glossy]{--cover-texture:linear-gradient(125deg, transparent 30%, #ffffff38 38%, transparent 47%), linear-gradient(160deg, #ffffff42, transparent 42%), radial-gradient(90% 90% at 85% 100%, #0000004d, transparent 65%)}[data-material=galaxy]{--cover-base:linear-gradient(150deg, color-mix(in srgb, var(--cover) 30%, #0e0a26), #04040c);--cover-texture:radial-gradient(circle, #ffffffe6 .05em, transparent .09em) .4em 1.1em / 5.3em 4.7em, radial-gradient(circle, #ffffff8c .035em, transparent .07em) 1.9em .3em / 3.7em 4.1em, radial-gradient(circle, #fff0c8d9 .06em, transparent .1em) 3.1em 2.6em / 7.9em 6.7em, radial-gradient(circle, #c8dcffb3 .045em, transparent .08em) 2.3em 4.2em / 6.1em 5.9em, radial-gradient(45% 32% at 30% 34%, color-mix(in srgb, var(--cover) 55%, #ff4fd8 45%), transparent 72%), radial-gradient(52% 40% at 74% 70%, color-mix(in srgb, var(--cover) 55%, #4f8bff 45%), transparent 72%)}[data-cover-tone=light] .foil-line{color:#3c2a0fd1;text-shadow:0 1px #ffffff59}[data-foil=gold]{--foil:linear-gradient(100deg, #9a7420 0%, #f7e7a1 26%, #c9a227 48%, #fff3bf 63%, #a07a1f 100%);--foil-ink:#e9d9a6e6;--foil-frame:#d4af37c7}[data-foil=silver]{--foil:linear-gradient(100deg, #6f7880 0%, #f4f7fa 26%, #a9b2ba 48%, #fff 63%, #78828b 100%);--foil-ink:#e1e7eceb;--foil-frame:#c8d0d7cc}[data-foil=copper]{--foil:linear-gradient(100deg, #7e4220 0%, #f1b48a 26%, #b8693a 48%, #ffd2b0 63%, #7a3f1e 100%);--foil-ink:#f0be96eb;--foil-frame:#c47a4ad9}[data-foil=rose]{--foil:linear-gradient(100deg, #8e514d 0%, #f6c9bf 26%, #c98a82 48%, #ffe4dc 63%, #8e514d 100%);--foil-ink:#f6cdc4eb;--foil-frame:#d6968cd9}[data-foil=rainbow]{--foil:linear-gradient(100deg, #ff7a7a, #ffd36b 20%, #7ee08a 40%, #6bc4ff 60%, #b98bff 80%, #ff7ac8);--foil-ink:#fff0faf0;--foil-frame:#ffffffa6}.foil{background:var(--foil);color:#0000;filter:drop-shadow(0 1px #00000080);-webkit-background-clip:text;background-clip:text}[data-shimmer] .foil{background-size:260% 100%;animation:7s ease-in-out infinite alternate foil-shimmer}@keyframes foil-shimmer{0%{background-position:0%}to{background-position:100%}}.foil-line{color:var(--foil-ink);text-shadow:0 1px #00000073}[data-corners=gold]{--corner-metal:linear-gradient(135deg, #fff1b8, #d4af37 45%, #8a6d12)}[data-corners=silver]{--corner-metal:linear-gradient(135deg, #fff, #c9d1d8 45%, #6f7880)}[data-edges=plain]{--edge-image:repeating-linear-gradient(90deg, var(--paper-deep) 0 1px, var(--paper-edge) 1px 2px)}[data-edges=silver]{--edge-image:repeating-linear-gradient(90deg, #eef2f5 0 1px, #9aa4ad 1px 2px)}[data-edges=gold]{--edge-image:repeating-linear-gradient(90deg, #f6e19a 0 1px, #b8901f 1px 2px)}[data-edges=rainbow]{--edge-image:repeating-linear-gradient(90deg, #ffffff59 0 1px, transparent 1px 2px), linear-gradient(#ff7a7a, #ffd36b, #7ee08a, #6bc4ff, #b98bff)}[data-endpaper=marble]{--endpaper:radial-gradient(42% 30% at 18% 22%, #d4af3773, transparent 70%), radial-gradient(50% 36% at 82% 18%, #1ad1b752, transparent 72%), radial-gradient(60% 44% at 70% 78%, #071e1cb3, transparent 70%), radial-gradient(38% 28% at 28% 82%, #d4af3759, transparent 70%), repeating-radial-gradient(circle at 38% 46%, #ffffff0a 0 .35em, transparent .35em .9em), #1b4340}[data-endpaper=rose]{--endpaper:radial-gradient(42% 30% at 20% 24%, #ffd6aa80, transparent 70%), radial-gradient(50% 36% at 80% 20%, #be78e666, transparent 72%), radial-gradient(60% 44% at 68% 78%, #5a143c99, transparent 70%), radial-gradient(38% 28% at 26% 80%, #ffbed273, transparent 70%), repeating-radial-gradient(circle at 42% 48%, #ffffff0d 0 .35em, transparent .35em .9em), #9b4a6c}[data-endpaper=polka]{--endpaper:radial-gradient(circle, #fffaf0d9 .45em, transparent .5em) 0 0 / 2.4em 2.4em, radial-gradient(circle, #fffaf0d9 .45em, transparent .5em) 1.2em 1.2em / 2.4em 2.4em, var(--cover)}[data-endpaper=stripes]{--endpaper:repeating-linear-gradient(45deg, #fffaf0e6 0 1em, transparent 1em 2em), var(--cover)}[data-endpaper=waves]{--endpaper:radial-gradient(circle at 50% 0, transparent .9em, #ffffff38 .95em 1.05em, transparent 1.1em) 0 0 / 2.4em 1.3em, radial-gradient(circle at 50% 0, transparent .9em, #ffffff38 .95em 1.05em, transparent 1.1em) 1.2em .65em / 2.4em 1.3em, var(--cover-deep)}[data-endpaper=stars]{--endpaper:radial-gradient(circle, #f6e19a .07em, transparent .12em) 0 0 / 2.6em 3.1em, radial-gradient(circle, #ffffffb3 .05em, transparent .09em) 1.1em 1.6em / 3.4em 2.7em, radial-gradient(70% 50% at 70% 30%, #505ac859, transparent 70%), #10163a}.book-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;justify-content:center;align-items:flex-start;padding-top:18px;display:flex;position:relative;overflow:hidden}.book,.book-print{color:var(--ink);font-family:var(--bb);font-size:calc(var(--pw) * .031 * var(--font-scale));line-height:1.3;position:relative}.book{perspective:2400px;transition:transform .9s var(--book-ease)}.book-shadow{box-shadow:0 1.6em 2.6em -1em var(--desk-shadow), 0 .3em .6em #0000002e;transition:left .9s var(--book-ease), right .9s var(--book-ease);border-radius:.4em;position:absolute;top:-1.6%;bottom:-1.6%}.book-leaves{height:100%;transform-style:preserve-3d;pointer-events:none;position:absolute;top:0}.book-leaves[data-turnable]{cursor:pointer}.book img{-webkit-user-drag:none}.leaf{--t:var(--turn);pointer-events:none;transform-origin:0;transform-style:preserve-3d;transform:rotateY(calc(var(--t) * -180deg)) translateZ(calc(var(--depth) * -.5px));transition:--t var(--dur,.9s) var(--book-ease) var(--delay,0s), visibility 0s linear 0s;position:absolute;inset:0}.leaf[data-board]{inset:-1.6% -1.4% -1.6% 0}.leaf[data-gone]{visibility:hidden;transition:--t var(--dur,.9s) var(--book-ease) var(--delay,0s), visibility 0s linear calc(var(--dur,.9s) + var(--delay,0s))}.leaf[data-drag]{--t:var(--drag);transition:none}.leaf-face{pointer-events:auto;backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.leaf-face[data-back]{transform:rotateY(180deg)}.leaf-shade{pointer-events:none;position:absolute;inset:0}.leaf-face:not([data-back]) .leaf-shade{opacity:min(1, calc(var(--t) * 2.2));background:linear-gradient(270deg,#1e14080d,#1e140852)}.leaf-face[data-back] .leaf-shade{opacity:min(1, calc((1 - var(--t)) * 2.2));background:linear-gradient(90deg,#1e14080d,#1e140852)}.paper{background:var(--paper-pattern), var(--grain), radial-gradient(ellipse 85% 75% at 50% 45%, transparent 55%, var(--paper-vignette)), var(--paper-shown);position:absolute;inset:0}.paper[data-side]:before{content:"";pointer-events:none;width:9%;position:absolute;inset-block:0}.paper[data-side=right]:before,.paper[data-side=single]:before{background:linear-gradient(90deg,#3c280f38,#3c280f0f 35%,#0000);left:0}.paper[data-side=left]:before{background:linear-gradient(270deg,#3c280f38,#3c280f0f 35%,#0000);right:0}.book-page{flex-direction:column;padding:7.5% 8.5% 9.5%;display:flex;position:absolute;inset:0}.paper[data-side=right] .book-page,.paper[data-side=single] .book-page{padding-left:10%}.paper[data-side=left] .book-page{padding-right:10%}.page-doodle{width:1.6em;height:1.6em;color:var(--ink);opacity:.24;pointer-events:none;position:absolute}.book-head{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:.8em;font-size:.66em;font-weight:600;display:flex}.book-head:before,.book-head:after{content:"";background:var(--rule);flex:1;height:1px}.book-folio{bottom:3.6%;text-align:center;color:var(--ink-soft);font-size:.78em;font-style:italic;position:absolute;inset-inline:0}.book-ornament{color:var(--ink-faint);justify-content:center;align-items:center;gap:.6em;display:flex}.book-ornament:before,.book-ornament:after{content:"";background:var(--rule);width:3.2em;height:1px}.ink-bar{background:color-mix(in srgb, var(--ink) 12%, transparent);height:.3em;box-shadow:inset 0 1px 1px color-mix(in srgb, var(--ink) 12%, transparent);border-radius:9px;display:block;overflow:hidden}.ink-bar>i{border-radius:inherit;background:linear-gradient(90deg, var(--ink-soft), var(--ink));height:100%;display:block}.book-button{color:var(--paper-shown);background:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:.45em;padding:.45em 1.1em;font-size:.9em;font-weight:600;transition:transform .15s,opacity .15s;display:inline-flex}.book-button:hover{opacity:.88}.book-button:active{transform:translateY(1px)}.book-link{color:var(--ink-soft);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.2em}.book-link:hover{color:var(--ink)}.book-toc-row{text-align:left;cursor:pointer;border-radius:.3em;align-items:baseline;gap:.45em;width:100%;padding:.16em .3em;font-size:.96em;display:flex}.book-toc-row:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.book-toc-dots{border-bottom:1px dotted var(--ink-faint);flex:1;min-width:1em}.book-plate{background:#fffaf0;padding:4.5%;position:relative;transform:rotate(-2.2deg);box-shadow:0 1px #00000014,0 .7em 1.3em -.6em #2e200e80}.book-plate img{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.book-plate>i{aspect-ratio:1;opacity:.9;background:linear-gradient(135deg,#3d3023 50%,#0000 50%);width:18%;position:absolute}.book-plate>i:first-of-type{top:0;left:0}.book-plate>i:nth-of-type(2){top:0;right:0;transform:rotate(90deg)}.book-plate>i:nth-of-type(3){bottom:0;right:0;transform:rotate(180deg)}.book-plate>i:nth-of-type(4){bottom:0;left:0;transform:rotate(270deg)}.book-portrait{background:linear-gradient(140deg,#8c6a1c,#f3dd8c 35%,#b48a2a 60%,#f6e6a6 85%,#8c6a1c);border-radius:50%;place-items:center;display:grid;box-shadow:0 .6em 1.1em -.5em #2e200e8c}.book-portrait>*{border-radius:50%;width:90%;height:90%;box-shadow:0 0 0 .18em #fffaf0}.book-monogram{letter-spacing:.02em;color:#3a2c1d;background:radial-gradient(circle at 40% 35%,#fffaf0,#eadcbc);place-items:center;font-size:2.6em;font-weight:700;line-height:1;display:grid}.leather{color:#e9d9a6;background:var(--cover-texture), var(--cover-base);position:absolute;inset:0}.leather[data-side]:before{content:"";background:linear-gradient(90deg,#00000073,#ffffff0f 55%,#0000);width:5%;position:absolute;inset-block:0}.leather[data-side=right]:before{left:0}.leather[data-side=left]:before{right:0;transform:scaleX(-1)}.leather-frame{border:1.5px solid var(--foil-frame);box-shadow:inset 0 0 0 .35em transparent, inset 0 0 0 calc(.35em + 1px) color-mix(in srgb, var(--foil-frame) 55%, transparent), 0 1px 0 #00000059;pointer-events:none;border-radius:.3em;position:absolute;inset:6.5% 7% 6.5% 9%}.leather[data-side=left] .leather-frame{inset:6.5% 9% 6.5% 7%}.cover-corner{aspect-ratio:1;background:var(--corner-metal);clip-path:polygon(0 0,100% 0,0 100%);width:11%;position:absolute}.cover-corner[data-pos=tl]{top:0;left:0}.cover-corner[data-pos=tr]{top:0;right:0;transform:scaleX(-1)}.cover-corner[data-pos=br]{bottom:0;right:0;transform:scale(-1)}.cover-corner[data-pos=bl]{bottom:0;left:0;transform:scaleY(-1)}.cover-emblem{width:4.8em;height:4.8em;color:var(--foil-ink);border:1.5px solid var(--foil-frame);box-shadow:inset 0 0 0 .32em transparent, inset 0 0 0 calc(.32em + 1px) color-mix(in srgb, var(--foil-frame) 50%, transparent);border-radius:50%;place-items:center;display:grid}.cover-emblem>svg{filter:drop-shadow(0 1px #00000073);width:52%;height:52%}.cover-ribbon{letter-spacing:.04em;color:#fff8e6;background:linear-gradient(#b3322b,#7e1c17);border-radius:.2em 0 0 .2em;padding:.35em 1em .35em .9em;font-size:.78em;font-weight:600;position:absolute;top:8%;right:0;box-shadow:0 .3em .6em -.2em #00000080}.board-inside{background:var(--cover-texture), var(--cover-base);position:absolute;inset:0}.marbled{background:var(--endpaper);position:absolute;inset:0}.board-inside>.marbled{inset:1.55% 1.38% 1.55% 0}.board-inside[data-side=left]>.marbled{inset:1.55% 0 1.55% 1.38%}.board-edge{background:var(--edge-image);transition:width .6s;position:absolute;top:1.9%;bottom:1.9%}.board-inside[data-side=right] .board-edge,.board-inside[data-side=single] .board-edge{left:98.62%}.board-inside[data-side=left] .board-edge{right:98.62%}.ex-libris{text-align:center;color:#3a2c1d;background:#f6edd8;border-radius:.3em;width:64%;padding:1.6em 1.2em 1.4em;position:relative;box-shadow:0 .6em 1.4em -.4em #0000008c,inset 0 0 0 .35em #f6edd8,inset 0 0 0 calc(.35em + 1px) #3a2c1d4d}.page-ribbon{pointer-events:none;background:linear-gradient(90deg, var(--ribbon-deep), var(--ribbon) 28%, color-mix(in srgb, var(--ribbon) 80%, white) 50%, var(--ribbon) 72%, var(--ribbon-deep));width:3.4%;position:absolute;top:-1%;bottom:0;box-shadow:.06em 0 .18em #00000047}.page-ribbon[data-side=right],.page-ribbon[data-side=single]{left:calc(1.4% + var(--slot) * 3.9%)}.page-ribbon[data-side=left]{right:calc(1.4% + var(--slot) * 3.9%)}.ribbon-tail{width:calc(var(--pw) * .034);height:calc(var(--pw) * (.1 + var(--slot) * .018));cursor:pointer;background:linear-gradient(90deg, var(--ribbon-deep), var(--ribbon) 28%, color-mix(in srgb, var(--ribbon) 80%, white) 50%, var(--ribbon) 72%, var(--ribbon-deep));filter:drop-shadow(0 .15em .15em #0000004d);transform-origin:top;transition:transform .2s;position:absolute;top:100%}.ribbon-tail:hover{transform:scaleY(1.08)rotate(-2deg)}.ribbon-tail:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ribbon-tail[data-tail=fork]{clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%)}.ribbon-tail[data-tail=point]{clip-path:polygon(0 0,100% 0,100% 84%,50% 100%,0 84%)}.ribbon-tail[data-tail=tassel]{height:calc(var(--pw) * (.07 + var(--slot) * .018))}.ribbon-tail[data-tail=tassel]:after{content:"";width:180%;height:calc(var(--pw) * .05);background:repeating-linear-gradient(90deg, var(--ribbon) 0 1.5px, transparent 1.5px 3px), linear-gradient(var(--ribbon-deep), transparent);border-top:.25em solid #d4af37;border-radius:.2em .2em 0 0;position:absolute;top:100%;left:-40%;-webkit-mask:linear-gradient(#000 60%,#0000);mask:linear-gradient(#000 60%,#0000)}.seal{width:var(--seal);height:var(--seal);display:inline-grid;position:relative}.seal-body{width:100%;height:100%;transform:rotate(var(--tilt,0deg));place-items:center;display:grid;position:relative}.seal-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.seal-icon{position:relative}.seal[data-kind=wax] .seal-svg,.seal[data-kind=coin] .seal-svg,.seal[data-kind=holo] .seal-svg{filter:drop-shadow(0 calc(var(--seal) * .07) calc(var(--seal) * .07) #2e200e6b)}.seal[data-kind=sticker] .seal-svg{filter:drop-shadow(0 calc(var(--seal) * .03) calc(var(--seal) * .04) #2e200e61)}.seal[data-kind=wax] .seal-icon{color:#fff8e6;filter:drop-shadow(0 1px #0000004d)}.seal[data-kind=wax][data-foil] .seal-icon{color:#5a420c;filter:drop-shadow(0 1px #ffffff80)}.seal[data-kind=sticker] .seal-icon{color:#fff;filter:drop-shadow(0 1px 1px #00000040)}.seal[data-kind=stamp] .seal-body{opacity:.9}.seal[data-kind=stamp] .seal-icon{color:var(--seal-b)}.seal[data-kind=coin] .seal-icon{color:color-mix(in srgb, var(--seal-b) 70%, black);filter:drop-shadow(0 1px #ffffff73)}.seal[data-kind=holo] .seal-icon{color:#fff;filter:drop-shadow(0 1px 1px #00000059)}.seal[data-kind=shadow] .seal-svg{color:var(--ink-faint)}.seal[data-kind=shadow] .seal-icon{color:var(--ink);opacity:.26;filter:drop-shadow(1px 1px 0 var(--emboss-light)) drop-shadow(-.5px -.5px 0 var(--emboss-dark))}@keyframes holo-spin{0%{filter:drop-shadow(0 calc(var(--seal) * .07) calc(var(--seal) * .07) #2e200e6b) hue-rotate(0deg)}to{filter:drop-shadow(0 calc(var(--seal) * .07) calc(var(--seal) * .07) #2e200e6b) hue-rotate(360deg)}}.seal-slot:hover .seal[data-kind=holo] .seal-svg{animation:2.4s linear infinite holo-spin}.seal-slot{transition:background-color .15s}.seal-slot:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.seal-slot:focus-visible{outline:2px solid var(--ink-soft);outline-offset:2px}.book-dialog-seal{--ink:#3a2c1d;--ink-faint:#3a2c1d4d;--emboss-light:#ffffffd9;--emboss-dark:#00000059;background:#f6edd8;border-radius:999px;place-items:center;width:160px;height:160px;display:grid}@keyframes seal-stamp{0%{opacity:0;transform:scale(1.9)rotate(-16deg)}55%{opacity:1;transform:scale(.9)rotate(3deg)}78%{transform:scale(1.05)rotate(-1deg)}to{transform:none}}.seal[data-stamp]{animation:seal-stamp .7s cubic-bezier(.3, .7, .3, 1.15) var(--stamp-delay,0s) both}@keyframes ink-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}30%{opacity:1}to{transform:translate(calc(-50% + var(--bx)), calc(-50% + var(--by))) scale(1);opacity:0}}.ink-burst{pointer-events:none;position:absolute;inset:0}.ink-burst>span{width:calc(var(--seal) * .28);height:calc(var(--seal) * .28);color:var(--seal-a);opacity:0;animation:ink-burst .9s ease-out calc(var(--stamp-delay,0s) + .35s) both;position:absolute;top:50%;left:50%}.ink-burst>span>svg{width:100%;height:100%}.page-curl{aspect-ratio:1;pointer-events:none;width:0;transition:width .2s;position:absolute;bottom:0}.page-curl[data-side=right]{background:linear-gradient(315deg, transparent 49%, #0000002e 50%, #fffaf0 56%, var(--paper-deep) 100%);border-top-left-radius:.3em;right:0}.page-curl[data-side=left]{background:linear-gradient(45deg, transparent 49%, #0000002e 50%, #fffaf0 56%, var(--paper-deep) 100%);border-top-right-radius:.3em;left:0}@media (hover:hover) and (pointer:fine){.book-leaves[data-turnable] .leaf-face:hover .page-curl{width:7%}}.style-tile{cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:6px 4px 7px;transition:background-color .15s,box-shadow .15s;display:flex;position:relative}.style-tile:hover{background:var(--surface-hover)}.style-tile[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 2px var(--accent)}.style-tile[data-locked]{cursor:not-allowed}.style-tile[data-locked]>:first-child{opacity:.45;filter:grayscale(.6)}.style-preview{aspect-ratio:1;border-radius:10px;place-items:center;width:100%;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.book-export{pointer-events:none;position:fixed;top:0;left:-20000px}@media (prefers-reduced-motion:reduce){.book,.book-shadow,.board-edge,.leaf,.leaf[data-gone]{transition:none!important}.seal[data-stamp],.ink-burst>span,[data-shimmer] .foil,.seal-slot:hover .seal[data-kind=holo] .seal-svg{animation:none!important}}
