@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.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-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,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}:root{--paper: #F4F1EA;--paper-2: #EDE8DE;--card: #FBF9F4;--ink: #15140F;--ink-2: #2A2823;--muted: #6E6A60;--muted-2: #9A968B;--rule: #D9D3C5;--rule-2: #C7C0AF;--accent: #B0461F;--accent-deep: #8C3614;--highlight: #E9DDC3;--max: 1240px;--gutter: 56px;--sans: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--display: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}html{scroll-behavior:smooth;background:var(--paper)}body{font-family:var(--sans);font-weight:400;background:var(--paper);color:var(--ink);line-height:1.55;font-feature-settings:"ss01","cv11","kern";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--ink);color:var(--paper)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background-image:radial-gradient(rgba(21,20,15,.022) 1px,transparent 1px);background-size:3px 3px;mix-blend-mode:multiply;opacity:.6}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px var(--gutter);background:#f4f1eac7;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);border-bottom:1px solid transparent;transition:border-color .28s ease,padding .28s ease}.nav.scrolled{border-bottom-color:var(--rule);padding-top:16px;padding-bottom:16px}.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-.015em}.brand .mark{width:8px;height:8px;background:var(--accent);border-radius:50%;align-self:center;margin-right:4px}.brand small{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;font-weight:500}.nav-links{grid-column:2;display:flex;gap:32px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500}.nav-links a{color:var(--muted);text-decoration:none;position:relative;padding:6px 0;transition:color .18s ease}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.65,0,.35,1)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{transform:scaleX(1)}.nav-links a.active{color:var(--ink)}.nav-links a.active:after{transform:scaleX(1);background:var(--accent)}.nav-cta{grid-column:3;justify-self:end;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--ink);text-decoration:none;padding:10px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);transition:background .2s ease,color .2s ease}.nav-cta:hover{background:var(--accent);border-color:var(--accent)}.nav-toggle{display:none;background:transparent;border:1px solid var(--rule);padding:10px;cursor:pointer;width:40px;height:40px;flex-direction:column;justify-content:center;gap:5px;align-items:center}.nav-toggle-bar{display:block;width:18px;height:1.5px;background:var(--ink);transition:transform .22s ease,opacity .22s ease}.nav.menu-open .nav-toggle-bar:first-child{transform:translateY(3.25px) rotate(45deg)}.nav.menu-open .nav-toggle-bar:last-child{transform:translateY(-3.25px) rotate(-45deg)}@media (max-width: 900px){.nav{grid-template-columns:1fr auto auto;gap:12px;padding:16px 22px;position:fixed}.nav-toggle{display:flex;grid-column:3}.nav-cta{grid-column:2;padding:8px 14px;font-size:12px;letter-spacing:.14em}.nav-links{grid-column:1 / -1;grid-row:2;flex-direction:column;gap:0;margin:12px -22px -16px;padding:8px 22px 20px;background:#f4f1eafa;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-height:0;overflow:hidden;transition:max-height .26s ease,padding .26s ease}.nav.menu-open .nav-links{max-height:320px;padding:8px 22px 20px}.nav-links a{padding:16px 0;font-size:12px;letter-spacing:.14em;border-bottom:1px solid var(--rule)}.nav-links a:last-child{border-bottom:none}.nav-links a:after{display:none}}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;font-weight:500;display:inline-flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:24px;height:1px;background:var(--ink)}.section-num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;font-weight:500}h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.02em;color:var(--ink)}.display{font-family:var(--display);font-size:clamp(48px,7.2vw,104px);line-height:1;letter-spacing:-.035em;font-weight:500}.display em{font-style:normal;color:var(--accent)}.h2{font-family:var(--display);font-size:clamp(30px,3.6vw,48px);line-height:1.1;letter-spacing:-.025em;font-weight:500}.h2 em{font-style:normal;color:var(--accent)}.lede{font-family:var(--sans);font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--ink-2);max-width:60ch;font-weight:400}.body{font-size:16px;line-height:1.65;color:var(--ink-2);max-width:62ch}.body p+p{margin-top:1em}.body strong{font-weight:600;color:var(--ink)}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}section{position:relative;padding:140px 0}@media (max-width: 720px){section{padding:90px 0}.wrap{padding:0 22px}}.section-head{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:end;padding-bottom:32px;margin-bottom:64px;border-bottom:1px solid var(--rule)}.section-head .meta{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.section-head .meta .num{color:var(--accent);display:block;margin-bottom:8px}@media (max-width: 760px){.section-head{grid-template-columns:1fr;gap:16px;margin-bottom:40px}}.hero{position:relative;padding:180px 0 120px;border-bottom:1px solid var(--rule)}.hero .wrap{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,420px);gap:80px;align-items:end}.hero .available{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;padding:8px 14px;border:1px solid var(--rule);border-radius:999px;margin-bottom:36px;background:var(--card)}.hero .available .pulse{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 #b0461f99;animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%{box-shadow:0 0 #b0461f8c}60%{box-shadow:0 0 0 8px #b0461f00}to{box-shadow:0 0 #b0461f00}}.hero h1.display{margin-bottom:36px}.hero h1 .line{display:block}.hero h1 .line>span{display:inline-block}.hero .tagline{font-family:var(--sans);font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--ink-2);max-width:54ch;font-weight:400;opacity:0;animation:fadeUp .8s ease .32s forwards}.hero .tagline .accent{color:var(--ink);font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-metrics{list-style:none;margin-top:32px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted);opacity:0;animation:fadeUp .8s ease .4s forwards}.hero-metrics li{display:inline-flex;align-items:baseline;gap:8px;position:relative;padding-right:24px}.hero-metrics li:not(:last-child):after{content:"·";position:absolute;right:4px;color:var(--rule-2)}.hero-metrics .v{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.hero-metrics .k{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px}@media (max-width: 760px){.hero-metrics{gap:6px 16px}.hero-metrics li{padding-right:16px}.hero-metrics .k{font-size:11px}}.hero .hero-cta{display:flex;gap:12px;margin-top:44px;opacity:0;animation:fadeUp .8s ease .48s forwards}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.btn:hover{background:var(--accent);border-color:var(--accent)}.btn .arrow{transition:transform .22s ease}.btn:hover .arrow{transform:translate(2px,-2px)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:var(--paper)}.portrait-block{opacity:0;animation:fadeIn 1s ease .28s forwards}@keyframes fadeIn{to{opacity:1}}.portrait{position:relative;aspect-ratio:4 / 5;background:var(--card);border:1px solid var(--rule);overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:grayscale(100%) contrast(1.05);transition:filter .6s ease}.portrait:hover img{filter:grayscale(0%) contrast(1.02)}.portrait-caption{margin-top:14px;display:grid;grid-template-columns:1fr auto;gap:12px;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.portrait-caption .name{color:var(--ink)}.portrait-caption .loc{text-align:right}.hero-stats{margin-top:80px;padding-top:32px;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(4,1fr);gap:32px;opacity:0;animation:fadeUp .9s ease .64s forwards}.hero-stats .stat .k{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.hero-stats .stat .v{font-family:var(--display);font-size:clamp(22px,2.2vw,30px);line-height:1.15;letter-spacing:-.02em;color:var(--ink);font-weight:500}.hero-stats .stat .v em{font-style:normal;color:var(--accent);font-weight:500}@media (max-width: 980px){.hero .wrap{grid-template-columns:1fr;gap:56px}.hero-stats{grid-template-columns:repeat(2,1fr);gap:24px}}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:100px;align-items:start}.about-grid .body{font-size:18px;line-height:1.65;color:var(--ink-2)}.about-grid .body strong{font-weight:600;color:var(--ink)}.about-grid .body em{font-style:normal;color:var(--accent);font-weight:600}.facts{border-top:1px solid var(--ink);padding-top:24px;display:flex;flex-direction:column}.fact{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}.fact:last-child{border-bottom:none}.fact .k{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;padding-top:3px}.fact .v{font-size:15px;color:var(--ink)}.fact .v small{display:block;color:var(--muted);font-size:12px;margin-top:2px}@media (max-width: 900px){.about-grid{grid-template-columns:1fr;gap:48px}}.work{background:var(--paper-2);border-block:1px solid var(--rule)}.case{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:80px 0;border-bottom:1px solid var(--rule);align-items:start}.case:last-child{border-bottom:none}.case:nth-child(2n) .case-visual{order:-1}.case-meta{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.case-meta .idx{color:var(--accent)}.case-meta .featured{background:var(--ink);color:var(--paper);padding:3px 8px;font-weight:500}.case-meta .tag{color:var(--muted)}.case-title{font-family:var(--display);font-size:clamp(30px,3.6vw,46px);line-height:1.05;letter-spacing:-.03em;margin-bottom:8px;color:var(--ink);font-weight:600}.case-title em{font-style:normal;color:var(--accent);font-weight:600}.case-sub{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:28px}.case-body{font-size:16px;line-height:1.7;color:var(--ink-2);max-width:56ch}.case-body p+p{margin-top:.9em}.case-body strong{color:var(--ink);font-weight:600}.case-stack{margin-top:24px;padding-top:20px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:6px}.case-stack .chip{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border:1px solid var(--rule-2);color:var(--muted);background:var(--paper)}.case-link{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid var(--ink);transition:color .2s ease,border-color .2s ease}.case-link:hover{color:var(--accent);border-color:var(--accent)}.case-link .arrow{transition:transform .22s ease}.case-link:hover .arrow{transform:translate(2px,-2px)}.case-visual{position:relative;background:var(--card);border:1px solid var(--rule);aspect-ratio:5 / 4;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:24px}.case-visual .vmeta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.case-visual .vmeta .lbl{color:var(--accent)}.case-visual .vmeta a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.case-visual .vmeta a:hover{color:var(--accent);border-bottom-color:var(--accent)}.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:end}.metric .v{font-family:var(--display);font-size:clamp(32px,4vw,52px);line-height:1;letter-spacing:-.03em;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.metric .v .unit{color:var(--accent);font-style:normal;font-weight:500}.metric .k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-top:8px;line-height:1.4}.case.compact{grid-template-columns:1fr 1fr;padding:56px 0}.case.compact .case-title{font-size:clamp(28px,3.2vw,40px)}.case.compact .case-visual{aspect-ratio:5 / 3}.case.compact .case-metrics{grid-template-columns:repeat(2,1fr)}.case.compact .case-body{font-size:15px}@media (max-width: 900px){.case,.case.compact{grid-template-columns:1fr;gap:32px;padding:56px 0}.case:nth-child(2n) .case-visual{order:0}}.exp-list{display:flex;flex-direction:column}.exp-row{display:grid;grid-template-columns:160px 1fr 200px;gap:48px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:start;transition:background .2s ease;position:relative}.exp-row:first-child{border-top:1px solid var(--ink)}.exp-row:before{content:"";position:absolute;left:-12px;right:-12px;top:0;bottom:0;background:var(--card);opacity:0;transition:opacity .2s ease;z-index:-1}.exp-row:hover:before{opacity:1}.exp-dates{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;padding-top:6px}.exp-dates.current{color:var(--accent)}.exp-dates.current:before{content:"● ";color:var(--accent)}.exp-role h3{font-family:var(--display);font-size:20px;line-height:1.3;margin-bottom:4px;color:var(--ink);font-weight:600;letter-spacing:-.015em}.exp-role .company{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-bottom:12px}.exp-role p{color:var(--ink-2);font-size:15px;line-height:1.65;max-width:60ch}.exp-role p strong{font-weight:600;color:var(--ink)}.exp-skills{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;padding-top:8px;line-height:1.7;text-align:right}.exp-skills span{display:block}@media (max-width: 900px){.exp-row{grid-template-columns:1fr;gap:12px;padding:28px 0}.exp-skills{text-align:left;padding-top:0}}.stack{background:var(--paper-2);border-block:1px solid var(--rule)}.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);background:var(--rule)}.stack-col{background:var(--paper);padding:36px 32px}.stack-col h4{font-family:var(--mono);font-size:12px;letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid var(--rule);font-weight:500}.stack-col ul{list-style:none}.stack-col li{padding:10px 0;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;border-bottom:1px dashed var(--rule);font-size:15px}.stack-col li:last-child{border-bottom:none}.stack-col li .name{color:var(--ink);font-weight:500}.stack-col li .name.primary{color:var(--accent)}.stack-col li .note{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}@media (max-width: 900px){.stack-grid{grid-template-columns:1fr}}.recognition{border-block:1px solid var(--rule)}.recog-list{list-style:none;border-top:1px solid var(--ink)}.recog-row{display:grid;grid-template-columns:140px 1fr 80px;gap:32px;padding:24px 0;border-bottom:1px solid var(--rule);align-items:baseline}.recog-kind{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase}.recog-body a,.recog-body span:first-child{color:var(--ink);font-size:17px;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease,color .2s ease}.recog-body a:hover{color:var(--accent);border-bottom-color:var(--accent)}.recog-venue{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-top:4px}.recog-year{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;text-align:right}@media (max-width: 760px){.recog-row{grid-template-columns:1fr;gap:6px}.recog-year{text-align:left}}.contact{padding:160px 0 80px;border-top:1px solid var(--rule)}.contact h2{font-family:var(--display);font-size:clamp(40px,5.6vw,80px);line-height:1;letter-spacing:-.035em;margin-bottom:56px;font-weight:500;max-width:14ch}.contact h2 em{font-style:normal;color:var(--accent);font-weight:500}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.contact-list{border-top:1px solid var(--ink)}.contact-row{display:grid;grid-template-columns:110px 1fr auto;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);position:relative;transition:padding .22s ease}.contact-row:hover{padding-left:8px}.contact-row .k{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.contact-row .v{font-family:var(--sans);font-size:clamp(17px,1.4vw,20px);line-height:1.3;letter-spacing:-.015em;color:var(--ink);font-weight:500}.contact-row .arrow{color:var(--muted);transition:color .22s ease,transform .22s ease;font-size:18px}.contact-row:hover .arrow{color:var(--accent);transform:translate(3px,-3px)}.contact-row:hover .v{color:var(--accent)}.contact-aside{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--ink-2);max-width:36ch;padding:32px;background:var(--highlight);border:1px solid var(--rule);font-weight:400}.contact-aside .sig{display:block;margin-top:24px;font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}@media (max-width: 900px){.contact-grid{grid-template-columns:1fr;gap:48px}}footer{padding:36px var(--gutter);border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}footer .center{text-align:center}footer .end{text-align:right}footer .dot{color:var(--accent)}@media (max-width: 720px){footer{grid-template-columns:1fr;text-align:center;gap:8px;padding:28px 22px}footer .end{text-align:center}}.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:10px;background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--rule-2);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.nav-toggle:focus-visible,.btn:focus-visible,.nav-cta:focus-visible{outline-offset:3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero .tagline,.hero .hero-cta,.portrait-block,.hero-metrics,.hero-stats{opacity:1!important;transform:none!important}.reveal{opacity:1;transform:none}.hero .available .pulse{animation:none;box-shadow:none}}
