@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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{--paper:#f8f7f4;--paper-2:#f1efea;--card:#fffefb;--card-2:#faf9f6;--ink:#16171b;--ink-2:#5b5e66;--ink-3:#8d9098;--line:#e3e1da;--line-2:#cfccc3;--accent:#1f47d6;--accent-ink:#16309b;--accent-soft:#1f47d612;--accent-line:#1f47d647;--shadow-sm:0 1px 2px #14151a0a;--shadow-lg:0 18px 40px -24px #14151a47;--font-display:"Space Grotesk Variable", "Space Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-body:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-display:clamp(2.55rem, 1.5rem + 4.4vw, 4.6rem);--fs-title:clamp(2rem, 1.4rem + 2.6vw, 3.25rem);--fs-h2:clamp(1.6rem, 1.25rem + 1.5vw, 2.4rem);--fs-h3:clamp(1.15rem, 1.05rem + .45vw, 1.4rem);--fs-h4:1.0625rem;--fs-lead:clamp(1.075rem, 1rem + .4vw, 1.3rem);--fs-body:1.0625rem;--fs-sm:.9375rem;--fs-micro:.6875rem;--maxw:78rem;--gutter:clamp(1.25rem, 4vw, 2.75rem);--col-gap:clamp(1.5rem, 3vw, 2.75rem);--section-y:clamp(3.75rem, 7vw, 6.75rem);--nav-h:68px;--ease:cubic-bezier(.22, .61, .36, 1);--about-bg-opacity:.13;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#0c0e11;--paper-2:#111418;--card:#14171c;--card-2:#171b21;--ink:#eceef1;--ink-2:#a0a5ae;--ink-3:#6f747d;--line:#23272e;--line-2:#343943;--accent:#7c9bff;--accent-ink:#a8bcff;--accent-soft:#7c9bff1a;--accent-line:#7c9bff52;--shadow-sm:0 1px 2px #0006;--shadow-lg:0 18px 40px -24px #000c;--about-bg-opacity:.22;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px)}body{background:var(--paper);color:var(--ink-2);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s var(--ease), color .25s var(--ease);margin:0;font-weight:400;line-height:1.68}body:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.5;background-size:112px 112px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(1200px at 20% 0,#000 0%,#0000 70%);mask-image:radial-gradient(1200px at 20% 0,#000 0%,#0000 70%)}#root{z-index:1;position:relative}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.022em;margin:0;font-weight:500;line-height:1.08}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img,video,canvas,svg{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}hr{border:0;border-top:1px solid var(--line);margin:0}::selection{background:var(--accent);color:#fff}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.prose{max-width:64ch;color:var(--ink-2)}.prose>p+p{margin-top:1.05em}.prose strong{color:var(--ink);font-weight:500}.prose a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);text-underline-offset:3px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.skip-link{z-index:100;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;border-radius:2px;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{top:1rem;left:1rem}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.nav{z-index:50;background:color-mix(in srgb, var(--paper) 86%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);transition:border-color .25s var(--ease), background-color .25s var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.nav[data-scrolled=true]{border-bottom-color:var(--line);background:color-mix(in srgb, var(--paper) 94%, transparent)}.nav-inner{height:var(--nav-h);align-items:center;gap:1.5rem;display:flex}.nav-brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;flex:0 auto;font-size:1rem;font-weight:500;overflow:hidden}.nav-brand span{color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.08em;margin-left:.5rem;font-size:.7rem}.nav-links{align-items:center;gap:1.6rem;margin-left:auto;display:flex}.nav-link{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);transition:color .2s var(--ease);padding-block:.35rem;position:relative}.nav-link:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .28s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-link:hover,.nav-link.is-active{color:var(--ink)}.nav-link.is-active:after,.nav-link:hover:after{transform:scaleX(1)}.nav-actions{flex:none;align-items:center;gap:.5rem;margin-left:1.4rem;display:flex}.nav-resume{color:var(--ink);border:1px solid var(--line-2);transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);border-radius:2px;padding:.42rem .75rem}.nav-resume:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.icon-btn{width:34px;height:34px;color:var(--ink-3);transition:color .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease);border:1px solid #0000;border-radius:2px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--ink);border-color:var(--line-2)}.nav-toggle{display:none}@media (width<=860px){.nav-brand span{display:none}.nav-links{inset:var(--nav-h) 0 auto 0;background:var(--card);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1.25rem;box-shadow:var(--shadow-lg);flex-direction:column;align-items:flex-start;gap:0;margin:0;display:none;position:fixed}.nav-links.is-open{display:flex}.nav-links .nav-link{border-bottom:1px solid var(--line);width:100%;padding:.85rem 0;font-size:.75rem}.nav-toggle{display:inline-grid}.nav-social,.nav-resume{display:none}}@media (width<=420px){.nav-brand{font-size:.92rem}.nav-actions{gap:.15rem;margin-left:.75rem}.icon-btn{width:30px;height:30px}}.hero{padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(2rem,4vw,3rem)}.hero-eyebrow{color:var(--ink-3);align-items:center;gap:.65rem;display:flex}.hero-eyebrow .dot{background:var(--line-2);border-radius:50%;flex:none;width:4px;height:4px}.hero-eyebrow .live{color:var(--accent)}.hero-top{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(1.5rem,4vw,3.5rem);display:grid}.hero-lead{min-width:0}.hero-portrait{flex:none;width:clamp(148px,16vw,214px);margin:0}.hero-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border:1px solid var(--line-2);background:var(--paper-2);border-radius:clamp(12px,1.5vw,20px);width:100%}.hero-name{font-size:var(--fs-display);letter-spacing:-.035em;max-width:20ch;margin-top:1.1rem;font-weight:500}@media (width<=640px){.hero-top{grid-template-columns:1fr;gap:1.25rem}.hero-portrait{order:-1;width:104px}}.hero-headline{font-family:var(--font-display);font-size:var(--fs-lead);color:var(--ink);letter-spacing:-.015em;margin-top:.9rem;font-weight:400}.hero-headline em{color:var(--ink-3);font-style:normal;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;margin-top:.7rem;display:block}.hero-cols{gap:var(--col-gap);grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-top:clamp(1.75rem,3vw,2.5rem);display:grid}.hero-body p+p{margin-top:1.05em}.hero-actions{flex-wrap:wrap;gap:.6rem;padding-bottom:.2rem;display:flex}@media (width<=720px){.hero-cols{grid-template-columns:1fr;align-items:start}}.hero-cols.is-solo{grid-template-columns:1fr;margin-top:clamp(1.5rem,3vw,2rem)}.hero-cols.is-solo .hero-actions{padding-bottom:0}.btn{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--ink);background:var(--card);transition:transform .18s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);border-radius:2px;align-items:center;gap:.5rem;padding:.72rem 1.05rem;display:inline-flex}.btn:hover{border-color:var(--ink);transform:translateY(-1px)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.hero-figure{margin:clamp(2rem,4vw,3.25rem) 0 0}.hero-figure-img{aspect-ratio:16/9;border:1px solid var(--line);background:var(--paper-2);position:relative;overflow:hidden}.hero-figure-img img{object-fit:cover;object-position:center 42%;width:100%;height:100%}@media (width<=720px){.hero-figure-img{aspect-ratio:4/3}}.figcaption,.hero-caption{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;color:var(--ink-3);margin-top:.7rem;line-height:1.6}.spec-rows{border-top:1px solid var(--line);margin:clamp(2rem,4vw,3rem) 0 0}.spec-row{gap:var(--col-gap);border-bottom:1px solid var(--line);grid-template-columns:9rem minmax(0,1fr);padding:.85rem 0;display:grid}.spec-row dt{color:var(--ink-3)}.spec-row dd{color:var(--ink);font-size:var(--fs-sm);margin:0}.spec-row dd .muted{color:var(--ink-3)}@media (width<=620px){.spec-row{grid-template-columns:1fr;gap:.25rem}}.section{padding-block:var(--section-y);border-top:1px solid var(--line)}.section-head{gap:var(--col-gap);grid-template-columns:1fr minmax(0,34ch);align-items:end;margin-bottom:clamp(2rem,4vw,3.25rem);display:grid}.section-head-top{align-items:baseline;gap:.9rem;display:flex}.section-index{color:var(--ink-3);padding-bottom:.4rem}.section-title{font-size:var(--fs-h2);letter-spacing:-.028em}.section-lead{color:var(--ink-2);font-size:var(--fs-sm)}@media (width<=800px){.section-head{grid-template-columns:1fr;align-items:start;gap:1rem}}#about{isolation:isolate;position:relative}#about:before{content:"";z-index:-1;background-image:var(--about-bg,none);opacity:var(--about-bg-opacity,.13);background-position:50%;background-size:cover;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 22% 78%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 22% 78%,#0000 100%)}.about-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);display:grid}.skill-groups{border-top:1px solid var(--line)}.skill-group{border-bottom:1px solid var(--line);padding:1.05rem 0}.skill-group h3{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.65rem;font-weight:500}.skill-list{flex-wrap:wrap;gap:.35rem 1.1rem;display:flex}.skill-list li{font-size:var(--fs-sm);color:var(--ink)}.skill-list li:before{content:"·";color:var(--ink-3);margin-right:.55rem;font-weight:500}@media (width<=800px){.about-grid{grid-template-columns:1fr;gap:2.25rem}}.timeline{border-top:1px solid var(--line)}.job{border-bottom:1px solid var(--line);padding-block:clamp(1.75rem,3vw,2.5rem)}.job-grid{gap:var(--col-gap);grid-template-columns:minmax(0,1fr) minmax(0,22rem);align-items:start;display:grid}.job-grid-text{grid-template-columns:minmax(0,1fr)}.job-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.job-role{font-size:var(--fs-h3);letter-spacing:-.02em;max-width:34ch}.job-dates{color:var(--ink-3);font-size:var(--fs-micro);white-space:nowrap}.job-org{margin-top:.55rem;display:block}.job-awards{font-size:var(--fs-sm);color:var(--ink);border-left:2px solid var(--accent-line);margin-top:1rem;padding-left:.9rem}.job-bullets{gap:.5rem;margin-top:1.1rem;display:grid}.job-bullets li{font-size:var(--fs-sm);color:var(--ink-2);padding-left:1.15rem;position:relative}.job-bullets li:before{content:"";background:var(--line-2);width:4px;height:4px;position:absolute;top:.62em;left:0}.tag-row{flex-wrap:wrap;gap:.4rem;margin-top:1.15rem;display:flex}.tag{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--ink-2);background:var(--card-2);border:1px solid var(--line);white-space:nowrap;border-radius:2px;padding:.28rem .5rem}.job-thumb{border:2px solid var(--ink-3);background:var(--paper-2);aspect-ratio:4/3;margin:0;overflow:hidden}.job-thumb img{object-fit:cover;width:100%;height:100%}@media (width<=800px){.job-grid{grid-template-columns:1fr}}.season-index{border-top:1px solid var(--line);margin-top:clamp(1.5rem,3vw,2rem)}.season-link{border-bottom:1px solid var(--line);transition:background-color .2s var(--ease), padding-left .2s var(--ease);grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:1.1rem;padding:.85rem .6rem .85rem 0;display:grid}.season-link:hover{background:var(--card-2);padding-left:.6rem}.season-thumb{aspect-ratio:4/3;border:1px solid var(--line);background:var(--paper-2);overflow:hidden}.season-thumb img{object-fit:cover;width:100%;height:100%}.season-body h4{font-family:var(--font-display);font-size:var(--fs-h4);letter-spacing:-.015em;font-weight:500}.best-badge{color:var(--accent);vertical-align:middle;align-items:center;margin-left:.55rem;line-height:0;display:inline-flex}.best-badge svg{flex:none}.season-body p{font-size:var(--fs-sm);color:var(--ink-3);margin-top:.3rem}.season-go{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.season-link:hover .season-go{color:var(--accent)}@media (width<=620px){.season-link{grid-template-columns:60px minmax(0,1fr)}.season-go{display:none}}.project-index{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);transition:background-color .22s var(--ease), padding-left .22s var(--ease);grid-template-columns:2.5rem 168px minmax(0,1fr) 1.25rem;align-items:start;gap:clamp(1rem,2.5vw,2rem);padding:clamp(1.1rem,2.2vw,1.6rem) .75rem clamp(1.1rem,2.2vw,1.6rem) 0;display:grid}.project-row:hover{background:var(--card-2);padding-left:.75rem}.project-row-num{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-3);padding-top:.35rem}.project-row-thumb{aspect-ratio:16/10;border:1px solid var(--line);background:var(--paper-2);overflow:hidden}.project-row-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease)}.project-row:hover .project-row-thumb img{transform:scale(1.03)}.project-row-top{flex-wrap:wrap;align-items:baseline;gap:.6rem .9rem;display:flex}.project-row-title{font-size:var(--fs-h3);letter-spacing:-.02em}.project-row-desc{font-size:var(--fs-sm);color:var(--ink-2);max-width:68ch;margin-top:.55rem}.project-row-arrow{color:var(--ink-3);transition:transform .25s var(--ease), color .2s var(--ease);padding-top:.2rem}.project-row:hover .project-row-arrow{color:var(--accent);transform:translate(3px)}@media (width<=800px){.project-row{grid-template-columns:2rem minmax(0,1fr);row-gap:.9rem}.project-row-thumb{aspect-ratio:16/9;grid-column:2}.project-row-body{grid-column:2}.project-row-arrow{display:none}}.detail{padding-top:clamp(1.75rem,4vw,2.75rem);padding-bottom:calc(var(--section-y) * .7)}.crumb{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:.55rem;display:flex}.crumb a:hover{color:var(--accent)}.crumb-sep{color:var(--line-2)}.detail-head{margin-top:clamp(1.5rem,3vw,2.25rem)}.detail-eyebrow{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.detail-eyebrow .dot{background:var(--line-2);border-radius:50%;flex:none;width:4px;height:4px}.detail-title{font-size:var(--fs-title);letter-spacing:-.03em;max-width:24ch;margin-top:1rem}.detail-lead{font-size:var(--fs-lead);color:var(--ink-2);max-width:62ch;margin-top:1.1rem;line-height:1.55}.detail-actions{flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;display:flex}.meta-line,.tech-line{overscroll-behavior-x:contain;scrollbar-width:none;white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:.75rem;display:flex;overflow-x:auto}.meta-line::-webkit-scrollbar{display:none}.tech-line::-webkit-scrollbar{display:none}.meta-line>*,.tech-line>*{flex:none}.meta-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);margin:clamp(1rem,2vw,1.4rem) 0 0;padding:clamp(.7rem,1.4vw,.95rem) 0}.meta-item:after{content:"·";color:var(--line-2);margin:0 .5rem}.meta-item:last-child:after{content:"";margin:0}.tech-line{padding:clamp(.8rem,1.6vw,1.05rem) 0 0}.tech-list{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-2);text-transform:uppercase;flex-wrap:nowrap;gap:.2rem 0;font-size:.65rem;display:flex}.tech-list li:after{content:"·";color:var(--line-2);margin:0 .42rem}.tech-list li:last-child:after{content:"";margin:0}.hero-band{--band-bleed:min(2.75rem, calc(var(--gutter) - .625rem));margin:clamp(1.9rem, 3.6vw, 2.75rem) 0 0 calc(-1 * var(--band-bleed));grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3.5vw,3.5rem);display:grid}.hero-band--solo{grid-template-columns:minmax(0,1fr)}.hero-band-figure{margin:0}.awards-panel{flex-direction:column;gap:clamp(.85rem,1.8vw,1.25rem);min-width:0;display:flex}.awards{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.award{border-bottom:1px solid var(--line);grid-template-columns:2.1rem minmax(0,1fr);align-items:baseline;gap:.75rem;padding:clamp(.85rem,1.9vw,1.35rem) 0;display:grid}.award-num{font-size:var(--fs-micro);color:var(--ink-3);letter-spacing:.08em;padding-top:.35em}.award-title{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;color:var(--ink);font-size:clamp(1.3rem,2.35vw,1.95rem);font-weight:500;line-height:1.13}.award-meta{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:.5rem;line-height:1.65}@media (width<=880px){.hero-band{--band-bleed:0rem;grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,4vw,2.25rem)}}@media (width<=560px){.award{grid-template-columns:minmax(0,1fr);gap:.3rem}.award-num{padding-top:0}}.block{border-bottom:1px solid var(--line);padding-block:clamp(2rem,4vw,2.9rem)}.block-head{align-items:baseline;gap:.9rem;margin-bottom:clamp(1rem,2vw,1.4rem);display:flex}.block-head:after{content:"";background:var(--line);flex:1;height:1px;transform:translateY(-.28rem)}.block-num{color:var(--ink-3)}.block-title{font-size:var(--fs-h3);letter-spacing:-.02em}.block-intro{font-size:var(--fs-sm);color:var(--ink-3);max-width:62ch;margin:-.6rem 0 1.2rem}.block--wide .prose,.block--wide .block-intro{max-width:none}.prose-links{gap:.45rem;margin-top:1.2rem;padding:0;list-style:none;display:grid}.prose-links a{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);text-underline-offset:3px;word-break:break-all;align-items:center;gap:.45rem;display:inline-flex}.prose .simple-list{margin-top:1.15rem}.block-body>*+*{margin-top:1.35rem}.spec-grid{background:var(--paper);border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:0;display:grid}.spec-cell{border-bottom:1px solid var(--line);min-width:0;padding:.8rem 1.4rem .9rem 0}.spec-cell dt{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.spec-cell dd{color:var(--ink);font-size:var(--fs-sm);margin:.35rem 0 0}.figure-grid{gap:1rem;display:grid}.figure-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.figure-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.figure,.block-video{margin:0}.figure-img,.block-video video{border:1px solid var(--line);background:var(--paper-2);width:100%}.figure-img img{width:100%;height:auto}.figure-grid .figure-img{aspect-ratio:4/3;overflow:hidden}.figure-grid .figure-img img{object-fit:cover;width:100%;height:100%}@media (width<=720px){.figure-grid.cols-2,.figure-grid.cols-3{grid-template-columns:1fr}}.stats{border-top:1px solid var(--line);background:var(--paper);grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:0;display:grid}.stat{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:1.1rem 1.4rem 1.2rem 0}.stat:last-child{border-right:0}.stat-value{font-family:var(--font-mono);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(1.35rem,1.15rem + .9vw,1.85rem);font-weight:500;line-height:1.1;display:block}.stat-label{color:var(--ink-3);margin-top:.7rem;display:block}.stat-note{font-size:var(--fs-sm);color:var(--ink-2);margin-top:.35rem;display:block}@media (width<=700px){.stat{border-right:0}}.callout{border-left:2px solid var(--accent-line);background:var(--accent-soft);font-size:var(--fs-sm);color:var(--ink);padding:1rem 1.2rem}.gallery{columns:3;column-gap:clamp(.7rem,1.6vw,1.1rem)}.gallery .gallery-item{break-inside:avoid;margin:0 0 clamp(.7rem,1.6vw,1.1rem)}.gallery-item{position:relative}.gallery-media{overflow:hidden}.gallery-media img,.gallery-media video{width:100%;height:auto;display:block}.gallery-media img{transition:transform .55s var(--ease)}.gallery-item:hover .gallery-media img{transform:scale(1.015)}.gallery-caption{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;align-items:baseline;gap:.55rem;margin-top:.5rem;line-height:1.5;display:flex}.gallery-index{color:var(--ink-3);flex:none}.gallery-caption-text{color:var(--ink-2);text-transform:none;letter-spacing:.01em}@media (width<=900px){.gallery{columns:2}}.timeline{border-left:2px solid var(--line-2);margin:0;padding:0 0 0 clamp(1.25rem,3vw,2.25rem);list-style:none;position:relative}.timeline-group{padding-bottom:clamp(1.75rem,3.2vw,2.75rem);position:relative}.timeline-group:last-child{padding-bottom:0}.timeline-group:before{content:"";background:var(--accent);width:11px;height:11px;box-shadow:0 0 0 3px var(--paper);z-index:1;border-radius:50%;position:absolute;top:.15rem;left:calc(-1*clamp(1.25rem,3vw,2.25rem) - 6.5px)}.timeline-group-head{align-items:baseline;gap:.9rem;margin-bottom:clamp(.85rem,1.8vw,1.25rem);display:flex}.timeline-group-head:after{content:"";background:var(--line-2);flex:1;height:1px;transform:translateY(-.3rem)}.timeline-when{font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:500}.timeline-note{font-size:var(--fs-sm);color:var(--ink-2)}.timeline-group-head.is-empty{margin-bottom:0}.timeline-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.7rem,1.6vw,1.1rem);display:grid}.timeline-item{margin:0}.timeline-item .figure-img{aspect-ratio:4/3;overflow:hidden}.timeline-item .figure-img img,.timeline-item .figure-img video{object-fit:cover;object-position:center 42%;width:100%;height:100%;display:block}.timeline-caption{font-size:var(--fs-sm);color:var(--ink-2);margin-top:.55rem}@media (width<=900px){.timeline-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.timeline-items{grid-template-columns:minmax(0,1fr)}}.media-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(1rem,2.4vw,2rem);display:grid}.media-split-col{gap:.8rem;min-width:0;display:grid}@media (width<=880px){.media-split{grid-template-columns:minmax(0,1fr)}}.pager{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:clamp(2rem,4vw,3rem);display:grid}.pager-link{transition:color .2s var(--ease);padding:1.1rem 0}.pager-link+.pager-link,.pager-link.is-next{border-left:1px solid var(--line);padding-left:clamp(1rem,2.5vw,2rem)}.pager-link:hover .pager-title{color:var(--accent)}.pager-link:hover .pager-label{color:var(--ink-2)}.pager-link.is-next{text-align:right}.pager-label{color:var(--ink-3);margin-bottom:.45rem;display:block}.pager-title{font-family:var(--font-display);font-size:var(--fs-h4);color:var(--ink);letter-spacing:-.015em;transition:color .2s var(--ease)}.pager-year{font-size:var(--fs-sm);color:var(--ink-3);margin-top:.3rem;display:block}@media (width<=620px){.pager{grid-template-columns:1fr}.pager-link.is-next{text-align:left;border-left:0;border-top:1px solid var(--line);padding-left:0}}.simple-body{border-top:1px solid var(--line);gap:1.05rem;max-width:64ch;margin-top:2rem;padding-top:1.75rem;display:grid}.simple-list{gap:.55rem;display:grid}.simple-list li{font-size:var(--fs-sm);color:var(--ink-2);padding-left:1.15rem;position:relative}.simple-list li:before{content:"";background:var(--line-2);width:4px;height:4px;position:absolute;top:.62em;left:0}.highlight-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);display:grid}.highlight-col{min-width:0}.highlight-title{font-size:var(--fs-h4);letter-spacing:-.015em}.highlight-text{font-size:var(--fs-sm);color:var(--ink-2);max-width:46ch;margin-top:.55rem}.highlight-contribution{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:.95rem}.highlight-contribution p{font-size:var(--fs-sm);color:var(--ink-2);max-width:46ch;margin:0}.highlight-media{margin-top:1.35rem}@media (width<=880px){.highlight-columns{grid-template-columns:minmax(0,1fr);gap:2rem}}.media-carousel{border:1px solid var(--line);background:var(--card)}.media-carousel-frame{aspect-ratio:16/9;background:#0e1013;position:relative;overflow:hidden}.media-carousel-frame img,.media-carousel-frame video{object-fit:contain;width:100%;height:100%}.media-carousel-frame.is-cover img,.media-carousel-frame.is-cover video{object-fit:cover}.carousel-nav{background:color-mix(in srgb, var(--paper) 88%, transparent);border:1px solid var(--line-2);width:36px;height:36px;color:var(--ink);transition:background-color .2s var(--ease), transform .2s var(--ease);border-radius:2px;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav:hover{background:var(--paper);transform:translateY(-50%)scale(1.04)}.carousel-prev{left:.6rem}.carousel-next{right:.6rem}.media-carousel-meta{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem .9rem;display:flex}.media-carousel-caption{font-size:var(--fs-sm);color:var(--ink-2)}.media-carousel-count{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.media-empty{aspect-ratio:16/9;border:1px dashed var(--line-2);color:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;place-items:center;gap:.6rem;display:grid}.cad-section{border-top:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem);padding-top:clamp(1.5rem,3vw,2rem)}.cad-viewer{aspect-ratio:16/9;border:1px solid var(--line);background:linear-gradient(180deg, var(--card) 0%, var(--paper-2) 100%);position:relative;overflow:hidden}.cad-viewer-canvas{position:absolute;inset:0}.cad-viewer-canvas canvas{cursor:grab;width:100%!important;height:100%!important}.cad-viewer-canvas canvas:active{cursor:grabbing}.cad-viewer-overlay{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);background:color-mix(in srgb, var(--card) 88%, transparent);border:1px solid var(--line);border-radius:2px;padding:.35rem .6rem;position:absolute;bottom:1rem;left:1rem}.contact-title{font-family:var(--font-display);letter-spacing:-.012em;max-width:48ch;color:var(--ink);font-size:clamp(1.1rem,1rem + .45vw,1.3rem);font-weight:400;line-height:1.5}.contact-mail{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--line-2);transition:color .2s var(--ease), border-color .2s var(--ease);margin-top:1.15rem;padding-bottom:.15rem;font-size:clamp(1.05rem,1rem + .5vw,1.4rem);display:inline-block}.contact-mail:hover{color:var(--accent);border-bottom-color:var(--accent)}.contact-links{flex-wrap:wrap;gap:.6rem;margin-top:1.75rem;display:flex}.footer{border-top:1px solid var(--line);padding-block:1.5rem 2.25rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-inner .eyebrow{align-items:center;gap:.5rem;display:inline-flex}.muted{color:var(--ink-3)}.reveal{opacity:0;transition:opacity .55s var(--ease), transform .55s var(--ease);transform:translateY(10px)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.season-link-text{grid-template-columns:minmax(0,1fr) auto}.block-body-media{display:flow-root}.block-body-media>.block-video,.block-body-media>.block-side-image{float:right;width:calc(50% - clamp(.75rem,1.5vw,1.5rem));margin:0 0 1.5rem clamp(1.5rem,3vw,3rem)}.block-body-media>.prose{max-width:none}.block-body-media .block-video video{display:block}@media (width<=800px){.block-body-media{flex-direction:column;gap:1.5rem;display:flex}.block-body-media>.block-video,.block-body-media>.block-side-image{float:none;order:1;width:100%;margin:0}}.prose-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:1.75rem;display:grid}.prose-figures img{border:1px solid var(--line);width:100%;height:auto;display:block}@media (width<=800px){.prose-figures{grid-template-columns:minmax(0,1fr)}}.callout>p+p,.callout>.simple-list{margin-top:1rem}.block-side-image img{border:1px solid var(--line);width:100%;height:auto;display:block}
