:root,[data-theme=light]{--bg-page:#f3f7fb;--bg-soft:#d8dfef;--bg-card:#fff;--bg-elevated:#f8fafc;--bg-muted:#f6f6f6;--bg-chip:#f0f3f9;--bg-cover:#eef2f7;--bg-code:#f4f6f9;--bg-pre:#f6f8fa;--bg-auth:#f8fafc;--bg-auth-in:#eef6ff;--bg-inline:#f7f9fc;--ink:#121212;--ink-hover:#444;--muted:#646464;--muted-2:#999;--nav:#8797b7;--line:#ededed;--line-strong:#dbdbdb;--line-card:#ebeef5;--line-soft:#eef2f7;--line-auth:#e5ebf3;--line-auth-in:#cfe0f5;--line-focus:#c9d5ea;--blue:#175199;--blue-soft:#e8f0fe;--accent:#c57a68;--accent-soft:#ead6d0;--tag:#5870af;--danger:#d4380d;--success:#389e0d;--header-bg:color-mix(in srgb, var(--bg-card) 88%, transparent);--header-shadow:0 1px 2px #1212120a;--page-glow:radial-gradient(1200px 480px at 12% -10%, #17519914, transparent 60%), radial-gradient(900px 420px at 90% 0%, #c57a680d, transparent 55%);--radius:8px;--radius-sm:5px;--radius-lg:14px;--font:"HarmonyOS_Regular", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Noto Sans SC", sans-serif;--font-medium:"HarmonyOS_Medium", "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;--ease:.2s cubic-bezier(.22, 1, .36, 1);--ease-out:.42s cubic-bezier(.16, 1, .3, 1);--shadow-soft:0 1px 2px #1212120a, 0 8px 24px #1751990a;--shadow-lift:0 8px 28px #12204014;--shadow-press:none;--control-h:34px;--font-display:var(--font-medium);--on-accent:#fff;--provider-border:#dadce0;--provider-fg:#3c4043;--provider-hover:#f7f8f8;--github-bg:#24292f;--github-hover:#1b1f23}[data-theme=dark]{--bg-page:#0f1419;--bg-soft:#1a2330;--bg-card:#171d26;--bg-elevated:#1c2430;--bg-muted:#1a222e;--bg-chip:#222b38;--bg-cover:#222b38;--bg-code:#222b38;--bg-pre:#1a222e;--bg-auth:#1a222e;--bg-auth-in:#1a2a3d;--bg-inline:#1a222e;--ink:#e8eef6;--ink-hover:#c5d0de;--muted:#9aa8ba;--muted-2:#7a8798;--nav:#8b9bb0;--line:#273041;--line-strong:#334155;--line-card:#273041;--line-soft:#243041;--line-auth:#2a3648;--line-auth-in:#35506e;--line-focus:#3d5a80;--blue:#6ea8e8;--blue-soft:#1e334d;--accent:#d4a094;--accent-soft:#4a3330;--tag:#7b92c9;--danger:#ff8a65;--success:#73d13d;--header-bg:color-mix(in srgb, var(--bg-card) 82%, transparent);--header-shadow:0 1px 3px #00000059;--page-glow:radial-gradient(1000px 420px at 10% -8%, #6ea8e81f, transparent 58%), radial-gradient(800px 380px at 92% 0%, #d4a09412, transparent 52%);--shadow-soft:0 1px 2px #00000040, 0 10px 28px #00000038;--shadow-lift:0 12px 32px #00000059;--shadow-press:none;--on-accent:#fff;--provider-border:#3a4658;--provider-fg:#e8eef6;--provider-hover:#222b38;--github-bg:#e8eef6;--github-hover:#fff}html{color:var(--ink);background:var(--bg-page);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:14px;line-height:1.6}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg-page);background-image:var(--page-glow);color:var(--ink);transition:background-color var(--ease), color var(--ease);background-attachment:fixed;overflow-x:clip}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid color-mix(in srgb, var(--blue) 55%, transparent);outline-offset:2px;border-radius:4px}button,a.btn,.pref-btn,.filters button,.header-session-btn{-webkit-tap-highlight-color:transparent}button:active:not(:disabled),.btn:active:not(:disabled),.pref-btn:active,.filters button:active{transform:translateY(1px)scale(.98)}.app-shell{flex-direction:column;min-height:100vh;display:flex;overflow-x:clip}.site-main{flex:1;padding:10px 0 28px}.container{width:min(1100px,100% - 24px);margin:0 auto}.site-header{z-index:40;background:var(--header-bg);border-bottom:1px solid var(--line);box-shadow:var(--header-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.2);transition:background-color var(--ease), border-color var(--ease), box-shadow var(--ease), height var(--ease);position:sticky;top:0}@media (hover:none),(prefers-reduced-transparency:reduce){.site-header{-webkit-backdrop-filter:none;background:var(--bg-card)}}.site-header.is-scrolled{box-shadow:var(--shadow-soft);border-bottom-color:color-mix(in srgb, var(--line) 55%, var(--blue) 45%)}.site-header.is-scrolled:after{content:"";background:linear-gradient(90deg, transparent 8%, color-mix(in srgb, var(--blue) 45%, transparent) 42%, color-mix(in srgb, var(--accent) 40%, transparent) 58%, transparent 92%);pointer-events:none;opacity:.9;height:1px;position:absolute;bottom:-1px;left:0;right:0}.header-inner{height:52px;transition:height var(--ease);align-items:center;gap:1rem;display:flex}.site-header.is-scrolled .header-inner{height:48px}.brand{color:inherit;transition:transform var(--ease);flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.brand:hover{transform:translateY(-1px)}.brand:hover .brand-mark{transform:rotate(-6deg)scale(1.04)}.brand-logo{align-items:center;gap:.45rem;line-height:1;display:inline-flex}.brand-mark{width:28px;height:28px;transition:transform var(--ease);border-radius:8px;flex-shrink:0;overflow:hidden}.brand-logo-lg .brand-mark{border-radius:12px;width:44px;height:44px}.brand-mark-plate{fill:#08090c}.brand-mark-cat{fill:#fff}.brand-mark-face{fill:#231815}.brand-word{font-family:var(--font-medium);letter-spacing:.04em;color:var(--ink);font-size:1.2rem;font-weight:700}.brand-logo-lg .brand-word{letter-spacing:-.025em;font-size:clamp(1.65rem,3.2vw,2.2rem)}.brand-word span{color:color-mix(in srgb, var(--accent) 72%, var(--blue))}.nav{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:1.05rem;min-width:0;height:100%;display:flex;overflow:auto hidden}.nav::-webkit-scrollbar{width:0;height:0;display:none}.nav a{color:var(--nav);font-size:15px;font-family:var(--font-medium);letter-spacing:.01em;transition:color var(--ease);white-space:nowrap;padding:.25rem .1rem;position:relative}.nav a:after{content:"";background:linear-gradient(90deg, var(--blue), color-mix(in srgb, var(--blue) 55%, var(--accent)));transform-origin:0;height:2px;transition:transform var(--ease);opacity:.9;border-radius:999px;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav a:hover,.nav a.active{color:var(--ink);font-weight:600}.nav a.active:after,.nav a:hover:after{transform:scaleX(1)}.nav-toggle{appearance:none;width:var(--control-h);height:var(--control-h);border:1px solid var(--line);background:var(--bg-muted);color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;margin:0;padding:0;display:none}.nav-toggle-bar{width:14px;height:1.5px;transition:transform .18s var(--ease), opacity .18s var(--ease);background:currentColor;border-radius:999px;display:block}.nav-toggle.is-open .nav-toggle-bar:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-toggle.is-open .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle.is-open .nav-toggle-bar:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.nav-drawer-backdrop,.nav-drawer{display:none}.header-actions{flex-shrink:0;align-items:center;gap:.45rem;margin-left:auto;display:flex}.header-search{color:var(--muted-2);border:1px solid var(--line);height:var(--control-h);background:var(--bg-muted);box-shadow:none;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;align-items:center;gap:.35rem;padding:0 .95rem;font-size:13px;display:inline-flex}.header-search:hover{color:var(--blue);border-color:var(--line-focus);background:var(--bg-elevated)}.header-search svg{opacity:.7;flex-shrink:0}.header-search-text{white-space:nowrap}.skip-link{z-index:1000;background:var(--bg-elevated);color:var(--ink);border:1px solid var(--line-focus);box-shadow:var(--shadow-soft);transition:transform .16s var(--ease);border-radius:999px;padding:.55rem .9rem;font-size:13px;font-weight:600;position:absolute;top:.75rem;left:1rem;transform:translateY(-160%)}.skip-link:focus,.skip-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px;transform:translateY(0)}.pref-btn{appearance:none;min-width:var(--control-h);height:var(--control-h);border:1px solid var(--line);background:var(--bg-muted);box-shadow:none;color:var(--muted);cursor:pointer;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.25rem;padding:0 .6rem;display:inline-flex}.pref-btn:hover{color:var(--blue);border-color:var(--line-focus);background:var(--bg-elevated)}.pref-btn.is-active{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 35%, var(--line));background:var(--blue-soft);box-shadow:none}.pref-btn:active{transform:translateY(1px)scale(.97)}.pref-btn svg{transition:transform .22s}.pref-btn.theme-spin svg{transform:rotate(180deg)}.lang-btn{letter-spacing:.02em;font-size:12px;font-weight:700}.header-session{align-items:center;gap:.35rem;display:inline-flex;position:relative}.header-session-login,.header-studio-link{border:1px solid var(--line);background:var(--bg-muted);height:32px;color:var(--muted);white-space:nowrap;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;align-items:center;padding:0 .75rem;font-size:12px;font-weight:600;display:inline-flex}.header-session-login:hover,.header-studio-link:hover{color:var(--blue);border-color:var(--line-focus)}.header-studio-link{color:var(--blue);border-color:var(--line-focus);background:var(--blue-soft)}.header-session-btn{appearance:none;border:1px solid var(--line);background:var(--bg-muted);max-width:11rem;height:32px;color:var(--ink);cursor:pointer;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;align-items:center;gap:.4rem;padding:0 .7rem;display:inline-flex}.header-session-btn:hover{border-color:var(--line-focus)}.header-session-btn.is-manage{border-color:var(--line-focus);background:var(--blue-soft)}.header-session-btn.is-browse{color:var(--muted)}.header-session-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.header-session-mode{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:600}.header-session-btn.is-manage .header-session-mode{color:var(--blue)}.header-session-menu{z-index:40;border:1px solid var(--line-card);background:var(--bg-card);border-radius:12px;flex-direction:column;gap:.15rem;min-width:11.5rem;padding:.4rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #0f172a1f}.header-session-menu-user{color:var(--ink);border-bottom:1px solid var(--line);margin-bottom:.15rem;padding:.35rem .55rem .45rem;font-size:12px;font-weight:700}.header-session-menu button,.header-session-menu a{appearance:none;text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.45rem .55rem;font-size:12px;font-weight:500;text-decoration:none;display:block}.header-session-menu button:hover,.header-session-menu a:hover{background:var(--bg-muted);color:var(--blue)}.header-session-menu .is-danger{color:var(--accent)}.side-admin{border-color:color-mix(in srgb, var(--line-focus) 55%, var(--line-card));background:linear-gradient(160deg, color-mix(in srgb, var(--blue-soft) 55%, transparent), transparent 70%), var(--bg-card)}.side-admin-lead{color:var(--muted);margin:0 0 .75rem;font-size:12px;line-height:1.5}.side-admin-actions{flex-wrap:wrap;gap:.4rem;display:flex}.article-admin{flex-wrap:wrap;gap:.45rem;margin:.55rem 0 .15rem;display:flex}@media (width<=720px){.header-session-mode{display:none}}.layout-grid{grid-template-columns:minmax(0,1fr) 296px;align-items:start;gap:12px;display:grid}.main-column,.side-column{min-width:0}.feed-panel,.article-panel,.side-card{background:var(--bg-card);border:1px solid var(--line-card);border-radius:var(--radius-lg);transition:background-color var(--ease), border-color var(--ease), box-shadow var(--ease), transform var(--ease);box-shadow:0 1px 0 #ffffff8c inset, var(--shadow-soft)}.feed-panel,.article-panel{overflow:hidden}.side-card{position:relative}[data-theme=dark] .feed-panel,[data-theme=dark] .article-panel,[data-theme=dark] .side-card{box-shadow:0 1px 0 #ffffff0a inset, var(--shadow-soft)}.feed-tabs{border-bottom:1px solid var(--line);align-items:stretch;gap:0;height:50px;padding:0 12px;display:flex}.feed-tabs a{color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 18px;font-size:16px;display:flex}.feed-tabs a.active,.feed-tabs a:hover{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.feed-intro{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;padding:10px 16px 4px;display:flex}.feed-intro strong{color:var(--ink);font-size:14px}.tool-stack{border-bottom:1px solid var(--line);background:radial-gradient(900px 280px at 8% 0%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 55%), radial-gradient(700px 260px at 92% 20%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 70%, transparent), transparent);grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);align-items:stretch;gap:.75rem 1.25rem;min-height:240px;padding:1.25rem 1.15rem 1.35rem;display:grid;position:relative;overflow:hidden}.tool-stack:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--blue) 35%, var(--line)), transparent);pointer-events:none;height:1px;position:absolute;inset:auto 0 0}.tool-stack-kicker{letter-spacing:.04em;color:var(--muted);text-transform:lowercase;align-items:center;gap:.35rem;margin:0 0 .35rem;font-size:12px;display:inline-flex}.tool-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.tool-dot-blue{background:var(--blue)}.tool-dot-orange{background:var(--accent)}.tool-stack-brand{margin:0 0 .45rem;line-height:1.1}.tool-stack-brand .brand-logo{display:inline-flex}.tool-stack-brand .brand-word{letter-spacing:-.03em;font-size:clamp(1.9rem,4vw,2.55rem)}.tool-stack-tagline{color:var(--muted);max-width:28rem;margin:0;font-size:.98rem;line-height:1.55}.tool-stack-links{flex-wrap:wrap;gap:.45rem;margin-top:.85rem;display:flex}.tool-stack-link{appearance:none;border:1px solid var(--line);background:var(--bg-elevated);height:30px;color:var(--muted);font-size:12.5px;font-family:var(--font-medium);letter-spacing:.01em;box-shadow:none;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;align-items:center;gap:.3rem;padding:0 .85rem;text-decoration:none;display:inline-flex}.tool-stack-link:hover{color:var(--blue);border-color:var(--line-focus);background:var(--blue-soft)}.tool-stack-link:active{transform:translateY(1px)scale(.98)}.tool-stack-link span{opacity:.45;transition:transform var(--ease), opacity var(--ease)}.tool-stack-link:hover span{opacity:.9;transform:translate(2px)}.mood-scroller{max-width:28rem;min-height:2.8em;position:relative}.mood-line{animation:.45s mood-fade-in}@keyframes mood-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mood-dots{gap:6px;margin-top:10px;display:flex}.mood-dot{background:color-mix(in srgb, var(--muted) 32%, transparent);cursor:pointer;width:7px;height:7px;transition:width var(--ease), background-color var(--ease), transform var(--ease);border:0;border-radius:999px;padding:0}.mood-dot:hover{background:color-mix(in srgb, var(--blue) 45%, var(--muted));transform:scale(1.15)}.mood-dot.active{background:linear-gradient(90deg, var(--blue), color-mix(in srgb, var(--blue) 55%, var(--accent)));width:16px}.tool-stack-copy{z-index:2;flex-direction:column;justify-content:center;display:flex;position:relative}.tool-stack-banner{background:color-mix(in srgb, var(--bg-card) 88%, transparent);border:1px solid color-mix(in srgb, var(--line) 85%, transparent);border-radius:14px;height:100%;min-height:240px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14}.tool-stack-banner.is-loading{opacity:.45}.tool-tags-all{transform-origin:50%;pointer-events:none;justify-content:flex-start;align-items:center;width:180%;height:220%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-30deg)scale(2)}.tool-tags-wrapper{will-change:transform;pointer-events:auto;flex-wrap:nowrap;align-items:flex-start;gap:0;animation:78s linear infinite tool-rowup;display:flex;position:relative;top:0;left:-8%}.tool-stack-banner:hover .tool-tags-wrapper{animation-play-state:paused}.tool-tags-col{flex-direction:column;flex-shrink:0;gap:.51rem;margin-left:.58rem;display:flex}.tool-banner-icon{color:inherit;text-decoration:none;display:block;transform:translateZ(0)}.tool-banner-icon .tool-icon-face{background:var(--tool-bg,#64748b);width:2.48rem;height:2.48rem;color:var(--tool-fg,#fff);font-family:var(--font-medium);letter-spacing:-.02em;border:1px solid color-mix(in srgb, var(--line) 70%, transparent);border-radius:.64rem;place-items:center;font-size:.76rem;font-weight:700;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,filter .28s;display:grid;overflow:hidden;box-shadow:0 8px 14px #0f172a24,0 2px #0f172a14}.tool-banner-icon:hover .tool-icon-face{filter:brightness(1.06);transform:translateY(-5px)scale(1.08)rotate(6deg);box-shadow:0 14px 24px #0f172a33,0 3px #0f172a0f}.tool-banner-icon:active .tool-icon-face{transition-duration:.1s;transform:translateY(-2px)scale(1.02)}.tool-banner-icon .tool-icon-face.has-brand{padding:.34rem}.tool-brand-svg{width:100%;height:100%;display:block}.tool-stack-banner-fade{z-index:2;pointer-events:none;width:56px;position:absolute;top:0;bottom:0}.tool-stack-banner-fade-l{background:linear-gradient(90deg, var(--bg-card), transparent);left:0}.tool-stack-banner-fade-r{background:linear-gradient(270deg, var(--bg-card), transparent);right:0}@keyframes tool-rowup{0%{transform:translate(0)}to{transform:translate(-50%)}}[data-theme=dark] .tool-stack-banner{background:color-mix(in srgb, var(--bg-elevated) 92%, #000)}[data-theme=dark] .tool-banner-icon .tool-icon-face{border-color:#ffffff1f;box-shadow:0 12px 24px #00000073,0 2px #00000040}[data-theme=dark] .tool-banner-icon:hover .tool-icon-face{box-shadow:0 20px 36px #0000008c,0 4px #0003}[data-theme=dark] .tool-banner-icon .tool-icon-face.has-brand{background:#1c2430}[data-theme=dark] .tool-stack-banner-fade-l{background:linear-gradient(90deg, var(--bg-elevated), transparent)}[data-theme=dark] .tool-stack-banner-fade-r{background:linear-gradient(270deg, var(--bg-elevated), transparent)}[data-theme=dark] .brand-mark-plate{fill:color-mix(in srgb, var(--blue) 18%, var(--bg-card))}@media (width<=820px){.tool-stack{grid-template-columns:1fr;min-height:0;padding:1rem 1rem 1.1rem}.tool-stack-banner{height:190px;min-height:190px}.tool-tags-all{transform:translate(-50%,-50%)rotate(-30deg)scale(2.12)}.tool-banner-icon .tool-icon-face{border-radius:.54rem;width:2.04rem;height:2.04rem}.tool-tags-col{gap:.42rem;margin-left:.46rem}}@media (width<=520px){.tool-stack-banner{height:170px;min-height:170px}.tool-tags-all{transform:translate(-50%,-50%)rotate(-30deg)scale(2.2)}.tool-banner-icon .tool-icon-face{border-radius:.48rem;width:1.8rem;height:1.8rem;padding:.28rem}.tool-tags-col{gap:.34rem;margin-left:.38rem}}@media (prefers-reduced-motion:reduce){.tool-tags-wrapper{animation:none!important;transform:translate(-8%)!important}.tool-banner-icon .tool-icon-face,.page-enter,.reveal,.skel{transition:none!important;animation:none!important}.tool-banner-icon:hover .tool-icon-face,.tool-banner-icon:active .tool-icon-face{transform:none}.reveal{opacity:1;transform:none}}.panel-head{border-bottom:1px solid var(--line);padding:12px 16px 6px}.panel-head h1{margin:0 0 2px;font-size:18px;font-weight:600}.panel-head p{color:var(--muted);margin:0}.works-page{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--line-card);box-shadow:var(--shadow-soft);gap:0;margin:-4px -4px 0;display:grid;overflow:hidden}.works-hero{isolation:isolate;align-items:end;min-height:clamp(220px,38vh,420px);display:grid;position:relative;overflow:hidden}.works-hero-bg{z-index:0;position:absolute;inset:-8%}.works-hero-bg img{object-fit:cover;filter:saturate(1.05)contrast(1.05);width:100%;height:100%;animation:18s ease-in-out infinite alternate works-drift;transform:scale(1.06)}.works-hero-veil{z-index:1;background:linear-gradient(#080c1426 0%,#080c148c 48%,#080c14e0 100%),radial-gradient(900px 420px at 18% 10%,#17519947,#0000 60%),radial-gradient(700px 360px at 92% 20%,#ff513429,#0000 55%);position:absolute;inset:0}[data-theme=light] .works-hero-veil{background:linear-gradient(#0f172a33 0%,#0f172a8c 50%,#0f172adb 100%),radial-gradient(900px 420px at 18% 10%,#17519938,#0000 60%),radial-gradient(700px 360px at 92% 20%,#ff51341f,#0000 55%)}.works-hero-copy{z-index:2;color:#f5f8ff;max-width:34rem;animation:fade-up .7s var(--ease-out) both;padding:clamp(28px,5vw,48px) clamp(18px,3vw,32px) clamp(22px,4vw,36px);position:relative}.works-kicker{letter-spacing:.28em;text-transform:uppercase;color:#ffffffb8;margin:0 0 8px;font-size:12px}.works-brand{font-family:var(--font-medium);letter-spacing:.02em;margin:0;font-size:clamp(2.4rem,7vw,4.2rem);font-weight:700;line-height:.95}.works-lead{color:#ffffffd1;max-width:28rem;margin:14px 0 0;font-size:clamp(14px,2.2vw,17px);line-height:1.55}.works-count{letter-spacing:.08em;color:#ffffff94;margin:14px 0 0;font-size:12px}.works-mosaic{background:color-mix(in srgb, var(--bg-page) 55%, var(--bg-card));grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid}@media (width>=760px){.works-mosaic{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:10px}.works-tile-feature{grid-area:span 2/span 4;min-height:420px}.works-tile{grid-column:span 2;min-height:205px}.works-tile-tall{grid-row:span 2;min-height:420px}}@media (width<=759px){.works-tile-feature{grid-column:span 2;min-height:280px}.works-tile{min-height:180px}.works-tile-tall{min-height:220px}}.works-tile{color:#fff;isolation:isolate;background:var(--bg-cover);animation:works-rise .72s var(--ease-out) both;animation-delay:calc(var(--i,0) * 55ms);border-radius:10px;text-decoration:none;display:block;position:relative;overflow:hidden}.works-tile-media{z-index:0;position:absolute;inset:0}.works-tile-media img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease-out), filter .4s var(--ease);filter:saturate(1.04);transform:scale(1.02)}.works-tile-fallback{background:linear-gradient(145deg, color-mix(in srgb, var(--blue) 35%, #1a2433), #101820 70%);width:100%;height:100%}.works-tile-shade{z-index:1;opacity:.88;transition:opacity .32s var(--ease);background:linear-gradient(#0000 35%,#080c14c7 100%);position:absolute;inset:0}.works-tile-meta{z-index:2;transition:transform .42s var(--ease-out);padding:14px 14px 12px;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.works-tile-meta h2,.works-tile-meta h3{font-family:var(--font-medium);text-wrap:balance;margin:6px 0 0;font-size:1.05rem;line-height:1.25}.works-tile-feature .works-tile-meta h2{font-size:clamp(1.35rem,2.6vw,1.85rem)}.works-tile-meta p{color:#ffffffc7;max-width:36rem;margin:8px 0 0;font-size:13px;line-height:1.45}.works-tile-meta time{letter-spacing:.04em;color:#ffffff8c;margin-top:8px;font-size:11px;display:inline-block}.works-cat{letter-spacing:.06em;color:#ffffffb3;font-size:11px;display:inline-block}.works-tile:hover .works-tile-media img,.works-tile:focus-visible .works-tile-media img{filter:saturate(1.12)contrast(1.04);transform:scale(1.08)}.works-tile:hover .works-tile-shade,.works-tile:focus-visible .works-tile-shade{opacity:1}.works-tile:hover .works-tile-meta,.works-tile:focus-visible .works-tile-meta{transform:translateY(0)}.works-tile:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.works-skeleton{grid-template-columns:repeat(2,1fr);gap:8px;padding:8px;display:grid}.works-skel{background:linear-gradient(90deg, var(--bg-cover), var(--bg-elevated), var(--bg-cover));background-size:200% 100%;border-radius:10px;min-height:160px;animation:1.2s linear infinite works-shimmer}.works-skel.featured{grid-column:span 2;min-height:240px}@keyframes works-drift{0%{transform:scale(1.05)translate(0,0)}to{transform:scale(1.1)translate(-1.5%,-1%)}}@keyframes works-rise{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes works-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.works-page .pagination{border-top:1px solid var(--line-soft);background:var(--bg-card);padding:10px 14px 16px}@media (prefers-reduced-motion:reduce){.works-hero-bg img,.works-tile,.works-tile-media img,.works-tile-meta,.works-skel{transition:none!important;animation:none!important}}.about-page{background:var(--bg-card);border:1px solid var(--line-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);gap:0;display:grid;overflow:hidden}.about-hero{background:radial-gradient(900px 320px at 0% 0%, color-mix(in srgb, var(--blue) 14%, transparent), transparent 55%), radial-gradient(700px 280px at 100% 10%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 80%, transparent), var(--bg-card));border-bottom:1px solid var(--line-soft);animation:fade-up .56s var(--ease-out) both;padding:clamp(28px,4vw,44px) clamp(18px,3vw,32px) clamp(24px,3vw,36px)}.about-kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:12px}.about-brand{font-family:var(--font-medium);letter-spacing:.01em;margin:0;font-size:clamp(1.9rem,4.5vw,2.6rem);line-height:1.15}.about-hello{color:var(--ink);margin:14px 0 0;font-size:1.05rem}.about-lead{max-width:40rem;color:var(--ink-hover);margin:12px 0 0;font-size:1.02rem;line-height:1.65}.about-sub{max-width:40rem;color:var(--muted);margin:10px 0 0;line-height:1.6}.about-block{border-bottom:1px solid var(--line-soft);padding:clamp(22px,3vw,32px) clamp(18px,3vw,32px)}.about-block:last-child{border-bottom:0}.about-block h2{font-family:var(--font-medium);margin:0 0 8px;font-size:1.25rem}.about-block-lead{color:var(--muted);margin:0 0 14px;line-height:1.55}.about-block>p{max-width:44rem;color:var(--ink-hover);margin:0 0 10px;line-height:1.7}.about-projects{gap:14px;display:grid}@media (width>=820px){.about-projects{grid-template-columns:1fr 1fr;gap:16px}}.about-project{border:1px solid var(--line-card);border-radius:var(--radius);background:linear-gradient(165deg, color-mix(in srgb, var(--blue-soft) 55%, var(--bg-card)), var(--bg-card) 55%);animation:works-rise .65s var(--ease-out) both;animation-delay:calc(var(--i,0) * 80ms);transition:border-color var(--ease), transform var(--ease), box-shadow var(--ease);gap:12px;padding:18px 18px 16px;display:grid}.about-project:hover{border-color:var(--line-focus);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.about-project-tag{letter-spacing:.08em;color:var(--tag);margin-bottom:6px;font-size:11px;display:inline-block}.about-project-top h3{font-family:var(--font-medium);margin:0;font-size:1.35rem}.about-project-blurb{color:var(--muted);margin:6px 0 0;line-height:1.45}.about-project-desc{color:var(--ink-hover);margin:0;line-height:1.65}.about-points-label{letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-size:12px}.about-project-points ul{color:var(--ink);gap:6px;margin:0;padding:0 0 0 1.1rem;line-height:1.5;display:grid}.about-cta{background:var(--blue);width:fit-content;color:var(--on-accent);font-family:var(--font-medium);transition:transform var(--ease), filter var(--ease);border-radius:999px;align-items:center;margin-top:4px;padding:10px 14px;font-size:14px;text-decoration:none;display:inline-flex}.about-cta:hover{filter:brightness(1.06);transform:translateY(-1px)}.about-url{color:var(--muted);word-break:break-all;font-size:12px;text-decoration:none}.about-url:hover{color:var(--blue)}.about-link-row{flex-wrap:wrap;gap:8px;display:flex}.about-link-row a{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);transition:border-color var(--ease), color var(--ease), background var(--ease);border-radius:999px;align-items:center;padding:8px 12px;font-size:13px;text-decoration:none;display:inline-flex}.about-link-row a:hover{border-color:var(--line-focus);color:var(--blue);background:var(--blue-soft)}.feed-list{padding:0 8px}.feed-item{border-bottom:1px solid var(--line);border-radius:var(--radius-sm);animation:fade-up .48s var(--ease-out) both;transition:background-color var(--ease), box-shadow var(--ease);margin:0;padding:12px 10px 10px 12px;position:relative}.feed-item:first-child{animation-delay:30ms}.feed-item:nth-child(2){animation-delay:70ms}.feed-item:nth-child(3){animation-delay:.11s}.feed-item:nth-child(4){animation-delay:.15s}.feed-item:nth-child(5){animation-delay:.19s}.feed-item:nth-child(6){animation-delay:.23s}.feed-item:last-child{border-bottom:none}.feed-item:hover{background:color-mix(in srgb, var(--ink) 3.5%, transparent)}.feed-item.is-expanded{background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);box-shadow:inset 0 0 0 1px var(--line-soft)}.feed-title{color:var(--ink);letter-spacing:-.015em;margin:0 0 8px;font-size:17px;font-weight:700;line-height:1.35}.feed-title a:hover{color:var(--ink-hover)}.feed-title-row{align-items:flex-start;gap:.45rem;width:100%;display:flex}.feed-title-link{min-width:0;color:inherit;transition:color var(--ease);flex:1;text-decoration:none}.feed-title-link:hover{color:var(--blue)}.feed-expand-btn{appearance:none;cursor:pointer;color:inherit;background:0 0;border:0;border-radius:6px;flex-shrink:0;margin:0;padding:.2rem;line-height:1}.feed-expand-btn:hover{color:var(--blue)}.feed-expand-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.feed-body{align-items:flex-start;gap:12px;display:flex}.feed-rich{min-width:0;color:var(--ink);flex:1;line-height:1.55}.feed-rich p{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;margin:0 0 2px;font-size:13.5px;display:-webkit-box;overflow:hidden}.feed-title-btn,.feed-more,.feed-cover,.feed-expand-btn{appearance:none;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0}.feed-title-btn{width:100%;transition:color var(--ease);align-items:flex-start;gap:.45rem;display:inline-flex}.feed-title-btn:hover{color:var(--blue)}.feed-title-chevron{border-right:1.6px solid var(--muted-2);border-bottom:1.6px solid var(--muted-2);width:.55rem;height:.55rem;transition:transform var(--ease), border-color var(--ease);opacity:.7;flex-shrink:0;margin-top:.35em;display:inline-block;transform:rotate(-45deg)}.feed-expand-btn .feed-title-chevron{margin-top:.45em}.feed-item.is-expanded .feed-title-chevron{border-color:var(--blue);opacity:1;transform:rotate(45deg)}.feed-cover{border-radius:var(--radius-sm);background:var(--bg-cover);width:148px;height:82px;transition:transform var(--ease), box-shadow var(--ease);flex:0 0 148px;display:block;position:relative;overflow:hidden;box-shadow:0 2px 8px #1220400f}.feed-cover:after{content:"";opacity:0;transition:opacity var(--ease);pointer-events:none;background:linear-gradient(#0000 55%,#1212121f);position:absolute;inset:0}.feed-item:hover .feed-cover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.feed-item:hover .feed-cover:after{opacity:1}.feed-cover img{object-fit:cover;width:100%;height:100%;transition:transform .48s var(--ease-out)}.feed-item:hover .feed-cover img{transform:scale(1.05)}.feed-more{color:var(--blue);transition:gap var(--ease), color var(--ease);align-items:center;gap:.25rem;font-size:13px;display:inline-flex}.feed-more:after{content:"→";opacity:.55;transition:transform var(--ease), opacity var(--ease)}.feed-more:hover{gap:.45rem;text-decoration:none}.feed-more:hover:after{opacity:1;transform:translate(2px)}.feed-more:disabled{opacity:.6;cursor:wait;text-decoration:none}.feed-more:disabled:after{display:none}.feed-expanded{animation:expand-in .32s var(--ease-out) both;padding:4px 0 8px}.feed-expanded-cover{border-radius:var(--radius);max-width:100%;box-shadow:var(--shadow-soft);margin-bottom:12px;overflow:hidden}.feed-expanded-cover img{object-fit:cover;width:100%;max-height:360px}.feed-expanded-prose{margin-bottom:12px}.feed-expanded-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding-top:8px;display:flex}.feed-expanded-actions .feed-admin{margin:0 0 0 auto}.feed-permalink{color:var(--muted);transition:color var(--ease);font-size:13px}.feed-permalink:hover{color:var(--blue)}.feed-actions{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:8px;padding:4px 0 0;font-size:12px;display:flex}.feed-tag,.chip{background:color-mix(in srgb, var(--tag) 12%, var(--bg-chip));color:var(--tag);border:1px solid color-mix(in srgb, var(--tag) 22%, transparent);border-radius:var(--radius-sm);letter-spacing:.01em;align-items:center;padding:0 9px;font-size:12px;font-weight:600;line-height:22px;display:inline-flex}.feed-footer{text-align:center;padding:18px 16px 20px}.feed-footer .btn{min-width:9rem}.feed-skeleton{gap:14px;padding:14px 18px 8px;display:grid}.skel{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-muted) 0%, color-mix(in srgb, var(--bg-chip) 40%, var(--bg-muted)) 45%, var(--bg-muted) 100%);background-size:200% 100%;animation:1.2s ease-in-out infinite skel-shine}.skel-title{width:72%;height:18px}.skel-line{width:100%;height:12px}.skel-line.short{width:48%}.skel-row{gap:12px;display:flex}.skel-cover{flex:0 0 148px;width:148px;height:82px}.skel-text{flex:1;align-content:start;gap:8px;padding-top:4px;display:grid}@keyframes skel-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.side-card{margin-bottom:10px;padding:12px 14px}.side-card-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:13px;font-weight:700}.side-project-list{gap:.45rem;display:grid}.side-project{transition:background-color var(--ease), border-color var(--ease), transform var(--ease);border:1px solid #0000;border-radius:8px;padding:.55rem .6rem;display:block}.side-project:hover{background:color-mix(in srgb, var(--blue-soft) 55%, transparent);border-color:color-mix(in srgb, var(--line-focus) 70%, transparent);transform:translate(2px)}.side-project-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.15rem;display:flex}.side-project-name{color:var(--ink);font-size:14px;font-weight:700}.side-project-tag{letter-spacing:.04em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);border-radius:999px;flex-shrink:0;padding:.12rem .45rem;font-size:10px;font-weight:700}.side-project-blurb{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.side-profile{background:radial-gradient(120px 80px at 100% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), radial-gradient(140px 90px at 0% 100%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 70%), var(--bg-card)}.side-profile-head{align-items:center;gap:.7rem;margin-bottom:.55rem;display:flex}.side-avatar{width:40px;height:40px;color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, var(--bg-chip));border:1px solid var(--line);border-radius:12px;place-items:center;padding:0;display:grid;overflow:hidden}.side-avatar img{object-fit:cover;width:100%;height:100%;display:block}.side-avatar-mono{font-family:var(--font-medium);letter-spacing:.02em;color:var(--ink);opacity:.78;font-size:15px;font-weight:700;line-height:1}.side-profile-name{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.side-profile-bio,.side-profile-tagline{color:var(--muted);margin:0 0 8px;line-height:1.6}.side-profile-tagline{color:var(--accent)}.side-link{color:var(--blue);transition:gap var(--ease), color var(--ease);align-items:center;gap:.25rem;margin-top:6px;font-size:13px;display:inline-flex}.side-link:after{content:"→";opacity:.5;transition:transform var(--ease), opacity var(--ease)}.side-link:hover{gap:.4rem;text-decoration:none}.side-link:hover:after{opacity:1;transform:translate(2px)}.side-github-graph{color:inherit;text-decoration:none;display:block}.gh-weeks{grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;width:100%;display:grid}.gh-week{grid-template-rows:repeat(7,1fr);gap:2px;display:grid}.gh-day{aspect-ratio:1;background:color-mix(in srgb, var(--muted-2) 22%, transparent);border-radius:2px;min-width:0}.gh-day.is-empty{visibility:hidden}.gh-day.l1{background:#9be9a8}.gh-day.l2{background:#40c463}.gh-day.l3{background:#30a14e}.gh-day.l4{background:#216e39}[data-theme=dark] .gh-day{background:color-mix(in srgb, var(--muted-2) 28%, transparent)}[data-theme=dark] .gh-day.l1{background:#0e4429}[data-theme=dark] .gh-day.l2{background:#006d32}[data-theme=dark] .gh-day.l3{background:#26a641}[data-theme=dark] .gh-day.l4{background:#39d353}.side-github-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.side-github-total{color:var(--muted);font-size:12px;text-decoration:none}.side-github-total:hover{color:var(--blue)}.gh-legend{color:var(--muted-2);align-items:center;gap:3px;font-size:11px;display:inline-flex}.gh-legend .gh-day{aspect-ratio:auto;width:9px;height:9px}.side-tags{flex-wrap:wrap;gap:8px;display:flex}.side-tags a{background:var(--bg-chip);color:var(--tag);border-radius:var(--radius-sm);transition:background-color var(--ease), border-color var(--ease), transform var(--ease), color var(--ease);border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.side-tags a span{color:var(--muted-2);font-size:12px}.side-tags a:hover{background:var(--blue-soft);border-color:color-mix(in srgb, var(--blue) 20%, transparent);color:var(--blue);transform:translateY(-1px)}.side-works{gap:12px;display:grid}.side-work{border-radius:var(--radius-sm);transition:background-color var(--ease), transform var(--ease);margin:0 -6px;padding:6px;display:block}.side-work:hover{background:color-mix(in srgb, var(--blue-soft) 55%, transparent);transform:translateY(-1px)}.side-work-cover{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-cover);transition:box-shadow var(--ease);margin-bottom:6px;position:relative;overflow:hidden;box-shadow:0 2px 8px #1220400f}.side-work:hover .side-work-cover{box-shadow:var(--shadow-soft)}.side-work-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out)}.side-work:hover .side-work-cover img{transform:scale(1.06)}.side-work-title{-webkit-line-clamp:2;transition:color var(--ease);-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.side-work:hover .side-work-title{color:var(--blue)}.side-foot{color:var(--muted-2);flex-direction:column;gap:.55rem;font-size:12px;line-height:1.55;display:flex}.side-foot-copy{color:var(--muted);letter-spacing:.01em;margin:0}.side-foot-beian{flex-direction:column;gap:.28rem;display:flex}.side-foot a{color:var(--muted-2);word-break:keep-all;overflow-wrap:anywhere;text-decoration:none}.side-foot a:hover{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.reveal{opacity:0;transition:opacity var(--ease-out), transform var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(12px)}.reveal.is-in{opacity:1;transform:translateY(0)}.page-enter{animation:page-in .38s var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.search-bar{gap:8px;padding:12px 16px 4px;display:flex}.search-bar input{border:1px solid var(--line-strong);background:var(--bg-muted);color:var(--ink);box-shadow:none;transition:border-color var(--ease), box-shadow var(--ease), background-color var(--ease);border-radius:999px;flex:1;padding:.55rem 1rem}.search-bar input:focus{border-color:var(--line-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 16%, transparent);background:var(--bg-card);outline:none}.filters{flex-wrap:wrap;gap:8px;padding:10px 16px 4px;display:flex}.filters button{border:1px solid var(--line);background:var(--bg-elevated);color:var(--muted);cursor:pointer;box-shadow:none;transition:background-color var(--ease), color var(--ease), border-color var(--ease);border-radius:999px;padding:.38rem .9rem}.filters button.active,.filters button:hover{color:var(--on-accent);background:var(--blue);border-color:var(--blue);box-shadow:none}.btn{border:1px solid var(--line-strong);background:var(--bg-elevated);min-height:36px;color:var(--ink);cursor:pointer;font-family:var(--font-medium);letter-spacing:.01em;box-shadow:none;transition:border-color var(--ease), color var(--ease), background-color var(--ease), filter var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem 1.1rem;display:inline-flex}.btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-accent);box-shadow:none}.btn.primary:hover{filter:brightness(1.06);color:var(--on-accent);background:var(--blue);box-shadow:none}.btn.ghost{box-shadow:none;background:0 0}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--line))}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;filter:none;transform:none}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--success)}.empty-state,.state-msg{color:var(--muted);padding:2rem 1.25rem}.pagination{justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.kak-padding{padding:10px 16px 18px}.kak-title{margin:4px 0 8px;font-size:22px;font-weight:600;line-height:1.35}.kak-info{color:var(--muted-2);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:13px;display:flex}.kak-line{border-bottom:1px solid var(--line-strong);margin:12px 0 18px}.article-cover{border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}.content-gallery img{cursor:zoom-in}.content-gallery .article-cover img{width:100%;display:block}.img-lightbox{z-index:1200;-webkit-backdrop-filter:blur(10px);color:#f5f7fb;background:#080c12e0;animation:.16s ease-out img-lightbox-in;position:fixed;inset:0}@keyframes img-lightbox-in{0%{opacity:0}to{opacity:1}}.img-lightbox-top{z-index:3;min-height:2.5rem;padding:max(.65rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) .55rem max(.75rem, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:absolute;top:0;left:0;right:0}.img-lightbox-top>*{pointer-events:auto}.img-lightbox-count{font-variant-numeric:tabular-nums;color:#ffffffc7;text-shadow:0 1px 2px #00000073;font-size:.92rem}.img-lightbox-actions{flex-wrap:wrap;gap:.4rem;display:flex}.img-lightbox-btn{appearance:none;color:#fff;font:inherit;cursor:pointer;background:#00000073;border:1px solid #ffffff38;border-radius:999px;padding:.35rem .85rem;font-size:.86rem}.img-lightbox-btn:hover,.img-lightbox-btn.is-active{background:#ffffff29;border-color:#fff6}.img-lightbox-stage{z-index:1;padding:max(3.6rem, calc(env(safe-area-inset-top) + 2.8rem)) max(3.2rem, env(safe-area-inset-right)) max(4.8rem, calc(env(safe-area-inset-bottom) + 3.6rem)) max(3.2rem, env(safe-area-inset-left));box-sizing:border-box;justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:0}.img-lightbox-stage img{object-fit:contain;cursor:default;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#00000040;border-radius:6px;width:auto;max-width:100%;height:auto;max-height:100%;display:block;box-shadow:0 12px 40px #00000059}.img-lightbox-stage figcaption{left:50%;bottom:max(3.35rem, calc(env(safe-area-inset-bottom) + 2.6rem));text-align:center;color:#ffffffc7;text-shadow:0 1px 3px #0000008c;pointer-events:none;max-width:min(92vw,40rem);margin:0;padding:0 .75rem;font-size:.86rem;line-height:1.45;position:absolute;transform:translate(-50%)}.img-lightbox-nav{color:#fff;cursor:pointer;z-index:4;background:#00000073;border:1px solid #ffffff38;border-radius:999px;place-items:center;width:2.6rem;height:2.6rem;font-size:1.6rem;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.img-lightbox-nav:hover{background:#ffffff29}.img-lightbox-prev{left:max(.7rem, env(safe-area-inset-left))}.img-lightbox-next{right:max(.7rem, env(safe-area-inset-right))}.img-lightbox-thumbs{z-index:3;padding:.45rem .75rem max(.65rem, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;background:linear-gradient(#0000,#00000059);justify-content:center;gap:.4rem;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-x:auto}.img-lightbox-thumb{cursor:pointer;opacity:.72;background:#00000059;border:2px solid #0000;border-radius:5px;flex:none;width:3.2rem;height:2.3rem;padding:0;overflow:hidden}.img-lightbox-thumb img{object-fit:cover;width:100%;height:100%;display:block}.img-lightbox-thumb.is-active,.img-lightbox-thumb:hover{opacity:1;border-color:#ffffffb3}@media (width<=720px){.img-lightbox-stage{padding:max(3.4rem, calc(env(safe-area-inset-top) + 2.6rem)) .5rem max(4.6rem, calc(env(safe-area-inset-bottom) + 3.4rem)) .5rem}.img-lightbox-nav{width:2.2rem;height:2.2rem;font-size:1.35rem}.img-lightbox-prev{left:.25rem}.img-lightbox-next{right:.25rem}.img-lightbox-stage figcaption{bottom:max(3.1rem, calc(env(safe-area-inset-bottom) + 2.4rem))}}.source-link{color:var(--muted);word-break:break-all}.source-link a{color:var(--blue)}.video-frame{aspect-ratio:16/9;border-radius:var(--radius);background:#000;max-width:630px;margin:0 auto 1.25rem;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%}.comments-box{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:.85rem}.comments-head{flex-wrap:wrap;align-items:baseline;gap:.25rem .65rem;margin-bottom:.55rem;display:flex}.comments-title{letter-spacing:.01em;align-items:center;gap:.4rem;margin:0;font-size:15px;font-weight:700;display:inline-flex}.comments-count{background:color-mix(in srgb, var(--blue) 12%, transparent);min-width:1.2rem;height:1.2rem;color:var(--blue);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 .35rem;font-size:11px;font-weight:700;display:inline-flex}.comments-hint{flex:12rem;margin:0;font-size:12px;line-height:1.35}.comments-loading{margin:0 0 .5rem;font-size:12px}.feed-expanded .comments-box{margin-top:.85rem}.comment-form{gap:.5rem;margin-bottom:.65rem;display:grid}.comment-fields{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.comment-form label{color:var(--muted);gap:.2rem;font-size:12px;display:grid}.comment-form input,.comment-form textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:var(--bg-muted);box-shadow:none;transition:border-color var(--ease), box-shadow var(--ease), background-color var(--ease);border-radius:10px;padding:9px 11px}.comment-form input:focus,.comment-form textarea:focus{border-color:color-mix(in srgb, var(--blue) 55%, var(--line));box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 14%, transparent);background:var(--bg-card);outline:none}.comment-form textarea{resize:vertical;min-height:72px;line-height:1.5}.comment-body-field{gap:0!important}.comment-hp{height:0;position:absolute;left:-9999px;overflow:hidden}.comment-form-actions{flex-wrap:wrap;align-items:center;gap:.45rem .65rem;display:flex}.comment-form-actions .btn.primary{border-radius:8px;min-height:34px;padding:0 14px;font-size:13px}.comment-oauth-inline{flex-wrap:wrap;align-items:center;gap:.4rem .5rem;display:inline-flex}.comment-oauth-label{font-size:12px}.comment-logged-bar,.comment-identity{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--bg-auth-in,var(--bg-card)) 80%, transparent);border-radius:10px;flex-wrap:nowrap;align-items:center;gap:.55rem;padding:.45rem .55rem;display:flex}.comment-identity-text{flex:1;gap:.05rem;min-width:0;display:grid}.comment-identity-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;line-height:1.25;overflow:hidden}.comment-identity-meta{white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.3;overflow:hidden}.comment-identity-logout{flex-shrink:0;font-size:12px}.comment-replying{color:var(--muted);align-items:center;gap:.55rem;font-size:12px;display:flex}.comment-replying button{color:var(--blue);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.comment-list,.comment-replies{margin:0;padding:0;list-style:none}.comment-item{border-top:1px solid var(--line-soft);padding:.55rem 0}.comment-auth{margin:0 0 .55rem;font-size:12px}.comment-auth-panel{border:1px solid var(--line-auth);background:var(--bg-auth);transition:background-color var(--ease), border-color var(--ease);border-radius:5px;margin:0 0 .55rem;padding:8px 10px}.comment-auth-panel.is-in{background:var(--bg-auth-in);border-color:var(--line-auth-in)}.comment-auth-session{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.comment-auth-session-text{flex:1;min-width:120px}.comment-auth-session-name{color:var(--ink);font-size:13px;font-weight:700}.comment-auth-guest{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.comment-auth-guest-copy{flex-wrap:wrap;flex:1;align-items:baseline;gap:.35rem .55rem;min-width:140px;font-size:12px;display:flex}.comment-auth-btns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.comment-provider-btn{border:1px solid var(--provider-border);background:var(--bg-card);height:32px;color:var(--provider-fg);font:inherit;cursor:pointer;transition:background-color var(--ease);border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.comment-provider-btn:hover{background:var(--provider-hover)}.comment-provider-btn.github{background:var(--github-bg);border-color:var(--github-bg);color:var(--bg-page)}.comment-provider-btn.github:hover{background:var(--github-hover)}.comment-gsi-slot{transform-origin:0;align-items:center;min-height:32px;display:inline-flex;transform:scale(.92)}.comment-logged-hint{margin:0;font-size:12px}.comment-avatar-lg{width:28px;height:28px}.comment-empty{background:color-mix(in srgb, var(--line-soft) 55%, transparent);border-radius:8px;margin:.15rem 0 .35rem;padding:.65rem .75rem;font-size:12px;line-height:1.4}.comment-auth-providers,.comment-auth-user{flex-wrap:wrap;align-items:center;gap:.55rem .85rem;display:flex}.comment-auth-link{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.comment-auth-link:hover{text-decoration:underline}.comment-email-note{align-items:flex-end;padding-bottom:8px;font-size:13px;line-height:1.4;display:flex}.comment-avatar{object-fit:cover;background:var(--bg-cover);border-radius:50%;flex-shrink:0;width:28px;height:28px}.comment-avatar-fallback{color:var(--blue);background:color-mix(in srgb, var(--blue) 14%, var(--bg-card));justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.comment-head{color:var(--muted);align-items:flex-start;gap:.65rem;margin-bottom:.3rem;font-size:13px;display:flex}.comment-head-text{flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;display:flex}.comment-via{text-transform:lowercase;font-size:12px}.comment-nick{color:var(--blue);font-weight:600;text-decoration:none}.comment-body{white-space:pre-wrap;color:var(--ink);margin:0;font-size:14px;line-height:1.6}.comment-reply-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-top:.3rem;padding:0;font-size:12px}.comment-reply-btn:hover{color:var(--blue)}.comment-floor-no{color:var(--muted);font-size:12px;font-weight:500}.comment-at{color:var(--blue);margin-right:.15rem;font-weight:500}.comment-inline-composer{background:var(--bg-inline);border:1px solid var(--line-auth);border-radius:8px;margin-top:.55rem;padding:.6rem .7rem}.comment-form-inline{margin-bottom:0}.comment-form-main{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-card) 92%, var(--line-soft));border-radius:12px;margin-top:0;margin-bottom:.55rem;padding:.7rem .75rem}.comment-list{border-top:1px solid var(--line);margin-top:.15rem}.comment-compose-title{color:var(--ink);margin-bottom:.25rem;font-size:13px;font-weight:600}.comment-form-feedback{margin-top:.55rem}.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}.article-back{border-top:1px solid var(--line-soft);margin-top:.85rem;padding-top:.65rem;font-size:13px}.article-back a{color:var(--muted);text-decoration:none}.article-back a:hover{color:var(--blue)}.article-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.65rem 0 .15rem;display:flex}.article-toolbar .article-admin{margin:0}.article-nav{border-top:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:.75rem;margin:1.35rem 0 .35rem;padding-top:1rem;display:grid}.article-nav a{border-radius:var(--radius-md);border:1px solid var(--line-soft);background:color-mix(in srgb, var(--bg-muted) 70%, transparent);color:inherit;transition:border-color var(--ease), background-color var(--ease), transform var(--ease);flex-direction:column;gap:.2rem;padding:.7rem .85rem;text-decoration:none;display:flex}.article-nav a:hover{border-color:var(--line-focus);background:var(--bg-elevated);transform:translateY(-1px)}.article-nav-next{text-align:right}.article-nav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.article-nav-title{color:var(--ink);font-size:14px;font-weight:600;line-height:1.35}.home-works,.home-topics{border-bottom:1px solid var(--line-soft);padding:.85rem 1.1rem .35rem}.home-works-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.65rem;display:flex}.home-works-head h2,.home-topics-title{letter-spacing:.02em;color:var(--ink);margin:0;font-size:14px;font-weight:700}.home-works-more{color:var(--muted);font-size:12px;text-decoration:none}.home-works-more:hover{color:var(--blue)}.home-works-strip{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;grid-auto-columns:minmax(118px,140px);grid-auto-flow:column;gap:.65rem;padding-bottom:.65rem;display:grid;overflow-x:auto}.home-work-tile{color:inherit;scroll-snap-align:start;flex-direction:column;gap:.4rem;text-decoration:none;display:flex}.home-work-media{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--line-soft);background:var(--bg-muted);position:relative;overflow:hidden}.home-work-private{z-index:1;position:absolute;top:6px;left:6px}.home-work-media img,.home-work-fallback{object-fit:cover;width:100%;height:100%;display:block}.home-work-fallback{background:radial-gradient(80px 60px at 30% 20%, color-mix(in srgb, var(--blue) 18%, transparent), transparent 70%), var(--bg-chip)}.home-work-title{-webkit-line-clamp:2;color:var(--ink);-webkit-box-orient:vertical;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.home-work-tile:hover .home-work-title{color:var(--blue)}.home-topics{padding-bottom:.85rem}.home-topics-title{margin-bottom:.55rem}.home-topic-chips{flex-wrap:wrap;gap:.4rem;display:flex}.home-topic-chip{border:1px solid var(--line);background:var(--bg-chip);height:28px;color:var(--ink);border-radius:999px;align-items:center;gap:.35rem;padding:0 .7rem;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.home-topic-chip span{color:var(--muted-2);font-weight:500}.home-topic-chip:hover{border-color:var(--line-focus);color:var(--blue)}.social-row{flex-direction:column;gap:.35rem;margin-top:.75rem;display:flex}.social-row-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.social-row-links{flex-wrap:wrap;gap:.4rem;display:flex}.social-row-links a{border:1px solid var(--line);background:var(--bg-chip);height:28px;color:var(--ink);border-radius:999px;align-items:center;padding:0 .7rem;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.social-row-links a:hover{color:var(--blue);border-color:var(--line-focus)}.side-social{margin:.55rem 0 .35rem}.about-hero-profile{align-items:flex-start;gap:1rem;display:flex}.about-avatar{border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 6%, var(--bg-chip));border-radius:18px;flex-shrink:0;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.about-avatar img{object-fit:cover;width:100%;height:100%;display:block}.about-avatar-letter{font-family:var(--font-medium);color:var(--ink);opacity:.8;font-size:1.4rem;font-weight:700}.about-social{margin-top:1rem}.works-filters{margin:.85rem 1rem .25rem}@media (width<=560px){.article-nav{grid-template-columns:1fr}.article-nav-next{text-align:left}.comment-fields{grid-template-columns:1fr}.comment-identity{flex-wrap:wrap}.comment-identity-logout{margin-left:auto}}.comment-replies{border-left:2px solid var(--line-auth);margin:.5rem 0 0 .85rem;padding-left:.85rem;list-style:none}.comment-replies .comment-item{padding:.7rem 0}.comment-replies .comment-replies{margin-left:.5rem}@media (width<=640px){.comment-fields{grid-template-columns:1fr}}.prose{color:var(--ink);word-wrap:break-word;overflow-wrap:anywhere;font-size:15px;line-height:1.67}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 1rem}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--font-medium);color:var(--ink);letter-spacing:-.01em;margin:1.55rem 0 .7rem;scroll-margin-top:4.5rem;line-height:1.35}.prose h1{font-size:1.55em}.prose h2{font-size:1.32em}.prose h3{font-size:1.16em}.prose h4{font-size:1.05em}.prose h5{color:var(--muted);font-size:.98em}.prose h6{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.92em}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p{margin-top:.15rem}.prose strong{color:var(--ink);font-weight:700}.prose em{font-style:italic}.prose del,.prose s{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.prose mark{background:color-mix(in srgb, var(--blue) 22%, transparent);color:inherit;border-radius:3px;padding:.05em .2em}.prose sub,.prose sup{font-size:.75em;line-height:0}.prose kbd{border:1px solid var(--line-strong);background:var(--bg-muted);border-bottom-width:2px;border-radius:4px;padding:.08rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;line-height:1.4;display:inline-block}.prose abbr[title]{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.35rem}.prose li{margin:.28rem 0}.prose li>ul,.prose li>ol{margin:.25rem 0 .35rem}.prose li>p{margin:.25rem 0}.prose ul ul,.prose ol ul{list-style-type:circle}.prose ul ul ul,.prose ol ul ul{list-style-type:square}.prose ul:has(>li>input[type=checkbox]){padding-left:.15rem;list-style:none}.prose li:has(>input[type=checkbox]){align-items:flex-start;gap:.5rem;display:flex}.prose li>input[type=checkbox]{width:.95rem;height:.95rem;accent-color:var(--blue);cursor:default;flex:none;margin:.35em 0 0}.prose dl{gap:.35rem .85rem;margin:0 0 1rem;display:grid}.prose dt{font-family:var(--font-medium);color:var(--ink);font-weight:650}.prose dd{color:var(--muted);margin:0 0 .55rem;padding-left:.15rem}.prose blockquote{border-left:3px solid var(--line-focus);background:color-mix(in srgb, var(--bg-muted) 70%, transparent);color:var(--muted);border-radius:0 8px 8px 0;margin:0 0 1rem;padding:.55rem .85rem}.prose blockquote>:last-child{margin-bottom:0}.prose blockquote>:first-child{margin-top:0}.prose a{color:var(--blue);text-underline-offset:.15em}.prose a:hover{text-decoration:underline}.prose img{border:1px solid var(--line-soft);background:var(--bg-cover);border-radius:6px;max-width:100%;height:auto;margin:1.1rem auto;display:block}.prose figure{margin:1.1rem 0}.prose figure img{margin:0 auto}.prose figcaption{text-align:center;color:var(--muted);margin-top:.45rem;font-size:.86em}.prose video,.prose iframe{border:0;border-radius:8px;max-width:100%;margin:1rem 0;display:block}.prose hr{border:0;border-top:1px solid var(--line);margin:1.5rem 0}.prose pre,.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.prose :not(pre)>code{background:var(--bg-code);border:1px solid color-mix(in srgb, var(--line) 70%, transparent);word-break:break-word;border-radius:3px;padding:.1rem .35rem}.prose pre{background:var(--bg-pre);border:1px solid var(--line);border-radius:var(--radius);-webkit-overflow-scrolling:touch;margin:0 0 1rem;padding:.9rem 1rem;line-height:1.55;overflow:auto}.prose pre code{font-size:inherit;color:inherit;word-break:normal;white-space:pre;background:0 0;border:0;padding:0}.prose .table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--line-card);background:var(--bg-elevated);border-radius:8px;width:100%;max-width:100%;margin:0 0 1.1rem;overflow-x:auto}.prose table{border-collapse:collapse;border-spacing:0;background:var(--bg-elevated);width:100%;min-width:22rem;margin:0 0 1.1rem;font-size:.92em;line-height:1.45}.prose .table-wrap table{background:0 0;border:0;min-width:28rem;margin:0}.prose thead{background:color-mix(in srgb, var(--bg-muted) 80%, var(--blue-soft))}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);padding:.55rem .75rem}.prose th:last-child,.prose td:last-child{border-right:none}.prose tr:last-child td{border-bottom:none}.prose th{font-family:var(--font-medium);color:var(--ink);white-space:nowrap;font-weight:650}.prose td{color:var(--ink)}.prose th[align=center],.prose td[align=center]{text-align:center}.prose th[align=right],.prose td[align=right]{text-align:right}.prose tbody tr:hover td{background:color-mix(in srgb, var(--blue-soft) 35%, transparent)}.prose details{border:1px solid var(--line-card);background:var(--bg-elevated);border-radius:8px;margin:0 0 1rem;padding:.65rem .85rem}.prose summary{cursor:pointer;font-family:var(--font-medium);font-weight:650}.prose details[open] summary{margin-bottom:.55rem}.prose details>:last-child{margin-bottom:0}.collect-list{gap:0;padding:8px 16px 16px;display:grid}.collect-private-hint{margin:0 16px 10px;font-size:.92rem;line-height:1.45}.collect-private-hint a{color:var(--accent,#2f6fed);text-underline-offset:2px}.collect-card{border-bottom:1px solid var(--line);border-radius:var(--radius-sm);transition:background-color var(--ease), transform var(--ease);padding:14px 6px;display:block}.collect-card:hover{background:color-mix(in srgb, var(--blue-soft) 50%, transparent);transform:translate(2px)}.collect-card .meta{color:var(--muted);gap:.5rem;margin-bottom:.35rem;font-size:12px;display:flex}.collect-card h3{margin:0 0 .35rem;font-size:16px;font-weight:600}.collect-card p{color:var(--muted);margin:0}.collect-url{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;margin-top:.4rem;font-size:12px;display:block;overflow:hidden}.studio{padding:0}.studio-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.studio-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,2.5vw,1.85rem)}.studio-user{margin:6px 0 0}.studio-top-actions{flex-wrap:wrap;gap:8px;display:flex}.studio-tabs{background:var(--bg-card);border:1px solid var(--line-card);border-radius:999px;gap:4px;margin:14px 0 12px;padding:4px;display:flex;overflow-x:auto}.studio-tab{color:var(--muted);cursor:pointer;white-space:nowrap;font:inherit;background:0 0;border:0;border-radius:999px;padding:8px 14px}.studio-tab:hover{color:var(--ink)}.studio-tab.active{background:var(--blue-soft);color:var(--ink);border:1px solid var(--line-focus)}.studio-tab-badge{background:color-mix(in srgb, var(--danger,#c44) 88%, transparent);color:#fff;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;margin-left:6px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.studio-upload-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.studio-cover-preview{border-radius:var(--radius-sm,6px);border:1px solid var(--line);object-fit:cover;background:var(--bg-code,#111);max-width:220px;max-height:120px;margin-top:8px;display:block}.studio-cover-preview.is-avatar{border-radius:50%;width:56px;max-width:56px;height:56px;max-height:56px}.studio-remind-list{gap:8px;margin-top:8px;display:grid}.studio-remind-list .studio-remind-row{border:1px solid var(--line);border-radius:var(--radius-sm,6px);background:color-mix(in srgb, var(--bg-card) 80%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.studio-remind-list .studio-remind-meta{flex:1;gap:2px;min-width:0;display:grid}.studio-remind-list .studio-remind-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-remind-list .studio-remind-ops{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.studio-flash{gap:4px;margin-bottom:10px;display:grid}.studio-search{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);font:inherit;margin-bottom:8px;padding:8px 10px}.studio-section{margin-top:0}.studio-editor-block{gap:6px;display:grid}.studio-editor-label{color:var(--muted);font-size:13px}.studio-inline-actions{align-items:end;padding-bottom:2px;display:flex}.studio-cat-table{gap:6px;margin-top:8px;display:grid}.studio-cat-head,.studio-cat-row{border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:1.4fr .6fr .7fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.studio-cat-head{background:color-mix(in srgb, var(--bg-card) 70%, transparent);color:var(--muted);font-size:12px}.studio-cat-row{background:var(--bg-card)}.md-editor{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);overflow:hidden}.md-editor-vditor{background:0 0;border:0;overflow:visible}.md-vditor-host{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);overflow:visible}.md-editor-tip{color:var(--muted);margin:8px 2px 0;font-size:12px;line-height:1.45}.md-editor-vditor .vditor{border-radius:var(--radius);--border-color:var(--line);border:0;overflow:visible}.md-editor-vditor .vditor-toolbar{background:color-mix(in srgb, var(--bg-card) 92%, transparent);border-bottom-color:var(--line);border-radius:var(--radius) var(--radius) 0 0;z-index:6;padding:6px 8px;position:relative;overflow:visible}.md-editor-vditor .vditor-content{border-radius:0 0 var(--radius) var(--radius);overflow:auto}.md-editor-vditor .vditor-tooltipped:after{white-space:nowrap;color:#fff;background:#1f2328;border-radius:6px;max-width:min(320px,80vw);padding:6px 10px;box-shadow:0 6px 18px #00000047;letter-spacing:0!important;font-size:12px!important;font-weight:600!important;line-height:1.35!important}.md-editor-vditor .vditor-tooltipped:before{border-top-color:#1f2328;border-bottom-color:#1f2328}@media screen and (width<=520px){.md-editor-vditor .vditor-tooltipped:hover:after,.md-editor-vditor .vditor-tooltipped:focus:after,.md-editor-vditor .vditor-tooltipped--hover:after{content:attr(aria-label);display:inline-block}.md-editor-vditor .vditor-tooltipped:hover:before,.md-editor-vditor .vditor-tooltipped:focus:before,.md-editor-vditor .vditor-tooltipped--hover:before{content:"";display:inline-block}}.md-editor-vditor .kak-vditor-polish{float:left;width:auto;margin:0 2px}.md-editor-vditor .vditor-toolbar .kak-vditor-polish>button.vditor-tooltipped,.md-editor-vditor .vditor-toolbar .kak-vditor-polish>button{box-sizing:border-box!important;border:1px solid color-mix(in srgb, var(--line-focus) 55%, transparent)!important;background:color-mix(in srgb, var(--blue-soft) 55%, transparent)!important;border-radius:6px!important;justify-content:center!important;align-items:center!important;width:max-content!important;min-width:max-content!important;max-width:none!important;height:max-content!important;min-height:28px!important;max-height:none!important;margin:3px 0!important;padding:5px 12px!important;font-size:12px!important;line-height:1.25!important;display:inline-flex!important;overflow:visible!important}.md-editor-vditor .kak-vditor-polish.is-disabled>button{opacity:.55;pointer-events:none}.md-editor-vditor .kak-vditor-polish-label{color:var(--ink);white-space:nowrap;vertical-align:middle;font-weight:700;display:inline-block;font-size:12px!important;line-height:1.25!important}.md-editor-vditor .vditor-reset{color:var(--ink);font-size:15px;line-height:1.7}.md-toolbar{background:var(--bg-card);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:8px;display:flex}.md-toolbar button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;min-width:30px;padding:4px 8px;font-size:12px}.md-toolbar button:hover,.md-toolbar button.is-active{background:var(--blue-soft);color:var(--ink);border-color:var(--line-focus)}.md-toolbar-spacer{flex:1}.md-polish-btn{border-color:color-mix(in srgb, var(--line-focus) 55%, transparent)!important;color:var(--ink)!important;background:color-mix(in srgb, var(--blue-soft) 55%, transparent)!important;font-weight:700!important}.md-polish-btn:disabled{opacity:.6;cursor:wait}.md-textarea{resize:vertical;width:100%;min-height:360px;color:var(--ink);line-height:1.55;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:12px 14px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:13px!important}.md-preview{background:color-mix(in srgb, var(--bg) 92%, #000);min-height:360px;max-height:640px;padding:14px 16px;overflow:auto}.studio-gate{align-content:start;justify-items:center;min-height:calc(100vh - 8rem);padding:2.5rem 1rem 3rem;display:grid}.studio-login{text-align:center;width:min(420px,100%);margin-top:.5rem}.studio-login-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.6rem,3vw,2rem)}.studio-login-hint{max-width:34em;margin:.65rem auto 1.25rem;line-height:1.55}.studio-login-card{text-align:left;margin:0 auto;padding:1.25rem 1.2rem 1.35rem}.studio-login-card.studio-panel{gap:.85rem;display:grid}.studio-remember{white-space:nowrap;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content;max-width:100%;font-size:13px;font-weight:600;flex-direction:row!important;grid-template-columns:none!important;align-items:center!important;gap:.55rem!important;display:flex!important}.studio-remember input,.studio-remember input[type=checkbox]{min-width:1rem;accent-color:var(--blue);flex:none;width:1rem!important;height:1rem!important;margin:0!important}.studio-layout{grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:12px;margin-top:12px;display:grid}.studio-layout.is-side-collapsed{grid-template-columns:minmax(0,1fr);gap:0}.studio-layout.is-side-collapsed .studio-side{display:none}.studio-side-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;margin-bottom:8px;display:grid}.studio-side-head .studio-search{margin-bottom:0}.studio-side-expand-bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.studio-field-hint{color:var(--muted);margin-top:4px;font-size:12px;font-weight:500;line-height:1.4;display:block}.studio-selection-hint{color:var(--ink);margin:6px 0 0;font-size:12px}.studio-selection-hint.muted{color:var(--muted)}.studio-extra-grid{grid-template-columns:1.2fr 1fr;gap:12px;margin-top:12px;display:grid}.studio-subhead{font-family:var(--font-display);margin:0;font-size:1.15rem}.studio-mood-input{min-height:88px!important}.studio-mood-list{gap:8px;max-height:320px;display:grid;overflow:auto}.studio-mood-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-card) 80%, transparent);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px;display:flex}.studio-mood-item p{color:var(--ink);margin:0 0 4px;line-height:1.45}.studio-comment-list{gap:10px;max-height:min(52vh,520px);display:grid;overflow:auto}.studio-comment-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-card) 80%, transparent);padding:12px}.studio-comment-item.is-hidden{opacity:.65}.studio-comment-meta{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:4px;font-size:13px;display:flex}.studio-badge{color:#a66b14;background:#c9892e2e;border-radius:999px;padding:1px 7px;font-size:11px}.studio-badge-private{color:#6d28d9;background:#7c3aed29}.studio-notes-main{align-content:start;gap:14px;display:grid}.studio-note-capture,.studio-note-editor{gap:10px;display:grid}.studio-note-capture-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.studio-note-input{font-size:15px;line-height:1.55;min-height:120px!important}.studio-note-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.studio-note-toolbar .btn.primary{margin-left:auto}.studio-note-toolbar .btn.is-remind-on,.studio-edit-remind .btn.is-remind-on{color:#fbbf24;border-color:color-mix(in srgb, #f59e0b 50%, var(--line,#2c3645));background:#f59e0b24}.studio-edit-remind{flex-direction:column;gap:10px;margin:8px 0 4px;display:flex}.remind-picker{border:1px solid var(--line,#2c3645);background:color-mix(in srgb, var(--panel,#1a222e) 90%, #f59e0b 4%);border-radius:12px;flex-direction:column;gap:10px;max-width:360px;margin-top:10px;padding:12px;display:flex}.remind-picker-presets{flex-wrap:wrap;gap:6px;display:flex}.remind-chip{appearance:none;border:1px solid var(--line,#2c3645);background:var(--panel-2,#222b38);color:var(--text,#eef3f9);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px}.remind-chip:hover{border-color:color-mix(in srgb, #f59e0b 55%, var(--line,#2c3645));color:#fde68a}.remind-chip.is-active{border-color:color-mix(in srgb, #f59e0b 70%, var(--line,#2c3645));background:color-mix(in srgb, #f59e0b 18%, var(--panel-2,#222b38));color:#fde68a}.remind-cal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.remind-cal-head strong{font-size:14px}.remind-dow,.remind-cal{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.remind-dow span{text-align:center;color:var(--muted,#8b9aaf);padding:2px 0;font-size:11px}.remind-cal button{appearance:none;color:var(--text,#eef3f9);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:8px;height:34px;font-size:13px}.remind-cal button:hover:not(:disabled){background:color-mix(in srgb, var(--accent,#3b82f6) 16%, transparent)}.remind-cal button:disabled{color:color-mix(in srgb, var(--muted,#8b9aaf) 45%, transparent);cursor:default}.remind-cal button.is-muted{color:var(--muted,#8b9aaf)}.remind-cal button.is-today{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent,#3b82f6) 55%, var(--line,#2c3645))}.remind-cal button.is-selected{background:color-mix(in srgb, #f59e0b 28%, var(--panel-2,#222b38));color:#fde68a;font-weight:700}.remind-time{color:var(--muted,#8b9aaf);align-items:center;gap:8px;font-size:13px;display:flex}.remind-time select{appearance:none;border:1px solid var(--line,#2c3645);background:linear-gradient(45deg, transparent 50%, var(--muted,#8b9aaf) 50%) right 10px top 12px / 5px 5px no-repeat, linear-gradient(135deg, var(--muted,#8b9aaf) 50%, transparent 50%) right 5px top 12px / 5px 5px no-repeat, var(--panel-2,#222b38);min-width:60px;color:var(--text,#eef3f9);font-variant-numeric:tabular-nums;border-radius:8px;padding:6px 24px 6px 10px}.remind-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.remind-summary{color:#fbbf24;font-variant-numeric:tabular-nums;font-size:13px}.studio-note-capture.is-dragover{outline:2px dashed var(--accent,#3b82f6);outline-offset:2px}.studio-vis-toggle{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.studio-vis-toggle input{width:auto}.studio-draft-hint{color:#6d28d9;margin:0;font-size:12px}.studio-attach-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.studio-attach-thumb{aspect-ratio:1;border:1px solid var(--line);background:#111;border-radius:8px;position:relative;overflow:hidden}.studio-attach-thumb img{object-fit:cover;width:100%;height:100%;display:block}.studio-attach-x{color:#fff;cursor:pointer;background:#000000a6;border:0;border-radius:999px;width:22px;height:22px;position:absolute;top:4px;right:4px}.btn.is-listening{color:#b91c1c;border-color:color-mix(in srgb, #ef4444 40%, var(--line))}@media (width<=860px){.studio-notes-layout{grid-template-columns:1fr}}.studio-comment-article{color:var(--muted);margin-bottom:6px;font-size:12px;text-decoration:none;display:inline-block}.studio-comment-article:hover{color:var(--accent);text-decoration:underline}.studio-comment-body{white-space:pre-wrap;word-break:break-word;color:var(--ink);margin:0 0 10px;line-height:1.45}.studio-comment-actions{flex-wrap:wrap;gap:6px;display:flex}.studio-comment-compose{border-top:1px solid var(--line);gap:.7rem;margin-top:8px;padding-top:8px;display:grid}.studio-comment-compose textarea.studio-mood-input{min-height:72px!important}.studio-clipper-actions{flex-wrap:wrap;gap:8px;display:flex}.studio-clipper-steps{color:var(--ink);margin:0;padding-left:1.2rem;font-size:14px;line-height:1.7}.studio-clipper-steps code{background:var(--bg-code);border-radius:3px;padding:.1rem .35rem;font-size:.9em}.studio-side,.studio-panel{background:var(--bg-card);border:1px solid var(--line-card);border-radius:var(--radius);padding:.85rem}.studio-side{min-width:0;max-height:70vh;overflow:auto}.studio-list{gap:.35rem;display:grid}.studio-list-item{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;gap:.1rem;padding:.5rem .6rem;display:grid}.studio-list-item.studio-list-row{cursor:default;grid-template-columns:minmax(0,1fr);align-items:start;gap:.45rem;display:grid}.studio-list-main{text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;gap:.15rem;width:100%;min-width:0;padding:0;display:grid}.studio-list-main strong{text-overflow:ellipsis;white-space:nowrap;word-break:normal;overflow-wrap:normal;min-width:0;font-size:14px;line-height:1.35;display:block;overflow:hidden}.studio-list-main span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.studio-list-ops{flex-wrap:wrap;justify-content:flex-start;gap:4px;display:flex}.btn.tiny{border-radius:999px;min-height:28px;padding:.2rem .7rem;font-size:12px;line-height:1.3}.pin-badge{color:#b45309;background:#f59e0b2e;border-radius:999px;margin-right:.35rem;padding:.05rem .4rem;font-size:11px;display:inline-block}.studio-list-item span{color:var(--muted);font-size:12px}.studio-list-item:hover,.studio-list-item.active{border-color:var(--line-focus);background:var(--blue-soft)}.studio-panel{gap:.75rem;display:grid}.studio-panel label{color:var(--muted);gap:.28rem;font-size:12px;font-weight:600;display:grid}.studio-panel input,.studio-panel textarea,.studio-panel select{border:1px solid var(--line-strong);background:var(--bg-muted);width:100%;color:var(--ink);font:inherit;box-shadow:none;transition:border-color var(--ease), box-shadow var(--ease), background-color var(--ease);border-radius:10px;padding:.55rem .75rem;font-weight:500}.studio-panel input:focus,.studio-panel textarea:focus,.studio-panel select:focus{border-color:var(--line-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue-soft) 80%, transparent);outline:none}.studio-panel textarea{resize:vertical;min-height:280px}.studio-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:.55rem .75rem;display:grid}.studio-row-publish{grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end}.studio-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:.55rem .75rem;display:grid}.studio-meta-hint{grid-column:1/-1;margin-top:-.2rem}.studio-meta-span-2{grid-column:span 2}.studio-form-section{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 40%, var(--bg-card));border-radius:10px;gap:.55rem;padding:.8rem .85rem;display:grid}.studio-form-section.is-primary{border-color:color-mix(in srgb, var(--line-focus) 45%, var(--line));background:var(--bg-card)}.studio-form-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0;font-size:11px;font-weight:800}.studio-form-section-title em{letter-spacing:0;text-transform:none;color:var(--muted);margin-left:.45rem;font-size:12px;font-style:normal;font-weight:500}.studio-field-title input{color:var(--ink);font-size:1.05rem;font-weight:700}.studio-check{border:1px solid var(--line);background:var(--bg-card);color:var(--ink);border-radius:6px;align-self:end;align-items:center;gap:.5rem;padding:.55rem .65rem;font-size:13px;font-weight:600;display:flex!important}.studio-check input{width:auto;accent-color:var(--blue);margin:0}.studio-ai-status{color:var(--muted);align-items:center;gap:.45rem;margin:0;font-size:12px;display:flex}.studio-ai-dot{background:#94a3b8;border-radius:50%;flex-shrink:0;width:8px;height:8px}.studio-ai-dot.is-ok{background:#22c55e}.studio-ai-dot.is-warn{background:#f59e0b}.studio-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.studio-toolbar.is-sticky{z-index:4;border:1px solid var(--line-card);background:color-mix(in srgb, var(--bg-card) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;margin-top:.15rem;padding:.65rem .75rem;position:sticky;bottom:10px;box-shadow:0 10px 28px #0f172a14}.vis-private{vertical-align:.15em;color:var(--muted);background:color-mix(in srgb, var(--bg-card) 70%, transparent);border:1px solid var(--line);border-radius:999px;margin-right:.45em;padding:.1em .45em;font-size:.72em;font-weight:600;display:inline-block}@media (width<=992px){.layout-grid{grid-template-columns:1fr}.side-column{grid-template-columns:1fr;gap:10px;display:grid}}@media (width<=720px){body{background-attachment:scroll}.feed-body{flex-direction:column}.feed-cover{aspect-ratio:16/9;flex-basis:auto;width:100%;height:auto}.feed-title{font-size:18px}.nav-desktop{display:none}.nav-toggle{display:inline-flex}.nav-drawer-backdrop{z-index:45;opacity:0;pointer-events:none;transition:opacity .2s var(--ease);background:#0000006b;display:block;position:fixed;inset:0}.nav-drawer-backdrop.is-open{opacity:1;pointer-events:auto}.nav-drawer{z-index:50;width:min(18.5rem,100vw - 3rem);height:100vh;padding:max(.85rem, env(safe-area-inset-top)) max(.85rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) .85rem;background:var(--bg-card);border-left:1px solid var(--line-card);transition:transform .24s var(--ease);-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(104%);box-shadow:-12px 0 40px #0000002e}.nav-drawer.is-open{transform:translate(0)}.nav-drawer-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;padding-bottom:.75rem;display:flex}.nav-drawer-title{font-family:var(--font-medium);letter-spacing:.04em;font-weight:700}.nav-drawer-close{appearance:none;border:1px solid var(--line);background:var(--bg-muted);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;border-radius:999px;font-size:1.35rem;line-height:1}.nav-drawer-links{flex-direction:column;gap:.25rem;display:flex}.nav-drawer-links a{min-height:2.75rem;color:var(--muted);font-size:1.05rem;font-family:var(--font-medium);border-radius:10px;align-items:center;padding:.55rem .75rem;display:flex}.nav-drawer-links a.active,.nav-drawer-links a:hover{color:var(--ink);background:var(--bg-chip);font-weight:600}.header-inner{height:52px;padding-top:env(safe-area-inset-top);gap:.55rem}.header-actions{gap:.3rem}.header-studio-link{display:none}.header-session-name{text-overflow:ellipsis;max-width:4.5rem;overflow:hidden}.header-search.header-search-icon{width:var(--control-h);min-width:var(--control-h);justify-content:center;gap:0;padding:0;display:inline-flex}.header-search.header-search-icon .header-search-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header-search.header-search-icon svg{opacity:.9}.container{width:calc(100% - 20px);width:calc(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.site-main{padding:8px 0 max(22px, env(safe-area-inset-bottom))}.layout-grid{gap:10px}.feed-panel,.article-panel,.side-card{border-radius:12px}.feed-intro,.feed-item,.article-head,.article-body,.home-works,.home-topics{padding-left:.9rem;padding-right:.9rem}.home-works-strip{grid-auto-columns:minmax(108px,42vw);gap:.55rem;margin-inline:-.15rem;padding-inline:.15rem}.works-mosaic{grid-template-columns:1fr;gap:8px;padding:8px}.works-tile,.works-tile-feature,.works-tile-tall{grid-area:auto;min-height:210px}.works-tile-feature{min-height:260px}.about-projects{grid-template-columns:1fr}.about-hero,.about-block{padding-left:1rem;padding-right:1rem}.prose{font-size:15.5px;line-height:1.7}.prose pre,.prose table{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.prose table{display:block}.prose img,.prose video,.prose iframe{max-width:100%;height:auto}.prose iframe{width:100%}input,textarea,select{font-size:16px}.studio-layout,.studio-extra-grid,.studio-row,.studio-row-publish,.studio-meta-grid{grid-template-columns:1fr}.studio-meta-span-2{grid-column:auto}.studio-check{align-self:stretch}.sw-update-banner{left:max(.75rem, env(safe-area-inset-left));right:max(.75rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));justify-content:space-between;width:auto;transform:none}.pref-btn,.nav-toggle,.header-search.header-search-icon,.header-session-btn{min-width:40px;min-height:40px}}@media (width<=480px){.brand-word{font-size:1.05rem}.brand-mark{border-radius:7px;width:24px;height:24px}.header-actions .lang-btn{padding:0 .45rem}.feed-title{font-size:17px}.side-card{padding:.85rem .9rem}.works-tile{min-height:190px}.works-tile-feature{min-height:230px}.home-works-strip{grid-auto-columns:minmax(100px,46vw)}.tool-stack{padding:.85rem .85rem 1rem}}@media (prefers-reduced-motion:reduce){.nav-drawer,.nav-drawer-backdrop,.nav-toggle-bar{transition:none!important}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes expand-in{0%{opacity:.35;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.feed-search-snippet{color:var(--muted);margin:.35rem 0 0;font-size:.92rem;line-height:1.45}.feed-search-snip-label{border-radius:var(--radius-sm);background:var(--blue-soft);color:var(--blue);margin-right:.35rem;padding:.05rem .4rem;font-size:.75rem;display:inline-block}.sw-update-banner{z-index:9999;border-radius:var(--radius-lg);background:color-mix(in srgb, var(--bg) 92%, var(--blue));border:1px solid color-mix(in srgb, var(--blue) 28%, transparent);align-items:center;gap:.75rem;padding:.65rem .9rem;font-size:.9rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000002e}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.feed-item,.feed-expanded{animation:none}}.ctx-menu{z-index:120;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .16s,visibility .16s;position:fixed}.ctx-menu.is-open{pointer-events:auto;opacity:1;visibility:visible}.ctx-panel{border:1px solid var(--line-card);background:var(--bg-card);width:13rem;color:var(--ink);box-shadow:var(--shadow-lift), 0 2px 8px #0f172a0f;border-radius:.85rem;padding:.65rem .55rem .55rem}.ctx-nav{justify-content:space-between;gap:.15rem;padding:0 .15rem;display:flex}.ctx-nav-btn{appearance:none;width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.45rem;justify-content:center;align-items:center;transition:background-color .16s,color .16s,transform .16s;display:inline-flex}.ctx-nav-btn:hover{background:var(--blue);color:var(--on-accent);transform:translateY(-1px)}.ctx-divider{border:0;border-top:1px dashed var(--line-strong);margin:.45rem .35rem}.ctx-group{gap:.1rem;padding:0 .1rem;display:grid}.ctx-row{appearance:none;width:100%;min-height:2.35rem;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.55rem;align-items:center;gap:.55rem;padding:0 .55rem;transition:background-color .16s,color .16s;display:flex}.ctx-row:hover{background:var(--blue);color:var(--on-accent)}.ctx-row-icon{opacity:.88;flex-shrink:0;justify-content:center;align-items:center;width:1.1rem;display:inline-flex}.ctx-row-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.ctx-tip{background:var(--blue-soft);color:var(--blue);text-align:center;border-radius:.45rem;margin:.45rem .35rem .15rem;padding:.35rem .5rem;font-size:12px}[data-theme=dark] .ctx-row:hover{background:color-mix(in srgb, var(--accent) 88%, #000);color:var(--on-accent)}[data-theme=dark] .ctx-nav-btn:hover{background:color-mix(in srgb, var(--accent) 88%, #000)}.studio-analytics{gap:12px;display:grid}.studio-analytics-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.studio-analytics-ranges{flex-wrap:wrap;gap:6px;display:flex}.studio-analytics-totals{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.studio-analytics-totals>div,.studio-analytics-kpis>div{background:var(--bg);border:1px solid var(--line-card);border-radius:12px;gap:2px;min-width:88px;padding:10px 12px;display:grid}.studio-analytics-totals strong,.studio-analytics-kpis strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.25rem}.studio-analytics-totals span,.studio-analytics-kpis span{color:var(--muted);font-size:12px}.studio-analytics-kpis{flex-wrap:wrap;gap:8px;margin:8px 0 10px;display:flex}.studio-analytics-site-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.studio-analytics-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:8px;display:grid}.studio-analytics-block h5{color:var(--muted);margin:0 0 6px;font-size:13px}.studio-analytics-bars{gap:6px;margin:0;padding:0;list-style:none;display:grid}.studio-analytics-bars li{grid-template-columns:minmax(64px,34%) 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.studio-analytics-bar-label{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);overflow:hidden}.studio-analytics-bar-track{background:color-mix(in srgb, var(--line-card) 70%, transparent);border-radius:999px;height:8px;overflow:hidden}.studio-analytics-bar-track>span{border-radius:inherit;background:color-mix(in srgb, var(--blue) 70%, var(--accent));height:100%;display:block}.studio-analytics-bar-n{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;min-width:1.5rem}.studio-analytics-spark{align-items:flex-end;gap:3px;height:48px;padding:4px 2px 0;display:flex}.studio-analytics-spark>span{background:color-mix(in srgb, var(--blue) 55%, transparent);border-radius:3px 3px 1px 1px;flex:1;min-width:4px}.muted.tiny{font-size:12px}.search-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:0 18px 10px;display:flex}.search-bar input{flex:180px;min-width:140px}.search-hint{width:100%;font-size:12px}.search-hit{background:color-mix(in srgb, var(--blue) 28%, transparent);color:inherit;border-radius:3px;padding:0 .12em}.tag-filters{padding-bottom:4px}.load-error{border:1px solid var(--line-card);background:var(--bg);border-radius:12px;justify-items:start;gap:10px;margin:16px 18px 24px;padding:16px;display:grid}.load-error p{color:var(--muted);margin:0}.read-progress{z-index:40;background:0 0;height:3px;position:sticky;top:0}.read-progress-bar{background:color-mix(in srgb, var(--blue) 75%, var(--accent));height:100%;transition:width 80ms linear}.article-tags{flex-wrap:wrap;gap:6px;margin:6px 0 10px;display:flex}.article-tag{color:var(--muted);border:1px solid var(--line-card);border-radius:999px;padding:2px 10px;font-size:12px;text-decoration:none}.article-tag:hover{color:var(--ink);border-color:var(--line-focus)}.related-posts{border-top:1px solid var(--line-soft);margin:18px 0 4px;padding-top:12px}.related-posts h2{font-size:.95rem;font-family:var(--font-medium);margin:0 0 8px}.related-posts ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.related-posts li a{color:inherit;border:1px solid var(--line-card);background:var(--bg);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 10px;line-height:1.35;text-decoration:none;display:flex}.related-posts li a:hover{border-color:var(--line-focus);background:var(--bg-elevated)}.related-posts .feed-tag{flex:none;width:fit-content;padding:0 7px;font-size:11px;font-weight:600;line-height:18px}.related-posts li a strong{flex:12rem;min-width:0;font-size:.92rem;font-weight:650}.related-posts li a .muted{-webkit-line-clamp:1;-webkit-box-orient:vertical;flex:100%;font-size:12px;display:-webkit-box;overflow:hidden}.side-foot-links{margin:4px 0 0;font-size:12px}.side-foot-links a{color:var(--muted);text-decoration:none}.side-foot-links a:hover{color:var(--ink)}
