@import "https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600;700;800&display=swap";:root{--cyan:#0ff;--cyan-dark:#00d6d6;--lime:#b1ec52;--ink:#111;--ink-2:#424242;--ink-3:#797979;--line:#ececec;--surface:#fff;--surface-soft:#fafafa;--dark:#222;--dark-2:#26272c;--dark-card:#1b1b1b;--on-dark:#fff;--on-dark-2:#b6bfc9;--on-dark-3:#a4a4a4;--line-dark:#424242;--container:900px;--gutter:20px;--r-sm:8px;--r-lg:16px;--r-pill:100px;--font:"Onest", "Helvetica Neue", Arial, sans-serif;--ease:cubic-bezier(.22, .61, .36, 1);--dur:.2s}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;position:relative}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(900px at 88% -8%,#00ffff12,#0000 55%),radial-gradient(700px at -8% 30%,#b1ec520f,#0000 55%),radial-gradient(circle at 1px 1px,#1111110d 1px,#0000 0) 0 0/28px 28px;position:fixed;inset:0}::selection{background:var(--cyan);color:var(--ink)}a{color:inherit}h1,h2,h3{font-family:var(--font);text-wrap:balance;margin:0;font-weight:400}p{margin:0}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(68px,9vw,112px);scroll-margin-top:76px}.section--soft{background:var(--surface-soft)}.section-head{border-left:3px solid var(--cyan-dark);margin-bottom:clamp(32px,5vw,52px);padding-left:clamp(18px,2.5vw,28px)}.section-head h2{letter-spacing:-.025em;font-size:clamp(30px,4.2vw,44px);font-weight:500;line-height:1.14}.section-head p{max-width:62ch;color:var(--ink-2);margin-top:12px;font-size:16px;line-height:1.6}@media (width<=600px){:root{--gutter:18px}.section{padding-block:64px}}.site-header{z-index:90;-webkit-backdrop-filter:blur(10px);transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:#ffffffb3;border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-stuck{border-bottom-color:var(--line);background:#ffffffdb;box-shadow:0 8px 24px -20px #11111140}.site-header .container{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.site-header__brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.site-header__mark{flex:none;grid-template-rows:repeat(2,6px);grid-template-columns:repeat(2,6px);gap:2px;display:grid}.site-header__mark span{background:var(--ink);transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:1px}.site-header__mark span:first-child{background:var(--cyan-dark)}.site-header__brand:hover .site-header__mark span{transform:scale(1.15)}.site-header__name{font-size:15px;font-weight:600}.site-header__nav{color:var(--ink-2);gap:28px;font-size:14px;display:flex}@media (width<=700px){.site-header__nav{gap:14px;font-size:13px}.site-header__name{font-size:14px}.site-header .container{min-height:60px}}.site-header__nav a{transition:color var(--dur) var(--ease);padding-block:4px;text-decoration:none;position:relative}.site-header__nav a span{position:relative}.site-header__nav a:after{content:"";background:var(--cyan-dark);height:1px;transition:right .25s var(--ease);position:absolute;bottom:0;left:0;right:100%}.site-header__nav a:hover{color:var(--ink)}.site-header__nav a:hover:after{right:0}@media (width<=420px){.site-header__nav{gap:10px;font-size:12px}.site-header__brand{gap:6px}.site-header__name{font-size:13px}}.btn{font-family:var(--font);border-radius:var(--r-sm);cursor:pointer;text-align:center;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;align-items:center;gap:6px;padding:12px 24px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn svg{width:16px;height:16px;transition:transform var(--dur) var(--ease);flex:none}.btn:hover svg{transform:translate(3px)}.btn--cyan{background:var(--cyan);color:var(--ink);border-color:var(--cyan)}.btn--cyan:hover{background:var(--cyan-dark);border-color:var(--cyan-dark)}.btn--outline{color:var(--ink);background:0 0;border-color:#b3b3b3}.btn--outline:hover{background:var(--surface-soft);border-color:var(--ink)}.btn--light-sm{background:var(--ink);color:var(--on-dark);border-color:var(--ink);padding:8px 16px;font-size:14px}.btn--light-sm:hover{background:var(--cyan-dark);border-color:var(--cyan-dark);color:var(--ink)}.btn:active{transform:scale(.97)}.iconbtn{border:1px solid var(--line-dark);width:44px;height:44px;color:var(--on-dark);cursor:pointer;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover{background:var(--dark-2);border-color:var(--on-dark)}.iconbtn:disabled{opacity:.3;pointer-events:none}.iconbtn svg{width:18px;height:18px}.hero{padding-block:clamp(48px,9vw,88px) clamp(56px,10vw,96px);position:relative;overflow:hidden}.hero__glow{z-index:0;pointer-events:none;background:radial-gradient(640px at 82% -10%,#00ffff24,#0000 60%),radial-gradient(480px at -5% 40%,#b1ec521f,#0000 60%);position:absolute;inset:0}.hero .container{z-index:1;position:relative}.hero-in{opacity:0;animation:hero-in .7s var(--ease) forwards;transform:translateY(14px)}@keyframes hero-in{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-in{opacity:1;animation:none;transform:none}}.hero__eyebrow{color:var(--ink-3);margin-bottom:20px;font-size:14px;line-height:1.4}.hero h1{letter-spacing:-.01em;font-size:clamp(34px,5.6vw,56px);line-height:1.08}.hero h1 .accent{color:var(--cyan-dark);position:relative}.hero__lead{color:var(--ink-2);max-width:52ch;margin-top:20px;font-size:19px;line-height:1.5}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero h1{letter-spacing:-.025em;max-width:16ch}.stats{background:linear-gradient(165deg, #262626 0%, var(--dark) 55%, #1c1c1c 100%);color:var(--on-dark);padding-block:clamp(48px,8vw,88px);position:relative}.stats__head{color:var(--on-dark-2);margin-bottom:12px;font-size:15px}.stats__intro{max-width:56ch;color:var(--on-dark);margin-bottom:32px;font-size:17px;line-height:1.55}.stats__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}@media (width<=900px){.stats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card{border-radius:var(--r-lg);background:var(--dark-card);border:1px solid var(--line-dark);opacity:0;min-height:148px;transition:opacity .6s var(--ease), transform .6s var(--ease), border-color .25s var(--ease);flex-direction:column;gap:12px;padding:24px;display:flex;transform:translateY(22px)}.stat-card.is-visible{opacity:1;transform:translateY(0)}.stat-card.is-visible:hover{border-color:var(--cyan-dark);transform:translateY(-3px)}.stat-card__icon{width:22px;height:22px;color:var(--cyan-dark)}.stat-card b{align-items:flex-end;min-height:68px;margin-top:auto;font-size:32px;font-weight:500;line-height:1.05;display:flex}.stat-card span{color:var(--on-dark-2);max-width:20ch;font-size:14px}@media (width<=560px){.stats__grid{gap:10px}.stat-card{min-height:150px;padding:18px}.stat-card b{min-height:58px;font-size:26px}}@media (prefers-reduced-motion:reduce){.stat-card{opacity:1;transform:none}}.reveal{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.cases__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.case{border-radius:var(--r-lg);background:var(--dark-card);min-height:420px;color:var(--on-dark);opacity:0;transition:opacity .65s var(--ease), transform .65s var(--ease), border-color .25s var(--ease);border:1px solid #343434;flex-direction:column;padding:30px;display:flex;transform:translateY(24px)}.cases__grid.is-visible .case{opacity:1;transform:translateY(0)}.cases__grid.is-visible .case:hover{border-color:var(--cyan-dark);transform:translateY(-4px)}.case__top{color:var(--on-dark-3);letter-spacing:.04em;justify-content:space-between;gap:12px;margin-bottom:24px;font-size:12px;display:flex}.case__number{color:var(--cyan-dark)}.case__area{text-align:right}.case h3{margin-bottom:24px;font-size:clamp(22px,2.6vw,27px);font-weight:500;line-height:1.2}.case__details{gap:15px;margin:0 0 28px;display:grid}.case__details div{grid-template-columns:88px 1fr;gap:12px;display:grid}.case__details dt{color:var(--on-dark-3);padding-top:3px;font-size:12px}.case__details dd{color:var(--on-dark-2);margin:0;font-size:14px;line-height:1.55}.case__tags{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.case__tags span{border:1px solid var(--line-dark);border-radius:var(--r-pill);color:var(--on-dark-2);padding:5px 10px;font-size:11px}@media (width<=700px){.cases__grid{grid-template-columns:1fr}.case{min-height:auto;padding:24px}}@media (width<=420px){.case__details div{grid-template-columns:1fr;gap:3px}}@media (prefers-reduced-motion:reduce){.case{opacity:1;transform:none}}.tl{border-top:1px solid var(--line)}.tl-item{padding-block:26px;border-bottom:1px solid var(--line);opacity:0;transition:border-color .25s var(--ease), background-color .25s var(--ease), opacity .6s var(--ease), transform .6s var(--ease);border-left:2px solid #0000;padding-left:24px;position:relative;transform:translateY(16px)}.tl.is-visible .tl-item{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.tl-item{opacity:1;transform:none}}.tl-item.current{border-left-color:var(--cyan-dark)}.tl-item:hover{border-left-color:var(--ink-3);background:var(--surface)}.tl-item.current:hover{border-left-color:var(--cyan-dark)}.tl-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:6px;display:flex}.tl-head h3{font-size:19px;font-weight:600}.tl-date{color:var(--ink-3);white-space:nowrap;font-size:13px}.tl-role{color:var(--ink-2);margin-bottom:10px;font-size:14px}.tl-body{color:var(--ink-2);max-width:64ch;font-size:15.5px;line-height:1.65}.tl-body li{margin-bottom:5px}.tl-body ul{margin:8px 0 0;padding-left:18px}.skills-section{background:var(--dark);color:var(--on-dark);position:relative;overflow:hidden}.skills-section__glow{z-index:0;pointer-events:none;background:radial-gradient(560px at 12% 20%,#00ffff29,#0000 62%),radial-gradient(420px at 92% 85%,#b1ec521a,#0000 60%);position:absolute;inset:0}.skills-section .container{z-index:1;position:relative}.skills-section .section-head{border-left-color:var(--cyan-dark)}.skills-section .section-head p{color:var(--on-dark-2)}.skills{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:32px 40px;display:grid}.skill-group h3{margin-bottom:12px;font-size:14px;font-weight:600}.pillrow{flex-wrap:wrap;gap:8px;display:flex}.pill{color:var(--on-dark-2);background:var(--dark-card);border:1px solid var(--line-dark);border-radius:var(--r-pill);white-space:nowrap;opacity:0;transition:opacity .5s var(--ease), transform .5s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);padding:4px 12px;font-size:12.5px;display:inline-block;transform:translateY(10px)}.pillrow.is-visible .pill{opacity:1;transform:translateY(0)}.pillrow.is-visible .pill:hover{background:var(--cyan);border-color:var(--cyan);color:var(--ink);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.pill{opacity:1;transform:none}}.skills-section__learning{border-top:1px solid var(--line-dark);flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-top:40px;padding-top:20px;display:flex}.skills-section__learning span{color:var(--cyan);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.skills-section__learning-text{flex-direction:column;gap:4px;display:flex}.skills-section__learning p{color:var(--on-dark-2);font-size:15px}footer{padding-block:40px 32px}.footer-list{flex-direction:column;display:flex}.footer-row{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding-block:13px;font-size:15px;display:flex}.footer-row:first-child{border-top:none}.footer-row span:first-child{color:var(--ink-3);font-size:13px}.footer-row a{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.foot-note{color:var(--ink-3);margin-top:24px;font-size:12.5px;display:block}
