:root{--bg:#f4f1ea;--surface:#fbf9f5;--ink:#161513;--ink-2:#3a3833;--muted:#76716a;--line:#e0dacf;--accent:#9b4a25;--accent-soft:#efe2d6;--sans:"Geist","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Instrument Serif",Georgia,"Times New Roman",serif;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ease:cubic-bezier(0.22,1,0.36,1);--nav-h:76px;--radius:18px;--gutter:32px;--col:240px;--col-gap:56px}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px;scroll-padding-top:var(--nav-h)}body{-webkit-font-smoothing:antialiased;background:#f4f1ea;background:var(--bg);color:#161513;color:var(--ink);font-family:Geist,Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--sans);font-size:17px;line-height:1.6;margin:0;text-rendering:optimizeLegibility}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}dd,dl,figure,h1,h2,h3,ol,p,ul{margin:0}ol,ul{list-style:none;padding:0}h1,h2,h3{font-weight:500;letter-spacing:-.03em;line-height:1.05}em{color:#9b4a25;color:var(--accent);font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}::selection{background:#161513;background:var(--ink);color:#f4f1ea;color:var(--bg)}:focus-visible{border-radius:4px;outline:2px solid #9b4a25;outline:2px solid var(--accent);outline-offset:3px}.container{margin:0 auto;max-width:1200px;padding:0 32px;padding:0 var(--gutter);width:100%}.rule-top{position:relative}.rule-top:before{background:#e0dacf;background:var(--rule,var(--line));content:"";height:1px;left:32px;left:var(--gutter);position:absolute;right:32px;right:var(--gutter);top:0}.label{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.75rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.label,.muted{color:#76716a;color:var(--muted)}.accent{color:#9b4a25;color:var(--accent)}.dot{-webkit-animation:ping 2.4s cubic-bezier(.22,1,.36,1) infinite;animation:ping 2.4s cubic-bezier(.22,1,.36,1) infinite;-webkit-animation:ping 2.4s var(--ease) infinite;animation:ping 2.4s var(--ease) infinite;background:#3f8f5a;border-radius:50%;box-shadow:0 0 0 0 rgba(63,143,90,.5);display:inline-block;height:7px;width:7px}@-webkit-keyframes ping{70%,to{box-shadow:0 0 0 7px rgba(63,143,90,0)}}@keyframes ping{70%,to{box-shadow:0 0 0 7px rgba(63,143,90,0)}}.skip-link{background:#161513;background:var(--ink);border-radius:8px;color:#f4f1ea;color:var(--bg);left:-999px;padding:8px 14px;position:absolute;top:10px;z-index:200}.skip-link:focus{left:10px}.link{align-items:center;display:inline-flex;gap:6px;position:relative}.link:after{background:currentColor;bottom:-2px;content:"";height:1px;left:0;position:absolute;right:0;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:right;transform-origin:right;transition:-webkit-transform .45s cubic-bezier(.22,1,.36,1);transition:transform .45s cubic-bezier(.22,1,.36,1);transition:transform .45s cubic-bezier(.22,1,.36,1),-webkit-transform .45s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .45s var(--ease);transition:transform .45s var(--ease);transition:transform .45s var(--ease),-webkit-transform .45s var(--ease)}.link.is-active:after,.link:hover:after{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left;transform-origin:left}.link svg{transition:-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:transform .35s cubic-bezier(.22,1,.36,1);transition:transform .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .35s var(--ease);transition:transform .35s var(--ease);transition:transform .35s var(--ease),-webkit-transform .35s var(--ease)}.link:hover svg{-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.btn{align-items:center;border:1px solid #161513;border:1px solid var(--ink);border-radius:999px;display:inline-flex;font-size:.95rem;font-weight:500;gap:10px;justify-content:center;padding:14px 24px;transition:background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1);transition:background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:background-color .35s var(--ease),color .35s var(--ease),-webkit-transform .35s var(--ease);transition:background-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease);transition:background-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease),-webkit-transform .35s var(--ease)}.btn:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.btn--dark{background:#161513;background:var(--ink);color:#f4f1ea;color:var(--bg)}.btn--dark:hover{background:#9b4a25;background:var(--accent);border-color:#9b4a25;border-color:var(--accent)}.btn--line{background:transparent;border-color:#e0dacf;border-color:var(--line);color:#161513;color:var(--ink)}.btn--line:hover{border-color:#161513;border-color:var(--ink)}.btn--sm{font-size:.85rem;padding:9px 16px}.progress{background:#9b4a25;background:var(--accent);height:2px;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left;z-index:120}.nav,.progress{inset:0 0 auto 0;position:fixed}.nav{border-bottom:1px solid transparent;height:76px;height:var(--nav-h);transition:background-color .4s,border-color .4s,-webkit-transform .5s cubic-bezier(.22,1,.36,1);transition:transform .5s cubic-bezier(.22,1,.36,1),background-color .4s,border-color .4s;transition:transform .5s cubic-bezier(.22,1,.36,1),background-color .4s,border-color .4s,-webkit-transform .5s cubic-bezier(.22,1,.36,1);transition:background-color .4s,border-color .4s,-webkit-transform .5s var(--ease);transition:transform .5s var(--ease),background-color .4s,border-color .4s;transition:transform .5s var(--ease),background-color .4s,border-color .4s,-webkit-transform .5s var(--ease);z-index:100}.nav--scrolled{backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);background:hsla(42,31%,94%,.82);border-bottom-color:#e0dacf;border-bottom-color:var(--line)}.nav--hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.nav__inner{height:100%;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 32px}.nav__brand,.nav__inner{align-items:center;display:flex}.nav__brand{font-weight:500;gap:12px;line-height:1.2;position:relative;z-index:110}.nav__brand small{color:#76716a;color:var(--muted);display:block;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.nav__mark{background:#161513;background:var(--ink);border-radius:50%;color:#f4f1ea;color:var(--bg);display:grid;font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--serif);font-size:1.05rem;font-style:italic;height:38px;place-items:center;width:38px}.nav__links{align-items:center;display:flex;font-size:.92rem;gap:30px}.nav__links>.link{color:#3a3833;color:var(--ink-2)}.nav__toggle{background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:50%;cursor:pointer;display:none;height:44px;position:relative;width:44px;z-index:110}.nav__toggle span{background:#161513;background:var(--ink);height:1.5px;left:13px;position:absolute;right:13px;transition:-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:transform .4s cubic-bezier(.22,1,.36,1);transition:transform .4s cubic-bezier(.22,1,.36,1),-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .4s var(--ease);transition:transform .4s var(--ease);transition:transform .4s var(--ease),-webkit-transform .4s var(--ease)}.nav__toggle span:first-child{top:18px}.nav__toggle span:last-child{top:24px}.nav__toggle.is-open span:first-child{-webkit-transform:translateY(3px) rotate(45deg);transform:translateY(3px) rotate(45deg)}.nav__toggle.is-open span:last-child{-webkit-transform:translateY(-3px) rotate(-45deg);transform:translateY(-3px) rotate(-45deg)}.hero{padding:140px 0 72px;padding:calc(var(--nav-h) + 64px) 0 72px}.hero__grid{grid-gap:64px;align-items:center;display:grid;gap:64px;grid-template-columns:1.4fr .6fr}.hero__label{align-items:center;display:inline-flex;gap:10px}.hero__title{font-size:clamp(2.7rem,5.6vw,4.7rem);line-height:1;margin-top:28px}.hero__title em{font-size:1.08em}.hero__title .line{display:block;overflow:hidden;padding-bottom:.06em}.hero__title .line>span{-webkit-animation:rise 1.1s cubic-bezier(.22,1,.36,1) both;animation:rise 1.1s cubic-bezier(.22,1,.36,1) both;-webkit-animation:rise 1.1s var(--ease) both;animation:rise 1.1s var(--ease) both;-webkit-animation-delay:0s;animation-delay:0s;-webkit-animation-delay:var(--d,0s);animation-delay:var(--d,0s);display:inline-block}.anim{-webkit-animation:fade-up 1s cubic-bezier(.22,1,.36,1) both;animation:fade-up 1s cubic-bezier(.22,1,.36,1) both;-webkit-animation:fade-up 1s var(--ease) both;animation:fade-up 1s var(--ease) both;-webkit-animation-delay:0s;animation-delay:0s;-webkit-animation-delay:var(--d,0s);animation-delay:var(--d,0s)}@-webkit-keyframes rise{0%{-webkit-transform:translateY(105%);transform:translateY(105%)}to{-webkit-transform:none;transform:none}}@keyframes rise{0%{-webkit-transform:translateY(105%);transform:translateY(105%)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes fade-up{0%{opacity:0;-webkit-transform:translateY(18px);transform:translateY(18px)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fade-up{0%{opacity:0;-webkit-transform:translateY(18px);transform:translateY(18px)}to{opacity:1;-webkit-transform:none;transform:none}}.hero__lead{color:#3a3833;color:var(--ink-2);font-size:1.12rem;margin-top:30px;max-width:580px}.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.hero__portrait{justify-self:end;max-width:380px;position:relative;width:100%}.portrait{-webkit-animation:unveil 1.4s cubic-bezier(.22,1,.36,1) .2s both;animation:unveil 1.4s cubic-bezier(.22,1,.36,1) .2s both;-webkit-animation:unveil 1.4s var(--ease) .2s both;animation:unveil 1.4s var(--ease) .2s both;aspect-ratio:4/5;background:#e0dacf;background:var(--line);border-radius:18px;border-radius:var(--radius);overflow:hidden}.portrait img{-webkit-animation:settle 1.8s cubic-bezier(.22,1,.36,1) .2s both;animation:settle 1.8s cubic-bezier(.22,1,.36,1) .2s both;-webkit-animation:settle 1.8s var(--ease) .2s both;animation:settle 1.8s var(--ease) .2s both;height:100%;object-fit:cover;width:100%}@-webkit-keyframes unveil{0%{-webkit-clip-path:inset(100% 0 0 0 round 18px);clip-path:inset(100% 0 0 0 round 18px);-webkit-clip-path:inset(100% 0 0 0 round var(--radius));clip-path:inset(100% 0 0 0 round var(--radius))}to{-webkit-clip-path:inset(0 0 0 0 round 18px);clip-path:inset(0 0 0 0 round 18px);-webkit-clip-path:inset(0 0 0 0 round var(--radius));clip-path:inset(0 0 0 0 round var(--radius))}}@keyframes unveil{0%{-webkit-clip-path:inset(100% 0 0 0 round 18px);clip-path:inset(100% 0 0 0 round 18px);-webkit-clip-path:inset(100% 0 0 0 round var(--radius));clip-path:inset(100% 0 0 0 round var(--radius))}to{-webkit-clip-path:inset(0 0 0 0 round 18px);clip-path:inset(0 0 0 0 round 18px);-webkit-clip-path:inset(0 0 0 0 round var(--radius));clip-path:inset(0 0 0 0 round var(--radius))}}@-webkit-keyframes settle{0%{-webkit-transform:scale(1.15);transform:scale(1.15)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes settle{0%{-webkit-transform:scale(1.15);transform:scale(1.15)}to{-webkit-transform:scale(1);transform:scale(1)}}.portrait__card{-webkit-animation:fade-up 1s cubic-bezier(.22,1,.36,1) 1s both;animation:fade-up 1s cubic-bezier(.22,1,.36,1) 1s both;-webkit-animation:fade-up 1s var(--ease) 1s both;animation:fade-up 1s var(--ease) 1s both;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:hsla(40,43%,97%,.92);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:14px;bottom:40px;box-shadow:0 24px 50px -24px rgba(22,21,19,.35);font-size:.92rem;left:-48px;line-height:1.4;padding:14px 18px;position:absolute}.portrait__card p{font-weight:500;margin-top:4px}.portrait__time{margin-top:14px;text-align:right}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:96px}.stat{padding:28px 24px 0 0}.stat+.stat{border-left:1px solid #e0dacf;border-left:1px solid var(--line);padding-left:24px}.stat strong{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";display:block;font-size:clamp(2.2rem,4vw,3.2rem);font-variant-numeric:tabular-nums;font-weight:400;letter-spacing:-.04em;line-height:1}.stat span{color:#76716a;color:var(--muted);display:block;font-size:.9rem;margin-top:10px}.marquee{background:#fbf9f5;background:var(--surface);border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);border-top:1px solid #e0dacf;border-top:1px solid var(--line);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);overflow:hidden;padding:22px 0}.marquee__track{display:flex;width:-webkit-max-content;width:max-content;will-change:transform}.marquee__item{align-items:center;color:#3a3833;color:var(--ink-2);display:inline-flex;font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.3rem);font-style:italic;gap:36px;padding-right:36px;white-space:nowrap}.marquee__item i{color:#9b4a25;color:var(--accent);font-size:.6em;font-style:normal}.section{padding:128px 0}.section+.section{border-top:1px solid #e0dacf;border-top:1px solid var(--line)}.section__head{grid-gap:14px 56px;grid-gap:14px var(--col-gap);align-items:baseline;display:grid;gap:14px 56px;gap:14px var(--col-gap);grid-template-columns:240px 1fr;grid-template-columns:var(--col) 1fr;margin-bottom:72px}.section__index{color:#9b4a25;color:var(--accent);margin-right:6px}.section__title{font-size:clamp(2.2rem,4.6vw,3.6rem);max-width:16ch}.subhead{margin:88px 0 16px}[data-reveal]{opacity:0;-webkit-transform:translateY(28px);transform:translateY(28px);transition:opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:opacity 1s var(--ease),-webkit-transform 1s var(--ease);transition:opacity 1s var(--ease),transform 1s var(--ease);transition:opacity 1s var(--ease),transform 1s var(--ease),-webkit-transform 1s var(--ease);transition-delay:0s;transition-delay:var(--d,0s)}[data-reveal].is-in{opacity:1;-webkit-transform:none;transform:none}.about{grid-gap:32px 56px;grid-gap:32px var(--col-gap);display:grid;gap:32px 56px;gap:32px var(--col-gap);grid-template-columns:240px 1fr .8fr;grid-template-columns:var(--col) 1fr .8fr}.about__text{grid-column:2}.about__text p{color:#3a3833;color:var(--ink-2);margin-bottom:20px}.about__text p:first-child{color:#161513;color:var(--ink);font-size:1.35rem;letter-spacing:-.01em;line-height:1.5}.facts{border-top:1px solid #161513;border-top:1px solid var(--ink);grid-column:3}.facts__row{grid-gap:12px;border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);display:grid;font-size:.95rem;gap:12px;grid-template-columns:110px 1fr;padding:14px 0}.facts__row dt{padding-top:3px}.jobs{border-top:1px solid #161513;border-top:1px solid var(--ink)}.job{grid-gap:32px 56px;grid-gap:32px var(--col-gap);border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);display:grid;gap:32px 56px;gap:32px var(--col-gap);grid-template-columns:240px 1fr 220px;grid-template-columns:var(--col) 1fr 220px;padding:40px 0;position:relative}.job:before{background:#fbf9f5;background:var(--surface);border-radius:14px;content:"";inset:0 -24px;opacity:0;position:absolute;transition:opacity .4s cubic-bezier(.22,1,.36,1);transition:opacity .4s var(--ease);z-index:-1}.job:hover:before{opacity:1}.job__period{color:#3a3833;color:var(--ink-2);padding-top:6px}.job h3{font-size:1.5rem;letter-spacing:-.02em;line-height:1.25}.job__company{color:#76716a;color:var(--muted)}.job__loc{margin-top:6px}.job__points{margin-top:18px}.job__points li{color:#3a3833;color:var(--ink-2);margin-bottom:8px;padding-left:22px;position:relative}.job__points li:before{background:#9b4a25;background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.8em;width:10px}.job__stack{align-content:flex-start;display:flex;flex-wrap:wrap;gap:8px}.chip{background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:999px;color:#3a3833;color:var(--ink-2);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.72rem;padding:5px 12px}.work{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(2,1fr)}.work__card{background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:18px;border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .6s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform .6s cubic-bezier(.22,1,.36,1);transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1);transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform .6s cubic-bezier(.22,1,.36,1);transition:box-shadow .6s var(--ease),opacity 1s var(--ease),-webkit-transform .6s var(--ease);transition:transform .6s var(--ease),box-shadow .6s var(--ease),opacity 1s var(--ease);transition:transform .6s var(--ease),box-shadow .6s var(--ease),opacity 1s var(--ease),-webkit-transform .6s var(--ease)}.work__card:hover{box-shadow:0 30px 60px -30px rgba(22,21,19,.3);-webkit-transform:translateY(-6px);transform:translateY(-6px)}.work__card--image{display:grid;grid-column:1/-1;grid-template-columns:1.3fr 1fr}.work__media{aspect-ratio:16/9;background:#efe2d6;background:var(--accent-soft);display:block;overflow:hidden}.work__card--image .work__media{aspect-ratio:auto;min-height:340px}.work__media img{height:100%;object-fit:cover;object-position:top left;transition:-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:transform 1s cubic-bezier(.22,1,.36,1);transition:transform 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:-webkit-transform 1s var(--ease);transition:transform 1s var(--ease);transition:transform 1s var(--ease),-webkit-transform 1s var(--ease);width:100%}.work__card:hover .work__media img{-webkit-transform:scale(1.04);transform:scale(1.04)}.work__media--type{aspect-ratio:16/7;background:radial-gradient(circle at 20% 120%,rgba(155,74,37,.22),transparent 55%),linear-gradient(135deg,#ece5d9,#e4dccd);display:grid;place-items:center;position:relative}.work__media--type span{color:rgba(22,21,19,.14);font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--serif);font-size:7rem;font-style:italic;line-height:1;transition:-webkit-transform .8s cubic-bezier(.22,1,.36,1);transition:transform .8s cubic-bezier(.22,1,.36,1);transition:transform .8s cubic-bezier(.22,1,.36,1),-webkit-transform .8s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .8s var(--ease);transition:transform .8s var(--ease);transition:transform .8s var(--ease),-webkit-transform .8s var(--ease)}.work__card:hover .work__media--type span{-webkit-transform:scale(1.08) rotate(-3deg);transform:scale(1.08) rotate(-3deg)}.work__body{display:flex;flex-direction:column;gap:12px;padding:28px 30px 32px}.work__card--image .work__body{justify-content:center;padding:40px}.work__body h3{font-size:1.7rem;letter-spacing:-.025em;line-height:1.15}.work__links{display:flex;font-weight:500;gap:24px;margin-top:8px}.index{border-top:1px solid #161513;border-top:1px solid var(--ink)}.index__row{grid-gap:24px;align-items:baseline;border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);display:grid;gap:24px;grid-template-columns:60px 1.1fr 1.6fr 1fr;padding:22px 0;transition:padding .5s cubic-bezier(.22,1,.36,1),background-color .5s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:padding .5s cubic-bezier(.22,1,.36,1),background-color .5s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);transition:padding .5s cubic-bezier(.22,1,.36,1),background-color .5s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:padding .5s var(--ease),background-color .5s var(--ease),opacity 1s var(--ease),-webkit-transform 1s var(--ease);transition:padding .5s var(--ease),background-color .5s var(--ease),opacity 1s var(--ease),transform 1s var(--ease);transition:padding .5s var(--ease),background-color .5s var(--ease),opacity 1s var(--ease),transform 1s var(--ease),-webkit-transform 1s var(--ease)}.index__row:hover{background:#fbf9f5;background:var(--surface);padding-left:16px}.index__title{font-size:1.15rem;font-weight:500}.index__desc{font-size:.95rem}.index__stack{text-align:right}.more{font-weight:500;margin-top:40px}.skills{grid-gap:48px 32px;display:grid;gap:48px 32px;grid-template-columns:repeat(4,1fr)}.skills__col h3{border-bottom:1px solid #161513;border-bottom:1px solid var(--ink);margin-bottom:14px;padding-bottom:12px}.skills__col li{color:#3a3833;color:var(--ink-2);padding:5px 0;transition:color .3s,-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:color .3s,transform .4s cubic-bezier(.22,1,.36,1);transition:color .3s,transform .4s cubic-bezier(.22,1,.36,1),-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:color .3s,-webkit-transform .4s var(--ease);transition:color .3s,transform .4s var(--ease);transition:color .3s,transform .4s var(--ease),-webkit-transform .4s var(--ease)}.skills__col li:hover{color:#9b4a25;color:var(--accent);-webkit-transform:translateX(4px);transform:translateX(4px)}.certs{border-top:1px solid #161513;border-top:1px solid var(--ink)}.certs__row{align-items:baseline;border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;padding:18px 0}.certs__title{font-size:1.08rem;font-weight:500}.contact{background:#161513;background:var(--ink);color:#f4f1ea;color:var(--bg);padding:128px 0 0}.contact .label{color:#a39e95}.contact .section__index,.contact em{color:#e0a179}.contact__title{font-size:clamp(2.6rem,6.4vw,5.4rem);margin-top:24px;max-width:14ch}.contact__email{align-items:center;border-bottom:1px solid hsla(42,31%,94%,.3);display:inline-flex;font-size:clamp(1.25rem,3vw,2.2rem);gap:14px;letter-spacing:-.02em;margin-top:48px;padding-bottom:6px;transition:border-color .4s,gap .4s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:border-color .4s,gap .4s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);transition:border-color .4s,gap .4s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),-webkit-transform 1s cubic-bezier(.22,1,.36,1);transition:border-color .4s,gap .4s var(--ease),opacity 1s var(--ease),-webkit-transform 1s var(--ease);transition:border-color .4s,gap .4s var(--ease),opacity 1s var(--ease),transform 1s var(--ease);transition:border-color .4s,gap .4s var(--ease),opacity 1s var(--ease),transform 1s var(--ease),-webkit-transform 1s var(--ease);word-break:break-all}.contact__email:hover{border-color:#f4f1ea;border-color:var(--bg);gap:22px}.contact__grid{grid-gap:32px;border-top:1px solid hsla(42,31%,94%,.15);display:grid;gap:32px;grid-template-columns:repeat(3,1fr);margin-top:96px;padding-top:32px}.contact__grid .label{margin-bottom:10px}.contact__links{display:flex;flex-wrap:wrap;gap:8px 22px}.footer{--rule:hsla(42,31%,94%,.15);display:flex;gap:16px;justify-content:space-between;margin-top:96px;padding-bottom:36px;padding-top:28px}.footer .link{color:#a39e95}@media (max-width:1080px){.about,.job,.section__head{grid-template-columns:1fr}.section__head{gap:14px;margin-bottom:52px}.about__text,.facts{grid-column:auto}.job{gap:14px}.job:before{display:none}.job__stack{margin-top:8px}.skills{grid-template-columns:repeat(2,1fr)}.index__row{gap:6px 16px;grid-template-columns:48px 1fr}.index__desc,.index__stack{grid-column:2;text-align:left}}@media (min-width:901px){.hero__title .line{white-space:nowrap}}@media (max-width:900px){.hero__grid{gap:56px;grid-template-columns:1fr}.hero__portrait{justify-self:start;max-width:380px}.portrait__card{bottom:28px;left:auto;right:-12px}.stats{grid-template-columns:repeat(2,1fr);margin-top:72px}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid #e0dacf;border-top:1px solid var(--line);margin-top:12px}.work,.work__card--image{grid-template-columns:1fr}.work__card--image .work__media{aspect-ratio:16/9;min-height:0}.work__card--image .work__body{padding:28px 30px 32px}.contact__grid{grid-template-columns:1fr}}@media (max-width:820px){.nav__toggle{display:block}.nav__links{align-items:flex-start;background:#f4f1ea;background:var(--bg);-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);flex-direction:column;font-size:2.2rem;gap:18px;inset:0;justify-content:center;letter-spacing:-.03em;padding:0 32px;padding:0 var(--gutter);position:fixed;transition:-webkit-clip-path .6s cubic-bezier(.22,1,.36,1);transition:clip-path .6s cubic-bezier(.22,1,.36,1);transition:clip-path .6s cubic-bezier(.22,1,.36,1),-webkit-clip-path .6s cubic-bezier(.22,1,.36,1);transition:-webkit-clip-path .6s var(--ease);transition:clip-path .6s var(--ease);transition:clip-path .6s var(--ease),-webkit-clip-path .6s var(--ease)}.nav__links.is-open{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}.nav__links .btn{font-size:1rem;letter-spacing:0;margin-top:16px}}@media (max-width:560px){body{font-size:16px}:root{--gutter:20px}.nav__inner{padding:0 32px;padding:0 var(--gutter)}.nav__brand small{display:none}.hero{padding-top:112px;padding-top:calc(var(--nav-h) + 36px)}.hero__cta .btn{flex:1 1 100%}.section{padding:88px 0}.skills{gap:36px 20px;grid-template-columns:1fr 1fr}.certs__row{flex-direction:column;gap:4px}.facts__row{grid-template-columns:96px 1fr}.footer{flex-direction:column}}.has-cursor,.has-cursor *{cursor:none!important}.cursor-dot,.cursor-ring{border-radius:50%;left:0;pointer-events:none;position:fixed;top:0;z-index:300}.cursor-dot{background:#9b4a25;background:var(--accent);height:6px;margin:-3px 0 0 -3px;transition:opacity .2s;width:6px}.cursor-ring{border:1px solid #fff;display:grid;height:38px;margin:-19px 0 0 -19px;mix-blend-mode:difference;place-items:center;transition:width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),margin .35s cubic-bezier(.22,1,.36,1),background-color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),opacity .3s;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background-color .35s var(--ease),border-color .35s var(--ease),opacity .3s;width:38px}.cursor-ring span{color:#f4f1ea;color:var(--bg);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;opacity:0;text-transform:uppercase;transition:opacity .2s}.cursor-ring.is-link{background:#fff;height:64px;margin:-32px 0 0 -32px;width:64px}.cursor-ring.is-label{background:#161513;background:var(--ink);border-color:#161513;border-color:var(--ink);height:92px;margin:-46px 0 0 -46px;mix-blend-mode:normal;width:92px}.cursor-ring.is-label span{opacity:1}.cursor-dot.is-hidden,.cursor-dot.is-label,.cursor-ring.is-hidden{opacity:0}.cursor-ring.is-down{height:28px;margin:-14px 0 0 -14px;width:28px}.magnetic{transition:translate .5s cubic-bezier(.22,1,.36,1),background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:translate .5s cubic-bezier(.22,1,.36,1),background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1);transition:translate .5s cubic-bezier(.22,1,.36,1),background-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:translate .5s var(--ease),background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),-webkit-transform .35s var(--ease);transition:translate .5s var(--ease),background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);transition:translate .5s var(--ease),background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),-webkit-transform .35s var(--ease)}[data-tilt]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform}[data-tilt].is-tilting{transition:box-shadow .6s cubic-bezier(.22,1,.36,1),-webkit-transform .12s linear;transition:transform .12s linear,box-shadow .6s cubic-bezier(.22,1,.36,1);transition:transform .12s linear,box-shadow .6s cubic-bezier(.22,1,.36,1),-webkit-transform .12s linear;transition:box-shadow .6s var(--ease),-webkit-transform .12s linear;transition:transform .12s linear,box-shadow .6s var(--ease);transition:transform .12s linear,box-shadow .6s var(--ease),-webkit-transform .12s linear}.work__card{position:relative}.portrait:after,.work__card:after{background:radial-gradient(circle at 50% 50%,hsla(0,0%,100%,.35),transparent 45%);background:radial-gradient(circle at var(--mx,50%) var(--my,50%),hsla(0,0%,100%,.35),transparent 45%);border-radius:inherit;content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .4s cubic-bezier(.22,1,.36,1);transition:opacity .4s var(--ease)}.hero__portrait.is-tilting .portrait:after,.work__card.is-tilting:after{opacity:1}.portrait{position:relative}.hero__portrait.is-tilting .portrait__card{translate:0 0 60px}.portrait__card{transition:translate .6s cubic-bezier(.22,1,.36,1);transition:translate .6s var(--ease)}.job:before{background:radial-gradient(420px circle at 50% 50%,rgba(155,74,37,.07),transparent 70%),#fbf9f5;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(155,74,37,.07),transparent 70%),var(--surface)}.hero__text{opacity:1;opacity:calc(1 - var(--p, 0)*1.1);translate:0 0;translate:0 calc(var(--p, 0)*-90px)}.hero__portrait{translate:0 0;translate:0 calc(var(--p, 0)*70px)}.hero__portrait .portrait img{scale:1;scale:calc(1 + var(--p, 0)*.12)}.work__media[data-progress] img{scale:1.12;translate:0 0;translate:0 calc((var(--p, .5) - .5)*-40px)}.scrub span{opacity:clamp(.14,calc((var(--n) + 6)*1 - var(--i)),1);opacity:clamp(.14,calc(var(--p, 1)*(var(--n) + 6) - var(--i)),1);transition:opacity .15s linear}.contact{-webkit-clip-path:inset(0 0 0 round 0 0 0 0);clip-path:inset(0 0 0 round 0 0 0 0);-webkit-clip-path:inset(0 calc((1 - var(--p, 1))*4vw) 0 round calc((1 - var(--p, 1))*56px) calc((1 - var(--p, 1))*56px) 0 0);clip-path:inset(0 calc((1 - var(--p, 1))*4vw) 0 round calc((1 - var(--p, 1))*56px) calc((1 - var(--p, 1))*56px) 0 0)}.contact__title{translate:0 0;translate:0 calc((1 - var(--p, 1))*60px)}@media (prefers-reduced-motion:reduce){.scrub span{opacity:1}.contact{-webkit-clip-path:none;clip-path:none}}.intro{grid-gap:22px;align-content:center;background:#161513;background:var(--ink);display:grid;gap:22px;inset:0;padding:24px;place-items:center;position:fixed;transition:opacity .45s cubic-bezier(.22,1,.36,1);transition:opacity .45s var(--ease);z-index:400}.intro.is-leaving{opacity:0;pointer-events:none}.intro.is-leaving .intro__editor{-webkit-transform:scale(.94) translateY(-10px);transform:scale(.94) translateY(-10px)}.intro__editor{-webkit-animation:pop .5s cubic-bezier(.22,1,.36,1) both;animation:pop .5s cubic-bezier(.22,1,.36,1) both;-webkit-animation:pop .5s var(--ease) both;animation:pop .5s var(--ease) both;background:#121110;border:1px solid #2a2825;border-radius:14px;box-shadow:0 40px 100px -30px rgba(0,0,0,.8);overflow:hidden;transition:-webkit-transform .45s cubic-bezier(.22,1,.36,1);transition:transform .45s cubic-bezier(.22,1,.36,1);transition:transform .45s cubic-bezier(.22,1,.36,1),-webkit-transform .45s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .45s var(--ease);transition:transform .45s var(--ease);transition:transform .45s var(--ease),-webkit-transform .45s var(--ease);width:min(620px,100%)}.intro__tab{align-items:center;background:#1c1b19;border-bottom:1px solid #2a2825;color:#a39e95;display:flex;font-size:.75rem;gap:16px;padding:12px 16px}.intro__code,.intro__tab{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono)}.intro__code{color:#e9e5dc;font-size:clamp(.78rem,2.4vw,.95rem);line-height:1.75;margin:0;min-height:150px;overflow:hidden;padding:20px 22px 6px;white-space:pre}.intro__line{display:block}.intro .c-p{color:#8d877d}.intro .c-t{color:#8fb3d9}.intro .c-a{color:#c99ad6}.intro .c-s{color:#a9c27a}.intro__caret{-webkit-animation:blink .9s steps(1) infinite;animation:blink .9s steps(1) infinite;background:#e0a179;display:inline-block;height:1.1em;vertical-align:-3px;width:8px}@-webkit-keyframes blink{50%{opacity:0}}@keyframes blink{50%{opacity:0}}.intro__status{color:#e0a179;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.8rem;margin:0;padding:10px 22px 16px}.intro__status.is-ok{color:#7fc89a}.intro__hint{color:#6f6a62;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.hero [data-wire]{outline:1px dashed transparent;outline-offset:10px;position:relative;transition:outline-color .6s cubic-bezier(.22,1,.36,1);transition:outline-color .6s var(--ease)}.hero [data-wire]:after{background:#9b4a25;background:var(--accent);border-radius:4px;color:#f4f1ea;color:var(--bg);content:attr(data-wire);font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.68rem;font-style:normal;font-weight:400;left:-10px;letter-spacing:0;line-height:1.6;opacity:0;padding:2px 8px;pointer-events:none;position:absolute;text-transform:none;top:-34px;-webkit-transform:translateY(4px);transform:translateY(4px);transition:opacity .35s,-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1);transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1),-webkit-transform .35s cubic-bezier(.22,1,.36,1);transition:opacity .35s,-webkit-transform .35s var(--ease);transition:opacity .35s,transform .35s var(--ease);transition:opacity .35s,transform .35s var(--ease),-webkit-transform .35s var(--ease);white-space:nowrap}.hero__title[data-wire]:after{bottom:-34px;left:auto;right:-10px;top:auto}.is-wire .hero [data-wire]{outline-color:rgba(155,74,37,.55)}.is-wire .hero [data-wire]:after{opacity:1;-webkit-transform:none;transform:none}.is-wire .hero .anim{-webkit-animation-name:none;animation-name:none;color:transparent;opacity:1}.is-wire .hero .anim>*{visibility:hidden}.is-wire .hero .stats>*{opacity:0}.hero .stats>*{transition:opacity .6s cubic-bezier(.22,1,.36,1);transition:opacity .6s var(--ease)}.hero{overflow:hidden;position:relative}.hero>.container{position:relative;z-index:1}.hero__field{inset:0;mask-image:linear-gradient(180deg,#000 75%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent);pointer-events:none;position:absolute;transition:opacity 1.2s cubic-bezier(.22,1,.36,1);transition:opacity 1.2s var(--ease);z-index:0}.is-booting .hero__field{opacity:0}.typer{position:relative}.typer__caret{-webkit-animation:blink 1s steps(1) infinite;animation:blink 1s steps(1) infinite;background:#9b4a25;background:var(--accent);bottom:.12em;display:block;height:.82em;position:absolute;right:-.07em;width:.06em}.sr-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.is-booting .hero *,.is-booting .hero :after,.is-booting .hero :before{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.nav__kbd{background:none;border:0;cursor:pointer;display:inline-flex;gap:4px;padding:0}kbd{background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:solid var(--line);border-radius:6px;border-width:1px 1px 2px;color:#3a3833;color:var(--ink-2);display:inline-grid;font-size:.72rem;height:24px;min-width:24px;padding:0 6px;place-items:center}.term,kbd{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono)}.term{background:#121110;border-radius:18px;border-radius:var(--radius);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.06),0 40px 80px -40px rgba(22,21,19,.55);color:#e9e5dc;cursor:text;font-size:.9rem;overflow:hidden}.term__bar{align-items:center;background:#1c1b19;border-bottom:1px solid #2a2825;color:#8d877d;display:flex;font-size:.78rem;gap:16px;padding:14px 18px}.term__dots{display:flex;gap:8px}.term__dots i{background:#ff5f57;border-radius:50%;height:12px;width:12px}.term__dots i:nth-child(2){background:#febc2e}.term__dots i:nth-child(3){background:#28c840}.term__title{flex:1 1;text-align:center}.term__body{height:400px;line-height:1.7;overflow-y:auto;padding:20px 22px 24px;scrollbar-color:#3a3833 transparent;scrollbar-width:thin}.term__body p{white-space:pre-wrap;word-break:break-word}.term__body .is-muted{color:#8d877d}.term__body .is-accent{color:#e0a179}.term__body .is-ok{color:#7fc89a}.term__body .is-err{color:#f08a7e}.term__prompt{color:#7fc89a;white-space:nowrap}.term__link{color:#e9e5dc;text-decoration:underline;text-decoration-color:#5a564f;text-underline-offset:3px}.term__link:hover{text-decoration-color:#e0a179}.term__input{display:flex;gap:10px;margin-top:2px}.term__input input{background:transparent;border:0;caret-color:#e0a179;color:#e9e5dc;flex:1 1;font:inherit;min-width:0;outline:none;padding:0}.term__chips{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.term__chips .label{margin-right:6px}.chip--btn{cursor:pointer;transition:border-color .3s,color .3s,background-color .3s}.chip--btn:hover{border-color:#161513;border-color:var(--ink);color:#161513;color:var(--ink)}.palette{align-items:flex-start;-webkit-animation:fade-in .2s ease both;animation:fade-in .2s ease both;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:rgba(22,21,19,.35);display:flex;inset:0;justify-content:center;padding:14vh 16px 16px;position:fixed;z-index:350}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}.palette__box{-webkit-animation:pop .28s cubic-bezier(.22,1,.36,1) both;animation:pop .28s cubic-bezier(.22,1,.36,1) both;-webkit-animation:pop .28s var(--ease) both;animation:pop .28s var(--ease) both;background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:16px;box-shadow:0 40px 90px -30px rgba(22,21,19,.5);overflow:hidden;width:min(560px,100%)}@-webkit-keyframes pop{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.98);transform:translateY(-8px) scale(.98)}}@keyframes pop{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.98);transform:translateY(-8px) scale(.98)}}.palette__search{align-items:center;border-bottom:1px solid #e0dacf;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:16px 18px}.palette__search input{background:transparent;border:0;color:#161513;color:var(--ink);flex:1 1;font:inherit;font-size:1.02rem;min-width:0;outline:none}.palette__list{max-height:360px;overflow-y:auto;padding:8px}.palette__group{padding:10px 10px 6px}.palette__item{align-items:center;background:none;border:0;border-radius:10px;color:#3a3833;color:var(--ink-2);cursor:pointer;display:flex;font:inherit;font-size:.95rem;gap:12px;padding:10px 12px;text-align:left;width:100%}.palette__item kbd{margin-left:auto}.palette__item.is-active{background:#efe2d6;background:var(--accent-soft);color:#161513;color:var(--ink)}.palette__empty{color:#76716a;color:var(--muted);padding:18px 12px}.toast{background:#161513;background:var(--ink);border-radius:999px;bottom:28px;color:#f4f1ea;color:var(--bg);font-size:.9rem;left:50%;opacity:0;padding:10px 18px;pointer-events:none;position:fixed;-webkit-transform:translate(-50%,12px);transform:translate(-50%,12px);transition:opacity .3s,-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:opacity .3s,transform .4s cubic-bezier(.22,1,.36,1);transition:opacity .3s,transform .4s cubic-bezier(.22,1,.36,1),-webkit-transform .4s cubic-bezier(.22,1,.36,1);transition:opacity .3s,-webkit-transform .4s var(--ease);transition:opacity .3s,transform .4s var(--ease);transition:opacity .3s,transform .4s var(--ease),-webkit-transform .4s var(--ease);z-index:360}.toast.is-in{opacity:1;-webkit-transform:translate(-50%);transform:translate(-50%)}@media (max-width:820px){.nav__kbd{display:none}}@media (max-width:560px){.term{font-size:.8rem}.term__body{height:340px;padding:16px}.term__prompt{font-size:.72rem}}.ai__intro{color:#3a3833;color:var(--ink-2);font-size:1.15rem;margin:-24px 0 56px 296px;margin:-24px 0 56px calc(var(--col) + var(--col-gap));max-width:760px}.ai__cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr)}.ai__card{background:#fbf9f5;background:var(--surface);border:1px solid #e0dacf;border:1px solid var(--line);border-radius:18px;border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;padding:14px 14px 22px;transition:border-color .4s,opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform .6s cubic-bezier(.22,1,.36,1);transition:border-color .4s,transform .6s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1);transition:border-color .4s,transform .6s cubic-bezier(.22,1,.36,1),opacity 1s cubic-bezier(.22,1,.36,1),-webkit-transform .6s cubic-bezier(.22,1,.36,1);transition:border-color .4s,opacity 1s var(--ease),-webkit-transform .6s var(--ease);transition:border-color .4s,transform .6s var(--ease),opacity 1s var(--ease);transition:border-color .4s,transform .6s var(--ease),opacity 1s var(--ease),-webkit-transform .6s var(--ease)}.ai__card:hover{border-color:#161513;border-color:var(--ink);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.ai__card h3{font-size:1.18rem;letter-spacing:-.02em;margin:10px 8px 0}.ai__card .muted{font-size:.93rem;line-height:1.55;margin:0 8px}.ai__backed{color:#9b4a25;color:var(--accent);font-size:.68rem;margin:auto 8px 0;padding-top:12px}.ai__art{background:radial-gradient(circle at 30% 0,hsla(23,62%,68%,.14),transparent 60%),#151413;border-radius:12px;display:grid;height:168px;overflow:hidden;place-items:center}.art{height:100%;width:100%}.art--prompt{color:#b9b3a8;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.68rem;line-height:1.85;margin:0;overflow:hidden;padding:18px 16px;white-space:pre}.art--prompt .code-line{display:block}.art--prompt .k{color:#e0a179}.art--prompt .v{-webkit-animation:shimmer 3s linear infinite;animation:shimmer 3s linear infinite;background:linear-gradient(90deg,#c99ad6,#8fb3d9,#c99ad6);background-size:200% 100%;border-radius:4px;color:#151413;padding:1px 4px}@-webkit-keyframes shimmer{to{background-position:-200% 0}}@keyframes shimmer{to{background-position:-200% 0}}.art__caret{-webkit-animation:blink 1s steps(1) infinite;animation:blink 1s steps(1) infinite;background:#e9e5dc;display:inline-block;height:.95em;margin-left:3px;vertical-align:-2px;width:6px}.art--embed .dot{-webkit-animation:cluster 6s cubic-bezier(.22,1,.36,1) infinite alternate;animation:cluster 6s cubic-bezier(.22,1,.36,1) infinite alternate;-webkit-animation:cluster 6s var(--ease) infinite alternate;animation:cluster 6s var(--ease) infinite alternate;-webkit-animation-delay:calc(var(--i)*-.08s);animation-delay:calc(var(--i)*-.08s);-webkit-transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px));transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px))}.art--embed .c0{fill:#e0a179}.art--embed .c1{fill:#8fb3d9}.art--embed .c2{fill:#a9c27a}.art--embed .halo{fill:none;stroke-width:.6;stroke-dasharray:2 2;-webkit-animation:halo 6s cubic-bezier(.22,1,.36,1) infinite alternate;animation:halo 6s cubic-bezier(.22,1,.36,1) infinite alternate;-webkit-animation:halo 6s var(--ease) infinite alternate;animation:halo 6s var(--ease) infinite alternate;opacity:0}.art--embed .halo.c0{stroke:#e0a179}.art--embed .halo.c1{stroke:#8fb3d9}.art--embed .halo.c2{stroke:#a9c27a}@-webkit-keyframes cluster{0%,20%{-webkit-transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px));transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px))}80%,to{-webkit-transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px));transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px))}}@keyframes cluster{0%,20%{-webkit-transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px));transform:translate(calc(var(--x1)*1px),calc(var(--y1)*1px))}80%,to{-webkit-transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px));transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px))}}@-webkit-keyframes halo{0%,60%{opacity:0}to{opacity:.8}}@keyframes halo{0%,60%{opacity:0}to{opacity:.8}}.art--agent .track{fill:none;stroke:#3a3833;stroke-width:.8;stroke-dasharray:2 2.4}.art--agent .node{fill:#232220;stroke:#5a564f;stroke-width:.8;-webkit-animation:node-hit 4s linear infinite;animation:node-hit 4s linear infinite}@-webkit-keyframes node-hit{0%,14%,to{fill:#232220;stroke:#5a564f}3%{fill:#e0a179;stroke:#e0a179}}@keyframes node-hit{0%,14%,to{fill:#232220;stroke:#5a564f}3%{fill:#e0a179;stroke:#e0a179}}.art--agent .token{fill:#e9e5dc;-webkit-filter:drop-shadow(0 0 2px #e0a179);filter:drop-shadow(0 0 2px #e0a179)}.art--agent text,.art--ship text{text-anchor:middle;fill:#8d877d;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono)}.art--agent .label{font-size:5px}.art--agent .center{fill:#5a564f;font-size:5.2px;letter-spacing:.1em}.art--ship .wire{stroke:#3a3833;stroke-width:.6;stroke-dasharray:1.5 1.5}.art--ship .box{fill:#232220;stroke:#5a564f;stroke-width:.6}.art--ship .box-label{fill:#e9e5dc;font-size:6px}.art--ship .req{fill:#8fb3d9}.art--ship .res{fill:#e0a179}.art--ship .caption{font-size:3.8px}.ai__demo-head{grid-gap:14px 56px;grid-gap:14px var(--col-gap);display:grid;gap:14px 56px;gap:14px var(--col-gap);grid-template-columns:240px 1fr;grid-template-columns:var(--col) 1fr;margin:96px 0 28px}.ai__demo-head p{max-width:640px}.ai__note{letter-spacing:.01em;line-height:1.7;margin-top:18px;max-width:820px;text-transform:none}.rag{background:#121110;border-radius:18px;border-radius:var(--radius);box-shadow:0 50px 100px -50px rgba(22,21,19,.6);color:#e9e5dc;overflow:hidden}.rag__bar{align-items:center;background:#1c1b19;border-bottom:1px solid #2a2825;color:#8d877d;display:flex;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.78rem;gap:16px;padding:14px 18px}.rag__file{flex:1 1;text-align:center}.rag__status{align-items:center;display:inline-flex;gap:8px}.rag__status:before{background:#5a564f;border-radius:50%;content:"";height:7px;width:7px}.rag__status.is-running{color:#e0a179}.rag__status.is-running:before{-webkit-animation:blink .8s steps(1) infinite;animation:blink .8s steps(1) infinite;background:#e0a179}.rag__status.is-done{color:#7fc89a}.rag__status.is-done:before{background:#7fc89a}.rag__ask{align-items:center;background:#1a1918;border:1px solid #2f2d2a;border-radius:12px;display:flex;gap:14px;margin:22px 22px 0;padding:8px 8px 8px 16px;transition:border-color .3s}.rag__ask:focus-within{border-color:#e0a179}.rag__q{color:#e0a179;font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--serif);font-size:1.3rem;font-style:italic}.rag__ask input{background:transparent;border:0;color:#e9e5dc;flex:1 1;font:inherit;font-size:1rem;min-width:0;outline:none}.rag__ask input::-webkit-input-placeholder{color:#6f6a62}.rag__ask input::placeholder{color:#6f6a62}.rag__run{align-items:center;background:#e9e5dc;border:0;border-radius:8px;color:#121110;cursor:pointer;display:inline-flex;font:inherit;font-size:.88rem;font-weight:500;gap:8px;padding:9px 16px;transition:background-color .3s}.rag__run:hover{background:#e0a179}.rag__samples{display:flex;flex-wrap:wrap;gap:8px;margin:14px 22px 0}.rag__samples button{background:none;border:1px solid #2f2d2a;border-radius:999px;color:#a39e95;cursor:pointer;font:inherit;font-size:.8rem;padding:5px 12px;transition:border-color .3s,color .3s}.rag__samples button:hover{border-color:#e0a179;color:#e9e5dc}.rag__steps{border-top:1px solid #2a2825;color:#6f6a62;display:grid;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.74rem;grid-template-columns:repeat(4,1fr);letter-spacing:.06em;margin:24px 22px 0;text-transform:uppercase}.rag__steps li{padding-top:14px;position:relative;transition:color .4s}.rag__steps li:before{background:#e0a179;content:"";height:2px;left:0;position:absolute;right:8px;top:-1px;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left;transition:-webkit-transform .7s cubic-bezier(.22,1,.36,1);transition:transform .7s cubic-bezier(.22,1,.36,1);transition:transform .7s cubic-bezier(.22,1,.36,1),-webkit-transform .7s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .7s var(--ease);transition:transform .7s var(--ease);transition:transform .7s var(--ease),-webkit-transform .7s var(--ease)}.rag__steps li span{color:#4a4741;margin-right:6px}.rag__steps li.is-active,.rag__steps li.is-done{color:#e9e5dc}.rag__steps li.is-active:before,.rag__steps li.is-done:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.rag__steps li.is-active span,.rag__steps li.is-done span{color:#e0a179}.rag__grid{grid-gap:28px;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);padding:24px 22px 26px}.rag__space{background:#161514;border:1px solid #2a2825;border-radius:12px;margin:0;padding:14px}.rag__legend,.rag__space figcaption{color:#8d877d;display:flex;flex-wrap:wrap;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.7rem;gap:6px 14px;justify-content:space-between;letter-spacing:.04em}.rag__space svg{aspect-ratio:1;display:block;margin:10px 0;overflow:visible;width:100%}.rag__gridline line{stroke:#222120;stroke-width:.25}.rag__cat{text-anchor:middle;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:3px;letter-spacing:.08em;opacity:.7;text-transform:uppercase}.rag__dot{opacity:.55;transition:r .5s cubic-bezier(.22,1,.36,1),opacity .4s;transition:r .5s var(--ease),opacity .4s}.rag__dot.is-hit{stroke:#121110;stroke-width:.6;opacity:1}.rag__ray{stroke:#e9e5dc;stroke-width:.35;stroke-dasharray:1;stroke-dashoffset:1;-webkit-animation:draw .6s cubic-bezier(.22,1,.36,1) forwards;animation:draw .6s cubic-bezier(.22,1,.36,1) forwards;-webkit-animation:draw .6s var(--ease) forwards;animation:draw .6s var(--ease) forwards;opacity:.7}@-webkit-keyframes draw{to{stroke-dashoffset:0}}@keyframes draw{to{stroke-dashoffset:0}}.rag__score{fill:#e9e5dc;-webkit-animation:fade-in .4s .8s both;animation:fade-in .4s .8s both;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:2.7px}.rag__query{transition:-webkit-transform .8s cubic-bezier(.22,1,.36,1);transition:transform .8s cubic-bezier(.22,1,.36,1);transition:transform .8s cubic-bezier(.22,1,.36,1),-webkit-transform .8s cubic-bezier(.22,1,.36,1);transition:-webkit-transform .8s var(--ease);transition:transform .8s var(--ease);transition:transform .8s var(--ease),-webkit-transform .8s var(--ease)}.rag__query-core{fill:#e9e5dc}.rag__query-halo{fill:none;stroke:#e9e5dc;stroke-width:.3;-webkit-animation:halo-pulse 1.6s cubic-bezier(.22,1,.36,1) infinite;animation:halo-pulse 1.6s cubic-bezier(.22,1,.36,1) infinite;-webkit-animation:halo-pulse 1.6s var(--ease) infinite;animation:halo-pulse 1.6s var(--ease) infinite;transform-box:fill-box;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes halo-pulse{0%{opacity:1;-webkit-transform:scale(.6);transform:scale(.6)}to{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}}@keyframes halo-pulse{0%{opacity:1;-webkit-transform:scale(.6);transform:scale(.6)}to{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}}.rag__legend{justify-content:flex-start;list-style:none;padding:0}.rag__legend li{align-items:center;display:inline-flex;gap:6px}.rag__legend i{border-radius:50%;height:8px;width:8px}.rag__legend-q{background:#e9e5dc;box-shadow:0 0 0 2px #121110,0 0 0 3px #e9e5dc}.rag__panel{display:flex;flex-direction:column;gap:14px;min-width:0}.rag__block{background:#161514;border:1px solid #2a2825;border-radius:12px;opacity:.32;padding:14px 16px;transition:opacity .5s,border-color .5s}.rag__block.is-in{opacity:1}.rag__block h4{align-items:baseline;color:#a39e95;display:flex;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.72rem;font-weight:400;gap:8px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.rag__block h4 span{color:#e0a179}.rag__block h4 small{color:#6f6a62;font-size:.66rem;margin-left:auto}.rag__tokens{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}.rag__tokens span{-webkit-animation:pop-in .35s cubic-bezier(.22,1,.36,1) both;animation:pop-in .35s cubic-bezier(.22,1,.36,1) both;-webkit-animation:pop-in .35s var(--ease) both;animation:pop-in .35s var(--ease) both;background:#24221f;border-radius:6px;color:#e9e5dc;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.76rem;padding:2px 8px}.rag__tokens .is-stop{background:none;color:#5a564f;text-decoration:line-through}.rag__tokens .is-exp{background:rgba(201,154,214,.14);color:#c99ad6}@-webkit-keyframes pop-in{0%{opacity:0;-webkit-transform:translateY(6px) scale(.9);transform:translateY(6px) scale(.9)}}@keyframes pop-in{0%{opacity:0;-webkit-transform:translateY(6px) scale(.9);transform:translateY(6px) scale(.9)}}.rag__vec{display:block;height:46px;width:100%}.rag__vec line{stroke:#3a3833;stroke-width:.3}.rag__vec rect{transition:y .5s cubic-bezier(.22,1,.36,1),height .5s cubic-bezier(.22,1,.36,1);transition:y .5s var(--ease),height .5s var(--ease)}.rag__vec .is-pos{fill:#e0a179}.rag__vec .is-neg{fill:#8fb3d9}.rag__hits{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.rag__hits li{-webkit-animation:fade-up .5s cubic-bezier(.22,1,.36,1) both;animation:fade-up .5s cubic-bezier(.22,1,.36,1) both;-webkit-animation:fade-up .5s var(--ease) both;animation:fade-up .5s var(--ease) both}.rag__hit-head{align-items:center;display:flex;font-size:.86rem;gap:8px}.rag__hit-head i{border-radius:50%;flex-shrink:0;height:8px;width:8px}.rag__hit-head span{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rag__hit-head code{color:#a39e95;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.74rem}.rag__meter{background:#24221f;border-radius:3px;height:3px;margin-top:6px;overflow:hidden}.rag__meter span{-webkit-animation:grow .9s cubic-bezier(.22,1,.36,1) both;animation:grow .9s cubic-bezier(.22,1,.36,1) both;-webkit-animation:grow .9s var(--ease) both;animation:grow .9s var(--ease) both;background:linear-gradient(90deg,#e0a179,#c99ad6);display:block;height:100%;-webkit-transform-origin:left;transform-origin:left}@-webkit-keyframes grow{0%{-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes grow{0%{-webkit-transform:scaleX(0);transform:scaleX(0)}}.rag__none{color:#8d877d;font-size:.86rem}.rag__ans{font-size:.95rem;line-height:1.6;min-height:92px}.rag__ans-lead{color:#e0a179;margin-bottom:8px}.rag__ans-item{color:#d6d1c7;margin-bottom:8px}.rag__cite{color:#c99ad6;font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--mono);font-size:.75rem;margin-right:8px}.rag__caret{-webkit-animation:blink .8s steps(1) infinite;animation:blink .8s steps(1) infinite;background:#e0a179;display:inline-block;height:1em;vertical-align:-2px;width:8px}@media (max-width:1080px){.ai__intro{margin-left:0}.ai__cards{grid-template-columns:repeat(2,1fr)}.ai__demo-head{grid-template-columns:1fr}}@media (max-width:900px){.rag__grid{grid-template-columns:1fr}}@media (max-width:560px){.ai__cards{grid-template-columns:1fr}.rag__ask{margin:16px 14px 0}.rag__samples,.rag__steps{margin-left:14px;margin-right:14px}.rag__steps{font-size:.62rem;letter-spacing:.02em}.rag__steps li span{display:none}.rag__grid{padding:18px 14px 20px}.rag__file{font-size:.7rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation:none!important;animation:none!important;transition:none!important}html{scroll-behavior:auto}[data-reveal]{opacity:1;-webkit-transform:none;transform:none}.art--embed .dot{-webkit-transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px));transform:translate(calc(var(--x2)*1px),calc(var(--y2)*1px))}.art--embed .halo{opacity:.8}.rag__ray{stroke-dashoffset:0}}
/*# sourceMappingURL=main.91e677be.css.map*/