@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-cyrillic-wght-normal-5WvUvBgz.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-vietnamese-wght-normal-Cabi7G8-.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-ext-wght-normal-CT1r92Rl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-wght-normal-BOwq7MWX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Playfair Display Variable", "Playfair Display", Georgia, serif;--font-body:"Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--text-display:clamp(3rem, 1rem + 7vw, 7.5rem);--text-h1:clamp(2.25rem, 1.5rem + 3vw, 3.5rem);--text-h2:clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem);--text-h3:1.5rem;--text-h4:1.125rem;--text-body:1rem;--text-lead:clamp(1.0625rem, 1rem + .4vw, 1.25rem);--text-small:.875rem;--text-caption:.8125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--section-gap:clamp(6rem, 14vh, 10rem);--gutter:clamp(1.25rem, 4vw, 3rem);--content-max:72rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:28px;--radius-full:999px;--z-base:0;--z-sticky:40;--z-overlay:60;--z-toast:80;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--dur-fast:.15s;--dur-base:.24s;--dur-slow:.4s;--nav-h:4rem;--icon-sm:16px;--icon-md:20px;--icon-lg:24px}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface-1:#0b0b0b;--surface-2:#141414;--surface-3:#1e1e1e;--border:#1f1f1f;--border-strong:#333;--text:#f5f5f5;--text-muted:#a8a8a8;--accent:#f50037;--accent-solid:#e0002f;--accent-hover:#f50037;--accent-active:#c70029;--on-accent:#fff;--accent-text:#ff5272;--focus-ring:#ff5272;--danger:#ff6b81;--success:#4ade80;--nav-bg:#000c;--scrim:#0009;--shadow-sm:0 1px 2px #0006;--shadow-md:0 12px 32px -12px #0009}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fafafa;--surface-1:#fff;--surface-2:#f2f2f2;--surface-3:#e8e8e8;--border:#e4e4e4;--border-strong:#cfcfcf;--text:#141414;--text-muted:#5c5c5c;--accent:#f50037;--accent-solid:#d1002c;--accent-hover:#b80027;--accent-active:#9e0022;--on-accent:#fff;--accent-text:#c4002a;--focus-ring:#c4002a;--danger:#c4002a;--success:#15803d;--nav-bg:#fafafacc;--scrim:#0006;--shadow-sm:0 1px 2px #1414140f;--shadow-md:0 12px 32px -12px #1414142e}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--space-5));-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);font-size:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--dur-base) var(--ease-out-quart), color var(--dur-base) var(--ease-out-quart);margin:0;line-height:1.7}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.1}h4{font-family:var(--font-body);font-weight:600;font-size:var(--text-h4);margin:0;line-height:1.3}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}p{text-wrap:pretty;max-width:68ch;margin:0}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.skip-link{left:var(--space-4);top:var(--space-4);opacity:0;pointer-events:none;z-index:var(--z-toast);background:var(--accent-solid);color:var(--on-accent);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:opacity var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);position:fixed;transform:translateY(-1rem)}.skip-link:focus{opacity:1;pointer-events:auto;transform:none}.t-display{font-size:var(--text-display);letter-spacing:-.02em;line-height:1.02}.t-lead{font-size:var(--text-lead);color:var(--text-muted);line-height:1.6}.t-small{font-size:var(--text-small)}.t-caption{font-size:var(--text-caption);color:var(--text-muted);font-weight:500}.muted{color:var(--text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-md);font-weight:500;font-size:var(--text-body);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart);touch-action:manipulation;border:1px solid #0000;line-height:1;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent-solid);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:active:not(:disabled){background:var(--accent-active)}.btn--secondary{color:var(--text);border-color:var(--border-strong);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-muted)}.btn--secondary:active:not(:disabled){background:var(--surface-3)}.btn__spinner{animation:.8s linear infinite spin}.icon-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-muted);transition:background-color var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);touch-action:manipulation;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{background:var(--surface-3);transform:scale(.95)}.theme-toggle svg{transition:opacity var(--dur-base) var(--ease-out-quart), transform var(--dur-slow) var(--ease-out-expo);grid-area:1/1}.theme-toggle svg:not([data-on]){opacity:0;transform:rotate(-70deg)scale(.6)}.theme-toggle svg[data-on]{opacity:1;transform:none}.lang-toggle{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:center;height:44px;padding:4px;display:inline-grid;position:relative}.lang-toggle button{z-index:1;min-width:40px;height:100%;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-caption);letter-spacing:.04em;color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out-quart);background:0 0;border:0;font-weight:600;position:relative}.lang-toggle button[aria-pressed=true],.lang-toggle button:not([aria-pressed=true]):hover{color:var(--text)}.lang-toggle__thumb{border-radius:var(--radius-sm);background:var(--surface-3);width:calc(50% - 4px);transition:transform var(--dur-base) var(--ease-out-expo);position:absolute;top:4px;bottom:4px;left:4px}.lang-toggle[data-active=en] .lang-toggle__thumb{transform:translate(100%)}.field{gap:var(--space-2);display:grid}.field__label{font-size:var(--text-small);font-weight:500}.field__req{color:var(--text-muted);font-weight:400}.field__control{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);background:var(--surface-1);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart)}.field__control::placeholder{color:var(--text-muted);opacity:1}.field__control:hover{background:var(--surface-2)}.field__control:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:#0000}.field__control--area{resize:vertical;min-height:9rem;line-height:1.6}.field[data-invalid] .field__control{border-color:var(--danger)}.field__hint{font-size:var(--text-caption);color:var(--text-muted)}.field__error{align-items:flex-start;gap:var(--space-2);font-size:var(--text-small);color:var(--danger);display:flex}.field__error svg{flex:none;margin-top:3px}.tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{align-items:center;gap:var(--space-2);min-height:28px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-full);font-size:var(--text-caption);color:var(--text-muted);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart);font-weight:500;line-height:1;display:inline-flex}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);transition:background-color var(--dur-base) var(--ease-out-quart), border-color var(--dur-base) var(--ease-out-quart), box-shadow var(--dur-base) var(--ease-out-quart)}.card:hover,.card:focus-within{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card:hover .tag{border-color:var(--text-muted);color:var(--text)}.window{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg);box-shadow:var(--shadow-sm);overflow:hidden}.window__bar{height:36px;padding-inline:var(--space-3);background:var(--surface-3);border-bottom:1px solid var(--border-strong);grid-template-columns:4.5rem 1fr 4.5rem;align-items:center;display:grid}.window__dots{gap:7px;display:flex}.window__dots i{border-radius:50%;width:11px;height:11px}.window__address{width:min(100%,22rem);padding:3px var(--space-3);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;justify-self:center;font-size:.75rem;line-height:1.4;overflow:hidden}.window__body{aspect-ratio:16/10;position:relative;overflow:hidden}.window__body>*{transition:transform var(--dur-slow) var(--ease-out-quart);width:100%;height:100%}.card:hover .window__body>*{transform:scale(1.02)}@media (width<=480px){.window__bar{grid-template-columns:3.5rem 1fr 0}.window__address{width:100%}}.tech-icon{color:var(--ti)}.nav{z-index:var(--z-sticky);height:var(--nav-h);transition:background-color var(--dur-base) var(--ease-out-quart), border-color var(--dur-base) var(--ease-out-quart), backdrop-filter var(--dur-base);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav[data-scrolled]{background:var(--nav-bg);border-color:var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav--preview{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);position:relative;inset:auto}.nav__inner{align-items:center;gap:var(--space-4);grid-template-columns:1fr auto 1fr;height:100%;display:grid}.nav__brand{white-space:nowrap;justify-self:start;align-items:baseline;gap:.3em;font-size:1.25rem;line-height:1;display:inline-flex}.nav__links{gap:var(--space-1);display:flex}.nav__link{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-small);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);align-items:center;font-weight:500;display:inline-flex;position:relative}.nav__link:after{content:"";left:var(--space-4);right:var(--space-4);background:var(--accent);transform-origin:0;height:2px;transition:transform var(--dur-base) var(--ease-out-expo);border-radius:1px;position:absolute;bottom:8px;transform:scaleX(0)}.nav__link:hover{color:var(--text);background:var(--surface-2)}.nav__link[aria-current=true]{color:var(--text)}.nav__link[aria-current=true]:after{transform:scaleX(1)}.nav__actions{justify-self:end;align-items:center;gap:var(--space-2);display:flex}.nav__menu-btn,.nav__sheet{display:none}@media (width<=52rem){.nav__inner{grid-template-columns:1fr auto}.nav__center{display:none}.nav__menu-btn{display:inline-grid}.nav__sheet{inset:var(--nav-h) 0 0 0;z-index:var(--z-overlay);padding:var(--space-6) var(--gutter);background:var(--bg);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out-quart), transform var(--dur-base) var(--ease-out-quart), visibility 0s linear var(--dur-base);display:block;position:fixed;transform:translateY(-8px)}.nav__sheet[data-open]{opacity:1;visibility:visible;transition-delay:0s;transform:none}.nav__sheet-links{gap:var(--space-2);display:grid}.nav__sheet .nav__link{font-family:var(--font-display);font-size:var(--text-h2);color:var(--text);padding:var(--space-3) 0;min-height:56px}.nav__sheet .nav__link:after{width:2rem;bottom:6px;left:0;right:auto}.nav__sheet .nav__link:hover{background:0 0}}@media (width<=26rem){.nav__brand{font-size:1.05rem}.nav__actions{gap:var(--space-1)}}main{padding-top:var(--nav-h)}.section{padding-block:var(--section-gap) 0}.section__head{gap:var(--space-4);margin-bottom:var(--space-8);display:grid}.hero{min-height:100dvh;margin-top:calc(var(--nav-h) * -1);padding-block:calc(var(--nav-h) + var(--space-5));align-items:center;display:grid;overflow-x:clip}.hero__inner{gap:var(--space-7);align-items:center;display:grid}.hero__copy{gap:var(--space-5);justify-items:start;display:grid}.hero__name{text-transform:uppercase;display:grid}.hero__role{font-family:var(--font-display);font-size:var(--text-h3);color:var(--text-muted);animation:fade-up .7s var(--ease-out-expo) .4s backwards}.hero__ai{color:var(--accent-text);font-weight:700}.hero__gallery{gap:var(--space-4);animation:fade-up .9s var(--ease-out-expo) .3s backwards;display:grid}.gallery__row{gap:var(--space-4);display:flex}.gallery__card{aspect-ratio:3/2;border-radius:var(--radius-xl);border:1px solid var(--border-strong);background:var(--surface-1);flex:none;width:clamp(11rem,26vw,19rem);overflow:hidden}.gallery__card svg{width:100%;height:100%}.gallery__row:nth-child(2n){margin-left:calc(clamp(11rem,26vw,19rem)/2)}@media (width>=60rem){.hero{overflow-x:clip}.hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero__gallery{margin-left:12%}}.marquee{border-block:1px solid var(--border);padding-block:var(--space-5);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;overflow:hidden}.marquee[data-dragging]{cursor:grabbing}.marquee__track{will-change:transform;width:max-content;font-family:var(--font-display);font-size:var(--text-h2);text-transform:uppercase;color:var(--text-muted);display:flex}.marquee__track li{align-items:center;gap:var(--space-3);padding-right:var(--space-8);white-space:nowrap;display:inline-flex}.marquee__track svg{flex:none}.marquee__track li:after{content:"*";margin-left:var(--space-5);color:var(--accent)}.brand-word{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;font-weight:600;line-height:1;display:inline-block}.brand-dot{color:var(--accent);font-style:normal}.hero__name .brand-word{letter-spacing:.02em}.brand-fly{z-index:calc(var(--z-sticky) + 1);pointer-events:none;visibility:hidden;position:fixed;inset:0}.brand-fly .brand-word{transform-origin:0 0;font-size:var(--fly-size,5rem);will-change:transform;position:absolute;top:0;left:0}html[data-brand=fly] .brand-fly{visibility:visible}html[data-brand=hero] .nav__brand,html[data-brand=fly] .nav__brand{visibility:hidden}html[data-brand=fly] .hero__word,html[data-brand=nav] .hero__word{opacity:0}html[data-menu] .nav__brand{visibility:visible!important}html[data-menu] .brand-fly{visibility:hidden!important}.hero__role{margin-top:var(--space-5);font-family:var(--font-display);font-size:var(--text-h2);color:var(--text-muted);animation:fade-up .7s var(--ease-out-expo) .4s backwards}.hero__body{gap:var(--space-6);max-width:40rem;animation:fade-up .7s var(--ease-out-expo) .52s backwards;display:grid}.hero__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.hero__stack{gap:var(--space-2) var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--text-small);animation:fade-up .7s var(--ease-out-expo) .64s backwards;flex-wrap:wrap;font-weight:500;display:flex}.hero__stack li{white-space:nowrap}.hero__stack li+li{position:relative}.hero__stack li+li:before{content:"";left:calc(var(--space-5) / -2 - 2px);background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;transform:translateY(-50%)}@media (width<=64rem){.hero__stack li+li:before{display:none}.hero__stack{column-gap:var(--space-6)}}.works__label{gap:var(--space-2);margin-bottom:var(--space-5);color:var(--text-muted);font-size:var(--text-small);text-transform:uppercase;letter-spacing:.08em;display:flex}.works{border-top:1px solid var(--border)}.work{align-items:center;gap:var(--space-6);padding-block:var(--space-7);border-bottom:1px solid var(--border);grid-template-columns:3rem minmax(0,1.2fr) minmax(0,1fr);display:grid}.work__index{color:var(--accent-text);font-variant-numeric:tabular-nums;align-self:start;font-weight:500}.work__info{align-content:center;gap:var(--space-4);display:grid}.work__name{font-size:var(--text-h2);text-transform:uppercase}.work__links{gap:var(--space-2);margin-left:calc(var(--space-2) * -1);display:flex}.work:hover .window__body>*,.work:focus-within .window__body>*{transform:scale(1.02)}@media (width<=60rem){.work{grid-template-columns:2.5rem minmax(0,1fr)}.work__media,.work__info{grid-column:2}}.skills{border-top:1px solid var(--border);margin:0}.skills__row{gap:var(--space-4) var(--space-7);padding-block:var(--space-6);border-bottom:1px solid var(--border);grid-template-columns:minmax(12rem,1fr) 2fr;display:grid}.skills dd{margin:0}.skills__cat{font-family:var(--font-display);font-size:var(--text-h3)}@media (width<=48rem){.skills__row{padding-block:var(--space-5);grid-template-columns:1fr}}.timeline{gap:var(--space-8);padding-left:var(--space-7);max-width:44rem;display:grid;position:relative}.timeline__line{background:var(--border-strong);width:1px;position:absolute;top:8px;bottom:8px;left:5px}.timeline__item{gap:var(--space-2);display:grid;position:relative}.timeline__node{left:calc(var(--space-7) * -1);background:var(--bg);border:2px solid var(--border-strong);border-radius:50%;width:11px;height:11px;position:absolute;top:.45rem}.timeline__item[data-ongoing] .timeline__node{border-color:var(--accent);background:var(--accent)}.timeline__period{align-items:center;gap:var(--space-3);font-size:var(--text-small);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:500;display:flex}.timeline__badge{padding:2px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--accent-text);color:var(--accent-text);font-size:var(--text-caption)}.contact{gap:var(--space-8);grid-template-columns:5fr 7fr;align-items:start;display:grid}.contact__links{gap:var(--space-3);display:grid}.contact__links li{align-items:center;gap:var(--space-2);display:flex}.contact__link{align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-1);transition:background-color var(--dur-base) var(--ease-out-quart), border-color var(--dur-base) var(--ease-out-quart);overflow-wrap:anywhere;flex:1;line-height:1.4;display:flex}.contact__links li>.contact__link:only-child{margin-right:calc(44px + var(--space-2))}.contact__link:hover{background:var(--surface-2);border-color:var(--border-strong)}.contact__link svg{color:var(--accent-text);flex:none}.contact__panel{padding:var(--space-6)}.card.contact__panel:hover{background:var(--surface-1);border-color:var(--border);box-shadow:none}.contact__form{gap:var(--space-5);display:grid}.contact__trap{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.contact__submit{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.contact__status{font-size:var(--text-small);min-height:1.5em}.contact__error{color:var(--danger)}.contact__success{justify-items:start;gap:var(--space-4);padding-block:var(--space-4);color:var(--text);display:grid}.contact__success>svg{color:var(--success)}@media (width<=60rem){.contact{gap:var(--space-6);grid-template-columns:1fr}.contact__panel{padding:var(--space-5)}}.footer{padding-block:var(--space-7);border-top:1px solid var(--border);margin-top:clamp(4rem,8vh,6rem)}.footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.footer__built{font-size:var(--text-small);color:var(--text-muted);max-width:none}.footer__tech{align-items:center;gap:var(--space-2);color:var(--text);vertical-align:middle;margin-inline:2px;display:inline-flex}.turnstile{min-height:65px}.btn--primary.is-hover{background:var(--accent-hover)}.btn--primary.is-active{background:var(--accent-active);transform:scale(.98)}.btn--secondary.is-hover{background:var(--surface-2);border-color:var(--text-muted)}.btn--secondary.is-active{background:var(--surface-3);transform:scale(.98)}.icon-btn.is-hover{background:var(--surface-2);color:var(--text)}.icon-btn.is-active{background:var(--surface-3);transform:scale(.95)}.btn.is-focus,.icon-btn.is-focus{outline:2px solid var(--focus-ring);outline-offset:2px}.card.is-hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card.is-hover .tag{border-color:var(--text-muted);color:var(--text)}.card.is-hover .window__body>*{transform:scale(1.02)}.ds{padding-bottom:var(--space-10)}.ds-head{gap:var(--space-4);padding-block:var(--space-8) var(--space-6);display:grid}.ds-back{align-items:center;gap:var(--space-2);color:var(--text-muted);width:fit-content;min-height:44px;display:inline-flex}.ds-back:hover{color:var(--text)}.ds-controls,.ds-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ds-block{gap:var(--space-5);padding-block:var(--space-7);border-top:1px solid var(--border);display:grid}.ds-themes{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));display:grid}.ds-theme{gap:var(--space-5);padding:var(--space-5);background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-lg);display:grid}.ds-group{gap:var(--space-3);display:grid}.ds-swatches{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));display:grid}.ds-swatches li{gap:2px;display:grid}.ds-swatches code{font-size:var(--text-caption)}.ds-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-strong);height:48px}.ds-pairs{gap:var(--space-2);display:grid}.ds-pairs li{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--text-small);display:flex}.ds-type{gap:var(--space-4);display:grid}.ds-space{gap:var(--space-2);display:grid}.ds-space li{align-items:center;gap:var(--space-3);grid-template-columns:8rem 1fr;display:grid}.ds-space span{background:var(--accent);border-radius:2px;height:12px}.ds-radii{gap:var(--space-5);flex-wrap:wrap;display:flex}.ds-radii li{gap:var(--space-2);justify-items:start;display:grid}.ds-radii span{background:var(--surface-3);border:1px solid var(--border-strong);width:72px;height:72px}.ds-grid{gap:var(--space-5);flex-wrap:wrap;align-items:flex-start;display:flex}.ds-grid--wide>*{flex:18rem}.ds-cell{gap:var(--space-3);justify-items:start;display:grid}.ds-navs{gap:var(--space-5);display:grid}.ds-nav-frame{color:var(--text);gap:var(--space-2);min-width:0;padding:var(--space-4);background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--border-strong);display:grid;overflow:hidden}.ds-nav-frame .nav{height:var(--nav-h)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,0%));animation:vt-reveal .52s var(--ease-out-expo) forwards}@keyframes vt-reveal{to{clip-path:circle(150vmax at var(--vt-x,50%) var(--vt-y,0%))}}@keyframes line-up{0%{transform:translateY(105%)}to{transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@supports (animation-timeline:view()){.reveal{animation:linear both fade-up;animation-timeline:view();animation-range:entry entry 40%}.timeline__line{transform-origin:top;animation:linear both draw;animation-timeline:view();animation-range:entry 10% cover 55%}}@keyframes draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.timeline__line{animation:none!important}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}html[data-cursor],html[data-cursor] *{cursor:none!important}.cursor{z-index:100;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.cursor span{transition:width var(--dur-base) var(--ease-out-expo), height var(--dur-base) var(--ease-out-expo), opacity var(--dur-base), background-color var(--dur-base), border-color var(--dur-base);border-radius:50%;display:block;position:absolute;transform:translate(-50%,-50%)}.cursor--ring span{border:2px solid #f5f5f5bf;width:2.75rem;height:2.75rem}.cursor--dot span{background:#fff;width:.75rem;height:.75rem;box-shadow:0 0 10px 3px #ffffff73}html:not([data-cursor]) .cursor{display:none}html[data-cursor-hover] .cursor--ring span{border-color:var(--accent);background:#f500371f;width:4.25rem;height:4.25rem}html[data-cursor-hover] .cursor--dot span{background:var(--accent);box-shadow:0 0 12px 4px #f5003780}html[data-cursor-drag]:not([data-cursor-down]) .cursor--ring span{width:5rem;height:5rem}html[data-cursor-down] .cursor--ring span{width:2rem;height:2rem}html[data-cursor-down] .cursor--dot span{width:.5rem;height:.5rem}html[data-cursor-hidden] .cursor span{opacity:0}[data-theme=light] .cursor--ring span{border-color:#141414b3}[data-theme=light] .cursor--dot span{background:#141414;box-shadow:0 0 10px 3px #14141440}.loader{z-index:200;color:#f5f5f5;transition:transform .65s var(--ease-out-expo);background:#000;position:fixed;inset:0}.loader[data-exiting]{pointer-events:none;transform:translateY(-100%)}.loader__scene{place-items:center;display:grid;position:absolute;inset:0}.loader__scene--fill{color:#000;clip-path:url(#loader-fill-clip);background:#f50037}.loader__content{justify-items:center;gap:var(--space-4);display:grid}.loader__label{font-size:var(--text-small);letter-spacing:.16em;text-transform:uppercase;color:#a8a8a8;font-weight:500}.loader__scene--fill .loader__label{color:#000000b3}.loader__count{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(5rem,24vw,14rem);font-weight:600;line-height:.9}.loader__count small{margin-left:.08em;font-size:.35em}.loader__defs{pointer-events:none;position:absolute}html[data-loading]{overflow:hidden}html[data-loading] :is(.hero__line>span,.hero__role,.hero__body,.hero__gallery){animation-play-state:paused}@media (prefers-reduced-motion:reduce){.loader{transition:none}}
