@import"https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500&family=Instrument+Serif:ital@1&family=Space+Grotesk:wght@400;500&display=swap";:root{--bg:#0b0b0c;--surface:#131315;--ink:#f1eee9;--soft:#8a8782;--line:#ffffff1f;--accent:#E18C7A;--on-accent:#0b0b0c;--accent-ink:#E18C7A;--ink-2:#c9c5be;--shadow:#000;--node:#ffffff55;--pad:clamp(20px,6vw,96px);--display:"Space Grotesk",system-ui,sans-serif;--serif:"Instrument Serif",Georgia,serif;--body:"DM Sans",system-ui,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--case-bg:var(--bg);--case-ink:var(--ink);--case-soft:var(--soft);--case-line:var(--line);--case-accent:var(--accent-ink);--case-on-accent:var(--on-accent);--case-pad:var(--pad);--case-radius:14px;--case-display:500 1em/1 "Space Grotesk",sans-serif;--blind:var(--bg);color-scheme:dark}:root[data-theme=light]{--bg:#f7f4ef;--surface:#ffffff;--ink:#141312;--soft:#6d6a65;--line:#1413121f;--accent-ink:#b94e31;--ink-2:#3b3936;--shadow:#14131238;--node:#14131255;--case-on-accent:#fff;color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{transition:background-color .35s,color .35s}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--body);overflow-x:clip;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}ol,ul{padding:0;list-style:none}h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.04em}em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.015em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}::selection{background:var(--accent);color:var(--on-accent)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;left:16px;top:-60px;z-index:60;background:var(--accent);color:var(--on-accent);padding:10px 16px;border-radius:100px;font-size:13px}.skip:focus{top:12px}.eyebrow{display:block;font:500 11px/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}.eyebrow.accent{color:var(--accent-ink)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;scroll-padding-top:80px}}.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:clamp(16px,3vw,40px);padding:14px var(--pad);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.wordmark{font:500 17px/1 var(--display);letter-spacing:-.03em;padding:8px 0;display:inline-flex;align-items:center;gap:9px}.nav nav{margin-left:auto;display:flex;gap:clamp(16px,2.4vw,34px)}.nav nav a{font-size:13px;color:var(--soft);padding:8px 0;transition:color .25s}.nav nav a:hover{color:var(--ink)}.nav-cv{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:100px;padding:9px 16px;font-size:13px;transition:background .25s,color .25s,border-color .25s}.nav-cv:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.theme{display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid var(--line);border-radius:50%;background:none;color:var(--soft);transition:color .25s,border-color .25s,transform .5s var(--ease)}.theme:hover{color:var(--ink);border-color:var(--accent);transform:rotate(35deg)}.menu-cv{display:none}.logo-mark{flex:none;transition:transform .5s var(--ease)}.wordmark:hover .logo-mark{transform:rotate(-8deg)}.lang{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:100px;flex:none}.lang button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;border-radius:100px;padding:5px 10px 5px 7px;font-size:11px;font-weight:500;letter-spacing:.1em;line-height:1;color:var(--soft);transition:color .25s,background .25s}.lang button:hover{color:var(--ink)}.lang button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.lang svg{width:17px;height:12px;border-radius:2px;flex:none}.lang button:not([aria-pressed=true]) svg{opacity:.55;filter:saturate(.5)}.menu-toggle{display:none;width:44px;height:44px;place-items:center;border:0;background:none;margin-right:-10px}.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:120px var(--pad) clamp(28px,5vh,56px);overflow:clip}.hero-photo{position:absolute;right:max(0px,2vw);bottom:0;height:min(94svh,62vw);width:auto;max-width:none;mix-blend-mode:lighten;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 30%),linear-gradient(to top,transparent 0,#000 24%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 30%),linear-gradient(to top,transparent 0,#000 24%);mask-composite:intersect}:root[data-theme=light] .hero-photo{mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none;right:var(--pad);bottom:auto;top:clamp(96px,13svh,140px);height:min(62svh,46vw);border-radius:18px;box-shadow:0 40px 80px -40px var(--shadow)}:root[data-theme=light] .hero h1{font-size:clamp(60px,10.2vw,180px)}.hero-body{position:relative;z-index:1;width:100%}.status{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:100px;padding:8px 16px 8px 13px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:color-mix(in srgb,var(--bg) 60%,transparent)}.status i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.status i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid var(--accent);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}.hero h1{font-size:clamp(60px,12vw,200px);line-height:.9;letter-spacing:-.055em;margin-top:clamp(18px,3vh,32px)}.hero h1 .curtain{padding-right:.1em}.hero h1 .serif{font-size:1.06em;letter-spacing:-.03em}.hero-foot{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,460px) 1fr;gap:clamp(20px,4vw,64px);align-items:end;margin-top:clamp(28px,5vh,60px);padding-top:22px;border-top:1px solid var(--line)}.hero-role{font:500 clamp(17px,1.5vw,21px)/1.3 var(--display);letter-spacing:-.02em}.hero-role span{display:block;margin-top:8px;font:400 11px/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}.hero-intro{font-size:clamp(15px,1.15vw,17px);color:var(--ink-2)}.cta{justify-self:end;display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:var(--on-accent);border-radius:100px;padding:15px 24px;font-size:14px;font-weight:500;white-space:nowrap;transition:background .25s}.cta:hover{background:var(--ink)}.hero-actions{justify-self:end;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px}.cta-ghost{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:100px;padding:14px 20px;font-size:14px;white-space:nowrap;transition:border-color .25s,color .25s}.cta-ghost svg{color:var(--accent-ink);transition:transform .4s var(--ease)}.cta-ghost:hover{border-color:var(--accent);color:var(--accent-ink)}.cta-ghost:hover svg{transform:translateY(3px)}.cta svg{transition:transform .4s var(--ease)}.cta:hover svg{transform:translateY(3px)}.section-head{max-width:900px;margin-bottom:clamp(40px,7vh,84px)}.section-head h2{font-size:clamp(34px,5vw,76px);line-height:1.02;margin-top:16px}.section-head>p{max-width:520px;margin-top:22px;color:var(--soft)}.crate{padding:clamp(80px,13vh,160px) var(--pad);overflow:clip;--cw:min(560px,36vw)}.crate-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}.sleeves{display:grid;place-items:center;justify-items:start;padding-left:54px;height:calc(var(--cw) * .7 + 130px)}.sleeve{grid-area:1/1;width:var(--cw);padding:0;border:0;border-radius:10px;overflow:hidden;background:var(--surface);text-align:left;display:flex;flex-direction:column;box-shadow:0 0 0 1px var(--line),0 24px 50px -20px var(--shadow);transition:transform .7s var(--ease),z-index 0s .1s;position:relative}.sleeve img{width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;object-position:top}.sleeve:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);opacity:.6;transition:opacity .5s;pointer-events:none}.sleeve.front:after{opacity:0}.sleeve:not(.front):hover:after{opacity:.35}.sleeve-label{display:flex;justify-content:space-between;align-items:center;gap:10px;height:30px;padding:0 12px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line);white-space:nowrap}.sleeve-label b{font-weight:500;color:var(--accent-ink);margin-right:6px}.sleeve-open{display:inline-flex;align-items:center;gap:4px;color:var(--soft);transition:color .25s}.sleeve.front:hover .sleeve-open{color:var(--accent-ink)}.crate-text{min-height:380px}.crate-copy h3{font-size:clamp(38px,4.4vw,68px);line-height:1;margin:16px 0 18px}.crate-summary{max-width:420px;font-size:clamp(16px,1.25vw,18px);color:var(--ink-2)}.results{display:flex;flex-wrap:wrap;gap:12px 44px;margin:28px 0 0}.results dt{font:500 clamp(34px,3.4vw,52px)/1 var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.results dd{margin-top:6px;font-size:13px;color:var(--soft)}.crate-actions{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:30px}.text-link{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:10px 0;font-size:14px;border-bottom:1px solid var(--accent);transition:color .25s}.text-link:hover{color:var(--accent-ink)}.text-link.soft{color:var(--soft);border-color:var(--line)}.text-link.soft:hover{color:var(--ink)}.text-link svg{transition:transform .4s var(--ease)}.text-link:hover svg{transform:translate(3px,-3px)}.crate-controls{display:flex;align-items:center;gap:4px;margin-top:34px;padding-top:18px;border-top:1px solid var(--line)}.crate-controls button{min-width:44px;height:44px;border:0;background:none;display:grid;place-items:center;font-size:12px;letter-spacing:.12em;color:var(--soft);border-bottom:1px solid transparent;transition:color .25s}.crate-controls button:hover{color:var(--ink)}.crate-controls .pick[aria-pressed=true]{color:var(--ink);border-color:var(--accent)}.crate-controls .arrow:last-child{margin-left:auto}.crate-controls .arrow:first-child{margin-right:8px}.marquee{position:relative;overflow:hidden;border-block:1px solid var(--line);padding:18px 0}.marquee-track{display:flex;width:max-content;animation:marquee var(--marquee-dur,40s) linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-set{display:flex;flex:none}.marquee-set span{display:inline-flex;align-items:center;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);white-space:nowrap}.marquee-set i{font-style:normal;color:var(--accent-ink);margin:0 clamp(18px,2.4vw,34px)}@keyframes marquee{to{transform:translate(calc(-1 * var(--marquee-shift,25%)))}}.chapter-buttons{display:flex;gap:4px;margin-top:14px}.chapter-buttons button{min-width:44px;height:44px;border:0;border-bottom:1px solid var(--line);background:none;font-size:12px;letter-spacing:.12em;color:var(--soft);transition:color .25s,border-color .25s}.chapter-buttons button:hover{color:var(--ink)}.chapter-buttons button[aria-pressed=true]{color:var(--ink);border-color:var(--accent)}.node circle{fill:var(--bg);stroke:var(--node);stroke-width:1.5;transition:fill .35s,stroke .35s,r .35s}.node text{font:500 13px var(--body);letter-spacing:.12em;text-transform:uppercase;fill:var(--soft);transition:fill .35s}.node.done circle{fill:var(--ink);stroke:var(--ink)}.node.on circle{fill:var(--accent);stroke:var(--accent)}.node.on text{fill:var(--ink)}.contact{padding:clamp(90px,14vh,180px) var(--pad) 28px;border-top:1px solid var(--line)}.contact h2{font-size:clamp(38px,7vw,124px);line-height:.98;letter-spacing:-.05em;margin:18px 0 clamp(36px,6vh,70px)}.contact h2 em{display:block;color:var(--accent-ink);letter-spacing:-.03em}.mail{display:inline-block;max-width:100%;font:500 clamp(18px,4.4vw,72px)/1.15 var(--display);letter-spacing:-.04em;overflow-wrap:anywhere;padding-bottom:.12em;background:linear-gradient(var(--accent),var(--accent)) 0 100%/100% 1px no-repeat;transition:color .3s,background-size .5s var(--ease)}.mail:hover{color:var(--accent-ink);background-size:100% 3px}.contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(30px,5vh,56px)}.cv-button{display:inline-flex;align-items:center;gap:14px;background:var(--accent);color:var(--on-accent);border-radius:100px;padding:14px 26px 14px 22px;font-weight:500;transition:background .25s,color .25s,transform .4s var(--ease)}.cv-button span{display:grid;line-height:1.15;font-size:16px}.cv-button small{font-size:11px;font-weight:400;letter-spacing:.06em;opacity:.75}.cv-button svg{transition:transform .4s var(--ease)}.cv-button:hover{background:var(--ink);color:var(--bg)}.cv-button:hover svg{transform:translateY(3px)}.social{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 22px 0 18px;border:1px solid var(--line);border-radius:100px;font-size:15px;color:var(--ink);transition:border-color .25s,color .25s,background .25s}.social svg{color:var(--accent-ink);transition:color .25s}.social:hover{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.social:hover svg{color:var(--on-accent)}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;margin-top:clamp(70px,12vh,140px);padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--soft)}.foot a{color:var(--ink)}.foot a:hover{color:var(--accent-ink)}.about-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,80px);align-items:start}.about-main{min-width:0}.fan{position:sticky;top:110px;justify-self:center;width:calc(var(--card) * 3.96);max-width:100%;height:calc(var(--card) * 1.34 + 96px);--card:clamp(140px,10.6vw,250px);perspective:1400px;display:grid;place-items:center;margin-top:clamp(28px,4vh,44px)}.card{grid-area:1/1;width:var(--card);aspect-ratio:3/4;padding:0;border:0;background:none;border-radius:14px;cursor:pointer;transform:translate(40vw,30vh) rotate(25deg) scale(.85);opacity:0;transition:transform 1.1s cubic-bezier(.16,1,.3,1) calc(var(--i) * .14s),opacity .55s ease-out calc(var(--i) * .14s)}.fan.dealt .card{opacity:1;transform:translate(calc(var(--off) * var(--card) * .74)) translateY(calc(var(--abs) * var(--abs) * 11px)) rotateY(calc(var(--off) * -7deg)) rotate(calc(var(--off) * 3.2deg))}.card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1)}.card-front,.card-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 0 0 1px var(--line),0 30px 60px -24px var(--shadow)}.card-front img{width:100%;height:100%;object-fit:cover}.card-back{transform:rotateY(180deg);background:var(--surface);box-shadow:0 0 0 1px var(--accent),0 30px 60px -24px var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center}.card-back svg{color:var(--accent-ink);margin-bottom:4px}.card-back b{font:500 clamp(15px,1.3vw,19px)/1.2 var(--display);letter-spacing:-.02em;color:var(--accent-ink)}.card-back span{font-size:13px;line-height:1.45;color:var(--ink)}.card-back small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:4px}.card.flipped .card-inner{transform:rotateY(180deg)}@media(hover:hover){.card:hover{z-index:20!important}.card:hover .card-inner{transform:rotateY(180deg)}}.all-projects{position:relative;display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding:13px 22px;border-radius:100px;border:1px solid var(--accent);color:var(--ink);font-size:14px;font-weight:500;transition:background .25s,color .25s;animation:all-pulse 2.2s ease-out infinite}.all-projects svg{color:var(--accent-ink);animation:all-nudge 2.2s var(--ease) infinite;transition:color .25s}.all-projects:hover,.all-projects:focus-visible{background:var(--accent);color:var(--on-accent);animation-play-state:paused}.all-projects:hover svg,.all-projects:focus-visible svg{color:var(--on-accent)}@keyframes all-pulse{0%{box-shadow:0 0 #e18c7a8c}70%{box-shadow:0 0 0 14px #e18c7a00}to{box-shadow:0 0 #e18c7a00}}@keyframes all-nudge{0%,55%,to{transform:translate(0)}75%{transform:translate(5px)}}.nav nav a[aria-current=page]{color:var(--ink)}.nav nav a.nav-projects{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:100px;background:var(--accent);color:var(--on-accent);font-weight:500;transition:background .25s,transform .4s var(--ease)}.nav nav a.nav-projects:hover{background:var(--ink);color:var(--bg)}.nav nav a.nav-projects svg{transition:transform .4s var(--ease)}.nav nav a.nav-projects:hover svg{transform:translate(2px,-2px)}.nav nav a.nav-projects[aria-current=page]{background:var(--ink);color:var(--bg)}.nav nav{align-items:center}.about{padding:clamp(80px,13vh,160px) var(--pad);overflow-x:clip}.tl-block{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:clamp(24px,5vw,80px);max-width:1180px;padding-top:clamp(28px,4vh,44px);border-top:1px solid var(--line)}.tl-block+.tl-block{margin-top:clamp(48px,8vh,90px)}.tl-block>h3{font:500 clamp(24px,2.4vw,34px)/1.1 var(--display);letter-spacing:-.03em}.tl-block.wide{margin-top:clamp(56px,9vh,110px)}.building h3 .eyebrow{margin-bottom:10px}.contrib-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:22px}.contrib-total strong{font:500 clamp(40px,4.6vw,68px)/1 var(--display);letter-spacing:-.05em;color:var(--accent-ink);font-variant-numeric:tabular-nums}.contrib-total>span{color:var(--soft);font-size:15px}.contrib{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(var(--weeks),minmax(0,1fr));gap:clamp(2px,.28vw,4px);max-width:900px}.contrib i,.contrib-legend i{display:block;aspect-ratio:1;border-radius:22%;background:color-mix(in srgb,var(--ink) 9%,transparent)}.contrib i.void{background:none}.contrib i[data-l="1"],.contrib-legend i[data-l="1"]{background:color-mix(in srgb,var(--accent) 35%,var(--bg))}.contrib i[data-l="2"],.contrib-legend i[data-l="2"]{background:color-mix(in srgb,var(--accent) 58%,var(--bg))}.contrib i[data-l="3"],.contrib-legend i[data-l="3"]{background:color-mix(in srgb,var(--accent) 80%,var(--bg))}.contrib i[data-l="4"],.contrib-legend i[data-l="4"]{background:var(--accent)}.contrib-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;max-width:900px;margin-top:18px}.contrib-legend{display:inline-flex;align-items:center;gap:4px;font-size:11px;letter-spacing:.06em;color:var(--soft)}.contrib-legend i{width:11px}.contrib-legend i:first-of-type{margin-left:6px}.contrib-legend i:last-of-type{margin-right:6px}.contrib-note{color:var(--soft);max-width:48ch;margin-bottom:14px}.hobbies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(30px,5vh,52px) clamp(32px,6vw,96px);max-width:900px}.hobbies h4{font:500 clamp(19px,1.7vw,24px)/1.2 var(--display);letter-spacing:-.02em;margin:0 0 8px}.hobbies p{color:var(--soft);font-size:15px;max-width:40ch}.hobbies b{display:block;margin-top:10px;font-weight:500;font-size:15px;color:var(--accent-ink)}.hobbies b+b{margin-top:2px}.tl{margin:0;padding:0 0 0 clamp(24px,3vw,40px);border-left:1px solid var(--line);list-style:none}.tl li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 32px;padding-bottom:clamp(32px,5vh,52px)}.tl li:last-child{padding-bottom:0}.tl i{position:absolute;left:calc(clamp(24px,3vw,40px)*-1 - 6px);top:7px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:1px solid var(--soft);box-shadow:0 0 0 5px var(--bg)}.tl .now i{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px var(--bg),0 0 16px 2px #e18c7a66}.tl h4{font:500 clamp(19px,1.7vw,24px)/1.2 var(--display);letter-spacing:-.02em;margin:0}.tl-role{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(17px,1.4vw,20px);color:var(--ink-2);margin-top:4px}.tl-note{font-size:14px;color:var(--soft);margin-top:10px;max-width:52ch}.tl time{font-size:13px;letter-spacing:.06em;color:var(--soft);white-space:nowrap;padding-top:5px;font-variant-numeric:tabular-nums}.tech-block .marquee{border:0;padding:0;align-self:center;min-width:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.tech-block .marquee-set span{font:500 clamp(22px,2.6vw,38px)/1.2 var(--display);letter-spacing:-.03em;text-transform:none;color:var(--ink)}.tech-block .marquee-set i{margin:0 clamp(16px,2vw,30px);font-size:.6em}.tech-block .marquee-set .logo{display:inline-grid;place-items:center;height:clamp(40px,4vw,56px);margin:0 clamp(18px,2.4vw,38px);color:var(--ink-2);transition:color .25s,transform .4s var(--ease)}.tech-block .marquee-set .logo svg{height:100%;width:auto;aspect-ratio:1;fill:currentColor;max-width:none}.tech-block .marquee-set .logo:hover{color:var(--accent-ink);transform:translateY(-3px)}.pp{padding:clamp(130px,20vh,210px) var(--pad) clamp(60px,10vh,120px)}.pp-head h1{font-size:clamp(40px,6.6vw,104px);line-height:1;letter-spacing:-.05em;margin-top:16px}.pp-item{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;padding:clamp(40px,7vh,84px) 0;border-top:1px solid var(--line)}.pp-item.flip{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)}.pp-item.flip .pp-cover{order:2}.pp-cover{position:relative;display:block;width:100%;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 30px 70px -30px var(--shadow)}.pp-cover img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .9s var(--ease),filter .5s}.pp-cover:hover img,.pp-cover:focus-visible img{transform:scale(1.025);filter:brightness(.82)}.pp-cover span{position:absolute;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--on-accent);border-radius:100px;padding:11px 16px;font-size:13px;font-weight:500;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s var(--ease)}.pp-cover:hover span,.pp-cover:focus-visible span{opacity:1;transform:none}.pp-copy h2{font-size:clamp(34px,4.2vw,64px);line-height:1;margin:16px 0 18px}.pp-copy>p{color:var(--ink-2);font-size:clamp(15px,1.15vw,17px);max-width:52ch}.pp-stack{display:flex;flex-wrap:wrap;gap:6px 0;margin:24px 0 0;padding:0;list-style:none;font-size:13px;color:var(--soft)}.pp-stack li:not(:last-child):after{content:"·";color:var(--accent-ink);margin:0 10px}.pp-more{margin-top:clamp(40px,7vh,80px);padding-top:28px;border-top:1px solid var(--line);color:var(--soft)}.pp-more a{display:inline-flex;align-items:center;gap:6px;color:var(--ink);border-bottom:1px solid var(--accent)}.pp-more a:hover{color:var(--accent-ink)}@media(max-width:1700px){.about-main .tl-block{grid-template-columns:1fr;gap:26px}}@media(max-width:1100px){.about-cols{grid-template-columns:1fr}.fan{position:relative;top:auto;order:-1;margin:0 auto clamp(20px,4vh,40px);--card:clamp(160px,21vw,230px)}}@media(max-width:900px){.fan{width:100%;--card:min(33vw,180px);height:calc(var(--card) * 1.34 + 70px)}.fan.dealt .card{transform:translate(calc(var(--off) * var(--card) * .44)) translateY(calc(var(--abs) * var(--abs) * 7px)) rotateY(calc(var(--off) * -5deg)) rotate(calc(var(--off) * 3deg))}.tl-block{grid-template-columns:1fr;gap:22px}.pp-item,.pp-item.flip{grid-template-columns:1fr;gap:24px}.pp-item.flip .pp-cover{order:0}.pp-cover span{opacity:1;transform:none}}@media(max-width:560px){.tl li{grid-template-columns:1fr}.tl time{order:-1;padding:0}}@media(max-width:560px){.wordmark{white-space:nowrap}.nav-cv{padding:9px}.nav-cv span{display:none}}@media(prefers-reduced-motion:reduce){.all-projects,.all-projects svg{animation:none}.card,.card-inner,.pp-cover img{transition:none}}@media(max-width:1100px){.crate{--cw:min(420px,36vw)}.hero-foot{grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr) auto}}@media(max-width:900px){.crate{--cw:min(420px,58vw)}.sleeves{justify-items:center;padding-left:0}.crate-grid{grid-template-columns:1fr;gap:30px}.crate-text{min-height:0}}@media(max-width:760px){.nav{padding:8px var(--pad);gap:12px}.nav nav{display:none;position:fixed;inset:60px 0 auto 0;margin:0;flex-direction:column;gap:0;padding:8px var(--pad) 24px;background:var(--bg);border-bottom:1px solid var(--line)}.nav.menu-open{background:var(--bg)}.nav.menu-open nav{display:flex}.nav nav a{font:500 28px/1.2 var(--display);letter-spacing:-.03em;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--line)}.lang{margin-left:auto}.lang button{padding:10px 12px}.nav-cv{padding:8px 12px;font-size:12px}.menu-toggle{display:grid}.hero{display:block;min-height:0;padding:0 var(--pad) 44px}.hero-photo{position:relative;right:auto;display:block;width:calc(100% + var(--pad) * 2);height:58svh;min-height:340px;margin:0 calc(var(--pad) * -1) -15svh;object-fit:cover;object-position:50% 10%;-webkit-mask-image:linear-gradient(to top,transparent 0,#000 46%);mask-image:linear-gradient(to top,transparent 0,#000 46%);-webkit-mask-composite:source-over;mask-composite:add}.hero h1{font-size:clamp(52px,18.5vw,140px)}.hero-foot{grid-template-columns:1fr;gap:18px;margin-top:26px}.cta{justify-self:start}.crate{--cw:min(300px,62vw)}.sleeves{height:calc(var(--cw) * .7 + 90px)}.sleeve-label{height:26px;padding:0 9px;font-size:9px}.sleeve-open{display:none}.results{gap:12px 32px}.hide-s{display:none}.foot{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sleeve,.sleeve:after{transition:none}.status i:after{animation:none;opacity:0}.marquee-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;padding:0 var(--pad)}.marquee-set+.marquee-set{display:none}.marquee-set{flex-wrap:wrap;justify-content:center;row-gap:8px}.marquee-set span:last-child i{display:none}}@media(max-width:760px){.nav nav{align-items:stretch}.nav nav a.nav-projects{display:flex;justify-content:space-between;align-items:center;background:none;color:var(--accent-ink);border-radius:0;padding:14px 0;font-weight:500}.nav nav a.nav-projects svg{width:22px;height:22px}.nav nav a.nav-projects[aria-current=page]{background:none;color:var(--accent-ink)}}@media(max-width:760px){.nav nav a.menu-cv{display:flex;justify-content:space-between;align-items:center;color:var(--soft);font-size:20px}:root[data-theme=light] .hero{padding-top:84px}:root[data-theme=light] .hero-photo{top:auto;right:auto;width:100%;height:52svh;min-height:300px;margin:0 0 28px;border-radius:16px;object-position:50% 12%;-webkit-mask-image:none;mask-image:none}:root[data-theme=light] .hero h1{font-size:clamp(52px,18.5vw,140px)}}@media(max-width:560px){.nav-cv{display:none}}@media(max-width:900px){.hero-actions{justify-self:start;justify-content:flex-start}}@media(max-width:560px){.hobbies{grid-template-columns:1fr}.contact-links{gap:10px}.cv-button{width:100%;justify-content:center}.social{flex:1;justify-content:center;padding:0 12px}}@media(max-width:560px){.nav{gap:8px}.lang button{padding:7px 8px}.lang button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.lang button:not([aria-pressed=true]) svg{opacity:.7}}html.case-open{overflow:hidden}.curtain{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}.blinds{position:relative;overflow:hidden}.blinds img{width:100%;height:100%;object-fit:cover;display:block}.blinds i{position:absolute;left:0;right:0;background:var(--blind,var(--case-bg));transform-origin:bottom}.case-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--case-bg);color:var(--case-ink);overflow:hidden}.case-shell.case-morph{inset:auto;top:0;left:0;width:100%;height:100%}.case-scroll{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;max-width:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.case-morph .case-scroll{width:100vw;height:100dvh;max-width:none}.case-bar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:16px var(--case-pad);font-size:11px;letter-spacing:.12em;text-transform:uppercase;background:color-mix(in srgb,var(--case-bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--case-line)}.case-close{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--case-line);background:none;color:inherit;border-radius:100px;padding:9px 16px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.case-close:hover{background:var(--case-ink);color:var(--case-bg)}.case-cover{margin:0;padding:clamp(16px,3vw,40px) var(--case-pad) 0}.case-cover img{width:100%;height:auto;max-height:78vh;object-fit:cover;object-position:top;border-radius:var(--case-radius);border:1px solid var(--case-line);display:block}.case-head{padding:clamp(36px,6vw,80px) var(--case-pad) 0;display:grid;grid-template-columns:1fr auto;gap:12px 40px;align-items:end}.case-kind{grid-column:1/-1;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--case-accent)}.case-head h2{font:var(--case-display);font-size:clamp(52px,9vw,140px);line-height:.95;letter-spacing:-.045em;margin:0}.case-summary{grid-column:1;max-width:560px;font-size:clamp(17px,1.6vw,22px);line-height:1.45;color:var(--case-soft)}.case-link{grid-column:2;grid-row:2/4;align-self:end;display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:100px;background:var(--case-ink);color:var(--case-bg);font-size:14px;white-space:nowrap}.case-link:hover{background:var(--case-accent);color:var(--case-on-accent,var(--case-bg))}.case-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(30px,6vw,100px);padding:clamp(40px,6vw,90px) var(--case-pad)}.case-shell h3{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--case-soft);margin:0 0 18px;padding-top:14px;border-top:1px solid var(--case-line)}.case-grid p{font-size:clamp(16px,1.35vw,19px);line-height:1.65;margin:0}.case-stack{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:24px 0 0}.case-stack li{border:1px solid var(--case-line);border-radius:100px;padding:7px 14px;font-size:13px}.case-decisions{padding:0 var(--case-pad)}.case-decisions ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px)}.case-decisions b{font-size:11px;font-weight:500;color:var(--case-accent);letter-spacing:.1em}.case-decisions h4{font:var(--case-display);font-size:clamp(22px,2.2vw,30px);line-height:1.12;letter-spacing:-.02em;margin:14px 0 12px}.case-decisions p{font-size:15px;line-height:1.65;color:var(--case-soft);margin:0}.case-shots{display:grid;gap:clamp(14px,2vw,28px);padding:clamp(40px,6vw,90px) var(--case-pad) 0;grid-template-columns:1fr 1fr}.case-shots.shots-poolscope{grid-template-columns:minmax(0,340px);justify-content:center}.case-shots figure{margin:0}.case-shots img{width:100%;height:auto;border-radius:var(--case-radius);border:1px solid var(--case-line);display:block}.case-shots figcaption{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--case-soft);margin-top:10px}.case-results{padding:clamp(40px,6vw,90px) var(--case-pad)}.case-results>div{display:flex;flex-wrap:wrap;gap:clamp(30px,6vw,110px)}.case-results p{margin:0;display:flex;flex-direction:column;gap:6px}.case-results strong{font:var(--case-display);font-size:clamp(64px,10vw,150px);line-height:.95;letter-spacing:-.05em;color:var(--case-accent);font-variant-numeric:tabular-nums}.case-results p>span{font-size:15px;color:var(--case-soft)}.case-results small{display:block;margin-top:22px;font-size:12px;color:var(--case-soft)}.case-next{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;border:0;border-top:1px solid var(--case-line);background:none;color:inherit;text-align:left;padding:clamp(28px,4vw,56px) var(--case-pad)}.case-next span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--case-soft)}.case-next strong{font:var(--case-display);font-size:clamp(30px,5vw,72px);letter-spacing:-.04em;display:inline-flex;align-items:center;gap:12px;transition:color .3s}.case-next strong svg{width:.7em;height:.7em;transition:transform .4s cubic-bezier(.22,1,.36,1)}.case-next:hover strong{color:var(--case-accent)}.case-next:hover strong svg{transform:translate(6px,-6px)}@media(max-width:760px){.case-head{grid-template-columns:1fr}.case-link{grid-column:1;grid-row:auto;justify-self:start;margin-top:10px}.case-grid,.case-decisions ol,.case-shots{grid-template-columns:1fr}.case-shots.shots-poolscope{grid-template-columns:minmax(0,260px)}.case-next{flex-direction:column;align-items:flex-start}}
