@font-face{font-display:swap;font-family:Geist Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-cyrillic-ext-wght-normal.141916beb91c487496c8.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Geist Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-cyrillic-wght-normal.e1e85cd9eab54096528f.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Geist Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-vietnamese-wght-normal.ed8ddc5c3f2df573fa57.woff2) format("woff2-variations");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-display:swap;font-family:Geist Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-latin-ext-wght-normal.b29dbc4234e76289a5b9.woff2) format("woff2-variations");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-display:swap;font-family:Geist Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-latin-wght-normal.ee5d167b615cdb197f4a.woff2) format("woff2-variations");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-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-cyrillic-ext-wght-normal.69fc1fa0544d8241186e.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-cyrillic-wght-normal.3f8363306daa9a51bc69.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-symbols2-wght-normal.2d848fc9308af046051c.woff2) format("woff2-variations");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-vietnamese-wght-normal.7da6d79fa235f24f2930.woff2) format("woff2-variations");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-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-latin-ext-wght-normal.62a3bc4f669903381d47.woff2) format("woff2-variations");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-display:swap;font-family:Geist Mono Variable;font-style:normal;font-weight:100 900;src:url(/Martin-Portfolio/static/media/geist-mono-latin-wght-normal.8915f32bc9d51b44d11a.woff2) format("woff2-variations");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}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:hidden}code{font-family:Geist Mono Variable,ui-monospace,Menlo,Monaco,Consolas,monospace}:root,:root[data-theme=dark]{--bg:#0b0c0e;--surface:#121316;--surface-2:#181a1e;--border:#ffffff17;--border-strong:#ffffff2e;--text:#ecedef;--text-muted:#a0a4ab;--accent:#34d399;--accent-strong:#6ee7b7;--accent-ink:#04130c;--accent-soft:#34d3991f;--danger:#f87171;--shadow:0 18px 40px -22px #020806e6;--nav-bg:#0b0c0ecc;color-scheme:dark}:root[data-theme=light]{--bg:#f6f7f8;--surface:#fff;--surface-2:#eef0f2;--border:#0f11151a;--border-strong:#0f111538;--text:#101216;--text-muted:#565c64;--accent:#047857;--accent-strong:#065f46;--accent-ink:#fff;--accent-soft:#04785717;--danger:#b42318;--shadow:0 18px 40px -26px #10282059;--nav-bg:#f6f7f8d1;color-scheme:light}:root{--font-sans:"Geist Variable","Geist",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"Geist Mono Variable","Geist Mono",ui-monospace,Menlo,monospace;--radius:14px;--radius-field:10px;--nav-h:64px;--container:1120px;--ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}body{background:#0b0c0e;background:var(--bg);color:#ecedef;color:var(--text);font-family:Geist Variable,Geist,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:1rem;line-height:1.6;transition:background-color .25s ease,color .25s ease}dd,dl,h1,h2,h3,ol,p,ul{margin:0}ol,ul{list-style:none;padding:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{color:inherit;font:inherit}:focus-visible{border-radius:6px;outline:2px solid #34d399;outline:2px solid var(--accent);outline-offset:3px}.App{display:flex;flex-direction:column;min-height:100dvh}main{flex:1 1}.container{margin:0 auto;max-width:1120px;max-width:var(--container);padding:0 24px;width:100%}.section{padding:72px 0}.page{padding-top:56px}.eyebrow{color:#34d399;color:var(--accent);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase}.page-title{font-size:clamp(2rem,4.5vw,3rem);font-weight:600;letter-spacing:-.035em;line-height:1.1;margin-bottom:16px}.page-title-sm{font-size:clamp(1.6rem,3vw,2.1rem)}.section-title{font-size:1.375rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin-bottom:28px}.page-intro{font-size:1.0625rem;margin-bottom:36px}.body-copy,.page-intro{color:#a0a4ab;color:var(--text-muted);max-width:65ch}.btn{align-items:center;border:1px solid #0000;border-radius:999px;cursor:pointer;display:inline-flex;font-size:.9375rem;font-weight:500;gap:8px;height:46px;justify-content:center;padding:0 22px;transition:transform .2s cubic-bezier(.22,1,.36,1),background-color .2s ease,border-color .2s ease,color .2s ease;transition:transform .2s var(--ease),background-color .2s ease,border-color .2s ease,color .2s ease;white-space:nowrap}.btn:active{transform:translateY(1px) scale(.98)}.btn.primary{background:#34d399;background:var(--accent);color:#04130c;color:var(--accent-ink)}.btn.primary:hover{background:#6ee7b7;background:var(--accent-strong)}.btn.primary:disabled{cursor:not-allowed;opacity:.6}.btn.outline{border-color:#ffffff2e;border-color:var(--border-strong);color:#ecedef;color:var(--text)}.btn.outline:hover{border-color:#34d399;border-color:var(--accent);color:#34d399;color:var(--accent)}.btn svg{font-size:1.1rem;transition:transform .25s cubic-bezier(.22,1,.36,1);transition:transform .25s var(--ease)}.btn:hover svg{transform:translateX(3px)}.text-link{align-items:center;border-bottom:1px solid #0000;color:#34d399;color:var(--accent);display:inline-flex;font-size:.9375rem;font-weight:500;gap:4px;transition:border-color .2s ease}.text-link:hover{border-color:currentColor}.icon-btn{background:#0000;border:1px solid #ffffff17;border:1px solid var(--border);border-radius:999px;cursor:pointer;display:inline-grid;font-size:1.15rem;height:40px;place-items:center;transition:border-color .2s ease,color .2s ease,transform .2s cubic-bezier(.22,1,.36,1);transition:border-color .2s ease,color .2s ease,transform .2s var(--ease);width:40px}.icon-btn:hover{border-color:#34d399;border-color:var(--accent);color:#34d399;color:var(--accent)}.icon-btn:active{transform:scale(.94)}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{align-items:center;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:999px;color:#ecedef;color:var(--text);display:inline-flex;font-size:.8125rem;gap:7px;padding:5px 12px}.chip-icon{color:#a0a4ab;color:var(--text-muted);flex-shrink:0;height:14px;width:14px}.navbar{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#0b0c0ecc;background:var(--nav-bg);border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);height:64px;height:var(--nav-h);position:-webkit-sticky;position:sticky;top:0;z-index:50}.navbar-inner{align-items:center;display:flex;gap:24px;height:100%;justify-content:space-between;margin:0 auto;max-width:1120px;max-width:var(--container);padding:0 24px}.logo{font-weight:600;letter-spacing:-.02em;white-space:nowrap}.nav-links{align-items:center;display:flex;gap:4px;margin-left:auto}.nav-links a{border-radius:999px;color:#a0a4ab;color:var(--text-muted);display:block;font-size:.9375rem;padding:8px 14px;transition:color .2s ease,background-color .2s ease}.nav-links a.active,.nav-links a:hover{color:#ecedef;color:var(--text)}.nav-links a.active{background:#181a1e;background:var(--surface-2)}.nav-actions{align-items:center;display:flex;gap:8px}.mobile-nav-toggle{display:none}.hero{display:flex;min-height:calc(100dvh - 64px);min-height:calc(100dvh - var(--nav-h));padding:64px 0 56px}.hero,.hero-grid{align-items:center}.hero-grid{grid-gap:64px;display:grid;gap:64px;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}.hero-copy{align-items:flex-start;display:flex;flex-direction:column;gap:20px}.hero-title{font-size:clamp(3rem,8vw,5.5rem);font-weight:600;letter-spacing:-.045em;line-height:1;margin:0}.hero-description{color:#a0a4ab;color:var(--text-muted);font-size:1.1875rem;max-width:44ch}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.hero-portrait{aspect-ratio:4/5;border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);justify-self:end;max-width:360px;overflow:hidden;width:100%}.hero-portrait img{height:100%;object-fit:cover;width:100%}.results-grid{border-top:1px solid #ffffff17;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.result{padding:28px 24px 8px 0}.result+.result{border-left:1px solid #ffffff17;border-left:1px solid var(--border);padding-left:24px}.result-value{color:#34d399;color:var(--accent);font-size:clamp(1.75rem,3vw,2.4rem);font-weight:600;letter-spacing:-.035em;line-height:1.1;margin-bottom:10px;white-space:nowrap}.result-label{color:#a0a4ab;color:var(--text-muted);font-size:.9375rem;max-width:28ch}.explore-list{border-top:1px solid #ffffff17;border-top:1px solid var(--border)}.explore-row{grid-gap:24px;align-items:center;border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);display:grid;gap:24px;grid-template-columns:minmax(140px,.45fr) minmax(0,1fr) auto;padding:22px 0;transition:padding .3s cubic-bezier(.22,1,.36,1),color .2s ease;transition:padding .3s var(--ease),color .2s ease}.explore-label{font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:600;letter-spacing:-.025em}.explore-arrow,.explore-hint{color:#a0a4ab;color:var(--text-muted)}.explore-arrow{font-size:1.4rem;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s ease;transition:transform .3s var(--ease),color .2s ease}.explore-row:hover{padding-left:12px}.explore-row:hover .explore-arrow{color:#34d399;color:var(--accent);transform:translateX(6px)}.about-copy{margin-bottom:64px}.about-copy .page-intro{margin-bottom:20px}.stack-grid{grid-gap:40px 56px;display:grid;gap:40px 56px;grid-template-columns:repeat(2,minmax(0,1fr))}.stack-group{border-top:1px solid #ffffff17;border-top:1px solid var(--border);padding-top:20px}.stack-title{align-items:center;display:flex;font-size:1rem;font-weight:600;gap:10px;margin-bottom:16px}.stack-title svg{color:#34d399;color:var(--accent);font-size:1.25rem}.stack-note{color:#a0a4ab;color:var(--text-muted);font-size:.875rem;margin-top:12px}.timeline{grid-gap:12px;display:grid;gap:12px}.timeline-item{background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);transition:border-color .2s ease}.timeline-item:hover{border-color:#ffffff2e;border-color:var(--border-strong)}.timeline-header{grid-gap:16px;align-items:center;background:none;border:0;border-radius:14px;border-radius:var(--radius);cursor:pointer;display:grid;gap:16px;grid-template-columns:48px minmax(0,1fr) auto;padding:18px 20px;text-align:left;width:100%}.timeline-logo{background:#fff;border-radius:10px;height:48px;object-fit:contain;padding:4px;width:48px}.timeline-main{grid-gap:2px;display:grid;gap:2px;min-width:0}.timeline-title{font-size:1.0625rem;font-weight:600;letter-spacing:-.015em;line-height:1.3}.timeline-org{font-size:.9375rem}.timeline-meta,.timeline-org{color:#a0a4ab;color:var(--text-muted)}.timeline-meta{display:flex;flex-wrap:wrap;font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem;gap:4px 16px;margin-top:6px}.timeline-meta-item{align-items:center;display:inline-flex;gap:5px}.timeline-caret{color:#a0a4ab;color:var(--text-muted);font-size:1.15rem;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s ease;transition:transform .3s var(--ease),color .2s ease}.timeline-header.open .timeline-caret{color:#34d399;color:var(--accent);transform:rotate(180deg)}.timeline-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.22,1,.36,1);transition:grid-template-rows .35s var(--ease)}.timeline-panel.open{grid-template-rows:1fr}.timeline-details{grid-gap:10px;display:grid;gap:10px;min-height:0;overflow:hidden;padding:0 20px 0 84px}.timeline-panel.open .timeline-details{padding-bottom:22px}.timeline-details li{color:#a0a4ab;color:var(--text-muted);font-size:.9688rem;max-width:68ch;padding-left:16px;position:relative}.timeline-details li:before{background:#34d399;background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.7em;width:6px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.filter{align-items:center;background:#0000;border:1px solid #ffffff17;border:1px solid var(--border);border-radius:999px;color:#a0a4ab;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.875rem;gap:8px;height:38px;padding:0 16px;transition:color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s cubic-bezier(.22,1,.36,1);transition:color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s var(--ease)}.filter:hover{border-color:#ffffff2e;border-color:var(--border-strong);color:#ecedef;color:var(--text)}.filter:active{transform:scale(.97)}.filter.active{background:#34d3991f;background:var(--accent-soft);border-color:#34d399;border-color:var(--accent);color:#34d399;color:var(--accent)}.filter-count{font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem;opacity:.8}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{animation:card-in .6s cubic-bezier(.22,1,.36,1) backwards;animation:card-in .6s var(--ease) backwards;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .3s ease;transition:transform .3s var(--ease),border-color .2s ease,box-shadow .3s ease}.project-card:hover{border-color:#ffffff2e;border-color:var(--border-strong);box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);transform:translateY(-3px)}.project-card--featured{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.project-card--featured.project-card--text{grid-template-columns:minmax(0,1fr)}.project-card--featured.project-card--text .project-bullets{max-width:78ch}.project-image-wrap{aspect-ratio:16/9;background:#181a1e;background:var(--surface-2);border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);overflow:hidden}.project-card--featured .project-image-wrap{aspect-ratio:auto;border-bottom:0;border-right:1px solid #ffffff17;border-right:1px solid var(--border);min-height:100%}.project-image{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1);transition:transform .6s var(--ease);width:100%}.project-card:hover .project-image{transform:scale(1.03)}.project-body{display:flex;flex:1 1;flex-direction:column;gap:12px;padding:24px}.project-topic{color:#34d399;color:var(--accent);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem}.project-title{font-size:1.25rem;font-weight:600;letter-spacing:-.025em;line-height:1.25}.project-card--featured .project-title{font-size:1.6rem}.project-meta{font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem}.project-desc,.project-meta{color:#a0a4ab;color:var(--text-muted)}.project-desc{font-size:.9688rem}.project-bullets{grid-gap:8px;color:#a0a4ab;color:var(--text-muted);display:grid;font-size:.9375rem;gap:8px}.project-bullets li{padding-left:16px;position:relative}.project-bullets li:before{background:#34d399;background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.7em;width:6px}.project-body .chip-list{margin-top:auto;padding-top:8px}.project-links{display:flex;gap:20px}.empty-state{color:#a0a4ab;color:var(--text-muted);padding:48px 0}.blog-callout{grid-gap:20px;align-items:center;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:grid;gap:20px;grid-template-columns:auto minmax(0,1fr) auto;margin-top:56px;padding:22px 24px;transition:border-color .2s ease,transform .3s cubic-bezier(.22,1,.36,1);transition:border-color .2s ease,transform .3s var(--ease)}.blog-callout:hover{border-color:#34d399;border-color:var(--accent);transform:translateY(-2px)}.blog-callout-icon{color:#34d399;color:var(--accent);font-size:1.6rem}.blog-callout-text{grid-gap:2px;display:grid;gap:2px}.blog-callout-text span{color:#a0a4ab;color:var(--text-muted);font-size:.9375rem}.blog-callout-cta{align-items:center;color:#34d399;color:var(--accent);display:inline-flex;font-weight:500;gap:6px;white-space:nowrap}.contact-layout{grid-gap:64px;align-items:start;display:grid;gap:64px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.contact-links{grid-gap:4px;display:grid;gap:4px}.contact-link{align-items:center;color:#a0a4ab;color:var(--text-muted);display:inline-flex;gap:12px;padding:10px 0;transition:color .2s ease}.contact-link svg{font-size:1.35rem}.contact-link:hover{color:#34d399;color:var(--accent)}.contact-form{grid-gap:20px;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:grid;gap:20px;padding:28px}.field{grid-gap:8px;display:grid;gap:8px}.field label{font-size:.875rem;font-weight:500}.field input,.field textarea{background:#0b0c0e;background:var(--bg);border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius-field);padding:12px 14px;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.field input:focus,.field textarea:focus{border-color:#34d399;border-color:var(--accent);box-shadow:0 0 0 3px #34d3991f;box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field [aria-invalid=true]{border-color:#f87171;border-color:var(--danger)}.field-error{color:#f87171;color:var(--danger);font-size:.8125rem}.contact-form .btn{justify-self:start}.toast{animation:toast-in .4s cubic-bezier(.22,1,.36,1) both;animation:toast-in .4s var(--ease) both;background:#181a1e;background:var(--surface-2);border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:999px;bottom:24px;box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);font-size:.9375rem;left:50%;max-width:calc(100vw - 32px);padding:12px 20px;position:fixed;transform:translateX(-50%);z-index:60}.toast-success{border-color:#34d399;border-color:var(--accent)}.toast-error{border-color:#f87171;border-color:var(--danger)}.footer{border-top:1px solid #ffffff17;border-top:1px solid var(--border);padding:28px 0}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.footer-text{color:#a0a4ab;color:var(--text-muted);font-size:.875rem}.footer-links{display:flex;gap:20px}.footer-link{align-items:center;color:#a0a4ab;color:var(--text-muted);display:inline-flex;font-size:.875rem;gap:6px;transition:color .2s ease}.footer-link:hover{color:#34d399;color:var(--accent)}.not-found{align-items:center;display:flex;min-height:calc(100dvh - 164px);min-height:calc(100dvh - var(--nav-h) - 100px)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:perspective(900px) translateY(18px) rotateX(-16deg)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:no-preference){.rise{animation:rise .7s cubic-bezier(.22,1,.36,1) both;animation:rise .7s var(--ease) both;animation-delay:0ms;animation-delay:calc(var(--i, 0)*90ms)}.reveal-ready .reveal{opacity:0;transform:perspective(1000px) translateY(28px) rotateX(10deg);transform-origin:50% 100%;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal-ready .reveal.is-visible{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width:960px){.hero-grid{gap:40px;grid-template-columns:minmax(0,1fr)}.hero-portrait{aspect-ratio:1;justify-self:start;max-width:280px;order:-1}.hero{min-height:0;padding-top:40px}.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result:nth-child(3){border-left:0;padding-left:0}.result:nth-child(n+3){border-top:1px solid #ffffff17;border-top:1px solid var(--border);margin-top:20px}.contact-layout{gap:40px}.contact-layout,.project-card--featured{grid-template-columns:minmax(0,1fr)}.project-card--featured .project-image-wrap{aspect-ratio:16/9;border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);border-right:0;min-height:0}}@media (max-width:760px){.mobile-nav-toggle{display:inline-grid}.nav-links{align-items:stretch;background:#0b0c0e;background:var(--bg);border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);display:none;flex-direction:column;gap:2px;left:0;margin:0;padding:12px 16px 16px;position:absolute;right:0;top:64px;top:var(--nav-h)}.nav-links.open{display:flex}.nav-links a{padding:12px 14px}.navbar-inner{justify-content:space-between}.container,.navbar-inner{padding-left:16px;padding-right:16px}.section{padding:48px 0}.projects-grid,.stack-grid{grid-template-columns:minmax(0,1fr)}.explore-row{gap:4px 16px;grid-template-columns:minmax(0,1fr) auto}.explore-hint{grid-column:1;grid-row:2}.explore-arrow{grid-column:2;grid-row:1/span 2}.timeline-header{gap:12px;grid-template-columns:40px minmax(0,1fr) auto;padding:16px}.timeline-logo{height:40px;width:40px}.timeline-details{padding-left:16px;padding-right:16px}.blog-callout{grid-template-columns:auto minmax(0,1fr)}.blog-callout-cta{grid-column:1/-1}.contact-form{padding:20px}}@media (max-width:480px){.results-grid{grid-template-columns:minmax(0,1fr)}.result,.result+.result{border-left:0;padding-left:0}.result+.result{border-top:1px solid #ffffff17;border-top:1px solid var(--border);margin-top:20px}.hero-actions .btn{flex:1 1 100%}}.viz-root{--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a}:root[data-theme=dark] .viz-root{--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70}.viz-bar--1{background:var(--viz-1)}.viz-bar--2{background:var(--viz-2)}.viz-bar--3{background:var(--viz-3)}.viz-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin:32px 0 24px}.viz-stat{background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:flex;flex-direction:column;gap:4px;padding:20px}.viz-stat-value{font-feature-settings:"tnum";font-size:2rem;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}.viz-stat-label{color:#a0a4ab;color:var(--text-muted);font-size:.875rem}.viz-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.viz-card{background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);min-width:0;padding:24px}.viz-card--wide{grid-column:1/-1}.viz-title{font-size:1.05rem;font-weight:600;margin:0}.viz-sub{color:#a0a4ab;color:var(--text-muted);font-size:.85rem;margin:4px 0 20px}.viz-chart{position:relative}.viz-bars{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.viz-bar-row{grid-gap:12px;align-items:center;border-radius:6px;display:grid;gap:12px;grid-template-columns:110px 1fr 28px;padding:3px 0}.viz-bar-label{color:#a0a4ab;color:var(--text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-bar-track{display:block;height:14px}.viz-bar{border-radius:0 4px 4px 0;display:block;height:100%;transition:opacity .15s}.viz-bar-value{font-feature-settings:"tnum";font-size:.85rem;font-variant-numeric:tabular-nums;text-align:right}.viz-bar-row:focus-visible .viz-bar,.viz-bar-row:hover .viz-bar{opacity:.8}.viz-gantt{display:flex;flex-direction:column;gap:8px}.viz-gantt-axis{color:#a0a4ab;color:var(--text-muted);font-size:.75rem;height:18px;margin-left:222px;position:relative}.viz-gantt-axis span{position:absolute;transform:translateX(-2px)}.viz-gantt-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:210px 1fr}.viz-gantt-track{background:#181a1e;background:var(--surface-2);border-radius:4px;height:16px;position:relative}.viz-gantt-bar{border-radius:4px;cursor:default;position:absolute;top:0}.viz-gantt-bar:focus-visible,.viz-gantt-bar:hover{opacity:.8}.viz-legend{color:#a0a4ab;color:var(--text-muted);display:flex;font-size:.8rem;gap:16px;margin-top:16px}.viz-legend span{align-items:center;display:inline-flex;gap:6px}.viz-swatch{border-radius:3px;display:inline-block;height:10px;width:10px}.viz-tooltip{background:#181a1e;background:var(--surface-2);border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);color:#ecedef;color:var(--text);font-size:.8rem;line-height:1.4;max-width:260px;padding:8px 10px;pointer-events:none;position:absolute;transform:translate(-50%,calc(-100% - 8px));z-index:5}.viz-table{color:#a0a4ab;color:var(--text-muted);font-size:.85rem;margin-top:16px}.viz-table summary{cursor:pointer}.viz-table table{border-collapse:collapse;margin-top:8px;width:100%}.viz-table td,.viz-table th{border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);padding:4px 8px;text-align:left}@media (max-width:800px){.viz-stats{grid-template-columns:repeat(2,1fr)}.viz-gantt-row,.viz-grid{grid-template-columns:1fr}.viz-gantt-row{gap:4px}.viz-gantt-axis{margin-left:0}.viz-bar-row{grid-template-columns:90px 1fr 24px}}.project-card--featured:has(.project-image-wrap--diagram){grid-template-columns:minmax(0,1fr)}.project-image-wrap--diagram{aspect-ratio:auto;background:#fff;border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);border-right:0;display:block;min-height:0}.project-image-wrap--diagram .project-image{display:block;height:auto;object-fit:contain}.project-card:hover .project-image-wrap--diagram .project-image{transform:none}.viz-section-head{align-items:baseline;display:flex;justify-content:space-between;margin:48px 0 0}.viz-section-title{font-size:1.25rem;font-weight:600;margin:0}.viz-section-link{color:#34d399;color:var(--accent);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.85rem}.viz-foot{color:#a0a4ab;color:var(--text-muted);font-size:.8rem;margin:16px 0 0}.viz-cols{gap:4px;height:160px}.viz-col,.viz-cols{align-items:flex-end;display:flex}.viz-col{border-radius:4px;flex:1 1;height:100%}.viz-col-bar{border-radius:4px 4px 0 0;width:100%}.viz-col:focus-visible .viz-col-bar,.viz-col:hover .viz-col-bar{opacity:.8!important}.viz-col-axis{color:#a0a4ab;color:var(--text-muted);display:flex;font-size:.75rem;justify-content:space-between;margin-top:8px}.viz-feed{display:flex;flex-direction:column;gap:14px;list-style:none;margin:0;padding:0}.viz-feed li{grid-gap:2px 12px;display:grid;font-size:.85rem;gap:2px 12px;grid-template-columns:1fr auto}.viz-feed a{color:#ecedef;color:var(--text);font-weight:500;text-decoration:none}.viz-feed a:hover{color:#34d399;color:var(--accent)}.viz-feed span{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-feed span,.viz-feed time{color:#a0a4ab;color:var(--text-muted)}.viz-feed time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;grid-column:2;grid-row:1}.project-card,.project-open{cursor:pointer}.project-open{background:none;border:0;font:inherit;padding:0}.modal-backdrop{align-items:flex-start;animation:modal-fade .2s ease both;background:#000000a6;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:32px 16px;position:fixed;z-index:100}.modal{animation:modal-in .5s cubic-bezier(.22,1,.36,1) backwards;animation:modal-in .5s var(--ease) backwards;background:#121316;background:var(--surface);border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:14px;border-radius:var(--radius);box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);color:#ecedef;color:var(--text);max-width:980px;position:relative;transform-origin:50% 0;width:100%}.modal-close{position:absolute;right:14px;top:14px;z-index:2}.modal-head{padding:28px 64px 16px 28px}.modal-title{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:4px 0}.modal-media{background:#000;border-block:1px solid #ffffff17;border-block:1px solid var(--border)}.modal-figure{line-height:0;position:relative}.modal-img{display:block;height:auto;width:100%}.hotspot{background:#0000;border:1.5px solid #0000;border-radius:8px;cursor:pointer;padding:0;position:absolute;transition:border-color .15s,background .15s}.hotspot.active,.hotspot:focus-visible,.hotspot:hover{background:#34d39924;border-color:#34d399;border-color:var(--accent)}.hotspot-info{background:#181a1e;background:var(--surface-2);border-top:1px solid #ffffff17;border-top:1px solid var(--border);font-size:.92rem;line-height:1.5;min-height:84px;padding:16px 28px}.hotspot-info p{color:#a0a4ab;color:var(--text-muted);margin:4px 0 0}.hotspot-info .hotspot-hint{margin:0}.modal-body{display:flex;flex-direction:column;gap:16px;padding:24px 28px 28px}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:perspective(1400px) translateY(28px) rotateX(-14deg) scale(.96)}}@media (max-width:600px){.hotspot-info,.modal-body,.modal-head{padding-left:18px;padding-right:18px}.modal-head{padding-right:56px}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.lightbox{align-items:flex-start;animation:modal-fade .2s ease both;background:#000000b3;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:32px 16px;position:fixed;z-index:110}.lightbox-card{animation:modal-in .3s cubic-bezier(.22,1,.36,1) both;animation:modal-in .3s var(--ease) both;background:#121316;background:var(--surface);border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:14px;border-radius:var(--radius);display:flex;flex-direction:column;gap:14px;max-width:1000px;padding:28px;position:relative;width:100%}.lightbox-card .modal-data-title{padding-right:48px}.data-preview{animation:modal-in .2s cubic-bezier(.22,1,.36,1) both;animation:modal-in .2s var(--ease) both;background:#121316;background:var(--surface);border:1px solid #34d399;border:1px solid var(--accent);border-radius:10px;bottom:14%;box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);color:#ecedef;color:var(--text);cursor:zoom-in;line-height:1.3;overflow:hidden;padding:0;position:absolute;right:1%;text-align:left;width:46%;z-index:3}.data-preview-head{border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);display:flex;font-size:.8rem;font-weight:600;gap:8px;justify-content:space-between;padding:8px 12px}.data-preview-head span{align-items:center;color:#34d399;color:var(--accent);display:inline-flex;font-weight:500;gap:4px}.data-preview img{background:#fff;display:block;height:auto;width:100%}@media (max-width:700px){.data-preview{bottom:2%;right:2%;width:96%}}.modal-data-title{font-size:1.15rem;font-weight:600;margin:0}.modal-data-sub{color:#a0a4ab;color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.04em;margin:8px 0 0;text-transform:uppercase}.modal-data-figure{background:#fff;border:1px solid #ffffff17;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-field);line-height:0;overflow:hidden}.modal-data-figure img{display:block;height:auto;width:100%}.branch-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.branch-card{background:#181a1e;background:var(--surface-2);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-field);display:flex;flex-direction:column;font-size:.88rem;gap:6px;padding:14px}.branch-card p{color:#a0a4ab;color:var(--text-muted);margin:0}.branch-out{color:#34d399;color:var(--accent);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem;margin-top:auto}.reason-list{color:#a0a4ab;color:var(--text-muted);display:flex;flex-direction:column;font-size:.9rem;gap:8px;margin:0;padding-left:18px}.reason-list strong{color:#ecedef;color:var(--text);font-weight:600}.messy-table{border:1px solid #ffffff17;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-field);overflow:hidden}.messy-row{display:grid;grid-template-columns:1fr 1.4fr}.messy-row+.messy-row{border-top:1px solid #ffffff17;border-top:1px solid var(--border)}.messy-row p{color:#a0a4ab;color:var(--text-muted);font-size:.85rem;margin:0;padding:12px 14px}.messy-row p:first-child{border-right:1px solid #ffffff17;border-right:1px solid var(--border);color:#ecedef;color:var(--text)}@media (max-width:700px){.branch-grid,.messy-row{grid-template-columns:1fr}.messy-row p:first-child{border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);border-right:0}.modal-data{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion:no-preference){.page-3d{animation:page-in .7s cubic-bezier(.22,1,.36,1) backwards;animation:page-in .7s var(--ease) backwards;transform-origin:50% 0}.reveal-ready .viz-card.is-visible .viz-bar-track .viz-bar,.reveal-ready .viz-card.is-visible .viz-gantt-bar{animation:bar-x .9s cubic-bezier(.22,1,.36,1) .15s backwards;animation:bar-x .9s var(--ease) backwards .15s;transform-origin:0 50%}.reveal-ready .viz-card.is-visible .viz-col-bar{animation:bar-y .8s cubic-bezier(.22,1,.36,1) .15s backwards;animation:bar-y .8s var(--ease) backwards .15s;transform-origin:50% 100%}.hero-portrait{transform-style:preserve-3d}}@keyframes page-in{0%{opacity:0;transform:perspective(1400px) translateY(40px) translateZ(-120px) rotateX(8deg)}}@keyframes bar-x{0%{transform:scaleX(0)}}@keyframes bar-y{0%{transform:scaleY(0)}}.tilt{transform-style:preserve-3d}.tilt-active{transition:transform .12s ease-out,border-color .2s ease,box-shadow .3s ease!important}.reveal-ready .reveal.tilt.tilt-active{transition:transform .12s ease-out,opacity .7s cubic-bezier(.22,1,.36,1)!important;transition:transform .12s ease-out,opacity .7s var(--ease)!important}.tilt-glare{background:radial-gradient(circle at 50% 50%,#ffffff29,#0000 55%);background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#ffffff29,#0000 55%);border-radius:inherit;inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .2s ease}.tilt-active>.tilt-glare{opacity:1}.hero-portrait,.project-card,.viz-card,.viz-stat{position:relative}@media (prefers-reduced-motion:no-preference){.hero-portrait.rise{animation-fill-mode:backwards}}.hero-term{align-items:center;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-field);display:flex;flex-wrap:wrap;font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.88rem;gap:10px;margin:18px 0 0;max-width:100%;min-height:1.4em;padding:10px 14px;width:-webkit-fit-content;width:fit-content}.hero-term-prompt{color:#34d399;color:var(--accent)}.hero-term-cursor{background:#34d399;background:var(--accent);display:inline-block;height:1.1em;margin-left:-6px;width:.6em}.section-title:before{color:#34d399;color:var(--accent);content:"// ";font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono)}.pixel-reveal{display:grid;inset:0;pointer-events:none;position:absolute;z-index:2}.pixel-reveal span{background:#0b0c0e;background:var(--bg)}.project-card:after,.project-card:before{border:0 solid #34d399;border:0 solid var(--accent);content:"";height:14px;opacity:0;pointer-events:none;position:absolute;width:14px;z-index:3}.project-card:before{border-width:2px 0 0 2px;left:8px;top:8px}.project-card:after{border-width:0 2px 2px 0;bottom:8px;right:8px}.project-card:hover:after,.project-card:hover:before{opacity:1}@media (prefers-reduced-motion:no-preference){.hero-term-cursor,.logo:after{animation:blink 1s steps(1) infinite}.logo:after{color:#34d399;color:var(--accent);content:"_"}.logo:hover{animation:glitch .35s steps(2) 1}.pixel-reveal span{animation:pixel-out .01s steps(1) forwards}.reveal-ready .viz-card.is-visible .viz-bar-track .viz-bar,.reveal-ready .viz-card.is-visible .viz-gantt-bar{animation-timing-function:steps(14)}.reveal-ready .viz-card.is-visible .viz-col-bar{animation-timing-function:steps(10)}.project-card:hover:after,.project-card:hover:before{animation:corner-in .25s steps(3) both}}@keyframes blink{50%{opacity:0}}@keyframes pixel-out{to{opacity:0;visibility:hidden}}@keyframes corner-in{0%{height:0;width:0}}@keyframes glitch{0%{text-shadow:none;transform:translate(0)}33%{text-shadow:2px 0 #ff3b8d,-2px 0 #38e8ff;transform:translate(-2px,1px)}66%{text-shadow:-2px 0 #ff3b8d,2px 0 #38e8ff;transform:translate(2px,-1px)}to{text-shadow:none;transform:translate(0)}}.metric{font-feature-settings:"tnum";background:#34d3991f;background:var(--accent-soft);border-radius:4px;color:#34d399;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600;padding:0 4px;white-space:nowrap}.featured-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}.featured-card{background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;overflow:hidden;padding:24px;position:relative;transition:border-color .2s ease}.featured-card:hover{border-color:#34d399;border-color:var(--accent)}.featured-tag{color:#34d399;color:var(--accent);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;margin:0;text-transform:uppercase}.featured-title{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;margin:0}.featured-text{color:#a0a4ab;color:var(--text-muted);font-size:.92rem;line-height:1.55;margin:0}.featured-stats{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:4px 0 8px;padding:0}.featured-stats li{border:1px solid #ffffff2e;border:1px solid var(--border-strong);border-radius:999px;font-size:.82rem;padding:4px 10px}.featured-card .text-link{margin-top:auto}@media (max-width:900px){.featured-grid{grid-template-columns:1fr}}.featured .metric{--hl:#fbbf24;background:#fbbf2424;color:var(--hl)}:root[data-theme=light] .featured .metric{--hl:#a15c07;background:#d977061f}.featured-stats li{border-color:#fbbf2459}:root[data-theme=light] .featured-stats li{border-color:#a15c074d}.pixel-cat{animation:cat-run 3.2s linear forwards;bottom:14px;left:0;pointer-events:none;position:fixed;width:96px;will-change:transform;z-index:90}.pixel-cat-svg{animation:cat-bob .24s steps(1) infinite;display:block;height:auto;width:100%}.cat-f1{animation:cat-frame .24s steps(1) infinite}.cat-f2{animation:cat-frame .24s steps(1) infinite reverse}.pixel-cat-dust{animation:cat-dust .48s steps(4) infinite;background:#a0a4ab;background:var(--text-muted);bottom:2px;height:6px;left:-10px;opacity:.5;position:absolute;width:6px}@keyframes cat-run{0%{transform:translateX(-120px)}to{transform:translateX(calc(100vw + 40px))}}@keyframes cat-frame{0%{opacity:1}50%{opacity:0}}@keyframes cat-bob{50%{transform:translateY(-3px)}}@keyframes cat-dust{0%{opacity:.5;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-18px,-8px) scale(.2)}}.term-dock{bottom:16px;font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);position:fixed;right:16px;z-index:150}.term-fab{align-items:center;background:#0b0d0c;border:1px solid #6ee7b766;border-radius:999px;box-shadow:0 18px 40px -22px #020806e6;box-shadow:var(--shadow);color:#b6f5d0;cursor:pointer;display:inline-flex;font:inherit;font-size:.8rem;gap:8px;padding:9px 14px;transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s;transition:transform .2s var(--ease),border-color .2s}.term-fab:hover{border-color:#34d399;transform:translateY(-2px)}.term-panel{animation:term-pop .28s cubic-bezier(.22,1,.36,1) both;animation:term-pop .28s var(--ease) both;background:#0b0d0c;border:1px solid #6ee7b759;border-radius:12px;box-shadow:0 24px 60px -18px #000c,0 0 36px -12px #34d39959;color:#b6f5d0;font-size:.82rem;overflow:hidden;transform-origin:100% 100%;width:min(400px,calc(100vw - 32px))}.term-bar{align-items:center;background:#151917;border-bottom:1px solid #ffffff14;display:flex;gap:6px;padding:8px 10px 8px 12px}.term-bar i{background:#3b4440;border-radius:50%;height:10px;width:10px}.term-bar i:first-child{background:#ff5f57}.term-bar i:nth-child(2){background:#febc2e}.term-bar i:nth-child(3){background:#28c840}.term-bar span{color:#7d8a84;flex:1 1;font-size:.72rem;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-x{background:none;border:0;color:#7d8a84;cursor:pointer;display:grid;padding:2px;place-items:center}.term-x:hover{color:#fff}.term-body{cursor:text;height:240px;overflow-y:auto;padding:12px 14px 14px}.term-body p{line-height:1.5;margin:0 0 4px;white-space:pre-wrap;word-break:break-word}.term-tip{color:#7d8a84;margin-bottom:8px!important}.term-tip b{color:#34d399;font-weight:600}.term-cmd{color:#e8fff3}.term-out{color:#8fa59a}.term-prompt{color:#34d399}.term-input-row{align-items:center;display:flex;gap:8px}.term-input-row input{background:#0000;border:0;caret-color:#34d399;color:#e8fff3;flex:1 1;font:inherit;min-width:0;outline:0;padding:2px 0}@keyframes term-pop{0%{opacity:0;transform:perspective(900px) translateY(16px) rotateX(-10deg) scale(.94)}}@media (max-width:600px){.term-dock{bottom:12px;right:12px}.term-body{height:200px}}.guide{max-width:640px}.guide-list{display:flex;flex-direction:column;gap:14px;margin:0}.guide-list dt{font-size:.95rem;font-weight:600}.guide-list dd{line-height:1.55;margin:2px 0 0}.guide-keys,.guide-list dd{color:#a0a4ab;color:var(--text-muted);font-size:.9rem}.guide-keys{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}kbd{background:#181a1e;background:var(--surface-2);border:1px solid #ffffff2e;border:solid var(--border-strong);border-radius:6px;border-width:1px 1px 2px;color:#ecedef;color:var(--text);font-size:.78rem;margin-right:6px;padding:2px 8px}.gc,kbd{font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono)}.gc{animation:gc-in .25s steps(4) both;background:#07040f;color:#fff;cursor:pointer;display:grid;inset:0;overflow:hidden;place-items:center;position:fixed;z-index:300}.gc:before{background:repeating-linear-gradient(0deg,#ffffff0d 0 1px,#0000 1px 4px);pointer-events:none;z-index:3}.gc:after,.gc:before{content:"";inset:0;position:absolute}.gc:after{background:radial-gradient(ellipse at 50% 55%,#ff388c47,#0000 60%),radial-gradient(ellipse at 20% 0,#38e8ff2e,#0000 55%)}.gc-leaving{opacity:0;transition:opacity .45s steps(6)}.gc-pixels{display:grid;inset:0;pointer-events:none;position:absolute;z-index:4}.gc-pixels span{animation:gc-pixel .01s steps(1) forwards;background:#07040f}.gc-stage{padding:0 16px;position:relative;text-align:center;z-index:2}.gc-clear,.gc-next{font-weight:800;letter-spacing:.06em;margin:0;text-transform:uppercase}.gc-clear{animation:gc-slam .7s steps(7) .5s both,gc-away .01s steps(1) 2s forwards;color:#ff4d9d;font-size:clamp(2.2rem,9vw,5.5rem);text-shadow:4px 4px 0 #38e8ff,8px 8px 0 #0009}.gc-next{animation:gc-show .01s steps(1) 2.1s forwards,gc-glitch .5s steps(2) 2.1s 3;color:#fff;font-size:clamp(1.2rem,5.5vw,3.2rem);left:0;opacity:0;position:absolute;right:0;text-shadow:3px 0 #ff4d9d,-3px 0 #38e8ff;top:50%;transform:translateY(-50%);white-space:nowrap}.gc-cursor{animation:blink .6s steps(1) infinite;background:#ff4d9d;display:inline-block;height:.95em;margin-left:6px;vertical-align:-.1em;width:.5em}.gc-hint{animation:gc-show .01s steps(1) 3s forwards;color:#ffffff8c;font-size:.75rem;left:0;letter-spacing:.2em;margin:0;opacity:0;position:absolute;right:0;text-transform:uppercase;top:calc(50% + 4rem)}@keyframes gc-in{0%{opacity:0}}@keyframes gc-pixel{to{opacity:0;visibility:hidden}}@keyframes gc-slam{0%{opacity:0;transform:scale(3.2) rotate(-4deg)}70%{transform:scale(.94) rotate(1deg)}to{opacity:1;transform:none}}@keyframes gc-away{to{opacity:0;visibility:hidden}}@keyframes gc-show{to{opacity:1}}@keyframes gc-glitch{0%{transform:translateY(-50%) translateX(0)}50%{text-shadow:-5px 0 #ff4d9d,5px 0 #38e8ff;transform:translateY(-50%) translateX(-6px)}}@media (prefers-reduced-motion:reduce){.gc,.gc-clear,.gc-cursor,.gc-hint,.gc-next,.gc-pixels span{animation:none!important}.gc-clear{display:none}.gc-hint,.gc-next{opacity:1}.gc-pixels{display:none}}.App>.footer,.App>main{position:relative;z-index:1}.kb-bg{--cap:#d9dce1;--cap-hi:#f4f5f7;--cap-mod:#9aa1ab;--cap-side:#8c929c;--cap-base:#5f6570;--cap-ink:#3a3f47;--case-a:#3a3f47;--case-b:#1d2024;--plate:#101215;--slot:#07080a;inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}:root[data-theme=dark] .kb-bg{--cap:#34383f;--cap-hi:#454a53;--cap-mod:#23262b;--cap-side:#181a1e;--cap-base:#0c0d0f;--cap-ink:#aab1bb;--case-a:#2a2d33;--case-b:#121316;--plate:#0a0b0d;--slot:#050506}.kb-stage{left:50%;-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 35%,#0000 78%);mask-image:radial-gradient(ellipse at 50% 50%,#000 35%,#0000 78%);opacity:.1;position:absolute;top:52%;transform:translate(-50%,-50%);width:min(1400px,150vw)}:root[data-theme=light] .kb-stage{opacity:.09}.kb-board{background:linear-gradient(180deg,var(--case-a),var(--case-b));border:1px solid #ffffff1f;border-radius:22px;box-shadow:inset 0 1px 0 #ffffff1f;padding:18px 22px 30px;position:relative;transform:perspective(1400px) rotateX(32deg) rotate(-4deg);transform-origin:50% 50%}.kb-plate{background:var(--plate);border-radius:12px;box-shadow:inset 0 3px 8px #0009;flex-direction:column;padding:8px}.kb-plate,.kb-row{display:flex;gap:3px}.kb-key{background:var(--slot);border-radius:9px;box-shadow:inset 0 0 6px hsl(calc(160 + var(--col)*9) 80% 55%/.3);box-shadow:inset 0 0 6px hsl(calc(var(--rgb, 160) + var(--col)*9) 80% 55%/.3);height:52px;min-width:0;padding:2px;position:relative}.kb-cap{background:radial-gradient(ellipse at 50% 35%,var(--cap-hi),var(--cap) 70%);border-radius:7px;box-shadow:0 2px 0 var(--cap-side),0 4px 0 var(--cap-side),0 5px 0 var(--cap-base),inset 0 1px 0 #fff3;display:grid;height:100%;place-items:center;transform:translateY(-4px);transition:transform .06s ease-out,box-shadow .06s ease-out,background .1s;width:100%}.kb-mod .kb-cap{background:radial-gradient(ellipse at 50% 35%,var(--cap-mod),var(--cap-mod) 70%)}.kb-legend{color:var(--cap-ink);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.74rem;font-weight:400;text-transform:lowercase}.kb-key:not(.kb-mod) .kb-legend{text-transform:uppercase}.kb-key.down .kb-cap{background:radial-gradient(ellipse at 50% 35%,#6ee7b7,#34d399 75%);background:radial-gradient(ellipse at 50% 35%,var(--accent-strong),var(--accent) 75%);box-shadow:0 1px 0 var(--cap-side),0 2px 0 var(--cap-base),0 0 14px 1px #34d399;box-shadow:0 1px 0 var(--cap-side),0 2px 0 var(--cap-base),0 0 14px 1px var(--accent);transform:translateY(2px)}.kb-key.down .kb-legend{color:#04130c;color:var(--accent-ink)}@media (max-width:700px){.kb-key{border-radius:6px;height:34px;padding:1px}.kb-cap{border-radius:5px}.kb-legend{font-size:.55rem}.kb-board{padding:10px 10px 18px}.kb-plate{gap:2px;padding:4px}.kb-row{gap:2px}}@media (prefers-reduced-motion:no-preference){.kb-board{animation:rgb-cycle 12s linear infinite}}@property --rgb{syntax:"<number>";inherits:true;initial-value:160}@keyframes rgb-cycle{0%{--rgb:0}to{--rgb:360}}.hroad-lane{height:150px;margin-bottom:8px;position:relative}.hroad-asphalt{background:#181a1e;background:var(--surface-2);border:2px solid #ffffff2e;border:2px solid var(--border-strong);border-radius:26px;height:52px;left:0;position:absolute;right:0;top:30px}.hroad-asphalt:before{background:linear-gradient(90deg,#a0a4ab 0 14px,#0000 14px 28px) 0 0 /28px 100% repeat-x;background:linear-gradient(to right,var(--text-muted) 0 14px,#0000 14px 28px) 0 0 /28px 100% repeat-x;content:"";height:3px;left:22px;opacity:.5;position:absolute;right:22px;top:50%;transform:translateY(-50%)}.hroad-car{height:32px;margin-left:-32px;position:absolute;top:6px;transform:translateY(28px);transition-property:left;transition-timing-function:cubic-bezier(.45,0,.25,1);width:64px;z-index:3}.hroad-car-svg{display:block;overflow:visible}.hroad-body{fill:#34d399;fill:var(--accent);stroke:#00000059;stroke-width:1}.hroad-glass{fill:#081410bf}.hroad-beam{fill:#fff6c833;opacity:0;transition:opacity .2s}:root[data-theme=light] .hroad-beam{fill:#ffbe2847}.moving .hroad-beam{opacity:1}.hroad-tyre{fill:#14161a;stroke:#6b7280;stroke-width:1.5}.hroad-spoke{stroke:#9aa1ab;stroke-width:1.5}.hroad-stops{list-style:none;margin:0;padding:0}.hroad-stops li{top:56px;width:0;z-index:2}.hroad-stop,.hroad-stops li{position:absolute;transform:translateX(-50%)}.hroad-stop{align-items:center;background:none;border:0;color:#a0a4ab;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:2px;left:0;padding:0;top:0;width:120px}.hroad-dot{background:#121316;background:var(--surface);border:2px solid #ffffff2e;border:2px solid var(--border-strong);border-radius:50%;height:16px;margin-top:-8px;transition:background .3s,border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.22,1,.36,1);transition:background .3s,border-color .3s,box-shadow .3s,transform .3s var(--ease);width:16px}.hroad-stop.passed .hroad-dot{background:#34d399;background:var(--accent);border-color:#34d399;border-color:var(--accent)}.hroad-stop.active .hroad-dot{box-shadow:0 0 14px #34d399;box-shadow:0 0 14px var(--accent);transform:scale(1.35)}.hroad-stop:hover .hroad-dot{border-color:#34d399;border-color:var(--accent)}.hroad-stop:focus-visible{border-radius:8px;outline:2px solid #34d399;outline:2px solid var(--accent);outline-offset:4px}.hroad-year{color:#ecedef;color:var(--text);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.8rem;margin-top:30px}.hroad-stop.active .hroad-year{color:#34d399;color:var(--accent);font-weight:600}.hroad-org{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:.75rem;line-height:1.3;max-width:110px;overflow:hidden;text-align:center}.hroad-nav{align-items:center;display:flex;justify-content:space-between;margin:8px 0 16px}.hroad-nav .filter:disabled{cursor:default;opacity:.4}.hroad-count{color:#a0a4ab;color:var(--text-muted);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.8rem}.hroad-card{animation:hroad-card-in .5s cubic-bezier(.22,1,.36,1) backwards;animation:hroad-card-in .5s var(--ease) backwards;background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:flex;flex-direction:column;gap:16px;padding:22px 24px}.hroad-card-head{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:48px minmax(0,1fr)}.hroad-card .timeline-details{margin:0}@keyframes hroad-card-in{0%{opacity:0;transform:perspective(900px) translateY(14px) rotateX(-8deg)}}@media (prefers-reduced-motion:no-preference){.hroad-lane.moving .hroad-asphalt:before{animation:hroad-dash .4s linear infinite}.hroad-lane.moving .hroad-wheel{animation:hroad-spin .35s linear infinite}.hroad-lane.moving .hroad-car-svg{animation:hroad-bump .18s steps(2) infinite}}@keyframes hroad-dash{to{background-position:-28px 0}}@keyframes hroad-spin{to{transform:rotate(1turn)}}@keyframes hroad-bump{50%{transform:translateY(-1px)}}@media (max-width:700px){.hroad-org{display:none}.hroad-stop{width:60px}.hroad-lane{height:120px}}.ref-list{grid-gap:20px;display:grid;gap:20px}.ref-row{background:#121316;background:var(--surface);border:1px solid #ffffff17;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);display:grid;grid-template-columns:minmax(220px,300px) 1fr;overflow:hidden}.ref-person{align-items:flex-start;background:color-mix(in srgb,#34d399 5%,#0000);background:color-mix(in srgb,var(--accent) 5%,#0000);border-right:1px solid #ffffff17;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:28px}.ref-avatar{border:1px solid #34d399;border:1px solid var(--accent);border-radius:50%;color:#34d399;color:var(--accent);display:grid;font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-weight:600;height:56px;margin-bottom:16px;place-items:center;width:56px}.ref-name{font-size:1.125rem;font-weight:600;letter-spacing:-.02em}.ref-org,.ref-role{color:#a0a4ab;color:var(--text-muted);font-size:.875rem;line-height:1.45}.ref-role{margin-top:4px}.ref-rel{color:#a0a4ab;color:var(--text-muted);font-family:Geist Mono Variable,Geist Mono,ui-monospace,Menlo,monospace;font-family:var(--font-mono);font-size:.75rem;line-height:1.5;margin-top:14px}.ref-links{display:flex;gap:8px;margin-top:16px}.ref-links:empty{display:none}.ref-icon{border:1px solid #ffffff17;border:1px solid var(--border);border-radius:50%;color:#a0a4ab;color:var(--text-muted);display:grid;height:34px;place-items:center;transition:color .2s ease,border-color .2s ease;width:34px}.ref-icon:hover{border-color:#34d399;border-color:var(--accent);color:#34d399;color:var(--accent)}.ref-quote{align-items:center;display:flex;font-size:1.1875rem;letter-spacing:-.01em;line-height:1.65;margin:0;padding:28px 36px 28px 64px;position:relative}.ref-mark{color:#34d399;color:var(--accent);font-family:Georgia,serif;font-size:4.5rem;left:24px;line-height:1;opacity:.55;position:absolute;top:14px}.ref-note{align-items:center;border:1px dashed #ffffff17;border:1px dashed var(--border);border-radius:14px;border-radius:var(--radius);color:#a0a4ab;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:28px;padding:20px 24px}@media (max-width:720px){.ref-row{grid-template-columns:1fr}.ref-person{border-bottom:1px solid #ffffff17;border-bottom:1px solid var(--border);border-right:0}.ref-quote{padding:24px 24px 24px 52px}.ref-mark{left:16px}}
/*# sourceMappingURL=main.e4f8f7ce.css.map*/