@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.action-icon[data-astro-cid-vucnfbuo]{pointer-events:none;flex:none}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{color-scheme:dark;--header-height:58px;--layout-inline-pad:clamp(.8rem, 2.6vw, 2rem);--layout-top-offset-safe:calc(var(--header-height) + clamp(.7rem, 1.8vw, 1.2rem));--layout-top-offset-flush:0px;--space-3xs:clamp(.1rem, .28vw, .18rem);--space-2xs:clamp(.22rem, .45vw, .32rem);--space-xs:clamp(.34rem, .7vw, .48rem);--space-sm:clamp(.5rem, 1vw, .72rem);--space-md:clamp(.72rem, 1.4vw, 1rem);--space-lg:clamp(1rem, 2vw, 1.4rem);--space-xl:clamp(1.35rem, 2.8vw, 2rem);--space-2xl:clamp(1.8rem, 4vw, 2.8rem);--space-3xl:clamp(2.6rem, 6vw, 4.4rem);--text-space-paragraph:clamp(.9rem, 1.8vw, 1.2rem);--text-space-block:clamp(1.4rem, 3vw, 2.2rem);--text-space-heading:clamp(1.9rem, 4vw, 2.8rem);--text-space-heading-follow:clamp(.72rem, 1.4vw, .95rem);--text-space-list-item:clamp(.34rem, .7vw, .5rem);--project-header-gap:var(--space-sm);--project-header-title-gap:var(--space-2xs);--project-section-body-pad-inline:clamp(.72rem, 1.8vw, .9rem);--project-section-body-pad-top:clamp(.58rem, 1.4vw, .78rem);--project-section-body-pad-bottom:clamp(1.25rem, 2.8vw, 1.9rem);--summary-column-gap:clamp(1.5rem, 3vw, 2.6rem);--summary-column-header-gap:clamp(1rem, 2vw, 1.45rem);--summary-item-divider-gap:clamp(.62rem, 1.5vw, .9rem);--summary-item-gap-bottom:clamp(1rem, 2vw, 1.35rem);--summary-corner-space:clamp(2.2rem, 3vw, 2.6rem);--summary-corner-min-width:clamp(2rem, 2.6vw, 2.35rem);--summary-index-font-size:.7rem;--summary-title-size:clamp(1rem, 1.15vw, 1.16rem);--summary-copy-gap:var(--space-sm);--summary-tag-gap:var(--space-3xs);--summary-tag-inline-pad:clamp(.24rem, .5vw, .32rem);--summary-tag-block-pad:clamp(.08rem, .2vw, .14rem);--summary-tag-row-gap:var(--space-sm);--control-gap-sm:var(--space-sm);--control-gap-md:var(--space-md);--control-pad-inline:.9rem;--control-pad-inline-lg:1.05rem;--control-pad-block-sm:var(--space-xs);--control-pad-block-md:var(--space-sm);--control-pad-block-lg:var(--space-md);--control-icon-size:36px;--motion-instant:55ms;--motion-fast:85ms;--motion-snappy:.11s;--motion-ui:.15s;--accent-corner-inset:5px;--accent-corner-inset-pressed:1px;--accent-corner-line-length:10px;--accent-corner-line-width:1px;--accent-corner-circle-offset:8px;--accent-corner-circle-inset:2px;--accent-corner-circle-offset-pressed:5px;--accent-corner-circle-inset-pressed:1px;--mx:50vw;--my:50vh;--glow-opacity:.32;--glow-radius:24px;--tech-hue:145;--tech-grid-sat:95%;--tech-grid-light:68%;--tech-hue-shift:10;--tech-grid-cell:24px;--tech-grid-base-opacity:.23;--tech-grid-fx-opacity:.57;--tech-grid-fx-line-opacity:.34;--tech-grid-pulse-line-opacity:.44;--pulse-down-x:50vw;--pulse-down-y:50vh;--pulse-down-size:0px;--pulse-down-opacity:0;--pulse-up-x:50vw;--pulse-up-y:50vh;--pulse-up-size:0px;--pulse-up-opacity:0;--pulse-tail-x:20vw;--pulse-tail-y:20vh;--pulse-tail-size:0px;--pulse-tail-opacity:0;--bg:#050505;--surface:#0d0d0d;--surface-strong:#121212;--surface-low:#0f0f0f;--surface-mid:#101010;--surface-deep:#080808;--surface-elevated:#090909;--surface-near-black:#060606;--line-dark:#1d1d1d;--black:#000;--white:#fff;--text:#bebebe;--muted:#878787;--line:#fff3;--line-soft:#ffffff2e;--line-subtle:#ffffff29;--line-soft-subtle:#ffffff30;--line-faint:#ffffff1f;--line-strong:#ffffff57;--line-stronger:#ffffff73;--line-emphasis:#ffffff80;--line-accent:#ffffffa6;--line-active:#ffffffb3;--line-panel:#ffffff4d;--line-divider:#ffffff38;--line-intense:#ffffff42;--line-max:#fffffff5;--line-grid:#ffffff05;--line-chip:#fff6;--line-control:#ffffff52;--surface-tint:#ffffff0a;--line-low:#ffffff24;--scrollbar-color:#ffffff59;--scrollbar-thumb:#ffffff47;--text-dim:#ffffffb8;--text-soft:#ffffffdb;--text-soft-strong:#ffffffe0;--text-soft-max:#ffffffe6;--text-soft-plus:#ffffffeb;--text-soft-peak:#fffffff0;--text-soft-fill:#ffffffde;--text-dim-low:#ffffffad;--text-dim-strong:#ffffffd1;--text-muted-low:#ffffffbd;--text-heading-muted:#d8d8d8;--text-heading-soft:var(--accent-2);--text-heading-strong:#f4f4f4;--text-link-strong:#f1f1f1;--text-muted-strong:#ffffffbf;--overlay-100:#000;--overlay-95:#000000f2;--overlay-86:#000000db;--overlay-72:#000000b8;--overlay-62:#0000009e;--overlay-50:#00000080;--overlay-36:#0000005c;--overlay-28:#00000047;--overlay-10:#0000001a;--overlay-00:#0000;--glass-header:#07090c85;--barrier-top:#0204081f;--barrier-mid:#0204083d;--barrier-deep:#0204088f;--accent-glow:#ff8a3a47;--accent-soft:#ff8a3a3d;--accent-soft-mid:#ff8a3a38;--accent-soft-low:#ff8a3a24;--accent-1:#f46956;--accent-2:#adf780;--accent-3:#8e12f6;--accent-4:#10c2c5;--action-local:hsl(var(--tech-hue) var(--tech-grid-sat) var(--tech-grid-light));--action-external:var(--accent-1);--effect-glow-idle:color-mix(in srgb, var(--action-local) 8%, transparent);--effect-border-emphasis:color-mix(in srgb, var(--action-local) 16%, transparent);--effect-accent-border-subtle:color-mix(in srgb, var(--action-local) 16%, transparent);--effect-accent-border-strong:var(--action-local);--effect-accent-outline-soft:color-mix(in srgb, var(--action-local) 8%, transparent);--effect-accent-outline:color-mix(in srgb, var(--action-local) 34%, transparent);--effect-accent-glow-soft:color-mix(in srgb, var(--action-local) 12%, transparent);--effect-accent-glow-mid:color-mix(in srgb, var(--action-local) 18%, transparent);--effect-accent-glow-strong:color-mix(in srgb, var(--action-local) 26%, transparent);--interactive-card-border:var(--effect-accent-border-subtle);--interactive-card-border-hover:var(--effect-accent-border-strong);--interactive-card-outline:var(--effect-accent-outline);--interactive-card-outline-soft:var(--effect-accent-outline-soft);--interactive-card-glow-idle:0 0 0 1px var(--interactive-card-outline-soft), 0 0 18px var(--interactive-card-outline-soft);--interactive-card-glow-hover:0 0 0 1px var(--interactive-card-outline), 0 0 16px var(--effect-accent-glow-mid), 0 0 30px var(--effect-accent-glow-strong);--effect-surface-hover:#ffffff05;--color-bg-page:var(--bg);--color-bg-panel:var(--surface-low);--color-bg-input:var(--surface-mid);--color-text-body:var(--text);--color-text-body-strong:var(--text-soft-max);--color-text-body-soft:var(--text-soft);--color-text-heading:var(--text-heading-soft);--color-text-heading-muted:var(--text-heading-muted);--color-text-link:var(--action-external);--color-border-subtle:var(--line-faint);--color-border-default:var(--line-soft);--color-border-control:var(--line-control);--color-border-emphasis:var(--effect-border-emphasis);--color-divider:var(--line-faint);--color-chip-bg:var(--line-faint);--color-overlay-modal:#000000c2;--surface-control-bg:linear-gradient(180deg, #0a0c0ee6 0%, #040506f0 100%);--surface-control-bg-active:linear-gradient(180deg, #101e1fe0 0%, #081314f5 100%);--header-bg:var(--black);--font-body:"Plus Jakarta Sans", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-display:"Cal Sans", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-mono:"Inter", "Consolas", "Courier New", monospace;--font-hero:"Special Gothic Expanded One", sans-serif}@keyframes ui-accent-flicker-in{0%{opacity:0}16%{opacity:.95}32%{opacity:.15}48%{opacity:.82}66%{opacity:.28}82%{opacity:1}to{opacity:1}}@keyframes ui-accent-flicker-out{0%{opacity:1}18%{opacity:.24}36%{opacity:.88}58%{opacity:.12}to{opacity:0}}*,:before,:after{box-sizing:border-box}html,body{width:100%;max-width:100%;margin:0;padding:0;overflow-x:clip}html{overflow-y:overlay;scrollbar-gutter:auto;scrollbar-width:none!important;-ms-overflow-style:none!important}body{scrollbar-width:none!important;-ms-overflow-style:none!important}@supports not (overflow:overlay){html{overflow-y:auto}}body{font-family:var(--font-body);color:var(--color-text-body);background:var(--color-bg-page);-webkit-user-select:none;user-select:none;line-height:1.55;position:relative}input,textarea,select,button,[contenteditable=true],pre,code,kbd,samp,.allow-select,.allow-select *,[data-allow-select],[data-allow-select] *{-webkit-user-select:text;user-select:text}.no-select,.no-select *{-webkit-user-select:none;user-select:none}::selection{background:var(--accent-glow);color:var(--white)}.container{width:min(1160px,92%);margin:0 auto}.site-header-wrap{z-index:100;background:var(--glass-header);backdrop-filter:blur(12px)saturate(130%);opacity:1;will-change:opacity;box-shadow:0 8px 28px var(--overlay-36);border-bottom:0;transition:opacity .15s;position:fixed;top:0;left:0;right:0}.site-header-wrap.is-hidden{opacity:0;pointer-events:none}.site-header{min-height:var(--header-height);width:100%;max-width:none;padding-inline:var(--layout-inline-pad);grid-template-columns:42px 1fr 42px;align-items:center;gap:.9rem;margin:0;display:grid}.site-title{color:var(--white);letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;font-weight:700;font-family:var(--font-body);text-decoration:none}.site-logo-link{border-radius:999px;flex:none;place-items:center;width:42px;height:42px;transition:box-shadow .12s linear;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #0000}.site-logo-link img{object-fit:cover;border:0;width:100%;height:100%;margin:0}.site-logo-link:hover,.site-logo-link:focus-visible{box-shadow:0 0 0 2px var(--accent-1)}.site-header nav{flex-wrap:wrap;justify-content:center;justify-self:center;gap:.35rem;display:flex}.site-header nav a{color:var(--accent-1);letter-spacing:.045em;text-transform:uppercase;border:0;border-radius:0;padding:.2rem .52rem;font-size:clamp(1rem,1.7vw,1.28rem);line-height:1;text-decoration:none}.site-header nav a:hover,.site-header nav a.active{color:var(--text);text-underline-offset:.18em;background:0 0;text-decoration:underline 1px}.site-header-spacer{width:42px;height:42px}.site-header-wrap.header-floating{backdrop-filter:none;box-shadow:none;pointer-events:none;background:0 0;border:0;padding-top:clamp(.25rem,1vw,.65rem);transition:opacity .15s}.site-header-wrap.header-floating.is-hidden{opacity:0}.site-header-wrap.header-floating .site-header{pointer-events:none;width:100%;max-width:none;min-height:46px;padding-block:0;padding-inline:var(--layout-inline-pad);margin:0;display:block;position:relative}.site-header-wrap.header-floating .site-logo-link{left:var(--layout-inline-pad);position:absolute;top:50%;transform:translateY(-50%)}.site-header-wrap.header-floating .site-nav-pill,.site-header-wrap.header-floating .site-logo-link,.site-header-wrap.header-floating .site-header-center{pointer-events:auto}.site-header-wrap.header-floating .site-header-center{justify-content:center;align-items:center;width:auto;min-height:46px;padding-inline:0;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-control,.site-header-wrap.header-floating .site-nav-control{--ui-action-color:var(--action-local);--line-accent:var(--ui-action-color);--ui-accent-inset-current:var(--accent-corner-inset-pressed);--ui-accent-circle-offset-current:var(--accent-corner-circle-offset-pressed);--ui-accent-circle-inset-current:var(--accent-corner-circle-inset-pressed);isolation:isolate;border:1px solid var(--color-border-control);transition:box-shadow var(--motion-fast) ease-out, border-color var(--motion-fast) ease-out, color var(--motion-instant) linear, background var(--motion-fast) ease-out;background:linear-gradient(#0a0c0ee6 0%,#040506f0 100%);border-radius:0;position:relative;overflow:visible;box-shadow:inset 0 0 0 1px #ffffff08,0 10px 18px #00000029}.ui-control:before,.site-header-wrap.header-floating .site-nav-control:before{content:"";inset:calc(var(--ui-accent-inset-current) * -1);background:linear-gradient(var(--line-accent), var(--line-accent)) left top / var(--accent-corner-line-length) var(--accent-corner-line-width) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left top / var(--accent-corner-line-width) var(--accent-corner-line-length) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right top / var(--accent-corner-line-length) var(--accent-corner-line-width) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right top / var(--accent-corner-line-width) var(--accent-corner-line-length) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left bottom / var(--accent-corner-line-length) var(--accent-corner-line-width) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left bottom / var(--accent-corner-line-width) var(--accent-corner-line-length) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right bottom / var(--accent-corner-line-length) var(--accent-corner-line-width) no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right bottom / var(--accent-corner-line-width) var(--accent-corner-line-length) no-repeat;opacity:0;z-index:2;transition:opacity var(--motion-ui) ease, inset var(--motion-ui) cubic-bezier(.2, .68, .25, 1), background-position var(--motion-ui) ease, background-size var(--motion-ui) ease;pointer-events:none;animation:none;position:absolute}@media (prefers-reduced-motion:reduce){.ui-control:before,.site-header-wrap.header-floating .site-nav-control:before{transition:none}}.ui-control:after,.site-header-wrap.header-floating .site-nav-control:after{content:"";opacity:0;z-index:0;transition:opacity var(--motion-fast) linear;pointer-events:none;position:absolute;inset:0}.ui-control-circle{border-radius:999px}.ui-control-circle:before{inset:calc((var(--ui-accent-inset-current) - 1px) * -1);background:linear-gradient(var(--line-accent), var(--line-accent)) left var(--ui-accent-circle-offset-current) top var(--ui-accent-circle-inset-current) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--ui-accent-circle-inset-current) top var(--ui-accent-circle-offset-current) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--ui-accent-circle-offset-current) top var(--ui-accent-circle-inset-current) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--ui-accent-circle-inset-current) top var(--ui-accent-circle-offset-current) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--ui-accent-circle-offset-current) bottom var(--ui-accent-circle-inset-current) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--ui-accent-circle-inset-current) bottom var(--ui-accent-circle-offset-current) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--ui-accent-circle-offset-current) bottom var(--ui-accent-circle-inset-current) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--ui-accent-circle-inset-current) bottom var(--ui-accent-circle-offset-current) / 1px 8px no-repeat}.site-header-wrap.header-floating .site-logo-link{left:var(--layout-inline-pad);transition:box-shadow var(--motion-fast) ease-out, border-color var(--motion-fast) ease-out, color var(--motion-instant) linear, background var(--motion-fast) ease-out;border-radius:999px;place-items:center;padding:.35rem;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.site-header-wrap.header-floating .site-logo-link:hover,.site-header-wrap.header-floating .site-logo-link:focus-visible{color:var(--color-text-body-strong);border-color:var(--color-border-emphasis);box-shadow:inset 0 0 0 1px #ffffff0a, 0 0 0 1px var(--effect-accent-glow-soft), 0 10px 22px #00000038;text-decoration:none}.site-header-wrap.header-floating .site-logo-link img{object-fit:contain;z-index:1;border-radius:0;width:100%;height:100%;position:relative}.site-header-wrap.header-floating .site-header nav{box-shadow:none;isolation:isolate;background:0 0;border:0;gap:.38rem;padding:0;display:flex;position:relative;overflow:visible}.site-nav-label{z-index:1;position:relative}.ui-control:hover:after,.ui-control:focus-visible:after,.site-header-wrap.header-floating .site-nav-control:hover:after,.site-header-wrap.header-floating .site-nav-control:focus-visible:after{opacity:0}.ui-control:hover:before,.ui-control:focus-visible:before,.site-header-wrap.header-floating .site-nav-control:hover:before,.site-header-wrap.header-floating .site-nav-control:focus-visible:before{--ui-accent-inset-current:var(--accent-corner-inset);--ui-accent-circle-offset-current:var(--accent-corner-circle-offset);--ui-accent-circle-inset-current:var(--accent-corner-circle-inset);opacity:1}.ui-control:active,.site-header-wrap.header-floating .site-nav-control:active{transition-duration:var(--motion-instant)}.ui-control:active:before,.site-header-wrap.header-floating .site-nav-control:active:before{--ui-accent-inset-current:var(--accent-corner-inset-pressed);--ui-accent-circle-offset-current:var(--accent-corner-circle-offset-pressed);--ui-accent-circle-inset-current:var(--accent-corner-circle-inset-pressed);opacity:1;animation:none}.site-header-wrap.header-floating .site-nav-control.active{color:var(--action-local);text-decoration:none}.site-header-wrap.header-floating .site-nav-control.active:after{opacity:0}.site-header-wrap.header-floating+.site-main{padding-top:0}@keyframes droplet-jelly{0%{transform:scale(1)skew(0)}34%{transform:scale(1.016,.992)skew(-.65deg)}64%{transform:scale(.995,1.008)skew(.45deg)}to{transform:scale(1)skew(0)}}@keyframes droplet-jelly-strong{0%{transform:scale(1)skew(0)}24%{transform:scale(1.028,.982)skew(-1.2deg)}54%{transform:scale(.985,1.018)skew(.8deg)}to{transform:scale(1)skew(0)}}.site-main{z-index:1;background:0 0;padding:0 0 3rem;position:relative}.page-home .site-main{padding:0}.page-hero,.project-hero-inner{padding-top:1.6rem;padding-bottom:1.1rem}.page-hero-inner{z-index:1;position:relative}.page-hero-media{background-image:var(--hero-image);background-position:50%;background-size:cover;align-items:end;width:100%;min-height:clamp(260px,38vw,520px);display:flex;position:relative}.page-hero-shade{background:linear-gradient(180deg, var(--overlay-28) 0%, var(--overlay-50) 55%, var(--overlay-72) 100%);position:absolute;inset:0}.page-hero h1,.project-hero h1{color:var(--white);letter-spacing:-.02em;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.06;font-family:var(--font-display);margin:0;font-weight:400}.page-hero p,.project-hero p{color:var(--muted);max-width:70ch;margin:.7rem 0 0}.page-layout.has-hero .page-hero h1,.page-layout.has-hero .page-hero p{color:var(--white);text-shadow:0 1px 8px var(--overlay-50)}.page-content,.project-content{--content-flow-space:var(--text-space-paragraph);--content-block-space:var(--text-space-block);--content-heading-space:var(--text-space-heading);--content-heading-follow-space:var(--text-space-heading-follow);--content-media-space:clamp(1.5rem, 3.5vw, 2.4rem);padding:var(--space-lg) clamp(.9rem, 2.5vw, 2rem) var(--space-2xl);background:0 0;border-radius:0}.page-layout{padding-top:var(--layout-top-offset-safe)}.page-layout[data-top-mode=flush]{padding-top:var(--layout-top-offset-flush)}.page-work .page-content,.page-play .page-content{background:0 0;border:0;width:min(96vw,1480px);max-width:none;margin-left:auto;margin-right:auto;padding:0}.page-about .page-content{background:0 0;border:0;width:100%;max-width:none;margin:0;padding:0}.page-layout.hero-overlay .page-content{z-index:2;margin-top:clamp(-70px,-8vw,-44px);position:relative}body.page-about,body.page-work,body.page-play{background:var(--black);color:var(--color-text-body)}body.page-about .site-main,body.page-work .site-main,body.page-play .site-main{background:0 0}body.page-about .page-hero,body.page-work .page-hero,body.page-play .page-hero{border-bottom:1px solid var(--line-soft)}.project-hero{background:var(--surface-deep);isolation:isolate;align-items:end;width:100%;min-height:100svh;display:flex;position:relative;overflow:hidden}.project-hero.has-cover{background:var(--surface-deep)}.project-hero.has-cover:before{content:"";background-image:var(--project-hero-image);background-position:top;background-size:cover;background-attachment:fixed;position:absolute;inset:0;transform:scale(1.01);-webkit-mask-image:linear-gradient(#000 0% 70%,#0000 100%);mask-image:linear-gradient(#000 0% 70%,#0000 100%)}.project-hero-overlay{background:radial-gradient(140% 100% at 50% 100%, var(--overlay-28) 0%, transparent 58%), linear-gradient(180deg, #0000002e 0%, #0000001a 48%, #00000038 100%);position:absolute;inset:0}.project-hero-inner{z-index:1;width:100%;padding-top:clamp(3rem,7vw,5rem);padding-bottom:clamp(5.4rem,12vw,8rem);padding-inline:var(--layout-inline-pad);position:relative}h1,h2,h3,h4{line-height:1.18}h2{font-size:clamp(1.2rem,2vw,1.7rem);font-family:var(--font-display);margin:0;font-weight:400}h3{color:var(--color-text-heading-muted);font-family:var(--font-mono);letter-spacing:.01em;margin:0;font-size:1.2rem;font-weight:400}p,ul,ol{margin:var(--text-space-paragraph) 0}ul,ol{padding-left:1.2rem}a{--link-action-color:var(--action-local);text-underline-offset:.12em}a:is([href^=http\:],[href^=https\:],[href^=mailto\:],[href^=tel\:]){--link-action-color:var(--action-external);--ui-action-color:var(--action-external)}.page-content :is(p,li) a,.project-content :is(p,li) a{color:var(--link-action-color)}img{max-width:100%;height:auto;display:block}.page-content img,.project-content img{border-radius:0}.page-content>*+*,.project-content>*+*{margin-top:var(--content-flow-space)}.page-content>:is(section,details,.media-embed,.figure-cluster-block,.photo-composition)+*,.page-content>*+:is(section,details,.media-embed,.figure-cluster-block,.photo-composition),.project-content>:is(section,details,.media-embed,.figure-cluster-block,.photo-composition)+*,.project-content>*+:is(section,details,.media-embed,.figure-cluster-block,.photo-composition){margin-top:var(--content-block-space)}.page-content>:is(h2,h3,h4),.project-content>:is(h2,h3,h4){margin-top:var(--content-heading-space)}.page-content>:is(h2,h3,h4)+*,.project-content>:is(h2,h3,h4)+*{margin-top:var(--content-heading-follow-space)}.page-content :where(p,ul,ol,blockquote,pre),.project-content :where(p,ul,ol,blockquote,pre){max-width:72ch}.page-content :where(li+li),.project-content :where(li+li){margin-top:var(--text-space-list-item)}.page-content :where(hr),.project-content :where(hr){margin:var(--content-block-space) 0;background:var(--color-divider);border:0;height:1px}.media-embed{width:100%;margin:0}.video-embed{aspect-ratio:16/9;background:var(--surface-deep);position:relative}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.website-embed{border:1px solid var(--color-divider);background:var(--surface-deep);transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000}.website-embed:hover,.website-embed:focus-within,.website-embed:focus-visible{border-color:var(--effect-accent-outline);box-shadow:0 0 0 1px var(--effect-accent-outline-soft), 0 0 24px var(--effect-accent-outline-soft)}.website-embed:focus-visible{outline:none}.website-embed-header{border-bottom:1px solid var(--color-divider);background:var(--surface-raised);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.website-embed-header figcaption{color:var(--text-strong);font-family:var(--font-display);margin:0;font-size:.92rem;line-height:1.2}.website-embed-header p{color:var(--text-muted);margin:.2rem 0 0;font-size:.78rem;line-height:1.35}.website-embed-header a{color:var(--text-strong);letter-spacing:0;text-transform:uppercase;flex:none;font-size:.75rem}.website-embed-frame{background:#fff;position:relative}.website-embed-frame:before{content:"";z-index:1;pointer-events:none;transition:box-shadow .18s;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000}.website-embed:hover .website-embed-frame:before,.website-embed:focus-within .website-embed-frame:before,.website-embed:focus-visible .website-embed-frame:before{box-shadow:inset 0 0 0 2px var(--effect-accent-outline)}.website-embed-frame:after{content:attr(data-scroll-cue);z-index:2;color:var(--text-strong);border:1px solid var(--effect-accent-outline);opacity:0;pointer-events:none;background:#000000b8;padding:.35rem .5rem;font-size:.72rem;line-height:1;transition:opacity .18s,transform .18s;position:absolute;bottom:.75rem;right:.75rem;transform:translateY(.25rem)}.website-embed:hover .website-embed-frame:after,.website-embed:focus-within .website-embed-frame:after,.website-embed:focus-visible .website-embed-frame:after{opacity:1;transform:translateY(0)}.website-embed iframe{background:#fff;border:0;width:100%;height:min(70vh,680px);min-height:420px;transition:filter .18s;display:block}.website-embed:not(:hover):not(:focus-within):not(:focus-visible) iframe{pointer-events:none;filter:saturate(.9)brightness(.94)}.project-layout{width:100%;margin-top:0}.project-detail-shell{padding-inline:0;width:100%;margin:0;padding-top:clamp(1.35rem,4vw,3rem);position:relative}.project-detail-grid{--project-rail-width:clamp(14rem, 16vw, 18rem);grid-template-columns:var(--project-rail-width) minmax(0, 1160px) var(--project-rail-width);width:min(1800px, calc(100% - 2 * var(--layout-inline-pad)));gap:clamp(1rem,2vw,2rem);margin:0 auto;display:grid;position:relative}.project-detail-shell>.project-detail-grid>.project-content.container{width:min(1160px,100%);scroll-margin-top:calc(var(--header-height) + clamp(1rem, 2.4vw, 1.6rem));grid-area:1/2;margin:0 auto}.project-detail-sidebar{z-index:2;top:calc(var(--header-height) + .8rem);pointer-events:none;grid-row:1;align-self:start;width:100%;min-width:0;position:sticky}.project-detail-sidebar-left{grid-column:1;justify-self:start}.project-detail-sidebar-right{grid-column:3;justify-self:end}.project-sidebar-sticky{pointer-events:auto;position:static}.project-toc,.project-spec-rail{width:100%}.project-detail-sidebar-left .project-toc{margin-right:auto}.project-detail-sidebar-right .project-spec-rail{margin-left:auto}.project-spec-rail:empty{display:none}.project-spec-rail .specs-table,.project-spec-rail .specs-table-grid{width:100%}.project-detail-sidebar-right .project-spec-rail .specs-table-grid{grid-template-columns:1fr}.project-spec-rail .specs-table{font-family:var(--font-mono)}.project-spec-rail .specs-table :is(dt,.specs-table-title){color:var(--muted);font-size:.72rem}.project-spec-rail .specs-table :is(dd,li,.specs-table-group-title){font-family:var(--font-mono);font-size:.78rem;line-height:1.65}.project-toc,.play-toc{padding:.2rem 0}.project-toc-header,.play-toc-header{display:block}.project-toc-title,.play-toc-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0 0 .45rem;font-size:.72rem}.project-toc nav,.play-toc nav{gap:.28rem;display:grid}.project-toc-empty .project-toc{visibility:hidden}.project-toc-empty .project-toc-toggle,.section-toc-toggle,.section-toc-close,.section-toc-backdrop{display:none}@media (width<=1100px){.project-detail-shell{padding-inline:var(--layout-inline-pad)}.project-detail-grid{grid-template-columns:1fr;width:100%}.project-detail-sidebar-left,.project-detail-sidebar-right{z-index:auto;position:static;transform:none}.project-detail-sidebar-left{pointer-events:auto;z-index:121;grid-area:1/1;width:0;height:0;overflow:visible}.project-detail-sidebar-right{pointer-events:auto;width:100%;margin-top:var(--content-block-space);grid-area:2/1}.project-detail-shell>.project-detail-grid>.project-content.container{grid-column:1;width:100%}.project-detail-sidebar-right .project-spec-rail .specs-table-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.project-toc-toggle,.play-toc-toggle{border:1px solid var(--line-strong);background:var(--overlay-72);width:fit-content;color:var(--white);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;top:calc(var(--header-height) + .65rem);z-index:122;backdrop-filter:blur(7px);pointer-events:auto;touch-action:manipulation;justify-content:center;align-items:center;margin:0 0 .8rem;padding:.4rem .75rem;font-size:.78rem;transition:top .14s;display:inline-flex;position:sticky}.project-detail-shell.project-toc-open .project-toc-toggle,.play-layout.play-toc-open .play-toc-toggle{display:none}.project-detail-shell,.play-layout{isolation:isolate}:root.is-header-hidden .project-toc-toggle,:root.is-header-hidden .play-toc-toggle{top:.65rem}.project-toc-backdrop,.play-toc-backdrop{background:var(--overlay-50);opacity:0;pointer-events:none;z-index:120;transition:opacity .18s;display:block;position:fixed;inset:0}.project-detail-shell.project-toc-open .project-toc-backdrop,.play-layout.play-toc-open .play-toc-backdrop{opacity:1;pointer-events:auto}.project-toc,.play-toc{top:var(--header-height);z-index:121;width:min(82vw,320px);max-width:100%;max-height:calc(100dvh - var(--header-height) - .75rem);background:var(--black);border-right:1px solid var(--line-soft);overscroll-behavior:contain;visibility:hidden;pointer-events:none;isolation:isolate;height:auto;margin:0;padding:.85rem .8rem 1rem;transition:transform .18s;position:fixed;left:0;overflow-y:auto;transform:translate(-105%);box-shadow:18px 0 48px #00000052}.project-detail-shell.project-toc-open .project-toc,.play-layout.play-toc-open .play-toc{visibility:visible;pointer-events:auto;transform:translate(0)}.project-toc-header,.play-toc-header{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.project-toc-title,.play-toc-title{margin:0}.project-toc-close,.play-toc-close{border:1px solid var(--line-control);color:var(--white);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;justify-content:center;align-items:center;padding:.25rem .52rem;font-size:.68rem;display:inline-flex}.project-toc nav,.play-toc nav{grid-template-columns:1fr;gap:.36rem;display:grid}.project-toc a,.play-toc a{white-space:normal;text-overflow:initial;overflow:visible}.project-spec-rail.project-sidebar-sticky{position:static}body.play-toc-lock{overflow:hidden}}.project-photo-content{background:0 0;border:0;width:100%;max-width:none;margin:0;padding:0}.project-play-hero{width:100%;padding:calc(var(--header-height) + clamp(.3rem, .9vw, .6rem)) var(--layout-inline-pad) 0;margin:0}.project-play-hero .play-module{width:100%;max-width:min(1240px,100%);margin:0 auto}.project-header{width:100%;padding-inline:var(--layout-inline-pad);gap:var(--project-header-gap);margin:0;padding-top:clamp(1rem,2vw,1.4rem);padding-bottom:clamp(.55rem,1.5vw,1rem);display:grid}.project-header--hero{color:var(--white);padding-inline:0;max-width:min(72ch,100%);padding-top:0;padding-bottom:0}.project-header-label{color:var(--text-dim-low);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.72rem}.project-header h1{margin:0;font-size:clamp(1.75rem,4.2vw,3.2rem);line-height:1.05}.project-header-top{justify-content:space-between;align-items:start;gap:.75rem;display:flex}.project-header-play{border:1px solid var(--accent-1);background:var(--accent-soft-low);min-height:40px;color:var(--white);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;transition:color var(--motion-instant) linear, border-color var(--motion-fast) ease-out, background var(--motion-fast) ease-out, box-shadow var(--motion-fast) ease-out;justify-content:center;align-items:center;padding:.42rem .82rem;font-size:.74rem;text-decoration:none;display:inline-flex}.project-header-play:hover,.project-header-play:focus-visible{color:var(--white);background:var(--accent-soft);text-decoration:none}.project-header-summary{color:var(--text-soft);max-width:72ch;margin:0}.project-header--hero .project-header-summary{color:var(--text-soft-max)}.project-meta-row{flex-wrap:wrap;gap:.35rem;margin:0;display:flex}.project-meta-row span{border:1px solid var(--line-intense);background:var(--surface-tint);color:var(--text-soft-max);font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;padding:.15rem .38rem;font-size:.72rem}.play-module{background:0 0;border:0;margin:0;padding:0}.play-module-stage{width:100%}.play-module-crop{aspect-ratio:16/9;background:0 0;border:0;width:100%;max-height:min(66dvh,760px);position:relative;overflow:hidden}.play-module-crop iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.play-module[data-aspect=square] .play-module-crop{aspect-ratio:1;width:min(100%, calc(100dvh - var(--header-height) - 12rem));max-height:calc(100dvh - var(--header-height) - 12rem);margin-inline:auto}.project-body{margin-top:.95rem}.project-body-intro{display:flow-root}.project-body-intro>*+*{margin-top:var(--content-flow-space)}.project-section-body{padding:var(--project-section-body-pad-top) var(--project-section-body-pad-inline) var(--project-section-body-pad-bottom)}.project-section-body>*+*{margin-top:var(--content-flow-space)}.project-section-body>:is(section,details,.media-embed,.figure-cluster-block,.photo-composition)+*,.project-section-body>*+:is(section,details,.media-embed,.figure-cluster-block,.photo-composition){margin-top:var(--content-block-space)}.image-gallery{gap:.65rem;margin:1rem 0;display:grid}.image-gallery-trigger,.figure-cluster-trigger,.media-sequence-trigger{cursor:zoom-in;background:0 0;border:0;width:100%;margin:0;padding:0;display:block;overflow:hidden}.figure-cluster-block{margin:0;display:flow-root}.figure-cluster-title{margin:0 0 .9rem}.figure-cluster{align-items:start;gap:clamp(.7rem,1.6vw,1rem);display:grid}.figure-cluster-cols-2,.figure-cluster-diptych{grid-template-columns:repeat(2,minmax(0,1fr))}.figure-cluster-cols-3,.figure-cluster-triptych{grid-template-columns:repeat(3,minmax(0,1fr))}.figure-cluster-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.figure-cluster-feature-top{grid-template-columns:repeat(2,minmax(0,1fr))}.figure-cluster-feature-top figure:first-child{grid-column:1/-1}.figure-cluster figure{align-content:start;gap:.4rem;margin:0;display:grid}.figure-cluster img{object-fit:cover;background:0 0;width:100%;height:auto;min-height:220px;margin:0;display:block}.figure-cluster-trigger img,.image-gallery-trigger img{transition:transform .22s}.figure-cluster-trigger:hover img,.figure-cluster-trigger:focus-visible img,.image-gallery-trigger:hover img,.image-gallery-trigger:focus-visible img,.media-sequence-trigger:hover img,.media-sequence-trigger:focus-visible img{transform:scale(1.02)}.figure-cluster figcaption{color:var(--text-muted-low);font-family:var(--font-mono);margin-top:0;font-size:.72rem;line-height:1.45}.photo-composition{margin:1rem 0}.project-photo-content .photo-composition{margin:0}.project-photo-content .photo-composition-rows{gap:clamp(.35rem,1vw,.6rem);padding-inline:clamp(.3rem,.9vw,.65rem)}.project-photo-content .photo-composition-row{gap:clamp(.35rem,1vw,.6rem)}.project-photo-content .photo-composition-trigger{border:0}.photo-composition-title{margin:0 0 .6rem}.media-sequence{display:flow-root}.media-sequence-title{margin:0 0 .9rem}.media-sequence-stage{border:1px solid var(--line);aspect-ratio:4/3;background:0 0;position:relative;overflow:hidden}.media-sequence-frame{opacity:0;pointer-events:none;margin:0;transition:opacity .84s;position:absolute;inset:0}.media-sequence-frame.is-active{opacity:1;pointer-events:auto}.media-sequence-trigger{height:100%}.media-sequence-trigger img{object-fit:contain;object-position:center;border:0;width:100%;height:100%;margin:0;transition:transform .24s}.media-sequence-arrow{z-index:3;width:clamp(3.5rem,12%,5.5rem);color:var(--text-soft-strong);cursor:pointer;opacity:0;background:0 0;border:0;padding:0;transition:opacity .22s,color .22s,background .22s;position:absolute;top:0;bottom:0}.media-sequence-arrow.is-prev{background:linear-gradient(90deg,#0606069e,#0000);left:0}.media-sequence-arrow.is-next{background:linear-gradient(270deg,#0606069e,#0000);right:0}.media-sequence-arrow span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.media-sequence-arrow:before{content:"";transform-origin:50%;border-top:1px solid;border-right:1px solid;width:1rem;height:1rem;transition:transform .22s;position:absolute;top:50%}.media-sequence-arrow.is-prev:before{left:clamp(.9rem,2.4vw,1.4rem);transform:translateY(-50%)rotate(-135deg)}.media-sequence-arrow.is-next:before{right:clamp(.9rem,2.4vw,1.4rem);transform:translateY(-50%)rotate(45deg)}.media-sequence-arrow:hover,.media-sequence-arrow:focus-visible,.media-sequence-stage:focus-within .media-sequence-arrow{opacity:1}.media-sequence-arrow:hover,.media-sequence-arrow:focus-visible{color:var(--white)}.media-sequence-arrow.is-prev:hover:before,.media-sequence-arrow.is-prev:focus-visible:before{transform:translate(-.15rem,-50%)rotate(-135deg)}.media-sequence-arrow.is-next:hover:before,.media-sequence-arrow.is-next:focus-visible:before{transform:translate(.15rem,-50%)rotate(45deg)}.media-sequence-frame figcaption{color:var(--text-soft-strong);font-family:var(--font-mono);background:linear-gradient(0deg, var(--overlay-82), transparent);pointer-events:none;margin:0;padding:.55rem .7rem;font-size:.72rem;line-height:1.45;position:absolute;bottom:0;left:0;right:0}.media-sequence-nav{justify-content:center;gap:.45rem;margin-top:.75rem;display:flex}.media-sequence-dot{border:1px solid var(--line-stronger);background:var(--surface-tint);border-radius:999px;width:12px;height:12px;padding:0;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}.media-sequence-dot.is-active,.media-sequence-dot:hover,.media-sequence-dot:focus-visible{background:var(--action-local);border-color:var(--action-local);box-shadow:0 0 .8rem var(--effect-accent-glow-mid);transform:scale(1.08)}.media-carousel{display:flow-root}.media-carousel-title{margin:0 0 .9rem}.media-carousel-frame{border:1px solid var(--line);background:0 0;position:relative;overflow:hidden}.media-carousel-track{width:100%;transition:transform .42s cubic-bezier(.2,.68,.22,1);display:flex}.media-carousel[data-carousel-aspect=square] .media-carousel-frame{aspect-ratio:1}.media-carousel[data-carousel-aspect=portrait] .media-carousel-frame{aspect-ratio:4/5}.media-carousel[data-carousel-aspect=auto] .media-carousel-frame{aspect-ratio:auto}.media-carousel:not([data-carousel-aspect=square]):not([data-carousel-aspect=portrait]):not([data-carousel-aspect=auto]) .media-carousel-frame,.media-carousel[data-carousel-aspect=landscape] .media-carousel-frame{aspect-ratio:16/10}.media-carousel-slide{flex:0 0 100%;margin:0;position:relative}.media-carousel-trigger{width:100%;height:100%;display:block}.media-carousel-trigger img{object-fit:cover;border:0;width:100%;height:100%;margin:0;transition:transform .24s}.media-carousel-slide figcaption{color:var(--text-soft-strong);font-family:var(--font-mono);background:linear-gradient(0deg, var(--overlay-82), transparent);pointer-events:none;margin:0;padding:.6rem .75rem;font-size:.72rem;line-height:1.45;position:absolute;bottom:0;left:0;right:0}.media-carousel-nav{z-index:2;border:1px solid var(--line-stronger);background:var(--overlay-50);color:var(--white);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;min-width:58px;min-height:36px;padding:.35rem .62rem;font-size:.72rem;transition:background .16s,border-color .16s,transform .16s,color .16s;position:absolute;top:50%;transform:translateY(-50%)}.media-carousel-nav.prev{left:.7rem}.media-carousel-nav.next{right:.7rem}.media-carousel-nav:hover,.media-carousel-nav:focus-visible{background:var(--effect-accent-glow-mid);border-color:var(--action-local);color:var(--action-local)}.media-carousel-dots{justify-content:center;gap:.45rem;margin-top:.75rem;display:flex}.media-carousel-dot{border:1px solid var(--line-stronger);background:var(--surface-tint);border-radius:999px;width:12px;height:12px;padding:0;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}.media-carousel-dot.is-active,.media-carousel-dot:hover,.media-carousel-dot:focus-visible{background:var(--action-local);border-color:var(--action-local);box-shadow:0 0 .8rem var(--effect-accent-glow-mid);transform:scale(1.08)}.specs-table{max-width:100%;display:flow-root}.specs-table-title{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .65rem;font-size:.74rem;font-weight:400}.specs-table-grid{gap:clamp(.65rem,1.6vw,.95rem);display:grid}.specs-table-cols-2 .specs-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.specs-table-group{border-left:1px solid var(--line-soft);min-width:0;padding-left:clamp(.7rem,1.6vw,.95rem)}.specs-table-group-title{color:var(--color-text-heading);margin:0 0 .45rem;font-size:.88rem}.specs-table-list{margin:0}.specs-table-row{border-top:1px solid var(--line-soft);gap:.3rem;padding-block:.4rem;display:grid}.specs-table-row:first-child{border-top:0;padding-top:0}.specs-table-row:last-child{padding-bottom:0}.specs-table-row dt{overflow-wrap:anywhere;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.72rem}.specs-table-row dd{overflow-wrap:anywhere;color:var(--color-text-body);margin:0;font-size:.94rem}.specs-table-values{margin:0;padding-left:1rem}.specs-table-values li{color:var(--color-text-body)}.specs-table-values li+li{margin-top:.22rem}.specs-table-rail-right,.specs-table-rail-left{width:min(18rem,100%)}.specs-table-project-rail-right,.specs-table-project-rail-left{width:min(18rem,100%);max-width:100%}@media (width>=980px){.specs-table-rail-right{float:right;clear:right;margin:0 0 1.25rem clamp(1rem,3vw,2rem)}.specs-table-rail-left{float:left;clear:left;margin:0 clamp(1rem,3vw,2rem) 1.25rem 0}.specs-table-rail-right .specs-table-grid,.specs-table-rail-left .specs-table-grid,.specs-table-project-rail-right .specs-table-grid,.specs-table-project-rail-left .specs-table-grid{grid-template-columns:1fr}}.photo-composition-rows{gap:.5rem;display:grid}.photo-composition-row{grid-template-columns:repeat(var(--photo-row-cols), minmax(0, 1fr));gap:.5rem;display:grid}.photo-composition-item{margin:0}.photo-composition-trigger{width:100%;height:var(--photo-row-height);border:1px solid var(--line);cursor:zoom-in;background:0 0;margin:0;padding:0;display:block;overflow:hidden}.photo-composition-trigger img{object-fit:cover;border:0;width:100%;height:100%;margin:0;transition:transform .22s}.photo-composition-trigger:hover img,.photo-composition-trigger:focus-visible img{transform:scale(1.03)}.photo-lightbox{background:var(--overlay-100);width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--white);opacity:0;border:0;margin:0;padding:0;transition:opacity .18s}.photo-lightbox::backdrop{background:var(--overlay-95);opacity:0;transition:opacity .2s}.photo-lightbox[open],.photo-lightbox[open]::backdrop{opacity:1}.photo-lightbox-shell{width:100%;height:100%;position:relative;overflow:hidden}.photo-lightbox-stage{touch-action:none;cursor:default;user-select:none;transform-origin:50%;will-change:transform, opacity, filter;opacity:1;place-items:center;transition:transform .24s cubic-bezier(.2,.68,.22,1),opacity .18s;display:grid;position:absolute;inset:0;transform:scale(1)}.photo-lightbox-figure img{opacity:0;transition:opacity .18s,transform .12s}.photo-lightbox-figure img.is-ready{opacity:1}html.is-photo-lightbox-open,body.is-photo-lightbox-open{overflow:hidden!important}.photo-lightbox-stage.is-pan-enabled{cursor:grab}.photo-lightbox-stage.is-panning{cursor:grabbing}.photo-lightbox-stage.is-panning .photo-lightbox-figure img{transition:none}.photo-lightbox-ui{z-index:3;align-items:center;gap:.55rem;padding:clamp(.45rem,1.4vw,.85rem) clamp(.55rem,1.8vw,1.05rem);transition:opacity .22s,transform .22s;display:flex;position:absolute;left:0;right:0}.photo-lightbox-ui-top{background:linear-gradient(180deg, var(--overlay-62), transparent);justify-content:space-between;top:0}.photo-lightbox-ui-bottom{background:linear-gradient(0deg, var(--overlay-72), transparent);flex-direction:column;align-items:center;bottom:0}.photo-lightbox-ui-hidden .photo-lightbox-ui{opacity:0;pointer-events:none}.photo-lightbox-counter,.photo-lightbox-caption{color:var(--text-soft-strong);font-family:var(--font-mono);letter-spacing:.03em;margin:0;font-size:.78rem}.photo-lightbox-caption{text-align:center;max-width:min(92vw,980px)}.photo-lightbox-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;display:flex}.photo-lightbox-close,.photo-lightbox-nav,.photo-lightbox-zoom{border:1px solid var(--line-stronger);background:var(--overlay-50);color:var(--white);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;min-width:36px;min-height:36px;padding:.35rem .62rem;font-size:.72rem;transition:background .16s,border-color .16s,transform .16s,color .16s}.photo-lightbox-nav{min-width:58px}.photo-lightbox-close:hover,.photo-lightbox-close:focus-visible,.photo-lightbox-nav:hover,.photo-lightbox-nav:focus-visible,.photo-lightbox-zoom:hover,.photo-lightbox-zoom:focus-visible{background:var(--effect-accent-glow-mid);border-color:var(--action-local);color:var(--action-local);transform:translateY(-1px)}.photo-lightbox-zoom:disabled{opacity:.45;cursor:not-allowed;transform:none}.photo-lightbox-figure{place-items:center;width:100%;height:100%;margin:0;display:grid;overflow:hidden}.photo-lightbox-figure img{object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:50%;will-change:transform;border:0;width:auto;max-width:96vw;height:auto;max-height:90dvh;margin:0;transition:transform .12s}.photo-lightbox.is-opening .photo-lightbox-stage{opacity:0;transform:scale(.965)}.image-gallery.gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.image-gallery.gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.image-gallery.gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.image-gallery figure{margin:0}.image-gallery img{aspect-ratio:4/3;object-fit:cover;border-radius:0;width:100%}.image-gallery figcaption{color:var(--text-muted-low);font-size:.8rem;font-family:var(--font-mono);margin-top:.25rem}.content-callout{border-left:2px solid var(--line-chip);background:var(--surface-tint);margin:1rem 0;padding:.75rem .85rem}.content-callout h4{font-family:var(--font-display);margin:0 0 .4rem;font-size:1rem}.content-callout-body>:first-child{margin-top:0}.content-callout-body>:last-child{margin-bottom:0}.content-callout-accent{border-left-color:var(--accent-1)}.project-index{border-top:0;margin-top:0;padding-top:0}.project-index>h2{margin-top:0}.project-grid{content-visibility:auto;contain-intrinsic-size:1px 1020px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;display:grid}.project-card{--card-action-color:var(--action-local);--interactive-card-border-hover:var(--card-action-color);-webkit-user-select:none;user-select:none;isolation:isolate;content-visibility:auto;contain-intrinsic-size:360px;background:0 0;border:0;border-radius:0;gap:.58rem;padding:0;transition:opacity .18s;display:grid;position:relative;overflow:visible}.project-thumb,.project-row,.about-logo-grid a{border:1px solid var(--interactive-card-border);border-radius:0;transition:transform .22s cubic-bezier(.2,.72,.2,1),border-color .22s,box-shadow .26s,background .22s,filter .22s}.project-thumb{aspect-ratio:1;background:var(--surface-mid);box-shadow:var(--interactive-card-glow-idle);z-index:1;outline:none;line-height:0;display:block;position:relative;overflow:hidden}.project-thumb-img{object-fit:cover;object-position:50% 50%;opacity:1;-webkit-user-drag:none;user-select:none;pointer-events:none;will-change:transform, opacity, filter;transform-origin:50%;border:0;border-radius:0;width:100%;height:100%;margin:0;transition:transform .56s cubic-bezier(.2,.8,.16,1),opacity .36s,filter .32s;display:block;position:absolute;inset:0}.project-thumb-img.is-hover{opacity:0}.project-card.has-hover-cover:not(:has(model-card-preview[data-poster=true],model-card-preview[data-live=true])).is-summary-active .project-thumb-img.is-hover{opacity:1}.project-card.has-hover-cover.is-summary-active .project-thumb-img.is-primary{opacity:0}.project-card.is-summary-active .project-thumb-img{filter:saturate(1.06)brightness(1.03);transform:scale(1.05)}.project-card.is-summary-active .project-thumb{border-color:var(--interactive-card-border-hover);box-shadow:var(--interactive-card-glow-hover)}.project-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.project-card h2{font-size:1.05rem;font-family:var(--font-display);color:var(--card-action-color);opacity:.62;margin:0;font-weight:400;transition:color .18s,opacity .18s}.project-card.is-summary-active h2{color:var(--card-action-color);opacity:1}.project-card p{color:var(--muted);margin:0;font-size:.95rem}.project-card-summary{opacity:0;min-height:1.25rem;overflow:hidden}.project-card-summary-text{white-space:normal;border-right:0;width:auto;max-width:100%;display:block;overflow:visible}.project-card.is-summary-active .project-card-summary{opacity:1}.project-card-bw{background:0 0}.project-card-bw .project-thumb{background:var(--black)}.project-card-bw h2{color:var(--white)}.project-card-bw p{color:var(--card-action-color)}.project-card-placeholder{background:0 0}.project-card-placeholder .project-thumb{background:var(--surface-near-black)}.project-rows{margin-top:.15rem}.project-row-list{content-visibility:auto;contain-intrinsic-size:1px 1200px;gap:.9rem;display:grid}.project-row{background:var(--surface-strong);min-height:195px;box-shadow:var(--interactive-card-glow-idle);content-visibility:auto;contain-intrinsic-size:260px;position:relative;overflow:hidden}.project-row-link{min-height:inherit;color:inherit;text-decoration:none;display:block}.project-row-link:visited,.project-row-link:hover,.project-row-link:focus-visible{color:inherit;text-decoration:none}.project-row-image{object-fit:cover;opacity:1;-webkit-user-drag:none;user-select:none;pointer-events:none;border:0;width:100%;height:100%;margin:0;transition:transform .26s,opacity .26s;position:absolute;inset:0;transform:scale(1.01)}.project-card.is-reveal-pending,.project-row.is-reveal-pending{opacity:0;transform:translateY(12px)scale(.992)}.project-card.is-revealed,.project-row.is-revealed{opacity:1;transition:opacity .23s,transform .28s cubic-bezier(.2,.68,.22,1);transform:none}.project-card.is-reveal-pending .project-thumb img:not(.is-media-ready),.project-row.is-reveal-pending .project-row-image:not(.is-media-ready){opacity:0}.project-row-overlay{background:linear-gradient(90deg, var(--overlay-86) 0%, var(--overlay-72) 48%, var(--overlay-36) 100%);position:absolute;inset:0}.project-row-content{z-index:1;color:var(--white);opacity:1;width:min(82%,960px);padding:1rem 5.8rem 1rem 1.2rem;transition:none;position:relative;transform:none}.project-row h3{color:var(--white);font-family:var(--font-display);margin:0 0 .25rem;font-size:clamp(1.2rem,2vw,1.85rem);line-height:1.1}.project-row p{color:var(--text-soft-fill);margin:0}.project-row-heading-role{color:var(--text-soft-max);font-family:var(--font-body);font-size:.82em;font-weight:500}.project-row-meta{font-family:var(--font-mono);letter-spacing:.02em;flex-wrap:wrap;gap:.25rem;margin:0 0 .4rem;font-size:.74rem;display:flex}.project-row-meta span{background:var(--line-faint);padding:.13rem .35rem}.project-row-summary{opacity:0;max-height:1.3rem;overflow:hidden}.project-row-summary-text{white-space:normal;border-right:0;width:auto;display:block;overflow:visible}.project-row-cta{z-index:2;color:var(--white);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-stronger);background:var(--overlay-36);opacity:0;pointer-events:none;border-radius:999px;padding:.46rem .82rem;font-size:.74rem;text-decoration:none;transition:opacity .18s,color .18s,border-color .18s;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.project-row:hover .project-row-image{transform:scale(1.02)}.project-row:hover,.project-row:focus-within,.project-row.is-summary-active{border-color:var(--interactive-card-border-hover);box-shadow:var(--interactive-card-glow-hover)}.project-row:hover .project-row-summary,.project-row:focus-within .project-row-summary,.project-row.is-summary-active .project-row-summary{opacity:1}.project-row:hover .project-row-cta,.project-row:focus-within .project-row-cta{opacity:1;pointer-events:auto;border-color:var(--accent-1);color:var(--accent-1)}.page-work .page-content h2,.page-play .page-content h2{border-top:0;margin-top:2rem;padding-top:0}.page-play .page-content img{background:var(--surface-strong);border-color:var(--line-dark)}.page-about .page-content>h2:first-of-type,.page-work .page-content>h2:first-of-type,.page-play .page-content>h2:first-of-type{margin-top:.4rem}.page-play .project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),280px));justify-content:start;gap:.95rem}.page-play .project-card{border:1px solid color-mix(in srgb, var(--card-action-color) 13%, transparent);background:0 0;grid-template-areas:"title""thumb""summary";align-content:start;gap:.36rem;width:min(100%,280px);max-width:280px;padding:10px;transition:opacity .18s,border-color .15s,background-color .15s}.page-play .project-card:before{content:"";pointer-events:none;opacity:.2;background:linear-gradient(var(--card-action-color), var(--card-action-color)) left top / 9px 1px, linear-gradient(var(--card-action-color), var(--card-action-color)) left top / 1px 9px, linear-gradient(var(--card-action-color), var(--card-action-color)) right top / 9px 1px, linear-gradient(var(--card-action-color), var(--card-action-color)) right top / 1px 9px, linear-gradient(var(--card-action-color), var(--card-action-color)) left bottom / 9px 1px, linear-gradient(var(--card-action-color), var(--card-action-color)) left bottom / 1px 9px, linear-gradient(var(--card-action-color), var(--card-action-color)) right bottom / 9px 1px, linear-gradient(var(--card-action-color), var(--card-action-color)) right bottom / 1px 9px;background-repeat:no-repeat;transition:opacity .15s;position:absolute;inset:0}.page-play .project-card.is-summary-active{border-color:color-mix(in srgb, var(--card-action-color) 50%, transparent);background-color:color-mix(in srgb, var(--card-action-color) 3%, transparent)}.page-play .project-card.is-summary-active:before{opacity:1}@media (prefers-reduced-motion:reduce){.page-play .project-card,.page-play .project-card:before{transition:none}}.page-about .page-content,.page-work .page-content,.page-play .page-content{border-color:var(--line)}.page-about .page-content,.page-work .page-content,.page-play .page-content,.page-about .project-index,.page-work .project-index,.page-play .project-index{border-top-color:var(--line-divider);background:0 0}.page-about .page-content h2,.page-about .page-content h3,.page-work .page-content h2,.page-work .page-content h3,.page-play .page-content h2,.page-play .page-content h3{color:var(--accent-2)}.page-about .page-content p,.page-about .page-content li,.page-work .page-content p,.page-work .page-content li,.page-play .page-content p,.page-play .page-content li,.page-project-detail .project-content p,.page-project-detail .project-content li{color:var(--color-text-body)}.page-about .page-content a:not(:where(.section-toc a,.project-toc a,.play-toc a)),.page-work .page-content a:not(:where(.section-toc a,.project-toc a,.play-toc a)),.page-play .page-content a:not(:where(.section-toc a,.project-toc a,.play-toc a)){color:var(--link-action-color)}.page-about .page-content img{border-color:var(--line);object-fit:cover;width:100%;max-height:clamp(280px,44vw,620px)}.about-bands{scroll-snap-type:y proximity;scroll-snap-stop:always;gap:0;width:100%;margin:0;display:grid}.about-band{background-image:var(--about-band-image);scroll-snap-align:center;background-position:50%;background-size:cover;background-attachment:fixed;border:0;align-items:center;min-height:100svh;padding-inline:clamp(.8rem,2.6vw,2rem);display:flex;position:relative;overflow:hidden}.about-band-overlay{background:linear-gradient(90deg, var(--overlay-86) 0%, var(--overlay-62) 10%, var(--overlay-00) 100%);position:absolute;inset:0}.about-band-content{z-index:1;color:var(--white);--about-focus:0;--about-content-opacity:1;--about-text-opacity:1;width:min(780px,78vw);opacity:var(--about-content-opacity);padding:clamp(1.4rem,3vw,2.8rem);transition:opacity .18s;position:relative}.about-band-content.container{max-width:none;margin:0}.about-band-content h2{color:var(--white);opacity:var(--about-text-opacity);margin:0 0 .65rem;font-size:clamp(1.5rem,3vw,2.4rem);transition:opacity .18s}.about-band-content p{color:var(--text-soft-plus);max-width:78ch;opacity:var(--about-text-opacity);margin:.45rem 0;transition:opacity .18s}.about-logo-band{background:0 0;border:0;justify-content:center;width:100%;min-height:100svh;margin:0}.about-logo-band:before{content:"";background:radial-gradient(circle at 50% 50%, var(--effect-accent-outline-soft) 0%, transparent 56%), linear-gradient(180deg, var(--overlay-10) 0%, var(--overlay-28) 100%);pointer-events:none;position:absolute;inset:0}.about-logo-content{width:min(1180px,100%)}.about-logo-grid{flex-wrap:wrap;align-items:stretch;gap:.9rem;margin-top:1.2rem;display:flex}.about-logo-grid a{aspect-ratio:1;background:linear-gradient(180deg, var(--surface-low) 0%, var(--surface-mid) 100%);min-width:160px;max-width:220px;box-shadow:var(--interactive-card-glow-idle);flex:180px;justify-content:center;align-items:center;padding:.7rem;text-decoration:none;display:flex}.about-logo-grid a:hover,.about-logo-grid a:focus-visible{border-color:var(--interactive-card-border-hover);background:linear-gradient(180deg, var(--surface-mid) 0%, var(--surface-strong) 100%);box-shadow:var(--interactive-card-glow-hover);transform:translateY(-1px)}.about-logo-grid img{object-fit:contain;border:0;width:100%;height:100%;margin:0}.home-hero{background:var(--surface-deep);isolation:isolate;align-items:center;width:100%;min-height:100svh;display:flex;position:relative;overflow:hidden}.home-hero-art,.home-hero-layer{position:absolute;inset:0}.home-hero-art{z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(#000 0% 68%,#0000 100%);mask-image:linear-gradient(#000 0% 68%,#0000 100%)}.home-hero-layer{object-fit:cover;object-position:center center;user-select:none;border:0;width:100%;height:100%;margin:0;transform:scale(1.01)}.home-hero-layer-bg{z-index:0}.home-hero-layer-tracks{z-index:2}.home-hero-layer-bush{z-index:3}.home-hero-layer-person{z-index:4}.home-hero-overlay{z-index:5;background:radial-gradient(140% 96% at 50% 100%, var(--overlay-36) 0%, transparent 60%), linear-gradient(334deg, #00000014 0%, #00000029 100%);pointer-events:none;position:absolute;inset:0}.home-hero-content{z-index:1;align-items:top;text-align:left;padding-top:clamp(3.5rem,8vw,1rem);opacity:.4;width:100%;max-width:none;margin:0;padding-inline:clamp(.8rem,2.6vw,2rem);display:flex;position:absolute;inset:0}.hero-scroll-row{left:var(--layout-inline-pad);right:var(--layout-inline-pad);z-index:6;pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:clamp(.9rem,2.8vw,1.6rem)}.hero-scroll-link{border-top:1px solid var(--line-soft);min-width:min(100%,clamp(180px,24vw,280px));color:var(--text-soft);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;pointer-events:auto;transition:color var(--motion-fast) ease, border-color var(--motion-fast) ease, transform var(--motion-fast) ease;justify-items:center;gap:.42rem;padding:.8rem 1rem .2rem;font-size:.74rem;text-decoration:none;display:inline-grid}.hero-scroll-link:hover,.hero-scroll-link:focus-visible{color:var(--white);border-top-color:var(--line-accent);transform:translateY(1px)}.hero-scroll-label{opacity:0;white-space:nowrap;max-height:0;transition:opacity .22s,transform .22s,max-height .22s;overflow:hidden;transform:translateY(.3rem)}.hero-scroll-link:hover .hero-scroll-label,.hero-scroll-link:focus-visible .hero-scroll-label{opacity:1;max-height:1.4rem;transform:translateY(0)}.hero-scroll-chevron{border-bottom:1px solid;border-right:1px solid;width:.8rem;height:.8rem;animation:1.8s ease-in-out infinite hero-scroll-chevron-bob;transform:rotate(45deg)}@keyframes hero-scroll-chevron-bob{0%,to{transform:rotate(45deg)translate(0)}50%{transform:rotate(45deg)translate(3px,3px)}}.home-hero-content h1{color:var(--accent-3);letter-spacing:-.02em;font-size:clamp(8rem,9.2vw,16rem);line-height:1.03;font-family:var(--font-hero);margin:0;font-weight:600}.home-name-line{display:block}.home-summary{z-index:1;width:100%;padding:var(--space-2xl) var(--layout-inline-pad) var(--space-3xl);position:relative}.home-summary-grid{gap:var(--summary-column-gap);grid-template-columns:minmax(0,1.14fr) minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.home-summary-column{min-width:0}.home-summary-header{margin-bottom:var(--summary-column-header-gap)}.home-summary-header h2{color:var(--color-text-heading);letter-spacing:.02em;text-transform:uppercase;font-size:clamp(1.25rem,2vw,1.9rem);line-height:1;font-family:var(--font-body);margin:0;font-weight:500}.home-summary-list{display:grid}.home-summary-item{padding:var(--summary-item-divider-gap) var(--summary-corner-space) var(--summary-item-gap-bottom) 0;border-top:1px solid var(--color-divider);position:relative}.home-summary-corner{min-width:var(--summary-corner-min-width);justify-content:flex-end;align-items:center;display:inline-flex;position:absolute;top:.12rem;right:0}.home-summary-index{color:var(--line-soft);font-family:var(--font-mono);font-size:var(--summary-index-font-size);letter-spacing:.08em;transition:opacity .12s}.home-summary-corner-link{color:var(--link-action-color);font-family:var(--font-mono);font-size:var(--summary-index-font-size);letter-spacing:.08em;text-transform:uppercase;opacity:0;pointer-events:none;text-decoration:none;transition:opacity .11s,color .11s;position:absolute;top:50%;right:0;transform:translateY(-50%)}.home-summary-item h3{color:var(--white);font-family:var(--font-body);font-size:var(--summary-title-size);letter-spacing:.04em;text-transform:uppercase;margin:0;line-height:1.2}.home-summary-heading-role{color:var(--color-text-body-strong);font-family:var(--font-body);font-size:.82em;font-weight:500}.home-summary-item .home-summary-tags{margin:0 0 var(--summary-tag-row-gap);gap:var(--summary-tag-gap);width:100%;max-width:none;font-family:var(--font-mono);letter-spacing:.02em;flex-wrap:wrap;font-size:.68rem;display:flex}.home-summary-tags span{background:var(--color-chip-bg);padding:var(--summary-tag-block-pad) var(--summary-tag-inline-pad);white-space:nowrap}.home-summary-item p:last-of-type{margin-bottom:0}.home-summary-item p{margin:var(--summary-copy-gap) 0 0;max-width:none}.home-summary-skill-list{margin:var(--summary-copy-gap) 0 0;gap:var(--text-space-list-item);max-width:none;padding-left:1.1rem;display:grid}.home-summary-skill-list li{color:var(--color-text-body);margin:0}.home-summary-item[data-summary-linkable=true]:hover .home-summary-index,.home-summary-item[data-summary-linkable=true]:focus-within .home-summary-index{opacity:0}.home-summary-item[data-summary-linkable=true]:hover .home-summary-corner-link,.home-summary-item[data-summary-linkable=true]:focus-within .home-summary-corner-link{opacity:1;pointer-events:auto}.home-summary-corner-link:hover,.home-summary-corner-link:focus-visible{color:var(--link-action-color);text-underline-offset:.2em;text-decoration:underline 1px}.play-super-title{color:var(--text-heading-soft);letter-spacing:-.03em;text-align:right;margin:.1rem 0;font-size:clamp(2rem,5.8vw,4.4rem);line-height:.92}.play-super-title span{display:block}.work-super-title{text-align:right;letter-spacing:-.02em;color:var(--text-heading-soft);margin:.3rem 0 1rem;font-size:clamp(1.6rem,4.4vw,3.2rem);line-height:.95}.play-category-title{color:var(--text-heading-soft);letter-spacing:.03em;margin:clamp(2.6rem,6.2vw,4.2rem) 0 .9rem;scroll-margin-top:calc(68px + 1.2rem);font-size:clamp(1.3rem,2.8vw,2rem)}.page-work .page-content>h2{text-align:right}.page-play .project-label{color:var(--text-dim)}.page-play .project-card h2{order:1;grid-area:title;margin:0;line-height:1.05}.page-play .project-card .project-thumb{order:2;grid-area:thumb}.page-play .project-card .project-card-summary{color:var(--card-action-color);opacity:0;order:3;grid-area:summary;min-height:1.25rem;margin-top:.08rem}.page-play .project-card .project-card-summary-text{white-space:normal;border-right:0;width:auto;display:block;overflow:visible}.page-play .project-card.is-summary-active .project-card-summary{opacity:1}.page-play .project-card h2{color:var(--card-action-color);opacity:.56}.page-play .project-card.is-summary-active h2{color:var(--card-action-color);opacity:1}.page-play .project-card p{color:var(--text-soft)}.page-work .project-row{transition:min-height .18s,transform .22s cubic-bezier(.2,.72,.2,1),border-color .22s,box-shadow .26s,background .22s,filter .22s}.page-work .project-row-overlay{background:linear-gradient(90deg, var(--overlay-95) 0%, var(--overlay-62) 45%, var(--overlay-00) 100%)}.page-work .project-row-content{opacity:1}.page-work .project-row-cta{background:var(--overlay-62)}.page-work .project-row-list{gap:0}.work-panels{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.6rem;display:grid}.work-panel{background:var(--surface-low);border:0;border-radius:0;padding:.8rem .9rem}.work-panel h3{color:var(--white);font-family:var(--font-display);margin:0 0 .25rem;font-size:1.1rem}.work-panel-meta{color:var(--text-soft);font-family:var(--font-mono);margin:.12rem 0;font-size:.76rem}.work-panel ul{margin:.45rem 0 0}@media (width<=1200px){.page-work .project-row{min-height:min(46svh,420px)}.page-work .project-row.is-summary-active{min-height:min(52svh,500px)}}@media (width<=820px){.home-summary{padding-top:1.2rem}.home-summary-item{padding-right:1.4rem}.home-summary-index{top:0}.page-work .page-content,.page-play .page-content{width:min(96vw,1200px)}.project-row{min-height:220px}.page-work .project-row{min-height:min(38svh,320px)}.project-row-content{width:calc(100% - 1rem);padding-right:1rem}.project-row-summary{opacity:0;max-height:none}.project-row-summary-text{white-space:normal;border-right:0;width:auto;max-width:100%;animation:none;display:block;overflow:visible}.page-work .project-row.is-summary-active{min-height:min(44svh,380px)}.page-work .project-row.is-summary-active .project-row-summary{opacity:1}.page-work .project-row.is-summary-active .project-row-summary-text{white-space:normal;border-right:0;width:auto;max-width:100%;padding-right:0;animation:none;display:block;overflow:visible;transform:none}.project-row-cta{opacity:1;pointer-events:auto;top:auto;bottom:.75rem;right:.75rem;transform:none}.page-layout.hero-overlay .page-content{margin-top:-18px}.image-gallery.gallery-cols-2,.image-gallery.gallery-cols-3,.image-gallery.gallery-cols-4,.photo-composition-row{grid-template-columns:1fr}.photo-composition-trigger{height:auto;min-height:clamp(220px,56vw,420px)}.photo-lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}.photo-lightbox-ui-top,.photo-lightbox-ui-bottom{padding-inline:.5rem}.photo-lightbox-controls{gap:.32rem}.photo-lightbox-close,.photo-lightbox-nav,.photo-lightbox-zoom{min-height:34px;padding:.32rem .5rem;font-size:.68rem}.photo-lightbox-caption{font-size:.72rem}.play-module-crop{aspect-ratio:16/10;max-height:min(56dvh,480px)}.play-module[data-aspect=square] .play-module-crop{width:min(100%, calc(100dvh - var(--header-height) - 9.5rem));max-height:calc(100dvh - var(--header-height) - 9.5rem)}.project-header-top{flex-direction:column;align-items:flex-start;gap:.45rem}.project-header-play{width:100%}.page-play .project-card .project-card-summary{opacity:0;min-height:0}.page-play .project-card .project-card-summary-text{white-space:normal;border-right:0;width:auto;max-width:100%;animation:none;display:block;overflow:visible}.page-play .project-card.is-summary-active .project-card-summary{opacity:1}.page-play .project-card.is-summary-active .project-card-summary-text{white-space:normal;width:auto;max-width:100%;animation:none;display:block;overflow:visible;transform:none}}@media (width<=640px){.page-play .project-grid{grid-template-columns:minmax(0,1fr)}.page-play .project-card{width:100%;max-width:none}}@media (prefers-reduced-motion:reduce){.project-card.is-summary-active .project-card-summary-text,.project-row.is-summary-active .project-row-summary-text{animation:none;transform:none}}.page-play .page-content{width:100%}.play-layout{grid-template-columns:clamp(140px,15vw,220px) minmax(0,1480px);align-items:start;gap:clamp(.7rem,1.8vw,1.2rem);width:100%;padding-inline:clamp(.8rem,2.6vw,2rem);display:grid}.play-toc{width:100%;top:calc(var(--header-height) + .8rem);grid-column:1;place-self:start;position:sticky}.play-sections{grid-column:2;width:100%;min-width:0}.play-sections .project-grid{margin-bottom:clamp(1.8rem,4.6vw,3.2rem)}.play-sections .project-grid:last-child{margin-bottom:0}.play-category{scroll-margin-top:calc(var(--header-height) + 1rem);margin-bottom:var(--space-2xl)}@media (width<=1100px){.project-hero.has-cover:before,.about-band{background-attachment:scroll}.home-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.play-layout{grid-template-columns:1fr;padding-inline:clamp(.8rem,2.6vw,2rem)}.play-toc{position:fixed}.play-sections{grid-column:1}.about-band{min-height:min(100svh,860px)}.about-band-content{width:min(100%,720px);padding:clamp(1rem,4vw,1.8rem)}.page-about .about-band-content{--about-content-opacity:1;--about-text-opacity:1}.about-logo-grid a{flex-basis:170px;max-width:none}}@media (prefers-reduced-motion:reduce){.hero-scroll-chevron{animation:none}}.project-card-media{min-width:0;position:relative}.page-play .project-card .project-card-media{order:2;grid-area:thumb}.project-action-button{background:linear-gradient(var(--accent-soft-low), var(--accent-soft-low)), var(--surface-near-black);min-height:44px;color:var(--white);border:1px solid var(--accent-1);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;justify-content:center;align-items:center;gap:.5rem;padding:.55rem .9rem;font-size:.74rem;line-height:1.2;text-decoration:none;display:inline-flex}.project-action-button:hover,.project-action-button:focus-visible{background:linear-gradient(var(--accent-soft), var(--accent-soft)), var(--surface-near-black);color:var(--white);text-decoration:none}.project-action-button:focus-visible{outline:2px solid var(--white);outline-offset:2px}.project-card-heading{justify-content:space-between;align-items:center;gap:.6rem;min-width:0;display:flex}.project-card-heading h2{min-width:0}.project-card-heading:has(.project-card-open-app){min-height:48px;padding-block:2px}.page-play .project-card .project-card-heading{order:1;grid-area:title}.page-play .project-card .project-card-heading h2{order:0}.project-card-open-app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;min-height:44px;color:var(--color-text-link);font-family:var(--font-mono);font-size:var(--summary-index-font-size);letter-spacing:.08em;text-transform:uppercase;opacity:0;pointer-events:none;flex:none;justify-content:flex-end;align-items:center;gap:.3rem;margin-block:0;line-height:1.2;text-decoration:none;transition:opacity .11s,color .11s;display:inline-flex}.project-card-open-app:hover,.project-card-open-app:focus-visible{color:var(--color-text-link);text-decoration:none}.project-card-app-label{--ui-action-color:var(--action-external);--accent-corner-inset:-1px;--accent-corner-inset-pressed:-1px;letter-spacing:.04em;gap:.3rem;min-height:26px;padding:.25rem .45rem;font-size:.6rem}.project-card-open-app:is(:hover,:focus-visible) .project-card-app-label{background:linear-gradient(var(--accent-soft), var(--accent-soft)), var(--surface-near-black)}.project-card-open-app:is(:hover,:focus-visible) .project-card-app-label:before{opacity:1}.project-card-open-app:focus-visible{outline:1px solid var(--color-text-link);outline-offset:2px}.project-card-destination{z-index:4;background:var(--overlay-82);color:var(--card-action-color);font-family:var(--font-mono);letter-spacing:.04em;pointer-events:none;opacity:0;padding:.2rem .35rem;font-size:.6rem;line-height:1.3;transition:opacity .11s;position:absolute;bottom:.45rem;right:.45rem}.project-card.is-summary-active :is(.project-card-open-app,.project-card-destination){opacity:1}.project-card.is-summary-active .project-card-open-app{pointer-events:auto}.project-app-link{width:fit-content;max-width:100%;min-height:44px;margin-block:1rem 0}.project-detail-sidebar-left>.project-app-link{pointer-events:auto}.project-card.has-hover-cover.is-summary-active:not(:has(model-card-preview[data-poster=true],model-card-preview[data-live=true])) .project-thumb-img.is-hover{opacity:1}.project-card.has-hover-cover.is-summary-active:not(:has(model-card-preview[data-poster=true],model-card-preview[data-live=true])) .project-thumb-img.is-primary{opacity:0}.project-card[data-destination=external]{--card-action-color:var(--action-external);--interactive-card-border:color-mix(in srgb, var(--action-external) 16%, transparent);--interactive-card-glow-idle:0 0 18px color-mix(in srgb, var(--action-external) 8%, transparent);--interactive-card-glow-hover:0 0 16px color-mix(in srgb, var(--action-external) 18%, transparent)}.project-card .project-card-summary,.page-play .project-card .project-card-summary,.project-card .project-label{color:var(--card-action-color)}.page-work .page-content .project-row h3,.project-row-heading-role,.project-row .project-row-summary,.page-work .project-row .project-row-summary-text,.project-row .project-row-cta,.project-row:hover .project-row-cta,.project-row:focus-within .project-row-cta{color:var(--action-local)}.project-row:hover .project-row-cta,.project-row:focus-within .project-row-cta{border-color:var(--action-local)}.ui-control:active,.site-header-wrap.header-floating .site-nav-control:active{color:var(--ui-action-color)}.site-header-wrap.header-floating .site-nav-control.active{color:var(--action-local)}.project-action-button,.project-action-button:hover,.project-action-button:focus-visible,.project-header-play,.project-header-play:hover,.project-header-play:focus-visible,.website-embed-header a{color:var(--action-external)}.home-summary-item .home-summary-corner-link{color:var(--link-action-color)}@media (prefers-reduced-motion:reduce){.ui-control:before,.site-header-wrap.header-floating .site-nav-control:before{transition:none}}.site-header-wrap.header-floating .site-header .site-nav-control:is(.active,:active,:focus-visible){color:var(--action-local)}button.close-icon-button{flex:none;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px}.photo-lightbox-close.close-icon-button{display:inline-flex}@media (width<=820px){.home-summary-grid{grid-template-columns:minmax(0,1fr);gap:3rem}}@media (width<=1100px){:root{--header-height:calc(var(--header-control-height) + 8px + max(.35rem, env(safe-area-inset-top)))}}.tech-grid-base,.tech-grid-fx,.tech-grid-pulse{pointer-events:none;position:fixed;inset:0}.tech-grid-base{z-index:0;opacity:.17;background-image:linear-gradient(hsl(var(--tech-hue) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-base-opacity)) 1px, transparent 1px), linear-gradient(90deg, hsl(calc(var(--tech-hue) + var(--tech-hue-shift)) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-base-opacity)) 1px, transparent 1px);background-size:var(--tech-grid-cell) var(--tech-grid-cell), var(--tech-grid-cell) var(--tech-grid-cell);background-position:0 0,0 0}.tech-grid-fx{z-index:0;opacity:var(--glow-opacity);background-image:linear-gradient(hsl(var(--tech-hue) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-fx-line-opacity)) 1px, transparent 1px), linear-gradient(90deg, hsl(calc(var(--tech-hue) + var(--tech-hue-shift)) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-fx-line-opacity)) 1px, transparent 1px);background-size:var(--tech-grid-cell) var(--tech-grid-cell), var(--tech-grid-cell) var(--tech-grid-cell);-webkit-mask-image:radial-gradient(circle var(--glow-radius) at var(--mx) var(--my), var(--overlay-95) 0%, var(--overlay-62) 44%, transparent 100%);mask-image:radial-gradient(circle var(--glow-radius) at var(--mx) var(--my), var(--overlay-95) 0%, var(--overlay-62) 44%, transparent 100%);background-position:0 0,0 0}.tech-grid-pulse{z-index:0;background-image:linear-gradient(hsl(var(--tech-hue) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-pulse-line-opacity)) 1px, transparent 1px), linear-gradient(90deg, hsl(calc(var(--tech-hue) + var(--tech-hue-shift)) var(--tech-grid-sat) var(--tech-grid-light) / var(--tech-grid-pulse-line-opacity)) 1px, transparent 1px);background-size:var(--tech-grid-cell) var(--tech-grid-cell), var(--tech-grid-cell) var(--tech-grid-cell);background-position:0 0,0 0}.tech-grid-pulse-down{opacity:var(--pulse-down-opacity);-webkit-mask-image:radial-gradient(circle at var(--pulse-down-x) var(--pulse-down-y), transparent calc(var(--pulse-down-size) - 16px), var(--overlay-100) calc(var(--pulse-down-size) - 5px), var(--overlay-100) calc(var(--pulse-down-size) + 5px), transparent calc(var(--pulse-down-size) + 20px));mask-image:radial-gradient(circle at var(--pulse-down-x) var(--pulse-down-y), transparent calc(var(--pulse-down-size) - 16px), var(--overlay-100) calc(var(--pulse-down-size) - 5px), var(--overlay-100) calc(var(--pulse-down-size) + 5px), transparent calc(var(--pulse-down-size) + 20px))}.tech-grid-pulse-up{opacity:var(--pulse-up-opacity);-webkit-mask-image:radial-gradient(circle at var(--pulse-up-x) var(--pulse-up-y), transparent calc(var(--pulse-up-size) - 18px), var(--overlay-95) calc(var(--pulse-up-size) - 6px), var(--overlay-95) calc(var(--pulse-up-size) + 10px), transparent calc(var(--pulse-up-size) + 42px));mask-image:radial-gradient(circle at var(--pulse-up-x) var(--pulse-up-y), transparent calc(var(--pulse-up-size) - 18px), var(--overlay-95) calc(var(--pulse-up-size) - 6px), var(--overlay-95) calc(var(--pulse-up-size) + 10px), transparent calc(var(--pulse-up-size) + 42px))}.tech-grid-pulse-up:before{content:"";opacity:var(--pulse-tail-opacity);background-image:linear-gradient(hsl(var(--tech-hue) var(--tech-grid-sat) var(--tech-grid-light) / calc(var(--tech-grid-pulse-line-opacity) * .72)) 1px, transparent 1px), linear-gradient(90deg, hsl(calc(var(--tech-hue) + var(--tech-hue-shift)) var(--tech-grid-sat) var(--tech-grid-light) / calc(var(--tech-grid-pulse-line-opacity) * .72)) 1px, transparent 1px);background-size:var(--tech-grid-cell) var(--tech-grid-cell), var(--tech-grid-cell) var(--tech-grid-cell);-webkit-mask-image:radial-gradient(circle at var(--pulse-tail-x) var(--pulse-tail-y), transparent calc(var(--pulse-tail-size) - 10px), var(--overlay-95) calc(var(--pulse-tail-size) - 2px), var(--overlay-95) calc(var(--pulse-tail-size) + 16px), transparent calc(var(--pulse-tail-size) + 54px));mask-image:radial-gradient(circle at var(--pulse-tail-x) var(--pulse-tail-y), transparent calc(var(--pulse-tail-size) - 10px), var(--overlay-95) calc(var(--pulse-tail-size) - 2px), var(--overlay-95) calc(var(--pulse-tail-size) + 16px), transparent calc(var(--pulse-tail-size) + 54px));position:absolute;inset:0}.cursor-trail-field{z-index:0;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.cursor-trail-dot{width:var(--trail-size,120px);height:var(--trail-size,120px);opacity:var(--trail-opacity,0);transform:translate3d(var(--trail-x,50vw), var(--trail-y,50vh), 0) translate(-50%, -50%) scale(var(--trail-scale,1));mix-blend-mode:screen;filter:blur(var(--trail-blur,10px));will-change:transform, opacity;background:radial-gradient(circle,#6dffde38 0%,#6dffde14 34%,#0000 70%);border-radius:999px;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.cursor-trail-field{display:none}.project-card,.project-thumb img{transition:none}}html{scrollbar-width:none;scrollbar-color:auto}html::-webkit-scrollbar{background:0 0;display:none;width:0!important;height:0!important}body::-webkit-scrollbar{background:0 0;display:none;width:0!important;height:0!important}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-track-piece{background:0 0}html::-webkit-scrollbar-thumb{background:0 0}::-webkit-scrollbar{background:0 0;width:0;height:0}.scroll-overlay{z-index:320;pointer-events:none;opacity:0;width:6px;height:calc(100dvh - 24px);transition:opacity .18s;position:fixed;top:12px;right:6px}.scroll-overlay.is-active{opacity:.86}.scroll-overlay.is-hidden,.is-photo-lightbox-open .scroll-overlay{opacity:0}.scroll-overlay-thumb{background:var(--scrollbar-thumb);width:100%;min-height:34px;box-shadow:0 0 0 1px var(--line-soft);border-radius:999px;transition:background .14s;position:absolute;top:0;right:0;transform:translate(0,0)}@media (prefers-reduced-motion:no-preference){::view-transition-old(root),::view-transition-new(root){animation:none}}.page-transition-barrier{z-index:80;pointer-events:none;contain:paint;position:fixed;inset:0;overflow:hidden}@property --blink-aperture-x{syntax:"<percentage>";inherits:false;initial-value:58%}@property --blink-aperture-y{syntax:"<percentage>";inherits:false;initial-value:42%}@property --blink-feather-start{syntax:"<percentage>";inherits:false;initial-value:64%}@property --blink-feather-end{syntax:"<percentage>";inherits:false;initial-value:100%}.page-transition-barrier:before{content:"";--blink-aperture-x:58%;--blink-aperture-y:42%;--blink-feather-start:64%;--blink-feather-end:100%;-webkit-mask-image:radial-gradient(ellipse var(--blink-aperture-x) var(--blink-aperture-y) at 50% 50%, transparent 0%, transparent var(--blink-feather-start), #000 var(--blink-feather-end));mask-image:radial-gradient(ellipse var(--blink-aperture-x) var(--blink-aperture-y) at 50% 50%, transparent 0%, transparent var(--blink-feather-start), #000 var(--blink-feather-end));opacity:0;will-change:opacity;backface-visibility:hidden;background:#000;transition:opacity 95ms linear,--blink-aperture-x .23s cubic-bezier(.34,0,.2,1),--blink-aperture-y .23s cubic-bezier(.34,0,.2,1),--blink-feather-start .23s cubic-bezier(.34,0,.2,1),--blink-feather-end .23s cubic-bezier(.34,0,.2,1);position:absolute;inset:0}:root.is-route-transitioning .page-transition-barrier:before{opacity:1;--blink-aperture-x:0.01%;--blink-aperture-y:0.01%;--blink-feather-start:0%;--blink-feather-end:18%}:root.is-route-transitioning .site-header-wrap,:root.is-route-transitioning .site-header-wrap.is-hidden{opacity:1!important}:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-nav-control,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-header nav a,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link{transition:none!important}:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-nav-control:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-nav-control:after,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-header nav a:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-header nav a:after,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link:after{transition:none!important;animation:none!important}:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-nav-control:not(.active):before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-header nav a:not(.active):before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link:not(.active):before{opacity:0!important}:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-nav-control.active:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-header nav a.active:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link.active:before{inset:calc(var(--accent-corner-inset-pressed) * -1);opacity:1!important}:root.is-route-transitioning .site-header-wrap.is-transition-lock .ui-control-circle.active:before,:root.is-route-transitioning .site-header-wrap.is-transition-lock .site-logo-link.active:before{inset:calc((var(--accent-corner-inset-pressed) - 1px) * -1);background:linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-offset-pressed) top var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-inset-pressed) top var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-offset-pressed) top var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-inset-pressed) top var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-offset-pressed) bottom var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-inset-pressed) bottom var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-offset-pressed) bottom var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-inset-pressed) bottom var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat}.site-header-wrap.is-hover-suppressed .site-logo-link:hover,.site-header-wrap.is-hover-suppressed .site-logo-link:focus-visible,.site-header-wrap.is-hover-suppressed .site-header nav a:hover,.site-header-wrap.is-hover-suppressed .site-header nav a:focus-visible{color:inherit;border-color:inherit;box-shadow:inherit;text-decoration:none}.site-header-wrap.is-hover-suppressed .site-nav-control:hover:before,.site-header-wrap.is-hover-suppressed .site-nav-control:hover:after,.site-header-wrap.is-hover-suppressed .site-nav-control:focus-visible:before,.site-header-wrap.is-hover-suppressed .site-nav-control:focus-visible:after{transition:none!important;animation:none!important}.site-header-wrap.is-hover-suppressed .site-nav-control:not(.active):hover:before,.site-header-wrap.is-hover-suppressed .site-nav-control:not(.active):focus-visible:before{opacity:0!important}.site-header-wrap.is-hover-suppressed .site-nav-control.active:hover:before,.site-header-wrap.is-hover-suppressed .site-nav-control.active:focus-visible:before{inset:calc(var(--accent-corner-inset-pressed) * -1);opacity:1!important}.site-header-wrap.is-hover-suppressed .site-logo-link.active:hover:before,.site-header-wrap.is-hover-suppressed .site-logo-link.active:focus-visible:before{inset:calc((var(--accent-corner-inset-pressed) - 1px) * -1);background:linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-offset-pressed) top var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-inset-pressed) top var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-offset-pressed) top var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-inset-pressed) top var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-offset-pressed) bottom var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) left var(--accent-corner-circle-inset-pressed) bottom var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-offset-pressed) bottom var(--accent-corner-circle-inset-pressed) / 8px 1px no-repeat, linear-gradient(var(--line-accent), var(--line-accent)) right var(--accent-corner-circle-inset-pressed) bottom var(--accent-corner-circle-offset-pressed) / 1px 8px no-repeat}@media (prefers-reduced-motion:reduce){.page-transition-barrier{background:0 0}:root.is-route-transitioning .page-transition-barrier{background:#000}.page-transition-barrier:before{display:none}}:root{--header-control-height:44px}.site-header-wrap.header-floating .site-header nav a{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;min-width:74px;font-size:.72rem;font-family:var(--font-mono);border:1px solid var(--line-soft);background:var(--surface-deep);z-index:1;transition:box-shadow var(--motion-fast) ease-out, border-color var(--motion-fast) ease-out, color var(--motion-instant) linear, background var(--motion-fast) ease-out;border-radius:0;justify-content:center;align-items:center;padding:0 1rem;text-decoration:none;display:inline-flex;position:relative}.site-header-wrap.header-floating .site-header nav a:is(:hover,:focus-visible){color:var(--action-local);border-color:var(--color-border-emphasis);box-shadow:inset 0 0 0 1px #ffffff0a, 0 0 0 1px var(--effect-accent-glow-soft), 0 10px 22px #00000038;text-decoration:none}.site-header-wrap.header-floating .site-header nav a.active{color:var(--action-local);text-decoration:none}.site-media-controls{right:var(--layout-inline-pad);gap:var(--space-2xs);pointer-events:auto;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.site-media-controls [hidden],.site-media-controls[hidden]{display:none!important}.site-media-button{background:var(--surface-deep);width:44px;color:var(--action-local);cursor:pointer;border:1px solid #0000;place-items:center;padding:8px;display:grid}.site-media-button:hover{border-color:var(--line-control)}.site-media-button:focus-visible{outline:2px solid var(--action-local);outline-offset:3px}.site-media-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.site-header-wrap.header-floating:not(.is-nav-ready) .site-nav-control:before,.site-header-wrap.header-floating:not(.is-nav-ready) .site-nav-control:after,.site-header-wrap.header-floating.is-hover-suppressed .site-nav-control:before,.site-header-wrap.header-floating.is-transition-lock .site-nav-control:before{opacity:0!important;transition:none!important;animation:none!important}.site-header-wrap.header-floating[data-header-style] .header-control{box-sizing:border-box;height:var(--header-control-height);min-height:var(--header-control-height);min-width:var(--header-control-height);border:1px solid var(--line-soft);background:var(--surface-deep);font-family:var(--font-mono);--accent-corner-inset:-1px;--accent-corner-inset-pressed:-1px;justify-content:center;align-items:center;line-height:1.2;display:inline-flex}.site-header-wrap.header-floating[data-header-style] .header-control:focus-visible{outline:2px solid var(--ui-action-color,var(--action-local));outline-offset:-3px}.site-header-wrap.header-floating[data-header-style] .site-logo-link{width:44px}.site-header-context{display:contents}.site-header-action-slot{display:none}@media (width<=1100px){.site-header-wrap.header-floating[data-header-style]{padding-top:max(.35rem, env(safe-area-inset-top))}.site-header-wrap.header-floating[data-header-style] .site-header{--header-control-width:44px;--header-control-gap:6px;--header-tab-padding:10px;--header-tab-min-width:52px;align-items:center;gap:var(--header-control-gap);min-height:var(--header-control-height);padding-inline:max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));display:flex}.site-header-wrap.header-floating[data-header-style] .site-logo-link{width:var(--header-control-width);flex:none;position:relative;top:auto;left:auto;transform:none}.site-header-wrap.header-floating[data-header-style] .site-header-center{width:auto;min-width:0;min-height:var(--header-control-height);justify-content:flex-start;gap:var(--header-control-gap);flex:1;position:static;transform:none}.site-header-wrap.header-floating[data-header-style] nav{gap:var(--header-control-gap);padding:0}.site-header-wrap.header-floating[data-header-style] nav a{width:auto;min-width:var(--header-tab-min-width);padding-inline:var(--header-tab-padding);letter-spacing:.02em;font-size:.68rem}.site-header-action-slot:not(:empty){pointer-events:auto;flex:none;display:flex}.site-header-wrap.header-floating [data-header-sections] .section-toc-toggle{width:var(--header-control-width);padding:var(--header-icon-padding,8px);color:var(--white);cursor:pointer;place-items:center;margin:0;display:grid;position:relative;inset:auto}.site-header-wrap.header-floating [data-header-app] .project-app-link{width:var(--header-control-width);max-width:none;font:.64rem var(--font-mono);letter-spacing:0;white-space:nowrap;border-color:var(--action-external);margin:0;padding:0 4px;position:relative;inset:auto;transform:none}.site-header-wrap.header-floating [data-header-app] .project-app-text{display:none}.site-header-wrap.header-floating [data-header-app] .project-app-icon{font-size:1.25rem}.site-header-wrap.header-floating[data-header-style] .site-header-context{align-items:center;gap:var(--header-control-gap);pointer-events:auto;flex:none;display:flex;position:static}.site-header-wrap.header-floating .site-media-controls{gap:var(--header-control-gap);position:static;transform:none}.site-header-wrap.header-floating .site-media-button{width:var(--header-control-width);padding:var(--header-icon-padding,8px)}.site-header-wrap.header-floating [data-header-sections] button:is([aria-expanded=true],:hover,:focus-visible){color:var(--action-local)}.site-header-wrap [data-header-sections] button:focus-visible{outline:2px solid var(--action-local);outline-offset:2px}}@media (width<=480px){:root{--header-control-height:36px}.site-header-wrap.header-floating[data-header-style] .site-header{--header-control-width:36px;--header-control-gap:3px;--header-tab-padding:6px;--header-tab-min-width:40px;padding-inline:max(8px, env(safe-area-inset-left)) max(8px, env(safe-area-inset-right))}}@media (width<=359px){:root{--header-control-height:32px}.site-header-wrap.header-floating[data-header-style] .site-header{--header-control-width:32px;--header-icon-padding:5px;--header-control-gap:2px;--header-tab-padding:4px;--header-tab-min-width:36px}}.section-toc nav a{width:100%;max-width:100%;font-family:var(--font-mono);letter-spacing:.03em;gap:var(--space-xs);color:var(--muted);white-space:normal;padding-block:var(--space-3xs);grid-template-columns:4ch minmax(0,1fr);align-items:start;font-size:.72rem;line-height:1.55;text-decoration:none;display:grid;overflow:visible}.section-toc-index{font-variant-numeric:tabular-nums;white-space:nowrap}.section-toc-label{overflow-wrap:break-word;min-width:0}.section-toc nav a:is(.is-active,:hover,:focus-visible){color:var(--action-local);text-decoration:none}.section-toc nav a:focus-visible{outline:1px solid var(--action-local);outline-offset:3px}.section-divider{justify-content:space-between;align-items:baseline;gap:var(--space-lg);padding-top:var(--space-sm);border-top:1px solid var(--line-soft);color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.63rem;line-height:1.6;display:flex;position:relative}.section-divider:before{content:"";background:var(--line-stronger);width:2rem;height:1px;position:absolute;top:-1px;left:0}.section-divider-label{overflow-wrap:anywhere;min-width:0}.section-divider-number{font-variant-numeric:tabular-nums;flex-shrink:0}.site-contact-button:hover,.site-contact-button:focus-visible{color:var(--color-text-body-strong);border-color:var(--color-border-emphasis);box-shadow:inset 0 0 0 1px #ffffff0a, 0 0 0 1px var(--effect-accent-glow-soft), 0 10px 22px #00000038;text-decoration:none}.site-footer-wrap{z-index:1;background:0 0;border-top:0;margin-top:0;position:relative}.site-footer{align-items:center;gap:var(--control-gap-md);width:100%;max-width:none;min-height:64px;padding:var(--space-sm) clamp(.8rem, 2.6vw, 2rem);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin:0;display:grid}.site-footer-credit{color:var(--text-muted-strong);font-size:.8rem;font-family:var(--font-mono);justify-self:start;margin:0}.site-footer-contact{justify-self:center}.site-contact-button{appearance:none;border:1px solid var(--color-border-control);background:var(--surface-control-bg);color:var(--color-text-body-strong);padding:var(--space-sm) var(--space-lg);min-height:42px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:0;font-size:.76rem}.site-contact-button:hover,.site-contact-button:focus-visible{border-color:var(--color-border-emphasis);color:var(--color-text-body-strong)}.account-buttons{gap:var(--control-gap-sm);flex-wrap:wrap;justify-self:end;display:flex}.account-buttons a{border:1px solid var(--line-low);width:var(--control-icon-size);height:var(--control-icon-size);background:var(--surface-control-bg);border-radius:999px;place-items:center;padding:0;text-decoration:none;display:grid;overflow:hidden}.account-buttons a img{object-fit:cover;border:0;width:100%;height:100%;margin:0}.contact-dialog{border:1px solid var(--color-border-default);background:linear-gradient(180deg, var(--color-bg-panel) 0%, var(--surface-deep) 100%);width:min(720px,100vw - 1.6rem);color:var(--color-text-body);box-shadow:0 28px 70px var(--overlay-72);border-radius:18px;padding:0}.contact-dialog::backdrop{background:var(--color-overlay-modal);backdrop-filter:blur(5px)}.contact-dialog-shell{gap:var(--space-md);padding:clamp(1rem,2.8vw,1.4rem);display:grid}.contact-dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--control-gap-md);display:flex}.contact-dialog-header h2{color:var(--color-text-heading);margin:0;font-size:clamp(1.2rem,2.5vw,1.6rem);line-height:1}.contact-dialog-close{appearance:none;border:1px solid var(--color-border-control);background:var(--surface-control-bg);color:var(--color-text-body-soft);padding:var(--space-xs) var(--space-md);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:0;font-size:.72rem}.contact-dialog-close:hover,.contact-dialog-close:focus-visible{border-color:var(--color-border-emphasis);color:var(--white)}.contact-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contact-grid label{gap:var(--space-xs);display:grid}.contact-grid span{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.contact-grid-full{grid-column:1/-1}.contact-grid input,.contact-grid textarea{border:1px solid var(--color-border-control);background:var(--color-bg-input);width:100%;color:var(--color-text-body-strong);font:inherit;padding:var(--space-md) .9rem;resize:vertical;border-radius:12px}.contact-grid input::placeholder,.contact-grid textarea::placeholder{color:var(--text-dim)}.contact-grid input:focus-visible,.contact-grid textarea:focus-visible{border-color:var(--color-border-emphasis);box-shadow:0 0 0 1px var(--color-border-emphasis), 0 0 18px var(--effect-glow-idle);outline:none}.contact-actions{justify-content:flex-end;gap:var(--space-sm);display:flex}.contact-action-primary{justify-content:center;align-items:center;gap:var(--space-sm);appearance:none;padding:var(--control-pad-block-md) var(--control-pad-inline);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px solid var(--color-border-emphasis);background:var(--surface-control-bg);color:var(--white);border-radius:0;font-size:.74rem;display:inline-flex}.contact-action-primary:hover,.contact-action-primary:focus-visible{border-color:var(--color-border-emphasis)}.contact-destination-list{gap:var(--control-gap-sm);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.contact-destination-link{padding:var(--control-pad-block-lg) var(--control-pad-inline);border:1px solid var(--color-border-control);background:var(--surface-control-bg);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-body-soft);border-radius:0;justify-content:center;align-items:center;font-size:.78rem;text-decoration:none;display:inline-flex}.contact-destination-link:hover,.contact-destination-link:focus-visible{border-color:var(--color-border-emphasis)}.contact-status:empty{display:none}.contact-status{color:var(--text-dim);margin:0;font-size:.84rem}body.page-about .site-footer-wrap,body.page-work .site-footer-wrap,body.page-play .site-footer-wrap{background:0 0;border-top-color:#0000}body.page-about .site-footer p,body.page-work .site-footer p,body.page-play .site-footer p{color:var(--text-muted-strong)}@media (width<=820px){.site-footer{text-align:center;grid-template-columns:1fr;justify-items:center}.site-footer-credit,.site-footer-contact,.account-buttons{justify-self:center}.contact-grid{grid-template-columns:1fr}}.site-contact-button[aria-expanded=true]{color:var(--ui-action-color)}.contact-destination-link,.contact-destination-link:hover,.contact-destination-link:focus-visible{color:var(--action-external)}.site-contact-button:focus-visible{color:var(--action-local)}.account-buttons a:hover,.account-buttons a:focus-visible{border-color:var(--action-external)}button[data-contact-send]{--ui-action-color:var(--action-external);color:var(--action-external)}.contact-dialog-close.close-icon-button{display:inline-flex}
