@font-face{font-family:__Space_Grotesk_6b9622;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:__Space_Grotesk_6b9622;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:__Space_Grotesk_Fallback_6b9622;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_6b9622{font-family:__Space_Grotesk_6b9622,__Space_Grotesk_Fallback_6b9622;font-style:normal}.__variable_6b9622{--font-heading:"__Space_Grotesk_6b9622","__Space_Grotesk_Fallback_6b9622"}@font-face{font-family:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:__IBM_Plex_Sans_Fallback_43f867;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_43f867{font-family:__IBM_Plex_Sans_43f867,__IBM_Plex_Sans_Fallback_43f867;font-style:normal}.__variable_43f867{--font-body:"__IBM_Plex_Sans_43f867","__IBM_Plex_Sans_Fallback_43f867"}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-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:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-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:__IBM_Plex_Mono_Fallback_46fe82;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:__IBM_Plex_Mono_46fe82,__IBM_Plex_Mono_Fallback_46fe82;font-style:normal}.__variable_46fe82{--font-mono:"__IBM_Plex_Mono_46fe82","__IBM_Plex_Mono_Fallback_46fe82"}:root{--bg:#10151a;--bg-elevated:#161d24;--text:#ece8e1;--text-muted:#8fa0a8;--text-faint:#5c6b72;--accent:#d8a24a;--accent-soft:rgba(216,162,74,.12);--line:#46626c;--border:hsla(38,22%,90%,.09);--rail-width:84px;--content-max:900px;--content-pad:1.5rem;--font-heading:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;--font-body:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{background:var(--bg)}body{margin:0;color:var(--text);font-family:var(--font-body),var(--font-heading);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-heading);font-weight:600;margin:0;line-height:1.15;letter-spacing:-.01em}p,ul{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent-soft);color:var(--text)}.mono{font-family:var(--font-mono)}.rail{position:fixed;inset:0 auto 0 0;width:var(--rail-width);height:100vh;border-right:1px solid var(--border);z-index:20}.rail-inner{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1.75rem 0}.rail-name{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap}.rail-nav{flex-direction:column;gap:1.1rem}.rail-nav,.rail-nav-item{display:flex;align-items:center}.rail-nav-item{position:relative;justify-content:center;padding:.4rem}.rail-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--line);background:transparent;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.rail-nav-item:focus-visible .rail-dot,.rail-nav-item:hover .rail-dot,.rail-nav-item[data-active=true] .rail-dot{background:var(--accent);border-color:var(--accent);transform:scale(1.2)}.rail-nav-label{position:absolute;left:calc(100% + .6rem);top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.72rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);padding:.25rem .55rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}.rail-nav-item:focus-visible .rail-nav-label,.rail-nav-item:hover .rail-nav-label{opacity:1}.rail-lang{gap:.35rem}.lang-toggle,.rail-lang{display:flex;flex-direction:column}.lang-toggle{border:1px solid var(--border)}.lang-toggle-mobile.lang-toggle{flex-direction:row}.lang-toggle-btn{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--text-faint);padding:.35rem .5rem;transition:color .15s ease,background-color .15s ease}.lang-toggle-btn[data-active=true]{color:var(--accent);background:var(--accent-soft)}.lang-toggle-btn:hover{color:var(--text)}.lang-toggle-mobile{display:none;position:fixed;top:1.25rem;right:1.25rem;z-index:30;background:var(--bg-elevated)}.main{margin-left:var(--rail-width);padding:0 var(--content-pad)}.main-inner{max-width:var(--content-max);margin:0 auto}.section{padding:5.5rem 0;border-top:1px solid var(--border)}.hero,.section:first-of-type{border-top:none}.section-title{font-size:clamp(1.6rem,1.4rem + .8vw,2.1rem);margin-bottom:2.5rem}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:6rem 0;overflow:hidden}.hero-rings{position:absolute;top:50%;right:-8%;transform:translateY(-50%);width:min(46vw,620px);height:min(46vw,620px);opacity:.35;pointer-events:none;z-index:0}.hero-content{position:relative;z-index:1}.hero-title{font-size:clamp(2.4rem,1.9rem + 2.2vw,4rem);margin-bottom:.9rem}.hero-role{font-family:var(--font-heading);font-weight:500;font-size:clamp(1.1rem,1rem + .4vw,1.4rem);margin-bottom:1.75rem}.hero-pitch,.hero-role{color:var(--text-muted)}.hero-pitch{max-width:62ch;font-size:1.05rem;margin-bottom:2.5rem}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}.hero-animate{opacity:0;transform:translateY(14px);animation:fade-in-up .7s ease forwards}.hero-title.hero-animate{animation-delay:.05s}.hero-role.hero-animate{animation-delay:.18s}.hero-pitch.hero-animate{animation-delay:.3s}.hero-actions.hero-animate{animation-delay:.42s}@keyframes fade-in-up{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-animate{animation:none;opacity:1;transform:none}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.4rem;font-family:var(--font-body);font-size:.95rem;font-weight:500;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.btn-primary{background:var(--accent);color:#1a1305}.btn-primary:hover{background:#e3b464}.btn-outline{border-color:var(--line);color:var(--text)}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);border:1px solid var(--border);padding:.25rem .6rem;text-transform:lowercase}.project-list{display:flex;flex-direction:column;gap:3rem}.project-card{border-left:3px solid var(--accent);padding-left:1.5rem}.project-card-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;margin-bottom:.35rem}.project-name{font-size:1.35rem}.project-period{font-family:var(--font-mono);font-size:.8rem;color:var(--text-faint);white-space:nowrap}.project-role{color:var(--text-muted);font-size:.9rem;margin-bottom:.9rem}.project-description{color:var(--text-muted);max-width:68ch;margin-bottom:1.1rem}.project-link{display:inline-block;margin-top:1.1rem;font-family:var(--font-mono);font-size:.85rem;color:var(--accent);border-bottom:1px solid transparent;transition:border-color .15s ease}.project-link:hover{border-color:var(--accent)}.project-link-static{display:inline-block;margin-top:1.1rem;font-family:var(--font-mono);font-size:.85rem;color:var(--text-faint)}.timeline{position:relative;padding-left:1.6rem}.timeline:before{content:"";position:absolute;left:3px;top:6px;bottom:6px;width:1px;background:var(--line)}.timeline-item{position:relative;padding-bottom:2.25rem}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:calc(-1.6rem + 0px);top:6px;width:7px;height:7px;border-radius:50%;border:1px solid var(--accent);background:var(--bg)}.timeline-date{font-family:var(--font-mono);font-size:.8rem;color:var(--text-faint);margin-bottom:.4rem}.timeline-role{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;margin-bottom:.25rem}.timeline-org{color:var(--text-muted);max-width:60ch}.other-projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:2rem 2.5rem;gap:2rem 2.5rem}.other-project-item{padding-top:1.1rem;border-top:1px solid var(--border)}.other-project-name{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;margin-bottom:.5rem}.other-project-description{color:var(--text-muted);font-size:.92rem;margin-bottom:.75rem}.other-project-link{display:inline-block;font-family:var(--font-mono);font-size:.8rem;color:var(--accent);border-bottom:1px solid transparent;transition:border-color .15s ease}.other-project-link:hover{border-color:var(--accent)}.skills-list{display:flex;flex-direction:column;gap:1.75rem}.skill-row{position:relative;border:1px solid var(--border);padding:2.1rem 1.5rem 1.6rem}.skill-row-label{position:absolute;top:-.62rem;left:1.25rem;background:var(--bg);padding:0 .5rem;font-size:.72rem;color:var(--text-faint)}.skill-row-items{display:flex;flex-wrap:wrap;justify-content:center;gap:1.75rem 2.5rem}.skill-item{display:flex;flex-direction:column;align-items:center;gap:.55rem;color:var(--text-muted);transition:transform .15s ease,color .15s ease}.skill-item:focus-visible,.skill-item:hover{transform:translateY(-2px);color:var(--text)}.skill-item-name{font-size:.7rem;text-align:center;white-space:nowrap}.languages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:2rem 2.5rem;gap:2rem 2.5rem}.language-item{padding-top:1.1rem;border-top:1px solid var(--border)}.language-name{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;margin-bottom:.5rem}.language-level{color:var(--text-muted);font-size:.92rem}.recommendation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,340px));grid-gap:2.5rem;gap:2.5rem}.recommendation-label{font-size:.78rem;color:var(--text-faint);margin-bottom:.6rem}.recommendation-frame{display:block;width:100%;border:1px solid var(--border);padding:.5rem;margin-bottom:.75rem}.recommendation-image{display:block;max-width:100%;height:auto}.recommendation-download{display:inline-block;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);border-bottom:1px solid var(--line);padding-bottom:.15rem;transition:color .15s ease,border-color .15s ease}.recommendation-download:hover{color:var(--accent);border-color:var(--accent)}.contact-list{gap:1.4rem;max-width:480px}.contact-item,.contact-list{display:flex;flex-direction:column}.contact-item{gap:.3rem;padding-bottom:1.4rem;border-bottom:1px solid var(--border)}.contact-item:last-child{border-bottom:none;padding-bottom:0}.contact-label{font-family:var(--font-mono);font-size:.78rem;color:var(--text-faint)}.contact-value{font-size:1.05rem}a.contact-value:hover{color:var(--accent)}.footer{padding:2.5rem 0 4rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-faint)}@media (max-width:768px){.rail{display:none}.main{margin-left:0}.lang-toggle-mobile{display:flex}.hero{min-height:auto;padding:5rem 0 4rem}.hero-rings{width:70vw;height:70vw;right:-20%}.section{padding:3.5rem 0}}@media (max-width:480px){:root{--content-pad:1.15rem}.hero-actions{flex-direction:column;align-items:flex-start}.btn{width:100%;justify-content:center}}