:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0e10;--surface:#151517;--surface-2:#1c1c1f;--text:#ededec;--text-muted:#a3a3a1;--text-subtle:#8b8b88;--border:#252527;--border-strong:#363639;--accent:#74aaff;--accent-hover:#93bdff;--accent-soft:#74aaff21;--on-accent:#0e0e10;--success:#3cc68a;--danger:#ef6a6a;--shadow:0 1px 2px #0006, 0 12px 32px -12px #0009;--content:1240px;--content-wide:1472px;--gutter:clamp(16px, 4vw, 64px);--section-y:clamp(80px, 10vw, 136px);--radius-sm:8px;--radius:14px;--radius-lg:20px;--header-h:70px;--ease:cubic-bezier(.22, 1, .36, 1);--font-body:var(--font-body-src), system-ui, sans-serif;--font-mono:var(--font-jbmono), ui-monospace, monospace}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f7f5;--surface:#fff;--surface-2:#efefec;--text:#151515;--text-muted:#5c5c59;--text-subtle:#6b6b67;--border:#e2e2de;--border-strong:#cdcdc8;--accent:#1e64d2;--accent-hover:#1955b3;--accent-soft:#1e64d217;--on-accent:#fff;--success:#1f9d61;--danger:#d84343;--shadow:0 1px 2px #14141e0d, 0 12px 32px -14px #14143c2e}::view-transition-old(root){animation-duration:.35s;animation-timing-function:var(--ease)}::view-transition-new(root){animation-duration:.35s;animation-timing-function:var(--ease)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}html.lenis{scroll-behavior:auto}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:1rem;line-height:1.65;overflow-x:clip}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}h1,h2,h3,h4{text-wrap:balance;font-weight:600;line-height:1.15}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip-link{left:var(--gutter);z-index:100;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);padding:10px 16px;font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:12px}.container{width:100%;max-width:calc(var(--content) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.hero .container{max-width:calc(var(--content-wide) + 2 * var(--gutter))}.section{padding-block:var(--section-y) calc(var(--section-y) + 8px);position:relative}.section+.section:before{content:"";background:var(--border);transform-origin:0;height:1px;position:absolute;inset:0 0 auto}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.kicker{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:12px;margin-bottom:20px;font-size:.8rem;display:flex}.kicker span{color:var(--accent);align-items:center;gap:12px;display:inline-flex}.kicker span:after{content:"";opacity:.6;transform-origin:0;background:currentColor;width:28px;height:1px}.section-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:24px 48px;margin-bottom:clamp(40px,6vw,72px);display:grid}.section-title{letter-spacing:-.03em;font-size:clamp(2rem,2.2vw + 1.3rem,3.4rem);line-height:1.1}.section-intro{color:var(--text-muted);max-width:46ch}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){.reveal:not([data-revealed]){opacity:0;filter:blur(8px);translate:0 24px}.reveal[data-revealed=in]{transition:opacity .8s cubic-bezier(.22,1,.36,1),translate .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s)}.section+.section:before{transition:transform 1.2s var(--ease)}.section+.section:not([data-revealed]):before{transform:scaleX(0)}.kicker span:after{transition:transform .7s var(--ease) calc(var(--reveal-delay,0s) + .2s)}.reveal:not([data-revealed]) .kicker span:after{transform:scaleX(0)}}.btn{white-space:nowrap;cursor:pointer;height:46px;transition:background-color .2s, border-color .2s, color .2s, transform .2s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:.95rem;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{border-color:var(--border-strong);background:var(--surface)}.btn-secondary:hover{border-color:var(--text-subtle)}.btn svg{flex-shrink:0}.dkb-loader{vertical-align:middle;flex-shrink:0}.dkb-loader--tick path{fill:currentColor;animation:1s ease-in-out infinite dkb-tick}.dkb-loader--tick .b{animation-delay:-.5s}@keyframes dkb-tick{50%{opacity:.25}}@keyframes dkb-pulse{50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.dkb-loader path[class]{animation:2s ease-in-out infinite dkb-pulse}}.link-arrow{color:var(--text);transition:color .2s, gap .2s var(--ease);align-items:center;gap:6px;font-weight:600;display:inline-flex}.link-arrow:hover{color:var(--accent);gap:9px}.tag{border:1px solid var(--border);background:var(--surface);height:26px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;border-radius:6px;align-items:center;padding:0 10px;font-size:.72rem;display:inline-flex}.tags{flex-wrap:wrap;gap:6px;display:flex}:root{--primary:var(--accent);--primary-glow:#74aaff59;--surface-hover:var(--surface-2);--glass:#111117c7;--font-heading:var(--font-body);--transition:all .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--primary-glow:#1e64d22e;--glass:#ffffffd1}#header{z-index:1000;width:100%;transition:var(--transition);background:0 0;border-bottom:1px solid #0000;position:fixed;top:0;left:0}#header.scrolled{background:var(--glass);-webkit-backdrop-filter:blur(10px)saturate(150%);backdrop-filter:blur(10px)saturate(150%);border-bottom-color:var(--border)}#header.menu-open{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}.nav-pill{justify-content:space-between;align-items:center;padding:16px 0;display:flex}.logo{min-width:0;font-size:1.2rem;font-weight:800;font-family:var(--font-heading);color:var(--text);align-items:center;gap:8px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.logo-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.logo-mark{flex-shrink:0}.logo:hover{transform:scale(1.03)}.nav-links{gap:8px;list-style:none;display:flex}.nav-link{color:var(--text-muted);transition:var(--transition);border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:500;position:relative}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:3px;left:16px;right:16px}.locale-tab{z-index:90;position:fixed;top:50%;left:0;translate:0 -50%}@media (max-width:1399px){.locale-tab{display:none}}@media (min-width:1400px){.locale-compact{display:none}}.locale-tab-trigger{writing-mode:vertical-rl;border:1px solid var(--border);background:var(--glass);-webkit-backdrop-filter:blur(10px)saturate(150%);backdrop-filter:blur(10px)saturate(150%);color:var(--text);font:500 .78rem/1.6 var(--font-body);cursor:pointer;transition:var(--transition);border-left:none;border-radius:0 10px 10px 0;align-items:center;gap:8px;padding:14px 9px;display:flex}.locale-tab-trigger:hover,.locale-tab-trigger[aria-expanded=true]{border-color:var(--primary);color:var(--primary)}.locale-tab-label{color:var(--text-muted)}.locale-tab-flag{font-size:.95rem;line-height:1}.locale-compact{position:relative}.locale-compact-trigger{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:.72rem;font-weight:600;display:flex}.locale-compact-trigger:hover,.locale-compact-trigger[aria-expanded=true]{border-color:var(--primary);color:var(--primary)}.locale-dropdown-menu{z-index:50;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-strong);flex-direction:column;gap:1px;min-width:220px;padding:6px;display:flex;position:absolute;top:50%;left:calc(100% + 8px);translate:0 -50%;box-shadow:0 16px 32px -12px #0006}.locale-compact .locale-dropdown-menu{min-width:200px;top:calc(100% + 8px);left:auto;right:0;translate:none}.locale-dropdown-item{width:100%;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:.85rem;font-weight:500;display:flex}.locale-dropdown-item:hover{color:var(--text);background:var(--surface-hover)}.locale-dropdown-item.active{color:var(--primary)}.locale-dropdown-item-flag{font-size:1.05rem;line-height:1}.locale-dropdown-item-name{flex:1}.locale-dropdown-item-code{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-subtle);font-size:.68rem;font-weight:600}.locale-dropdown-item-check{color:var(--primary);flex-shrink:0}.nav-actions{z-index:1001;align-items:center;gap:10px;display:flex}.theme-toggle{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;width:38px;height:38px;transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{border-color:var(--primary);color:var(--primary);transform:rotate(15deg)}.theme-toggle-icon{display:flex}.theme-toggle-icon-pop{animation:.4s cubic-bezier(.34,1.56,.64,1) theme-icon-pop}@keyframes theme-icon-pop{0%{opacity:0;transform:rotate(-90deg)scale(.4)}to{opacity:1;transform:rotate(0)scale(1)}}.menu-toggle{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;z-index:1001;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:none}.mobile-menu{z-index:999;background:var(--bg);visibility:hidden;opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:32px;transition:opacity .25s,visibility 0s .25s;display:flex;position:fixed;inset:0}#header.menu-open .mobile-menu{visibility:visible;opacity:1;transition:opacity .25s}.mobile-menu a{font-family:var(--font-heading);color:var(--text);align-items:center;gap:8px;font-size:1.6rem;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:no-preference){#header.menu-open .mobile-menu a{animation:menu-link-in .5s var(--ease) backwards;animation-delay:calc(var(--n) * 60ms)}}@keyframes menu-link-in{0%{opacity:0;translate:0 16px}}footer.site-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);margin-top:auto;padding:40px 0;font-size:.85rem;position:relative}.footer-socials{justify-content:center;gap:18px;margin-bottom:22px;display:flex}.social-link{color:var(--text-muted);border:1px solid var(--border);background:var(--surface);width:42px;height:42px;transition:var(--transition);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.social-link:hover{color:var(--primary);border-color:var(--primary);box-shadow:0 8px 20px -8px var(--primary-glow);transform:translateY(-3px)}@media (max-width:960px){.nav-links{display:none}.menu-toggle{display:flex}}main{padding-top:var(--header-h)}.hero{isolation:isolate;padding-block:clamp(40px,6vw,88px) clamp(16px,2vw,24px);position:relative;overflow:clip}.hero-bg{z-index:-1;--grid:color-mix(in srgb, var(--border) 50%, transparent);background:linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 56px 56px, linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 56px 56px;position:absolute;inset:0}.hero-grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;gap:clamp(40px,5vw,72px);display:grid}.hero-title{letter-spacing:-.04em;margin-bottom:24px;font-size:clamp(2.2rem,2.6vw + .9rem,4rem);line-height:1.08}.hero-title .accent{color:var(--accent)}.hero-title .word{margin:-.2em -.06em -.16em;padding:.2em .06em .16em;display:inline-block;overflow:clip}.hero-title .word>span{display:inline-block}@media (prefers-reduced-motion:no-preference){.hero-title .word>span{animation:word-rise .9s var(--ease) backwards;animation-delay:calc(.1s + var(--i) * 45ms)}.intro{animation:intro-in .9s var(--ease) backwards;animation-delay:var(--at,0s)}.shot{animation:shot-in 1.1s var(--ease) backwards}.shot-site{animation-delay:.25s}.shot-mac{animation-delay:.4s}.shot-pos{animation-delay:.55s}.chip{animation:.5s cubic-bezier(.34,1.56,.64,1) backwards chip-pop}.chip-site{animation-delay:.95s}.chip-mac{animation-delay:1.05s}.chip-pos{animation-delay:1.15s}.case-head{animation:intro-in .9s var(--ease) backwards}.case-cover{animation:shot-in 1.1s var(--ease) .15s backwards}}@keyframes word-rise{0%{translate:0 110%}}@keyframes intro-in{0%{opacity:0;filter:blur(8px);translate:0 20px}}@keyframes shot-in{0%{filter:blur(14px);translate:0 48px;scale:.94}}@keyframes chip-pop{0%{opacity:0;scale:.6}}.splash{display:none}html:is([data-splash=hold],[data-splash=go]) .splash{z-index:1100;display:block;position:fixed;inset:0}html[data-splash=go] .splash{pointer-events:none}.splash{--k:3.2}.splash-bg{background:var(--bg);position:absolute;inset:0}.splash-lockup{translate:calc(13.5px * var(--k)) -50%;transform-origin:0 0;color:var(--text);font-family:var(--font-heading);font-size:calc(1.2rem * var(--k));font-weight:800;position:absolute;top:50%;left:50%}.splash-mark{width:calc(27px * var(--k));height:calc(26px * var(--k));margin-top:calc(-13px * var(--k));position:absolute;top:50%;right:100%}.splash-mark path{transform-box:fill-box}.splash-mark path:first-child{transform-origin:50% 100%;opacity:0;scale:1 0}.splash-mark path:last-child{opacity:0}.splash-word{margin-left:calc(4px * var(--k));display:block;overflow-x:clip}.splash-word>span{white-space:nowrap;padding-left:calc(4px * var(--k));display:block;translate:calc(-100% - .12em)}@media (max-width:900px){.splash{--k:2.6}}@media (max-width:560px){.splash{--k:1.8}}html[data-splash] #header .logo{visibility:hidden}html[data-splash=done] #header .logo{visibility:visible}html[data-splash=hold] :is(.hero,#header) *{animation-play-state:paused!important}html[data-splash] #header :is(.nav-links>li,.nav-actions){animation:intro-in .7s var(--ease) backwards;animation-delay:calc(.3s + var(--n,0) * 60ms)}.hero-lead{color:var(--text-muted);max-width:44ch;margin-bottom:32px;font-size:clamp(1.08rem,.5vw + .98rem,1.25rem);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-by{border-top:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 12px;max-width:44ch;margin-top:32px;padding-top:20px;display:flex}.hero-by strong{font-weight:600}.hero-by span{font-family:var(--font-mono);color:var(--text-subtle);font-size:.8rem}.collage{--mx:0;--my:0;aspect-ratio:1.08;width:100%;max-width:760px;margin-inline:auto;position:relative}.shot{background:var(--surface);border:1px solid var(--border-strong);transform:translate3d(calc(var(--mx) * var(--depth) * 1px), calc(var(--my) * var(--depth) * 1px), 0) rotate(var(--rot,0deg));transition:transform .6s var(--ease);margin:0;position:absolute;overflow:hidden;box-shadow:0 30px 60px -24px #0a0a1e73,0 8px 20px -10px #0a0a1e4d}.shot img{width:100%;height:auto;display:block}.shot-site{--rot:-2deg;border-radius:12px;width:80%;top:2%;left:0}.browser-bar{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:6px;height:26px;padding:0 10px;display:flex}.browser-bar span{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.browser-bar em{background:var(--bg);font-family:var(--font-mono);color:var(--text-subtle);border-radius:6px;margin-left:10px;padding:1px 10px;font-size:.62rem;font-style:normal}.shot-mac{--rot:1.5deg;border-radius:10px;width:64%;top:40%;right:0}.shot-pos{--rot:-4deg;border:5px solid #111114;border-radius:22px;width:25%;bottom:0;left:8%}.chip{border:1px solid var(--border);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.7rem;position:absolute}.chip-site{top:0;right:14%}.chip-mac{bottom:4%;right:6%}.chip-pos{bottom:5%;left:36%}.stats{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(48px,6vw,80px);display:grid}.stat{flex-direction:column;gap:4px;padding:24px 24px 0 0;display:flex}.stat+.stat{border-left:1px solid var(--border);padding-left:24px}.stat dt{color:var(--text-muted);order:2;font-size:.92rem}.stat dd{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(2rem,2.5vw + 1rem,3rem);font-weight:600;line-height:1.1}.marquee{border-block:1px solid var(--border);margin-top:clamp(40px,5vw,64px);overflow:clip}.marquee-track{width:max-content;display:flex}.marquee-list{list-style:none;display:flex}.marquee-list li{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;align-items:center;gap:28px;padding:14px 0 14px 28px;font-size:.78rem;display:flex}.marquee-list li:before{content:"";background:var(--accent);width:5px;height:5px}@media (prefers-reduced-motion:no-preference){.marquee-track{animation:marquee calc(var(--count) * 2.4s) linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}}@keyframes marquee{to{translate:-50%}}.services{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(32px,5vw,72px);display:grid}.service{border-top:1px solid var(--border);grid-template-columns:44px minmax(0,1fr);gap:0 12px;padding-block:32px 36px;display:grid}.service-index{font-family:var(--font-mono);color:var(--accent);padding-top:6px;font-size:.8rem}.service h3{letter-spacing:-.02em;margin-bottom:10px;font-size:1.35rem}.service p{color:var(--text-muted)}.service-examples{color:var(--text-subtle);margin-top:14px;font-size:.85rem}.filters{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.filter{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:.9rem;font-weight:500;transition:color .2s,background-color .2s,border-color .2s;display:inline-flex}.filter span{font-family:var(--font-mono);color:var(--text-subtle);font-size:.72rem}.filter:hover{color:var(--text);border-color:var(--border-strong)}.filter[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.filter[aria-pressed=true] span{color:var(--bg);opacity:.7}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px);display:grid}.work-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);transition:border-color .2s, translate .3s var(--ease), box-shadow .3s var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.work-card:hover{border-color:var(--accent);box-shadow:var(--shadow);translate:0 -3px}.work-media{aspect-ratio:16/10;background:var(--surface-2);border-bottom:1px solid var(--border);position:relative;overflow:hidden}.work-media img{object-fit:cover;object-position:top center;transition:transform .8s var(--ease)}.work-card:hover .work-media img{transform:scale(1.03)}.work-body{flex-direction:column;flex:1;padding:20px 22px 22px;display:flex}.work-meta{font-family:var(--font-mono);color:var(--text-subtle);justify-content:space-between;gap:12px;margin-bottom:10px;font-size:.74rem;display:flex}.work-meta span:first-child{color:var(--accent)}.work-card h3{letter-spacing:-.025em;font-size:1.3rem;line-height:1.2}.work-link:after{content:"";border-radius:inherit;position:absolute;inset:0}.work-link:focus-visible{outline:none}.work-card:has(.work-link:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.work-subtitle{color:var(--text-muted);margin-top:4px;font-size:.95rem;font-weight:500}.work-sentence{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:12px 0 18px;font-size:.95rem;line-height:1.6;display:-webkit-box;overflow:hidden}.work-card .tags{margin-top:auto}.work-read{margin-top:22px}.work-card:hover .work-read{color:var(--accent);gap:9px}.work-card.is-lead{grid-column:1/-1;grid-template-columns:minmax(0,7fr) minmax(0,5fr);display:grid}.work-card.is-lead .work-media{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--border);min-height:clamp(340px,26vw,480px)}.work-card.is-lead .work-body{justify-content:center;padding:clamp(24px,3vw,44px)}.work-card.is-lead h3{font-size:clamp(1.7rem,1.5vw + 1rem,2.4rem)}.work-card.is-lead .work-subtitle{font-size:1.1rem}.work-card.is-lead .work-sentence{-webkit-line-clamp:4;font-size:1.02rem}.work-card.is-lead .tags{margin-top:0}.media{aspect-ratio:16/10;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);display:block;position:relative;overflow:hidden}.media img{object-fit:cover;object-position:top center}.media-fallback{background:linear-gradient(var(--border) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0 / 32px 32px, var(--surface);letter-spacing:-.03em;align-items:flex-end;padding:clamp(20px,3vw,32px);font-size:clamp(1.4rem,2vw + .6rem,2.2rem);font-weight:600;line-height:1.1;display:flex;position:absolute;inset:0}.media-fallback span{color:var(--accent)}.project-meta{font-family:var(--font-mono);color:var(--text-subtle);flex-wrap:wrap;gap:6px 16px;margin-bottom:14px;font-size:.78rem;display:flex}.project-meta .idx{color:var(--accent)}.steps{counter-reset:step;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,3vw,40px);list-style:none;display:grid}.step{border-top:1px solid var(--border-strong);padding-top:24px}.step-index{font-family:var(--font-mono);color:var(--accent);margin-bottom:18px;font-size:.8rem;display:block}.step h3{letter-spacing:-.015em;margin-bottom:8px;font-size:1.15rem}.step p{color:var(--text-muted);font-size:.95rem}.about-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(40px,6vw,88px);display:grid}.about-intro{letter-spacing:-.01em;margin-bottom:28px;font-size:clamp(1.2rem,.6vw + 1.05rem,1.45rem);line-height:1.55}.facts{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);margin-bottom:24px;padding:6px 20px}.facts div{grid-template-columns:112px minmax(0,1fr);gap:12px;padding-block:12px;display:grid}.facts div+div{border-top:1px solid var(--border)}.facts dt{font-family:var(--font-mono);color:var(--text-subtle);padding-top:2px;font-size:.75rem}.facts dd{font-size:.95rem}.sub-title{font-size:.8rem;font-family:var(--font-mono);color:var(--text-subtle);margin-bottom:12px;font-weight:400}.timeline{border-top:1px solid var(--border)}.timeline details{border-bottom:1px solid var(--border)}.timeline summary{cursor:pointer;grid-template-columns:136px minmax(0,1fr) 20px;align-items:start;gap:16px;padding-block:18px;list-style:none;display:grid}.timeline summary::-webkit-details-marker{display:none}.timeline summary:hover strong{color:var(--accent)}.timeline .when{font-family:var(--font-mono);color:var(--text-subtle);padding-top:3px;font-size:.78rem}.timeline .who{flex-direction:column;gap:4px;display:flex}.timeline strong{letter-spacing:-.01em;font-size:1.08rem;font-weight:600;transition:color .2s}.timeline .org{color:var(--text-muted);align-items:center;gap:8px;font-size:.92rem;display:inline-flex}.timeline .org img{object-fit:contain;background:#fff;border-radius:5px;width:20px;height:20px}.timeline .chev{color:var(--text-subtle);transition:transform .25s var(--ease);margin-top:3px}.timeline details[open] .chev{transform:rotate(180deg)}.timeline details p{color:var(--text-muted);padding:0 36px 20px 152px;font-size:.95rem;line-height:1.65}.skills-block{margin-top:clamp(56px,7vw,88px)}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,56px);display:grid}.skill{border-top:1px solid var(--border);grid-template-columns:160px minmax(0,1fr);gap:8px 16px;padding-block:14px;display:grid}.skill dt{padding-top:4px;font-size:.95rem;font-weight:600}.skill dd{flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:6px;display:flex}.chip-skill{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:3px 10px;font-size:.85rem}.contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:clamp(40px,6vw,96px);display:grid}.contact-title{letter-spacing:-.045em;margin-bottom:20px;font-size:clamp(2.4rem,3.4vw + 1rem,4.2rem);line-height:1.05}.contact-text{color:var(--text-muted);max-width:40ch;margin-bottom:36px;font-size:1.08rem}.contact-list{border-top:1px solid var(--border);list-style:none}.contact-list li{border-bottom:1px solid var(--border)}.contact-list a,.contact-list span{color:var(--text);align-items:center;gap:14px;padding-block:16px;transition:color .2s;display:flex}.contact-list a:hover{color:var(--accent)}.contact-list svg{color:var(--text-subtle);flex-shrink:0}.contact-list small{font-family:var(--font-mono);color:var(--text-subtle);margin-left:auto;font-size:.72rem}.form-card{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);padding:clamp(24px,3vw,40px)}.form-card h3{letter-spacing:-.02em;margin-bottom:24px;font-size:1.3rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field label{font-size:.85rem;font-weight:500}.field label span{color:var(--text-subtle);font-weight:400}.input{border:1px solid var(--border-strong);background:var(--bg);border-radius:10px;width:100%;height:46px;padding:0 14px;transition:border-color .2s,box-shadow .2s}textarea.input{resize:vertical;height:auto;min-height:132px;padding:12px 14px;line-height:1.55}.input::placeholder{color:var(--text-subtle)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-submit{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;margin-top:4px;display:flex}.form-submit small{color:var(--text-subtle);font-size:.82rem}.form-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form-status{border-radius:10px;grid-column:1/-1;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.92rem;display:flex}.form-status.ok{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success)}.form-status.error{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.form-status strong{color:var(--text);font-weight:600;display:block}.form-status svg{flex-shrink:0;margin-top:2px}.case-head{padding-block:clamp(32px,5vw,64px) clamp(32px,4vw,48px)}.back-link{color:var(--text-muted);transition:color .2s, gap .2s var(--ease);align-items:center;gap:6px;margin-bottom:clamp(32px,5vw,56px);font-size:.9rem;display:inline-flex}.back-link:hover{color:var(--text);gap:9px}.case-title{letter-spacing:-.045em;max-width:18ch;margin-bottom:24px;font-size:clamp(2.3rem,4vw + 1rem,4.6rem);line-height:1.05}.case-lead{color:var(--text-muted);max-width:54ch;font-size:clamp(1.1rem,.6vw + 1rem,1.35rem);line-height:1.6}.case-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.case-cover{aspect-ratio:16/9;border-radius:var(--radius-lg);width:100%;max-height:78vh}.case-body{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(40px,6vw,96px);padding-block:clamp(56px,7vw,96px);display:grid}.case-facts{top:calc(var(--header-h) + 32px);flex-direction:column;align-self:start;display:flex;position:sticky}.case-facts div{border-top:1px solid var(--border);padding-block:16px}.case-facts dt{font-family:var(--font-mono);color:var(--text-subtle);margin-bottom:6px;font-size:.75rem}.case-facts dd{font-size:.95rem}.case-facts dd a{color:var(--accent);word-break:break-word}.case-facts .tags{margin-top:2px}.prose{max-width:68ch}.prose h2{letter-spacing:-.025em;margin:56px 0 18px;font-size:clamp(1.45rem,1vw + 1rem,1.85rem)}.prose h2:first-child{margin-top:0}.prose p{color:var(--text-muted);margin-bottom:1em;font-size:1.05rem}.prose ul{flex-direction:column;gap:12px;margin-bottom:1.2em;list-style:none;display:flex}.prose li{color:var(--text-muted);padding-left:26px;font-size:1.02rem;position:relative}.prose li:before{content:"";background:var(--accent);width:10px;height:1.5px;position:absolute;top:.72em;left:4px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);padding-bottom:clamp(56px,7vw,96px);display:grid}.gallery>figure:first-child:nth-last-child(odd){grid-column:1/-1}.gallery .media img{object-fit:contain;object-position:center}.gallery figcaption{color:var(--text-muted);margin-top:10px;font-size:.9rem}.gallery-open{width:100%;color:inherit;cursor:zoom-in;padding:0;transition:border-color .2s}.gallery-open:hover{border-color:var(--border-strong)}.gallery-zoom{background:var(--surface);border:1px solid var(--border-strong);width:32px;height:32px;color:var(--text);opacity:.85;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:10px;right:10px}.lightbox{background:var(--bg);width:100%;max-width:none;height:100%;max-height:none;color:var(--text);border:0;margin:0;padding:clamp(12px,3vw,40px);position:fixed;inset:0}.lightbox[open]{justify-content:center;align-items:center;display:flex}.lightbox{touch-action:pan-y pinch-zoom}.lightbox::backdrop{background:var(--bg)}.lightbox-figure{flex-direction:column;gap:14px;width:min(100%,1600px);height:100%;display:flex}.lightbox-frame{flex:1;min-height:0;position:relative}.lightbox-frame img{object-fit:contain}.lightbox figcaption{color:var(--text-muted);justify-content:space-between;gap:16px;padding-inline:56px;font-size:.95rem;display:flex}.lightbox-count{font-family:var(--font-mono);color:var(--text-subtle);white-space:nowrap;font-size:.8rem}.lightbox-btn{border:1px solid var(--border-strong);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute}.lightbox-btn:hover{border-color:var(--text-subtle)}.lightbox-close{z-index:1;top:16px;right:16px}.lightbox-prev,.lightbox-next{top:50%;translate:0 -50%}.lightbox-prev{left:16px}.lightbox-next{right:16px}.case-cta{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;margin-bottom:clamp(56px,7vw,96px);padding:clamp(28px,4vw,48px);display:flex}.case-cta h2{letter-spacing:-.03em;margin-bottom:8px;font-size:clamp(1.5rem,1.2vw + 1rem,2.1rem)}.case-cta p{color:var(--text-muted);max-width:56ch}.case-nav{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.case-nav a{flex-direction:column;gap:6px;padding-block:36px 44px;transition:color .2s;display:flex}.case-nav a:hover strong{color:var(--accent)}.case-nav .next{text-align:right;align-items:flex-end}.case-nav span{font-family:var(--font-mono);color:var(--text-subtle);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.case-nav strong{letter-spacing:-.025em;font-size:clamp(1.15rem,1vw + .9rem,1.6rem);font-weight:600;transition:color .2s}.error-page{min-height:calc(100dvh - var(--header-h) - 130px);padding:64px var(--gutter);text-align:center;place-items:center;display:grid}.error-code{font-family:var(--font-mono);color:var(--accent);margin-bottom:16px}.error-title{letter-spacing:-.04em;margin-bottom:12px;font-size:clamp(2.2rem,3vw + 1rem,3.6rem)}.error-subtitle{color:var(--text-muted);max-width:44ch;margin:0 auto 32px}.error-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}@media (max-width:1024px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px clamp(20px,3vw,40px)}}@media (max-width:860px){.section-head,.hero-grid,.about-grid,.contact-grid,.case-body{grid-template-columns:minmax(0,1fr)}.section-head{align-items:start}.hero-grid{gap:48px}.collage{max-width:520px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card.is-lead{grid-template-columns:minmax(0,1fr)}.work-card.is-lead .work-media{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--border);min-height:0}.case-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid;position:static}.case-facts .wide{grid-column:1/-1}}@media (max-width:640px){.services,.work-grid,.skills,.form-grid,.gallery,.steps,.stats{grid-template-columns:minmax(0,1fr)}.stat,.stat+.stat{border-left:0;border-bottom:1px solid var(--border);flex-direction:row;justify-content:space-between;align-items:baseline;padding:18px 0}.stat dd{font-size:1.8rem}.timeline summary{grid-template-columns:minmax(0,1fr) 20px;gap:4px 12px}.timeline .when{grid-column:1/-1}.timeline details p{padding:0 0 18px}.skill{grid-template-columns:minmax(0,1fr)}.facts div{grid-template-columns:96px minmax(0,1fr)}.case-nav{grid-template-columns:minmax(0,1fr)}.case-nav .next{border-top:1px solid var(--border)}.case-nav>span:empty{display:none}.hero-actions .btn,.case-actions .btn{flex:auto}.lightbox-figure{padding-bottom:60px}.lightbox figcaption{flex-direction:column;gap:4px;padding-inline:0}.lightbox-prev,.lightbox-next{top:auto;bottom:16px;translate:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
.WHuBBq_corner{z-index:40;cursor:pointer;transform-origin:100% 100%;filter:drop-shadow(-2px -2px 5px #0000004d);background:0 0;border:0;width:52px;height:52px;padding:0;transition:scale .35s cubic-bezier(.22,1,.36,1);position:fixed;bottom:0;right:0}.WHuBBq_corner:hover,.WHuBBq_corner:focus-visible{scale:1.3}.WHuBBq_corner:has(+.WHuBBq_panel:popover-open){scale:1.45}.WHuBBq_corner:focus-visible{outline:none}.WHuBBq_corner:focus-visible .WHuBBq_flap{outline:2px solid var(--sw-primary,var(--primary))}.WHuBBq_under{clip-path:polygon(100% 0,100% 100%,0 100%);background:var(--sw-primary,var(--primary));position:absolute;inset:0}.WHuBBq_underMark{width:13px;height:auto;color:var(--sw-bg,var(--bg));position:absolute;bottom:7px;right:7px}.WHuBBq_flap{clip-path:polygon(0 0,100% 0,0 100%);background:linear-gradient(135deg, color-mix(in srgb, var(--sw-surface-hover,var(--surface-hover)) 78%, var(--sw-text,var(--text))) 15%, color-mix(in srgb, var(--sw-surface,var(--surface)) 90%, var(--sw-text,var(--text))) 44%, color-mix(in srgb, var(--sw-surface,var(--surface)) 70%, #000) 50%);position:absolute;inset:0}html:has(.WHuBBq_corner) .logo-mark{overflow:visible}html:has(.WHuBBq_panel:popover-open) .logo-mark path:first-child:not(:only-child){transform:translateY(-12%)rotate(-9deg)}html:has(.WHuBBq_corner) .logo-mark path:first-child:not(:only-child){transform-box:fill-box;transform-origin:0 100%;transition:transform .35s cubic-bezier(.22,1,.36,1)}.WHuBBq_panel{border:1px solid var(--sw-border,var(--border));background:var(--sw-surface,var(--surface));width:min(340px,100vw - 32px);color:var(--sw-text,var(--text));border-radius:18px;margin:0;padding:8px;inset:auto 16px 84px auto;box-shadow:0 28px 60px -24px #0000008c,0 2px 8px #0000001f}.WHuBBq_owner{font-family:var(--font-mono,monospace);letter-spacing:.04em;color:var(--sw-text-muted,var(--text-muted));margin:6px 12px 8px;font-size:.72rem}.WHuBBq_list{margin:0;padding:0;list-style:none}.WHuBBq_list li:last-child{border-top:1px solid var(--sw-border,var(--border));margin-top:6px;padding-top:6px}.WHuBBq_site{color:var(--sw-text,var(--text));border-radius:12px;grid-template-columns:18px 1fr;gap:2px 12px;padding:10px 12px;text-decoration:none;transition:background-color .2s;display:grid}.WHuBBq_site:hover{background:var(--sw-surface-hover,var(--surface-hover))}.WHuBBq_site:focus-visible{outline:2px solid var(--sw-primary,var(--primary));outline-offset:-2px}.WHuBBq_mark{width:18px;height:auto;color:var(--sw-text-muted,var(--text-muted));grid-row:span 2;margin-top:3px;transition:color .2s;overflow:visible}.WHuBBq_mark path:first-child{transform-box:fill-box;transform-origin:0 100%;transition:transform .35s cubic-bezier(.22,1,.36,1)}.WHuBBq_site:hover .WHuBBq_mark,.WHuBBq_site:focus-visible .WHuBBq_mark,.WHuBBq_site[aria-current] .WHuBBq_mark{color:var(--sw-primary,var(--primary))}.WHuBBq_site:hover .WHuBBq_mark path:first-child,.WHuBBq_site:focus-visible .WHuBBq_mark path:first-child{transform:translateY(-12%)rotate(-9deg)}.WHuBBq_name{flex-wrap:wrap;align-items:center;gap:8px;font-size:.92rem;font-weight:600;display:flex}.WHuBBq_here{background:color-mix(in srgb, var(--sw-primary,var(--primary)) 14%, transparent);color:var(--sw-primary,var(--primary));border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:600}.WHuBBq_about{color:var(--sw-text-muted,var(--text-muted));font-size:.8rem;line-height:1.4}@media (max-width:639px){.WHuBBq_corner{width:44px;height:44px}.WHuBBq_underMark{width:11px;bottom:6px;right:6px}.WHuBBq_panel{width:100%;padding:10px 10px calc(14px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:22px 22px 0 0;bottom:0;left:0;right:0}.WHuBBq_panel::backdrop{background:#00000073}}@media print{.WHuBBq_corner{display:none}}@media (prefers-reduced-motion:no-preference){.WHuBBq_hint{animation:1.4s cubic-bezier(.22,1,.36,1) 3s WHuBBq_peek}.WHuBBq_panel:popover-open{animation:.45s cubic-bezier(.22,1,.36,1) WHuBBq_peel}.WHuBBq_panel:popover-open li{animation:.36s cubic-bezier(.22,1,.36,1) backwards WHuBBq_rise;animation-delay:calc(90ms + var(--i) * 35ms)}@media (max-width:639px){.WHuBBq_panel:popover-open{animation-name:WHuBBq_sheet}}}@keyframes WHuBBq_peek{35%,55%{scale:1.7}}@keyframes WHuBBq_peel{0%{clip-path:polygon(100% 100%,100% 100%,100% 100%)}to{clip-path:polygon(100% -120%,100% 100%,-120% 100%)}}@keyframes WHuBBq_sheet{0%{translate:0 100%}}@keyframes WHuBBq_rise{0%{opacity:0;translate:0 6px}}
