:root{color-scheme:dark;--bg:#090c10;--bg-soft:#0d1117;--surface:#111720;--surface-raised:#161d27;--surface-glass:#0f141bc2;--line:#dfe8f01f;--line-strong:#dfe8f038;--text:#eff4f8;--text-soft:#c7d0da;--muted:#8f9baa;--accent:#6bd8ff;--accent-strong:#27bce9;--accent-dim:#6bd8ff1f;--warm-grey:#b8ada5;--shadow:0 24px 80px #00000052;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--radius-sm:.6rem;--radius-md:1rem;--radius-lg:1.5rem;--header-height:4.75rem;--container:74rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);background:var(--bg)}body{background:radial-gradient(circle at 82% 8%, #6bd8ff0e, transparent 26rem), radial-gradient(circle at 14% 42%, #b8ada509, transparent 24rem), var(--bg);min-width:20rem;color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65;overflow-x:hidden}body:before{z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:3.5rem 3.5rem;position:fixed;inset:0;mask-image:linear-gradient(#000,#0000 85%)}body.nav-open{overflow:hidden}::selection{background:var(--accent);color:#071017}img,svg{max-width:100%;display:block}button,input,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}p,h1,h2,h3,dl,dd{margin-block-start:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}ul{margin:0;padding:0;list-style:none}.container{width:min(var(--container), calc(100% - 2rem));margin-inline:auto}.section{padding-block:clamp(5.5rem,10vw,9rem)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1000;border-radius:var(--radius-sm);background:var(--accent);color:#071017;padding:.75rem 1rem;font-weight:700;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.eyebrow,.hero__kicker,.availability,.timeline-item__period,.portrait-frame__label{color:var(--accent);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:700}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;min-height:3.25rem;padding:.8rem 1.2rem;font-size:.92rem;font-weight:700;line-height:1;transition:transform .18s,border-color .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.button--primary{background:var(--accent);color:#061017;box-shadow:0 12px 32px #27bce92e}.button--primary:hover{background:#9ae7ff;box-shadow:0 16px 40px #27bce93d}.button--ghost{border-color:var(--line-strong);color:var(--text-soft);background:#ffffff05}.button--ghost:hover{color:var(--text);border-color:#6bd8ff7a}.site-header{z-index:100;height:var(--header-height);border-bottom:1px solid #0000;transition:background .22s,border-color .22s,box-shadow .22s;position:fixed;top:0;left:0;right:0}.site-header.is-scrolled{border-color:var(--line);backdrop-filter:blur(18px);background:#090c10c7;box-shadow:0 10px 40px #00000029}.site-header__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:.7rem;font-size:.91rem;font-weight:750;display:inline-flex}.brand__mark{background:var(--accent-dim);width:2.1rem;height:2.1rem;color:var(--accent);font-family:var(--font-mono);letter-spacing:.02em;border:1px solid #6bd8ff59;border-radius:.58rem;place-items:center;font-size:.73rem;display:grid}.brand__text{color:var(--text-soft)}.nav-toggle{z-index:2;border:1px solid var(--line);background:var(--surface-glass);cursor:pointer;border-radius:50%;place-content:center;gap:.38rem;width:2.75rem;height:2.75rem;display:grid;position:relative}.nav-toggle>span:not(.sr-only){background:var(--text);width:1rem;height:1px;transition:transform .18s}.nav-toggle[aria-expanded=true]>span:nth-child(2){transform:translateY(.2rem)rotate(45deg)}.nav-toggle[aria-expanded=true]>span:nth-child(3){transform:translateY(-.2rem)rotate(-45deg)}.site-nav{visibility:hidden;opacity:0;backdrop-filter:blur(20px);background:#080b0ff5;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding:5rem 2rem;transition:opacity .18s,visibility .18s;display:flex;position:fixed;inset:0}.site-nav.is-open{visibility:visible;opacity:1}.site-nav a{color:var(--text-soft);letter-spacing:-.035em;font-size:clamp(1.5rem,7vw,2.5rem);font-weight:650}.site-nav a:hover,.site-nav a.is-active{color:var(--accent)}.site-nav__cta{margin-top:.5rem}.hero{min-height:100svh;padding-top:calc(var(--header-height) + 3.5rem);align-items:center;gap:3.25rem;padding-bottom:5rem;display:grid;position:relative}.hero__copy{z-index:2;position:relative}.availability{color:var(--text-soft);letter-spacing:.08em;align-items:center;gap:.65rem;margin-bottom:2rem;display:inline-flex}.availability span{background:var(--accent);border-radius:50%;width:.55rem;height:.55rem;animation:2.4s infinite pulse;position:relative;box-shadow:0 0 #6bd8ff66}@keyframes pulse{0%{box-shadow:0 0 #6bd8ff61}70%,to{box-shadow:0 0 0 .65rem #6bd8ff00}}.hero__kicker{margin-bottom:.9rem}.hero h1{letter-spacing:-.075em;margin-bottom:1.65rem;font-size:clamp(4.15rem,16.5vw,7.75rem);font-weight:760;line-height:.83}.hero h1 span{color:#0000;-webkit-text-stroke:1px #eff4f885}.hero__tagline{max-width:38rem;color:var(--text-soft);letter-spacing:-.025em;margin-bottom:1.2rem;font-size:clamp(1.25rem,4vw,1.65rem);font-weight:550;line-height:1.35}.hero__bio{max-width:41rem;color:var(--muted);margin-bottom:2rem;font-size:.98rem}.hero__actions{flex-wrap:wrap;gap:.8rem;margin-bottom:2.75rem;display:flex}.hero__facts{border-top:1px solid var(--line);gap:1.3rem;max-width:42rem;padding-top:1.5rem;display:grid}.hero__facts div{min-width:0}.hero__facts dt{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.25rem;font-size:.67rem}.hero__facts dd{color:var(--text-soft);margin:0;font-size:.86rem;font-weight:650}.hero__visual{width:min(100%,31rem);margin-inline:auto;position:relative}.portrait-frame{z-index:1;aspect-ratio:4/5;border:1px solid var(--line-strong);box-shadow:var(--shadow);background:#5d5e61;border-radius:1.2rem;position:relative;overflow:hidden}.portrait-frame:after{content:"";pointer-events:none;background:linear-gradient(#0000 62%,#070a0e6b),linear-gradient(145deg,#0000 55%,#6bd8ff14);position:absolute;inset:0}.portrait-frame img{object-fit:cover;object-position:center 28%;filter:saturate(.87)contrast(1.02);width:100%;height:100%;transform:scale(1.012)}.portrait-frame__grid{z-index:2;opacity:.28;pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:25% 20%;position:absolute;inset:0}.portrait-frame__label{z-index:3;color:var(--text-soft);letter-spacing:.08em;backdrop-filter:blur(8px);background:#070a0e8c;border:1px solid #ffffff29;border-radius:999px;padding:.42rem .62rem;position:absolute;bottom:1rem;right:1rem}.hero__orbit{border:1px solid #6bd8ff3d;border-radius:50%;width:7rem;height:7rem;animation:18s linear infinite spin;position:absolute;top:-1.7rem;right:-1.7rem}.hero__orbit:before,.hero__orbit:after,.hero__orbit span{content:"";border-radius:50%;position:absolute}.hero__orbit:before{border:1px dashed #6bd8ff29;inset:.9rem}.hero__orbit:after{background:var(--accent);width:.44rem;height:.44rem;top:-.22rem;left:calc(50% - .22rem)}.hero__orbit span:first-child{background:var(--warm-grey);width:.36rem;height:.36rem;bottom:1.7rem;right:-.18rem}@keyframes spin{to{transform:rotate(360deg)}}.scroll-cue{color:var(--muted);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl;align-items:center;gap:.65rem;font-size:.65rem;display:none;position:absolute;bottom:1.75rem;right:0}.scroll-cue svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:1.1rem}.section-heading{margin-bottom:clamp(2.75rem,6vw,4.75rem)}.section-heading .eyebrow{margin-bottom:.85rem}.section-heading__row{gap:1.2rem;display:grid}.section-heading h2{letter-spacing:-.06em;max-width:48rem;margin-bottom:0;font-size:clamp(2.45rem,8vw,4.6rem);font-weight:700;line-height:.98}.section-heading__row>p{max-width:35rem;color:var(--muted);margin:0}.skill-grid{gap:.8rem;display:grid}.skill-card{border:1px solid var(--line);border-radius:var(--radius-md);background:linear-gradient(145deg,#ffffff06,#ffffff03);min-height:15rem;padding:1.4rem;transition:transform .22s,border-color .22s,background .22s;position:relative;overflow:hidden}.skill-card:after{content:"";border:1px solid #6bd8ff17;border-radius:50%;width:8rem;height:8rem;transition:transform .3s;position:absolute;bottom:-3rem;right:-3rem}.skill-card:hover{background:linear-gradient(145deg,#6bd8ff0e,#ffffff03);border-color:#6bd8ff4d;transform:translateY(-4px)}.skill-card:hover:after{transform:scale(1.18)}.skill-card__header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2.2rem;display:flex}.skill-card__header>span{color:var(--accent);font-family:var(--font-mono);font-size:.68rem}.skill-card h3{color:var(--text-soft);letter-spacing:-.02em;margin-bottom:0;font-size:1.02rem}.skill-card ul{flex-wrap:wrap;gap:.45rem;display:flex}.skill-card li,.tag-list li{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);border-radius:999px;padding:.4rem .62rem;font-size:.69rem;line-height:1}.section--projects{border-block:1px solid var(--line);background:linear-gradient(180deg, #ffffff03, transparent 12%), var(--bg-soft)}.project-list{border-top:1px solid var(--line-strong)}.project-card{border-bottom:1px solid var(--line-strong);gap:1.5rem;padding-block:clamp(2.25rem,6vw,4rem);display:grid}.project-card__index{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;font-size:.75rem}.project-card__heading{flex-direction:column;gap:1rem;margin-bottom:1.3rem;display:flex}.project-card__heading p{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem;font-size:.72rem}.project-card h3{letter-spacing:-.055em;margin-bottom:0;font-size:clamp(2rem,7vw,3.9rem);font-weight:680;line-height:1}.project-card__links{flex-wrap:wrap;gap:.6rem;display:flex}.project-card__links a{border:1px solid var(--line-strong);color:var(--text-soft);border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .78rem;font-size:.76rem;font-weight:700;transition:border-color .18s,color .18s,transform .18s;display:inline-flex}.project-card__links a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.project-card__links svg,.contact-email svg,.contact-form button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:.95rem}.project-card__description{max-width:51rem;color:var(--muted);margin-bottom:1.8rem;font-size:clamp(1rem,2.4vw,1.14rem)}.project-card__meta{gap:1rem;margin-bottom:1.6rem;display:grid}.project-card__meta div{border-left:1px solid var(--line-strong);padding-left:.9rem}.project-card__meta span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem;font-size:.64rem;display:block}.project-card__meta strong{color:var(--text-soft);font-size:.78rem;font-weight:650}.tag-list{flex-wrap:wrap;gap:.45rem;display:flex}.timeline{border-top:1px solid var(--line-strong)}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:2.6rem minmax(0,1fr);gap:1rem;padding-block:2rem;display:grid}.timeline-item__rail{color:var(--accent);font-family:var(--font-mono);font-size:.67rem;position:relative}.timeline-item__rail:after{background:linear-gradient(var(--line-strong), transparent);content:"";width:1px;position:absolute;top:1.75rem;bottom:-2rem;left:.35rem}.timeline-item:last-child .timeline-item__rail:after{display:none}.timeline-item__period{color:var(--accent);letter-spacing:.08em;margin-bottom:.6rem}.timeline-item h3{letter-spacing:-.035em;margin-bottom:.35rem;font-size:clamp(1.35rem,4vw,2rem);line-height:1.2}.timeline-item__organization{color:var(--text-soft);margin-bottom:1rem;font-size:.9rem;font-weight:650}.timeline-item__content>p:last-child{max-width:48rem;color:var(--muted);margin-bottom:0}.section--contact{border-top:1px solid var(--line);background:radial-gradient(circle at 15% 50%, #6bd8ff14, transparent 25rem), var(--bg-soft);position:relative;overflow:hidden}.section--contact:after{content:"";pointer-events:none;border:1px solid #6bd8ff17;border-radius:50%;width:34rem;height:34rem;position:absolute;bottom:-14rem;right:-12rem;box-shadow:0 0 0 5rem #6bd8ff05,0 0 0 10rem #6bd8ff03}.contact-grid{z-index:1;gap:3rem;display:grid;position:relative}.contact-copy h2{letter-spacing:-.065em;max-width:34rem;margin-bottom:1.25rem;font-size:clamp(2.7rem,10vw,5.4rem);line-height:.98}.contact-copy>p:not(.eyebrow){max-width:35rem;color:var(--muted);margin-bottom:2rem}.contact-email{border-block:1px solid var(--line-strong);max-width:32rem;color:var(--text-soft);word-break:break-word;grid-template-columns:1fr auto;align-items:center;gap:.35rem 1rem;padding-block:1rem;font-size:clamp(1rem,4vw,1.35rem);font-weight:650;display:grid}.contact-email span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;grid-column:1/-1;font-size:.64rem}.contact-email:hover{color:var(--accent)}.social-links{gap:1.25rem;margin-top:1.5rem;display:flex}.social-links a{color:var(--muted);font-family:var(--font-mono);text-underline-offset:.35rem;font-size:.76rem;text-decoration:underline #0000;transition:color .18s,text-decoration-color .18s}.social-links a:hover{color:var(--text);text-decoration-color:var(--accent)}.contact-form{border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow);backdrop-filter:blur(16px);background:#ffffff06;padding:clamp(1.25rem,5vw,2rem)}.form-row{gap:1rem;display:grid}.contact-form label{gap:.4rem;margin-bottom:1rem;display:grid}.contact-form label>span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.contact-form input,.contact-form textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#070a0e70;border-radius:.7rem;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}.contact-form input{min-height:3rem;padding:.65rem .8rem}.contact-form textarea{resize:vertical;min-height:9rem;padding:.8rem}.contact-form input:focus,.contact-form textarea:focus{background:#070a0ea6;border-color:#6bd8ff85;box-shadow:0 0 0 3px #6bd8ff14}.contact-form .button{cursor:pointer;border:0;width:100%}.form-note{color:var(--muted);margin:.9rem 0 0;font-size:.74rem;line-height:1.5}.site-footer{border-top:1px solid var(--line);background:#070a0e}.site-footer__inner{gap:2rem;padding-block:2.5rem;display:grid}.site-footer p{color:var(--muted);margin:.8rem 0 0;font-size:.76rem}.site-footer__meta p{font-family:var(--font-mono);margin-top:.25rem;font-size:.67rem}.js .reveal{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(1.5rem)}.js .reveal.is-visible{opacity:1;transform:translateY(0)}.skill-grid .reveal:nth-child(2),.project-list .reveal:nth-child(2){transition-delay:70ms}.skill-grid .reveal:nth-child(3),.project-list .reveal:nth-child(3){transition-delay:.14s}.skill-grid .reveal:nth-child(4),.project-list .reveal:nth-child(4){transition-delay:.21s}.skill-grid .reveal:nth-child(5){transition-delay:.28s}.skill-grid .reveal:nth-child(6){transition-delay:.35s}@media (width>=36rem){.container{width:min(var(--container), calc(100% - 3rem))}.hero__facts{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card__meta{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__inner{grid-template-columns:1fr auto;align-items:end}.site-footer__meta{text-align:right}}@media (width>=48rem){.section-heading__row{grid-template-columns:minmax(0,1.45fr) minmax(17rem,.55fr);align-items:end}.project-card{grid-template-columns:4rem minmax(0,1fr)}.project-card__heading{flex-direction:row;justify-content:space-between;align-items:flex-start}.project-card__links{justify-content:flex-end}.timeline-item{grid-template-columns:5rem minmax(0,1fr);gap:2rem;padding-block:2.75rem}}@media (width>=60rem){:root{--header-height:5.25rem}.nav-toggle{display:none}.site-nav{visibility:visible;opacity:1;backdrop-filter:none;background:0 0;flex-direction:row;align-items:center;gap:1.7rem;padding:0;display:flex;position:static}.site-nav a{color:var(--muted);letter-spacing:.02em;font-size:.74rem;font-weight:650;position:relative}.site-nav a:after{transform-origin:0;background:var(--accent);content:"";height:1px;transition:transform .18s;position:absolute;bottom:-.55rem;left:0;right:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a.is-active:after{transform:scaleX(1)}.site-nav__cta{border:1px solid var(--line-strong);border-radius:999px;margin-top:0;padding:.65rem .95rem}.site-nav__cta:after{display:none}.hero{padding-top:calc(var(--header-height) + 2rem);grid-template-columns:minmax(0,1.1fr) minmax(23rem,.72fr);gap:clamp(3rem,7vw,7rem);padding-bottom:3rem}.hero__visual{width:min(100%,29rem)}.scroll-cue{display:flex}.skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-grid{grid-template-columns:minmax(0,1.05fr) minmax(25rem,.75fr);align-items:start;gap:clamp(4rem,8vw,8rem)}}@media (width>=78rem){.hero__visual{width:31rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js .reveal{opacity:1;transform:none}}
