:root{--ground:#0d0d0d;--ink:#f5f5f5;--ink-2:#a3a3a3;--ink-3:#7a7a7a;--surface:#161616;--hairline:#262626;--glass-ink:#2a2a2a;--glass:#1e1e1e9e;--glass-edge:#ffffff14;--lg-fill:#3a3a3c6b;--lg-fill-hover:#48484a80;--lg-blur:blur(16px) saturate(1.8);--lg-rim:inset 0 .75px 0 #ffffff42, inset 0 -.5px 0 #ffffff0f, inset 0 0 0 .5px #ffffff14;--sheet-bg:#161616;--cell-bg:#ffffff13;--separator:#ffffff1a;--muted:#ebebf599;--faint:#ebebf54d;--track:#7878805c;--switch-on:#30d158;--destructive:#ff453a;--accent:#0a84ff;--empty-media:#2c2c2e;--edge-bg:#0c0c0c9e;--edge-line:#ffffff24;--fg:255 255 255;--ground-rgb:13 13 13;--stage:#000;--google-bg:#131314;--google-bg-hover:#1d1d1f;--google-ink:#e3e3e3;--google-edge:#8e918f;--radius:1rem;--gutter:max(1rem, env(safe-area-inset-left));--ease:cubic-bezier(.16, 1, .3, 1);--spring:cubic-bezier(.34, 1.4, .64, 1);--ios-curve:cubic-bezier(.32, .72, 0, 1);--dur:.32s;--dur-settle:.6s;--dur-micro:.15s;--dur-quick:.3s;--hover:var(--dur-quick) cubic-bezier(.25, .1, .25, 1);--dur-turn:.45s;--bar-h:4rem;--font-sans:system-ui, -apple-system, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", sans-serif;--font-serif:ui-serif, "New York", Charter, "Iowan Old Style", Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--ground:#f2f2f7;--ink:#000;--ink-2:#6e6e73;--ink-3:#8e8e93;--surface:#fff;--hairline:#d1d1d6;--glass-ink:#e5e5ea;--glass:#ffffff9e;--glass-edge:#0000000f;--lg-fill:#ffffff8c;--lg-fill-hover:#ffffffb8;--lg-rim:inset 0 .75px 0 #ffffffe6, inset 0 -.5px 0 #0000000a, inset 0 0 0 .5px #00000014;--sheet-bg:#f2f2f7;--cell-bg:#fff;--separator:#3c3c434a;--muted:#3c3c4399;--faint:#3c3c434d;--track:#78788033;--switch-on:#34c759;--destructive:#ff3b30;--accent:#007aff;--empty-media:#e5e5ea;--edge-bg:#f2f2f7b8;--edge-line:#0000001f;--fg:0 0 0;--ground-rgb:242 242 247;--stage:#fff;--google-bg:#fff;--google-bg-hover:#f2f2f2;--google-ink:#1f1f1f;--google-edge:#747775;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--ground);min-height:100svh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--ink);text-underline-offset:.2em;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:.01;transform:translateY(14px)}}@keyframes fade{0%{opacity:.01}}.welcome{max-width:25rem;min-height:100svh;padding:max(3rem, env(safe-area-inset-top)) var(--gutter) max(1.5rem, env(safe-area-inset-bottom));grid-template-rows:1fr auto;margin:0 auto;display:grid}.welcome-hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1rem 0 2rem;display:flex}.welcome-hero>*{animation:rise var(--dur-settle) var(--ease) both}.welcome-hero>:nth-child(2){animation-delay:60ms}.welcome-hero>:nth-child(3){animation-delay:.11s}.welcome-hero>:nth-child(4){animation-delay:.17s}.welcome-hero h1{letter-spacing:-.02em;margin:2rem 0 0;font-size:2.125rem;font-weight:700}.byline{color:var(--ink-2);margin:.375rem 0 0;font-size:.9375rem}.features{text-align:start;gap:1.375rem;margin:2.25rem 0 0;padding:0;list-style:none;display:grid}.features li{grid-template-columns:2.5rem 1fr;align-items:start;gap:.625rem;display:grid}.feature-icon{color:var(--ink);place-items:center;padding-top:.125rem;display:grid}.features strong{font-size:1.0625rem;font-weight:600;display:block}.features li span span{color:var(--ink-2);margin-top:.125rem;font-size:.9375rem;line-height:1.35;display:block}.welcome-actions{animation:rise var(--dur-settle) var(--ease) .24s both;gap:.875rem;display:grid}.google{border:1px solid var(--google-edge);background:var(--google-bg);height:2.75rem;color:var(--google-ink);font-family:Roboto, var(--font-sans);transition:background var(--hover), transform .16s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.625rem;font-size:.875rem;font-weight:500;display:flex}.google:hover{background:var(--google-bg-hover)}.google:active{transform:scale(.98)}.google:disabled{opacity:.38;cursor:default}.legal,.error{text-align:center;color:var(--ink-3);margin:0;font-size:.8125rem;line-height:1.4}.error{color:var(--destructive)}@media (width>=64rem){.welcome{grid-template-rows:auto auto;align-content:center;gap:1.5rem}.welcome-hero h1{font-size:2.5rem}}.home{min-height:100svh;position:relative}.tools{display:contents}.library{z-index:1;min-height:100svh;padding:0 var(--gutter) calc(4rem + env(safe-area-inset-bottom));background:var(--ground);position:relative}.bar{z-index:2;height:calc(var(--bar-h) + env(safe-area-inset-top));margin:0 calc(var(--gutter) * -1);padding:env(safe-area-inset-top) var(--gutter) 0;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.bar:before,.side-bar:before{content:"";z-index:-1;background:var(--edge-bg);-webkit-backdrop-filter:blur(20px)saturate(1.6);box-shadow:inset 0 -.5px 0 var(--edge-line);opacity:0;transition:opacity var(--dur-quick) var(--ease);pointer-events:none;position:absolute;inset:0}.bar.is-edge:before,.side-bar.is-edge:before{opacity:1}.bar-title{opacity:0;transition:opacity var(--dur-micro) var(--ease), transform var(--dur-quick) var(--ease);font-size:1.0625rem;font-weight:600;transform:translateY(.375rem)}.bar.is-titled .bar-title{opacity:1;transform:none}.bar-lead{justify-self:start}.bar-glyph{justify-self:end}.large-title{letter-spacing:-.02em;margin:.25rem 0 .75rem;font-size:2.125rem;font-weight:700}.library-toolbar{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.sort-cluster{align-items:center;gap:.5rem;display:inline-flex}.sort-pill{height:2.25rem;padding:0 .875rem;font-size:.875rem;font-weight:500}.sort-dir{width:2.25rem;height:2.25rem}.is-destructive{color:var(--destructive)}.pill{border:1px solid var(--hairline);background:color-mix(in srgb, var(--surface) 82%, transparent);height:2.5rem;transition:border-color var(--hover), transform var(--dur-micro) var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;font-size:.9375rem;display:inline-flex}.pill:hover{border-color:var(--ink-3)}.pill:active{transform:scale(.97)}.pill.is-primary{border-color:var(--ink);background:var(--ink);color:var(--ground);font-weight:600}.pill:disabled{opacity:.4;cursor:default}.btn-glyph{width:1.125rem;height:1.125rem;display:inline-grid}.btn-glyph svg{width:100%;height:100%}.round,.glass-pill{background:var(--lg-fill);-webkit-backdrop-filter:var(--lg-blur);box-shadow:var(--lg-rim);color:var(--ink);transition:background var(--hover), transform var(--dur-micro) var(--ease);border:0}.round{border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;padding:.5625rem;display:grid}.round svg{width:100%;height:100%}@media (hover:hover){.round:hover{background:var(--lg-fill-hover)}}.round:active{transform:scale(.94)}.round[aria-pressed=true]{background:var(--lg-fill-hover)}.round.is-commit{background:var(--ink);color:var(--ground)}.round:disabled{opacity:.4;cursor:default}.round.is-commit.is-busy{opacity:1}.round.quiet{-webkit-backdrop-filter:none;width:2rem;height:2rem;box-shadow:none;color:var(--ink-2);background:0 0;padding:.4375rem}.round.quiet.is-destructive{color:var(--destructive)}.glass-pill{border-radius:999px;justify-self:end;align-items:center;height:2.25rem;padding:.1875rem;display:flex}.glass-pill button{width:1.875rem;height:1.875rem;color:inherit;transition:background var(--hover), transform var(--dur-micro) var(--ease);background:0 0;border:0;border-radius:50%;place-items:center;padding:.375rem;display:grid}.glass-pill button svg{width:100%;height:100%}@media (hover:hover){.glass-pill button:hover{background:rgb(var(--fg) / .1)}}.glass-pill button:active{transform:scale(.92)}.confirm{border:1px solid var(--hairline);background:var(--surface);width:min(22rem,100vw - 2rem);color:var(--ink);border-radius:1.5rem;padding:1.5rem}.confirm[open]{animation:rise var(--dur-turn) var(--ease) both}.confirm::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade var(--dur-quick) var(--ease) both;background:#0000008c}.confirm h2{letter-spacing:-.01em;margin:0;font-size:1.25rem}.confirm p{color:var(--ink-2);margin:.5rem 0 1.5rem;font-size:.9375rem;line-height:1.45}.confirm-actions{justify-content:flex-end;gap:.5rem;display:flex}.action-sheet{width:min(22rem,100vw - 1rem);margin:auto auto max(.5rem, env(safe-area-inset-bottom));color:var(--ink);background:0 0;border:0;padding:0;overflow:visible}.action-sheet[open]{animation:sheet-rise var(--dur-turn) var(--ease) both;gap:.5rem;display:grid}.action-sheet::backdrop{animation:fade var(--dur-quick) var(--ease) both;background:#0006}.action-group{background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:1.625rem;display:grid;overflow:hidden}.action-group button{min-height:3.5rem;color:var(--accent);background:0 0;border:0;padding:0 1rem;font-size:1.125rem}.action-group button+button{box-shadow:inset 0 1px 0 var(--separator)}.action-group button:active{background:rgb(var(--fg) / .08)}.action-group .is-destructive{color:var(--destructive)}.action-group .is-cancel{font-weight:600}@keyframes sheet-rise{0%{opacity:0;transform:translateY(1.5rem)}}@media (width>=64rem){.action-sheet{margin:auto}}.grid{grid-template-columns:repeat(auto-fill,minmax(min(9.75rem,45%),1fr));gap:1.25rem .9375rem;margin:.25rem 0 0;padding:0;list-style:none;display:grid}.grid li{animation:rise .52s var(--ease) backwards;animation-delay:calc(var(--i,0) * 28ms);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.grid li img{-webkit-user-drag:none}.tile{text-align:start;background:0 0;border:0;flex-direction:column;gap:.125rem;width:100%;padding:0;display:flex}.tile-art{aspect-ratio:1;isolation:isolate;width:100%;transition:transform .56s var(--ios-curve);border-radius:12%;flex:none;margin-bottom:.625rem;display:block;position:relative}.tile-art.is-book{aspect-ratio:2/3;border-radius:.875rem}.tile.is-active .tile-art:before{content:"";z-index:3;box-shadow:inset 0 0 0 2px var(--ink);pointer-events:none;border-radius:calc(.875rem + 3px);position:absolute;inset:-3px}.tile-art:after{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity .56s var(--ios-curve);pointer-events:none;position:absolute;inset:0;box-shadow:0 .625rem 1.5rem #00000052}.tile:active .tile-art{transition-duration:.12s;transform:scale(.96)}@media (hover:hover){.tile:hover .tile-art{transition-duration:.32s;transform:translateY(-4px)}.tile:hover .tile-art:after{opacity:1;transition-duration:.32s}.tile:hover:active .tile-art{transition-duration:.12s;transform:translateY(-4px)scale(.96)}}.artwork{border-radius:inherit;background:var(--empty-media);place-items:center;width:100%;height:100%;display:grid;overflow:hidden}.artwork img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s var(--ease);grid-area:1/1}.artwork img.is-ready{opacity:1}.artwork.is-empty span{font-family:var(--font-serif);text-transform:uppercase;color:var(--ink-2);font-size:2.5rem;font-weight:600}.tile.is-add .artwork.is-empty svg{width:28%;height:28%;color:var(--ink-2)}.series-stack{padding-top:calc(var(--depth,0) * 6px)}.series-layer{inset:calc((var(--depth,1) - var(--step,1)) * 6px) calc(var(--step,1) * 5px) calc(var(--step,1) * 6px);opacity:calc(1 - var(--step,1) * .24);border-radius:.75rem;position:absolute;overflow:hidden;box-shadow:0 2px 8px #00000059}.series-front{border-radius:inherit;width:100%;height:100%;display:block;position:relative;overflow:hidden;box-shadow:0 4px 14px #00000061}.series-badge{-webkit-backdrop-filter:blur(10px);color:#fff;font-variant-numeric:tabular-nums;background:#000000a6;border-radius:999px;padding:.1875rem .5rem;font-size:.75rem;font-weight:600;position:absolute;bottom:.5rem;right:.5rem}.tile-name,.tile-sub{white-space:nowrap;text-overflow:ellipsis;padding-inline-start:2.2%;overflow:hidden}.tile-name{font-size:1.0625rem;line-height:1.375rem}.tile-sub{color:var(--ink-2);font-size:.9375rem;line-height:1.25rem}.bone{background:linear-gradient(100deg, transparent 30%, rgb(var(--fg) / .05) 50%, transparent 70%) 0 0 / 300% 100% var(--empty-media);border-radius:.375rem;animation:1.6s linear infinite sweep;display:block}.tile-art.bone{border-radius:.875rem}.bone.line{width:80%;height:.875rem;margin-top:.25rem}.bone.line.short{width:50%}@keyframes sweep{0%{background-position:100% 0}to{background-position:-200% 0}}.empty{text-align:center;animation:rise var(--dur-settle) var(--ease) both;padding:6rem 0}.empty h2{margin:0;font-size:1.375rem}.empty p{color:var(--ink-2);margin:.5rem 0 0}.now-column{z-index:4;padding:max(.5rem, env(safe-area-inset-top)) max(1.25rem, var(--gutter)) max(1.5rem, env(safe-area-inset-bottom));background:var(--ground);isolation:isolate;opacity:0;visibility:hidden;transition:transform .52s var(--ease), opacity .3s var(--ease), visibility 0s linear .52s;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}.home.is-expanded .now-column{opacity:1;visibility:visible;transition:transform .52s var(--ease), opacity .2s var(--ease);transform:none}.player-backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.player-backdrop .wash{opacity:0;transition:opacity .42s ease-in-out;position:absolute;inset:0}.player-backdrop .wash.is-on{z-index:1;opacity:.65}.player-backdrop .wash>img{object-fit:cover;filter:blur(60px)saturate(1.15);width:calc(100% + 12rem);height:calc(100% + 12rem);position:absolute;inset:-6rem}.player-backdrop .standin{background:linear-gradient(135deg, rgb(var(--fg) / .12), rgb(var(--fg) / .02) 70%);opacity:0;transition:opacity .42s ease-in-out;position:absolute;inset:0}.player-backdrop .standin.is-on{opacity:1}.player-backdrop .fade{z-index:2;background:linear-gradient(rgb(var(--ground-rgb) / .28) 0%, rgb(var(--ground-rgb) / .14) 22%, rgb(var(--ground-rgb) / .64) 58%, rgb(var(--ground-rgb) / .92) 100%);position:absolute;inset:0}.stage-bar{grid-template-columns:1fr auto 1fr;align-items:center;min-height:2.75rem;margin-bottom:.5rem;display:grid}.stage-close-mobile{justify-self:start}.collapse{touch-action:none;background:0 0;border:0;justify-self:center;place-items:center;width:4rem;height:1.5rem;padding:0;display:grid}.collapse .grabber{background:rgb(var(--fg) / .3);border-radius:999px;width:2.25rem;height:.3125rem}.book-stage-scroll{gap:1.5rem;padding-bottom:1.5rem;display:grid}.book-hero{text-align:center;flex-direction:column;align-items:center;padding-top:.25rem;display:flex}.book-hero-cover{aspect-ratio:2/3;border-radius:1rem;width:min(12.5rem,52vw);overflow:hidden;box-shadow:0 1rem 2.5rem #0000006b}.book-hero-title{letter-spacing:-.015em;margin:1.25rem 0 0;font-size:1.4375rem;font-weight:700;line-height:1.25}.book-hero-author{color:var(--ink-2);margin:.375rem 0 0;font-size:1.0625rem}.book-hero-meta{color:var(--muted);margin:.25rem 0 0;font-size:.8125rem}.book-hero-actions{flex-wrap:wrap;justify-content:center;gap:.625rem;margin-top:1.25rem;display:flex}.book-read-btn{min-width:8.25rem}.stage-section{gap:.375rem;display:grid}.stage-prose-card{padding:.875rem 1rem}.stage-prose{font-family:var(--font-serif);white-space:pre-wrap;margin:0;font-size:1rem;line-height:1.55}.chapters-entry{padding-block:.75rem}.chapters-entry-copy{flex:1;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.chapters-entry-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;overflow:hidden}.side{--sheet-r:2.125rem;z-index:6;height:calc(100svh - max(.75rem, env(safe-area-inset-top) + .625rem) - var(--index,0) * .625rem);border-top:1px solid var(--hairline);border-radius:var(--sheet-r) var(--sheet-r) 0 0;background:var(--sheet-bg);transform-origin:50% 0;visibility:hidden;transition:transform var(--dur-quick) var(--ease), filter var(--dur-quick) var(--ease), visibility 0s linear var(--dur-quick);grid-template-rows:minmax(0,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(105%);box-shadow:0 -.5rem 2rem #00000059}.side.is-open{transform:translateY(var(--pull,0px));visibility:visible;transition:transform var(--dur-turn) var(--ease), filter var(--dur-turn) var(--ease)}.side.is-open.is-under{filter:brightness(.6);transform:translateY(-.5rem)scale(.94)}.side.is-open.is-deep{visibility:hidden}.side-grabber{background:rgb(var(--fg) / .3);border-radius:999px;width:2.25rem;height:.3125rem;position:absolute;top:.375rem;left:50%;transform:translate(-50%)}.side-bar{z-index:2;touch-action:none;cursor:grab;height:var(--bar-h);grid-template-columns:1fr auto 1fr;align-items:center;padding:0 .875rem;display:grid;position:absolute;inset:0 0 auto}.side-lead{justify-self:start}.side-bar h2{white-space:nowrap;text-overflow:ellipsis;max-width:15rem;margin:0;font-size:1.0625rem;font-weight:600;overflow:hidden}.side-bar>.round,.side-bar>.glass-pill{justify-self:end}.form{--form-x:1rem;padding:calc(var(--bar-h) + .75rem) var(--form-x) max(1.5rem, env(safe-area-inset-bottom));overscroll-behavior:contain;grid-auto-rows:max-content;align-content:start;gap:1.5rem;display:grid;overflow-y:auto}.form>*{min-width:0}.card{background:var(--cell-bg);border-radius:1.5rem;overflow:hidden}.cell{justify-content:space-between;align-items:center;gap:.75rem;min-height:2.875rem;padding:.4375rem 1rem;display:flex}.cell+.cell{box-shadow:inset 0 1px 0 var(--separator)}.cell-name{white-space:nowrap;flex:none;font-size:1.0625rem}.cell-value{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;display:block;overflow:hidden}.link-row{width:100%;color:var(--ink);text-align:start;background:0 0;border:0;text-decoration:none}.link-row .cell-value{margin-left:auto}.banner:active,.link-row:active{background:rgb(var(--fg) / .06)}.chevron{width:.4375rem;height:.75rem;color:var(--faint);flex:none;display:inline-grid}.chevron svg{width:100%;height:100%}.check-mark{width:1.125rem;height:1.125rem;color:var(--accent);display:inline-grid}.check-mark svg{width:100%;height:100%}.picker select{max-width:58%;color:var(--muted);font:inherit;text-align:end;appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 18'%3E%3Cpath d='M2.5 6.5 6 3l3.5 3.5M2.5 11.5 6 15l3.5-3.5' fill='none' stroke='%23999' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 100%/.6rem no-repeat;border:0;padding:.25rem 1.375rem .25rem .25rem;font-size:1.0625rem}.section-head{color:var(--muted);margin:0 0 .375rem 1rem;font-size:.8125rem;font-weight:500}.section-head.split{justify-content:space-between;margin-right:1rem;display:flex}.head-value{color:var(--ink);font-variant-numeric:tabular-nums}.section-foot{color:var(--muted);margin:.375rem 1rem 0;font-size:.8125rem;line-height:1.4}.segmented{background:var(--track);border-radius:.75rem;grid-auto-columns:1fr;grid-auto-flow:column;gap:.25rem;width:100%;padding:.1875rem;display:grid}.segmented button{color:var(--ink-2);transition:background var(--dur-micro) var(--ease), color var(--dur-micro) var(--ease);background:0 0;border:0;border-radius:.5625rem;padding:.375rem .625rem;font-size:.875rem;font-weight:500}.segmented button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #00000038}.stepper{background:var(--track);border-radius:.5rem;display:inline-flex;overflow:hidden}.stepper button{background:0 0;border:0;width:2.25rem;height:1.875rem;font-size:1.125rem}.stepper button+button{box-shadow:inset 1px 0 0 var(--separator)}.stepper button:disabled{opacity:.35}.switch{background:var(--track);appearance:none;cursor:pointer;width:3.1875rem;height:1.9375rem;transition:background .25s var(--ease);border-radius:999px;flex:none;margin:0;position:relative}.switch:after{content:"";width:1.6875rem;height:1.6875rem;transition:transform .3s var(--spring);background:#fff;border-radius:50%;position:absolute;top:.125rem;left:.125rem;box-shadow:0 .1875rem .5rem #00000040}.switch:checked{background:var(--switch-on)}.switch:checked:after{transform:translate(1.25rem)}.field{cursor:text;align-items:stretch;gap:.125rem;padding-block:.5rem;display:grid}.field-caption{color:var(--muted);font-size:.75rem}.field input,.textarea-cell textarea{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;padding:.1875rem 0;font-size:1.0625rem}.textarea-cell{align-items:stretch;padding-block:.625rem}.textarea-cell textarea{resize:vertical;line-height:1.45}.field input::placeholder,.textarea-cell textarea::placeholder{color:var(--faint)}.search-box{background:var(--cell-bg);color:var(--muted);border-radius:.875rem;align-items:center;gap:.5rem;padding:.5rem .875rem;display:flex}.search-box svg{flex:none;width:1.125rem;height:1.125rem}.search-box input{color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:1rem}.year-chips{flex-wrap:wrap;gap:.5rem;display:flex}.art-slot{justify-items:center;gap:.25rem;padding-top:.25rem;display:grid}.art-pick{background:0 0;border:0;justify-items:center;gap:.625rem;padding:0;display:grid}.art-box{aspect-ratio:1;background:var(--empty-media);width:7.5rem;color:var(--ink-2);transition:transform var(--dur-micro) var(--ease);border-radius:15%;place-items:center;display:grid;overflow:hidden}.art-box.is-book{aspect-ratio:2/3;border-radius:.875rem;width:7.25rem}.art-pick:active .art-box{transform:scale(.96)}.art-box img{object-fit:cover;width:100%;height:100%}.art-box svg{width:30%;height:30%}.text-action{color:var(--accent);background:0 0;border:0;padding:.25rem .5rem;font-size:1rem}.destructive-row{width:100%;color:var(--destructive);background:0 0;border:0;justify-content:center;font-size:1.0625rem}.cell.new-clip-row{width:100%;color:var(--accent);text-align:start;background:0 0;border:0;justify-content:flex-start;font-size:1rem}.muted-empty{color:var(--muted);font-size:.9375rem}.side-empty{text-align:center;animation:rise var(--dur-turn) var(--ease) both;padding:3rem 1rem}.side-empty.is-full{flex-direction:column;justify-content:center;align-items:center;min-height:55svh;padding:2rem 1.5rem;display:flex}.side-empty h3{margin:0;font-size:1.125rem}.side-empty p{color:var(--muted);margin:.375rem 0 0;font-size:.9375rem}.side-empty-mark{width:3rem;height:3rem;color:var(--muted);margin-bottom:.875rem}.side-empty-mark svg{width:100%;height:100%}.side-empty.is-full .pill{margin-top:1.25rem}.chapter-row,.highlight-row{align-items:flex-start;padding-block:.625rem}.chapter-row-main,.highlight-body-btn{text-align:start;background:0 0;border:0;flex:1;gap:.25rem;min-width:0;padding:0;display:grid}.chapter-row-title{font-size:1.0625rem;font-weight:500}.chapter-row-sub,.highlight-page{color:var(--muted);font-size:.8125rem}.highlight-quote{font-family:var(--font-serif);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.96875rem;line-height:1.45;display:-webkit-box;overflow:hidden}.chapter-row-actions,.highlight-move{align-items:center;gap:.125rem;display:flex}.trash-row{justify-content:flex-start;gap:.875rem;padding-block:.625rem}.trash-thumb{aspect-ratio:2/3;border-radius:.375rem;flex:none;width:2.5rem;overflow:hidden}.trash-copy{gap:.125rem;min-width:0;display:grid}.trash-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:500;overflow:hidden}.trash-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.scanner-viewport{aspect-ratio:3/4;width:100%;box-shadow:inset 0 0 0 1px var(--hairline);background:#050505;border-radius:1.375rem;position:relative;overflow:hidden}.scanner-video{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .28s var(--ease)}.scanner-video.is-ready{opacity:1}.scanner-hud{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scanner-corners{pointer-events:none;position:absolute;inset:1rem}.scanner-corners i{border-style:solid;border-color:#ffffff8c;width:1.375rem;height:1.375rem;position:absolute}.scanner-corners i:first-child{border-width:2px 0 0 2px;border-top-left-radius:.5rem;top:0;left:0}.scanner-corners i:nth-child(2){border-width:2px 2px 0 0;border-top-right-radius:.5rem;top:0;right:0}.scanner-corners i:nth-child(3){border-width:0 0 2px 2px;border-bottom-left-radius:.5rem;bottom:0;left:0}.scanner-corners i:nth-child(4){border-width:0 2px 2px 0;border-bottom-right-radius:.5rem;bottom:0;right:0}.scanner-camera-fallback{text-align:center;color:#ffffffb8;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;font-size:.875rem;display:flex;position:absolute;inset:0}.scanner-status-pill{-webkit-backdrop-filter:blur(12px);color:#f5f5f5;text-align:center;background:#0d0d0dc7;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;line-height:1.25;display:flex;position:absolute;bottom:.75rem;left:.75rem;right:.75rem}.scanner-status-pill.is-range{color:#000;background:#ff9f0ae6;font-weight:600}.scanner-pulse{background:#30d158;border-radius:50%;width:.5rem;height:.5rem;animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1.15)}}.scanner-alert-body{flex-direction:column;align-items:flex-start;padding-block:.875rem}.scanner-alert-body p{color:var(--ink-2);margin:0;font-size:.875rem;line-height:1.4}.scanner-warning{color:#ffd60a;font-size:.875rem;box-shadow:inset 0 0 0 1px #ff9f0a73}.scanner-actions{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.scanner-finish-btn{grid-column:1/-1}.scanner-chapter-card{margin-bottom:1rem}.scanner-chapter-head{grid-template-columns:1fr auto;align-items:center;display:grid}.scanner-chapter-inputs{gap:.25rem;display:grid}.scanner-pages-input{color:var(--muted)!important;font-size:.875rem!important}.scanner-hl-edit{align-items:flex-start;padding-block:.625rem}.scanner-hl-fields{flex:1;gap:.375rem;min-width:0;display:grid}.scanner-hl-fields textarea{width:100%;color:var(--ink);font-family:var(--font-serif);resize:vertical;background:0 0;border:0;outline:none;font-size:.96875rem;line-height:1.45}.scanner-hl-fields input{width:100%;color:var(--muted);font:inherit;background:0 0;border:0;outline:none;font-size:.8125rem}.scanner-add-ch{width:100%}.reader{z-index:25;-webkit-user-select:none;user-select:none;animation:fade .24s var(--ease) both;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.reader-bar{z-index:5;padding:max(.625rem, env(safe-area-inset-top)) var(--gutter) .625rem;opacity:0;pointer-events:none;transition:opacity .22s var(--ease), transform .26s var(--ease);grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;display:grid;position:absolute;top:0;left:0;right:0;transform:translateY(-.75rem)}.reader-bar.is-shown{opacity:1;pointer-events:auto;transform:none}.reader-bar-title{white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:.96875rem;font-weight:600;overflow:hidden}.reader-bar-actions{align-items:center;gap:.5rem;display:flex}.reader.is-light .reader-btn{color:var(--reader-text);background:#00000014;box-shadow:inset 0 0 0 .5px #0000001f}.reader-stage{touch-action:pan-y;flex:1;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.reader-loading{place-items:center;display:grid}.reader-book-frame{max-width:100%;height:100%;position:relative;overflow:hidden}.reader-page-inner{padding:max(4.25rem, calc(env(safe-area-inset-top) + 3.5rem)) clamp(1.375rem, 7.5%, 2.5rem) max(1.25rem, env(safe-area-inset-bottom));background:var(--reader-page);flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.reader-page-inner.is-mirrored{opacity:.24;filter:blur(.35px)}.reader-page-body{flex:1;min-height:0;overflow:hidden}.reader-cover-frame{place-items:center;width:100%;height:100%;display:grid}.reader-cover-frame img{object-fit:contain;border-radius:.75rem;max-width:86%;max-height:86%;box-shadow:0 1rem 2.5rem #00000059}.reader-title-card{flex-direction:column;justify-content:center;gap:.625rem;height:100%;display:flex}.reader-title-card h2{margin:0;line-height:1.2}.reader-title-author,.reader-title-meta{margin:0}.reader-flow{flex-direction:column;display:flex}.reader-line{white-space:pre}.reader-page-foot{text-align:center;font-variant-numeric:tabular-nums;padding-top:.5rem;font-size:.75rem}.reader-curl-single,.reader-curl-stack,.reader-curl-under,.reader-curl-front,.reader-curl-flap{position:absolute;inset:0}.reader-curl-stack.is-settling .reader-curl-front,.reader-curl-stack.is-settling .reader-curl-flap,.reader-curl-stack.is-settling .reader-curl-cast-shadow{transition:clip-path .41s var(--ios-curve), left .41s var(--ios-curve)}.reader-curl-cast-shadow{pointer-events:none;background:linear-gradient(90deg,#0000007a,#00000029 45%,#0000);width:3.5rem;position:absolute;top:-10%;bottom:-10%;transform:translate(-35%)rotate(5deg)}.reader-curl-flap{z-index:3;background:color-mix(in srgb, var(--reader-page) 88%, var(--reader-text));overflow:hidden;box-shadow:-8px 0 24px #00000073}.reader-curl-flap-mirror{transform-origin:50%;position:absolute;inset:0}.reader-curl-flap-cylinder{pointer-events:none;background:linear-gradient(100deg,#00000057 0%,#ffffff14 38%,#00000038 88%,#0000006b 100%);position:absolute;inset:0}.reader-slide-track{width:100%;height:100%;transition:transform .36s var(--ios-curve);display:flex}.reader-slide-track.is-dragging{transition:none}.reader-slide-cell{flex:0 0 100%;height:100%;position:relative}.reader-scroll-view{width:100%;height:100%;padding:max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem)) var(--gutter) max(3rem, env(safe-area-inset-bottom));-webkit-user-select:text;user-select:text;overflow-y:auto}.reader-scroll-measure{gap:2.5rem;max-width:38rem;margin:0 auto;display:grid}.reader-scroll-section.is-cover{place-items:center;display:grid}.reader-scroll-section.is-cover img{border-radius:.75rem;max-width:min(18rem,75vw);box-shadow:0 .75rem 2rem #00000052}.reader-scroll-section h2,.reader-scroll-section h3{margin:0 0 .375rem}.reader-scroll-sub{margin:0 0 1.25rem}.reader-scroll-prose{margin:0 0 1rem}.reader-scroll-quote{margin:0 0 1.375rem;padding:0}.reader-scroll-quote p{margin:0 0 .25rem}.reader-scroll-quote footer{text-align:end;font-style:italic}.reader-sheet{width:min(28rem,100vw);color:var(--ink);left:50%;right:auto;transform:translate(-50%,105%)}.reader-sheet.is-open{transform:translate(-50%)}.reader-sheet-head{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.reader-sheet-head h2{margin:0;font-size:1.125rem}.reader-sheet-body{gap:1.25rem;display:grid}.text-scale-row{justify-content:space-between;padding-block:.625rem}.scale-step{background:var(--track);width:2.5rem;height:2.25rem;font-family:var(--font-serif);border:0;border-radius:.5rem;font-weight:600}.scale-step.small{font-size:.875rem}.scale-step.large{font-size:1.3125rem}.scale-step:disabled{opacity:.35}.scale-dots{align-items:center;gap:.625rem;display:flex}.scale-dot{background:var(--track);width:.625rem;height:.625rem;transition:transform var(--dur-micro) var(--ease);border:0;border-radius:50%;padding:0}.scale-dot.is-active{background:var(--ink);transform:scale(1.35)}.theme-swatches{grid-template-columns:repeat(4,1fr);gap:.625rem;display:grid}.theme-swatch{border:2px solid var(--hairline);transition:transform var(--dur-micro) var(--ease);border-radius:1rem;justify-items:center;gap:.25rem;padding:.75rem .375rem;display:grid}.theme-swatch.is-active{border-color:var(--accent)}.swatch-aa{font-family:var(--font-serif);font-size:1.25rem;font-weight:600}.swatch-name{opacity:.82;font-size:.75rem}.toc-row.is-active .toc-label{font-weight:600}.toc-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.toc-page{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;font-size:.875rem;display:inline-flex}.toc-page svg{width:1rem;height:1rem;color:var(--accent)}@media (width>=64rem){.home{--pad:clamp(1.5rem, 2.4vw, 2.5rem);--stage-w:clamp(24rem, min(30vw, 56svh), 30rem);--tools-w:clamp(23rem, 27vw, 28rem);grid-template-columns:minmax(0,1fr) 0;height:100svh;display:grid;overflow:hidden}.home.is-staged{grid-template-columns:minmax(0, 1fr) var(--stage-w)}.home.is-staged.is-tooled{grid-template-columns:minmax(0, 1fr) var(--stage-w) var(--tools-w)}.library{height:100svh;padding:0 var(--pad) 3rem;grid-column:1;overflow-y:auto}.bar{margin:0 calc(var(--pad) * -1);padding:0 1rem 0 var(--pad)}.grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.stage{border-left:1px solid var(--hairline);background:var(--stage);view-transition-name:stage;grid-column:2;height:100svh;position:relative;overflow:hidden}.home:not(.is-staged) .stage{visibility:hidden}.tools{border-left:1px solid var(--hairline);background:var(--ground);view-transition-name:tools;grid-column:3;height:100svh;display:block;position:relative;overflow:hidden}.home:not(.is-tooled) .tools{display:none}.stage>.side,.tools>.side{box-shadow:none}.tools>.side.is-base{visibility:visible;background:0 0;border-top:0;border-radius:0;height:100%;transform:none}.tools>.side.is-base.is-under{transform:translateY(-.5rem)scale(.94)}.tools>.side.is-base .side-grabber{display:none}.now-column{z-index:1;background:var(--ground);opacity:1;visibility:visible;transform-origin:50% 0;transition:transform var(--dur-turn) var(--ease), filter var(--dur-turn) var(--ease), border-radius var(--dur-turn) var(--ease);padding:1.5rem;position:absolute;inset:0;overflow-y:auto;transform:none}.player-backdrop{position:absolute}.home.side-open .now-column{filter:brightness(.6);border-radius:2.125rem 2.125rem 0 0;transform:translateY(.5rem)scale(.94)}.home:not(.has-current) .now-column{visibility:hidden}.stage-close-mobile,.collapse{display:none}.side{z-index:3;height:calc(100% - .75rem - var(--index,0) * .625rem);border-top:1px solid var(--hairline);position:absolute}.form{--form-x:1.25rem}}::view-transition-group(*){animation-duration:.56s;animation-timing-function:var(--ios-curve)}::view-transition-old(stage){opacity:0;animation:none}::view-transition-new(stage){object-fit:none;object-position:left top;width:auto;height:100%;animation:none}::view-transition-group(stage){z-index:2;overflow:hidden}::view-transition-group(tools){z-index:1}::view-transition-old(stage):only-child{animation:slide-out .46s var(--ios-curve) both;opacity:1}::view-transition-new(stage):only-child{animation:slide-in .56s var(--ios-curve) both}::view-transition-old(tools):only-child{animation:.24s ease-out both fade-out}::view-transition-new(tools):only-child{animation:none}@keyframes fade-out{to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(3rem)}}@keyframes slide-out{to{opacity:0;transform:translate(3rem)}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1.125rem;height:1.125rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.toast-slot{left:50%;bottom:calc(2rem + env(safe-area-inset-bottom));z-index:30;pointer-events:none;position:fixed;transform:translate(-50%)}.toast{border:1px solid var(--hairline);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(12px);white-space:nowrap;pointer-events:auto;animation:rise var(--dur-turn) var(--ease) both;border-radius:999px;align-items:center;gap:.75rem;margin:0;padding:.75rem 1.125rem;font-size:.9375rem;display:inline-flex}.toast-action{color:var(--accent);background:0 0;border:0;padding:0;font-weight:600}.avatar-disc{background:var(--empty-media);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-size:1.375rem;font-weight:600;display:grid;overflow:hidden}.avatar-disc img{object-fit:cover;width:100%;height:100%}.banner{text-align:start;background:0 0;border:0;justify-content:flex-start;gap:.5rem;width:100%;padding-block:.75rem}.banner-copy{flex:1;min-width:0;margin-left:.25rem;display:grid}.banner-name{white-space:nowrap;text-overflow:ellipsis;font-size:1.0625rem;font-weight:600;overflow:hidden}.banner-legend{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.value-bone{width:6rem;margin:0}.photo-slot{place-items:center;display:grid;position:relative}.photo-slot .spinner{position:absolute}.photo-slot.is-busy .avatar-disc{opacity:.4}.dialog-field{border:1px solid var(--hairline);background:var(--cell-bg);width:100%;color:var(--ink);font:inherit;border-radius:.75rem;outline:none;margin:1rem 0 1.5rem;padding:.625rem .875rem;font-size:1.0625rem}.dialog-field:focus{border-color:var(--ink-3)}.progress-overlay{z-index:35;color:var(--ink);background:#0006;place-items:center;display:grid;position:fixed;inset:0}.progress-overlay .spinner{width:1.75rem;height:1.75rem}.trophy-summary{--ring-size:4.5rem;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:.75rem;display:grid;container-type:inline-size}.figure{color:var(--muted);justify-items:center;gap:.125rem;font-size:.8125rem;display:grid}.figure strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:600;line-height:1.75rem}.figure-bone{width:1.625rem;height:1.5rem;margin-bottom:.25rem}.ring,.ring-bone{width:var(--ring-size);height:var(--ring-size)}.ring{place-items:center;display:grid;position:relative}.ring svg{width:100%;height:100%;position:absolute;inset:0}.ring-label{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.ring-bone{border-radius:50%}.trophy-row{justify-content:flex-start;min-height:3.75rem;padding-block:.5rem}.trophy-glyph{flex:none}.trophy-copy{flex:1;gap:.0625rem;min-width:0;display:grid}.trophy-title{font-size:1.0625rem}.trophy-line{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;line-height:1.125rem;overflow:hidden}.sub-scrim{z-index:6;opacity:0;pointer-events:none;transition:opacity var(--dur-quick) var(--ease);background:#00000073;position:absolute;inset:0}.sub-scrim.is-open{opacity:1;pointer-events:auto}.sub-sheet{z-index:7;max-height:calc(100% - 3rem);padding:2.25rem 1.5rem max(2rem, env(safe-area-inset-bottom));border-top:1px solid var(--hairline);background:var(--surface);visibility:hidden;transition:transform var(--dur-quick) var(--ease), visibility 0s linear var(--dur-quick);border-radius:2.125rem 2.125rem 0 0;outline:none;position:absolute;inset:auto 0 0;overflow-y:auto;transform:translateY(105%)}.sub-sheet.is-open{transform:translateY(var(--pull,0px));visibility:visible;transition:transform var(--dur-quick) var(--ease)}.sub-grabber{background:rgb(var(--fg) / .3);border-radius:999px;width:2.25rem;height:.3125rem;position:absolute;top:.375rem;left:50%;transform:translate(-50%)}.trophy-detail{text-align:center}.trophy-detail h2{margin-top:1rem;font-size:1.375rem}.trophy-detail p{margin:.5rem 0 0}.trophy-detail .trophy-caption{color:var(--muted);font-size:.8125rem;font-weight:500}.trophy-disc{border-radius:50%;place-items:center;width:5.5rem;height:5.5rem;display:inline-grid}.detail-close{position:absolute;top:1rem;right:1rem}.trophy-slot{top:max(.75rem, env(safe-area-inset-top));z-index:35;width:min(24rem,100vw - 1.5rem);position:fixed;left:50%;transform:translate(-50%)}.trophy-banner{border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(24px)saturate(1.4);width:100%;color:var(--ink);text-align:start;cursor:pointer;animation:drop var(--dur-turn) var(--spring) both;border-radius:1.375rem;align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex;position:relative;overflow:hidden}.trophy-banner.is-leaving{animation:lift .22s var(--ease) both}.trophy-banner.is-platinum:before{z-index:-1;background:linear-gradient(105deg, transparent 35%, rgb(var(--fg) / .14) 50%, transparent 65%);content:"";animation:shine 1.6s .26s var(--ease) both;background-size:300% 100%;position:absolute;inset:0}.trophy-banner-copy{gap:.125rem;min-width:0;display:grid}.trophy-banner .eyebrow,.trophy-banner .desc{color:var(--muted);font-size:.8125rem;line-height:1.125rem}.trophy-banner .eyebrow{font-weight:500}.trophy-banner .title{font-size:.9375rem;font-weight:600;line-height:1.25rem}@keyframes drop{0%{opacity:0;transform:translateY(-120%)}}@keyframes lift{to{opacity:0;transform:translateY(-120%)}}@keyframes shine{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
