@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap');
:root{
--paper:#F9F7F5;--paper-sunk:#F1EEEA;
--ink:#0A0A0A;--ink-secondary:#6B6B6B;--ink-tertiary:#8A8A8A;
--rule:#E5E2DE;--rule-strong:#1A1A1A;--accent:#0A0A0A;--link-hover:#E0231B;
--selection-bg:#0A0A0A;--selection-fg:#F9F7F5;
--font-sans:"Inter Tight","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;
--type-display:clamp(36px,6vw,72px);--lh-display:1.05;--tr-display:-0.03em;
--type-h1:clamp(26px,3.2vw,32px);--lh-h1:1.125;--tr-h1:-0.02em;
--type-h2:clamp(20px,2.4vw,24px);--lh-h2:1.25;--tr-h2:-0.015em;
--type-h3:18px;--lh-h3:1.3333;--tr-h3:-0.01em;
--type-lede:clamp(17px,2vw,20px);--lh-lede:1.45;--tr-lede:-0.01em;
--type-body:16px;--lh-body:1.5;--type-body-sm:14px;--lh-body-sm:1.5;
--type-meta:12px;--lh-meta:1.5;--type-label:11px;--lh-label:1.4545;--tr-label:0.10em;
--measure-prose:68ch;--measure-lede:46ch;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
--paper:#141210;--paper-sunk:#1C1A17;--ink:#E8E4DE;--ink-secondary:#A6A099;--ink-tertiary:#7A756E;
--rule:#2E2B27;--rule-strong:#E8E4DE;--accent:#E8E4DE;--link-hover:#FF5C4E;
--selection-bg:#E8E4DE;--selection-fg:#141210;}}
[data-theme="dark"]{
--paper:#141210;--paper-sunk:#1C1A17;--ink:#E8E4DE;--ink-secondary:#A6A099;--ink-tertiary:#7A756E;
--rule:#2E2B27;--rule-strong:#E8E4DE;--accent:#E8E4DE;--link-hover:#FF5C4E;
--selection-bg:#E8E4DE;--selection-fg:#141210;}
*{box-sizing:border-box;margin:0;border-radius:0!important;box-shadow:none!important}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);
font-feature-settings:"ss03" 1,"cv05" 1,"cv08" 1,"tnum" 1;
font-size:var(--type-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-weight:500;text-wrap:balance}
p{text-wrap:pretty}
img,video{max-width:100%}
::selection{background:var(--selection-bg);color:var(--selection-fg)}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:0.2em;transition:text-decoration-color 140ms cubic-bezier(.2,0,.2,1)}
a:hover{text-decoration-color:var(--link-hover)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.page{width:100%;max-width:1280px;margin:0 auto;padding:0 40px 40px}
.sheet{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;grid-template-rows:auto 1fr auto;min-height:100vh;padding-top:40px}
.skip{position:absolute;left:-9999px}
.skip:focus{position:static;display:inline-block;margin:16px 0;font-family:var(--font-mono);font-size:var(--type-meta)}
.h1:hover{color:var(--ink)}
.h2:hover{text-decoration:underline;text-decoration-color:var(--link-hover)}
.h3:hover{color:var(--ink);text-decoration-color:var(--link-hover)}
nav[aria-label="Primary"] a:hover,[data-primary-nav] a:hover{text-decoration:underline!important;text-decoration-color:var(--link-hover)!important;text-underline-offset:0.25em}
header[data-bar]{transition:transform 160ms cubic-bezier(.2,0,.2,1)}
header[data-bar][data-collapsed="1"]{transform:translateY(-100%);visibility:hidden}
header[data-bar][data-collapsed="0"]{transform:translateY(0);visibility:visible}
[data-mask]{position:relative}
[data-mask]::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:16px;background:var(--paper)}
[data-egg]{cursor:default}
[data-egg="magnify"]{transition:font-size 160ms cubic-bezier(.2,0,.2,1)}
[data-egg="magnify"] span{display:inline-block;vertical-align:baseline;transition:font-size 160ms cubic-bezier(.2,0,.2,1)}
[data-egg="magnify"]:hover span:nth-child(1),[data-egg="magnify"]:hover span:nth-child(13){font-size:1.06em}
[data-egg="magnify"]:hover span:nth-child(2),[data-egg="magnify"]:hover span:nth-child(12){font-size:1.14em}
[data-egg="magnify"]:hover span:nth-child(3),[data-egg="magnify"]:hover span:nth-child(11){font-size:1.24em}
[data-egg="magnify"]:hover span:nth-child(4),[data-egg="magnify"]:hover span:nth-child(10){font-size:1.36em}
[data-egg="magnify"]:hover span:nth-child(5),[data-egg="magnify"]:hover span:nth-child(9){font-size:1.46em}
[data-egg="magnify"]:hover span:nth-child(6),[data-egg="magnify"]:hover span:nth-child(8){font-size:1.54em}
[data-egg="magnify"]:hover span:nth-child(7){font-size:1.58em}
@keyframes eggShimmer{from{background-position:150% 0}to{background-position:-50% 0}}
[data-egg="sparkle"]:hover{background-size:320% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;animation:eggShimmer 2200ms linear infinite;
background-image:linear-gradient(105deg,var(--ink-secondary) 0%,var(--ink-secondary) 26%,color-mix(in oklab,var(--link-hover) 25%,var(--ink-secondary)) 38%,color-mix(in oklab,var(--link-hover) 65%,var(--ink-secondary)) 45%,var(--link-hover) 50%,color-mix(in oklab,var(--link-hover) 65%,var(--ink-secondary)) 55%,color-mix(in oklab,var(--link-hover) 25%,var(--ink-secondary)) 62%,var(--ink-secondary) 74%,var(--ink-secondary) 100%)}
[data-grid="1"] [data-egg="magnify"]:hover,[data-grid="1"] [data-egg="magnify"]:hover span{font-size:1em!important}
[data-grid="1"] [data-egg="sparkle"]:hover{animation:none!important;background-image:none!important;color:var(--ink-secondary)!important}
@media (hover:none){
[data-egg="magnify"]:hover span{font-size:1em!important}
[data-egg="sparkle"]:hover{animation:none!important;background-image:none!important;color:var(--ink-secondary)!important}
[data-egg="magnify"][data-tap] span:nth-child(1),[data-egg="magnify"][data-tap] span:nth-child(13){font-size:1.06em!important}
[data-egg="magnify"][data-tap] span:nth-child(2),[data-egg="magnify"][data-tap] span:nth-child(12){font-size:1.14em!important}
[data-egg="magnify"][data-tap] span:nth-child(3),[data-egg="magnify"][data-tap] span:nth-child(11){font-size:1.24em!important}
[data-egg="magnify"][data-tap] span:nth-child(4),[data-egg="magnify"][data-tap] span:nth-child(10){font-size:1.36em!important}
[data-egg="magnify"][data-tap] span:nth-child(5),[data-egg="magnify"][data-tap] span:nth-child(9){font-size:1.46em!important}
[data-egg="magnify"][data-tap] span:nth-child(6),[data-egg="magnify"][data-tap] span:nth-child(8){font-size:1.54em!important}
[data-egg="magnify"][data-tap] span:nth-child(7){font-size:1.58em!important}
[data-egg="sparkle"][data-tap]{background-size:320% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:eggShimmer 2200ms linear infinite!important;
background-image:linear-gradient(105deg,var(--ink-secondary) 0%,var(--ink-secondary) 26%,color-mix(in oklab,var(--link-hover) 25%,var(--ink-secondary)) 38%,color-mix(in oklab,var(--link-hover) 65%,var(--ink-secondary)) 45%,var(--link-hover) 50%,color-mix(in oklab,var(--link-hover) 65%,var(--ink-secondary)) 55%,color-mix(in oklab,var(--link-hover) 25%,var(--ink-secondary)) 62%,var(--ink-secondary) 74%,var(--ink-secondary) 100%)!important}
}

/* ---- responsive ---- */
@media (max-width:900px){
.page{padding:0 20px 32px}
.sheet{display:block;padding-top:24px}
[style*="repeat(12,1fr)"]{display:block!important}
[style*="grid-column:1/3"]{border-right:none!important;padding-right:0!important;margin-bottom:12px!important}
[style*="grid-column:10/13"],[style*="grid-column:3/9"],[style*="grid-column:3/13"],[style*="grid-column:3/11"],[style*="grid-column:1/5"],[style*="grid-column:5/11"],[style*="grid-column:11/13"],[style*="grid-column:1/13"],[style*="grid-column:3/7"],[style*="grid-column:8/13"]{margin-bottom:0}
[style*="grid-column:10/13"]{margin-top:24px!important}
[style*="grid-column:11/13"]{justify-content:flex-start!important;margin-top:12px!important}
[style*="grid-column:8/13"],[style*="grid-column:3/7"]{margin-top:24px!important}
[style*="repeat(4,1fr)"],[style*="repeat(3,1fr)"]{grid-template-columns:1fr 1fr!important}
[style*="minmax(0,220px)"]{grid-template-columns:1fr!important;gap:20px!important}
[style*="grid-template-columns:64px 1fr auto"],[style*="grid-template-columns:80px 1fr auto"]{grid-template-columns:1fr!important;gap:4px!important}
[style*="grid-template-columns:64px 1fr auto auto"]{grid-template-columns:1fr!important;gap:4px!important}
[style*="text-align:right"]{text-align:left!important}
[style*="justify-content:flex-end"]{justify-content:flex-start!important}
nav{flex-wrap:wrap!important}
img[data-fig]{height:min(60vh,480px)!important;width:auto!important;max-width:none!important}
[style*="height:608px"][style*="overflow-x:auto"]{height:auto!important}
[style*="width:791px"]{width:100%!important}
footer{margin-top:56px!important}
main{gap:56px!important;padding-top:40px!important}
[style*="width:280px"][style*="overflow:hidden"]{height:min(60vh,480px)!important;aspect-ratio:280/574;width:auto!important;max-width:100%}
video[data-autoloop]{width:100%!important;height:105.6%!important;margin:0!important;transform:translateY(-5.3%)}
[style*="display:flex;gap:24px;align-items:flex-start"]{flex-direction:column!important}
/* header rows stay on one line instead of stacking */
header[data-bar],body > .page > header > div,body > .page > header[style*="repeat(12,1fr)"],body > .page.sheet > div[style*="grid-row:1"]{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:6px 16px!important}
header[data-bar] > *,body > .page > header > div > *,body > .page > header[style*="repeat(12,1fr)"] > *,body > .page.sheet > div[style*="grid-row:1"] > *{grid-column:auto!important;margin:0!important;justify-content:flex-start!important}
header[data-bar] nav,body > .page > header nav{gap:16px!important;flex:0 1 auto!important}
body > .page > header > div:last-child{font-size:var(--type-label)}
body > .page > header > div:last-child nav{flex-basis:100%!important}
}
@media (max-width:520px){
[style*="repeat(4,1fr)"],[style*="repeat(3,1fr)"]{grid-template-columns:1fr!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:0ms!important}html{scroll-behavior:auto}}

/* offset anchor jumps so headings don't sit flush to the viewport top */
:target{scroll-margin-top:96px}
#work,#contact,#about{scroll-margin-top:96px}
/* persistent header on detail pages */
body > .page > header,body > .page.sheet > div[style*="grid-row:1"]{position:sticky;top:0;z-index:5;background:var(--paper)}
body > .page > main [id]{scroll-margin-top:120px}
@media (max-width:900px){
body > .page > header,body > .page.sheet > div[style*="grid-row:1"]{position:static}
body > .page > main [id]{scroll-margin-top:24px}
:target,#work,#contact,#about{scroll-margin-top:24px}
}
