:root{--bg:#eceff4;--ink:#0a0c10;--mute:#5f6978;--rule:rgba(10,12,16,0.16);--accent:#0a0c10;--serif:"Instrument Serif","Times New Roman",serif;--sans:"Inter Tight",system-ui,sans-serif;--pad:clamp(20px,4vw,56px)}*,:after,:before{box-sizing:border-box}html{scrollbar-width:none}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul{list-style:none;margin:0;padding:0}h1,h2,h3,p{margin:0;font-weight:400}::selection{background:var(--ink);color:var(--bg)}.label{font-size:13px;letter-spacing:.08em;text-transform:uppercase}.accent{font-style:italic;color:var(--mute)}.has-cursor,.has-cursor a,.has-cursor button{cursor:none}.intro{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--bg);display:grid;place-items:center}.intro__inner{width:min(520px,84vw);visibility:hidden}.intro__mask{overflow:hidden}.intro__name{display:block;font-family:var(--serif);font-size:clamp(48px,9vw,96px);font-weight:400;line-height:1.3}.intro__meta{width:100%;margin:18px 0 10px;opacity:.6;display:flex;justify-content:space-between}.intro__track{height:1px;background:rgba(236,239,244,.22)}.intro__bar,.intro__track{transform:scaleX(0);transform-origin:left}.intro__bar{height:100%;background:var(--bg)}.cursor{top:-6px;left:-6px;width:12px;height:12px;border-radius:50%;background:#fff;pointer-events:none;z-index:200}.cursor,.nav{position:fixed;mix-blend-mode:difference}.nav{inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);color:#fff}.nav__logo{font-family:var(--serif);font-size:36px}.nav__links{display:flex;gap:clamp(16px,3vw,36px);font-size:14px}.contact__links a,.footer a,.nav__links a{position:relative}.contact__links a:after,.footer a:after,.nav__links a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.65,0,.35,1)}.contact__links a:hover:after,.footer a:hover:after,.nav__links a:hover:after{transform:scaleX(1);transform-origin:left}.hero{min-height:100svh;padding:110px var(--pad) 36px;flex-direction:column;overflow:hidden}.hero,.hero__top{display:flex;justify-content:space-between}.hero__top{gap:16px;color:var(--mute)}.hero__title{font-family:var(--serif);font-size:clamp(72px,14vw,250px);font-weight:400;line-height:.95;letter-spacing:-.03em;margin-left:-.04em}.line{display:block;overflow:hidden;padding-bottom:.1em}.char{display:inline-block;will-change:transform}.hero__line{height:1px;background:var(--ink);margin:12px 0 24px}.hero__bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:32px}.hero__intro{max-width:560px;font-size:clamp(17px,1.6vw,21px);line-height:1.45}.hero__scroll{white-space:nowrap}.section__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:clamp(32px,6vw,72px)}.section__head h2,.work__heading{font-family:var(--serif);font-size:clamp(44px,8vw,120px);font-weight:400;line-height:1;letter-spacing:-.02em}.section__count{color:var(--mute)}.work{padding:clamp(80px,12vw,180px) var(--pad)}.row{position:relative}.row__rule{height:1px;background:var(--rule)}.row__inner{display:grid;grid-template-columns:60px 1.2fr 1.6fr .9fr;grid-gap:24px;gap:24px;align-items:start;padding:clamp(24px,3.4vw,44px) 0;transition:padding .5s cubic-bezier(.65,0,.35,1),opacity .4s}.rows[data-has-active] .row:not(.is-active) .row__inner{opacity:.32}.row.is-active .row__inner{padding-left:16px}.row.is-active .row__title{color:var(--ink)}.row__index{color:var(--mute);padding-top:.9em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row__title{font-family:var(--serif);font-size:clamp(32px,4.6vw,68px);font-weight:400;line-height:1.05;letter-spacing:-.01em;transition:color .4s}.row__desc{color:var(--mute);font-size:15px;max-width:42ch;padding-top:.7em}.row__meta{display:flex;flex-direction:column;gap:2px;text-align:right;padding-top:.9em}.row__meta span:last-child{color:var(--mute)}.preview{overflow:hidden;position:fixed;top:0;left:0;width:clamp(200px,22vw,320px);aspect-ratio:4/5;border-radius:3px;pointer-events:none;z-index:40;display:flex;align-items:flex-end;padding:14px;color:var(--bg);transform:scale(0)}.preview video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.preview span{position:relative;z-index:1}.about{padding:clamp(80px,12vw,180px) var(--pad);background:var(--ink);color:var(--bg)}.about__statement{font-family:var(--serif);font-size:clamp(30px,4.6vw,72px);font-weight:400;line-height:1.12;letter-spacing:-.01em;max-width:22em;margin-bottom:clamp(56px,9vw,140px)}.skills{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:32px;gap:32px;border-top:1px solid rgba(233,237,242,.22);padding-top:28px}.skill h3{color:rgba(233,237,242,.55);margin-bottom:14px}.skill li{font-size:clamp(18px,1.8vw,23px);line-height:1.55}.contact{padding:clamp(100px,14vw,200px) var(--pad) 28px;background:var(--bg)}.contact__title{font-family:var(--serif);font-size:clamp(52px,10vw,160px);font-weight:400;line-height:1.25;letter-spacing:-.025em;margin-bottom:clamp(36px,6vw,80px)}.contact__mail,.contact__title .line>span{display:inline-block}.contact__mail{font-size:clamp(20px,3.2vw,44px);border-bottom:1px solid var(--ink);padding-bottom:6px;margin-bottom:40px;will-change:transform}.contact__links{display:flex;gap:28px;font-size:15px}.footer{display:flex;justify-content:space-between;margin-top:clamp(80px,12vw,140px);padding-top:20px;border-top:1px solid var(--rule);color:var(--mute)}@media (max-width:820px){.row__inner{grid-template-columns:36px 1fr;gap:8px 12px}.row__desc,.row__meta{grid-column:2;text-align:left}.row__meta{flex-direction:row;gap:14px}.row__desc,.row__meta{padding-top:0}.row__index{padding-top:.9em}.skills{grid-template-columns:1fr}.hero__bottom{flex-direction:column;align-items:flex-start}.hero__top{flex-direction:column;gap:4px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.word{opacity:1!important}}