@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-ui:"Inter Variable", system-ui, -apple-system, sans-serif;--fs-0:.75rem;--fs-1:.8125rem;--fs-2:.9375rem;--fs-3:1.1875rem;--fs-4:1.5rem;--fs-5:1.875rem;--fs-6:2.375rem;--radius-s:4px;--radius-m:8px;--radius-l:14px;--ease:cubic-bezier(.2, 0, 0, 1);--dur:.18s;--ok:#2e7d4f;--warn:#b7791f;--sidebar-w:52px;--cover-col:clamp(140px, 19vw, 200px);--tabbar-h:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--surface:#fafaf7;--surface-raised:#fff;--ink:#1a1a1c;--ink-muted:#5c5c60;--line:#e4e4df;--accent:#d9412b;--accent-ink:#fff;--reader-backdrop:#e9e9e4;--wall-parchment:#e8e2d4;--wall-parchment-ink:#6b5d43;--wall-slate:#37424a;--wall-slate-ink:#e9e9e4;--wall-gold:#f4c95d;--danger:var(--accent);--shadow-cover:0 1px 2px #1a1a1c24, 0 6px 18px #1a1a1c1a;--shadow-cover-lift:0 2px 4px #1a1a1c29, 0 14px 32px #1a1a1c29;--shadow-pop:0 4px 24px #1a1a1c2e}@media (prefers-contrast:more){:root{--line:color-mix(in srgb, var(--ink) 42%, var(--surface));--ink-muted:color-mix(in srgb, var(--ink) 82%, var(--surface))}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--surface);min-height:100%;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-2);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}#root{min-height:100dvh}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.015em;text-wrap:balance;margin:0 0 .5em;font-weight:580;line-height:1.12}h1{font-size:var(--fs-5)}h2{font-size:var(--fs-4)}h3{font-size:var(--fs-3)}p{margin:0 0 1em}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}img{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-s)}@media (prefers-contrast:more){:focus-visible{outline-width:3px}}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-raised);min-height:38px;color:var(--ink);cursor:pointer;font-size:var(--fs-2);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);justify-content:center;align-items:center;gap:.5ch;padding:.375rem .875rem;display:inline-flex}.btn:hover{border-color:var(--ink-muted)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:hover{border-color:var(--accent);filter:brightness(1.06)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--line))}.btn-accent{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.btn-accent:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface-raised))}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:color-mix(in srgb, var(--ink) 8%, transparent);border-color:#0000}.btn-small{min-height:30px;font-size:var(--fs-1);border-radius:var(--radius-s);padding:.125rem .625rem}.field{margin-bottom:1rem;display:block}.field>span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:.25rem;font-size:10.5px;font-weight:600;display:block}.input,.select,.textarea{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-raised);width:100%;min-height:40px;color:var(--ink);padding:.4rem .65rem}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c5c60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;background-size:15px;padding-right:2.1rem}.textarea{resize:vertical}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline-offset:0}.card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-l);padding:1.25rem}.hairline{border:0;border-top:1px solid var(--line);margin:1.5rem 0}.badge{border:1px solid var(--line);letter-spacing:.02em;color:var(--ink-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:.05rem .5rem;font-size:11px;font-weight:650;display:inline-flex}.badge-accent{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.badge-ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, var(--line))}.badge-warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, var(--line))}.code-chip{border:1px solid var(--line);border-radius:var(--radius-s);background:color-mix(in srgb, var(--ink) 4%, var(--surface));color:var(--ink);white-space:nowrap;align-items:center;padding:.05rem .45rem;font-family:ui-monospace,monospace;font-size:11px;display:inline-flex}.mono{font-family:ui-monospace,monospace;font-size:var(--fs-1);color:var(--ink-muted)}.cell-strong{font-weight:600}.cell-muted{color:var(--ink-muted)}td.cell-clip{text-overflow:ellipsis;max-width:320px;overflow:hidden}.badge-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--line))}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-1)}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:.4rem .75rem;font-size:11px;font-weight:700}table.data td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:.45rem .75rem}table.data td.wrap{white-space:normal}table.data tbody tr:hover{background:color-mix(in srgb, var(--ink) 4%, transparent)}.skeleton{background:color-mix(in srgb, var(--ink) 8%, var(--surface));border-radius:var(--radius-s);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface-raised) 65%, transparent), transparent);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.toast-stack{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + .75rem);z-index:90;pointer-events:none;flex-direction:column;gap:.5rem;width:min(92vw,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=1024px){.toast-stack{bottom:1.25rem}}.toast{pointer-events:auto;background:var(--surface-raised);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-m);box-shadow:var(--shadow-pop);font-size:var(--fs-1);animation:toast-in var(--dur) var(--ease);align-items:baseline;gap:.75rem;padding:.625rem .875rem;display:flex}.toast-error{border-left-color:var(--danger)}.toast-success{border-left-color:var(--ok)}.toast button{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 .25rem}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{flex-direction:column;min-height:100dvh;display:flex}.shell-main{min-width:0;padding:1.25rem clamp(1rem, 3vw, 2.5rem) calc(var(--tabbar-h) + var(--safe-bottom) + 2rem);flex:1}.wordmark{font-family:var(--font-display);font-weight:640;font-size:var(--fs-4);letter-spacing:-.02em;color:var(--ink)}.wordmark em{color:var(--accent);font-style:normal}.topbar{z-index:40;padding:calc(.5rem + var(--safe-top)) 1rem .5rem calc(1rem + var(--safe-left));padding-right:calc(1rem + var(--safe-right));background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.tabbar{z-index:40;background:color-mix(in srgb, var(--surface-raised) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:var(--tabbar-h);font-size:var(--fs-0);color:var(--ink-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-weight:600;display:flex}.tabbar a svg{width:22px;height:22px}.tabbar a[aria-current=page]{color:var(--accent)}.sidebar{display:none}@media (width>=1024px){.shell{flex-direction:row}.tabbar,.topbar{display:none}.shell-main{padding-bottom:2.5rem}.sidebar{width:var(--sidebar-w);height:100dvh;padding:.875rem 0 .75rem var(--safe-left);background:var(--surface-raised);border-right:1px solid var(--line);z-index:45;flex-direction:column;flex-shrink:0;align-items:center;display:flex;position:sticky;top:0}.rail-masthead{flex-direction:column;align-items:center;margin-bottom:.875rem;display:flex}.rail-masthead .wordmark{writing-mode:vertical-rl;letter-spacing:.02em;border-bottom:3px double var(--ink);padding-bottom:.6rem;font-size:1.0625rem;line-height:1}.rail-date{text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;margin-top:.55rem;font-size:8.5px;font-weight:700;display:flex}.rail-date b{font-family:var(--font-display);font-weight:620;font-size:var(--fs-2);letter-spacing:0;color:var(--ink);line-height:1.15}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav a{border-radius:var(--radius-m);width:38px;height:38px;color:var(--ink-muted);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);place-items:center;display:grid;position:relative}.sidebar nav a svg{width:18px;height:18px}.sidebar nav a:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.sidebar nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar nav a[aria-current=page]{color:var(--accent-ink);background:var(--accent);box-shadow:0 2px 8px #d9412b59}.sidebar nav a .nav-label{background:var(--ink);color:var(--surface);font-size:var(--fs-0);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease), translate var(--dur) var(--ease);z-index:60;border-radius:6px;padding:.25rem .55rem;font-weight:600;position:absolute;top:50%;left:calc(100% + 12px);translate:-4px -50%}.sidebar nav a:hover .nav-label,.sidebar nav a:focus-visible .nav-label{opacity:1;transition-delay:.1s;translate:0 -50%}.sidebar .nav-section{border-top:1px solid var(--line);color:#0000;width:26px;margin:.7rem 0 .45rem;padding:0;font-size:0;line-height:0}.sidebar-footer{margin-top:auto;padding-top:.5rem}.sidebar .user-avatar{width:30px;height:30px}.sidebar .user-menu-compact .user-pop{min-width:190px;inset:auto auto 0 calc(100% + 10px)}.sidebar .bell-pop{inset:auto auto 0 calc(100% + 10px)}.sidebar-footer{flex-direction:column;align-items:center;gap:.15rem;display:flex}}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-top:1.125rem;margin-bottom:.2rem;padding:0 .625rem;font-size:10.5px;font-weight:700}.user-menu{position:relative}.user-chip{border-radius:var(--radius-m);width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;transition:background var(--dur) var(--ease);background:0 0;border:0;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.user-chip:hover,.user-chip[aria-expanded=true]{background:color-mix(in srgb, var(--ink) 6%, transparent)}.user-avatar{background:var(--ink);width:26px;height:26px;color:var(--surface);font-family:var(--font-display);font-size:var(--fs-1);border-radius:50%;flex-shrink:0;place-items:center;font-weight:640;display:grid}.user-chip-text{flex-direction:column;flex:1;min-width:0;display:flex}.user-chip-name{font-size:var(--fs-1);white-space:nowrap;text-overflow:ellipsis;font-weight:640;overflow:hidden}.user-chip-role{font-size:var(--fs-0);color:var(--ink-muted);text-transform:capitalize}.user-chip-caret{width:16px;height:16px;color:var(--ink-muted);transition:transform var(--dur) var(--ease);flex-shrink:0}.user-chip[aria-expanded=true] .user-chip-caret{transform:rotate(180deg)}.user-menu-compact .user-chip{border-radius:50%;width:auto;padding:.25rem}.user-pop{z-index:60;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-pop);padding:.375rem;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.user-menu-compact .user-pop{min-width:180px;inset:calc(100% + 8px) 0 auto auto}.user-pop-head{border-bottom:1px solid var(--line);flex-direction:column;margin-bottom:.375rem;padding:.5rem .625rem .625rem;display:flex}.user-pop-name{font-size:var(--fs-1);font-weight:640}.user-pop-role{font-size:var(--fs-0);color:var(--ink-muted);text-transform:capitalize}.user-pop-item{border-radius:var(--radius-s);width:100%;font:inherit;font-size:var(--fs-1);color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;padding:.5rem .625rem;font-weight:550;display:flex}.user-pop-item svg{width:17px;height:17px;color:var(--ink-muted)}.user-pop-item:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.user-pop-item:hover svg{color:var(--accent)}.shelf{margin-bottom:2.5rem}.shelf-head{align-items:baseline;gap:.75rem;margin-bottom:.875rem;display:flex}.shelf-head:after{content:"";border-top:1px solid var(--line);flex:1;align-self:center}.shelf-head h2{font-size:var(--fs-3);margin:0;font-weight:640}.shelf-head .count{font-size:var(--fs-1);color:var(--ink-muted)}.rail{grid-auto-flow:column;grid-auto-columns:var(--cover-col);scroll-snap-type:x proximity;gap:1rem;margin:-4px;padding:4px 4px 14px;display:grid;overflow-x:auto}.rail>*{scroll-snap-align:start}.cover-grid{grid-template-columns:repeat(auto-fill, var(--cover-col));gap:1.25rem 1rem;padding:4px;display:grid}.cover-card{flex-direction:column;display:flex;position:relative}.cover-frame{aspect-ratio:3/4;border-radius:var(--radius-s);border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 6%, var(--surface));box-shadow:var(--shadow-cover);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);position:relative;overflow:hidden}.cover-card:hover .cover-frame,.cover-card:focus-visible .cover-frame{box-shadow:var(--shadow-cover-lift);transform:translateY(-3px)}.cover-frame img{object-fit:cover;object-position:center top;opacity:1;width:100%;height:100%;transition:opacity var(--dur) var(--ease);position:absolute;inset:0}.cover-frame img[data-loading=true]{opacity:0}.cover-frame .cover-skeleton{border-radius:0;position:absolute;inset:0}.cover-placeholder{font-family:var(--font-display);font-size:var(--fs-4);color:var(--ink-muted);background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%), color-mix(in srgb, var(--ink) 8%, var(--surface));justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.cover-meta{flex-direction:column;flex:1;min-width:0;padding:.5rem 2px 0;display:flex}.cover-title{font-weight:600;font-size:var(--fs-1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cover-sub{font-size:var(--fs-0);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pip{background:var(--accent);min-width:20px;height:20px;color:var(--accent-ink);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:8px;right:8px;box-shadow:0 1px 3px #0000004d}.pip-dot{min-width:10px;height:10px;padding:0}.progress-strip{background:color-mix(in srgb, var(--ink) 25%, transparent);height:4px;position:absolute;bottom:0;left:0;right:0}.progress-strip>span{background:var(--accent);height:100%;display:block}.read-check{background:var(--ok);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:8px;left:8px}.read-check svg{width:13px;height:13px}.masthead{border-bottom:3px double color-mix(in srgb, var(--ink) 35%, var(--line));margin:0 0 1.5rem;padding-bottom:.75rem}.masthead h1{font-size:clamp(var(--fs-5), 6vw, var(--fs-6));margin-bottom:.2em;font-weight:640}.masthead .masthead-sub{color:var(--ink-muted);font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.07em;flex-wrap:wrap;gap:1rem;font-weight:600;display:flex}.page-head{border-bottom:3px double color-mix(in srgb, var(--ink) 35%, var(--line));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:.75rem;display:flex}.page-head h1{font-size:clamp(var(--fs-4), 4.5vw, var(--fs-5));margin:0}.page-head .btn{min-height:32px;font-size:var(--fs-1);padding:.25rem .8rem;font-weight:600}.page-head .btn svg{width:15px;height:15px}.auth-screen{background:var(--reader-backdrop);justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex;position:relative}.cover-wall{pointer-events:none;position:absolute;inset:0;overflow:hidden}@media (prefers-reduced-motion:no-preference){.cover-wall{animation:wall-fade .7s var(--ease) both}}@keyframes wall-fade{0%{opacity:0}}.cover-wall:after{content:"";background:radial-gradient(ellipse 70% 60% at 50% 52%, color-mix(in srgb, var(--reader-backdrop) 92%, transparent), transparent 75%);position:absolute;inset:0}.wall-frame{filter:saturate(.85)blur(1.2px);opacity:.55;width:3200px;height:3400px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-7deg)}@media (width<=640px){.wall-frame{transform:translate(-50%,-50%)rotate(-7deg)scale(.45)}}.wall-track{animation:320s linear infinite wall-drift}@keyframes wall-drift{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.wall-grid{grid-template-columns:repeat(8,1fr);gap:22px;padding-bottom:22px;display:grid}.wall-cover{aspect-ratio:3/4;border-radius:6px;flex-direction:column;gap:8%;padding:9% 8%;display:flex;box-shadow:0 4px 16px #1a1a1c2e}.wall-cover i{opacity:.85;background:currentColor;border-radius:2px;height:11%;display:block}.wall-cover i.thin{opacity:.45;width:72%;height:5%}.wall-cover i.block{opacity:.25;border-radius:4px;flex:1}.wall-cover.p1{background:var(--surface-raised);color:var(--ink)}.wall-cover.p2{background:var(--ink);color:var(--surface)}.wall-cover.p3{background:var(--accent);color:var(--accent-ink)}.wall-cover.p4{background:var(--wall-parchment);color:var(--wall-parchment-ink)}.wall-cover.p5{background:var(--wall-slate);color:var(--wall-slate-ink)}.wall-cover.p6{background:var(--wall-gold);color:var(--ink)}.wall-slot{aspect-ratio:3/4;perspective:1300px;z-index:1;position:relative}.wall-slot .wall-cover{position:absolute;inset:0}.wall-cover.flip{animation:cover-flip 18s var(--ease) infinite backwards;transform-origin:0;animation-delay:3s}.wall-cover.flip.f2{animation-delay:9s}.wall-cover.flip.f3{animation-delay:15s}@keyframes cover-flip{0%{transform:rotateY(0)}3%{transform:rotateY(-80deg)}4.5%{transform:rotateY(-70deg)}10%{transform:rotateY(-74deg)}16%{transform:rotateY(-70deg)}22%{transform:rotateY(-74deg)}26%,to{transform:rotateY(0)}}.wall-cover.flip:after{content:"";border-radius:inherit;animation:flip-shade 18s var(--ease) infinite backwards;animation-delay:inherit;pointer-events:none;opacity:0;background:linear-gradient(90deg,#1a1a1c73,#1a1a1c1f);position:absolute;inset:0}@keyframes flip-shade{0%{opacity:0}3%{opacity:1}22%{opacity:1}26%,to{opacity:0}}.auth-card{z-index:1;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-l);width:min(100%,380px);box-shadow:var(--shadow-pop);padding:2rem;position:relative}@media (prefers-reduced-motion:no-preference){.auth-card{animation:card-in .7s var(--ease) both}}@keyframes card-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.wall-track,.wall-cover.flip,.wall-cover.flip:after{animation:none}.wall-cover.flip:after{opacity:0}}.auth-masthead{text-align:center;margin-bottom:1.375rem}.auth-masthead .wordmark{border-bottom:3px double var(--ink);padding-bottom:.625rem;font-size:2.125rem;line-height:1.15;display:block}.auth-masthead .dateline{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:.5rem;font-size:10.5px;font-weight:600;display:block}.auth-hint{color:var(--ink-muted);font-size:var(--fs-1);margin:.25rem 0 1rem}.auth-card .btn-primary{width:100%}.form-error{color:var(--danger);font-size:var(--fs-1);margin:.5rem 0}.totp-input{text-align:center;font-size:var(--fs-4);letter-spacing:.5em;font-variant-numeric:tabular-nums}.omnibox-wrap{display:block;position:relative}.omnibox{width:100%;min-height:48px;font-family:var(--font-display);font-size:var(--fs-3);border-radius:var(--radius-l);padding:.5rem 3rem .5rem 1rem;font-weight:500}.omnibox::placeholder{color:var(--ink-muted);opacity:.8;font-style:italic}.omnibox-kbd{border:1px solid var(--line);font-family:var(--font-ui);font-size:var(--fs-0);color:var(--ink-muted);background:var(--surface);pointer-events:none;border-radius:5px;padding:.05rem .45rem;position:absolute;top:50%;right:1rem;translate:0 -50%}@media (hover:none){.omnibox-kbd{display:none}}.search-note{color:var(--warn);font-size:var(--fs-1);margin:.75rem 0 0}.search-empty{text-align:center;padding:4.5rem 1rem}.search-empty .big{font-family:var(--font-display);font-style:italic;font-weight:520;font-size:var(--fs-4);color:var(--ink);margin:0 0 .5rem}.search-empty p:not(.big){color:var(--ink-muted);font-size:var(--fs-1);margin:0}.search-empty kbd{border:1px solid var(--line);font-family:var(--font-ui);font-size:var(--fs-0);background:var(--surface-raised);border-radius:4px;padding:0 .4rem}.hit-group{margin:2rem 0}.hit-group-head{align-items:center;gap:.75rem;margin-bottom:.625rem;display:flex}.hit-group-head:after{content:"";border-top:1px solid var(--line);flex:1;align-self:center}.hit-group-head h3{margin:0;font-weight:620}.hit-group-head .count{font-size:var(--fs-1);color:var(--ink-muted);white-space:nowrap}.hit-cover{aspect-ratio:3/4;object-fit:cover;object-position:center top;border:1px solid var(--line);width:30px;box-shadow:var(--shadow-cover);background:color-mix(in srgb, var(--ink) 6%, var(--surface));border-radius:3px}.hit{border-radius:var(--radius-m);align-items:flex-start;gap:1rem;padding:.7rem .625rem;display:flex}.hit:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.hit .thumb{aspect-ratio:3/4;border-radius:var(--radius-s);border:1px solid var(--line);width:62px;box-shadow:var(--shadow-cover);object-fit:cover;background:color-mix(in srgb, var(--ink) 6%, var(--surface));transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);flex-shrink:0}.hit:hover .thumb{box-shadow:var(--shadow-cover-lift);transform:translateY(-2px)}.hit .snippet{font-family:var(--font-display);font-style:italic;font-weight:470;font-size:var(--fs-2);color:var(--ink);max-width:68ch;line-height:1.5;display:block}.hit .snippet mark{color:var(--accent);background:0 0;font-style:normal;font-weight:640}.hit .hit-page{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:2px;font-size:10.5px;font-weight:700}.hit:hover .hit-page{color:var(--accent)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-l);padding:1.125rem 1.25rem 1rem}.stat-card.hot .stat-value{color:var(--accent)}.stat-card.alert .stat-value{color:var(--warn)}.stat-card .stat-value{font-family:var(--font-display);font-size:var(--fs-6);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:620;line-height:1.1}.stat-card .stat-label{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-top:.2rem;font-weight:600}.card-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.25rem;display:flex}.card-head h3{margin:0}.card-head .count{font-size:var(--fs-1);color:var(--ink-muted);white-space:nowrap}.week-chart{align-items:flex-end;gap:5px;height:140px;padding-top:.75rem;display:flex;position:relative}.week-chart:after{content:"";border-top:1px solid var(--line);position:absolute;bottom:23px;left:0;right:0}.week-chart .bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.week-chart .bar{background:color-mix(in srgb, var(--accent) 62%, var(--surface));border-radius:2px 2px 0 0;width:100%;max-width:40px;min-height:2px}.week-chart .bar-col.today .bar{background:var(--accent)}.week-chart .bar-label{font-size:var(--fs-0);color:var(--ink-muted)}.week-chart .bar-col.today .bar-label{color:var(--ink);font-weight:700}.hist-row{border-bottom:1px solid var(--line);align-items:center;gap:.875rem;padding:.625rem 0;display:flex}.hist-link{flex:1;align-items:center;gap:.875rem;min-width:0;display:flex}.hist-cover{aspect-ratio:3/4;object-fit:cover;object-position:center top;border:1px solid var(--line);width:38px;box-shadow:var(--shadow-cover);background:color-mix(in srgb, var(--ink) 6%, var(--surface));transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:3px;flex-shrink:0}.hist-link:hover .hist-cover{box-shadow:var(--shadow-cover-lift);transform:translateY(-2px)}.hist-main{flex-direction:column;gap:1px;min-width:0;display:flex}.hist-title{font-weight:600;font-size:var(--fs-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hist-link:hover .hist-title{color:var(--accent)}.hist-sub{font-size:var(--fs-0);color:var(--ink-muted)}.when{color:var(--ink-muted);font-size:var(--fs-1);white-space:nowrap;margin-left:auto}.list-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.875rem;padding:.75rem 0;display:flex}.list-row .list-link{font-weight:600}.list-row .list-link:hover{color:var(--accent)}.list-row .when{color:var(--ink-muted);font-size:var(--fs-1);white-space:nowrap;margin-left:auto}.notice{text-align:center;background:var(--surface-raised);border:1px solid var(--line);border-top:3px double var(--ink);border-bottom:3px double var(--ink);border-radius:var(--radius-s);max-width:620px;box-shadow:var(--shadow-cover);margin:2rem auto 0;padding:2rem 2rem 1.5rem;position:relative}.notice-stamp{border:2px solid var(--accent);color:var(--accent);text-transform:uppercase;letter-spacing:.14em;opacity:.85;border-radius:4px;padding:.2rem .5rem;font-size:10.5px;font-weight:800;position:absolute;top:1.125rem;right:1.125rem;transform:rotate(6deg)}.notice-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted);margin:0 0 .625rem;font-size:10.5px;font-weight:700}.notice-title{font-size:var(--fs-4);margin-bottom:.625rem;font-weight:620}.notice-body{color:var(--ink-muted);max-width:46ch;margin:0 auto 1.5rem}.notice-steps{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1.5rem;padding:1.25rem 0 0;list-style:none;display:grid}@media (width<=560px){.notice-steps{grid-template-columns:1fr}}.notice-steps li{flex-direction:column;align-items:center;gap:.25rem;display:flex}.notice-steps .step-no{font-family:var(--font-display);font-weight:620;font-size:var(--fs-4);color:var(--accent);line-height:1.1}.notice-steps strong{font-size:var(--fs-1);font-weight:650}.notice-steps .step-body{font-size:var(--fs-1);color:var(--ink-muted);max-width:24ch}.notice-foot{font-family:var(--font-display);font-style:italic;font-weight:480;font-size:var(--fs-1);color:var(--ink-muted);margin:0}.admin-tabs,.section-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:1.375rem;margin-bottom:1.5rem;display:flex}.admin-tabs a,.section-tabs a{font-size:var(--fs-1);color:var(--ink-muted);transition:color var(--dur) var(--ease);margin-bottom:-1px;padding:.25rem .125rem .55rem;font-weight:600;position:relative}.admin-tabs a:hover,.section-tabs a:hover{color:var(--ink)}.admin-tabs a[aria-current=page],.section-tabs a[aria-current=page]{color:var(--ink);font-weight:650}.admin-tabs a[aria-current=page]:after,.section-tabs a[aria-current=page]:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:1.25rem;display:grid}.admin-grid .card-wide{grid-column:1/-1}.card-note:last-child{margin-bottom:0}.btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.kv{font-size:var(--fs-1);grid-template-columns:max-content 1fr;align-items:baseline;gap:.45rem 1.25rem;display:grid}.kv dt{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:10.5px;font-weight:600}.kv dd{margin:0}.status-list{font-size:var(--fs-1);margin:0;padding:0;list-style:none}.status-list li{border-bottom:1px solid var(--line);align-items:center;gap:.625rem;padding:.5rem 0;display:flex}.status-list li:last-child{border-bottom:0}.status-val{color:var(--ink-muted);margin-left:auto}.status-val.up{color:var(--ok);font-weight:600}.status-val.down{color:var(--danger);font-weight:600}.dot{background:var(--line);border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}.rank-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.rank-list li{min-width:0}.rank-line{font-size:var(--fs-1);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.25rem;display:flex}.rank-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.rank-val{color:var(--ink-muted);white-space:nowrap}.rank-bar{background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:2px;height:4px;overflow:hidden}.rank-bar b{height:100%;width:var(--p,0%);background:color-mix(in srgb, var(--accent) 75%, var(--surface));border-radius:2px;display:block}.card-stack{flex-direction:column;gap:1.25rem;display:flex}.field-narrow{max-width:300px}.mb-grid{margin-bottom:1.25rem}.load-more{margin-top:1rem}.title-edit{font-weight:600}.title-edit:after{content:"✎";color:var(--ink-muted);opacity:0;transition:opacity var(--dur) var(--ease);margin-left:.5ch}.title-edit:hover:after{opacity:.8}.check-label{font-size:var(--fs-1);color:var(--ink-muted);cursor:pointer;align-items:center;gap:.45rem;display:inline-flex}.check-label:hover{color:var(--ink)}.filter-bar{flex-wrap:wrap;align-items:end;gap:.625rem;margin-bottom:1rem;display:flex}.filter-bar .field{margin-bottom:0}.one-time-link{font-family:ui-monospace,monospace;font-size:var(--fs-1);word-break:break-all;background:color-mix(in srgb, var(--accent) 8%, var(--surface));border:1px dashed color-mix(in srgb, var(--accent) 40%, var(--line));border-radius:var(--radius-m);margin:.75rem 0;padding:.75rem;display:block}.detail-json{font-family:ui-monospace,monospace;font-size:var(--fs-0);background:color-mix(in srgb, var(--ink) 5%, var(--surface));border-radius:var(--radius-s);white-space:pre-wrap;padding:.5rem;overflow-x:auto}.empty-state{text-align:center;color:var(--ink-muted);padding:3rem 1rem}.empty-state h2{color:var(--ink);font-size:var(--fs-3)}.setup-code{background:color-mix(in srgb, var(--ink) 6%, var(--surface));border-radius:var(--radius-s);padding:.15rem .4rem;font-family:ui-monospace,monospace}.icon-btn{border-radius:var(--radius-s);width:30px;height:30px;color:var(--ink-muted);cursor:pointer;transition:color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 8%, transparent)}.icon-btn.is-on{color:var(--accent)}.icon-btn.is-on:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.icon-btn:disabled{opacity:.35;cursor:default;color:var(--ink-muted);background:0 0}.card-actions{flex-wrap:wrap;align-items:center;gap:.125rem;margin-top:auto;margin-left:-4px;padding-top:.3rem;display:flex}.card-actions .btn-small{white-space:nowrap;margin-left:auto}.masthead-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.masthead-row h1{margin-bottom:.2em}.btn.is-on{border-color:var(--accent);color:var(--accent)}.btn.is-on svg{width:15px;height:15px}.following-mark{border-left:1px solid var(--line);color:var(--accent);font-variant:all-small-caps;letter-spacing:.04em;margin-left:.6ch;padding-left:.6ch}.hint{color:var(--ink-muted);font-size:var(--fs-0);margin:-.5rem 0 1rem}.queue-list{margin:0;padding:0;list-style:none}.queue-row{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.queue-row.is-dragging{opacity:.45;outline:2px dashed var(--accent);outline-offset:-2px}.queue-grip{color:var(--ink-muted);cursor:grab;display:flex}.queue-grip svg{width:18px;height:18px}.queue-pos{text-align:right;min-width:1.6ch;color:var(--ink-muted);font-size:var(--fs-0);font-weight:700}.queue-link{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.queue-actions{align-items:center;gap:.125rem;display:flex}.bm-list{margin:0;padding:0;list-style:none}.bm-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.bm-link{flex:0 22rem;align-items:center;gap:.75rem;min-width:0;display:flex}.bm-row .when{margin-left:auto}.bm-note{border:1px solid #0000;border-bottom-color:var(--line);border-radius:var(--radius-s) var(--radius-s) 0 0;min-width:0;max-width:26rem;color:var(--ink-muted);font:inherit;font-size:var(--fs-0);background:0 0;flex:10rem;padding:.3rem .4rem;font-style:italic}.bm-note:hover{background:color-mix(in srgb, var(--ink) 4%, var(--surface));color:var(--ink)}.bm-note:focus-visible{border-color:var(--accent);background:var(--surface-raised);color:var(--ink);font-style:normal}.topbar-actions{align-items:center;gap:.25rem;display:flex}.bell{position:relative}.bell-btn{width:34px;height:34px;color:var(--ink);cursor:pointer;transition:background var(--dur) var(--ease);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.bell-btn svg{width:20px;height:20px}.bell-btn:hover,.bell-btn[aria-expanded=true]{background:color-mix(in srgb, var(--ink) 8%, transparent)}.bell-badge{background:var(--accent);min-width:16px;height:16px;color:var(--accent-ink);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:0;right:0}.bell-pop{z-index:60;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);width:min(20rem,100vw - 2rem);max-height:min(26rem,70vh);box-shadow:var(--shadow-pop);padding:.375rem;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.bell-pop-head{border-bottom:1px solid var(--line);font-family:var(--font-display);justify-content:space-between;align-items:baseline;gap:.5rem;padding:.4rem .5rem .5rem;font-weight:640;display:flex}.bell-empty{color:var(--ink-muted);font-size:var(--fs-0);margin:0;padding:.9rem .5rem}.bell-group+.bell-group{margin-top:.35rem}.bell-group-name{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);padding:.5rem .5rem .2rem;font-size:10.5px;font-weight:700;display:block}.bell-item{border-radius:var(--radius-s);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.6rem;padding:.35rem .5rem;display:flex}.bell-item:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.bell-cover{object-fit:cover;object-position:center top;border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 8%, var(--surface));border-radius:2px;flex-shrink:0;width:26px;height:35px}.bell-item-main{flex-direction:column;min-width:0;display:flex}.bell-item-label{font-size:var(--fs-1);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.bell-item-when{font-size:var(--fs-0);color:var(--ink-muted)}.day-group+.day-group{margin-top:1.25rem}.day-rule{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.75rem;margin-bottom:.6rem;font-size:10.5px;font-weight:700;display:flex}.day-rule:after{content:"";background:var(--line);flex:1;height:1px}.cover-new{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-top:.1rem;font-size:10.5px;font-weight:700;display:inline-block}.cover-caption{color:var(--accent);font-variant:all-small-caps;letter-spacing:.04em}.chip-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin:-.75rem 0 1.25rem;display:flex}.chip{border:1px solid var(--line);min-height:30px;color:var(--ink-muted);font:inherit;font-size:var(--fs-1);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;border-radius:999px;align-items:center;gap:.45ch;padding:.15rem .7rem;font-weight:600;display:inline-flex}.chip:hover{color:var(--ink);border-color:var(--ink-muted)}.chip.is-on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.chip-count{font-size:var(--fs-0);opacity:.75;font-weight:700}.card-empty{color:var(--ink-muted);font-size:var(--fs-0);margin:0}.card+.card,.card+.admin-grid{margin-top:1.25rem}.stats-duo{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:stretch;gap:1.25rem;margin-top:1.25rem;display:grid}.heat-wrap{max-width:72rem;margin-inline:auto}.heat-grid{grid-template-columns:auto repeat(53,minmax(0,1fr));gap:clamp(1px,.22vw,3px);display:grid}.heat-dow{color:var(--ink-muted);align-self:center;padding-right:5px;font-size:9.5px;line-height:1}.heat-month{width:0;min-width:0;color:var(--ink-muted);white-space:nowrap;font-size:clamp(7px,1.2vw,9.5px);line-height:12px;overflow:visible}.heat-grid .heat-cell{aspect-ratio:1;width:auto;min-width:0;height:auto;min-height:0}.heat-cell{background:color-mix(in srgb, var(--ink) 7%, var(--surface));border-radius:2px;width:11px;height:11px}.heat-cell.l1{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.heat-cell.l2{background:color-mix(in srgb, var(--accent) 45%, var(--surface))}.heat-cell.l3{background:color-mix(in srgb, var(--accent) 70%, var(--surface))}.heat-cell.l4{background:var(--accent)}.heat-cell.is-future{background:0 0}.heat-summary{color:var(--ink-muted);font-size:var(--fs-0);text-align:center;margin:.75rem 0 0}.heat-legend{color:var(--ink-muted);justify-content:center;align-items:center;gap:3px;margin-top:.5rem;font-size:9.5px;display:flex}.heat-legend span:first-child{margin-right:.35rem}.heat-legend span:last-child{margin-left:.35rem}.count-scope{font-variant:all-small-caps;letter-spacing:.04em;color:var(--ink-muted);font-weight:500}.heat-month{padding-right:2px}.gap-strip{flex-wrap:wrap;align-items:center;gap:.4rem;margin:-.5rem 0 1rem;display:flex}.gap-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-right:.25rem;font-size:10.5px;font-weight:700}.gap-chip{gap:.6ch}.gap-chip .gap-action{font-size:var(--fs-0);color:var(--accent);font-variant:all-small-caps;letter-spacing:.04em;font-weight:700}.gap-chip.is-requested{opacity:.6;cursor:default}.gap-chip.is-requested .gap-action{color:var(--ink-muted)}.account-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem;max-width:66rem;display:grid}.account-col{flex-direction:column;gap:1.25rem;display:flex}@media (width<=760px){.account-grid{grid-template-columns:minmax(0,1fr)}}.card-sub{color:var(--ink-muted);font-size:var(--fs-1);margin:0 0 .75rem}.card-note{color:var(--ink-muted);font-size:var(--fs-0);margin:.5rem 0 0}.reader{background:var(--reader-backdrop);touch-action:pan-x pan-y;z-index:50;position:fixed;inset:0;overflow:hidden}.reader:fullscreen{background:var(--reader-backdrop)}.reader-progress{background:var(--accent);z-index:60;height:2px;transition:width var(--dur) var(--ease);position:absolute;top:0;left:0}.reader-surface{overscroll-behavior:contain;-webkit-user-select:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;container-type:size}.reader-surface.zoomed{justify-content:flex-start;align-items:flex-start;overflow:auto}.reader-spread{animation:reader-fade .15s var(--ease);gap:0;margin:auto;padding:12px;display:flex}@keyframes reader-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.reader-spread{animation:none}}.reader-surface:not(.zoomed) .pdf-page{max-width:calc((100cqw - 24px) / var(--cols,1));max-height:calc(100cqh - 24px)}.pdf-page{background:#fff;flex-shrink:0;position:relative;box-shadow:0 2px 12px #00000040}.pdf-page canvas{object-fit:contain;width:100%;height:100%;display:block}.pdf-page .page-thumb{object-fit:contain;filter:blur(2px);width:100%;height:100%;position:absolute;inset:0}.pdf-page .page-error{text-align:center;color:var(--ink-muted);font-size:var(--fs-1);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1rem;display:flex;position:absolute;inset:0}.pdf-page .page-loading{color:var(--ink-muted);font-size:var(--fs-1);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.textLayer{-webkit-user-select:text;user-select:text;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:1;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:hidden}.textLayer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;--font-height:0;--scale-x:1;--rotate:0deg;font-size:calc(var(--text-scale-factor) * var(--font-height));transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv));position:absolute}.textLayer ::selection{background:color-mix(in srgb, var(--accent) 35%, transparent)}.reader-scroll{overscroll-behavior:contain;position:absolute;inset:0;overflow:auto}.reader-scroll .scroll-inner{padding:10px 0 calc(10px + var(--safe-bottom));flex-direction:column;align-items:flex-start;gap:10px;display:flex}.scroll-inner .pdf-page{margin-inline:auto}.turn-zone{z-index:55;width:20%;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0}.turn-prev{justify-content:flex-start;left:0}.turn-next{justify-content:flex-end;right:0}.turn-zone svg{opacity:0;width:36px;height:36px;transition:opacity var(--dur) var(--ease);margin:0 12px}.turn-zone:hover svg,.turn-zone:focus-visible svg{opacity:1}@media (hover:none){.turn-zone{display:none}}.hud-top,.hud-bottom{z-index:70;background:color-mix(in srgb, var(--surface-raised) 90%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .2s var(--ease), opacity .2s var(--ease);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex;position:absolute;left:0;right:0}.hud-top{padding-top:calc(.5rem + var(--safe-top));padding-left:calc(.75rem + var(--safe-left));padding-right:calc(.75rem + var(--safe-right));border-bottom:1px solid var(--line);top:0}.hud-bottom{padding-bottom:calc(.5rem + var(--safe-bottom));padding-left:calc(.75rem + var(--safe-left));padding-right:calc(.75rem + var(--safe-right));border-top:1px solid var(--line);bottom:0}.reader[data-hud=hidden] .hud-top{opacity:0;pointer-events:none;transform:translateY(-100%)}.reader[data-hud=hidden] .hud-bottom{opacity:0;pointer-events:none;transform:translateY(100%)}:is(.reader[data-hud=hidden]:has(.hud-top :focus-visible) .hud-top,.reader[data-hud=hidden]:has(.hud-bottom :focus-visible) .hud-bottom){opacity:1;pointer-events:auto;transform:none}.hud-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;font-size:var(--fs-1);flex:1;overflow:hidden}.hud-btn{border-radius:var(--radius-m);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;font-size:var(--fs-1);background:0 0;border:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.hud-btn:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.hud-btn[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.hud-btn svg{width:20px;height:20px}.hud-pageno{font-size:var(--fs-1);color:var(--ink-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;min-height:44px;padding:0 .5rem;font-family:inherit}.hud-pageno:hover{color:var(--ink)}.hud-pageinput{width:5.5ch;min-height:36px;font:inherit;font-size:var(--fs-1);color:var(--ink);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);margin:4px .25rem;padding:.15rem .4rem}.hud-slider{accent-color:var(--accent);flex:1;min-height:44px}.hud-group{align-items:center;display:inline-flex}.reader-toast{bottom:calc(72px + var(--safe-bottom));z-index:65;background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-pop);font-size:var(--fs-1);white-space:nowrap;border-radius:999px;align-items:baseline;gap:.75rem;padding:.4rem 1rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.reader-toast button{color:var(--accent);cursor:pointer;font-weight:650;font-size:inherit;background:0 0;border:0;padding:0}.thumb-overlay{z-index:80;background:color-mix(in srgb, var(--reader-backdrop) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:reader-fade .15s var(--ease);flex-direction:column;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.thumb-overlay{animation:none}}.thumb-head{padding:calc(.5rem + var(--safe-top)) calc(.75rem + var(--safe-right)) 0 calc(.75rem + var(--safe-left));justify-content:flex-end;display:flex}.thumb-grid{overscroll-behavior:contain;padding:.75rem calc(1rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left));outline:none;flex:1;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));align-content:start;gap:.875rem;display:grid;overflow-y:auto}.thumb-cell{cursor:pointer;font:inherit;font-size:var(--fs-1);color:var(--ink-muted);background:0 0;border:0;flex-direction:column;align-items:center;gap:.3rem;padding:0;display:flex}.thumb-frame{aspect-ratio:3/4;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 6px #0000001f}.thumb-frame img{object-fit:contain;background:#fff;width:100%;height:100%;position:absolute;inset:0}.thumb-num{font-family:var(--font-display);font-size:var(--fs-4);color:var(--ink-muted)}.thumb-cell:hover .thumb-frame,.thumb-cell:focus-visible .thumb-frame{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}.thumb-cell[aria-current=page]{color:var(--accent);font-weight:650}.thumb-cell[aria-current=page] .thumb-frame{outline:2px solid var(--accent);outline-offset:2px}.reader-center{color:var(--ink-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.bm-drawer{z-index:80;background:var(--surface);border-left:1px solid var(--line);width:min(23rem,92vw);animation:bm-drawer-in .18s var(--ease);flex-direction:column;gap:.75rem;padding:.75rem 1rem 1.25rem;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-12px 0 28px #00000047}@keyframes bm-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.bm-drawer{animation:none}}.bm-drawer-head{border-bottom:3px double color-mix(in srgb, var(--ink) 35%, var(--line));justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.5rem;display:flex}.bm-drawer-head h2{font-size:var(--fs-3);margin:0}.bm-drawer-add{align-self:flex-start;gap:.5ch}.bm-drawer-add svg{width:15px;height:15px}.bm-drawer-empty{color:var(--ink-muted);font-size:var(--fs-0);margin:0}.bm-drawer-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bm-item{border-bottom:1px solid var(--line);align-items:center;gap:.4rem;padding:.4rem 0;display:flex}.bm-item.is-current .bm-item-page{color:var(--accent);font-weight:700}.bm-item-page{border-radius:var(--radius-s);min-width:4.2ch;color:var(--ink);font:inherit;font-size:var(--fs-0);cursor:pointer;text-align:left;background:0 0;border:0;flex:none;padding:.2rem .35rem;font-weight:600}.bm-item-page:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.bm-item-note{border:1px solid #0000;border-bottom-color:var(--line);border-radius:var(--radius-s) var(--radius-s) 0 0;min-width:0;color:var(--ink-muted);font:inherit;font-size:var(--fs-0);background:0 0;flex:auto;padding:.25rem .4rem;font-style:italic}.bm-item-note:hover{background:color-mix(in srgb, var(--ink) 4%, var(--surface));color:var(--ink)}.bm-item-note:focus-visible{border-color:var(--accent);background:var(--surface-raised);color:var(--ink);font-style:normal}.page-crop{border-radius:2px;overflow:hidden}.hud-slider-wrap{--map-seen:color-mix(in srgb, var(--accent) 55%, var(--reader-backdrop));--map-unseen:color-mix(in srgb, var(--ink) 14%, transparent);flex:1;align-items:center;min-width:0;display:flex;position:relative}.hud-seenmap{pointer-events:none;border-radius:2px;height:3px;position:absolute;bottom:3px;left:8px;right:8px}.hud-slider-wrap .hud-slider{width:100%}.hud-unseen svg{width:18px;height:18px}.upnext-card{z-index:66;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);max-width:min(30rem,100vw - 2rem);box-shadow:var(--shadow-pop);animation:reader-fade .15s var(--ease);align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.upnext-cover{object-fit:cover;object-position:center top;border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 8%, var(--surface));border-radius:2px;flex-shrink:0;width:40px;height:54px}.upnext-main{flex-direction:column;min-width:0;display:flex}.upnext-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:10.5px;font-weight:700}.upnext-label{font-size:var(--fs-1);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}
