@font-face{font-family:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree Fallback;src:local("Arial");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.00%;size-adjust:100.72%}.__className_6f69ff{font-family:Figtree,Figtree Fallback;font-style:normal}.__variable_6f69ff{--font-sans-loaded:"Figtree","Figtree Fallback"}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-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:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-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:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-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:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-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:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-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:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-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:Caveat Fallback;src:local("Arial");ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.00%;size-adjust:76.94%}.__className_2d1901{font-family:Caveat,Caveat Fallback;font-style:normal}.__variable_2d1901{--font-accent-loaded:"Caveat","Caveat Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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/ac0e76ddaeeb7981-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/64d784ea54a4acde-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/ff71da380fbe67dd-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/6d831b18ae5b01dc-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/558ca1a6aa3cb55e-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/edc640959b0c7826-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/ac0e76ddaeeb7981-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/64d784ea54a4acde-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/ff71da380fbe67dd-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/6d831b18ae5b01dc-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/558ca1a6aa3cb55e-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_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-mono-loaded:"JetBrains Mono","JetBrains Mono Fallback"}@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700;800&display=swap");:root{--fd-green-900:#0F2A1E;--fd-green-800:#1B3A2A;--fd-green-700:#244A37;--fd-green-600:#2F5D45;--fd-green-500:#3F7458;--fd-green-400:#6B9A82;--fd-green-300:#A8C7B6;--fd-green-200:#D4E5DA;--fd-green-100:#E8F0EB;--fd-green-50:#F2F7F3;--fd-kraft-900:#3D2E1F;--fd-kraft-800:#5C4530;--fd-kraft-700:#7A5E42;--fd-kraft-500:#B89570;--fd-kraft-300:#D9C2A4;--fd-kraft-200:#E8D7BE;--fd-kraft-100:#F2E6D2;--fd-kraft-50:#FAF5EC;--fd-ink-900:#14171A;--fd-ink-800:#1F2428;--fd-ink-700:#2D3439;--fd-ink-600:#4A5359;--fd-ink-500:#6B7378;--fd-ink-400:#939A9F;--fd-ink-300:#BCC1C5;--fd-ink-200:#DBDFE2;--fd-ink-100:#ECEFF1;--fd-ink-50:#F6F7F8;--fd-white:#FFFFFF;--fd-aubergine:#4A2840;--fd-aubergine-light:#6B3A5C;--fd-mint:#B8D4C2;--fd-mint-light:#DCE8DF;--fd-success:#2F7D5A;--fd-success-bg:#E3F0E8;--fd-warning:#B8741C;--fd-warning-bg:#FAEDD8;--fd-error:#A8341F;--fd-error-bg:#F7E0DB;--fd-info:#1F4A6B;--fd-info-bg:#DEEAF2;--bg-canvas:var(--fd-kraft-50);--bg-surface:var(--fd-white);--bg-subtle:var(--fd-ink-50);--bg-emphasis:var(--fd-green-800);--bg-accent:var(--fd-kraft-200);--fg-primary:var(--fd-green-900);--fg-secondary:var(--fd-ink-600);--fg-muted:var(--fd-ink-500);--fg-on-emphasis:var(--fd-kraft-50);--fg-brand:var(--fd-green-800);--border-subtle:var(--fd-ink-200);--border-default:var(--fd-ink-300);--border-strong:var(--fd-green-800);--accent-primary:var(--fd-green-800);--accent-secondary:var(--fd-kraft-700);--font-sans:"Figtree","Helvetica Neue",Helvetica,Arial,sans-serif;--font-display:"Figtree","Helvetica Neue",Helvetica,Arial,sans-serif;--font-accent:"Caveat","Brush Script MT",cursive;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:38px;--text-5xl:52px;--text-6xl:72px;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.04em;--tracking-wider:0.08em;--sp-0:0;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--sp-11:80px;--sp-12:96px;--r-none:0;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-xl:14px;--r-2xl:20px;--r-full:999px;--shadow-xs:0 1px 2px rgba(15,42,30,0.04);--shadow-sm:0 1px 3px rgba(15,42,30,0.06),0 1px 2px rgba(15,42,30,0.04);--shadow-md:0 4px 12px rgba(15,42,30,0.08),0 2px 4px rgba(15,42,30,0.04);--shadow-lg:0 12px 32px rgba(15,42,30,0.10),0 4px 8px rgba(15,42,30,0.05);--shadow-xl:0 24px 60px rgba(15,42,30,0.14),0 8px 16px rgba(15,42,30,0.06);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--dur-fast:120ms;--dur-base:200ms;--dur-slow:380ms}[data-theme=contrast]{--bg-canvas:var(--fd-green-50);--bg-surface:var(--fd-white);--bg-subtle:var(--fd-green-100);--bg-emphasis:var(--fd-green-900);--bg-accent:var(--fd-green-200);--fg-primary:var(--fd-green-900);--fg-secondary:var(--fd-green-700);--fg-muted:var(--fd-ink-500);--fg-on-emphasis:var(--fd-green-100);--fg-brand:var(--fd-green-900);--border-subtle:var(--fd-green-200);--border-default:var(--fd-green-300);--border-strong:var(--fd-green-900);--accent-primary:var(--fd-green-900);--accent-secondary:var(--fd-green-500)}[data-theme=warm]{--bg-canvas:var(--fd-kraft-100);--bg-surface:var(--fd-kraft-50);--bg-subtle:var(--fd-kraft-200);--bg-emphasis:var(--fd-aubergine);--bg-accent:var(--fd-kraft-300);--fg-primary:var(--fd-kraft-900);--fg-secondary:var(--fd-kraft-800);--fg-muted:var(--fd-kraft-700);--fg-on-emphasis:var(--fd-kraft-50);--fg-brand:var(--fd-aubergine);--border-subtle:var(--fd-kraft-200);--border-default:var(--fd-kraft-300);--border-strong:var(--fd-aubergine);--accent-primary:var(--fd-aubergine);--accent-secondary:var(--fd-green-800)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-primary);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv01"}button{cursor:pointer}button,input,select,textarea{font-family:inherit}::selection{background:var(--fd-green-200);color:var(--fd-green-900)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--r-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--fd-ink-200);border-radius:var(--r-full);border:2px solid var(--bg-canvas)}::-webkit-scrollbar-thumb:hover{background:var(--fd-ink-300)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-emphasis);padding:var(--sp-7) var(--sp-5);flex-direction:column;gap:var(--sp-7);position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar,.sidebar__logo{color:var(--fg-on-emphasis);display:flex}.sidebar__logo{align-items:baseline;gap:2px;font-family:var(--font-display);font-weight:800;font-size:var(--text-2xl);letter-spacing:var(--tracking-tight)}.sidebar__logo-dot{width:8px;height:8px;border-radius:50%;background:var(--fd-mint);align-self:flex-end;margin-bottom:6px;margin-right:1px}.sidebar__section-label{font-size:11px;font-weight:600;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--fd-green-300);padding:0 var(--sp-3);margin-bottom:var(--sp-2)}.sidebar__nav{display:flex;flex-direction:column;gap:2px}.sidebar__link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);border-radius:var(--r-md);color:var(--fd-green-200);text-decoration:none;font-size:var(--text-base);font-weight:500;transition:background var(--dur-fast),color var(--dur-fast);background:transparent;border:none;text-align:left;width:100%;cursor:pointer;font-family:inherit}.sidebar__link:hover{background:rgba(255,255,255,.06);color:var(--fg-on-emphasis)}.sidebar__link--active{background:rgba(255,255,255,.1);color:var(--fg-on-emphasis)}.sidebar__link svg{width:18px;height:18px;flex-shrink:0;opacity:.85}.sidebar__footer{margin-top:auto;padding-top:var(--sp-5);border-top:1px solid rgba(255,255,255,.1);font-size:var(--text-xs);color:var(--fd-green-300);line-height:var(--leading-snug)}.topbar{justify-content:space-between;padding:var(--sp-5) var(--sp-8);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar,.topbar__left{display:flex;align-items:center}.topbar__left{gap:var(--sp-4)}.topbar__right{gap:var(--sp-3)}.topbar__crumbs,.topbar__right{display:flex;align-items:center}.topbar__crumbs{font-size:var(--text-sm);color:var(--fg-muted);gap:var(--sp-2)}.topbar__crumbs strong{color:var(--fg-primary);font-weight:600}.topbar__crumbs span{opacity:.5}.main{background:var(--bg-canvas);min-height:100vh;display:flex;flex-direction:column}.content{padding:var(--sp-8);max-width:1400px;width:100%;margin:0 auto}.t-display{font-weight:800;font-size:var(--text-5xl);color:var(--fg-primary)}.t-display,.t-h1{font-family:var(--font-display);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.t-h1{font-size:var(--text-4xl)}.t-h1,.t-h2{font-weight:700}.t-h2{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight)}.t-h2,.t-h3{line-height:var(--leading-snug)}.t-h3{font-weight:600;font-size:var(--text-lg)}.t-eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--fg-muted)}.t-body{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--fg-secondary)}.t-caption{font-size:var(--text-xs);color:var(--fg-muted)}.t-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.t-accent{font-family:var(--font-accent);font-style:italic;font-weight:500;font-size:var(--text-2xl);color:var(--fg-brand);line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-5);height:38px;border-radius:var(--r-md);border:1px solid transparent;font-size:var(--text-base);font-weight:600;letter-spacing:-.005em;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;text-decoration:none;background:transparent;color:var(--fg-primary)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn--primary{background:var(--accent-primary);color:var(--fg-on-emphasis)}.btn--primary:hover:not(:disabled){background:var(--fd-green-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}[data-theme=warm] .btn--primary:hover:not(:disabled){background:#38182E}.btn--secondary{background:var(--bg-surface);color:var(--fg-primary);border-color:var(--border-default)}.btn--secondary:hover:not(:disabled){border-color:var(--accent-primary);background:var(--bg-subtle)}.btn--ghost{background:transparent;color:var(--fg-primary)}.btn--ghost:hover:not(:disabled){background:var(--bg-subtle)}.btn--danger{background:var(--fd-error);color:white}.btn--danger:hover:not(:disabled){background:#8B2A19}.btn--sm{height:30px;padding:0 var(--sp-3);font-size:var(--text-sm)}.btn--lg{height:46px;padding:0 var(--sp-6);font-size:var(--text-md)}.btn--icon{padding:0;width:38px}.btn--icon.btn--sm{width:30px}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field__label{font-size:var(--text-sm);font-weight:600;color:var(--fg-primary)}.field__hint{font-size:var(--text-xs);color:var(--fg-muted)}.field__hint--error{color:var(--fd-error)}.input,.select,.textarea{width:100%;height:38px;padding:0 var(--sp-3);border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--bg-surface);color:var(--fg-primary);font-size:var(--text-base);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.textarea{height:auto;padding:var(--sp-3);min-height:96px;resize:vertical;line-height:var(--leading-normal)}.input::placeholder,.textarea::placeholder{color:var(--fg-muted)}.input:hover,.select:hover,.textarea:hover{border-color:var(--fd-ink-400)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--fd-green-100)}[data-theme=warm] .input:focus,[data-theme=warm] .select:focus,[data-theme=warm] .textarea:focus{box-shadow:0 0 0 3px var(--fd-kraft-200)}.input--error{border-color:var(--fd-error)}.input--error:focus{box-shadow:0 0 0 3px var(--fd-error-bg)}.input-group{position:relative}.input-group .input{padding-left:36px}.input-group__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--fg-muted);pointer-events:none}.check{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--text-base);color:var(--fg-primary);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:1.5px solid var(--border-default);border-radius:4px;background:var(--bg-surface);position:relative;cursor:pointer;transition:all var(--dur-fast);margin:0;flex-shrink:0}.check input[type=radio]{border-radius:50%}.check input:checked{background:var(--accent-primary);border-color:var(--accent-primary)}.check input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.check input[type=radio]:checked:after{content:"";position:absolute;left:4px;top:4px;width:7px;height:7px;background:white;border-radius:50%}.toggle{position:relative;width:36px;height:20px;background:var(--fd-ink-300);border-radius:var(--r-full);cursor:pointer;transition:background var(--dur-base)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:white;border-radius:50%;transition:transform var(--dur-base) var(--ease-out);box-shadow:0 1px 3px rgba(0,0,0,.12)}.toggle--on{background:var(--accent-primary)}.toggle--on:after{transform:translateX(16px)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-6);transition:box-shadow var(--dur-base),border-color var(--dur-base)}.card--elevated{box-shadow:var(--shadow-sm);border-color:transparent}.card--feature{background:var(--bg-emphasis);color:var(--fg-on-emphasis);border:none}.card--feature .t-eyebrow{color:var(--fd-green-300)}.card--feature.card-warm-emph .t-eyebrow{color:var(--fd-kraft-300)}.card--accent{background:var(--bg-accent);border-color:transparent}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4)}.card__title{font-size:var(--text-md);font-weight:600;color:var(--fg-primary);margin:0}.metric{display:flex;flex-direction:column;gap:var(--sp-2)}.metric__label{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--fg-muted)}.metric__value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;letter-spacing:var(--tracking-tight);line-height:1;color:var(--fg-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric__delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:600}.metric__delta--up{color:var(--fd-success)}.metric__delta--down{color:var(--fd-error)}.metric__delta--neutral{color:var(--fg-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px var(--sp-2);height:22px;border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:600;letter-spacing:.01em;background:var(--bg-subtle);color:var(--fg-secondary);white-space:nowrap}.badge--success{background:var(--fd-success-bg);color:var(--fd-success)}.badge--warning{background:var(--fd-warning-bg);color:var(--fd-warning)}.badge--error{background:var(--fd-error-bg);color:var(--fd-error)}.badge--info{background:var(--fd-info-bg);color:var(--fd-info)}.badge--brand{background:var(--fd-green-100);color:var(--fd-green-800)}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.table-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table thead th{text-align:left;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-muted);padding:var(--sp-3) var(--sp-5);background:var(--bg-subtle);white-space:nowrap}.table tbody td,.table thead th{border-bottom:1px solid var(--border-subtle)}.table tbody td{padding:var(--sp-4) var(--sp-5);color:var(--fg-primary);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--bg-subtle)}.table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.table .col-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted)}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-6)}.tab{padding:var(--sp-3) var(--sp-4);background:transparent;font-size:var(--text-base);font-weight:500;color:var(--fg-secondary);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:all var(--dur-fast)}.tab--active,.tab:hover{color:var(--fg-primary)}.tab--active{border-bottom-color:var(--accent-primary);font-weight:600}.modal-backdrop{position:fixed;inset:0;background:rgba(15,42,30,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--sp-6);animation:fadeIn var(--dur-base) var(--ease-out)}.modal{background:var(--bg-surface);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);width:100%;max-width:480px;overflow:hidden;animation:modalIn var(--dur-base) var(--ease-out)}.modal__header{padding:var(--sp-6) var(--sp-6) 0}.modal__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--fg-primary);margin:0 0 var(--sp-2)}.modal__body{padding:var(--sp-4) var(--sp-6) var(--sp-6);color:var(--fg-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-5) var(--sp-6);background:var(--bg-subtle);border-top:1px solid var(--border-subtle)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-surface);font-size:var(--text-sm)}.alert__icon{flex-shrink:0;width:18px;height:18px;margin-top:1px}.alert__title{font-weight:600;color:var(--fg-primary);margin:0 0 2px}.alert__body{color:var(--fg-secondary);line-height:var(--leading-normal);margin:0}.alert--info{background:var(--fd-info-bg);border-color:transparent}.alert--info .alert__icon{color:var(--fd-info)}.alert--success{background:var(--fd-success-bg);border-color:transparent}.alert--success .alert__icon{color:var(--fd-success)}.alert--warning{background:var(--fd-warning-bg);border-color:transparent}.alert--warning .alert__icon{color:var(--fd-warning)}.alert--error{background:var(--fd-error-bg);border-color:transparent}.alert--error .alert__icon{color:var(--fd-error)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--fd-green-200);color:var(--fd-green-800);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;flex-shrink:0}[data-theme=warm] .avatar{background:var(--fd-kraft-200);color:var(--fd-aubergine)}.progress{height:6px;background:var(--bg-subtle);border-radius:var(--r-full);overflow:hidden}.progress__bar{height:100%;background:var(--accent-primary);border-radius:inherit;transition:width var(--dur-slow) var(--ease-out)}.divider{height:1px;background:var(--border-subtle);border:none;margin:var(--sp-7) 0}.row{display:flex;align-items:center;gap:var(--sp-3)}.row--between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:var(--sp-3)}.grid{display:grid;grid-gap:var(--sp-5);gap:var(--sp-5)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-5{gap:var(--sp-5)}.mt-3{margin-top:var(--sp-3)}.mt-5{margin-top:var(--sp-5)}.mt-7{margin-top:var(--sp-7)}.mb-3{margin-bottom:var(--sp-3)}.mb-5{margin-bottom:var(--sp-5)}.mb-7{margin-bottom:var(--sp-7)}.sg-section{padding:var(--sp-9) 0;border-bottom:1px solid var(--border-subtle)}.sg-section:last-child{border-bottom:none}.sg-section__head{display:grid;grid-template-columns:240px 1fr;grid-gap:var(--sp-7);gap:var(--sp-7);margin-bottom:var(--sp-7)}.sg-section__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;letter-spacing:var(--tracking-tight);margin:0}.sg-section__intro{font-size:var(--text-md);color:var(--fg-secondary);line-height:var(--leading-relaxed);max-width:60ch}.swatch{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-surface)}.swatch__color{height:88px}.swatch__body{padding:var(--sp-3) var(--sp-4)}.swatch__name{font-size:var(--text-sm);font-weight:600;color:var(--fg-primary)}.swatch__value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted);margin-top:2px}.type-row{display:grid;grid-template-columns:140px 1fr;grid-gap:var(--sp-6);gap:var(--sp-6);align-items:baseline;padding:var(--sp-5) 0;border-bottom:1px dashed var(--border-subtle)}.type-row:last-child{border-bottom:none}.type-row__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted);line-height:1.5}.spacing-row{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-3) 0}.spacing-row__bar{background:var(--accent-primary);height:14px;border-radius:2px}.spacing-row__name{color:var(--fg-muted);width:60px}.spacing-row__name,.spacing-row__value{font-family:var(--font-mono);font-size:var(--text-xs)}.spacing-row__value{color:var(--fg-primary);margin-left:auto}.shadow-card{background:var(--bg-surface);height:100px;border-radius:var(--r-md);display:flex;align-items:flex-end;padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted)}.do-dont{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-5);gap:var(--sp-5)}.do-dont__cell{padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-surface)}.do-dont__cell--do{border-left:3px solid var(--fd-success)}.do-dont__cell--dont{border-left:3px solid var(--fd-error)}.do-dont__label{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-wider);text-transform:uppercase;margin-bottom:var(--sp-2)}.do-dont__cell--do .do-dont__label{color:var(--fd-success)}.do-dont__cell--dont .do-dont__label{color:var(--fd-error)}.do-dont__text{font-size:var(--text-base);color:var(--fg-primary);line-height:var(--leading-relaxed)}.hero-strip{border-radius:var(--r-xl);overflow:hidden;background:var(--bg-emphasis);color:var(--fg-on-emphasis);padding:var(--sp-9);display:grid;grid-template-columns:1.4fr 1fr;grid-gap:var(--sp-8);gap:var(--sp-8);align-items:center;position:relative;margin-bottom:var(--sp-8)}.hero-strip__title{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:800;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0 0 var(--sp-4)}.hero-strip__lead{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--fd-green-200);max-width:50ch;margin:0 0 var(--sp-6)}[data-theme=warm] .hero-strip__lead{color:var(--fd-kraft-200)}.hero-strip__image{width:100%;height:280px;object-fit:cover;border-radius:var(--r-md);filter:saturate(.92)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:var(--r-sm);background:var(--bg-subtle);font-family:var(--font-mono);font-size:11px;color:var(--fg-secondary)}.chip__swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.08)}.pullquote{font-family:var(--font-accent);font-size:var(--text-3xl);line-height:1.1;color:var(--fg-brand);font-style:italic;padding:var(--sp-5) 0;font-weight:500}body,html{min-height:100%}a{color:inherit;text-decoration:none}.auth-shell{min-height:100vh;display:grid;place-items:center;background:var(--bg-canvas);padding:var(--sp-7)}.auth-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);box-shadow:var(--shadow-md);padding:var(--sp-9);width:100%;max-width:420px}.auth-card__logo{display:flex;align-items:baseline;gap:2px;font-family:var(--font-display);font-weight:800;font-size:var(--text-3xl);letter-spacing:var(--tracking-tight);color:var(--fg-brand);margin-bottom:var(--sp-3)}.auth-card__logo-dot{width:10px;height:10px;border-radius:50%;background:var(--fd-mint);align-self:flex-end;margin-bottom:8px;margin-right:1px}.topbar__menu-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--bg-surface);color:var(--fg-primary);cursor:pointer;flex-shrink:0}.topbar__menu-btn svg{width:18px;height:18px}.sidebar-overlay{position:fixed;inset:0;background:rgba(15,42,30,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;display:none;animation:fadeIn var(--dur-base) var(--ease-out)}.sidebar-overlay--visible{display:block}.responsive-grid-2col{display:grid;grid-template-columns:1fr 320px;grid-gap:var(--sp-7);gap:var(--sp-7)}.responsive-grid-2col--wide-aside{display:grid;grid-template-columns:1fr 360px;grid-gap:var(--sp-7);gap:var(--sp-7)}.responsive-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{flex-shrink:0}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0;width:280px;z-index:50;transform:translateX(-100%);transition:transform var(--dur-base) var(--ease-out);box-shadow:var(--shadow-xl)}.sidebar--open{transform:translateX(0)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.topbar__menu-btn{display:inline-flex}.responsive-grid-2col,.responsive-grid-2col--wide-aside{grid-template-columns:1fr;gap:var(--sp-5)}.content{padding:var(--sp-5)}.topbar{padding:var(--sp-3) var(--sp-4);gap:var(--sp-3)}.topbar__crumbs{font-size:var(--text-xs);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}@media (max-width:640px){.topbar__search{display:none!important}.content{padding:var(--sp-4)}.hero-strip{grid-template-columns:1fr;padding:var(--sp-7) var(--sp-5)}.hero-strip__title{font-size:var(--text-3xl)}.modal-backdrop{padding:var(--sp-3);align-items:flex-end}.modal{max-width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0}.modal__footer{flex-direction:column-reverse;gap:var(--sp-2)}.modal__footer .btn{width:100%}.t-display{font-size:var(--text-4xl)}.t-h1{font-size:var(--text-3xl)}.t-h2{font-size:var(--text-xl)}.btn{min-height:44px}.btn--sm{min-height:38px}.actions-stack{display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch}.stack-dl{grid-template-columns:1fr!important;row-gap:0!important}.stack-dl dt{margin-top:var(--sp-3)}.stack-dl dt:first-child{margin-top:0}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:640px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.risk-class{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 var(--sp-2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em}.risk-class--low{background:var(--fd-success-bg);color:var(--fd-success)}.risk-class--mid{background:var(--fd-warning-bg);color:var(--fd-warning)}.risk-class--high{background:var(--fd-error-bg);color:var(--fd-error)}.risk-class--ne{background:var(--fd-ink-200);color:var(--fd-ink-800)}.dropzone{border:2px dashed var(--border-default);border-radius:var(--r-lg);padding:var(--sp-9);text-align:center;background:var(--bg-subtle);transition:border-color var(--dur-base),background var(--dur-base)}.dropzone--active{border-color:var(--accent-primary);background:var(--fd-green-50)}