:root{--paper:oklch(97.5% .012 95);--paper2:oklch(93.7% .018 95);--ink:oklch(18% .025 275);--muted:oklch(48% .026 275);--line:oklch(83% .025 95);--dev:oklch(55% .23 278);--devsoft:oklch(91% .055 278);--ops:oklch(64% .18 36);--opssoft:oklch(91% .055 36);--accent:var(--dev);--soft:var(--devsoft);--ease:cubic-bezier(.16, 1, .3, 1);--header:76px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Manrope,system-ui,sans-serif;overflow-x:hidden}body[data-mode=ops]{--accent:var(--ops);--soft:var(--opssoft)}a{color:inherit;text-decoration:none}button{font:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.mono{font-family:DM Mono,monospace}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.noise{z-index:80;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.progress{z-index:50;background:var(--accent);transform-origin:0;width:100%;height:3px;position:fixed;inset:0 auto auto 0}.loader{z-index:100;background:var(--paper);transition:transform .95s var(--ease);grid-template-rows:auto 1fr auto;padding:clamp(24px,4vw,60px);display:grid;position:fixed;inset:0;overflow:hidden}.loader.done{transform:translateY(-105%)}.loader-top,.loader-bottom{z-index:3;letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.68rem;display:flex;position:relative}.loader-top span:last-child,.loader-status{color:var(--muted)}.loader-center{z-index:2;align-self:center;position:relative}.loader-name{letter-spacing:-.09em;margin:0 0 0 -.055em;font-size:clamp(4.4rem,13.7vw,13.5rem);font-weight:800;line-height:.73}.loader-line{display:block;overflow:hidden}.loader-line i{animation:nameIn .78s var(--ease) forwards;font-style:normal;display:block;transform:translateY(115%)}.loader-line:nth-child(2) i{color:var(--dev);animation-delay:.1s}.loader-sub{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.09em;text-transform:uppercase;opacity:0;animation:fadeIn .55s .5s var(--ease) forwards;justify-content:space-between;gap:30px;margin-top:clamp(26px,4vw,48px);padding-top:16px;font-size:.72rem;display:flex}.loader-wipe{z-index:1;background:var(--dev);transform-origin:bottom;width:100%;height:100%;position:absolute;bottom:0;left:0;transform:scaleY(0)}.loader.finishing .loader-wipe{transition:transform .62s var(--ease);transform:scaleY(1)}.loader-finish{z-index:4;color:var(--paper);letter-spacing:-.04em;opacity:0;place-items:center;font-size:clamp(1.3rem,3vw,2.7rem);font-weight:700;display:grid;position:absolute;inset:0;transform:translateY(20px)}.loader.finishing .loader-finish{opacity:1;transition:opacity .3s .26s var(--ease), transform .5s .22s var(--ease);transform:none}.loader-progress{align-items:center;gap:16px;min-width:min(46vw,520px);display:flex}.loader-track{background:var(--line);flex:1;height:2px;overflow:hidden}.loader-track span{background:var(--ink);transform-origin:0;width:100%;height:100%;display:block}.loader-count{font-variant-numeric:tabular-nums}@keyframes nameIn{to{transform:none}}@keyframes fadeIn{to{opacity:1}}header{z-index:30;height:var(--header);background:var(--paper);border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,64px);display:grid;position:fixed;inset:0 0 auto}.brand{letter-spacing:-.05em;font-weight:800}.brand b{color:var(--accent)}nav{letter-spacing:.08em;text-transform:uppercase;gap:30px;font-size:.72rem;font-weight:700;display:flex}.switch{border:1px solid var(--line);background:var(--paper2);border-radius:999px;justify-self:end;padding:4px;display:flex;position:relative}.pill{background:var(--ink);width:calc(50% - 4px);transition:transform .35s var(--ease);border-radius:999px;position:absolute;inset:4px auto 4px 4px}body[data-mode=ops] .pill{transform:translate(100%)}.switch button{z-index:1;min-width:105px;min-height:38px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:.67rem;font-weight:800;position:relative}.switch button[aria-selected=true]{color:var(--paper)}main{padding-top:var(--header)}.hero{min-height:calc(100svh - var(--header));border-bottom:1px solid var(--line);flex-direction:column;justify-content:space-between;padding:clamp(50px,7vw,100px) clamp(20px,5vw,80px) 34px;display:flex;position:relative;overflow:hidden}.hero-grid{background-image:linear-gradient(to right, var(--line) 1px, transparent 1px);opacity:.55;background-size:25% 100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 2%,#000 26% 77%,#0000);mask-image:linear-gradient(#0000 2%,#000 26% 77%,#0000)}.ghost{letter-spacing:-.12em;color:var(--soft);pointer-events:none;font-size:clamp(20rem,50vw,49rem);font-weight:800;line-height:.7;position:absolute;bottom:-.21em;right:-.06em}.hero-top,.hero-bottom,.hero-title{z-index:2;position:relative}.hero-top{justify-content:space-between;align-items:start;display:flex}.kicker{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:12px;font-size:.72rem;display:flex}.kicker:before{content:"";background:var(--accent);width:34px;height:2px}.hero-note{color:var(--muted);text-align:right;margin:0;font-size:.78rem;line-height:1.65}.hero-title{letter-spacing:-.085em;max-width:10ch;margin:32px 0 48px -.055em;font-size:clamp(4.6rem,12.2vw,12.2rem);font-weight:800;line-height:.78}.hero-title span{display:block}.accent{color:var(--accent)}.hero-bottom{grid-template-columns:1fr minmax(280px,520px) auto;align-items:end;gap:40px;display:grid}.hero-index{letter-spacing:.08em;font-size:.68rem;line-height:1.8}.hero-intro{color:var(--muted);margin:0;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.6}.round{border:1px solid var(--ink);border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.expertise{background:var(--ink);color:var(--paper);grid-template-columns:minmax(180px,.65fr) 1.35fr;display:grid}.expertise-title{border-right:1px solid oklch(35% .025 275);flex-direction:column;justify-content:space-between;gap:36px;padding:28px clamp(20px,4vw,56px);display:flex}.expertise-title span{letter-spacing:.1em;color:oklch(70% .02 95);font-size:.68rem}.expertise-title strong{letter-spacing:-.05em;max-width:9ch;font-size:clamp(1.4rem,2.6vw,2.5rem);line-height:1}.expertise-items{grid-template-columns:repeat(4,1fr);display:grid}.expertise-item{flex-direction:column;justify-content:space-between;min-height:150px;padding:24px;display:flex;position:relative;overflow:hidden}.expertise-item+.expertise-item{border-left:1px solid oklch(35% .025 275)}.expertise-item:before{content:"";background:var(--accent);transition:transform .4s var(--ease);position:absolute;inset:0;transform:translateY(102%)}.expertise-item:hover:before{transform:none}.expertise-item>*{z-index:1;position:relative}.expertise-item small{color:oklch(68% .02 95)}.mode-content{animation:contentIn .5s var(--ease)}@keyframes contentIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.section{padding:clamp(80px,11vw,160px) clamp(20px,5vw,80px)}.head{grid-template-columns:.7fr 1.3fr;gap:48px;margin-bottom:clamp(56px,8vw,110px);display:grid}.no{letter-spacing:.1em;color:var(--accent);font-size:.7rem}.head h2,.tool h2{letter-spacing:-.07em;max-width:12ch;margin:-.12em 0 0;font-size:clamp(2.9rem,6.5vw,6.8rem);line-height:.9}.rows{border-top:1px solid var(--ink)}.row{border-bottom:1px solid var(--line);grid-template-columns:70px .8fr 1.2fr;align-items:center;gap:34px;padding:34px 0;display:grid}.row h3{letter-spacing:-.045em;margin:0;font-size:clamp(1.4rem,2.5vw,2.4rem)}.row p{color:var(--muted);margin:0;line-height:1.6}.story{background:var(--ink);color:var(--paper)}.timeline{max-width:1120px;margin-left:auto}.job{border-top:1px solid oklch(35% .025 275);grid-template-columns:190px 1fr;gap:48px;padding:46px 0;display:grid}.job:last-child{border-bottom:1px solid oklch(35% .025 275)}.job-date{color:oklch(70% .02 95);font-size:.72rem}.job h3{letter-spacing:-.05em;margin:0;font-size:clamp(1.55rem,3vw,2.8rem)}.company{color:var(--accent);margin:9px 0 18px;font-weight:700}.job p{color:oklch(76% .02 95);max-width:67ch;margin:0;line-height:1.65}.tool{grid-template-columns:.85fr 1.15fr;gap:clamp(50px,10vw,150px);display:grid}.groups{border-top:1px solid var(--ink)}.group{border-bottom:1px solid var(--line);padding:30px 0}.group h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.tags{flex-wrap:wrap;gap:10px;display:flex}.tag{border:1px solid var(--ink);border-radius:999px;padding:11px 17px}.contact{background:var(--accent);min-height:90svh;color:var(--paper);flex-direction:column;justify-content:space-between;padding:clamp(80px,11vw,150px) clamp(20px,5vw,80px) 38px;display:flex}.contact-label{letter-spacing:.11em;text-transform:uppercase;font-size:.7rem}.contact h2{letter-spacing:-.085em;max-width:10ch;margin:36px 0 clamp(58px,8vw,100px) -.05em;font-size:clamp(4rem,11vw,11rem);line-height:.81}.contact-links{border-top:1px solid}.contact-link{transition:transform .25s var(--ease);border-bottom:1px solid;grid-template-columns:160px 1fr auto;align-items:center;gap:24px;padding:22px 0;display:grid}.contact-link:hover{transform:translate(10px)}.contact-link span{letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}.contact-link strong{font-size:clamp(1rem,2vw,1.5rem);font-weight:600}.contact-link b{font-size:1.35rem}.footer{letter-spacing:.06em;justify-content:space-between;gap:24px;margin-top:90px;font-size:.68rem;display:flex}@media (width<=900px){:root{--header:68px}nav{display:none}.switch{z-index:40;background:var(--paper);position:fixed;bottom:16px;left:50%;transform:translate(-50%)}header{grid-template-columns:1fr auto}.hero-bottom{grid-template-columns:1fr 1fr}.round{display:none}.expertise{grid-template-columns:1fr}.expertise-title{border-bottom:1px solid oklch(35% .025 275);border-right:0;flex-direction:row}.expertise-items{grid-template-columns:repeat(2,1fr)}.expertise-item:nth-child(3){border-top:1px solid oklch(35% .025 275);border-left:0}.expertise-item:nth-child(4){border-top:1px solid oklch(35% .025 275)}.head,.tool{grid-template-columns:1fr}.row{grid-template-columns:48px 1fr}.row p{grid-column:2}.contact-link{grid-template-columns:110px 1fr auto}}@media (width<=620px){.loader-top span:last-child,.loader-status{display:none}.loader-name{font-size:clamp(4rem,21vw,7rem)}.loader-sub{line-height:1.8;display:block}.loader-progress{width:72vw;min-width:0}.hero-note{display:none}.hero-title{margin-top:52px;font-size:clamp(4.3rem,21vw,7rem)}.hero-bottom{grid-template-columns:1fr}.job{grid-template-columns:1fr;gap:14px}.contact-link{grid-template-columns:1fr auto;gap:8px}.contact-link span{grid-column:1/-1}.footer{flex-direction:column;padding-bottom:60px}.switch button{min-width:132px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.loader{display:none}}.scroll-reveal{opacity:0;transition:opacity .72s var(--ease) var(--reveal-delay,0s), transform .72s var(--ease) var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(44px)}.scroll-reveal.reveal-strong{transform:translateY(72px)}.scroll-reveal.is-visible{opacity:1;transform:translate(0,0)}.row.scroll-reveal h3,.row.scroll-reveal p,.job.scroll-reveal>*,.group.scroll-reveal .tag{opacity:0;transition:opacity .52s var(--ease), transform .52s var(--ease);transform:translateY(18px)}.row.scroll-reveal.is-visible h3{transition-delay:calc(var(--reveal-delay,0s) + 70ms)}.row.scroll-reveal.is-visible p{transition-delay:calc(var(--reveal-delay,0s) + .125s)}.job.scroll-reveal.is-visible>:first-child{transition-delay:calc(var(--reveal-delay,0s) + 40ms)}.job.scroll-reveal.is-visible>:last-child{transition-delay:calc(var(--reveal-delay,0s) + .1s)}.group.scroll-reveal.is-visible .tag{transition-delay:calc(var(--reveal-delay,0s) + var(--tag-delay,0s) + 70ms)}.row.scroll-reveal.is-visible h3,.row.scroll-reveal.is-visible p,.job.scroll-reveal.is-visible>*,.group.scroll-reveal.is-visible .tag{opacity:1;transform:translate(0,0)}@media (prefers-reduced-motion:reduce){.scroll-reveal,.scroll-reveal *{opacity:1!important;transition:none!important;transform:none!important}}.row{isolation:isolate;transition:color .26s var(--ease), transform .36s var(--ease);position:relative;overflow:hidden}.row:before{content:"";z-index:-1;background:var(--soft);transition:transform .52s var(--ease);position:absolute;inset:0;transform:translate(-101%)}.row:hover:before,.row:focus-within:before{transform:translate(0,0)}.row:hover,.row:focus-within{transform:translate(14px)}.row h3,.row p,.row>.mono{transition:color .24s var(--ease), transform .36s var(--ease), opacity .24s var(--ease)}.row:hover h3,.row:focus-within h3{color:var(--accent);transform:translate(8px)}.row:hover p,.row:focus-within p{color:var(--ink);transform:translate(8px)}.row:hover>.mono,.row:focus-within>.mono{color:var(--accent)}.job{isolation:isolate;transition:transform .4s var(--ease);position:relative;overflow:hidden}.job:before{content:"";z-index:-1;transition:transform .52s var(--ease);background:oklch(23% .045 275);position:absolute;inset:0;transform:translate(-101%)}body[data-mode=ops] .job:before{background:oklch(24% .04 36)}.job:hover:before,.job:focus-within:before{transform:translate(0,0)}.job:hover,.job:focus-within{transform:translate(12px)}.job h3,.job .company,.job p,.job .job-date{transition:color .24s var(--ease), transform .36s var(--ease), opacity .24s var(--ease)}.job:hover h3,.job:focus-within h3,.job:hover .company,.job:focus-within .company,.job:hover p,.job:focus-within p{transform:translate(8px)}.job:hover h3,.job:focus-within h3{color:var(--paper)}.job:hover .job-date,.job:focus-within .job-date{color:var(--accent)}.group{transition:transform .36s var(--ease)}.group:hover,.group:focus-within{transform:translate(10px)}.group h3{transition:color .22s var(--ease), transform .32s var(--ease)}.group:hover h3,.group:focus-within h3{color:var(--accent);transform:translate(4px)}.tag{cursor:default;transition:transform .18s var(--ease), color .16s var(--ease), background-color .16s var(--ease), border-color .16s var(--ease)}.tag:hover{color:var(--paper);background:var(--accent);border-color:var(--accent);transform:translateY(-4px)}.row.scroll-reveal.is-visible:hover,.job.scroll-reveal.is-visible:hover,.group.scroll-reveal.is-visible:hover{opacity:1}nav a{position:relative}nav a:after{content:"";background:var(--accent);transform-origin:100%;height:2px;transition:transform .26s var(--ease);position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(0)}nav a:hover:after,nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}@media (hover:none){.row:hover,.job:hover,.group:hover,.row:hover h3,.row:hover p,.job:hover h3,.job:hover .company,.job:hover p,.group:hover h3,.tag:hover{transform:none}}@media (prefers-reduced-motion:reduce){.row,.row:before,.row *,.job,.job:before,.job *,.group,.group *,nav a:after{transition:none!important}}.expertise-arrow,.contact-arrow{transition:transform .26s var(--ease), opacity .2s var(--ease);flex:none}.expertise-arrow{opacity:.42;align-self:flex-end}.expertise-item:hover .expertise-arrow,.expertise-item:focus-within .expertise-arrow,.contact-link:hover .contact-arrow,.contact-link:focus-visible .contact-arrow{opacity:1;transform:translate(4px,-4px)}
