:root{--paper:#ebebe8;--ink:#171717;--mute:#85857f;--line:#cfcfca;--accent:#2c3cff;--display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;--body:"Inter Tight","Helvetica Neue",Arial,sans-serif;--section-y:clamp(72px,10vw,150px);--nav-h:60px;--safe-t:env(safe-area-inset-top,0px);box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#151515;--ink:#ebebe8;--mute:#a3a39d;--line:#333331;--accent:#7b87ff;color-scheme:dark}}:root[data-theme=dark]{--paper:#151515;--ink:#ebebe8;--mute:#a3a39d;--line:#333331;--accent:#7b87ff;color-scheme:dark}html{height:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--safe-t) + var(--nav-h) + 16px)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}.wrap{padding:0 clamp(20px,4vw,56px)}nav{position:sticky;top:0;z-index:40;background:var(--paper);padding-top:var(--safe-t);border-bottom:1px solid transparent;transition:border-color .4s ease,box-shadow .4s ease}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){nav{background:color-mix(in srgb,var(--paper) 82%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}}nav.scrolled{border-bottom-color:var(--line);box-shadow:0 1px 14px #00000012}.navin{display:flex;justify-content:space-between;align-items:center;height:var(--nav-h);padding:0 clamp(20px,4vw,56px);font-weight:500;font-size:15px}nav .links{display:flex;gap:28px}nav a{position:relative}nav .links a:after{content:"";position:absolute;left:0;bottom:-3px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.7,0,.2,1)}nav .links a:hover:after{transform:scaleX(1);transform-origin:left}.status{display:inline-flex;align-items:center;gap:9px}.status i{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.nav-right{display:flex;align-items:center;gap:24px}.brand{font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-.02em;line-height:1}.brand-dot{color:var(--accent)}#theme{display:grid;place-items:center;width:34px;height:34px;padding:0;color:var(--ink);background:none;border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:background .2s,transform .6s cubic-bezier(.2,.8,.2,1)}#theme:hover{background:color-mix(in srgb,currentColor 8%,transparent)}#theme:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hero{min-height:calc(100svh - var(--nav-h) - var(--safe-t));display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(28px,5vw,56px)}h1{margin:0;font-family:var(--display);font-weight:300;font-size:clamp(64px,19vw,330px);line-height:.84;letter-spacing:-.045em;font-stretch:100%}h1 .row{display:block;overflow:hidden;padding-bottom:.08em}.name-row{display:flex;align-items:flex-end;gap:.12em}h1 .ch{display:inline-block;transform:translateY(105%);animation:rise 1.2s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(.15s + var(--i)*45ms);will-change:transform}@keyframes rise{to{transform:none}}.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:clamp(28px,4vw,52px);padding-top:20px;border-top:1px solid var(--line);opacity:0;animation:fade .9s ease 1.1s forwards}@keyframes fade{to{opacity:1}}.hero-foot p{margin:0;max-width:30ch;font-size:clamp(18px,1.8vw,24px);line-height:1.3;font-weight:500;letter-spacing:-.01em}.hero-foot span{color:var(--mute);font-size:15px;text-align:right}.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;opacity:0;animation:fade .9s ease 1.3s forwards}.hero-cta .btn{display:inline-flex;align-items:center;gap:6px;padding:13px 22px;border-radius:100px;font-size:15px;font-weight:500;border:1px solid var(--ink);transition:background .3s,color .3s,border-color .3s}.hero-cta .btn-primary{background:var(--ink);color:var(--paper)}.hero-cta .btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.hero-cta .btn-ghost{color:var(--ink)}.hero-cta .btn-ghost:hover{background:var(--ink);color:var(--paper)}.name-row .mascot-pop{flex:0 0 auto;width:.56em;aspect-ratio:1;margin-bottom:.121em;opacity:0;transform:translateY(30%) scale(.8);animation:pop .55s cubic-bezier(.2,.8,.25,1) 1.2s forwards}@keyframes pop{to{opacity:1;transform:none}}.mascot{display:block;width:100%;height:100%;cursor:pointer;-webkit-tap-highlight-color:transparent;will-change:transform}.mascot-body{position:relative;display:block;width:100%;height:100%;transform-origin:50% 88%}.mascot-dark{display:none}:root[data-theme=dark] .mascot-light{display:none}:root[data-theme=dark] .mascot-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .mascot-light{display:none}:root:not([data-theme=light]) .mascot-dark{display:block}}.mascot-heart{position:absolute;left:50%;top:-20%;width:15%;fill:var(--accent);animation:boop .9s ease-out forwards}@keyframes boop{0%{opacity:0;transform:translate(-50%,8px) scale(.5)}25%{opacity:1;transform:translate(-50%,-2px) scale(1)}to{opacity:0;transform:translate(-50%,-26px) scale(.9)}}section[id],header[id],.lead[id]{scroll-margin-top:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 16px)}#work{padding-top:var(--section-y)}.experience,.about{padding:var(--section-y) 0 0}.contact{padding:var(--section-y) 0 40px}.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:0 0 18px;color:var(--mute);font-size:15px}.sec-head h2{margin:0;font:inherit;font-weight:500}.work a.row{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(20px,3vw,38px) 0;border-top:1px solid transparent;transition:opacity .4s,padding .5s cubic-bezier(.16,1,.3,1)}.work a.row:last-child{border-bottom:1px solid var(--line)}@media (prefers-reduced-motion:reduce){.line-in:before{transform:none}}.row .t{font-family:var(--display);font-size:clamp(34px,6.4vw,104px);font-weight:400;letter-spacing:-.035em;line-height:1;transition:font-weight .5s,letter-spacing .5s}.row .meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:12px}.row .k{color:var(--mute);font-size:14px}.row .y{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border:1px solid var(--line);border-radius:100px;color:var(--mute);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.row .y:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--mute)}.row .y[data-live=true]{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.row .y[data-live=true]:before{background:var(--accent)}.row .d{margin-top:8px;max-width:60ch;color:var(--mute);font-size:15px;line-height:1.45}.work:hover a.row{opacity:.28}.work a.row:hover{opacity:1;padding-left:clamp(10px,1.5vw,24px)}.work a.row:hover .t{font-weight:700}.work a.row.in{animation:none}.more{display:inline-flex;align-items:center;gap:6px;margin-top:28px;color:var(--mute);font-size:15px;border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .3s,border-color .3s}.more:hover{color:var(--accent);border-color:var(--accent)}.line-in{position:relative}.line-in:before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}.line-in.on:before{transform:scaleX(1)}.lead{padding:clamp(28px,4vw,48px) 0 clamp(44px,6vw,80px)}.lead-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;color:var(--mute);font-size:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.lead-title{font-family:var(--display);font-size:clamp(46px,9vw,130px);font-weight:400;letter-spacing:-.045em;line-height:.92;margin:clamp(20px,3vw,34px) 0 0}.lead-sum{font-family:var(--display);font-size:clamp(19px,2.2vw,27px);line-height:1.26;letter-spacing:-.015em;margin:.65em 0 0;max-width:34ch}.lead-grid{display:grid;grid-template-columns:150px 1fr;gap:0 32px;margin:clamp(30px,4vw,48px) 0 0}.lead-grid dt{color:var(--mute);font-size:14px;font-weight:500;padding:18px 0 0;border-top:1px solid var(--line)}.lead-grid dd{margin:0;padding:18px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.55;max-width:64ch}.lead-points{margin:0;padding-left:18px}.lead-points li{margin-bottom:9px}.lead-figs{display:flex;flex-wrap:wrap;gap:clamp(24px,5vw,72px);padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lead-figs div{display:flex;flex-direction:column;gap:4px}.fig-n{font-family:var(--display);font-size:clamp(28px,3.4vw,46px);letter-spacing:-.035em;line-height:1}.fig-l{color:var(--mute);font-size:14px}.lead-cta{align-self:flex-start;margin-top:24px;padding:0 0 3px;background:none;border:0;border-bottom:1px solid var(--ink);color:var(--ink);font:500 15px var(--body);cursor:pointer;transition:color .3s,border-color .3s}.lead-cta:hover{color:var(--accent);border-color:var(--accent)}.peek{position:fixed;left:0;top:0;width:clamp(220px,22vw,320px);aspect-ratio:4/5;pointer-events:none;z-index:5;border-radius:4px;overflow:hidden;transform:translate(-999px,-999px);opacity:0;transition:opacity .3s}.peek.show{opacity:1}.peek .s{position:absolute;top:0;right:0;bottom:0;left:0;transform:scale(1.12);opacity:0;transition:opacity .35s,transform .9s cubic-bezier(.16,1,.3,1)}.peek .s.on{opacity:1;transform:scale(1)}.peek .s img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.peek .cap{position:absolute;left:14px;bottom:12px;color:#fff;font-size:14px;font-weight:500;mix-blend-mode:difference}@media (hover:none){.peek{display:none}}.about{display:grid;grid-template-columns:150px 1fr;gap:32px}.about .lab{color:var(--mute);font-size:15px;font-weight:500}.about p{margin:0 0 1.1em;font-family:var(--display);font-size:clamp(26px,3.3vw,50px);line-height:1.12;letter-spacing:-.025em;font-weight:400;max-width:26em}.about p.small{font-family:var(--body);font-size:17px;line-height:1.55;letter-spacing:0;color:var(--mute);max-width:60ch}.experience{display:grid;grid-template-columns:150px 1fr;gap:32px}.experience .lab{color:var(--mute);font-size:15px;font-weight:500}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:150px 1fr;gap:8px 20px;padding:24px 0;border-top:1px solid var(--line)}.timeline li:last-child{border-bottom:1px solid var(--line)}.timeline .period{color:var(--mute);font-size:14px;font-weight:500;letter-spacing:-.01em;padding-top:4px}.timeline .role{display:flex;flex-direction:column;gap:4px}.timeline .r-title{font-family:var(--display);font-size:clamp(20px,2.4vw,30px);font-weight:500;letter-spacing:-.02em;line-height:1.1}.timeline .r-place{color:var(--mute);font-size:15px}.timeline .r-detail{grid-column:1/-1;margin:.5em 0 0;width:100%;max-width:60ch;color:var(--mute);font-size:16px;line-height:1.55}.timeline .r-link{grid-column:1/-1;justify-self:start;margin-top:12px;padding-bottom:2px;border-bottom:1px solid var(--line);color:var(--ink);font-size:15px;transition:color .3s,border-color .3s}.timeline .r-link:hover{color:var(--accent);border-color:var(--accent)}.skills{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin-top:40px;max-width:640px}.skill-group .skill-head{display:block;color:var(--mute);font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.skills ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.skills li{font-size:15px;padding:5px 13px;border:1px solid var(--line);border-radius:100px;color:var(--ink);transition:border-color .3s,color .3s}.skills li:hover{border-color:var(--accent);color:var(--accent)}.contact .lab{color:var(--mute);font-size:15px;font-weight:500;margin-bottom:14px}.mail{display:inline-block;font-family:var(--display);font-weight:300;font-size:clamp(26px,6.6vw,120px);letter-spacing:-.045em;line-height:1;overflow-wrap:anywhere;background:linear-gradient(currentColor,currentColor) 0 100%/0 .045em no-repeat;transition:background-size .8s cubic-bezier(.16,1,.3,1),font-weight .6s,color .4s}.mail:hover{background-size:100% .045em;font-weight:600;color:var(--accent)}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:24px 0 28px;margin-top:clamp(56px,8vw,110px);border-top:1px solid var(--line);color:var(--mute);font-size:15px}footer a:hover{color:var(--ink)}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,48px);background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:detailFade .3s ease}@keyframes detailFade{0%{opacity:0}to{opacity:1}}.detail-panel{position:relative;width:min(720px,100%);max-height:90svh;overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px;animation:detailRise .45s cubic-bezier(.16,1,.3,1)}@keyframes detailRise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.detail-close{position:absolute;top:14px;right:14px;z-index:2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 80%,transparent);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.detail-close:hover{background:var(--line)}.detail-hero{width:100%;max-height:300px;object-fit:cover;display:block}.detail-body{padding:clamp(24px,4vw,40px)}.detail-meta{display:flex;gap:14px;color:var(--mute);font-size:14px;margin-bottom:10px}.detail-tag{color:var(--accent);font-weight:500}.detail-body h2{font-family:var(--display);font-size:clamp(28px,4vw,44px);font-weight:500;letter-spacing:-.03em;line-height:1.05;margin:0 0 4px}.detail-kind{color:var(--mute);margin:0 0 18px;font-size:15px}.detail-context{color:var(--mute);font-size:14px;margin:0 0 24px}.detail-body h3{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:24px 0 8px}.detail-text{font-size:16px;line-height:1.6;margin:0;max-width:62ch}.detail-points{margin:0;padding-left:20px;line-height:1.65;color:var(--ink)}.detail-points li{margin-bottom:8px}.detail-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.detail-stack span{font-size:14px;padding:5px 12px;border:1px solid var(--line);border-radius:100px}.detail-links{margin-top:28px}.detail-links a{display:inline-flex;align-items:center;padding:11px 20px;border-radius:100px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:500;transition:background .3s,color .3s}.detail-links a:hover{background:var(--accent);color:#fff}.work a.row{cursor:pointer}@media (prefers-reduced-motion:reduce){.detail-overlay,.detail-panel{animation:none}}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:clamp(36px,5vw,64px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{display:flex;flex-direction:column;gap:6px}.stat-n{font-family:var(--display);font-size:clamp(34px,4.5vw,60px);font-weight:400;letter-spacing:-.04em;line-height:1}.stat-l{color:var(--mute);font-size:14px}html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}html.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}}@media (max-width:900px){.about,.experience{grid-template-columns:1fr;gap:0}.about .lab,.experience .lab{margin-bottom:8px}.about p{font-size:clamp(24px,4.6vw,34px)}.timeline li{grid-template-columns:1fr;gap:4px}.timeline .period{padding-top:0}}@media (max-width:720px){nav .links{gap:18px}.nav-right{gap:16px}.hero-foot{flex-direction:column;align-items:flex-start;gap:14px}.hero-foot span{text-align:left}.lead-grid{grid-template-columns:1fr;gap:0}.lead-grid dt{padding-top:16px}.lead-grid dd{padding:6px 0 14px;border-top:0}.lead-figs{gap:20px 32px}.skills{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr);gap:24px 20px}body{font-size:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}h1 .ch{animation:none;transform:none}.hero-foot{animation:none;opacity:1}.status i{animation:none}.name-row .mascot-pop{animation:none;opacity:1;transform:none}*{transition-duration:.01ms!important}}
