:root{color-scheme:dark;--bg:#0c0b0d;--bg-elevated:#151316;--text:#f2efea;--text-2:#c9c3bb;--text-3:#a39d95;--accent:#ffb866;--accent-soft:#ffcb8f;--accent-deep:#d98a2b;--accent-ink:#1c1206;--accent-fill:#ffb866;--accent-fill-hover:#ffc98b;--accent-glow:#ffb86638;--accent-glow-strong:#ffb8666b;--accent-tint:#ffb8661f;--surface:#ffffff0d;--surface-2:#ffffff12;--surface-3:#ffffff1a;--surface-solid:#16141a;--highlight:#ffffff14;--highlight-strong:#ffffff24;--shadow-sm:0 10px 30px -14px #0000008c;--shadow-md:0 24px 60px -24px #0009, 0 2px 8px -2px #00000059;--shadow-lg:0 40px 90px -30px #000000b3, 0 4px 14px -4px #0006;--header-bg:#1412168c;--focus:var(--accent);--ph-bg:#ffb86633;--ph-text:#ffd7a8;--r-sm:14px;--r-md:20px;--r-lg:28px;--r-xl:40px;--r-pill:999px;--font-display:"Instrument Serif", "Instrument Serif Fallback", Georgia, "Times New Roman", serif;--font-body:"Figtree", "Figtree Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-display:clamp(3.4rem, 1.8rem + 8vw, 8rem);--fs-h1:clamp(2.6rem, 1.6rem + 4.5vw, 5.25rem);--fs-h2:clamp(2rem, 1.4rem + 2.8vw, 3.6rem);--fs-h3:clamp(1.3rem, 1.15rem + .7vw, 1.75rem);--fs-h4:clamp(1.1rem, 1rem + .4vw, 1.3rem);--fs-lead:clamp(1.125rem, 1.02rem + .5vw, 1.35rem);--fs-body:1.0625rem;--fs-small:.9375rem;--fs-xs:.8125rem;--lh-tight:.98;--lh-snug:1.15;--lh-body:1.65;--measure:62ch;--gutter:clamp(16px, 5vw, 48px);--container:1180px;--section-gap:clamp(5rem, 4rem + 6vw, 9rem);--tap:44px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--d-150:.15s;--d-250:.25s;--d-500:.5s;--d-900:.9s}:root[data-theme=light]{color-scheme:light;--bg:#f5f5f7;--bg-elevated:#fff;--text:#141216;--text-2:#4a454e;--text-3:#625c66;--accent:#9a4f00;--accent-soft:#c26a0f;--accent-deep:#7a3f00;--accent-glow:#ffb86659;--accent-glow-strong:#ffb8668c;--accent-tint:#ffb86638;--surface:#ffffff9e;--surface-2:#ffffffc7;--surface-3:#ffffffeb;--surface-solid:#fff;--highlight:#ffffffe6;--highlight-strong:#fff;--shadow-sm:0 10px 30px -16px #281a0a33;--shadow-md:0 24px 60px -26px #281a0a38, 0 2px 8px -3px #281a0a14;--shadow-lg:0 40px 90px -32px #281a0a42, 0 4px 14px -5px #281a0a1a;--header-bg:#fff9;--focus:#9a4f00;--ph-bg:#ffb86652;--ph-text:#5c2f00}@font-face{font-family:Figtree Fallback;src:local(Arial),local(Helvetica Neue),local(Liberation Sans);size-adjust:98%;ascent-override:95%;descent-override:25%;line-gap-override:0%}@font-face{font-family:Instrument Serif Fallback;src:local(Georgia),local(Times New Roman);size-adjust:104%;ascent-override:88%;descent-override:22%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg);scroll-padding-top:6rem}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;overflow-x:clip}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg:#f5f5f7;--bg-elevated:#fff;--text:#141216;--text-2:#4a454e;--text-3:#625c66;--accent:#9a4f00;--accent-soft:#c26a0f;--accent-deep:#7a3f00;--accent-glow:#ffb86659;--accent-glow-strong:#ffb8668c;--accent-tint:#ffb86638;--surface:#ffffff9e;--surface-2:#ffffffc7;--surface-3:#ffffffeb;--surface-solid:#fff;--highlight:#ffffffe6;--highlight-strong:#fff;--shadow-sm:0 10px 30px -16px #281a0a33;--shadow-md:0 24px 60px -26px #281a0a38, 0 2px 8px -3px #281a0a14;--shadow-lg:0 40px 90px -32px #281a0a42, 0 4px 14px -5px #281a0a1a;--header-bg:#fff9;--focus:#9a4f00;--ph-bg:#ffb86652;--ph-text:#5c2f00}}::selection{background:var(--accent-glow-strong);color:var(--text)}img,picture,svg,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:400}h1,h2,.display{font-family:var(--font-display);letter-spacing:-.02em;line-height:var(--lh-snug)}h1{font-size:var(--fs-h1);letter-spacing:-.025em;line-height:var(--lh-tight)}h2{font-size:var(--fs-h2)}h3{font-family:var(--font-body);font-weight:600;font-size:var(--fs-h3);letter-spacing:-.015em;line-height:1.2}h4{font-family:var(--font-body);font-weight:600;font-size:var(--fs-h4);line-height:1.25}em{font-style:italic}p{margin:0}p+p{margin-top:1em}.lead{font-size:var(--fs-lead);color:var(--text-2);max-width:var(--measure);text-wrap:pretty;line-height:1.55}.muted{color:var(--text-2)}.small{font-size:var(--fs-small)}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-gap)}.section+.section{padding-top:0}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;margin-bottom:clamp(2rem,1.5rem + 2vw,3.5rem);display:flex}.section-head .eyebrow{color:var(--accent);font-weight:500;font-size:var(--fs-small);margin-bottom:.75rem}.section-head p{max-width:46ch;color:var(--text-2);text-wrap:pretty}.skip-link{z-index:100;border-radius:var(--r-pill);background:var(--accent-fill);color:var(--accent-ink);opacity:0;padding:.75rem 1.25rem;font-weight:600;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus-visible{opacity:1;transform:none}:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:var(--r-sm)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.ph{border-radius:var(--r-pill);background:var(--ph-bg);color:var(--ph-text);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.05em .5em;font-weight:500;display:inline}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--d-250);animation-timing-function:var(--ease-out)}.prose{max-width:var(--measure);color:var(--text-2);font-size:calc(var(--fs-body) + .03rem);line-height:1.75}.prose>*+*{margin-top:1.1em}.prose h2{font-family:var(--font-display);color:var(--text);margin-top:2.2em;margin-bottom:.5em;font-size:clamp(1.75rem,1.4rem + 1.4vw,2.5rem)}.prose>h2:first-child{margin-top:0}.prose h3{color:var(--text);margin-top:1.8em}.prose a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline 1px}.prose strong{color:var(--text);font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li::marker{color:var(--accent)}.prose li+li{margin-top:.35em}.prose blockquote{border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight);margin:1.5em 0;padding:1rem 1.5rem}.prose img{border-radius:var(--r-md)}.prose hr{background:var(--highlight);border:0;height:1px;margin:2.5em 0}.prose code{font-family:var(--font-mono);border-radius:var(--r-pill);background:var(--surface-2);padding:.15em .45em;font-size:.9em}.prose pre{border-radius:var(--r-md);background:var(--surface-solid);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-sm);padding:1.25rem 1.5rem;overflow-x:auto}.prose pre code{background:0 0;border-radius:0;padding:0}.glass{background:var(--surface);backdrop-filter:blur(24px)saturate(140%);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-md);border-radius:var(--r-lg);position:relative}.pill{border-radius:var(--r-pill);background:var(--surface-2);min-height:2.1rem;box-shadow:inset 0 1px 0 var(--highlight);color:var(--text-2);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:.5rem;padding:.35rem .9rem;font-weight:500;line-height:1.2;display:inline-flex}.pill-accent{background:var(--accent-tint);color:var(--accent)}.pill .k{color:var(--text-3);font-weight:400}.status-pill{min-height:var(--tap);border-radius:var(--r-pill);background:var(--surface-2);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-sm);color:var(--text-2);font-size:var(--fs-small);align-items:center;gap:.6rem;padding:.5rem 1.1rem .5rem .9rem;font-weight:500;display:inline-flex}.status-pill .dot{background:var(--accent-fill);border-radius:50%;flex:none;width:9px;height:9px;position:relative}.status-pill .dot:after{content:"";background:var(--accent-fill);opacity:.35;animation:pulse 2.4s var(--ease-in-out) infinite;border-radius:50%;position:absolute;inset:-4px}.btn{border-radius:var(--r-pill);white-space:nowrap;min-height:3rem;transition:transform var(--d-150) var(--ease-out), background-color var(--d-250) var(--ease-out), box-shadow var(--d-250) var(--ease-out), opacity var(--d-250) var(--ease-out);will-change:transform;justify-content:center;align-items:center;gap:.6rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent-fill);color:var(--accent-ink);box-shadow:0 10px 30px -10px var(--accent-glow-strong), inset 0 1px 0 #ffffff59}.btn-primary:hover{background:var(--accent-fill-hover);box-shadow:0 16px 40px -12px var(--accent-glow-strong), inset 0 1px 0 #fff6}.btn-secondary{background:var(--surface-2);color:var(--text);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-sm);backdrop-filter:blur(12px)}.btn-secondary:hover{background:var(--surface-3)}.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn .arrow{transition:transform var(--d-250) var(--ease-out)}.btn:hover .arrow{transform:translate(3px)}.btn-icon{background:var(--surface-2);width:3rem;height:3rem;color:var(--text);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-sm);border-radius:50%;padding:0}.btn-icon:hover{background:var(--surface-3);transform:translateY(-2px)}.btn-icon:active{transform:scale(.96)}.btn-icon svg{width:20px;height:20px}.btn-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn-row .spacer{width:.25rem}.link-arrow{min-height:var(--tap);color:var(--accent);align-items:center;gap:.4rem;font-weight:500;display:inline-flex}.link-arrow svg{transition:transform var(--d-250) var(--ease-out)}.link-arrow:hover svg{transform:translate(3px)}.header{z-index:50;padding:.75rem var(--gutter) 0;pointer-events:none;position:fixed;top:0;left:0;right:0}.header-pill{pointer-events:auto;width:100%;max-width:var(--container);border-radius:var(--r-pill);min-height:3.5rem;transition:background-color var(--d-250) var(--ease-out), box-shadow var(--d-250) var(--ease-out), -webkit-backdrop-filter var(--d-250);transition:background-color var(--d-250) var(--ease-out), box-shadow var(--d-250) var(--ease-out), backdrop-filter var(--d-250);background:0 0;justify-content:space-between;align-items:center;gap:.5rem;margin-inline:auto;padding:.4rem .5rem .4rem 1rem;display:flex;box-shadow:inset 0 1px #0000,0 0 #0000}.header.is-scrolled .header-pill,.header.is-open .header-pill{background:var(--header-bg);backdrop-filter:blur(20px)saturate(150%);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-md)}.brand{min-height:var(--tap);letter-spacing:-.01em;border-radius:var(--r-pill);align-items:center;gap:.6rem;padding-right:.5rem;font-weight:600;display:inline-flex}.brand-mark{background:radial-gradient(circle at 30% 30%, var(--accent-soft), var(--accent-fill) 55%, var(--accent-deep));width:26px;height:26px;box-shadow:0 6px 16px -6px var(--accent-glow-strong);border-radius:9px;flex:none}.nav{align-items:center;gap:.15rem;display:none}.nav a{min-height:var(--tap);border-radius:var(--r-pill);color:var(--text-2);font-weight:500;font-size:var(--fs-small);transition:background-color var(--d-150) var(--ease-out), color var(--d-150);align-items:center;padding:0 .95rem;display:inline-flex}.nav a:hover{background:var(--surface-2);color:var(--text)}.header-actions{align-items:center;gap:.35rem;display:flex}.icon-btn{width:var(--tap);height:var(--tap);color:var(--text);transition:background-color var(--d-150) var(--ease-out), transform var(--d-150) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:20px;height:20px}.menu-btn{min-height:var(--tap);border-radius:var(--r-pill);background:var(--surface-2);box-shadow:inset 0 1px 0 var(--highlight);font-weight:500;font-size:var(--fs-small);align-items:center;gap:.5rem;padding:0 1rem 0 1.1rem;display:inline-flex}.menu-btn .ic-close,.menu-btn[aria-expanded=true] .ic-menu{display:none}.menu-btn[aria-expanded=true] .ic-close{display:block}.menu-sheet{pointer-events:auto;max-width:var(--container);border-radius:var(--r-lg);background:var(--header-bg);backdrop-filter:blur(24px)saturate(150%);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-lg);margin:.5rem auto 0;padding:.75rem}.menu-sheet[hidden]{display:none}.menu-sheet a{border-radius:var(--r-sm);min-height:3rem;color:var(--text);align-items:center;padding:0 1rem;font-weight:500;display:flex}.menu-sheet a:hover{background:var(--surface-2)}@media (width>=860px){.nav{display:flex}.menu-btn,.menu-sheet{display:none!important}}.theme-toggle{position:relative}.theme-toggle svg{transition:transform var(--d-500) var(--ease-out), opacity var(--d-250) var(--ease-out);position:absolute}.theme-toggle .ic-sun{opacity:1;transform:rotate(0)scale(1)}.theme-toggle .ic-moon{opacity:0;transform:rotate(-90deg)scale(.6)}.is-light .theme-toggle .ic-sun{opacity:0;transform:rotate(90deg)scale(.6)}.is-light .theme-toggle .ic-moon{opacity:1;transform:rotate(0)scale(1)}.ambient{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.glow{background:radial-gradient(circle, var(--accent-glow-strong), transparent 65%);filter:blur(60px);opacity:.55;will-change:transform;border-radius:50%;position:absolute}.glow-1{width:60vw;max-width:820px;height:60vw;max-height:820px;top:-20%;right:-10%}.glow-2{opacity:.35;width:48vw;max-width:640px;height:48vw;max-height:640px;bottom:-25%;left:-12%}.glow-3{opacity:.25;width:30vw;max-width:420px;height:30vw;max-height:420px;top:40%;left:40%}.hero{padding-top:calc(6.5rem + 4vw);padding-bottom:clamp(3rem,2rem + 4vw,6rem);position:relative}.hero .container{z-index:1;align-items:end;gap:3rem;display:grid;position:relative}@media (width>=960px){.hero .container{grid-template-columns:minmax(0,1.5fr) minmax(300px,.9fr);gap:4rem}}.hero-name{font-size:var(--fs-display);letter-spacing:-.03em;max-width:10ch;margin:1.5rem 0 1.25rem;line-height:.95}.hero-name .word{vertical-align:bottom;margin-bottom:-.08em;padding-bottom:.08em;display:inline-block;overflow:hidden}.hero-name .word-inner{display:inline-block}.hero-subline{font-size:var(--fs-h4);color:var(--text);margin-bottom:1.25rem;font-weight:500}.hero .lead{margin-bottom:2rem}.now-card{border-radius:var(--r-lg);padding:1.5rem}.now-card h2{font-family:var(--font-body);font-size:var(--fs-small);color:var(--accent);letter-spacing:0;margin-bottom:1rem;font-weight:500}.now-rows{gap:.25rem;margin:0;display:grid}.now-row{border-radius:var(--r-sm);transition:background-color var(--d-150) var(--ease-out);grid-template-columns:6rem 1fr;align-items:baseline;gap:.75rem;padding:.75rem .85rem;display:grid}.now-row:hover{background:var(--surface)}.now-row dt{color:var(--text-3);font-size:var(--fs-small);font-weight:500}.now-row dd{color:var(--text);margin:0;font-weight:500}.card{border-radius:var(--r-lg);background:var(--surface);backdrop-filter:blur(20px)saturate(140%);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-md);transition:transform var(--d-500) var(--ease-out), box-shadow var(--d-500) var(--ease-out), opacity var(--d-250) var(--ease-out);isolation:isolate;flex-direction:column;padding:.75rem;display:flex;position:relative;overflow:hidden}.card:before{content:"";z-index:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), var(--accent-glow), transparent 60%);opacity:0;transition:opacity var(--d-500) var(--ease-out);pointer-events:none;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.card:hover{box-shadow:inset 0 1px 0 var(--highlight-strong), var(--shadow-lg);transform:translateY(-4px)}.card:hover:before{opacity:1}}.card>*{z-index:1;position:relative}.card-cover{aspect-ratio:16/10;border-radius:calc(var(--r-lg) - .75rem);background:var(--surface-2);position:relative;overflow:hidden}.card-cover picture,.project-cover picture{width:100%;height:100%;display:block}.card-cover img,.card-cover .cover-gradient{object-fit:cover;width:100%;height:100%;transition:transform var(--d-900) var(--ease-out)}.card:hover .card-cover img,.card:hover .card-cover .cover-gradient{transform:scale(1.03)}.cover-gradient{background:radial-gradient(120% 90% at 85% 10%, var(--accent-glow-strong), transparent 55%), radial-gradient(90% 80% at 10% 100%, var(--accent-glow), transparent 55%), linear-gradient(160deg, var(--surface-solid), var(--bg));align-items:flex-end;padding:1.25rem;display:flex}.cover-gradient span{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);text-wrap:balance;max-width:14ch;font-size:clamp(1.6rem,1.2rem + 1.5vw,2.4rem);line-height:1.05}.card-body{flex-direction:column;flex:1;gap:.75rem;padding:1.25rem .9rem .9rem;display:flex}.card-title a:after{content:"";z-index:2;border-radius:inherit;position:absolute;inset:0}.card-title a:focus-visible{outline:none}.card:has(.card-title a:focus-visible){outline:2px solid var(--focus);outline-offset:4px}.card-summary{color:var(--text-2);text-wrap:pretty}.card-meta{flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.5rem;display:flex}.card-meta .pill{min-height:1.9rem;font-size:var(--fs-xs);padding:.25rem .75rem}.bento{grid-template-columns:1fr;gap:1.25rem;display:grid}.grid-3{grid-template-columns:1fr;gap:1.25rem;margin-top:1.25rem;display:grid}@media (width>=680px){.bento{grid-template-columns:repeat(6,1fr)}.bento>:first-child{grid-column:span 4}.bento>:nth-child(2),.bento>:nth-child(3){grid-column:span 2}.bento>:nth-child(4){grid-column:span 4}.bento>:nth-child(3):last-child{grid-column:span 6}.bento>:nth-child(3):last-child .card-cover{aspect-ratio:16/5}.bento>:first-child .card-cover,.bento>:nth-child(4) .card-cover{aspect-ratio:16/8}.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.grid-3{grid-template-columns:repeat(3,1fr)}.bento>:first-child .card-cover,.bento>:nth-child(4) .card-cover{aspect-ratio:16/7.5}}.filters{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.chips{border-radius:var(--r-pill);background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight);flex-wrap:wrap;gap:.25rem;padding:.3rem;display:inline-flex;position:relative}.chip{z-index:1;border-radius:var(--r-pill);min-height:2.5rem;color:var(--text-2);font-weight:500;font-size:var(--fs-small);transition:color var(--d-250) var(--ease-out);align-items:center;padding:0 1.05rem;display:inline-flex;position:relative}.chip[aria-pressed=true]{color:var(--accent-ink)}.chip-indicator{z-index:0;border-radius:var(--r-pill);background:var(--accent-fill);width:0;height:2.5rem;box-shadow:0 8px 24px -10px var(--accent-glow-strong);transition:transform var(--d-500) var(--ease-out), width var(--d-500) var(--ease-out), opacity var(--d-250);opacity:0;position:absolute;top:.3rem;left:0}.chips.is-ready .chip-indicator{opacity:1}html:not(.js) .chip[aria-pressed=true]{background:var(--accent-fill)}.filter-count{color:var(--text-3);font-size:var(--fs-small)}.project-grid .card.is-hiding{opacity:0;transition:opacity .22s var(--ease-out), transform .22s var(--ease-out);transform:scale(.96)}.project-grid .card.is-entering{opacity:0;transform:scale(.96)}.project-grid .card[hidden]{display:none}.rows{gap:.75rem;display:grid}.row{border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight);transition:background-color var(--d-250) var(--ease-out), transform var(--d-250) var(--ease-out);gap:.5rem 2rem;padding:1.25rem 1.5rem;display:grid}.row:hover{background:var(--surface-2)}@media (width>=760px){.row{grid-template-columns:9rem 1fr;padding:1.5rem 1.75rem}}.row-period{color:var(--text-3);font-size:var(--fs-small);padding-top:.2rem}.row-role{color:var(--text-2);margin-top:.15rem}.row-text{color:var(--text-2);max-width:var(--measure);margin-top:.6rem}.empty{border-radius:var(--r-lg);gap:.5rem;max-width:60ch;padding:clamp(1.5rem,1rem + 2vw,2.5rem);display:grid}.empty h3{font-family:var(--font-display);font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);font-weight:400}.post-list{gap:.75rem;display:grid}.post-row{border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight);transition:background-color var(--d-250) var(--ease-out);gap:.25rem;padding:1.25rem 1.5rem;display:grid}.post-row:hover{background:var(--surface-2)}.post-row time{color:var(--text-3);font-size:var(--fs-small)}.about-grid{align-items:center;gap:2.5rem;display:grid}@media (width>=860px){.about-grid{grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr);gap:4rem}}.portrait{border-radius:var(--r-xl);aspect-ratio:4/5;max-width:420px;box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-lg);background:radial-gradient(120% 90% at 80% 15%, var(--accent-glow-strong), transparent 55%), radial-gradient(90% 80% at 15% 95%, var(--accent-glow), transparent 55%), linear-gradient(160deg, var(--surface-solid), var(--bg));overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.about-text{max-width:var(--measure);color:var(--text-2);font-size:var(--fs-lead);text-wrap:pretty;line-height:1.6}.footer-sheet{margin:0 var(--gutter) var(--gutter);border-radius:var(--r-xl);background:var(--surface);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-lg);padding:clamp(2.5rem,2rem + 4vw,5rem) clamp(1.5rem,1rem + 4vw,5rem);position:relative;overflow:hidden}.footer-sheet .ambient .glow{opacity:.3}.footer-inner{z-index:1;max-width:var(--container);margin-inline:auto;position:relative}.contact{gap:2rem;display:grid}@media (width>=1100px){.contact{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:3rem}}.contact h2{font-size:var(--fs-h1);max-width:12ch;margin-bottom:1rem}.contact-links{gap:.75rem;display:grid}.contact-item{border-radius:var(--r-md);background:var(--surface-2);min-height:3.5rem;box-shadow:inset 0 1px 0 var(--highlight);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .6rem .6rem 1.25rem;display:flex}.contact-item .label{color:var(--text-3);font-size:var(--fs-small);display:block}.contact-item .value{-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;font-weight:500}.contact-item .actions{gap:.35rem;display:flex}.copy-btn{border-radius:var(--r-pill);background:var(--surface-3);min-height:2.5rem;font-size:var(--fs-small);transition:background-color var(--d-150) var(--ease-out), transform var(--d-150) var(--ease-out);align-items:center;gap:.4rem;padding:0 .9rem;font-weight:500;display:inline-flex}.copy-btn:active{transform:scale(.97)}.copy-btn.is-done{background:var(--accent-tint);color:var(--accent)}.footer-bottom{color:var(--text-3);font-size:var(--fs-small);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:clamp(2.5rem,2rem + 3vw,4rem);display:flex}.footer-bottom nav{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.footer-bottom a{min-height:var(--tap);color:var(--text-2);align-items:center;display:inline-flex}.footer-bottom a:hover{color:var(--text)}.page-head{padding-top:calc(6.5rem + 3vw);padding-bottom:2.5rem;position:relative}.page-head .container{z-index:1;position:relative}.page-head h1{max-width:16ch;margin:1rem 0}.page-head .lead{margin-bottom:1.5rem}.meta-pills{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.project-cover{border-radius:var(--r-xl);aspect-ratio:16/8;box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-lg);margin:0 0 clamp(2rem,1.5rem + 3vw,4rem);overflow:hidden}.project-cover img,.project-cover .cover-gradient{object-fit:cover;width:100%;height:100%}.project-cover .cover-gradient span{max-width:16ch;font-size:clamp(2rem,1.4rem + 3vw,4rem)}.project-body{gap:3rem;display:grid}@media (width>=960px){.project-body{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:5rem}}.aside-card{border-radius:var(--r-lg);gap:1rem;padding:1.25rem;display:grid;position:sticky;top:6rem}.aside-card h2{font-family:var(--font-body);font-size:var(--fs-small);color:var(--accent);font-weight:500}.aside-card .links{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.aside-card .links a{min-height:var(--tap);border-radius:var(--r-sm);background:var(--surface-2);justify-content:space-between;align-items:center;padding:0 1rem;font-weight:500;display:flex}.aside-card .links a:hover{background:var(--surface-3)}.next-project{margin-top:var(--section-gap)}.next-project .card{max-width:560px}.back-link{min-height:var(--tap);color:var(--text-2);font-weight:500;font-size:var(--fs-small);align-items:center;gap:.4rem;display:inline-flex}.back-link svg{transition:transform var(--d-250) var(--ease-out);transform:rotate(180deg)}.back-link:hover{color:var(--text)}.back-link:hover svg{transform:rotate(180deg)translate(3px)}.notfound{text-align:left;place-items:center;min-height:70dvh;padding-top:6rem;display:grid}.notfound .display{font-size:var(--fs-display);line-height:.95}.meta-pills{padding:0;list-style:none}.meta-pills .pill{white-space:normal;max-width:100%}.role-line{max-width:var(--measure);color:var(--text-2);font-size:var(--fs-small);margin-top:.9rem}.role-line .k{color:var(--text-3);margin-right:.35rem}.hero .ambient,.page-head .ambient{inset:0 0 -20%;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.contact-item>div:first-child{flex:12rem;min-width:0}.contact-item .actions{flex:none}.hero-subline a{text-decoration:underline;text-decoration-color:var(--accent-glow-strong);text-underline-offset:.25em;transition:text-decoration-color var(--d-250) var(--ease-out), color var(--d-250) var(--ease-out);border-radius:6px;text-decoration-thickness:2px}.hero-subline a:hover{color:var(--accent);text-decoration-color:currentColor}@keyframes rise{0%{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;filter:blur(8px);transform:translateY(14px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:0;transform:scale(1.6)}}@keyframes drift-a{0%{transform:translate(0,0)scale(1)}to{transform:translate(-6vw,5vw)scale(1.12)}}@keyframes drift-b{0%{transform:translate(0,0)scale(1.05)}to{transform:translate(7vw,-4vw)scale(.95)}}@keyframes drift-c{0%{transform:translate(0,0)}to{transform:translate(4vw,6vw)scale(1.15)}}.hero-name .word-inner{animation:rise var(--d-900) var(--ease-out) both}.hero-name .word:nth-child(2) .word-inner{animation-delay:.1s}.fade-up{animation:fade-up var(--d-500) var(--ease-out) both;animation-delay:calc(.35s + var(--i,0) * 80ms)}.glow-1{animation:drift-a 38s var(--ease-in-out) infinite alternate}.glow-2{animation:drift-b 45s var(--ease-in-out) infinite alternate}.glow-3{animation:drift-c 32s var(--ease-in-out) infinite alternate}.js [data-reveal]{opacity:0;transition:opacity var(--d-900) var(--ease-out), transform var(--d-900) var(--ease-out);transition-delay:var(--delay,0s);transform:translateY(16px)}.js [data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.hero-name .word-inner,.fade-up,.glow{animation:none}.js [data-reveal]{opacity:1;transition:none;transform:none}.card:hover,.card:hover .card-cover img,.card:hover .card-cover .cover-gradient{transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}html.theming,html.theming body,html.theming .glass,html.theming .card,html.theming .row,html.theming .footer-sheet,html.theming .header-pill{transition:background-color .3s var(--ease-out), color .3s var(--ease-out), box-shadow .3s var(--ease-out)!important}html.theming::view-transition-old(root),html.theming::view-transition-new(root){animation-duration:.3s}html:not(.js) .menu-btn,html:not(.js) [data-copy]{display:none}.btn-sm{min-height:2.5rem;font-size:var(--fs-small);padding:.5rem 1rem}.contact .eyebrow{color:var(--accent);font-weight:500;font-size:var(--fs-small);margin-bottom:.75rem}
