@font-face{font-family:IM Fell Double Pica;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/ea38242dca114f78-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IM Fell Double Pica Fallback;src:local("Times New Roman");ascent-override:96.50%;descent-override:32.25%;line-gap-override:0.00%;size-adjust:97.36%}.__className_6a1852{font-family:IM Fell Double Pica,IM Fell Double Pica Fallback;font-weight:400;font-style:italic}.__variable_6a1852{--font-display:"IM Fell Double Pica","IM Fell Double Pica Fallback"}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope Fallback;src:local("Arial");ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.00%;size-adjust:103.19%}.__className_e2b71d{font-family:Manrope,Manrope Fallback;font-style:normal}.__variable_e2b71d{--font-body:"Manrope","Manrope Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e4414d{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_e4414d{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#FFFFFF;--bg-soft:#F4F4F4;--surface:#FFFFFF;--surface-soft:#F4F4F4;--nav-hover:#F4F4F4;--border:rgba(0,0,0,0.13);--border-soft:rgba(0,0,0,0.08);--text:#1A1A1A;--text-muted:#6B6B6B;--text-faint:#8C8C8C;--surface-text:#1A1A1A;--surface-text-muted:#6B6B6B;--surface-text-faint:#8C8C8C;--surface-border:rgba(0,0,0,0.08);--accent-text:#FFFFFF;--text-on-surface:var(--surface-text);--text-on-surface-muted:var(--surface-text-muted);--tone-type-bg:#cfe0c6;--tone-type-border:#8faa7f;--tone-type-text:#32472f;--tone-style-bg:#ead2bc;--tone-style-border:#c69363;--tone-style-text:#5a3f24;--tone-atmosphere-bg:#dec8d6;--tone-atmosphere-border:#b189a5;--tone-atmosphere-text:#533b4a;--tone-palette-bg:#dbe0e5;--tone-palette-border:#a3b1c2;--tone-palette-text:#4a5b6e;--tone-study-bg:#d9dcf0;--tone-study-border:#99a3d4;--tone-study-text:#3e4670;--shadow:rgba(0,0,0,0.08);--error:#B5563C;--error-soft:rgba(181,86,60,0.10);--error-border:rgba(181,86,60,0.30);--success:#5A7548;--success-soft:rgba(90,117,72,0.10);--success-border:rgba(90,117,72,0.30);--warning:#9C7A3C;--warning-soft:rgba(156,122,60,0.10);--warning-border:rgba(156,122,60,0.30);--info:#4B5563;--accent:#161615;--space-base:8px;--space-gap:16px;--space-card-padding:24px;--space-section-padding:80px;--page-gutter:24px;--radius-card:8px;--radius-control:8px;--radius-pill:9999px;--control-h:32px}:root[data-theme=dark]{--bg:#0F0F0F;--bg-soft:#181818;--surface:#202020;--surface-soft:#2A2A2A;--nav-hover:#2A2A2A;--border:rgba(255,255,255,0.14);--border-soft:rgba(255,255,255,0.08);--text:#F2F2F2;--text-muted:#A0A0A0;--text-faint:#6E6E6E;--surface-text:#F2F2F2;--surface-text-muted:#A0A0A0;--surface-text-faint:#6E6E6E;--surface-border:rgba(255,255,255,0.08);--accent:#F2F2F2;--accent-text:#161616;--text-on-surface:var(--surface-text);--text-on-surface-muted:var(--surface-text-muted);--shadow:rgba(0,0,0,0.5);--error:#E0876B;--error-soft:rgba(224,135,107,0.12);--error-border:rgba(224,135,107,0.35);--success:#8FB877;--success-soft:rgba(143,184,119,0.12);--success-border:rgba(143,184,119,0.35);--warning:#D2A65E;--warning-soft:rgba(210,166,94,0.12);--warning-border:rgba(210,166,94,0.35);--info:#A9A294;--tone-type-bg:rgba(143,170,127,0.16);--tone-type-border:rgba(143,170,127,0.45);--tone-type-text:#b8ceb0;--tone-style-bg:rgba(198,147,99,0.16);--tone-style-border:rgba(198,147,99,0.45);--tone-style-text:#e0b88f;--tone-atmosphere-bg:rgba(177,137,165,0.16);--tone-atmosphere-border:rgba(177,137,165,0.45);--tone-atmosphere-text:#d6b3c9;--tone-palette-bg:rgba(163,177,194,0.16);--tone-palette-border:rgba(163,177,194,0.45);--tone-palette-text:#b8c4d2;--tone-study-bg:rgba(153,163,212,0.16);--tone-study-border:rgba(153,163,212,0.45);--tone-study-text:#bdc5ea}:root[data-theme=star]{--bg:#F4F1EA;--bg-soft:#ECE7DC;--surface:#FCFBF8;--surface-soft:#F6F3EC;--nav-hover:#ECE7DC;--border:rgba(22,22,21,0.22);--border-soft:rgba(22,22,21,0.10);--surface-border:rgba(22,22,21,0.10);--text:#1A1815;--text-muted:#5A5A58;--text-faint:#6F6C66;--surface-text:#1A1815;--surface-text-muted:#5A5A58;--surface-text-faint:#6F6C66;--accent:#161615;--accent-text:#F4F1EA;--text-on-surface:var(--surface-text);--text-on-surface-muted:var(--surface-text-muted);--shadow:rgba(0,0,0,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text)}body{transition:background .25s ease,color .25s ease}a{color:inherit;text-decoration:none}button{font:inherit}input,select,textarea{width:100%;background:var(--surface);color:var(--surface-text);border:1px solid var(--surface-border);border-radius:var(--radius-control);padding:10px 12px;outline:none;transition:border-color .12s ease}input:focus,select:focus,textarea:focus{border-color:var(--surface-text-muted)}select{font-family:var(--font-body),sans-serif;font-size:16px;font-style:normal}textarea{min-height:96px;resize:vertical}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.page-pad{padding:24px}.section-label{display:flex;align-items:center;gap:8px;margin-bottom:12px}.section-label-line{width:16px;height:1px;opacity:.6;background:currentColor;flex-shrink:0}.mono{font-family:var(--font-mono),monospace;text-transform:uppercase;letter-spacing:.16em}.serif-italic{font-family:var(--font-body),sans-serif}.display{font-family:var(--font-display),serif;font-style:italic}.t-page-title{font-size:clamp(36px,6vw,56px);line-height:1.05;letter-spacing:-.01em}.t-page-title,.t-section-head{font-family:var(--font-display);font-weight:400;font-style:italic}.t-section-head{font-size:clamp(24px,4vw,32px);line-height:1.15;letter-spacing:-.005em}.t-component-name{font-size:clamp(20px,3vw,26px);line-height:1.2}.t-card-title,.t-component-name{font-family:var(--font-display);font-weight:400;font-style:italic}.t-card-title{font-size:16px;line-height:1.3}.t-hero-name{font-size:clamp(40px,6vw,64px);line-height:1.04;letter-spacing:-.01em}.t-hero-name,.t-logo{font-family:var(--font-display);font-weight:400;font-style:italic}.t-logo{font-size:clamp(18px,3vw,22px);line-height:1;letter-spacing:.02em}.t-body{font-size:16px}.t-body,.t-body-sm{font-family:var(--font-body);line-height:1.6;font-weight:400}.t-body-sm{font-size:15px}.t-body-lg{font-family:var(--font-body);font-size:17px;line-height:1.7;font-weight:400}.t-label{font-size:12px;letter-spacing:.08em}.t-label,.t-label-sm{font-family:var(--font-mono);font-weight:400;text-transform:uppercase;line-height:1.2}.t-label-sm{font-size:11px;letter-spacing:.1em}.t-label-xs{font-size:10px;letter-spacing:.12em;text-transform:uppercase}.t-label-normal,.t-label-xs{font-family:var(--font-mono);font-weight:400;line-height:1.2}.t-label-normal{font-size:12px;letter-spacing:.04em;text-transform:none}.t-button{letter-spacing:.1em}.t-button,.t-nav{font-family:var(--font-mono);font-size:11px;font-weight:400;text-transform:uppercase;line-height:1.2}.t-nav{letter-spacing:.08em}.t-filter-pill{letter-spacing:.06em}.t-filter-pill,.t-tag-badge{font-family:var(--font-mono);font-size:10px;font-weight:400;text-transform:uppercase;line-height:1.2}.t-tag-badge{letter-spacing:.1em}.t-meta{letter-spacing:.04em;line-height:1.4}.t-code,.t-meta{font-family:var(--font-mono);font-size:12px;font-weight:400}.t-code{line-height:1.5}button:not(.t-filter-pill):not(.t-tag-badge),input:not([type=file]):not([type=checkbox]):not([type=radio]),select,textarea{border-radius:var(--radius-control)!important}.t-filter-pill,.t-tag-badge{border-radius:var(--radius-pill)!important}.gallery-item{display:flex;flex-direction:column}.card-stage{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:var(--bg-soft);padding:5%}.card-stage img{width:92%;height:auto;max-height:66%;object-fit:contain;box-shadow:0 6px 20px var(--shadow),0 1px 3px var(--shadow);transition:opacity .18s ease}.gallery-item:hover .card-stage img{opacity:.88}.gallery-item:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.gallery-item-info{padding-top:12px}.gallery-item-title{color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery-item-tags{margin-top:6px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-pad{padding-left:var(--page-gutter)!important;padding-right:var(--page-gutter)!important}[data-surface=true]{--text:var(--surface-text);--text-muted:var(--surface-text-muted);--text-faint:var(--surface-text-faint);--border-soft:var(--surface-border);color:var(--surface-text)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-column-gap:4px;column-gap:4px;grid-row-gap:32px;row-gap:32px}@media (max-width:1024px){.grid-cards{row-gap:28px}}.admin-strip-link:hover{color:var(--text)!important}.admin-form-actionbar{position:-webkit-sticky;position:sticky;top:56px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;margin-bottom:24px;background:var(--bg);border-bottom:1px solid var(--border-soft)}.admin-form-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:32px;gap:32px}.admin-form-main{display:flex;flex-direction:column;gap:36px;min-width:0}.admin-form-rail{min-width:0}.admin-form-rail-inner{position:-webkit-sticky;position:sticky;top:124px;display:flex;flex-direction:column;gap:28px;padding:24px;background:var(--surface);border:1px solid var(--border-soft);border-radius:6px}@media (max-width:1023px){.admin-form-grid{display:flex;flex-direction:column;gap:36px}.admin-form-main,.admin-form-rail,.admin-form-rail-inner{display:contents}.afs-source{order:1}.afs-name{order:2}.afs-publishing{order:3}.afs-cover{order:4}.afs-content{order:5}.afs-params{order:6}.afs-tags{order:7}.afs-downloads{order:9}}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.hero-frame{position:relative;width:100%;height:300px;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.06) 0,rgba(0,0,0,.32) 48%,var(--bg) 100%)}.hero-inner{position:absolute;left:0;right:0;bottom:0;padding:0 32px 24px}@media (max-width:640px){.page-pad{padding:16px}.hero-frame{height:220px}.hero-inner{padding:0 16px 18px}.grid-cards{row-gap:24px}}.admin-header-flex{padding:18px 24px;border-bottom:1px solid var(--border-soft);display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-header-actions{display:flex;gap:10px}@media (max-width:640px){.admin-header-flex{flex-direction:column;align-items:flex-start}.admin-header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin-header-actions>:last-child{grid-column:1/-1}}.responsive-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.responsive-table{width:100%;border-collapse:collapse;min-width:800px}.tag-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:end}@media (max-width:640px){.tag-form-grid{grid-template-columns:1fr;align-items:stretch}}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.header-menu-trigger{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;flex-shrink:0;transition:border-color .12s ease,background .12s ease}.header-menu-trigger:focus-visible,.header-menu-trigger:hover{border-color:var(--text-faint);background:var(--surface-soft)}.header-menu-trigger span{display:block;width:16px;height:1px;background:var(--text-muted)}.header-menu-backdrop,.header-menu-drawer{display:none}@media (max-width:768px){.header-actions{display:none}.header-menu-trigger{display:flex}.header-menu-backdrop{display:block;position:fixed;inset:0;background:var(--shadow);z-index:40;opacity:0;pointer-events:none;transition:opacity .3s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.header-menu-backdrop.open{opacity:1;pointer-events:auto}.header-menu-drawer{display:block;position:fixed;top:0;right:0;bottom:0;width:280px;max-width:85vw;height:100vh;z-index:50;background:var(--bg);border-left:1px solid var(--border-soft);transform:translateX(100%);transition:transform .3s ease;overflow-y:auto}.header-menu-drawer.open{transform:translateX(0)}}.header-menu-drawer-inner{padding:20px 20px 28px}.header-menu-drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}body.resizing .header-menu-backdrop,body.resizing .header-menu-drawer{transition:none!important}@media (max-width:640px){.site-header{padding:14px 16px!important}.header-actions{gap:6px}.header-actions button{padding:6px 10px;font-size:11px}}.app-shell-grid{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh;background:var(--bg)}.app-main-col{flex-direction:column;min-height:100vh}.app-main,.app-main-col{min-width:0;display:flex}.app-main{flex:1 1;flex-direction:column}.app-topbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 24px;border-bottom:1px solid var(--border-soft);position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--bg)}@media (max-width:768px){.app-topbar{flex-wrap:wrap;gap:8px 10px;padding:10px 16px}}@media (min-width:769px){html[data-sidebar=open] .app-shell-grid{grid-template-columns:248px minmax(0,1fr)}}.app-nav-link{color:var(--text-muted);background:transparent;transition:background .12s ease,color .12s ease}.app-nav-link.is-active,.app-nav-link:hover{color:var(--text);background:var(--nav-hover)}.app-footer-link{color:var(--text-muted);transition:color .12s ease}.app-footer-link:hover{color:var(--text)}.app-social-link{color:var(--text-faint);transition:color .12s ease}.app-social-link:hover{color:var(--text)}.app-sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:18px 12px;border-right:1px solid var(--border-soft);background:var(--bg);overflow-y:auto}@media (min-width:769px){html[data-sidebar=closed] .app-sidebar{display:none}}.app-logo .t-logo{white-space:nowrap;font-size:19px;letter-spacing:0}.app-sidebar-collapse,.app-sidebar-open{display:inline-flex;align-items:center;justify-content:center;padding:6px;background:none;border:none;color:var(--text-faint);cursor:pointer;transition:color .12s ease}.app-sidebar-collapse:focus-visible,.app-sidebar-collapse:hover,.app-sidebar-open:focus-visible,.app-sidebar-open:hover{color:var(--text)}.app-sidebar-collapse{margin:-6px -6px 0 0;flex-shrink:0}.app-sidebar-open{position:fixed;top:14px;left:20px;z-index:45;color:var(--text-muted)}.app-sidebar-backdrop,html[data-sidebar=open] .app-sidebar-open{display:none}@media (max-width:768px){.app-sidebar{position:fixed;top:0;left:0;bottom:0;height:100%;width:280px;max-width:85vw;z-index:71;transform:translateX(-100%);transition:transform .24s ease}html[data-sidebar=open] .app-sidebar{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.12)}.app-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:70;background:var(--shadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .25s ease}html[data-sidebar=open] .app-sidebar-backdrop{opacity:1;pointer-events:auto}}.explore-content{max-width:1440px;margin-inline:auto}.explore-page-pad{flex:1 1;display:flex;flex-direction:column;min-height:0}.explore-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;min-height:34px;flex-wrap:wrap}.explore-toolbar-count{color:var(--text-faint);white-space:nowrap}.explore-toolbar-controls{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.explore-layout.panel-open .explore-toolbar-controls{display:none}.explore-toolbar-btn{display:inline-flex;align-items:center;gap:8px;height:var(--control-h);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:color .12s ease,border-color .12s ease}.explore-toolbar-btn.is-active,.explore-toolbar-btn:hover{color:var(--text);border-color:var(--border)}.explore-caret{transition:transform .15s ease}.explore-caret.is-open{transform:rotate(180deg)}.explore-sort{position:relative;display:inline-flex}.explore-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:190px;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 14px 36px var(--shadow)}.explore-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:6px;background:none;color:var(--text-muted);cursor:pointer;text-align:left}.explore-menu-item:hover{background:var(--surface-soft);color:var(--text)}.explore-menu-item.is-selected{color:var(--text)}.explore-menu-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:0;flex-shrink:0}.explore-menu-item.is-selected .explore-menu-dot{opacity:1}.explore-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 5px;border-radius:999px;background:#8FC49A;color:#1a1a1a;font-family:var(--font-mono);font-size:10px;font-weight:600;line-height:1}.explore-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px}.explore-chip{gap:4px;padding:4px 6px 4px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;white-space:nowrap}.explore-chip,.explore-chip button{display:inline-flex;align-items:center}.explore-chip button{justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:999px;background:none;color:var(--text-faint);cursor:pointer}.explore-chip button:hover{color:var(--text)}.explore-chips-clear{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);font-family:var(--font-mono);font-size:11px;text-decoration:underline;text-underline-offset:2px}.explore-chips-clear:hover{color:var(--text)}.segmented{gap:2px;height:var(--control-h);padding:3px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-control);flex-shrink:0}.segmented,.segmented-btn{display:inline-flex;align-items:center}.segmented-btn{position:relative;justify-content:center;width:24px;height:24px;border:none;background:none;border-radius:var(--radius-control);color:var(--text-faint);cursor:pointer;transition:background .12s ease,color .12s ease}.segmented-btn:hover{color:var(--text)}.segmented-btn.is-active{background:var(--surface);color:var(--text)}@media (pointer:coarse){.segmented-btn:after{content:"";position:absolute;top:50%;transform:translateY(-50%);height:44px}.segmented-btn:first-child:after{left:-4px;right:0}.segmented-btn:last-child:after{left:0;right:-4px}}.explore-list{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border-soft);color:inherit;text-decoration:none}.list-row-thumb{position:relative;width:52px;height:52px;border-radius:6px;overflow:hidden;background:var(--bg-soft);flex-shrink:0}.list-row-thumb img{width:100%;height:100%;object-fit:cover;display:block}.list-row-main{flex:1 1;min-width:0}.list-row-name{color:var(--text);line-height:1.3}.list-row:hover .list-row-name{text-decoration:underline;text-underline-offset:2px}.list-row-tags{margin-top:3px;overflow:hidden;text-overflow:ellipsis}.list-row-date,.list-row-tags{color:var(--text-faint);white-space:nowrap}.list-row-date{margin-left:auto;flex-shrink:0}.explore-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr;grid-gap:28px;gap:28px;align-items:start;flex:1 1}.explore-layout.panel-open{grid-template-columns:minmax(0,1fr) 240px}.explore-main{position:relative;align-self:stretch}.explore-layout.panel-open .explore-main{padding-right:28px}.explore-layout.panel-open .explore-main:before{content:"";position:absolute;top:-24px;right:0;bottom:0;width:1px;background:var(--border-soft)}.explore-filter-rail{position:-webkit-sticky;position:sticky;top:16px}.explore-layout:not(.panel-open) .explore-filter-rail{display:none}.app-filter-close{color:var(--text-faint);transition:color .12s ease}.app-filter-close:hover{color:var(--text)}.explore-filter-backdrop{display:none}@media (max-width:960px){.explore-layout,.explore-layout.panel-open{grid-template-columns:minmax(0,1fr)}.explore-layout.panel-open .explore-main{padding-right:0}.explore-layout.panel-open .explore-main:before{display:none}.explore-filter-rail{position:fixed;top:0;right:0;bottom:0;z-index:61;width:300px;max-width:85vw;padding:20px 16px;border-left:1px solid var(--border-soft);background:var(--bg);overflow-y:auto;transform:translateX(100%);transition:transform .25s ease}.explore-layout:not(.panel-open) .explore-filter-rail{display:block}.explore-layout.panel-open .explore-filter-rail{transform:translateX(0)}.explore-filter-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s ease}.explore-layout.panel-open .explore-filter-backdrop{opacity:1;pointer-events:auto}}.page-prose{max-width:720px;margin-inline:auto;font-family:var(--font-body)}.page-prose p{margin:0 0 16px;color:var(--text-muted);font-size:16px;line-height:1.6}.page-prose h2{margin:28px 0 10px}.page-prose ul{margin:0 0 16px;padding-left:20px;color:var(--text-muted)}.page-prose li{margin:0 0 6px;font-size:16px;line-height:1.6}.page-prose a{color:var(--text);text-decoration:underline;text-underline-offset:2px}.page-prose strong{color:var(--text);font-weight:600}.note-anchor{position:relative;border-bottom:1px dotted var(--text-faint);cursor:help;outline:none}.note-bubble{position:absolute;bottom:calc(100% + 8px);left:0;z-index:30;width:max-content;max-width:280px;padding:8px 10px;font-family:var(--font-body);font-size:13px;line-height:1.45;color:var(--text-muted);background:var(--surface);border:1px solid var(--border-soft);border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.14);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.note-anchor:focus-within .note-bubble,.note-anchor:hover .note-bubble{opacity:1;transform:translateY(0)}