:root{color:#f3e7c5;background:#255a9b;font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;--font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-serif: Georgia, "Times New Roman", serif;--font-mono: "SFMono-Regular", Menlo, Consolas, monospace;--ink: #111a2c;--paper: #f3e7c5;--blue: #255a9b;--acid: #e3bc4e;--orange: #b94052;--steel: #8ba9c0;--canvas: #255a9b;--canvas-text: #f3e7c5;--panel: #f3e7c5;--panel-text: #111a2c;--panel-accent: #255a9b;--deep: #111a2c;--deep-text: #f3e7c5;--highlight: #e3bc4e;--line: rgba(243, 231, 197, .28);--panel-line: rgba(17, 26, 44, .28);--deep-line: rgba(243, 231, 197, .25);color-scheme:light}:root[data-palette=lucario]{--ink: #17191f;--paper: #f4e3a9;--blue: #2461a5;--orange: #c03535;--steel: #7ba6cc;--canvas: #2461a5;--canvas-text: #f4e3a9;--panel: #1a4779;--panel-text: #f4e3a9;--panel-accent: #e3bc4e;--deep: #17191f;--deep-text: #f4e3a9;--line: rgba(244, 227, 169, .28);--panel-line: rgba(244, 227, 169, .3);--deep-line: rgba(244, 227, 169, .25)}:root[data-theme=dark]{--canvas: #090f1f;--canvas-text: #edf2ef;--panel: #1d4472;--panel-text: #edf2ef;--panel-accent: #e3bc4e;--deep: #040712;--deep-text: #edf2ef;--highlight: #8ba9c0;--line: rgba(237, 242, 239, .22);--panel-line: rgba(237, 242, 239, .32);--deep-line: rgba(237, 242, 239, .22);color-scheme:dark}*{box-sizing:border-box}html{max-width:100%;overflow-x:hidden;scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;overflow-x:clip;color:var(--canvas-text);background:var(--canvas);transition:color .45s ease,background-color .45s ease}.is-route-transitioning{cursor:progress}.is-route-transitioning body{pointer-events:none}.is-route-transitioning [data-flip-id]{backface-visibility:hidden;transform-origin:center}body::selection{color:var(--canvas);background:var(--canvas-text)}a{color:inherit;text-decoration:none}button{color:inherit}.site-header{position:fixed;z-index:20;top:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;padding:1.35rem 2rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}.site-header .brand,.site-header nav,.site-header .header-actions{pointer-events:auto}@media(min-width:901px){.site-header nav,.site-header .theme-toggle{transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease}.site-header.is-scrolled nav{padding:.55rem 1.2rem;border:1px solid color-mix(in srgb,var(--paper) 18%,transparent);border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 68%,transparent);box-shadow:0 .9rem 2.4rem #04071247;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.site-header.is-scrolled .theme-toggle{padding:.45rem .85rem;border:1px solid color-mix(in srgb,var(--paper) 18%,transparent);border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 68%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}.brand{width:max-content;font-family:var(--font-sans);font-size:1rem;font-weight:700;letter-spacing:-.05em}.brand-dot{padding:0 .12rem;color:var(--orange)}.site-header nav{display:flex;gap:2rem}.site-header nav a{position:relative}.site-header nav a:after{position:absolute;right:0;bottom:-.35rem;left:0;height:1px;content:"";transform:scaleX(0);transform-origin:right;background:currentColor;transition:transform .28s ease}.site-header nav a:hover:after{transform:scaleX(1);transform-origin:left}.header-actions{display:flex;align-items:center;justify-self:end}.menu-button{display:none}.theme-toggle{display:flex;align-items:center;gap:.55rem;padding:0;border:0;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;background:transparent;cursor:pointer}.theme-toggle-orbit{position:relative;display:block;width:1.55rem;height:.8rem;border:1px solid currentColor;border-radius:1rem}.theme-toggle-orbit i{position:absolute;top:.12rem;left:.12rem;width:.45rem;height:.45rem;border-radius:50%;background:currentColor;transition:transform .35s cubic-bezier(.16,1,.3,1)}:root[data-theme=dark] .theme-toggle-orbit i{transform:translate(.75rem)}.mobile-theme-toggle{display:none}.hero{--hero-x: 0;--hero-y: 0;--hero-exit: 0;position:relative;display:flex;flex-direction:column;min-height:100svh;padding:6.5rem 2rem 5.5rem;overflow:hidden;color:var(--deep-text);border-bottom:1px solid var(--line);background:var(--deep)}.hero-media{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;filter:brightness(calc(1 - var(--hero-exit) * .55))}.hero-video{width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.05) brightness(.92)}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .7s ease}.hero-canvas.is-live{opacity:1}.hero-reel-source{display:none}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(4,7,18,.62) 1px,transparent 1px),linear-gradient(90deg,rgba(4,7,18,.62) 1px,transparent 1px);background-size:4px 4px;mix-blend-mode:multiply}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(4,7,18,.92) 0%,rgba(4,7,18,.38) 32%,transparent 55%),linear-gradient(to bottom,rgba(4,7,18,.55),transparent 24%),radial-gradient(120% 100% at 50% 40%,transparent 52%,rgba(4,7,18,.66) 100%)}.hero-kicker,.hero-footer{position:relative;z-index:3;display:flex;justify-content:space-between;gap:1rem;font-family:var(--font-mono);font-size:.65rem;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.hero-kicker span:first-child{color:var(--highlight)}.hero-content{position:relative;z-index:3;margin-top:auto;max-width:46rem;transform:translate3d(calc(var(--hero-x) * -.55rem),calc(var(--hero-y) * -.35rem - var(--hero-exit) * 3.2rem),0);opacity:calc(1 - var(--hero-exit) * 1.2)}.hero-title{margin:0 0 1.7rem;font-family:var(--font-display);font-size:clamp(3.4rem,7vw,6.4rem);font-weight:700;line-height:.98;letter-spacing:-.045em}.hero-title .line{display:block;transform:translateY(105%);opacity:0;animation:title-in 1.15s cubic-bezier(.16,1,.3,1) forwards}.hero-title .line-one{margin:0 0 .06em -.05em;font-family:var(--font-serif);font-size:.5em;font-style:italic;font-weight:400;letter-spacing:.01em;color:var(--highlight)}.hero-title .line-two{animation-delay:.13s}.hero-title em{font-family:inherit;font-weight:inherit;font-style:normal}.hero-lede{position:relative;max-width:28rem;margin:0;padding-top:1.15rem;font-size:clamp(.95rem,1.1vw,1.08rem);line-height:1.7;color:color-mix(in srgb,var(--deep-text) 88%,transparent);text-wrap:pretty}.hero-lede:before{position:absolute;top:0;left:.06rem;width:2.6rem;height:1px;content:"";background:color-mix(in srgb,var(--highlight) 75%,transparent)}@media(min-width:901px){.hero-content{display:flex;align-items:flex-end;gap:clamp(2.5rem,5vw,5rem);max-width:none}.hero-title{margin:0;flex:0 0 auto}.hero-lede{max-width:23rem;margin-bottom:.4rem}}.hero-footer{position:absolute;right:2rem;bottom:1.7rem;left:auto;align-items:flex-end}.scroll-link{display:flex;align-items:center;gap:.8rem}.scroll-line{position:relative;width:4rem;height:1px;overflow:hidden;background:color-mix(in srgb,var(--deep-text) 30%,transparent)}.scroll-line:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";transform:translate(-100%);background:var(--deep-text);animation:scan 2.2s 1s ease-in-out infinite}.reveal{opacity:0;animation:fade-in 1s .9s ease forwards}.hero-lede.reveal{animation-delay:.65s}.section{padding:8rem 2rem}.work.section{padding:0}.work .section-heading{margin-bottom:clamp(4.75rem,5vw,5.5rem)}@supports (content-visibility: auto){.project-map-section,.experience,.contact,.project-overview,.project-detail-canvas,.project-gallery,.project-story article,.next-project{content-visibility:auto}.project-map-section{contain-intrinsic-size:auto 48rem}.experience,.project-overview,.project-detail-canvas,.project-gallery,.project-story article{contain-intrinsic-size:auto 44rem}.project-story article{contain-intrinsic-size:auto 58rem}.contact,.next-project{contain-intrinsic-size:auto 32rem}@media(max-width:600px){.project-story article{contain-intrinsic-size:auto 74rem}}}.section-wave{--wave-from: var(--canvas);--wave-to: var(--deep);--wave-shape: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 220' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M0 82C120 38 240 126 360 82C480 38 600 126 720 82C840 38 960 126 1080 82C1200 38 1320 126 1440 82V220H0V82Z'/%3E%3C/svg%3E");position:relative;height:clamp(4rem,7vw,7rem);overflow:hidden;background:var(--wave-from);transition:background-color .45s ease}.section-wave:before,.section-wave:after{position:absolute;right:-8vw;bottom:-1px;left:-8vw;height:128%;content:"";background:var(--wave-to);-webkit-mask-image:var(--wave-shape);mask-image:var(--wave-shape);-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:100% 100%;mask-size:100% 100%;transform:translate(0);transform-origin:center bottom;transition:background-color .45s ease}.section-wave:before{opacity:.32;animation:wave-drift-slow 16s ease-in-out infinite alternate}.section-wave:after{bottom:-.85rem;opacity:1;animation:wave-drift 11s ease-in-out infinite alternate}.section-wave-deep{--wave-from: var(--canvas);--wave-to: transparent;height:clamp(1.75rem,3.2vw,3rem)}.section-wave-deep:before,.section-wave-deep:after{display:none}.section-wave-panel{--wave-from: var(--canvas);--wave-to: var(--panel)}.work+.section-wave-panel{--wave-from: var(--deep)}.section-wave-canvas{--wave-from: var(--panel);--wave-to: var(--canvas)}.section-wave-shore{--wave-from: var(--panel);--wave-to: var(--deep)}.route-loading{min-height:100svh}.section-heading{display:grid;grid-template-columns:minmax(8rem,.72fr) minmax(0,2.65fr);align-items:start;column-gap:clamp(2rem,4vw,5rem);row-gap:1.35rem;margin-bottom:6rem;opacity:0;transform:translateY(2rem);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}.section-heading-index,.experience-index-group{display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(1.4rem,4vw,3rem)}.section-index{color:var(--highlight);font-family:var(--font-serif);font-size:clamp(4.4rem,7vw,6.8rem);font-style:italic;line-height:.76;opacity:.24}.section-heading.in-view,.project-card.in-view,.experience-heading.in-view,.experience-row.in-view{opacity:1;transform:translateY(0)}.eyebrow{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.07em;text-transform:uppercase}.section-heading h2{grid-column:2;margin:-.7rem 0 0;max-width:68rem;font-size:clamp(3.25rem,7vw,7rem);font-weight:700;line-height:.96;letter-spacing:-.045em;text-wrap:balance}.section-heading h2 em{color:var(--highlight);font-family:var(--font-serif);font-size:.94em;font-style:italic;font-weight:400;letter-spacing:0}.section-heading p{grid-column:2;max-width:35rem;margin:0;font-size:clamp(1.05rem,1.16vw,1.16rem);line-height:1.76;text-wrap:pretty}.projects{display:grid;gap:clamp(7.75rem,9vw,9rem);min-width:0}.project-card{position:relative;display:grid;grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);gap:2rem;min-width:0;width:100%;scroll-margin-top:clamp(1.5rem,4vw,3rem);opacity:0;transform:translateY(3rem);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}.project-card:focus-visible{border-radius:1.2rem;outline:1px solid color-mix(in srgb,var(--project-color) 72%,transparent);outline-offset:.65rem}.project-card:before{position:absolute;top:-.85rem;left:0;width:clamp(3.5rem,10vw,8rem);height:2px;content:"";background:var(--project-color);opacity:.78;transform-origin:left;transition:width .65s cubic-bezier(.16,1,.3,1),opacity .25s ease}.project-card:hover:before,.project-card:focus-visible:before{width:100%;opacity:1}.project-card:nth-child(2){transition-delay:80ms}.project-visual{position:relative;min-width:0;width:100%;aspect-ratio:16 / 9;overflow:hidden;contain:paint;border-radius:1.15rem;color:var(--ink);background:var(--project-color)}.project-visual-surface{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:inherit;background:var(--project-color)}.project-visual-surface:before,.project-visual-surface:after{position:absolute;content:"";transition:transform .8s cubic-bezier(.16,1,.3,1)}.project-visual-surface:before{top:50%;left:50%;width:42%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(18deg);border:1px solid rgba(17,26,44,.6);border-radius:48% 52% 42% 58%/58% 38% 62% 42%}.project-visual-surface:after{top:50%;left:50%;width:18%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:var(--ink);box-shadow:4.2rem -2rem 0 -1.2rem #f3e7c5e6}.project-card:hover .project-visual-surface:before{transform:translate(-50%,-50%) rotate(55deg) scale(1.12)}.project-card:hover .project-visual-surface:after{transform:translate(-50%,-50%) scale(1.18)}.project-thumbnail{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;object-fit:var(--thumbnail-fit, cover);object-position:var(--thumbnail-position, center);transform:scale(1.001);transition:opacity .18s ease,transform .9s cubic-bezier(.16,1,.3,1)}.project-thumbnail-preview,.project-thumbnail-freeze{opacity:0;pointer-events:none}.project-thumbnail-preview.is-visible,.project-thumbnail-freeze.is-visible{opacity:1}.project-visual.has-thumbnail{color:#fff;background:#070d18}.project-visual-surface.has-thumbnail{background:#070d18}.project-visual-surface.has-thumbnail:before{z-index:1;top:0;right:0;bottom:0;left:0;width:auto;aspect-ratio:auto;transform:none;border:0;border-radius:0;background:linear-gradient(180deg,rgba(4,7,18,.42),transparent 32%),linear-gradient(0deg,rgba(4,7,18,.62),transparent 38%)}.project-visual-surface.has-thumbnail:after,.project-visual-surface.has-thumbnail .project-orbit{display:none}.project-card:hover .project-visual-surface.has-thumbnail:before{transform:none}.project-card:hover .project-thumbnail{transform:scale(1.045)}.project-orbit{position:absolute;top:13%;right:13%;bottom:13%;left:13%;border:1px solid rgba(17,26,44,.28);border-radius:50%;transform:rotate(-11deg)}.project-orbit span{position:absolute;top:46%;right:-.35rem;width:.7rem;aspect-ratio:1;border-radius:50%;background:var(--paper)}.project-number,.view-project{position:absolute;z-index:2;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.07em;text-transform:uppercase}.project-number{top:1.3rem;left:1.3rem;color:var(--project-color);text-shadow:0 .2rem 1.2rem rgba(4,7,18,.8)}.view-project{right:1.3rem;bottom:1.3rem;display:flex;align-items:center;gap:.5rem}.view-project svg{width:1rem;fill:none;stroke:currentColor;stroke-width:1.5}.project-meta{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(1.45rem,2.8vw,2rem);min-width:0;padding:.4rem 0 .9rem;border-top:1px solid color-mix(in srgb,var(--project-color) 48%,var(--line));transition:border-color .26s ease}.project-meta h3{margin:1.2rem 0;width:min(100%,max-content);max-width:100%;font-size:clamp(2rem,3.65vw,3.9rem);font-weight:700;line-height:1.05;letter-spacing:-.035em;overflow-wrap:anywhere;text-wrap:balance;transition:color .26s ease}.project-card:hover .project-meta,.project-card:focus-visible .project-meta{border-color:var(--project-color)}.project-card:hover .project-meta h3,.project-card:focus-visible .project-meta h3{color:var(--project-color)}.project-meta p{max-width:28rem;margin:0;font-size:clamp(1.05rem,1.16vw,1.16rem);line-height:1.76;text-wrap:pretty}.project-skill-tags{display:flex;flex-wrap:wrap;gap:.45rem;max-width:31rem;margin:1.35rem 0 0;padding:0;list-style:none}.project-skill-tags li{padding:.38rem .58rem;border:1px solid color-mix(in srgb,var(--project-color) 46%,var(--line));border-radius:999px;color:color-mix(in srgb,var(--canvas-text) 90%,var(--project-color));background:color-mix(in srgb,var(--project-color) 8%,transparent);font-family:var(--font-mono);font-size:clamp(.58rem,.64vw,.66rem);line-height:1;letter-spacing:.045em;text-transform:uppercase;transition:color .22s ease,border-color .22s ease,background-color .22s ease}.project-card:hover .project-skill-tags li,.project-card:focus-visible .project-skill-tags li{color:var(--project-color);border-color:color-mix(in srgb,var(--project-color) 68%,var(--line));background:color-mix(in srgb,var(--project-color) 13%,transparent)}.project-tags{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:space-between;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--project-color) 30%,var(--line));font-family:var(--font-mono);font-size:.6rem;line-height:1.35;letter-spacing:.06em;text-transform:uppercase}.work-story{--map-text: var(--canvas-text);position:relative;margin:0}.work-story-map{position:sticky;top:0;z-index:0;height:100svh;height:100dvh;overflow:hidden}.project-map-layout{display:block;height:100%}.work-story .project-map-frame{position:relative;display:flex;flex-direction:column;height:100%;border:0;border-radius:0;box-shadow:none}.itinerary-mini{display:none}.work-story .project-map-visual{flex:1;min-height:0}.work-story .project-map-fallback{height:100%;min-height:0;border:0;border-radius:0}.work-story .maplibregl-ctrl-top-right{display:none}.work-story-chapters{position:relative;z-index:1;margin-top:-100svh;margin-top:-100dvh;pointer-events:none}.work-story-chapter{min-height:100svh}.work-story-chapter[data-story-slug]{min-height:0}.work-story-chapter[data-story-slug]+.work-story-chapter[data-story-slug]{padding-top:34svh}.work-story-beat{min-height:72svh}.work-story-exit{height:70svh;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--deep) 55%,transparent) 45%,var(--deep) 82%,var(--deep))}.work-story-stage{position:sticky;top:0;z-index:2;height:100svh;height:100dvh;margin-top:-100svh;margin-top:-100dvh;overflow:hidden;pointer-events:none}.work-story-panel{position:absolute;top:50%;left:clamp(2rem,4vw,3.5rem);width:min(calc(100% - 4rem),clamp(21rem,30vw,26rem));visibility:hidden;opacity:0;transform:translateY(-50%) translate(var(--swipe-x, 3.5rem));transition:opacity .55s ease,transform .7s cubic-bezier(.16,1,.3,1),visibility 0s linear .7s}.work-story-panel.is-before{--swipe-x: -3.5rem}.work-story-arrows{position:absolute;right:2rem;bottom:5.5rem;z-index:3;display:flex;gap:.5rem;pointer-events:auto}.work-story-arrows button{display:grid;width:2.6rem;height:2.6rem;place-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid color-mix(in srgb,var(--paper) 24%,transparent);border-radius:50%;color:color-mix(in srgb,var(--paper) 85%,transparent);background:color-mix(in srgb,var(--deep) 72%,transparent);box-shadow:0 .8rem 2rem #0407124d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;font-family:var(--font-mono);font-size:.95rem;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.work-story-arrows button:hover,.work-story-arrows button:focus-visible{color:var(--highlight);border-color:color-mix(in srgb,var(--highlight) 55%,transparent);background:color-mix(in srgb,var(--deep) 88%,transparent);outline:0}.work-story-panel.is-active{--swipe-x: 0rem;visibility:visible;opacity:1;transition-delay:0s}.work-story-panel.is-intro{top:45%;left:50%;width:min(calc(100% - 4rem),46rem);text-align:center;transform:translate(-50%,-50%) translate(var(--swipe-x, 3.5rem))}@media(prefers-reduced-motion:reduce){.work-story-panel{--swipe-x: 0rem;transition:opacity .25s ease,visibility 0s linear .25s}}.work-story-intro-copy{display:grid;gap:1.5rem;justify-items:center;max-width:46rem}.work-story-intro-copy h2{margin:0;color:var(--paper);font-size:clamp(3rem,6vw,5.9rem);font-weight:700;line-height:.98;letter-spacing:-.045em;text-shadow:0 1rem 3rem rgba(4,7,18,.65);text-wrap:balance}.work-story-intro-copy h2 em{color:var(--highlight);font-family:var(--font-serif);font-size:.94em;font-style:italic;font-weight:400;letter-spacing:0}.work-story-scroll-cue{position:relative;margin-top:.5rem;padding-bottom:2.6rem;color:color-mix(in srgb,var(--paper) 72%,transparent);font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.work-story-scroll-cue:after{position:absolute;bottom:0;left:50%;width:1px;height:2rem;content:"";background:linear-gradient(to bottom,color-mix(in srgb,var(--paper) 70%,transparent),transparent)}.work-story-beat-panel{position:relative;display:block;width:100%;padding:clamp(1.4rem,2vw,1.8rem);border:1px solid color-mix(in srgb,var(--paper) 20%,transparent);border-radius:1.4rem;background:color-mix(in srgb,var(--deep) 84%,transparent);box-shadow:0 2rem 5rem #04071273;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.work-story-beat-panel .beat-link{display:inline-block;margin-top:1.1rem;color:var(--project-color);font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;pointer-events:auto;transition:color .25s ease}.work-story-beat-panel .beat-link:hover,.work-story-beat-panel .beat-link:focus-visible{color:var(--paper)}.work-story-beat-panel .beat-kicker{display:block;margin-bottom:.85rem;color:var(--project-color);font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.work-story-beat-panel h3{margin:0 0 .9rem;color:var(--paper);font-size:clamp(1.45rem,1.8vw,1.9rem);font-weight:650;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}.work-story-beat-panel p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;margin:0;overflow:hidden;color:color-mix(in srgb,var(--paper) 82%,transparent);font-size:.95rem;line-height:1.7}.work-story-beat-panel.is-dense p{-webkit-line-clamp:8;font-size:.88rem;line-height:1.62}.work-story-beat-panel.is-dense h3{font-size:clamp(1.3rem,1.6vw,1.7rem)}.work-story .project-map-preview{width:15.5rem}.work-story .project-map-preview img,.work-story .project-map-preview video{height:6.75rem}.work-story .project-map-preview-copy strong{font-size:.72rem}.work-story .project-map-preview-copy small{font-size:.58rem}.work-story .project-map-preview-desc{font-size:.6rem}.work-story .project-map-preview-meta small{font-size:.56rem}.work-story .project-map-preview-cta{font-size:.58rem}.project-map-frame{--frame-line: color-mix(in srgb, var(--paper) 16%, transparent);--frame-surface: color-mix(in srgb, var(--deep) 94%, var(--canvas));overflow:hidden;border:1px solid color-mix(in srgb,var(--paper) 24%,transparent);border-radius:1.5rem;color:var(--paper);background:var(--frame-surface);box-shadow:0 2rem 5rem #04071238}.project-map-itinerary{position:relative;display:flex;border-top:1px solid var(--frame-line)}.project-map-itinerary:after{position:absolute;top:-1px;left:0;width:calc(var(--story-progress, 0) * 100%);height:2px;content:"";pointer-events:none;background:var(--highlight)}.itinerary-stops{display:flex;flex:1;min-width:0}.itinerary-stop{--stop-scrim: var(--frame-surface);position:relative;display:flex;flex:1;gap:.9rem;align-items:center;min-width:0;padding:1.05rem 1.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;color:inherit;background:transparent;cursor:pointer;font:inherit;text-align:left}.itinerary-stop+.itinerary-stop{border-left:1px solid var(--frame-line)}.itinerary-stop:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";pointer-events:none;background-image:linear-gradient(100deg,var(--stop-scrim) 48%,color-mix(in srgb,var(--stop-scrim) 28%,transparent) 60%,color-mix(in srgb,var(--deep) 42%,transparent) 100%),var(--stop-image, none);background-size:auto,cover;background-position:left center,right center;background-repeat:no-repeat;transition:opacity .22s ease}.itinerary-stop:hover,.itinerary-stop:focus-visible{--stop-scrim: color-mix(in srgb, var(--project-color) 10%, var(--frame-surface));outline:0}.itinerary-stop.is-active{--stop-scrim: color-mix(in srgb, var(--project-color) 20%, var(--frame-surface))}.itinerary-stop-node{z-index:1;display:grid;flex:0 0 auto;width:2.1rem;height:2.1rem;place-items:center;border:1px solid color-mix(in srgb,var(--paper) 34%,transparent);border-radius:50%;color:color-mix(in srgb,var(--paper) 72%,transparent);background:var(--frame-surface);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.05em;transition:color .22s ease,border-color .22s ease,background-color .22s ease}.itinerary-stop.is-active .itinerary-stop-node{border-color:var(--project-color);color:var(--deep);background:var(--project-color);font-weight:700}.itinerary-stop-copy{z-index:1;display:grid;gap:.18rem;min-width:0}.itinerary-stop-copy strong{overflow:hidden;color:var(--paper);font-size:clamp(.92rem,1.1vw,1.05rem);font-weight:600;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.itinerary-stop-copy small{overflow:hidden;color:color-mix(in srgb,var(--paper) 58%,transparent);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.itinerary-stop.is-active .itinerary-stop-copy small{color:var(--project-color)}.itinerary-world{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 1.4rem;border:0;border-right:1px solid var(--frame-line);color:color-mix(in srgb,var(--paper) 68%,transparent);background:transparent;cursor:pointer;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:color .22s ease,background-color .22s ease}.itinerary-world:hover,.itinerary-world:focus-visible,.itinerary-world.is-active{color:var(--highlight);background:color-mix(in srgb,var(--highlight) 10%,transparent);outline:0}.project-map-visual,.project-map-fallback{position:relative;min-height:clamp(24rem,44vw,36rem);overflow:hidden;background:radial-gradient(circle at 50% 44%,color-mix(in srgb,var(--project-color) 26%,transparent),transparent 34%),radial-gradient(circle at 50% 50%,rgba(4,7,18,.28),transparent 58%),linear-gradient(145deg,rgba(4,7,18,.18),transparent 62%)}.project-map-fallback{border:1px solid color-mix(in srgb,var(--paper) 24%,transparent);border-radius:1.5rem}.project-map-visual:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";pointer-events:none;opacity:.16;background-image:linear-gradient(color-mix(in srgb,var(--map-text) 10%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--map-text) 10%,transparent) 1px,transparent 1px);background-size:3.75rem 3.75rem;-webkit-mask-image:radial-gradient(circle at center,black,transparent 72%);mask-image:radial-gradient(circle at center,black,transparent 72%)}.project-map-canvas{position:absolute!important;top:0;right:0;bottom:0;left:0}.project-map-visual.is-map-locked .maplibregl-canvas-container{pointer-events:none}.project-map-visual.is-map-locked .maplibregl-control-container{pointer-events:auto}.project-map-canvas .maplibregl-canvas{filter:saturate(.92) contrast(1.05) brightness(.78)}.project-map-canvas .maplibregl-ctrl-bottom-left{z-index:3}.project-map-canvas .maplibregl-ctrl-attrib,.project-map-canvas .maplibregl-ctrl-attrib.maplibregl-compact,.project-map-canvas .maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 78%,transparent);font-family:var(--font-mono);font-size:.56rem;letter-spacing:.03em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.project-map-canvas .maplibregl-ctrl-attrib a{color:inherit}.project-map-canvas .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button{filter:invert(1)}.project-map-canvas .maplibregl-ctrl-group{overflow:hidden;border:1px solid color-mix(in srgb,var(--paper) 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--deep) 72%,transparent);box-shadow:none}.project-map-canvas .maplibregl-ctrl button{filter:invert(1)}.project-map-marker{position:relative;display:grid;width:1.4rem;height:1.4rem;padding:0;border:0;border-radius:50%;place-items:center;background:transparent;cursor:pointer;transform:translateZ(0)}.project-map-marker.is-hidden{visibility:hidden;pointer-events:none;opacity:0}.project-map-marker:before{position:absolute;top:-.45rem;right:-.45rem;bottom:-.45rem;left:-.45rem;content:"";border:1px solid color-mix(in srgb,var(--project-color) 62%,transparent);border-radius:inherit;opacity:.46;transform:scale(.75);transition:opacity .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.project-map-marker span{width:.68rem;height:.68rem;border:2px solid var(--paper);border-radius:50%;background:var(--project-color);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--project-color) 22%,transparent),0 0 1rem color-mix(in srgb,var(--project-color) 54%,transparent)}.project-map-marker.is-group{width:1.75rem;height:1.75rem}.project-map-marker.is-group span{width:.82rem;height:.82rem}.project-map-marker.is-group:after{position:absolute;right:-.32rem;top:-.32rem;display:grid;width:1rem;height:1rem;content:attr(data-count);border:1px solid color-mix(in srgb,var(--paper) 64%,transparent);border-radius:50%;place-items:center;color:var(--deep);background:var(--paper);font-family:var(--font-mono);font-size:.54rem;line-height:1}.project-map-marker:hover:before,.project-map-marker:focus-visible:before,.project-map-marker.is-active:before{opacity:1;transform:scale(1.15)}.project-map-marker:focus-visible{outline:0}.project-map-popup .maplibregl-popup-content{min-width:14rem;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--paper) 20%,transparent);border-radius:.8rem;color:var(--paper);background:color-mix(in srgb,var(--deep) 84%,transparent);box-shadow:0 1rem 2.5rem #0407123d;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.project-map-popup .maplibregl-popup-tip{border-top-color:color-mix(in srgb,var(--deep) 84%,transparent)}.project-map-popup-list{display:grid}.project-map-popup-heading{padding:.72rem .85rem .55rem;color:color-mix(in srgb,var(--paper) 56%,transparent);font-size:.54rem;border-bottom:1px solid color-mix(in srgb,var(--paper) 14%,transparent)}.project-map-popup-list button{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;gap:.24rem;padding:.72rem .85rem;color:inherit;background:transparent;cursor:pointer;font:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;border:0;border-left:3px solid transparent;transition:color .18s ease,background-color .18s ease,border-color .18s ease}.project-map-popup-list button+button{border-top:1px solid color-mix(in srgb,var(--paper) 12%,transparent)}.project-map-popup-list button:hover,.project-map-popup-list button:focus-visible{color:var(--project-color);border-left-color:var(--project-color);background:color-mix(in srgb,var(--project-color) 12%,transparent);outline:0}.project-map-popup strong{font-size:.62rem;font-weight:500}.project-map-popup span{color:color-mix(in srgb,var(--paper) 62%,transparent);font-size:.56rem}.project-map-preview-popup{z-index:3;font-family:var(--font-mono)}.project-map-preview-popup:after{position:absolute;bottom:-1.7rem;left:50%;width:1px;height:1.7rem;content:"";background:linear-gradient(to bottom,color-mix(in srgb,var(--paper) 62%,transparent),color-mix(in srgb,var(--paper) 14%,transparent))}.project-map-preview-popup .maplibregl-popup-tip{display:none}.project-map-preview-popup .maplibregl-popup-content{padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--paper) 24%,transparent);border-radius:.7rem;background:color-mix(in srgb,var(--deep) 88%,transparent);box-shadow:0 .9rem 2.2rem #04071273;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:scale(var(--map-popup-scale, 1));transform-origin:bottom center}.project-map-preview{display:block;width:10rem;color:var(--paper)}.project-map-preview img,.project-map-preview video{display:block;width:100%;height:3rem;object-fit:cover}.project-map-preview-copy{display:grid;gap:.24rem;padding:.5rem .6rem .3rem}.project-map-preview-copy strong{color:var(--project-color);font-size:.6rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.project-map-preview-copy small{color:color-mix(in srgb,var(--paper) 70%,transparent);font-size:.5rem;letter-spacing:.05em;text-transform:uppercase}.project-map-preview-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;color:color-mix(in srgb,var(--paper) 80%,transparent);font-size:.52rem;letter-spacing:.02em;line-height:1.6}.project-map-preview-meta{display:flex;gap:1rem;align-items:baseline;justify-content:space-between;margin:.4rem .6rem 0;padding-top:.4rem;border-top:1px solid color-mix(in srgb,var(--project-color) 46%,transparent)}.project-map-preview-meta small{color:color-mix(in srgb,var(--paper) 68%,transparent);font-size:.5rem;letter-spacing:.05em;text-transform:uppercase}.project-map-preview-cta{display:none;padding:.1rem .6rem .55rem;color:color-mix(in srgb,var(--paper) 86%,transparent);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;transition:color .25s ease}.project-map-preview:hover .project-map-preview-cta{color:var(--project-color)}.project-map-mobile-control{display:none}.experience{--canvas: var(--panel);--canvas-text: var(--panel-text);--highlight: var(--panel-accent);--line: var(--panel-line);color:var(--canvas-text);background:var(--canvas);transition:background-color .45s ease,color .45s ease}.experience-heading{display:grid;grid-template-columns:minmax(8rem,.72fr) minmax(0,2.65fr);column-gap:clamp(2rem,4vw,5rem);row-gap:1.35rem;margin-bottom:6rem;opacity:0;transform:translateY(2rem);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}.experience-heading>div:first-child{grid-row:1 / span 2}.experience-index{opacity:.24}.experience-heading h2{grid-column:2;max-width:52rem;margin:-.45rem 0 0;font-size:clamp(3.25rem,6.3vw,6.4rem);font-weight:700;line-height:1;letter-spacing:-.045em;text-wrap:balance}.experience-heading h2 em{color:var(--highlight);font-family:var(--font-serif);font-size:.94em;font-style:italic;font-weight:400;letter-spacing:0}.experience-intro{grid-column:2;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;max-width:52rem}.experience-intro p{max-width:23rem;margin:0;font-size:clamp(.95rem,1.08vw,1.02rem);line-height:1.72}.resume-link{display:flex;align-items:center;width:max-content;gap:.6rem;padding-bottom:.45rem;border-bottom:1px solid currentColor;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.resume-link svg{width:.95rem;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .3s ease}.resume-link:hover svg{transform:translate(.2rem,-.2rem)}.resume-link:focus-visible{outline:1px solid color-mix(in srgb,var(--highlight) 72%,transparent);outline-offset:.45rem}.experience-list{--timeline-rail: 100px;--timeline-axis: calc(var(--timeline-rail) / 2);--timeline-node-size: .72rem;--experience-heading-gap: clamp(2rem, 4vw, 5rem);--experience-row-gap: clamp(1.35rem, 3vw, 2.4rem);--experience-row-content-offset: calc(var(--timeline-rail) + var(--experience-row-gap));--experience-list-left: max( 0rem, calc(21.36% + var(--experience-heading-gap) - var(--experience-row-content-offset)) );position:relative;width:min(calc(100% - var(--experience-list-left)),82rem);max-width:none;margin-left:var(--experience-list-left);margin-right:auto;isolation:isolate}.experience-list:before,.experience-list:after{position:absolute;top:0;bottom:0;left:var(--timeline-axis);z-index:0;content:"";pointer-events:none;transform:translate(-50%)}.experience-list:before{width:1px;background:linear-gradient(transparent,color-mix(in srgb,var(--highlight) 70%,var(--canvas-text)) 12%,color-mix(in srgb,var(--canvas-text) 44%,transparent) 50%,color-mix(in srgb,var(--highlight) 70%,var(--canvas-text)) 88%,transparent);opacity:.58}.experience-list:after{width:3px;height:clamp(4rem,9vw,7rem);border-radius:999px;background:linear-gradient(transparent,color-mix(in srgb,var(--highlight) 92%,white),transparent);box-shadow:0 0 1.15rem color-mix(in srgb,var(--highlight) 52%,transparent),0 0 2.5rem color-mix(in srgb,var(--highlight) 22%,transparent);opacity:.84;transform:translate(-50%,-100%);animation:timeline-scan 5.6s linear infinite}.experience-row{--experience-row-pad-y: 2rem;--timeline-node-y: calc(var(--experience-row-pad-y) + .43rem);position:relative;z-index:1;display:grid;grid-template-columns:var(--timeline-rail) minmax(0,60rem);grid-template-areas:"number period" "number role" "number detail";column-gap:var(--experience-row-gap);row-gap:.62rem;align-items:start;padding:var(--experience-row-pad-y) 0;border-top:1px solid var(--line);opacity:0;transform:translateY(1.5rem);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.experience-row:before,.experience-row:after{position:absolute;top:var(--timeline-node-y);content:"";pointer-events:none}.experience-row:before{left:var(--timeline-axis);z-index:2;width:var(--timeline-node-size);height:var(--timeline-node-size);border:1px solid color-mix(in srgb,var(--highlight) 78%,var(--canvas-text));border-radius:50%;background:var(--canvas);box-shadow:0 0 0 .38rem color-mix(in srgb,var(--canvas) 82%,transparent),0 0 .9rem color-mix(in srgb,var(--highlight) 26%,transparent);transform:translate(-50%,-50%)}.experience-row:after{left:var(--timeline-axis);z-index:1;width:calc(var(--timeline-rail) - var(--timeline-axis));height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--highlight) 70%,transparent),color-mix(in srgb,var(--canvas-text) 26%,transparent));opacity:.7;transform:translateY(-50%)}.experience-row.in-view:before{animation:timeline-node-pulse 3.4s ease-in-out infinite}.experience-row:nth-child(2){transition-delay:80ms}.experience-row:nth-child(3){transition-delay:.16s}.experience-number,.experience-period,.experience-role span{font-family:var(--font-mono);font-size:clamp(.75rem,.92vw,.86rem);letter-spacing:.06em;line-height:1.45;text-transform:uppercase}.experience-number{grid-area:number;display:grid;min-height:1.5rem;padding-top:.08rem;place-items:start;color:color-mix(in srgb,var(--highlight) 82%,var(--canvas-text));opacity:.9}.experience-period{grid-area:period;justify-self:start;max-width:none;text-align:left;opacity:.8}.experience-role{grid-area:role}.experience-role h3{position:relative;width:fit-content;max-width:100%;margin:0 0 .65rem;color:color-mix(in srgb,var(--canvas-text) 84%,var(--acid));font-size:clamp(1.9rem,2.85vw,3rem);font-weight:700;line-height:1.1;letter-spacing:-.025em;text-shadow:0 .65rem 1.8rem color-mix(in srgb,var(--acid) 10%,transparent);transition:color .26s ease,text-shadow .26s ease}.experience-role h3:after{position:absolute;right:0;bottom:-.28rem;left:0;width:min(7rem,54%);height:1px;content:"";background:linear-gradient(90deg,var(--acid),color-mix(in srgb,var(--acid) 12%,transparent));opacity:.72;transform-origin:left;transition:width .32s cubic-bezier(.16,1,.3,1),opacity .22s ease}.experience-row:hover .experience-role h3,.experience-row:focus-within .experience-role h3{color:color-mix(in srgb,var(--canvas-text) 72%,var(--acid));text-shadow:0 .75rem 2.1rem color-mix(in srgb,var(--acid) 16%,transparent)}.experience-row:hover .experience-role h3:after,.experience-row:focus-within .experience-role h3:after{width:100%;opacity:.95}.experience-role span{color:color-mix(in srgb,var(--canvas-text) 74%,var(--acid));opacity:.84}.experience-row p{grid-area:detail;max-width:52rem;margin:0;font-size:clamp(.95rem,1.08vw,1.02rem);line-height:1.78;text-wrap:pretty}.project-page{--project-page-bg: var(--project-bg-light, var(--canvas));--project-page-text: var(--project-text-light, var(--canvas-text));--project-page-line: var(--project-line-light, var(--line));--project-panel-bg: var(--project-panel-bg-light, var(--panel));--project-panel-text: var(--project-panel-text-light, var(--panel-text));--project-story-bg: var(--project-story-bg-light, var(--deep));--project-story-text: var(--project-story-text-light, var(--deep-text));--project-story-line: var(--project-story-line-light, var(--deep-line));color:var(--project-page-text);background:var(--project-page-bg);transition:color .45s ease,background-color .45s ease}:root[data-theme=dark] .project-page{--project-page-bg: var(--project-bg-dark, var(--canvas));--project-page-text: var(--project-text-dark, var(--canvas-text));--project-page-line: var(--project-line-dark, var(--line));--project-panel-bg: var(--project-panel-bg-dark, var(--panel));--project-panel-text: var(--project-panel-text-dark, var(--panel-text));--project-story-bg: var(--project-story-bg-dark, var(--deep));--project-story-text: var(--project-story-text-dark, var(--deep-text));--project-story-line: var(--project-story-line-dark, var(--deep-line))}body:has(.project-page) .site-header{color:var(--ink)}body:has(.project-detail-hero.has-hero-media) .site-header{color:var(--paper)}.project-detail-hero{position:relative;min-height:100svh;padding:6.5rem 2rem 2rem;overflow:hidden;contain:paint;color:var(--ink);background:var(--project-page-bg)}.project-detail-hero.has-hero-media{color:var(--paper);background:var(--deep)}.project-detail-transition-surface{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--project-color)}.project-detail-transition-surface:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";z-index:1;opacity:.3;pointer-events:none;background-image:linear-gradient(rgba(17,26,44,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(17,26,44,.1) 1px,transparent 1px);background-size:6.25vw 6.25vw}.project-detail-hero.has-hero-media .project-detail-transition-surface:before{opacity:1;background-image:linear-gradient(90deg,#040712c7,#04071275 42%,#0407121f),linear-gradient(0deg,#0407126b,#0407120d 45%,#04071252),linear-gradient(rgba(243,231,197,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(243,231,197,.08) 1px,transparent 1px);background-size:100% 100%,100% 100%,6.25vw 6.25vw,6.25vw 6.25vw}.project-hero-media{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;border:0;opacity:.82;object-fit:var(--media-fit, cover);object-position:var(--media-position, center);filter:saturate(1.08) contrast(1.04)}.project-detail-kicker,.project-detail-footer{position:relative;z-index:3;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:clamp(.68rem,.72vw,.78rem);line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.project-detail-kicker a{padding-bottom:.4rem;border-bottom:1px solid currentColor}.project-detail-title{position:absolute;z-index:2;top:50%;left:2rem;width:calc(100% - 4rem);transform:translateY(-50%)}.project-detail-title>span{display:block;margin-bottom:1.5rem;font-family:var(--font-mono);font-size:.72rem}.project-detail-title h1{max-width:83rem;margin:0;font-size:clamp(4.6rem,11.6vw,11rem);font-weight:700;line-height:.92;letter-spacing:-.045em;text-wrap:balance}.project-detail-hero.has-hero-media .project-detail-title h1,.project-detail-hero.has-hero-media .project-detail-title p,.project-detail-hero.has-hero-media .project-detail-title>span,.project-detail-hero.has-hero-media .project-detail-kicker,.project-detail-hero.has-hero-media .project-detail-footer{text-shadow:0 .25rem 1.5rem rgba(4,7,18,.5)}.project-detail-title p{max-width:42rem;margin:2rem 0 0;font-size:clamp(1.22rem,1.45vw,1.5rem);line-height:1.68;text-wrap:pretty}.project-detail-skills{display:flex;flex-wrap:wrap;gap:.52rem;max-width:min(44rem,100%);margin:1.45rem 0 0;padding:0;list-style:none}.project-detail-skills li{padding:.46rem .68rem;border:1px solid color-mix(in srgb,var(--project-color) 62%,currentColor);border-radius:999px;color:currentColor;background:color-mix(in srgb,var(--project-color) 16%,transparent);box-shadow:0 .65rem 1.6rem color-mix(in srgb,var(--project-color) 10%,transparent);font-family:var(--font-mono);font-size:clamp(.62rem,.7vw,.74rem);line-height:1;letter-spacing:.05em;text-transform:uppercase}.project-detail-orbit{position:absolute;z-index:1;top:50%;right:11%;width:clamp(17rem,35vw,34rem);aspect-ratio:1;transform:translateY(-50%) rotate(-13deg);border:1px solid rgba(17,26,44,.5);border-radius:50%;animation:detail-orbit 18s linear infinite}.project-detail-orbit:before,.project-detail-orbit:after{position:absolute;border:1px solid rgba(17,26,44,.32);border-radius:50%;content:""}.project-detail-orbit:before{top:19%;right:19%;bottom:19%;left:19%}.project-detail-orbit:after{top:38%;right:38%;bottom:38%;left:38%;background:var(--paper)}.project-detail-orbit span,.project-detail-orbit i{position:absolute;border-radius:50%;background:var(--paper)}.project-detail-orbit span{top:44%;right:-.6rem;width:1.2rem;aspect-ratio:1}.project-detail-orbit i{bottom:14%;left:6%;width:.55rem;aspect-ratio:1}.project-detail-footer{position:absolute;right:2rem;bottom:2rem;left:2rem}.project-page-wave{height:clamp(4.4rem,7.5vw,7.25rem)}.project-page-wave:before{opacity:.4}.project-page-wave:after{opacity:1}.project-page-wave-overview{--wave-from: var(--deep);--wave-to: var(--project-page-bg)}.project-page:not(:has(.project-detail-hero.has-hero-media)) .project-page-wave-overview{--wave-from: var(--project-page-bg)}.project-page-wave-story{--wave-from: var(--project-page-bg);--wave-to: var(--project-story-bg)}.project-page-wave-story:before{background:color-mix(in srgb,var(--project-color) 20%,var(--project-story-bg))}.project-overview{display:grid;grid-template-columns:1fr 3fr;column-gap:clamp(2rem,4vw,5rem);row-gap:2rem}.project-overview h2{max-width:68rem;margin:-.25rem 0 3.75rem;font-size:clamp(3rem,6.2vw,6.45rem);font-weight:700;line-height:1.04;letter-spacing:-.035em;text-wrap:balance}.project-about-copy{grid-column:2;display:grid;gap:1rem;max-width:49rem;margin:0 0 4rem}.project-about-copy p{margin:0;font-size:clamp(1.12rem,1.28vw,1.34rem);line-height:1.78}.project-glance{grid-column:2;display:grid;grid-template-columns:minmax(8rem,.42fr) minmax(0,1fr);column-gap:clamp(2rem,4vw,4.5rem);max-width:58rem;margin-top:0;padding-top:1.15rem;border-top:1px solid color-mix(in srgb,var(--project-color) 42%,var(--project-page-line))}.project-glance-header{position:sticky;top:6rem;align-self:start;display:grid;gap:.85rem}.project-glance-header h3{margin:0;max-width:10rem;color:color-mix(in srgb,var(--project-page-text) 82%,var(--project-color));font-size:clamp(1.15rem,1.35vw,1.42rem);font-weight:650;line-height:1.08;letter-spacing:-.025em}.project-glance-grid{display:grid;margin:0}.project-glance-item{display:grid;grid-template-columns:minmax(7rem,.32fr) minmax(0,1fr);gap:1.25rem;min-width:0;padding:1rem 0;border-bottom:1px solid color-mix(in srgb,var(--project-page-line) 72%,transparent)}.project-glance-item:first-child{padding-top:0}.project-glance-item dt{color:color-mix(in srgb,var(--project-page-text) 55%,var(--project-color));font-family:var(--font-mono);font-size:clamp(.72rem,.78vw,.8rem);line-height:1.58;letter-spacing:.05em;text-transform:uppercase}.project-glance-item dd{margin:0;max-width:35rem;font-size:clamp(1.02rem,1.13vw,1.18rem);line-height:1.58;text-wrap:pretty}.project-detail-canvas{padding-top:0}.project-detail-art{position:relative;aspect-ratio:16 / 8;overflow:hidden;border-radius:1.25rem;color:var(--ink);background:var(--project-color)}.project-detail-media{display:block;width:100%;aspect-ratio:16 / 8;border:0;border-radius:1.25rem;background:var(--project-story-bg);object-fit:var(--media-fit, cover);object-position:var(--media-position, center)}.project-detail-art:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";opacity:.24;background-image:radial-gradient(currentColor .7px,transparent .7px);background-size:7px 7px}.detail-art-ring{position:absolute;top:50%;left:50%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid currentColor;border-radius:50%}.detail-art-ring-one{width:53%}.detail-art-ring-two{width:31%;transform:translate(-50%,-50%) rotate(30deg) scaleY(.48)}.detail-art-core{position:absolute;top:50%;left:50%;width:13%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:currentColor;box-shadow:8rem -3rem 0 -2rem var(--paper)}.detail-art-node{position:absolute;top:32%;right:23%;width:1rem;aspect-ratio:1;border-radius:50%;background:var(--paper);box-shadow:0 0 0 .5rem #f3e7c52e}.project-detail-canvas>p{max-width:46rem;margin:1rem 0 0;font-family:var(--font-mono);font-size:clamp(1.05rem,1.12vw,1.14rem);line-height:1.74;letter-spacing:.05em;text-transform:uppercase}.project-gallery{display:grid;grid-template-columns:1fr 3fr;gap:2rem;padding-top:0}.project-gallery-heading{display:grid;align-content:start;gap:1.5rem}.project-gallery-heading p{max-width:22rem;margin:0;font-family:var(--font-mono);font-size:clamp(1.05rem,1.12vw,1.14rem);line-height:1.74;letter-spacing:.05em;text-transform:uppercase}.project-carousel{min-width:0;outline:none}.project-carousel:focus-visible{outline:1px solid var(--project-page-line);outline-offset:.45rem}.project-carousel-stage{position:relative;overflow:hidden;border-radius:1.2rem;background:var(--project-story-bg);box-shadow:0 1.5rem 4rem #0407122e}.project-carousel-media{display:block;width:100%;aspect-ratio:16 / 9;border:0;background:var(--project-story-bg);animation:carousel-slide-in .48s cubic-bezier(.16,1,.3,1);object-fit:var(--media-fit, cover);object-position:var(--media-position, center)}.project-carousel-count{position:absolute;right:1rem;bottom:1rem;padding:.5rem .65rem;border:1px solid color-mix(in srgb,var(--paper) 28%,transparent);border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 72%,transparent);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.05em;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.project-carousel-lower{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1.5rem;margin-top:1.2rem}.project-carousel-copy{max-width:45rem;animation:carousel-copy-in .42s cubic-bezier(.16,1,.3,1)}.project-carousel-copy span,.project-carousel-copy p{font-family:var(--font-mono);letter-spacing:.05em}.project-carousel-copy span{display:block;font-size:clamp(1rem,1.06vw,1.08rem);line-height:1.58;text-transform:uppercase}.project-carousel-copy p{max-width:46rem;margin:.55rem 0 0;font-size:clamp(1.06rem,1.16vw,1.18rem);line-height:1.74;opacity:.9;text-wrap:pretty}.project-carousel-controls{display:flex;align-items:center;gap:.65rem;font-family:var(--font-mono)}.project-carousel-controls>button{display:grid;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--project-page-line);border-radius:50%;place-items:center;color:inherit;background:transparent;cursor:pointer;transition:color .22s ease,border-color .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.project-carousel-controls>button:hover,.project-carousel-controls>button:focus-visible{color:var(--highlight);border-color:currentColor;transform:translateY(-.1rem)}.project-carousel-dots{display:flex;align-items:center;gap:.35rem}.project-carousel-dots button{width:.45rem;height:.45rem;padding:0;border:0;border-radius:999px;background:currentColor;opacity:.28;cursor:pointer;transition:width .22s cubic-bezier(.16,1,.3,1),opacity .22s ease,background-color .22s ease}.project-carousel-dots button.is-active{width:1.45rem;background:var(--highlight);opacity:1}.project-carousel-dots button:focus-visible{outline:1px solid currentColor;outline-offset:.25rem}.project-carousel-copy,.project-carousel-controls{position:relative;z-index:1;letter-spacing:.05em}.project-story{color:var(--project-story-text);background:var(--project-story-bg);transition:color .45s ease,background-color .45s ease}.project-story-intro{display:flex;justify-content:space-between;gap:2rem;padding:clamp(3.75rem,6vw,5rem) 2rem 1.75rem;border-bottom:1px solid var(--project-story-line)}.project-story-intro p{max-width:32rem;margin:0;font-family:var(--font-mono);font-size:clamp(1.05rem,1.12vw,1.14rem);line-height:1.72;letter-spacing:.05em;text-align:left;text-transform:uppercase}.project-story article{position:relative;display:grid;--story-title-offset: 2.11rem ;grid-template-columns:minmax(4.5rem,.22fr) minmax(22rem,.96fr) minmax(28rem,1.18fr);column-gap:clamp(2.4rem,4.2vw,5rem);row-gap:2.25rem;min-height:0;padding:clamp(5rem,8vw,8rem) 2rem;overflow:hidden;border-bottom:1px solid var(--project-story-line)}.project-story article:before{position:absolute;right:-.04em;bottom:-.24em;content:attr(data-chapter);color:#edf2ef05;font-family:var(--font-serif);font-size:clamp(16rem,34vw,34rem);font-style:italic;line-height:1;pointer-events:none}.story-index,.story-kicker{position:relative;z-index:1;font-family:var(--font-mono);font-size:.74rem;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.story-index{color:#edf2ef94}.story-copy{position:relative;z-index:1}.story-kicker{display:block;margin-bottom:1rem;color:var(--project-color)}.project-story h2{max-width:42rem;margin:0;color:var(--project-color);font-size:clamp(2.4rem,4.2vw,4.4rem);font-weight:700;line-height:1.06;letter-spacing:-.035em}.story-body{position:relative;z-index:1;grid-column:3;align-self:start;max-width:44rem;margin:var(--story-title-offset) 0 0}.story-body p{margin:0;font-size:clamp(1.12rem,1.25vw,1.32rem);line-height:1.78;text-wrap:pretty}.story-body p+p{margin-top:1.1rem}.story-media{position:relative;z-index:1;grid-column:2 / -1;display:block;width:100%;aspect-ratio:16 / 9;margin-top:3.25rem;border:0;border-radius:1.15rem;background:var(--project-page-bg);object-fit:var(--media-fit, cover);object-position:var(--media-position, center)}.next-project{--project-story-bg: var(--project-story-bg-light, var(--deep));--project-story-text: var(--project-story-text-light, var(--deep-text));position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;min-height:clamp(24rem,58vh,34rem);padding:5rem 2rem 4rem;overflow:hidden;color:var(--project-story-text);background:var(--project-story-bg);transition:color .45s ease,background-color .45s ease}:root[data-theme=dark] .next-project{--project-story-bg: var(--project-story-bg-dark, var(--deep));--project-story-text: var(--project-story-text-dark, var(--deep-text))}.next-project-media{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.next-project-media-asset{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}.next-project:hover .next-project-media-asset{transform:scale(1.045)}.next-project-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,color-mix(in srgb,var(--project-story-bg) 94%,transparent),color-mix(in srgb,var(--project-story-bg) 52%,transparent) 44%,color-mix(in srgb,var(--project-story-bg) 18%,transparent) 78%),linear-gradient(to bottom,color-mix(in srgb,var(--project-story-bg) 82%,transparent),color-mix(in srgb,var(--project-story-bg) 30%,transparent) 26%,transparent 44%),linear-gradient(100deg,color-mix(in srgb,var(--project-story-bg) 55%,transparent),transparent 60%);transition:background .45s ease}.next-project-copy{position:relative;z-index:1;display:grid;gap:1.1rem}.next-project .eyebrow{color:color-mix(in srgb,var(--project-color) 72%,var(--project-story-text))}.next-project strong{max-width:14ch;font-size:clamp(3.2rem,6.4vw,6.6rem);font-weight:700;line-height:1.08;letter-spacing:-.028em;text-wrap:balance;transition:transform .4s cubic-bezier(.16,1,.3,1)}.next-project:hover strong{transform:translate(.35rem)}.next-project-copy p{max-width:26rem;margin:0;font-size:.98rem;line-height:1.7;opacity:.88;text-wrap:pretty}.next-project svg{position:relative;z-index:1;width:clamp(4rem,7vw,7rem);fill:none;stroke:currentColor;stroke-width:.9;transition:transform .4s cubic-bezier(.16,1,.3,1)}.next-project:hover svg{transform:translate(.5rem,-.5rem)}.not-found-page{min-height:100svh;color:var(--canvas-text);background:radial-gradient(circle at 72% 28%,color-mix(in srgb,var(--highlight) 18%,transparent),transparent 28rem),radial-gradient(circle at 20% 72%,color-mix(in srgb,var(--orange) 14%,transparent),transparent 24rem),var(--canvas)}.not-found-shell{min-height:100svh;display:grid;align-content:center;gap:clamp(2.5rem,5vw,4.5rem);padding:clamp(7rem,11vw,10rem) 2rem clamp(4rem,7vw,6rem)}.not-found-grid{display:grid;grid-template-columns:minmax(12rem,.7fr) minmax(0,1.25fr);align-items:end;gap:clamp(2rem,5vw,6rem)}.not-found-code{margin:0;color:color-mix(in srgb,var(--highlight) 82%,var(--canvas-text));font-family:var(--font-serif);font-size:clamp(8rem,22vw,22rem);font-style:italic;line-height:.72;letter-spacing:-.09em;opacity:.42}.not-found-copy{max-width:52rem}.not-found-copy h1{max-width:12ch;margin:0;font-size:clamp(4rem,9vw,8.8rem);font-weight:700;line-height:.94;letter-spacing:-.055em;text-wrap:balance}.not-found-copy>p{max-width:40rem;margin:1.6rem 0 0;font-size:clamp(1.12rem,1.35vw,1.36rem);line-height:1.72;text-wrap:pretty}.not-found-path{color:color-mix(in srgb,var(--canvas-text) 68%,transparent);font-family:var(--font-mono);font-size:clamp(.82rem,.9vw,.96rem)!important;line-height:1.6!important;letter-spacing:.04em;overflow-wrap:anywhere}.not-found-path span{color:var(--highlight)}.not-found-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.not-found-actions a{display:inline-flex;align-items:center;gap:.55rem;min-height:2.75rem;padding:.78rem 1rem;border:1px solid color-mix(in srgb,var(--canvas-text) 32%,transparent);border-radius:999px;color:var(--canvas-text);background:color-mix(in srgb,var(--deep) 22%,transparent);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.055em;text-transform:uppercase;transition:color .22s ease,border-color .22s ease,background-color .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.not-found-actions a:hover,.not-found-actions a:focus-visible{color:var(--highlight);border-color:currentColor;background:color-mix(in srgb,var(--highlight) 10%,transparent);transform:translateY(-.12rem)}.not-found-actions svg{width:1rem;fill:none;stroke:currentColor;stroke-width:1.5}.contact{position:relative;padding:2rem;color:var(--deep-text);background:var(--deep);transition:background-color .45s ease,color .45s ease}.contact:before,.contact:after{--wave-shape: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 220' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M0 82C120 38 240 126 360 82C480 38 600 126 720 82C840 38 960 126 1080 82C1200 38 1320 126 1440 82V220H0V82Z'/%3E%3C/svg%3E");position:absolute;right:-8vw;left:-8vw;height:clamp(4rem,7vw,7rem);content:"";pointer-events:none;background:var(--deep);-webkit-mask-image:var(--wave-shape);mask-image:var(--wave-shape);-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:100% 100%;mask-size:100% 100%;transition:background-color .45s ease}.contact:before{top:calc(clamp(4rem,7vw,7rem)*-1 + 1px);opacity:.26;animation:wave-drift-slow 17s ease-in-out infinite alternate}.contact:after{top:calc(clamp(4rem,7vw,7rem)*-.72);animation:wave-drift 12s ease-in-out infinite alternate}.contact-top{position:relative;z-index:1;display:flex;justify-content:space-between;padding-bottom:2rem;border-bottom:1px solid var(--deep-line);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.contact-link{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:5rem 0 6rem;font-size:clamp(4.2rem,12vw,11.5rem);font-weight:700;line-height:.9;letter-spacing:-.055em}.contact-link span{transition:color .25s ease}.contact-link em{color:var(--acid);font-family:var(--font-serif);font-size:.94em;font-style:italic;font-weight:400;letter-spacing:0}.contact-link:hover span{color:var(--acid)}.contact-link svg{width:clamp(4rem,10vw,10rem);fill:none;stroke:currentColor;stroke-width:.8;transition:transform .5s cubic-bezier(.16,1,.3,1)}.contact-link:hover svg{transform:translate(.6rem,-.6rem)}.footer-meta{position:relative;z-index:1;display:flex;justify-content:space-between;padding-top:1.2rem;border-top:1px solid var(--deep-line);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase}.footer-meta div{display:flex;gap:2rem}@keyframes detail-orbit{to{transform:translateY(-50%) rotate(347deg)}}@keyframes title-in{to{transform:translateY(0);opacity:1}}@keyframes fade-in{to{opacity:1}}@keyframes carousel-slide-in{0%{transform:scale(1.018);opacity:0}to{transform:scale(1);opacity:1}}@keyframes carousel-copy-in{0%{transform:translateY(.45rem);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scan{50%{transform:translate(100%)}to{transform:translate(100%)}}@keyframes pulse{70%{box-shadow:0 0 0 .45rem #e3bc4e00}to{box-shadow:0 0 #e3bc4e00}}@keyframes timeline-scan{0%{transform:translate(-50%,-110%);opacity:0}12%{opacity:.84}86%{opacity:.84}to{transform:translate(-50%,100%);opacity:0}}@keyframes timeline-node-pulse{0%,to{box-shadow:0 0 0 .38rem color-mix(in srgb,var(--canvas) 82%,transparent),0 0 .9rem color-mix(in srgb,var(--highlight) 24%,transparent)}48%{box-shadow:0 0 0 .38rem color-mix(in srgb,var(--canvas) 82%,transparent),0 0 0 .56rem color-mix(in srgb,var(--highlight) 16%,transparent),0 0 1.35rem color-mix(in srgb,var(--highlight) 42%,transparent)}}@keyframes wave-drift{0%{transform:translate(-2.5vw) scaleY(1)}to{transform:translate(2.5vw) scaleY(1.08)}}@keyframes wave-drift-slow{0%{transform:translate(2vw) scaleY(.92)}to{transform:translate(-2vw) scaleY(1.04)}}@media(max-width:900px){.project-map-itinerary{display:none}.work-story-arrows{top:1rem;right:1.1rem;bottom:auto}.itinerary-mini{position:absolute;top:42%;right:.9rem;z-index:4;display:flex;flex-direction:column;gap:.55rem;align-items:center;transform:translateY(-50%)}.itinerary-mini:before,.itinerary-mini:after{position:absolute;top:.5rem;bottom:.5rem;left:50%;width:2px;content:"";transform:translate(-50%)}.itinerary-mini:before{background:color-mix(in srgb,var(--paper) 22%,transparent)}.itinerary-mini:after{bottom:auto;height:calc(var(--story-progress, 0) * (100% - 1rem));background:var(--highlight)}.mini-stop{--stop-scrim: color-mix(in srgb, var(--deep) 72%, transparent);position:relative;z-index:1;display:grid;width:2.9rem;height:2rem;place-items:center;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid color-mix(in srgb,var(--paper) 30%,transparent);border-radius:.5rem;color:var(--paper);background-color:color-mix(in srgb,var(--deep) 82%,transparent);background-image:linear-gradient(100deg,var(--stop-scrim) 28%,color-mix(in srgb,var(--stop-scrim) 45%,transparent) 55%,color-mix(in srgb,var(--deep) 40%,transparent) 100%),var(--stop-image, none);background-position:left center,center;background-repeat:no-repeat;background-size:auto,cover;cursor:pointer;font-family:var(--font-mono);font-size:.54rem;font-weight:700;letter-spacing:.04em;text-shadow:0 1px 6px rgba(4,7,18,.85);transition:border-color .22s ease}.mini-stop.is-active{--stop-scrim: color-mix(in srgb, var(--project-color) 34%, var(--deep));border-color:var(--project-color)}.mini-world.is-active{--stop-scrim: color-mix(in srgb, var(--highlight) 30%, var(--deep));border-color:var(--highlight)}.mini-label{position:absolute;top:50%;right:calc(100% + .55rem);padding:.3rem .55rem;border:1px solid color-mix(in srgb,var(--paper) 20%,transparent);border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.5rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateY(-50%) translate(.3rem);transition:opacity .3s ease,transform .35s ease;pointer-events:none}.mini-stop.is-active .mini-label{opacity:1;transform:translateY(-50%) translate(0)}.site-header{position:fixed;top:0;right:0;left:0;display:block;width:100%;padding:0;pointer-events:none}.brand{position:fixed;z-index:52;top:calc(1rem + env(safe-area-inset-top));left:1rem;padding:.62rem .78rem;border:1px solid color-mix(in srgb,var(--paper) 32%,transparent);border-radius:999px;color:var(--paper);background:color-mix(in srgb,var(--deep) 72%,transparent);box-shadow:0 .8rem 2rem #04071233;pointer-events:auto;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .32s ease}.brand.is-hidden{transform:translateY(calc(-100% - 1.5rem));opacity:0;pointer-events:none}.menu-button{display:none}.site-header nav{position:fixed;z-index:52;right:auto;bottom:calc(1rem + env(safe-area-inset-bottom));left:50%;display:flex;width:min(calc(100vw - 1rem),clamp(17.5rem,76vw,22rem));padding:.375rem .75rem;border:1px solid color-mix(in srgb,var(--paper) 26%,transparent);border-radius:999px;align-items:center;justify-content:space-between;gap:.2rem;color:var(--paper);background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 42%,transparent),transparent 72%),color-mix(in srgb,var(--deep) 78%,transparent);box-shadow:0 1.25rem 3rem #04071252,inset 0 1px color-mix(in srgb,var(--paper) 16%,transparent);font-family:var(--font-mono);font-size:clamp(.48rem,1.95vw,.62rem);font-style:normal;text-transform:uppercase;transform:translate(-50%);transition:transform .32s cubic-bezier(.16,1,.3,1),box-shadow .32s ease,background-color .32s ease;pointer-events:auto;-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}.site-header nav:hover,.site-header nav.is-open{transform:translate(-50%) translateY(-.18rem);box-shadow:0 1.5rem 3.4rem #04071266,inset 0 1px color-mix(in srgb,var(--paper) 20%,transparent)}.site-header nav a{display:flex;min-width:0;min-height:2.25rem;padding:0 .5rem;border-radius:999px;flex:0 0 auto;align-items:center;justify-content:center;white-space:nowrap;transition:color .22s ease,text-shadow .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.site-header nav a:after{display:none}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--acid);text-shadow:0 0 .9rem color-mix(in srgb,var(--acid) 62%,transparent);transform:translateY(-.08rem)}.header-actions{display:none}.mobile-theme-toggle{display:flex;position:relative;width:2.25rem;min-width:2.25rem;height:2.25rem;margin:0;padding:0;border-radius:999px;align-items:center;justify-content:center;gap:0;font-family:var(--font-mono);font-size:.62rem;font-style:normal;transition:color .22s ease,filter .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.mobile-theme-toggle .theme-toggle-orbit{width:1.05rem;height:1.05rem;border:0;border-radius:50%}.mobile-theme-toggle .theme-toggle-orbit i{top:0;left:0;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--paper);box-shadow:inset -.35rem -.02rem 0 var(--deep);transform:none}.mobile-theme-toggle .theme-toggle-orbit i:before,.mobile-theme-toggle .theme-toggle-orbit i:after{position:absolute;content:"";border-radius:50%}.mobile-theme-toggle .theme-toggle-orbit i:before{top:.18rem;right:.15rem;width:.13rem;height:.13rem;background:var(--acid);box-shadow:-.44rem .46rem 0 -.03rem var(--acid);opacity:.9}.mobile-theme-toggle .theme-toggle-orbit i:after{right:.26rem;bottom:.18rem;width:.08rem;height:.08rem;background:var(--steel);opacity:.8}:root[data-theme=dark] .mobile-theme-toggle .theme-toggle-orbit i{background:var(--acid);box-shadow:0 0 0 .18rem color-mix(in srgb,var(--acid) 18%,transparent),0 0 1rem color-mix(in srgb,var(--acid) 45%,transparent);transform:none}:root[data-theme=dark] .mobile-theme-toggle .theme-toggle-orbit i:before{top:-.18rem;right:-.18rem;bottom:-.18rem;left:-.18rem;width:auto;height:auto;border:1px solid color-mix(in srgb,var(--acid) 42%,transparent);background:transparent;box-shadow:none}:root[data-theme=dark] .mobile-theme-toggle .theme-toggle-orbit i:after{top:50%;right:auto;bottom:auto;left:50%;width:1.45rem;height:1px;border-radius:999px;background:color-mix(in srgb,var(--acid) 58%,transparent);box-shadow:0 0 color-mix(in srgb,var(--acid) 58%,transparent),0 0 color-mix(in srgb,var(--acid) 58%,transparent);opacity:.85;transform:translate(-50%,-50%) rotate(45deg)}.mobile-theme-toggle:hover,.mobile-theme-toggle:focus-visible{color:var(--acid);filter:drop-shadow(0 0 .65rem color-mix(in srgb,var(--acid) 62%,transparent));transform:translateY(-.08rem)}.site-header nav a:focus-visible,.mobile-theme-toggle:focus-visible{outline:1px solid color-mix(in srgb,var(--acid) 64%,transparent);outline-offset:.15rem}.mobile-theme-toggle>span:last-child{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero{padding:5rem 1.2rem 4.5rem}.hero-title{font-size:clamp(3rem,8.4vw,5.2rem)}.hero-footer{right:1.2rem;bottom:calc(5.4rem + env(safe-area-inset-bottom))}.section{padding:6rem 1.2rem}.section-wave{height:clamp(3.2rem,12vw,5rem)}.section-wave-deep{height:clamp(1.75rem,6vw,2.75rem)}.section-heading{grid-template-columns:1fr;gap:2rem}.section-heading-index,.experience-index-group{flex-direction:row;align-items:baseline;justify-content:space-between;gap:1rem}.section-index{font-size:3.4rem;line-height:.8;opacity:.2}.section-heading h2,.section-heading p,.experience-heading h2,.experience-intro{grid-column:1}.experience-heading{grid-template-columns:1fr;gap:2rem}.experience-heading>div:first-child{grid-row:auto;align-items:center}.experience-index{font-size:3.4rem;opacity:.2}.experience-list{--timeline-rail: 84px;width:100%;max-width:none;margin-inline:0}.experience-row{grid-template-columns:var(--timeline-rail) minmax(0,1fr);column-gap:1.5rem}.experience-row p{max-width:43rem}.project-detail-title h1{font-size:clamp(5rem,14vw,8rem)}.project-overview{grid-template-columns:1fr}.project-overview h2,.project-about-copy,.project-glance,.project-gallery-heading,.project-carousel{grid-column:1}.project-about-copy{max-width:48rem;margin:0 0 3.5rem}.project-gallery{grid-template-columns:1fr}.project-gallery-heading{grid-template-columns:1fr 1fr;align-items:end}.project-gallery-heading p{max-width:23rem;justify-self:end;text-align:right}.project-story article{grid-template-columns:minmax(5rem,.45fr) minmax(0,2fr)}.story-body{grid-column:2;max-width:44rem;margin-top:0}.story-media{grid-column:2}.next-project{grid-template-columns:1fr auto}.section-heading h2{margin:0}.project-card{grid-template-columns:1fr}.project-meta{min-height:18rem}.contact{padding:1.2rem 1.2rem calc(6.5rem + env(safe-area-inset-bottom))}}@media(max-width:700px){.project-map-visual.is-map-locked:after{opacity:.24}.work-story-panel{top:auto;bottom:calc(5.25rem + env(safe-area-inset-bottom));left:1.2rem;width:calc(100% - 2.4rem);transform:translate(var(--swipe-x, 3rem))}.work-story-panel.is-intro{top:34%;bottom:auto;left:1.2rem;width:calc(100% - 6.5rem);transform:translateY(-50%) translate(var(--swipe-x, 3rem))}.work-story .project-map-preview{width:12rem}.work-story .project-map-preview img{height:4.5rem}}@media(max-width:600px){.scroll-link{display:none}.hero-kicker{justify-content:space-between}.hero-title{font-size:clamp(2.7rem,11.5vw,3.6rem)}.section-heading{margin-bottom:3.5rem}.work .section-heading{margin-bottom:2.6rem}.section-heading h2{font-size:3.8rem}.section-heading h2 em,.experience-heading h2 em,.contact-link em{font-size:.85em}.projects{gap:6.25rem}.project-meta{min-height:15rem}.project-meta h3{font-size:2.8rem}.project-map-preview-popup .maplibregl-popup-content{transform:scale(calc(var(--map-popup-scale, 1) * .9))}.work-story-beat-panel h3{font-size:1.35rem}.work-story-beat-panel p{-webkit-line-clamp:6;font-size:.92rem;line-height:1.6}.work-story-beat-panel.is-dense h3{font-size:1.22rem}.work-story-beat-panel.is-dense p{-webkit-line-clamp:7;font-size:.85rem;line-height:1.55}.experience-heading{margin-bottom:3.25rem}.experience-heading h2{font-size:2.9rem}.experience-list{--timeline-rail: 64px}.experience-row{--experience-row-pad-y: 1.7rem;grid-template-columns:var(--timeline-rail) 1fr;gap:1rem}.experience-period{justify-self:start;max-width:none;text-align:left}.experience-role,.experience-row p{grid-column:2}.experience-role h3{margin-top:.3rem;font-size:2rem}.project-detail-hero{padding:5rem 1.2rem 1.2rem}.project-detail-kicker span{display:none}.project-detail-title{left:1.2rem;width:calc(100% - 2.4rem)}.project-detail-title h1{font-size:clamp(4rem,20vw,6rem);line-height:.88;letter-spacing:-.045em}.project-detail-title p{max-width:23rem;margin:2rem 0 0;font-size:1.18rem;line-height:1.72}.project-detail-skills{gap:.42rem;max-width:21rem;margin-top:1.25rem}.project-detail-skills li{padding:.4rem .58rem;font-size:.58rem}.project-detail-orbit{right:-30%;width:26rem;opacity:.62}.project-detail-footer{right:1.2rem;bottom:calc(5.4rem + env(safe-area-inset-bottom));left:1.2rem}.project-detail-footer span:last-child{display:none}.project-overview h2{margin-bottom:2.75rem;font-size:clamp(3.15rem,13vw,3.8rem);line-height:1.04;letter-spacing:-.03em}.project-about-copy{gap:1rem;margin:0 0 3rem}.project-about-copy p{font-size:1.16rem;line-height:1.78}.project-glance{grid-template-columns:1fr;gap:1.25rem;margin-top:0;padding-top:1rem}.project-glance-header{position:static;gap:.55rem}.project-glance-header h3{max-width:100%;font-size:1.32rem}.project-glance-grid{grid-template-columns:1fr}.project-glance-item{grid-template-columns:1fr;gap:.38rem;padding:.95rem 0}.project-glance-item dt,.story-index,.story-kicker,.project-story-intro p{font-size:1rem}.project-glance-item dd{max-width:100%;font-size:1.16rem;line-height:1.62}.project-detail-canvas>p{max-width:100%;font-size:1rem;line-height:1.74}.project-gallery{gap:2.5rem}.project-gallery-heading{grid-template-columns:1fr}.project-gallery-heading p{max-width:100%;justify-self:start;text-align:left}.project-carousel-media{aspect-ratio:4 / 3}.project-carousel-lower{grid-template-columns:1fr}.project-carousel-controls{justify-content:space-between}.project-detail-art,.project-detail-media{aspect-ratio:4 / 5}.project-story-intro{padding:3.4rem 1.2rem 1.45rem}.project-story article{row-gap:1.8rem;padding:4.25rem 1.2rem}.project-story h2{font-size:clamp(2rem,8.5vw,2.6rem);line-height:1.12}.story-body p{font-size:1.12rem;line-height:1.78}.detail-art-ring-one{width:90%}.detail-art-ring-two{width:62%}.detail-art-core{width:25%;box-shadow:4rem -3rem 0 -1.5rem var(--paper)}.project-story article{grid-template-columns:1fr;gap:1.8rem;min-height:0;padding:4.25rem 1.2rem}.project-story-intro{align-items:flex-start;padding:3.4rem 1.2rem 1.45rem}.project-story-intro p{max-width:16rem}.story-body{grid-column:1;margin-top:.5rem;max-width:100%}.story-body p{font-size:1.16rem;line-height:1.82}.story-media{grid-column:1;aspect-ratio:4 / 3;margin-top:2rem}.next-project{grid-template-columns:1fr auto;padding:4rem 1.2rem}.next-project strong{font-size:3.35rem;line-height:1.08;letter-spacing:-.025em}.next-project svg{width:3rem}.not-found-shell{padding:6.5rem 1.2rem 4rem}.not-found-grid{grid-template-columns:1fr;gap:2rem}.not-found-code{font-size:clamp(7rem,36vw,10rem);line-height:.78}.not-found-copy h1{max-width:10ch;font-size:clamp(3.45rem,16vw,5rem)}.not-found-copy>p{font-size:1.12rem;line-height:1.74}.not-found-actions{flex-direction:column;align-items:stretch}.not-found-actions a{justify-content:space-between}.contact-top span:last-child{display:none}.contact-link{padding:4rem 0 5rem;font-size:5rem}.contact-link svg{width:4rem}.footer-meta{flex-direction:column;gap:1.5rem}.footer-meta div{justify-content:space-between;gap:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.01ms!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;view-transition-name:none!important}}
