:root{--bg: #000;--panel: rgba(18, 18, 24, .92);--line: rgba(255, 255, 255, .12);--text: #f2f2f6;--muted: #a4a4b4;--accent: #31e0ff;--accent-2: #ff4fd8;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--top: env(safe-area-inset-top);--bottom: env(safe-area-inset-bottom);--side: max(16px, env(safe-area-inset-left), env(safe-area-inset-right));color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden}body{font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit;color:inherit}[hidden]{display:none!important}.feed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none}.feed::-webkit-scrollbar{display:none}.slide{position:relative;height:100dvh;width:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:#000;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.host{position:absolute;top:0;right:0;bottom:0;left:0}.poster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05)}.gl{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;display:block;opacity:0;transition:opacity .25s ease}.gl.on{opacity:1}.slide-msg{position:absolute;left:50%;top:calc(var(--top) + 64px);transform:translate(-50%);max-width:min(92vw,520px);padding:6px 12px;border-radius:999px;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:12px;color:var(--muted);text-align:center}.slide[data-state=failed] .slide-msg,.slide[data-state=heavy] .slide-msg{color:#ffb4b4;border-radius:12px}.overlay{position:absolute;inset:auto 0 0 0;pointer-events:none;display:flex;align-items:flex-end;gap:12px;padding:80px var(--side) calc(var(--bottom) + 22px);background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.25) 55%,transparent)}.caption{flex:1;min-width:0;display:grid;gap:3px;text-shadow:0 1px 6px rgba(0,0,0,.6)}.caption a,.actions>*{pointer-events:auto}.src{display:inline-flex;align-items:center;gap:6px;font:600 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:#fff;opacity:.9}.dot{width:7px;height:7px;border-radius:50%;background:var(--c, var(--muted));flex:none}.title{margin:2px 0 0;font-size:clamp(18px,4.6vw,26px);line-height:1.15;letter-spacing:-.01em;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.by{color:#ddd;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.by a{font-weight:600;text-decoration:none}.by a:hover{text-decoration:underline}.actions{display:flex;flex-direction:column;gap:14px;align-items:center}.act{display:grid;justify-items:center;gap:3px;background:none;border:0;padding:0;cursor:pointer;text-decoration:none;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}.act .glyph{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#0000006b;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:600 15px/1 var(--mono)}.act:hover .glyph{border-color:var(--accent)}.act-label{font-size:11px;color:#ddd}.end-slide{display:grid;place-items:center}.end-msg{text-align:center;color:var(--muted);padding:24px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.err{color:#ff9a9a}.topbar{position:fixed;top:0;left:0;right:0;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(var(--top) + 10px) var(--side) 24px;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent)}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:-.02em;text-decoration:none;text-shadow:0 1px 6px rgba(0,0,0,.6)}.logo{width:18px;height:18px;border-radius:5px;background:conic-gradient(var(--accent-2),var(--accent),#ffe36e,var(--accent-2));animation:spin 8s linear infinite}.filter-btn{display:inline-flex;gap:6px;align-items:center;max-width:62vw;border:1px solid rgba(255,255,255,.2);background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.filter-btn span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-btn.alert{border-color:#ff9a9a}.filters{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#00000059}.filters-panel{position:absolute;top:calc(var(--top) + 52px);right:var(--side);width:min(440px,calc(100vw - 2 * var(--side)));background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:12px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 20px 60px #00000080}.search{width:100%;height:40px;border-radius:10px;border:1px solid var(--line);background:#ffffff0f;padding:0 12px}.search:focus{outline:2px solid var(--accent);outline-offset:-1px}.seg{display:grid;grid-template-columns:1fr 1fr;background:#ffffff0f;border-radius:10px;padding:3px}.seg button{border:0;background:none;border-radius:8px;padding:6px;cursor:pointer;color:var(--muted)}.seg button[aria-pressed=true]{background:#ffffff24;color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#ffffff0a;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;color:var(--muted)}.chip[aria-pressed=true]{color:var(--text);border-color:color-mix(in srgb,var(--c) 70%,transparent);background:color-mix(in srgb,var(--c) 16%,transparent)}.chip:disabled{opacity:.45;cursor:not-allowed}.chip .tag{font-size:11px}.notice{font-size:13px;color:var(--muted)}.notice p{margin:0 0 4px}.fine{margin:0;font-size:12px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#ffffff0f;border-radius:999px;padding:6px 12px;font-size:13px;text-decoration:none;cursor:pointer}.pill:hover{border-color:var(--accent)}.pill.small{padding:1px 8px;font-size:12px}.hint{position:fixed;z-index:15;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none;background:#0000008c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:12px 18px;text-align:center;font-size:14px;animation:fadein .6s .8s ease both}.hint p{margin:4px 0}@keyframes fadein{0%{opacity:0}}.hud{position:fixed;z-index:15;left:50%;bottom:calc(var(--bottom) + 140px);transform:translate(-50%);display:grid;justify-items:center;gap:6px;pointer-events:none;opacity:0;transition:opacity .2s}.hud.show{opacity:1}.hud span:first-child{font:600 22px/1 var(--mono);text-shadow:0 2px 10px rgba(0,0,0,.8)}.ruler{--t: 0;width:min(70vw,340px);height:14px;border-radius:4px;background-color:#00000059;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.85) 0 1px,transparent 1px 34px),repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 1px,transparent 1px 6.8px);background-size:34px 100%,6.8px 50%;background-repeat:repeat-x;background-position-y:0,100%;background-position-x:calc(var(--t) * -34px),calc(var(--t) * -34px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent)}.hud:after{content:"";width:2px;height:20px;background:var(--accent);margin-top:-20px}.flash{position:fixed;z-index:15;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:#00000073;opacity:0}.flash.pop{animation:pop .6s ease}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}.nav{position:fixed;z-index:15;right:var(--side);top:50%;transform:translateY(-50%);display:grid;gap:8px}.nav button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#0006;cursor:pointer;color:#fff}.nav button:hover{border-color:var(--accent)}@media(pointer:coarse){.nav{display:none}}.inspect{position:fixed;z-index:25;top:0;right:0;bottom:0;left:0;pointer-events:none}.sheet{pointer-events:auto;position:absolute;display:flex;flex-direction:column;min-height:0;background:var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:0 -10px 60px #00000080;left:0;right:0;bottom:0;height:62dvh;border-radius:18px 18px 0 0;padding-bottom:var(--bottom);animation:up .25s ease}@keyframes up{0%{transform:translateY(30px);opacity:0}}.grab{width:40px;height:4px;border-radius:2px;background:#ffffff40;margin:8px auto 0;flex:none}.ins-head{display:flex;gap:12px;align-items:flex-start;padding:10px 16px 4px}.ins-titles{flex:1;min-width:0}.ins-head h2{margin:0;font-size:19px;line-height:1.2;overflow-wrap:anywhere}.ins-head .by{white-space:normal;color:var(--muted)}.icon-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#ffffff0f;cursor:pointer;flex:none}.facts{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 16px;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.ins-status{margin:2px 16px;font:12px var(--mono);color:var(--muted)}.ins-error{margin:6px 0 0;padding:8px 10px;max-height:8em;overflow:auto;background:#ff505014;border:1px solid rgba(255,120,120,.25);border-radius:8px;color:#ffb4b4;white-space:pre-wrap;font:11.5px/1.45 var(--mono)}.ins-links{display:flex;flex-wrap:wrap;gap:8px;margin:8px 16px 4px}.sheet .fine{margin:4px 16px 8px}.tabs{display:flex;gap:4px;padding:0 12px;overflow-x:auto;flex:none}.tab{border:1px solid var(--line);border-bottom:none;background:transparent;border-radius:6px 6px 0 0;padding:4px 10px;font:12px var(--mono);cursor:pointer;color:var(--muted)}.tab[aria-selected=true]{background:#050507;color:var(--text)}.code{flex:1;min-height:0;overflow:auto;margin:0;padding:12px 14px;background:#050507;border-top:1px solid var(--line);font:12px/1.55 var(--mono);-moz-tab-size:2;tab-size:2;white-space:pre;color:#d8d8e4;user-select:text;-webkit-user-select:text}@media(min-width:900px){.sheet{left:auto;top:0;width:460px;height:auto;border-radius:0;border-width:0 0 0 1px;padding-top:var(--top);animation-name:side}@keyframes side{0%{transform:translate(30px);opacity:0}}.grab{display:none}body.inspecting .nav{right:calc(460px + var(--side))}body.inspecting .overlay{padding-right:calc(460px + var(--side))}}@media(max-width:899px){body.inspecting .overlay{opacity:0}}@media(prefers-reduced-motion:reduce){.logo,.spinner{animation:none}.gl{transition:none}}.like .glyph{font-size:22px;transition:color .15s,transform .15s}.like[aria-pressed=true] .glyph{color:#ff3b5c}.like:active .glyph{transform:scale(.88)}.burst{position:fixed;z-index:16;pointer-events:none;font-size:96px;color:#ff3b5c;transform:translate(-50%,-50%);text-shadow:0 6px 24px rgba(0,0,0,.5);animation:burst .8s ease-out forwards}@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-12deg)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.15) rotate(-6deg)}45%{transform:translate(-50%,-50%) scale(.95) rotate(-6deg)}to{opacity:0;transform:translate(-50%,-110%) scale(1.05) rotate(-6deg)}}.blur-bg{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background-size:cover;background-position:center;filter:blur(36px) brightness(.42) saturate(1.3);transform:scale(1.1)}.k-art .host{background:radial-gradient(ellipse at 50% 40%,#2a2622,#12100e 70%)}.figure.gallery{position:absolute;left:0;right:0;top:calc(var(--top) + 60px);bottom:30%;margin:0;display:grid;place-items:center;padding:0 var(--side)}.figure.gallery .figure-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px;box-shadow:0 30px 80px #000000bf}.k-art .title{font-style:italic;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}.k-poem .host{background:radial-gradient(ellipse at 30% 20%,hsl(var(--h, 260) 45% 22%),hsl(calc(var(--h, 260) + 40) 40% 8%) 70%)}.k-passage .host{background:linear-gradient(#17130e,#0e0b08)}.multi .overlay{background:linear-gradient(to top,rgba(0,0,0,.75),transparent);padding-top:40px}.multi .title{font-size:18px;-webkit-line-clamp:1}.desc{margin:2px 0 0;color:#cfcfdc;font-size:13px}.pager{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y}.pager::-webkit-scrollbar{display:none}.pg{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;gap:14px;min-width:0;padding:calc(var(--top) + 58px) calc(var(--side) + 64px) calc(var(--bottom) + 128px) var(--side)}.pager-ind{position:absolute;z-index:3;top:calc(var(--top) + 50px);left:50%;transform:translate(-50%);font:600 11px/1 var(--mono);letter-spacing:.04em;padding:5px 9px;border-radius:999px;background:#00000080;color:#ddd;pointer-events:none;white-space:nowrap}.pager-arrow{position:absolute;z-index:3;top:45%;width:36px;height:56px;border:0;border-radius:10px;background:#00000059;color:#fff;font-size:28px;cursor:pointer;opacity:0;transition:opacity .2s}.pager-arrow.prev{left:6px}.pager-arrow.next{right:70px}.slide.has-prev:hover .pager-arrow.prev,.slide.has-next:hover .pager-arrow.next{opacity:1}@media(pointer:coarse){.pager-arrow{display:none}}.slide.has-next .pager-ind:after{content:" ›"}.pg .figure{flex:0 1 auto;min-height:0;max-height:46%;margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.pg .figure-img{min-height:0;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 18px 50px #0000008c}.pg .figure figcaption{font-size:11.5px;color:#b9b9c8;text-align:center;max-width:36em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:none}.pg-text{flex:1 1 auto;min-height:0;overflow:hidden;font-size:clamp(15px,4vw,18px);line-height:1.5;color:#ececf3;max-width:40em}.pg-text p{margin:0 0 .7em}.pg-text h3{margin:0 0 .4em;font-size:1.15em;letter-spacing:-.01em}.pg-text .quip{font-style:italic;color:#fff;font-size:1.08em}.pg.no-figure .pg-text{display:flex;flex-direction:column;justify-content:center;font-size:clamp(16px,4.4vw,20px)}.pg-poem{justify-content:center;align-items:center}.pg-poem .verse{max-width:34em;max-height:100%;overflow:hidden;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:clamp(16px,4.4vw,22px);line-height:1.5}.verse .gap{height:.8em}.pg-book{justify-content:center}.pg-book .page-text{max-height:100%;overflow:hidden;max-width:38em;margin:0 auto;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:clamp(16px,4.3vw,21px);line-height:1.6;color:#efe6d6}.pg-book p{margin:0 0 .75em;text-indent:1.2em}.pg-book p.verse-para{white-space:pre-line;text-indent:0;padding-left:1em;font-style:italic}.pg-book .heading{font-variant:small-caps;letter-spacing:.08em;color:#c9a86a;font-size:.8em;margin-bottom:1em;text-align:center;text-indent:0}.reading-bar{position:absolute;left:0;right:0;top:0;height:3px;background:#ffffff14;z-index:3}.reading-bar:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:#c9a86a;transition:width .3s}.filters-panel{max-height:calc(100dvh - var(--top) - 70px);overflow-y:auto}.filters-panel h3{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.filters-panel section,.filters-panel details{display:grid;gap:8px}.filters-panel summary{cursor:pointer;font-size:13px;color:var(--muted)}.filters-panel details[open] summary{margin-bottom:8px}.themes{display:flex;flex-wrap:wrap;gap:6px}.theme{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 12px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);font-size:13px}.theme .x{border:0;background:#ffffff1a;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:11px}.tag{color:var(--muted);font-size:11px}.theme-add{position:relative}.suggest{display:grid;gap:2px;margin-top:4px}.suggest:empty{display:none}.sug{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:0;background:#ffffff0a;border-radius:8px;padding:6px 8px;cursor:pointer}.sug:hover{background:#ffffff1a}.sug .sug-icon,.sug .sug-cover{grid-row:span 2;width:28px;height:36px;display:grid;place-items:center;object-fit:cover;border-radius:3px;background:#ffffff0f}.sug .sug-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;z-index:40;left:50%;bottom:calc(var(--bottom) + 24px);transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.hud.no-ruler .ruler,.hud.no-ruler:after{display:none}.prose{padding:4px 16px 16px;font-size:15px;line-height:1.55;overflow:auto}.prose p{margin:0 0 .8em}.prose.verse{font-family:Iowan Old Style,Palatino,Georgia,serif}.prose .gap{height:.8em}.cover{display:block;margin:8px 16px 16px;max-width:140px;border-radius:4px;box-shadow:0 8px 30px #00000080}.sheet{overflow-y:auto}.sheet .code{min-height:40dvh}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0006}.sheet-root .sheet{height:auto;max-height:85dvh}.share-title{padding:6px 16px 0;font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px calc(18px + var(--bottom))}.share-opt{display:grid;justify-items:center;gap:6px;padding:14px 6px;border-radius:14px;border:1px solid var(--line);background:#ffffff0d;cursor:pointer;font-size:13px}.share-opt .glyph{font-size:24px}.share-opt.busy{opacity:.5;pointer-events:none}.fb-body{display:grid;gap:10px;padding:8px 16px calc(16px + var(--bottom))}.fb-text{width:100%;border-radius:10px;border:1px solid var(--line);background:#ffffff0f;padding:10px 12px;font:inherit;resize:vertical;min-height:96px}.fb-text:focus{outline:2px solid var(--accent);outline-offset:-1px}.fb-dump{max-height:30dvh;overflow:auto;margin:6px 0 0;padding:10px;background:#050507;border:1px solid var(--line);border-radius:8px;font:11px/1.45 var(--mono);white-space:pre-wrap;word-break:break-all;color:#c9c9d6;user-select:text;-webkit-user-select:text}.fb-body summary{font-size:13px;color:var(--muted);cursor:pointer}.fb-actions{display:flex;justify-content:flex-end;gap:8px}.pill.primary{background:var(--accent);color:#001018;border-color:transparent;font-weight:600}#feedback-link{justify-self:start}.speak[data-tts=loading] .glyph{animation:pulse .9s ease-in-out infinite}.speak[data-tts=playing] .glyph{border-color:var(--accent);color:var(--accent)}.speak[data-tts=error] .glyph{border-color:#ff8a8a}@keyframes pulse{50%{opacity:.45}}.slide img{-webkit-user-drag:none;-webkit-touch-callout:none}.press-ring{position:fixed;z-index:44;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;pointer-events:none;opacity:0;display:grid;place-items:center;background:conic-gradient(var(--accent) var(--a, 0deg),rgba(255,255,255,.12) 0);-webkit-mask:radial-gradient(circle,transparent 34px,#000 35px);mask:radial-gradient(circle,transparent 34px,#000 35px)}.press-ring span{display:none}@property --a{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.press-ring.filling{opacity:1;animation:fill 2s linear forwards,appear 2s step-end forwards}@keyframes fill{0%{--a: 0deg}to{--a: 360deg}}@keyframes appear{0%{opacity:0}20%{opacity:1}}.press-ring.armed{opacity:1;--a: 360deg;-webkit-mask:none;mask:none;background:#0009;border:2px solid var(--accent)}.press-ring.armed span{display:block;font:600 12px var(--mono);color:var(--accent)}.actions .act .glyph{width:42px;height:42px}.actions{gap:10px}::highlight(tts){background-color:#31e0ff47;color:#fff}.speak[data-tts=paused] .glyph{border-color:var(--accent)}
