.container{width:100%;max-width:calc(var(--max) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}main:focus{outline:none}.section{padding-block:var(--section)}.section+.section{border-top:1px solid var(--line)}.section--band{background:var(--paper-2);border-top:0!important}.section--band+.section{border-top:0}.section--tight{padding-block:calc(var(--section) * .6)}.lead{font-family:var(--font-display);font-size:var(--fs-lead);letter-spacing:-.015em;line-height:1.45;color:var(--ink-2);max-width:34ch}.meta{font-size:var(--fs-meta);letter-spacing:.01em}.meta,.muted{color:var(--muted)}.prose{max-width:var(--measure);display:grid;grid-gap:1.1em;gap:1.1em;color:var(--ink-2)}.prose--serif{font-family:var(--font-display);font-size:1.25rem;line-height:1.6}h2.section-title{font-size:var(--fs-h2);max-width:16ch}.section-sub{margin-top:1rem;color:var(--muted);max-width:42ch}.split{display:grid;grid-gap:2.5rem;gap:2.5rem}@media (min-width:900px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4rem}.split__head{position:-webkit-sticky;position:sticky;top:7rem;align-self:start}}.section-foot{margin-top:3rem;display:flex;flex-wrap:wrap;gap:.75rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid transparent;transition:border-color var(--t-med)}.site-header[data-scrolled=true]{border-bottom-color:var(--line)}.site-header__inner{display:flex;align-items:center;gap:1.5rem;min-height:4.5rem}.wordmark{font-family:var(--font-display);font-size:1.12rem;font-weight:600;letter-spacing:-.03em;text-decoration:none;margin-right:auto;white-space:nowrap}.wordmark span{color:var(--accent)}.nav{display:none}.nav a{position:relative;padding:.4rem 0;font-size:.92rem;color:var(--ink-2);text-decoration:none;transition:color var(--t-fast)}.nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--t-med) var(--ease-out)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:.5rem}.header-cta{display:none}@media (min-width:880px){.nav{display:flex;gap:2rem}.menu-btn{display:none!important}.header-cta{display:inline-flex}}.menu-sheet{position:fixed;inset:0;z-index:60;background:var(--paper);display:flex;flex-direction:column;overflow-y:auto;animation:sheet-in var(--t-med) var(--ease-out)}@keyframes sheet-in{0%{opacity:0;transform:translateY(-1.5rem)}}.menu-sheet__top{display:flex;align-items:center;justify-content:space-between;min-height:4.5rem}.menu-list{display:grid;padding-block:1.5rem 3rem}.menu-list a{display:grid;grid-gap:.1rem;gap:.1rem;padding:.9rem 0;border-bottom:1px solid var(--line);text-decoration:none}.menu-list a strong{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.1}.menu-list a span{font-size:var(--fs-small);color:var(--muted)}.menu-list a[aria-current=page] strong{color:var(--accent)}.hero{position:relative;padding-block:clamp(2rem,6vw,5rem) clamp(3rem,7vw,6rem);overflow:clip}.hero__grid{position:relative;display:grid;grid-gap:2.5rem;gap:2.5rem;align-items:end}@media (min-width:960px){.hero__grid{grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:3rem}}.hero__name{font-size:var(--fs-name);font-weight:650;line-height:.9;letter-spacing:-.055em;margin-left:-.04em}.hero__name .line{display:block;overflow:clip;padding-bottom:.06em}.hero__name .ch{display:inline-block;transform:translateY(105%);animation:rise var(--t-slow) var(--ease-out) forwards;animation-delay:calc(var(--i) * 28ms + 60ms)}.hero__name .line:nth-child(2){color:color-mix(in srgb,var(--ink) 62%,transparent)}@keyframes rise{to{transform:translateY(0)}}.hero__tagline{margin-top:clamp(1.75rem,4vw,2.75rem);font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.35rem);line-height:1.15;letter-spacing:-.01em;max-width:22ch}.hero__roles{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;font-size:var(--fs-small);color:var(--ink-2);list-style:none;padding:0}.hero__roles li:before{content:"";display:inline-block;width:5px;height:5px;margin-right:.55rem;border-radius:50%;background:var(--accent);vertical-align:middle;transform:translateY(-1px)}.hero__intro{margin-top:1.25rem;max-width:46ch;color:var(--muted)}.hero__actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}.hero__socials{margin-top:1.75rem}.fade-up{opacity:0;transform:translateY(14px);animation:fade-up var(--t-slow) var(--ease-out) forwards;animation-delay:var(--d,.6s)}@keyframes fade-up{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fade-up,.hero__name .ch{animation:none;transform:none;opacity:1}}.hero__visual{position:relative;aspect-ratio:4/5;width:100%;max-width:min(380px,74vw);justify-self:start}@media (min-width:960px){.hero__visual{justify-self:end}}.hero__scene{position:absolute;inset:-22% -30% -12% -30%;pointer-events:none;z-index:0}.hero__scene-static{position:absolute;inset:0;width:100%;height:100%;stroke:var(--accent);opacity:.55;transition:opacity 1s var(--ease-out)}.hero__scene-static circle{stroke-width:2.6}.hero__scene:has(canvas[data-ready=true]) .hero__scene-static{opacity:0}.hero__scene canvas{width:100%!important;height:100%!important;opacity:0;transition:opacity 1.4s var(--ease-out)}.hero__scene canvas[data-ready=true]{opacity:1}.hero__portrait{position:relative;z-index:1;height:100%;will-change:transform}.paths{margin-top:clamp(3rem,7vw,5rem);display:grid;border-top:1px solid var(--line)}@media (min-width:720px){.paths{grid-template-columns:repeat(4,minmax(0,1fr))}}.paths a{display:grid;grid-gap:.2rem;gap:.2rem;padding:1.1rem 1.25rem 1.1rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:color var(--t-fast)}@media (min-width:720px){.paths a{border-bottom:0;padding-right:1.5rem}.paths a+a{padding-left:1.25rem;border-left:1px solid var(--line)}}.paths .who{font-size:var(--fs-meta);color:var(--muted)}.paths .where{font-family:var(--font-display);font-size:1.25rem}.paths a:hover .where{color:var(--accent)}.frame{position:relative;overflow:hidden;border-radius:var(--r-frame);background:var(--paper-2)}.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}.frame--zoom:hover img,a:hover>.frame img{transform:scale(1.03)}.placeholder{position:relative;display:grid;place-items:center;width:100%;height:100%;min-height:10rem;border-radius:var(--r-frame);background:radial-gradient(120% 90% at 20% 0,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in srgb,var(--ink) 4%,transparent) 14px 15px),var(--paper-2);border:1px solid var(--line);color:var(--muted);text-align:center;overflow:hidden}.placeholder__mark{font-family:var(--font-serif);font-size:clamp(3.5rem,9vw,6rem);font-style:italic;line-height:1;color:color-mix(in srgb,var(--ink) 22%,transparent);letter-spacing:-.04em}.placeholder__label{position:absolute;left:.85rem;bottom:.75rem;right:.85rem;text-align:left;font-size:var(--fs-meta);color:var(--muted)}.socials{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;list-style:none;padding:0}.socials a{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem 0;font-size:var(--fs-small);color:var(--ink-2);text-decoration:none;transition:color var(--t-fast)}.socials a:hover{color:var(--accent)}.facts{display:grid;border-top:1px solid var(--line)}.facts>div{display:grid;grid-gap:.3rem;gap:.3rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}@media (min-width:640px){.facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}}.facts dt{font-size:var(--fs-meta);color:var(--muted)}.facts dd{font-family:var(--font-display);font-size:1.45rem;line-height:1.2}.facts dd small{display:block;margin-top:.25rem;font-family:var(--font-sans);font-size:var(--fs-small);color:var(--muted)}.statement{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,2rem);font-weight:500;line-height:1.25;letter-spacing:-.025em;max-width:28ch}.statement em{font-style:italic;color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-meta);color:var(--ink-2);background:var(--surface)}.chip--accent{border-color:color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent);background:var(--accent-soft)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.status-dot--live{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 20%,transparent)}.feature{display:grid;grid-gap:2rem;gap:2rem;padding:clamp(1.25rem,3vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);text-decoration:none;transition:border-color var(--t-med),box-shadow var(--t-med) var(--ease-out),transform var(--t-med) var(--ease-out)}@media (min-width:900px){.feature{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center}}a.feature:hover{border-color:var(--line-strong);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.feature__media{aspect-ratio:16/10}@media (min-width:900px){.feature--text{grid-template-columns:minmax(0,1fr);padding:clamp(2rem,4vw,3.5rem)}.feature--text .feature__body p{max-width:60ch}}.feature__title{font-size:clamp(2rem,4vw,3rem);margin-block:.75rem}.feature__body p{color:var(--ink-2);max-width:44ch}.feature__more{margin-top:1.5rem;display:inline-flex;font-size:var(--fs-small);color:var(--accent);border-bottom:1px solid;padding-bottom:2px}.project-list{display:grid;grid-gap:1.5rem;gap:1.5rem}@media (min-width:760px){.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-card{display:grid;grid-gap:1rem;gap:1rem;text-decoration:none}.project-card .frame,.project-card .placeholder{aspect-ratio:16/10}.project-card h3{font-size:1.7rem;transition:color var(--t-fast)}.project-card:hover h3{color:var(--accent)}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){[data-tilt]{transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform var(--t-med) var(--ease-out)}}.detail-hero{padding-block:clamp(2.5rem,6vw,5rem) 0}.detail-hero h1{font-size:var(--fs-h1);margin-block:1rem 1.25rem}.detail-cover{margin-top:clamp(2rem,5vw,3.5rem);aspect-ratio:16/8}.detail-grid{display:grid;grid-gap:3rem;gap:3rem}@media (min-width:960px){.detail-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:5rem}}.detail-aside{display:grid;grid-gap:1.75rem;gap:1.75rem;align-content:start}.detail-aside h2{font-family:var(--font-sans);font-size:var(--fs-meta);font-weight:500;color:var(--muted);letter-spacing:.01em;margin-bottom:.6rem}.detail-block+.detail-block{margin-top:3rem}.detail-block h2{font-size:var(--fs-h3);margin-bottom:1rem}.ticks{display:grid;grid-gap:.75rem;gap:.75rem;list-style:none;padding:0}.ticks li{position:relative;padding-left:1.6rem;color:var(--ink-2)}.ticks li:before{content:"";position:absolute;left:.15rem;top:.5em;width:.45rem;height:.45rem;border-radius:50%;border:1.5px solid var(--accent)}.shots{display:grid;grid-gap:1rem;gap:1rem}@media (min-width:700px){.shots{grid-template-columns:repeat(2,minmax(0,1fr))}}.shots figure{display:grid;grid-gap:.5rem;gap:.5rem}.shots .frame,.shots .placeholder{aspect-ratio:16/10}.shots figcaption{font-size:var(--fs-meta);color:var(--muted)}.timeline{display:grid;list-style:none;padding:0}.timeline>li{display:grid;grid-gap:.35rem;gap:.35rem;padding:1.5rem 0;border-top:1px solid var(--line)}@media (min-width:700px){.timeline>li{grid-template-columns:11rem minmax(0,1fr);gap:2rem}}.timeline .when{font-size:var(--fs-small);color:var(--muted);padding-top:.25rem}.timeline h3{font-size:1.5rem}.timeline .org{color:var(--ink-2);margin-top:.2rem}.timeline .summary{margin-top:.75rem;color:var(--ink-2)}.timeline .ticks{margin-top:.85rem}.badge-current{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-meta);color:var(--success)}.skill-groups{display:grid;grid-gap:2rem;gap:2rem}@media (min-width:700px){.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.skill-group h3{font-family:var(--font-sans);font-size:var(--fs-small);font-weight:500;color:var(--muted);margin-bottom:.85rem}.skill-group .chip{font-size:var(--fs-small);padding:.4rem .9rem}.chip .level{color:var(--muted)}.rows{display:grid;list-style:none;padding:0;border-top:1px solid var(--line)}.rows>li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.rows .title{font-family:var(--font-display);font-size:1.3rem}.stats{display:grid;grid-gap:1.25rem;gap:1.25rem}@media (min-width:640px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}.stat{padding-top:1rem;border-top:2px solid var(--ink)}.stat__value{font-family:var(--font-display);font-size:clamp(2.6rem,6vw,4rem);line-height:1;letter-spacing:-.03em}.stat__label{margin-top:.4rem;color:var(--ink-2)}.stat__note{margin-top:.4rem;font-size:var(--fs-meta);color:var(--muted)}.content-grid{display:grid;grid-gap:1.75rem 1.25rem;gap:1.75rem 1.25rem}@media (min-width:640px){.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1000px){.content-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.content-card{display:grid;grid-gap:.75rem;gap:.75rem;align-content:start;text-decoration:none}.content-card .frame,.content-card .placeholder{aspect-ratio:16/9}.content-card--portrait .frame,.content-card--portrait .placeholder{aspect-ratio:4/5}.content-card h3{font-size:1.3rem;line-height:1.2;transition:color var(--t-fast)}.content-card:hover h3{color:var(--accent)}.play{position:absolute;inset:0}.play,.play span{display:grid;place-items:center}.play span{width:3.5rem;height:3.5rem;border-radius:50%;background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--ink);transition:transform var(--t-med) var(--ease-out)}.content-card:hover .play span{transform:scale(1.08)}.platform-links{display:grid;grid-gap:.75rem;gap:.75rem}@media (min-width:640px){.platform-links{grid-template-columns:repeat(2,minmax(0,1fr))}}.platform-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;border:1px solid var(--line);border-radius:var(--r-panel);text-decoration:none;background:var(--surface);transition:border-color var(--t-fast),color var(--t-fast)}.platform-link:hover{border-color:var(--accent);color:var(--accent)}.platform-link strong{font-weight:500}.platform-link span{display:block;font-size:var(--fs-meta);color:var(--muted)}.empty{padding:2rem;border:1px dashed var(--line-strong);border-radius:var(--r-panel);color:var(--muted);text-align:center}.kit{display:grid;grid-gap:1.5rem;gap:1.5rem}@media (min-width:800px){.kit{grid-template-columns:repeat(3,minmax(0,1fr))}}.kit>div{padding-top:1rem;border-top:1px solid var(--line-strong)}.kit h3{font-size:1.25rem;margin-bottom:.5rem}.kit p{color:var(--ink-2);font-size:var(--fs-small)}.highlights{display:grid;grid-gap:1.5rem;gap:1.5rem}@media (min-width:800px){.highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}.highlight{position:relative;display:grid;align-content:space-between;grid-gap:3rem;gap:3rem;min-height:20rem;padding:clamp(1.5rem,3vw,2.25rem);border-radius:var(--r-panel);background:var(--ink);color:var(--paper);overflow:hidden}.highlight:nth-child(2n){background:var(--surface);color:var(--ink);border:1px solid var(--line)}.highlight .kind{font-size:var(--fs-meta);opacity:.7}.highlight h3{font-size:clamp(1.8rem,3.2vw,2.5rem);max-width:14ch}.highlight .focus{margin-top:.75rem;opacity:.8;max-width:36ch}.highlight:after{content:"";position:absolute;right:-18%;top:-30%;width:60%;aspect-ratio:1;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 22%,transparent);pointer-events:none}.highlight:nth-child(2n):after{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.title-sub{display:block;margin-top:.4em;font-size:.5em;color:var(--muted);letter-spacing:0}.interests{display:grid;list-style:none;padding:0;border-top:1px solid var(--line)}@media (min-width:760px){.interests{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}}.interests li{padding:1.35rem 0;border-bottom:1px solid var(--line)}.interests h3{font-size:1.45rem;margin-bottom:.35rem}.interests p{color:var(--muted);font-size:var(--fs-small)}.gallery{column-count:1;column-gap:1rem}@media (min-width:600px){.gallery{column-count:2}}@media (min-width:1000px){.gallery{column-count:3}}.gallery figure{page-break-inside:avoid;break-inside:avoid;margin-bottom:1rem;display:grid;grid-gap:.5rem;gap:.5rem}.gallery figcaption{font-size:var(--fs-meta);color:var(--muted)}.gallery .placeholder:nth-child(3n+1){aspect-ratio:4/5}.gallery .ph{page-break-inside:avoid;break-inside:avoid;margin-bottom:1rem}.gallery .ph:nth-child(3n+1) .placeholder{aspect-ratio:4/5}.gallery .ph:nth-child(3n+2) .placeholder{aspect-ratio:1}.gallery .ph:nth-child(3n) .placeholder{aspect-ratio:4/3}.horizons{display:grid;grid-gap:2.5rem 2rem;gap:2.5rem 2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.horizon>h3{display:flex;align-items:center;gap:.75rem;font-size:1.6rem;padding-bottom:1rem;border-bottom:1px solid var(--ink)}.horizon>h3:before{content:"";width:.65rem;height:.65rem;border-radius:50%;border:1.5px solid var(--accent)}.horizon:first-child>h3:before{background:var(--accent)}.horizon ul{display:grid;list-style:none;padding:0}.horizon li{padding:1.1rem 0;border-bottom:1px solid var(--line)}.horizon li .area{font-size:var(--fs-meta);color:var(--muted)}.horizon li h4{font-size:1.3rem;margin-block:.2rem .35rem}.horizon li p{font-size:var(--fs-small);color:var(--ink-2)}.goal-note{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border-radius:var(--r-pill);border:1px dashed var(--line-strong);font-size:var(--fs-meta);color:var(--muted)}.page-intro{padding-block:clamp(3rem,8vw,6.5rem) clamp(2.5rem,6vw,4.5rem)}.page-intro h1{font-size:var(--fs-h1);max-width:14ch}.page-intro .lead{margin-top:1.5rem;max-width:40ch}.page-intro--split{display:grid;grid-gap:2.5rem;gap:2.5rem;align-items:end}@media (min-width:900px){.page-intro--split{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:4rem}}.page-intro__media{aspect-ratio:4/5;max-width:360px}.page-intro__media>.frame{height:100%}.about-lines{display:grid;grid-gap:0;gap:0;list-style:none;padding:0;counter-reset:none}.about-lines li{font-family:var(--font-display);font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:500;letter-spacing:-.02em;line-height:1.3;padding:1.4rem 0;border-top:1px solid var(--line);max-width:32ch}.philosophy{font-family:var(--font-serif);font-style:italic;font-size:clamp(2rem,5vw,4rem);line-height:1.08;letter-spacing:-.02em;max-width:20ch}.philosophy:before{content:"“";color:var(--accent)}.philosophy:after{content:"”";color:var(--accent)}.traits{display:flex;flex-wrap:wrap;gap:.5rem .65rem;list-style:none;padding:0}.traits li{font-family:var(--font-display);font-size:clamp(1.25rem,2.4vw,1.75rem);color:var(--ink-2)}.traits li:not(:last-child):after{content:" /";color:var(--line-strong)}.contact-grid{display:grid;grid-gap:3rem;gap:3rem}@media (min-width:960px){.contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5rem}}.contact-email{font-family:var(--font-display);font-size:clamp(1.5rem,3.4vw,2.4rem);text-decoration:none;border-bottom:1px solid var(--line-strong);word-break:break-all;transition:color var(--t-fast),border-color var(--t-fast)}.contact-email:hover{color:var(--accent);border-color:var(--accent)}.form,.form-row{display:grid;grid-gap:1.25rem;gap:1.25rem}@media (min-width:640px){.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.privacy{font-size:var(--fs-meta);color:var(--muted);max-width:60ch}.category-pills{display:flex;flex-wrap:wrap;gap:.5rem;border:0;padding:0;margin:0}.category-pills legend{font-size:var(--fs-small);font-weight:500;color:var(--ink-2);margin-bottom:.5rem}.category-pills label{position:relative}.category-pills input{position:absolute;opacity:0;inset:0;cursor:pointer}.category-pills span{display:inline-flex;padding:.5rem .95rem;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:var(--fs-small);cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.category-pills input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}.category-pills input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.cta{display:grid;grid-gap:2rem;gap:2rem;align-items:end}@media (min-width:900px){.cta{grid-template-columns:minmax(0,1fr) auto}}.cta h2{font-size:clamp(2.4rem,6vw,5rem);max-width:14ch;letter-spacing:-.03em}.site-footer{border-top:1px solid var(--line);padding-block:3.5rem 2.5rem;font-size:var(--fs-small)}.footer-grid{display:grid;grid-gap:2.5rem;gap:2.5rem}@media (min-width:800px){.footer-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.4rem 2rem;gap:.4rem 2rem;list-style:none;padding:0}@media (min-width:600px){.footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}}.footer-links a{color:var(--ink-2);text-decoration:none}.footer-links a:hover{color:var(--accent)}.footer-tag{font-family:var(--font-display);font-size:1.6rem;line-height:1.2;max-width:18ch}.footer-base{margin-top:3rem;justify-content:space-between;gap:1rem;color:var(--muted);font-size:var(--fs-meta)}.footer-base,.preview-bar{display:flex;flex-wrap:wrap}.preview-bar{position:-webkit-sticky;position:sticky;top:0;z-index:70;align-items:center;justify-content:center;gap:.5rem 1rem;padding:.5rem 1rem;background:var(--accent);color:var(--accent-ink);font-size:var(--fs-small)}.preview-bar a{color:inherit;font-weight:500}.draft-flag{display:inline-flex;padding:.1rem .5rem;border-radius:var(--r-pill);background:var(--warning);color:var(--paper);font-size:.7rem;font-family:var(--font-sans);font-style:normal;letter-spacing:.02em;vertical-align:middle}html.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity var(--t-slow) var(--ease-out),transform var(--t-slow) var(--ease-out);transition-delay:var(--rd,0s)}html.js [data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transform:none}}.page-enter{animation:page-in .6s var(--ease-out)}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.page-enter{animation:none}}.loading{min-height:60vh;display:grid;place-items:center}.loading__bar{width:min(240px,50vw);height:1px;background:var(--line);overflow:hidden;position:relative}.loading__bar:after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);animation:load 1.1s var(--ease-in-out) infinite}@keyframes load{0%{transform:translateX(-100%)}to{transform:translateX(260%)}}[data-parallax]{will-change:transform}.pagehero{position:relative;overflow:clip;isolation:isolate}.pagehero:before,.section--stage:before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(90deg,rgb(255 255 255/.045) 1px,transparent 0),linear-gradient(180deg,rgb(255 255 255/.045) 1px,transparent 0);background-size:64px 64px;mask-image:radial-gradient(130% 90% at 20% 0,#000 25%,transparent 75%);-webkit-mask-image:radial-gradient(130% 90% at 20% 0,#000 25%,transparent 75%)}.pagehero:after{content:"";z-index:-2;width:min(70vw,820px);aspect-ratio:1;right:-18%;top:-55%;border-radius:50%;background:radial-gradient(closest-side,rgb(139 149 255/.22),transparent)}.pagehero:after,.stage-glow{position:absolute;pointer-events:none}.stage-glow{inset:0;z-index:-1;background-image:linear-gradient(90deg,rgb(139 149 255/.4) 1px,transparent 0),linear-gradient(180deg,rgb(139 149 255/.4) 1px,transparent 0);background-size:64px 64px;mask-image:radial-gradient(220px circle at var(--gx,-999px) var(--gy,-999px),#000,transparent 70%);-webkit-mask-image:radial-gradient(220px circle at var(--gx,-999px) var(--gy,-999px),#000,transparent 70%);opacity:0;transition:opacity .5s var(--ease-out)}.is-live>.stage-glow{opacity:1}.pagehero__mark{position:absolute;z-index:-1;right:-.04em;bottom:-.2em;font-family:var(--font-display);font-weight:800;font-size:clamp(6rem,21vw,19rem);line-height:1;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgb(255 255 255/.09);white-space:nowrap;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:mark-in 1.4s var(--ease-out) both}@keyframes mark-in{0%{opacity:0;transform:translateY(.15em)}}.pagehero .page-intro{padding-block:clamp(3rem,8vw,6.5rem) clamp(3.5rem,8vw,6.5rem)}.pagehero .page-intro h1{font-size:clamp(2.8rem,7.4vw,6rem);letter-spacing:-.045em;line-height:.98}.kicker,.pagehero .page-intro--split{align-items:center}.kicker{display:inline-flex;gap:.6rem;margin-bottom:1.5rem;padding:.35rem .8rem .35rem .65rem;border:1px solid var(--line-strong);border-radius:999px;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:.78rem;color:var(--ink-2);background:rgb(255 255 255/.03)}.kicker__dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:kicker-pulse 2.4s ease-in-out infinite}@keyframes kicker-pulse{50%{box-shadow:0 0 0 7px transparent}}.page-intro--res{display:grid;grid-gap:2.5rem;gap:2.5rem;align-items:end}@media (min-width:900px){.page-intro--res{grid-template-columns:minmax(0,1fr) auto}}.hero-figs{display:flex;gap:0;border:1px solid var(--line-strong);border-radius:var(--r-panel);background:rgb(255 255 255/.025);overflow:hidden}.hero-figs>div{padding:1rem 1.4rem;min-width:7.5rem}.hero-figs>div+div{border-left:1px solid var(--line-strong)}.hero-figs dt{font-size:var(--fs-meta);color:var(--muted)}.hero-figs dd{margin:.2rem 0 0;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.8rem);font-weight:650;letter-spacing:-.04em;line-height:1.05}.framed{position:relative;justify-self:end;width:100%}.framed:before{content:"";position:absolute;left:50%;top:50%;width:122%;aspect-ratio:1;translate:-50% -50%;z-index:-1;border:1px solid rgb(139 149 255/.3);border-radius:50%;background:radial-gradient(circle at 50% .5px,#aab1ff 0 4px,rgb(139 149 255/.35) 5px,transparent 14px);animation:orbit 28s linear infinite;pointer-events:none}.framed :where(img,.ph-frame,.placeholder){border-radius:var(--r-panel);box-shadow:0 30px 80px -30px rgb(0 0 0/.8)}@keyframes orbit{to{rotate:1turn}}.platforms{list-style:none;padding:0;display:grid;grid-gap:1rem;gap:1rem;width:100%;max-width:26rem;justify-self:end}.platform{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon name" "icon what" "icon go";grid-column-gap:1rem;column-gap:1rem;grid-row-gap:.1rem;row-gap:.1rem;padding:1.25rem 1.4rem;border:1px solid var(--line-strong);border-radius:var(--r-panel);background:linear-gradient(140deg,rgb(255 255 255/.05),rgb(255 255 255/.01));text-decoration:none;color:var(--ink);overflow:hidden;transition:transform var(--t-med) var(--ease-out),border-color var(--t-med)}.platform:after{content:"";position:absolute;inset:auto -20% -60% auto;width:60%;aspect-ratio:1;border-radius:50%;opacity:.35;transition:opacity var(--t-med)}.platform--yt:after{background:radial-gradient(closest-side,#ff3b3b,transparent)}.platform--ig:after{background:radial-gradient(closest-side,#e1306c,transparent)}.platform:hover{transform:translateY(-3px);border-color:var(--ink-2)}.platform:hover:after{opacity:.6}.platform__icon{grid-area:icon;display:grid;place-items:center;width:3rem;height:3rem;border-radius:12px;background:rgb(255 255 255/.07)}.platform__icon .icon{width:22px;height:22px}.platform__name{grid-area:name;font-family:var(--font-display);font-weight:600;font-size:1.2rem}.platform__what{grid-area:what;color:var(--muted);font-size:var(--fs-small)}.platform__go{grid-area:go;margin-top:.6rem;font-size:var(--fs-small);color:var(--accent)}.platform__go:after{content:" →"}.marquee{position:relative;overflow:hidden;border-top:1px solid var(--line);padding-block:1.1rem;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee__track{display:flex;width:max-content;animation:marquee var(--dur,40s) linear infinite}.marquee:hover .marquee__track{animation-play-state:paused}.marquee ul{display:flex;list-style:none;padding:0;margin:0}.marquee li{display:flex;align-items:center;font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.5rem);font-weight:500;letter-spacing:-.02em;color:var(--ink-2);white-space:nowrap}.marquee li:after{content:"/";margin-inline:1.6rem;font-size:.7em;color:var(--accent)}@keyframes marquee{to{transform:translateX(-50%)}}main{counter-reset:sec}.split__head{counter-increment:sec}.split__head:before{content:counter(sec,decimal-leading-zero);display:flex;align-items:center;gap:.75rem;margin-bottom:1.1rem;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:.78rem;color:var(--accent)}.split__head:after{content:"";display:block;width:3rem;height:2px;margin-top:1.4rem;border-radius:2px;background:var(--accent);transform-origin:left;animation:grow-line linear both;animation-timeline:view();animation-range:entry 10% cover 35%}@keyframes grow-line{0%{transform:scaleX(0)}}.spot{--mx:50%;--my:50%;position:relative;isolation:isolate}@media (hover:hover) and (pointer:fine){.spot:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(360px circle at var(--mx) var(--my),var(--accent-soft),transparent 65%);opacity:0;transition:opacity var(--t-med)}.spot:hover:before{opacity:1}}.timeline{gap:1rem;position:relative}.timeline>li.spot{padding:clamp(1.25rem,2.6vw,1.9rem);border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);transition:border-color var(--t-med),transform var(--t-med) var(--ease-out)}.timeline>li.spot:hover{border-color:var(--line-strong);transform:translateY(-2px)}.timeline>li.spot h3{font-size:clamp(1.35rem,2.2vw,1.7rem)}.skill-groups{gap:1rem}.skill-group.spot{padding:1.4rem;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.skill-group h3{display:flex;align-items:center;gap:.6rem;color:var(--ink);font-weight:600}.topic-icon{display:inline-grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;border-radius:10px;background:var(--accent-soft);color:var(--accent);transition:transform var(--t-med) var(--ease-out)}.spot:hover .topic-icon{transform:rotate(-8deg) scale(1.08)}.interests{gap:1rem;border-top:0}.interests>li.spot{display:grid;align-content:start;grid-gap:.35rem;gap:.35rem;padding:1.4rem;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);transition:border-color var(--t-med),transform var(--t-med) var(--ease-out)}.interests>li.spot:hover{border-color:var(--line-strong);transform:translateY(-3px)}.interests>li.spot .topic-icon{margin-bottom:.75rem}.interests>li.spot h3{font-size:1.25rem;margin-bottom:0}@media (min-width:760px){.interests{column-gap:1rem}}.section--band .interests>li.spot,.section--band .skill-group.spot{background:var(--paper)}.certs{list-style:none;padding:0;display:grid;grid-gap:1rem;gap:1rem}@media (min-width:640px){.certs{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}}.certs>li{display:grid;grid-template-columns:auto 1fr;grid-column-gap:1rem;column-gap:1rem;align-items:center;padding:1.2rem;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.certs__mono{grid-row:span 2;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;font-weight:700;font-size:1.2rem;color:var(--accent-ink);background:conic-gradient(from 200deg,var(--accent),color-mix(in srgb,var(--accent) 45%,#fff),var(--accent))}.certs .title,.certs__mono{font-family:var(--font-display)}.certs .title{font-weight:600;font-size:1.1rem}.certs .meta a{display:inline-block}.about-lines--num{counter-reset:line}.about-lines--num li{counter-increment:line;position:relative;padding-left:3.2rem}.about-lines--num li:before{content:counter(line,decimal-leading-zero);position:absolute;left:0;top:1.75rem;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:.8rem;color:var(--accent)}.kit--steps{counter-reset:kit}.kit--steps>div{counter-increment:kit;position:relative;padding:1.5rem;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.kit--steps>div:before{content:counter(kit);display:grid;place-items:center;width:2.2rem;height:2.2rem;margin-bottom:1.2rem;border-radius:50%;border:1px solid var(--accent);color:var(--accent);font-family:var(--font-display);font-weight:600}@media (min-width:800px){.kit--steps>div+div:after{content:"";position:absolute;top:2.6rem;right:calc(100% + 1px);width:1.5rem;border-top:1px dashed var(--line-strong)}}.section--stage{position:relative;overflow:clip;isolation:isolate;border-top:0!important}.section--stage+.section{border-top:0}.section--stage .philosophy{position:relative}.section--stage .philosophy:before{content:"“";position:absolute;left:-.05em;top:-.55em;z-index:-1;font-size:4em;line-height:1;color:var(--accent);opacity:.18}.pagehero+.section{border-top:0}@media (prefers-reduced-motion:reduce){.framed:before,.kicker__dot,.marquee__track,.pagehero__mark,.split__head:after{animation:none}.marquee__track{flex-wrap:wrap}}.pagehero+.container{padding-top:clamp(2.5rem,6vw,4.5rem)}.platforms--row{max-width:none;justify-self:start;margin-top:2rem}@media (min-width:560px){.platforms--row{grid-template-columns:1fr 1fr}}.pagehero+.section{padding-top:clamp(3rem,7vw,5rem)!important}.pwin{overflow:hidden;border:1px solid #262833;border-radius:var(--r-panel);background:#0c0d12;color:#eceef6;box-shadow:0 30px 70px -40px rgb(0 0 0/.6)}.pwin__bar{display:flex;align-items:center;gap:.4rem;padding:.7rem .9rem;border-bottom:1px solid #262833;background:#14151c}.pwin__bar>span:not(.pwin__url){width:.6rem;height:.6rem;border-radius:50%;background:#333645}.pwin__url{margin-inline:auto;padding:.2rem 1.2rem;border-radius:999px;background:#0c0d12;font-size:.75rem;color:#a3a8bb}.pwin__body{position:relative;padding:clamp(1.5rem,3vw,2.25rem);min-height:15rem;background-image:radial-gradient(60% 80% at 85% 20%,rgb(139 149 255/.22),transparent 70%),linear-gradient(90deg,rgb(255 255 255/.05) 1px,transparent 0),linear-gradient(180deg,rgb(255 255 255/.05) 1px,transparent 0);background-size:auto,32px 32px,32px 32px}.pwin__title{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:650;letter-spacing:-.03em}.pwin__body ul{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;grid-gap:.5rem;gap:.5rem}.pwin__body li{padding:.55rem .8rem;border:1px solid #262833;border-radius:10px;background:rgb(12 13 18/.75);font-size:.85rem;color:#c9cddb}.home-project__head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:2rem}.kicker{padding:0;border:0;border-radius:0;background:none;font-family:var(--font-body);font-size:var(--fs-small);font-weight:500;letter-spacing:.02em;color:var(--muted);gap:.75rem}.kicker__bar{width:1.75rem;height:2px;border-radius:2px;background:var(--accent)}.detail-visual{width:100%}.detail-visual :where(img,.frame){border-radius:var(--r-panel)}@media (min-width:900px){.detail-hero2{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)!important}}.notfound{min-height:100vh;display:flex;align-items:center;background:var(--paper);color:var(--ink)}.notfound .lead{margin-top:1.25rem}.notfound__links{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:2rem 0 0}.notfound__links a{display:inline-block;padding:.6rem 1.1rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);text-decoration:none;transition:border-color var(--t-med),background var(--t-med)}.notfound__links a:hover{border-color:var(--accent);background:var(--accent-soft)}.pwin__shot{position:relative;aspect-ratio:2640/1239;background:#f5f6f8}.pwin__shot>.frame{position:absolute;inset:0;height:100%;border-radius:0}.pwin__shot img{object-fit:cover;object-position:left top;border-radius:0!important}