@font-face{font-family:Raleway-Regular;src:url(/fonts/Raleway-Regular.ttf)format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Raleway-SemiBold;src:url(/fonts/Raleway-SemiBold.ttf)format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Raleway-Bold;src:url(/fonts/Raleway-Bold.ttf)format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Raleway-Black;src:url(/fonts/Raleway-Black.ttf)format("truetype");font-style:normal;font-display:swap}:root{--bg:#f7f4ef;--ink:#1a1a1a;--muted:#5c5c5c;--line:#1a1a1a1a;--accent:#0f6b4c;--accent-soft:#d8f0e5;--panel:#fff;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1);--theme-bg:#dff9f4;--theme-txt:#327700;--theme-txt-dark:#327700;--theme-bg-dark:#b0ffd8;--theme-bar:#327700;--font-display:"Raleway-Black", sans-serif;--font-body:"Raleway-Regular", sans-serif;--site-pad-y:1.5%;--site-pad-x:6%}*{box-sizing:border-box}html{scroll-behavior:smooth}html.custom-scrollbar{scrollbar-gutter:stable;scrollbar-width:none;-ms-overflow-style:none}html.custom-scrollbar::-webkit-scrollbar{background:0 0;width:0;height:0;display:none}.custom-scrollbar-rail--viewport{z-index:100;pointer-events:none;width:8px;height:100dvh;position:fixed;top:0;right:0}.custom-scrollbar-rail--container{z-index:2;pointer-events:none;width:8px;height:100%;position:absolute;top:0;right:0}.custom-scrollbar-rail__thumb{opacity:0;will-change:transform, opacity;background:#a0a0a08c;border-radius:999px;width:6px;transition:opacity .28s,background .28s,transform 80ms linear;position:absolute;top:0;right:1px;box-shadow:0 0 0 1px #00000014}.custom-scrollbar-rail__thumb.is-visible{opacity:1}.custom-scrollbar-rail__thumb.is-visible:hover{background:#b4b4b4b8}html:not(.custom-scrollbar){scrollbar-width:thin;scrollbar-color:#00000059 transparent}html:not(.custom-scrollbar)::-webkit-scrollbar{background:0 0;width:8px;height:8px}html:not(.custom-scrollbar)::-webkit-scrollbar-button{width:0;height:0;display:none}html:not(.custom-scrollbar)::-webkit-scrollbar-corner{background:0 0}html:not(.custom-scrollbar)::-webkit-scrollbar-track{background:0 0}html:not(.custom-scrollbar)::-webkit-scrollbar-thumb{background:#00000059;border-radius:999px}html:not(.custom-scrollbar)::-webkit-scrollbar-thumb:hover{background:#00000080}body{min-height:100vh;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%, #0f6b4c14, transparent 55%), radial-gradient(900px 500px at 100% 0%, #9707080d, transparent 50%), var(--bg);font-family:var(--font-body), sans-serif;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,.display{letter-spacing:-.02em;font-family:Raleway-Black,sans-serif;font-weight:bolder;line-height:1.05}.container{width:100%;padding-inline:var(--site-pad-x);box-sizing:border-box;margin-inline:auto}.site-shell{min-height:100vh}.skip-link{position:absolute;left:-999px}.skip-link:focus{z-index:100;background:#fff;padding:.5rem .75rem;top:1rem;left:1rem}.site-header{z-index:40;mix-blend-mode:normal;pointer-events:none;position:fixed;inset:0 0 auto}.site-header__inner{padding:var(--site-pad-y) var(--site-pad-x);pointer-events:auto;justify-content:space-between;align-items:center;display:flex}.brand{--swap-x:154px;flex-direction:column;gap:.2rem;display:flex}.brand__name,.name{letter-spacing:2px;text-transform:uppercase;z-index:1;color:var(--theme-txt-dark,var(--ink));transition:color .7s var(--ease-soft);font-family:Raleway-Black,sans-serif;font-size:17px;font-weight:700;display:inline-block;position:relative}.brand__tag{color:var(--muted);font-size:.75rem}.brand__roles{margin-top:.1rem;line-height:1.35}.brand .text{color:var(--theme-txt-dark,var(--muted));letter-spacing:.04em;transition:color .7s var(--ease-soft);vertical-align:baseline;font-family:Raleway-Regular,sans-serif;font-size:13px;display:inline;position:relative}.brand .first-text{font-family:Raleway-Regular,sans-serif}.brand .second-text{white-space:nowrap;vertical-align:baseline;font-family:Raleway-Regular,sans-serif;line-height:inherit;display:inline;position:relative;top:0;overflow:hidden}.brand .second-text:before{content:"";background:var(--theme-bg,var(--bg));border-left:2px solid var(--theme-txt-dark,var(--ink));box-sizing:border-box;pointer-events:none;z-index:1;width:100%;height:100%;animation:4s steps(12,end) infinite roleCursor;position:absolute;top:0;left:0}@keyframes roleCursor{40%,60%{left:100%}to{left:0%}}.rotate-char{display:inline-block;position:relative}.logo:hover .first-a{animation:1.5s forwards firstAAnimation}.logo:hover .last-a{animation:1.5s forwards lastAAnimation}@keyframes firstAAnimation{0%{transform:translateY(0)translate(0)rotate(0)}25%{color:#000000a6;transform:translateY(25px)translate(0)rotate(0)}50%{color:#000000a6;transform:translateY(25px)translate(0)rotate(0)}75%{transform:translateY(25px) translateX(var(--swap-x)) rotate(360deg);color:#000000a6}to{transform:translateY(0) translateX(var(--swap-x)) rotate(360deg)}}@keyframes lastAAnimation{0%{transform:translateY(0)translate(0)rotate(0)}25%{color:#000000a6;transform:translateY(-25px)translate(0)rotate(0)}50%{color:#000000a6;transform:translateY(-25px)translate(0)rotate(0)}75%{transform:translateY(-25px) translateX(calc(var(--swap-x) * -1)) rotate(-360deg);color:#000000a6}to{transform:translateY(0) translateX(calc(var(--swap-x) * -1)) rotate(-360deg)}}.nav{align-items:center;gap:.35rem;display:flex}.nav a{letter-spacing:.06em;text-transform:uppercase;transition:background .3s var(--ease-soft), transform .3s var(--ease-out);border-radius:999px;padding:.55rem .85rem;font-family:Raleway-Bold,sans-serif;font-size:.82rem;font-weight:700}.nav a:hover,.nav a[data-active=true]{background:#ffffffb3;transform:translateY(-1px)}.header-back{letter-spacing:.1em;text-transform:uppercase;color:var(--theme-txt-dark,var(--ink));transition:border-color .3s var(--ease-soft), padding-right .3s var(--ease-out), color .7s var(--ease-soft);border-right:3px solid #0000;align-items:center;gap:.45rem;padding-right:.65rem;font-family:Raleway-Bold,sans-serif;font-size:.82rem;font-weight:700;display:inline-flex}.header-back:hover{border-right-color:var(--theme-txt-dark,var(--ink));padding-right:1rem}.nav-toggle{cursor:pointer;background:#ffffffbf;border:0;border-radius:999px;padding:.55rem .9rem;display:none}@media (max-width:820px){.nav-toggle{display:inline-flex}.nav{border:1px solid var(--line);background:#fffffff5;border-radius:1rem;flex-direction:column;align-items:stretch;padding:.5rem;display:none;position:absolute;top:4.2rem;left:1rem;right:1rem}.nav.is-open{display:flex}}.btn{cursor:pointer;letter-spacing:.02em;transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-soft);border:0;border-radius:999px;align-items:center;gap:.55rem;padding:.8rem 1.15rem;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);color:#fff}.btn-soft{background:var(--theme-bg-dark,var(--accent-soft));color:var(--theme-txt-dark,var(--accent))}.btn-ghost{background:0 0;border:1px solid #ffffff1a}body.nav-gallery-open{overflow:hidden}body.nav-gallery-open .brand__name,body.nav-gallery-open .brand .text,body.nav-gallery-open .header-back,body.nav-gallery-open .nav a{color:#fff!important}body.nav-gallery-open .brand .second-text:before{background:#0d0d0d;border-left-color:#fff}body.nav-gallery-open .nav a:hover,body.nav-gallery-open .nav a[data-active=true]{background:#ffffff1f}body.about-theme{color:#fff;background:#0d0d0d}body.about-theme .header-back,body.about-theme .nav a{color:#fff!important}body.about-theme .header-back:hover{border-right-color:#fff}body.about-theme .nav a:hover,body.about-theme .nav a[data-active=true]{background:#ffffff1f}body.about-theme .nav-toggle{color:#fff;background:#ffffff1f}@media (max-width:820px){body.about-theme .nav{background:#141414fa;border-color:#ffffff1f}}.home-stage{min-height:100vh;transition:background-color .85s var(--ease-soft);position:relative;overflow:hidden}.home-stage.is-nav-open{background-color:#0d0d0d!important}.home-stage.is-transitioning{pointer-events:none}body.is-leaving{overflow:hidden}.page-wipe{z-index:45;pointer-events:none;opacity:0;animation:.52s cubic-bezier(.22,1,.36,1) forwards pageWipeIn;position:fixed;inset:0}@keyframes pageWipeIn{0%{opacity:0}to{opacity:1}}.home-stage__layout{min-height:100vh;padding-inline:var(--site-pad-x)}.slide-viewport{height:100vh;padding-inline:var(--site-pad-x);padding-top:var(--site-pad-y);box-sizing:border-box;position:relative}.slide{opacity:0;pointer-events:none;transform:translateY(calc(var(--slide-dir,1) * 55vh)) scale(.96);place-items:center;transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;inset:0}.slide.is-active{opacity:1;pointer-events:auto;z-index:3;transform:translateY(0)scale(1)}.slide.is-past{transform:translateY(-55vh)scale(.96)}.slide.is-future{transform:translateY(55vh)scale(.96)}.slide__grid{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 820px;align-items:center;gap:clamp(2rem,4vw,4.5rem);width:100%;padding-top:4rem;display:grid}.slide-viewport.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.slide-viewport{transition:opacity .6s var(--ease-out), visibility .6s}.nav-reveal-shade{z-index:10;pointer-events:none;transform-origin:100%;background:#0d0d0d;transition:transform .75s cubic-bezier(.22,1,.36,1);position:fixed;inset:0;transform:scaleX(0)}.home-stage.is-nav-open .nav-reveal-shade{transform:scaleX(1)}.nav-gallery-panel{z-index:15;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .65s var(--ease-out), visibility .65s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.nav-gallery-panel.is-visible{opacity:1;visibility:visible;pointer-events:none}.nav-gallery-stack{--slide-active-h:56vh;--slide-inactive-h:24vh;--slide-gap:1.75rem;--slide-step:calc((var(--slide-active-h) + var(--slide-inactive-h)) / 2 + var(--slide-gap));opacity:0;width:min(68vw,720px);height:min(90vh,920px);transition:opacity .65s var(--ease-out);margin:0 auto;position:relative}.nav-gallery-stack.is-visible{opacity:1}.nav-gallery-stack__viewport{width:100%;height:100%;position:relative;overflow:hidden}.nav-gallery-stack__item{width:min(42vw,440px);height:var(--slide-inactive-h);opacity:0;visibility:hidden;z-index:1;max-height:240px;transform:translate(-50%, -50%) translateY(calc(var(--offset) * var(--slide-step)));margin:0;padding:0;transition:transform .8s cubic-bezier(.22,1,.36,1),width .8s cubic-bezier(.22,1,.36,1),height .8s cubic-bezier(.22,1,.36,1),opacity .8s cubic-bezier(.22,1,.36,1),visibility .8s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:50%;overflow:hidden}.nav-gallery-stack__item.is-adjacent{opacity:1;visibility:visible}.nav-gallery-stack__item.is-active{width:min(58vw,720px);height:var(--slide-active-h);opacity:1;visibility:visible;z-index:12;max-height:none}.nav-gallery-stack__item.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.nav-gallery-stack__item img,.nav-gallery-stack__placeholder{object-fit:cover;object-position:center;filter:grayscale()brightness(.72);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;transition:filter .8s cubic-bezier(.22,1,.36,1);display:block}.nav-gallery-stack__item.is-active img,.nav-gallery-stack__item.is-active .nav-gallery-stack__placeholder{filter:grayscale(0)brightness()}.nav-gallery-stack__placeholder{color:#fff;background:#1a1a1a;place-items:center;padding:1rem;font-family:Raleway-Bold,sans-serif;display:grid}.nav-zone{z-index:25;padding-right:var(--site-pad-x);justify-content:flex-end;align-items:center;width:auto;min-width:5rem;padding-left:.5rem;display:flex;position:fixed;top:0;bottom:0;right:0}.home-stage.is-nav-open .nav-zone{width:min(36vw,300px);padding-right:var(--site-pad-x)}.side-nav--right{align-items:flex-end;position:relative;top:auto;right:auto;transform:none}.slide__copy{z-index:2;min-width:0;max-width:100%;min-height:0;padding-right:clamp(.5rem,2vw,1.5rem);overflow:hidden}.slide__media{width:820px;min-width:820px;max-width:100%;transform-style:preserve-3d;perspective:1200px;flex-shrink:0;justify-content:center;display:flex}.slide__media-defs{width:0;height:0;position:absolute;overflow:hidden}.slide__media-frame{--hero-ratio-w:10;--hero-ratio-h:10;--hero-max-height:75vh;width:820px;max-width:100%;aspect-ratio:var(--hero-ratio-w) / var(--hero-ratio-h);max-height:var(--hero-max-height);transform-origin:50%;height:auto;transform-style:preserve-3d;backface-visibility:hidden;filter:drop-shadow(0 35px 70px #00000059);position:relative;overflow:hidden;transform:rotateY(0)translateZ(0)}.slide__media-stage{position:absolute;inset:0;overflow:hidden}.slide__media-viewport{--spot-x:50%;--spot-y:50%;--spot-size-min:5.5rem;--spot-size-vw:16vw;--spot-size-max:10rem;--spot-opacity-center:.38;--spot-opacity-mid:.18;clip-path:url(#slide-hero-clip);will-change:transform;backface-visibility:hidden;position:absolute;inset:0;overflow:hidden;transform:translate(0,0)}.slide__media-drift{will-change:transform;backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;transform:translate(0,0)}.slide__media-drift img{object-fit:contain;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.slide__media-shine{pointer-events:none;opacity:.08;mix-blend-mode:soft-light;will-change:transform;background:linear-gradient(105deg,#0000 35%,#ffffff8c 48%,#ffffffd9 50%,#ffffff8c 52%,#0000 65%);animation:9s ease-in-out infinite slideHeroShine;position:absolute;inset:0;transform:translate(-140%)}@keyframes slideHeroShine{0%,72%{transform:translate(-130%)}to{transform:translate(130%)}}@media (prefers-reduced-motion:reduce){.slide__media-shine{opacity:0;animation:none}}.slide__media-spotlight{z-index:2;pointer-events:none;opacity:0;background:radial-gradient(circle clamp(var(--spot-size-min), var(--spot-size-vw), var(--spot-size-max)) at var(--spot-x,50%) var(--spot-y,50%), rgba(255, 255, 255, var(--spot-opacity-center)) 0%, rgba(255, 255, 255, var(--spot-opacity-mid)) 42%, #fff0 78%);mix-blend-mode:soft-light;transition:opacity .35s;position:absolute;inset:0}.slide__media-viewport.is-spotlight .slide__media-spotlight{opacity:1}@media (prefers-reduced-motion:reduce){.slide__media-spotlight{display:none}}.slide__media .project-art{filter:drop-shadow(0 32px 52px #00000024);width:820px;min-width:820px;max-width:820px;max-height:58vh;transition:transform .85s cubic-bezier(.22,1,.36,1);transform:perspective(850px)rotateY(-15deg)}.slide.is-active .slide__media .project-art{transform:perspective(850px)rotateY(-35deg)translateZ(0)}.slide__eyebrow{color:var(--theme-txt);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;margin:0 0 .85rem;font-size:1.05rem;overflow:hidden}.slide__title{color:var(--theme-txt-dark);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;word-break:break-word;overflow-wrap:break-word;-webkit-box-orient:vertical;margin:0 0 1.15rem;font-size:clamp(1.9rem,3.4vw,3.6rem);line-height:1.12;display:-webkit-box;overflow:hidden}.slide__summary{max-width:100%;color:var(--theme-txt-dark);opacity:.88;-webkit-line-clamp:3;line-clamp:3;text-overflow:ellipsis;word-break:break-word;overflow-wrap:break-word;-webkit-box-orient:vertical;margin:0 0 1.75rem;font-size:clamp(.98rem,1.4vw,1.1rem);line-height:1.65;display:-webkit-box;overflow:hidden}.side-nav{flex-direction:column;gap:.35rem;width:100%;padding:.5rem 0;display:flex}.side-nav__label{white-space:nowrap;opacity:0;letter-spacing:1px;text-transform:uppercase;max-width:0;transition:max-width .7s var(--ease-out), opacity .6s var(--ease-out), margin-right .7s var(--ease-out);margin-right:0;font-family:Raleway-Regular,sans-serif;font-size:16px;line-height:1.5em;display:block;overflow:hidden}.home-stage.is-nav-open .side-nav__label{opacity:.38;max-width:14rem;margin-right:.85rem}.home-stage.is-nav-open .side-nav button.active .side-nav__label,.home-stage.is-nav-open .side-nav button:hover .side-nav__label{opacity:1}.home-stage.is-nav-open .side-nav button.active .side-nav__label{font-family:Raleway-Bold,sans-serif;font-weight:700}.home-stage.is-nav-open .side-nav .pill{border-color:#ffffff59}.home-stage.is-nav-open .side-nav button.active .pill{background:var(--nav-active-pill,#e6332a);border-color:var(--nav-active-pill,#e6332a)}.home-stage.is-nav-open .side-nav button{color:#ffffff8c}.home-stage.is-nav-open .side-nav button.active,.home-stage.is-nav-open .side-nav button:hover{color:#fff}.side-nav button{color:var(--theme-txt-dark);cursor:pointer;opacity:.45;width:100%;min-height:1.35rem;transition:opacity .45s var(--ease-soft), color .45s var(--ease-soft);background:0 0;border:0;justify-content:flex-end;align-items:center;padding:1.5% 0;display:flex;position:relative}.side-nav button.active,.side-nav button:hover{opacity:1}.side-nav .pill{width:6px;height:14px;transition:background-color .5s var(--ease-soft), height .5s var(--ease-out), border-color .5s var(--ease-soft), width .5s var(--ease-out);background:#000000c2;border:none;border-radius:999px;flex-shrink:0}.side-nav button.active .pill{background:var(--theme-txt-dark);border-color:var(--theme-txt-dark);width:7px;height:20px}.border-accent,.border-lft{background:var(--theme-txt-dark);z-index:50;width:10px;height:100vh;transition:background-color .7s var(--ease-soft), width .25s var(--ease-out);will-change:width;position:fixed;top:0;left:0}.page-reveal{background:var(--reveal-bg,#0d0d0d);z-index:56;will-change:width, opacity;opacity:1;height:100vh;position:fixed;top:0;overflow:hidden}.page-reveal.is-expanding,.page-reveal.is-held{transition:width var(--reveal-ms,1.2s) cubic-bezier(.22, 1, .36, 1), opacity var(--overlay-fade-ms,.52s) ease}.page-reveal:not(.is-expanding):not(.is-held){transition:width .25s var(--ease-out), opacity var(--overlay-fade-ms,.52s) ease}.page-reveal.is-held{z-index:90;pointer-events:none;opacity:1}.page-reveal.is-held.is-fading-out{opacity:0}.page-reveal--right{cursor:pointer;left:auto;right:0}.page-reveal--project-back{z-index:55;cursor:pointer}.page-reveal--idle{opacity:0;pointer-events:none;visibility:hidden}.page-reveal--left{z-index:50;background:var(--reveal-bg,var(--reveal-bar,var(--theme-txt-dark)));left:0;right:auto}.page-reveal.is-expanding{cursor:default;pointer-events:none}.page-reveal__inner{opacity:0;pointer-events:none;width:100vw;min-height:100vh;position:absolute;top:0;overflow:hidden auto}.page-reveal__inner--right{right:0}.page-reveal__inner--left{left:0}.page-reveal.is-expanding .page-reveal__inner{opacity:1;pointer-events:auto;transition:opacity .45s .28s}.page-reveal.is-held .page-reveal__inner{opacity:1;pointer-events:none;transition:opacity var(--overlay-fade-ms,.52s) ease}.page-reveal.is-held.is-fading-out .page-reveal__inner{opacity:0}body.project-opening .page-reveal--left.is-expanding .project-hero{background:var(--project-hero-bg,var(--project-accent))}body.project-opening .page-reveal--left.is-expanding .project-hero__title{color:var(--project-hero-fg,#fff)}body.about-closing .page-reveal--right.is-expanding,body.project-closing .page-reveal--project-back.is-expanding{z-index:80;pointer-events:none}.project-reveal-content__hero{min-height:100vh}.page-reveal.is-expanding .project-hero--reveal .project-hero__image-wrap{opacity:0;animation:project-open-image-in var(--reveal-ms,1.2s) cubic-bezier(.22, 1, .36, 1) forwards;transform:translate(14vw)scale(.9)}.page-reveal.is-expanding .project-hero--reveal .project-hero__title{opacity:0;animation:.55s cubic-bezier(.22,1,.36,1) .92s forwards project-open-text-in;transform:translateY(1.25rem)}.project-enter.is-from-wipe .project-hero__image-wrap,.project-enter.is-from-wipe .project-hero__title{opacity:1;animation:none;transform:none}@keyframes project-open-image-in{to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes project-open-text-in{to{opacity:1;transform:translate(0,0)}}body.about-reveal-active:not(.about-theme) .nav a:hover,body.about-reveal-active:not(.about-theme) .nav a[data-active=true]{background:#ffffff1f}body.project-page-theme .header-back,body.project-page-theme .nav a,body.project-page-theme .nav-toggle{transition:color .4s,border-color .4s,background .35s;color:var(--project-header-fg,#fff)!important}body.project-page-theme .header-back:hover{border-right-color:var(--project-header-fg,#fff)}body.project-page-theme .nav a:hover,body.project-page-theme .nav a[data-active=true]{background:color-mix(in srgb, var(--project-header-fg,#fff) 14%, transparent)}body.project-page-theme.project-scrolled .header-back,body.project-page-theme.project-scrolled .nav a,body.project-page-theme.project-scrolled .nav-toggle{color:var(--project-header-fg-scrolled,#1a1a1a)!important}body.project-page-theme.project-scrolled .header-back:hover{border-right-color:var(--project-header-fg-scrolled,#1a1a1a)}body.project-page-theme.project-scrolled .nav a:hover,body.project-page-theme.project-scrolled .nav a[data-active=true]{background:#0000000f}body.project-page-theme.project-header-on-dark .header-back,body.project-page-theme.project-header-on-dark .nav a,body.project-page-theme.project-header-on-dark .nav-toggle{transition:color .4s,border-color .4s,background .35s;color:#fff!important}body.project-page-theme.project-header-on-dark .header-back:hover{border-right-color:#fff}body.project-page-theme.project-header-on-dark .nav a:hover,body.project-page-theme.project-header-on-dark .nav a[data-active=true]{background:#ffffff24}body.project-page-theme{background:var(--theme-txt-dark,#0d0d0d);transition:background-color .45s;overflow-x:hidden}body.project-page-theme.project-scrolled{background:var(--theme-bg,#fff)}html:has(body.project-page-theme){background:var(--theme-txt-dark,#0d0d0d);transition:background-color .45s;overflow-x:hidden}html:has(body.project-page-theme.project-scrolled){background:var(--theme-bg,#fff)}.home-stage .view_work{cursor:pointer;transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-soft), background-color .7s var(--ease-soft), color .7s var(--ease-soft);border:0}.project-page{--project-bg:#dff9f4;--project-primary:#327700;--project-accent:#327700;--project-soft:#b0ffd8;position:relative;overflow-x:clip}.project-hero{background:var(--project-hero-bg,var(--project-accent));min-height:100vh;color:var(--project-hero-fg,#fff);z-index:0;transition:background-color var(--reveal-ms,1.2s) cubic-bezier(.22, 1, .36, 1);flex-direction:column;padding-top:4.5rem;display:flex;position:sticky;top:0;overflow:hidden}.project-hero__stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem 1.5rem clamp(5.5rem,14vh,8rem);display:flex}.project-hero__image-wrap{width:min(92vw,680px);margin-bottom:clamp(1.75rem,4vw,2.75rem);overflow:visible}.project-hero__image-crop{--crop-x:0%;clip-path:inset(0 var(--crop-x) 0 var(--crop-x));-webkit-clip-path:inset(0 var(--crop-x) 0 var(--crop-x));transform-origin:50%;will-change:transform, clip-path;padding-block:0;overflow:visible;transform:rotate(0)}.project-hero__image-viewport{--spot-x:50%;--spot-y:50%;--spot-size-min:5.5rem;--spot-size-vw:16vw;--spot-size-max:10rem;--spot-opacity-center:.38;--spot-opacity-mid:.18;position:relative}.project-hero__image{object-fit:contain;filter:drop-shadow(0 30px 50px #0000002e);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;max-height:58vh;display:block}.project-hero__image-spotlight{z-index:2;pointer-events:none;opacity:0;border-radius:inherit;background:radial-gradient(circle clamp(var(--spot-size-min), var(--spot-size-vw), var(--spot-size-max)) at var(--spot-x,50%) var(--spot-y,50%), rgba(255, 255, 255, var(--spot-opacity-center)) 0%, rgba(255, 255, 255, var(--spot-opacity-mid)) 42%, #fff0 78%);mix-blend-mode:soft-light;transition:opacity .35s;position:absolute;inset:0}.project-hero__image-viewport.is-spotlight .project-hero__image-spotlight{opacity:1}@media (prefers-reduced-motion:reduce){.project-hero__image-spotlight{display:none}}.project-hero__image--placeholder{background:var(--project-soft);border-radius:1rem;place-items:center;min-height:280px;font-family:Raleway-Black,sans-serif;font-size:2rem;display:grid}.project-hero__title{color:var(--project-hero-fg,#fff);transition:color var(--reveal-ms,1.2s) cubic-bezier(.22, 1, .36, 1);margin:0;font-size:clamp(2.8rem,8vw,5.5rem);line-height:.95}.project-hero__scroll{pointer-events:none;place-items:center;width:50px;height:50px;display:grid;position:absolute;bottom:clamp(2rem,5vh,3rem);left:50%;transform:translate(-50%)}.project-hero__scroll-svg{width:50px;height:50px;display:block;overflow:visible}.project-hero__scroll-ring{fill:none;stroke:#fffffff2;stroke-width:1.5px;stroke-dasharray:100;stroke-dashoffset:100px;transform-origin:28px 28px;animation:1.35s cubic-bezier(.4,0,.2,1) forwards project-scroll-ring-draw;transform:rotate(-90deg)}.project-hero__scroll-fill{fill:#fff;opacity:0;transform-origin:28px 28px;animation:.5s cubic-bezier(.22,1,.36,1) 1.3s forwards project-scroll-fill-in;transform:scale(.88)}.project-hero__scroll-arrow{fill:var(--project-hero-bg,var(--project-accent));opacity:0;animation:.45s cubic-bezier(.22,1,.36,1) 1.55s forwards project-scroll-arrow-in;transform:translateY(4px)}@keyframes project-scroll-ring-draw{to{stroke-dashoffset:0}}@keyframes project-scroll-fill-in{to{opacity:1;transform:scale(1)}}@keyframes project-scroll-arrow-in{to{opacity:1;transform:translateY(0)}}.project-body{z-index:1;color:var(--ink);background:#fff;padding:0;position:relative}.project-case__intro{padding:clamp(4rem,8vw,6.5rem) 0 clamp(2.5rem,5vw,3.5rem)}.project-case__intro-inner{max-width:1320px}.project-case__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 1.5rem;font-size:.72rem;font-weight:700}.project-case__title{letter-spacing:-.02em;max-width:16ch;color:var(--ink);margin:0 0 clamp(1.75rem,4vw,2.5rem);font-family:Georgia,Times New Roman,serif;font-size:clamp(2.6rem,5.8vw,4.5rem);font-weight:700;line-height:1.06}.project-case__intro-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,6vw,5.5rem);display:grid}.project-case__intro-copy{min-width:0}.project-case__summary{color:#000;max-width:44rem;margin:0 0 1.5rem;font-family:Raleway-Bold,sans-serif;font-size:22px;line-height:1.55}.project-case__brief{color:#000000c7;max-width:44rem;margin:0;font-size:22px;line-height:1.75}.project-case__meta{flex-direction:column;gap:clamp(2rem,4vw,2.75rem);display:flex}.project-case__meta-label{letter-spacing:.14em;text-transform:uppercase;color:#000;margin:0 0 .5rem;font-size:16px;font-weight:700}.project-case__meta-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.project-case__meta-list li,.project-case__meta-value{color:#000;margin:0;font-size:20px;line-height:1.55}.project-case__stack{border-top:1px solid #00000014;max-width:44rem;margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:clamp(1.5rem,4vw,1rem)}.project-case__stack-label{letter-spacing:.14em;text-transform:uppercase;color:#000;margin:0 0 .5rem;font-size:16px;font-weight:700}.project-case__stack-list{flex-wrap:wrap;gap:.55rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.project-case__stack-list li{color:#000;font-size:20px;line-height:1.45}.project-case__wide{margin:0 0 clamp(3rem,6vw,5rem);padding:0}.project-case__wide img{object-fit:cover;object-position:top center;width:100%;max-height:min(78vh,920px);display:block}.project-case__section{padding:clamp(3.5rem,7vw,3.5rem) 0}.project-case__section-inner{max-width:1320px}.project-case__section-head{margin-bottom:clamp(2.5rem,5vw,3.75rem)}.project-case__section-num{letter-spacing:.06em;color:var(--muted);margin-bottom:.85rem;font-size:.82rem;display:block}.project-case__section-title{letter-spacing:-.02em;max-width:18ch;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4.5vw,3.4rem);font-weight:700;line-height:1.08}.project-case__rows{flex-direction:column;gap:clamp(2.5rem,5vw,3.75rem);display:flex}.project-case__row{grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.project-case__row-title{color:#000;margin:0;font-family:Raleway-Bold,sans-serif;font-size:24px;line-height:1.35}.project-case__row-body{color:#000;margin:0;font-size:20px;line-height:1.4em}.project-case__section--dark{color:#fff;background:#0d0d0d}.project-case__section--dark .project-case__section-num{color:#ffffff73}.project-case__section--dark .project-case__section-title,.project-case__section--dark .project-case__row-title{color:#fff}.project-case__section--dark .project-case__row-body{color:#ffffffb8}.project-case__gallery{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(1rem,2.5vw,1.5rem);display:grid}.project-case__gallery-item{margin:0}.project-case__gallery-item img{border-radius:.35rem;width:100%;display:block;box-shadow:0 18px 50px #ffffff1f}.project-case__section--images{position:relative}.project-case__section--images:after{content:"";pointer-events:none;z-index:0;background:#0d0d0d;height:40%;position:absolute;bottom:0;left:0;right:0}.project-case__section--images .project-case__section-inner{z-index:1;position:relative}.project-case__footer{padding-top:0}.project-fab{--fab-duration:.75s;--fab-ease:cubic-bezier(.22, 1, .36, 1);z-index:40;color:#111;opacity:0;visibility:hidden;pointer-events:none;width:3.5rem;height:3.5rem;transition:opacity .6s var(--fab-ease), visibility .6s var(--fab-ease), transform .65s cubic-bezier(.34, 1.45, .64, 1), width var(--fab-duration) var(--fab-ease), padding var(--fab-duration) var(--fab-ease), gap var(--fab-duration) var(--fab-ease), background-color .55s ease;background:#e6e6e6;border-radius:999px;justify-content:center;align-items:center;gap:0;padding:0;text-decoration:none;display:inline-flex;position:fixed;bottom:clamp(1.25rem,3vw,2rem);right:clamp(1.25rem,3vw,2rem);overflow:hidden;transform:translateY(1.5rem)scale(.82);box-shadow:0 10px 30px #00000024}.project-fab.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0,0)scale(1)}.project-fab:hover,.project-fab:focus-visible{background:#dcdcdc;justify-content:flex-start;gap:.7rem;width:auto;padding:0 1.15rem 0 1.35rem}.project-fab__label{opacity:0;white-space:nowrap;letter-spacing:.1em;text-transform:uppercase;max-width:0;transition:max-width var(--fab-duration) var(--fab-ease), opacity .65s var(--fab-ease);font-family:Raleway-Bold,sans-serif;font-size:14px;font-weight:700;overflow:hidden}.project-fab:not(:hover):not(:focus-visible) .project-fab__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-fab:hover .project-fab__label,.project-fab:focus-visible .project-fab__label{clip:auto;opacity:1;width:auto;max-width:12rem;height:auto;margin:0;position:static}.project-fab__icon{transform-origin:50%;width:1.0625rem;height:.875rem;transition:transform var(--fab-duration) var(--fab-ease);flex-shrink:0;justify-content:center;align-items:center;display:flex;transform:rotate(-45deg)}.project-fab:hover .project-fab__icon,.project-fab:focus-visible .project-fab__icon{transform:rotate(0)}.project-fab__arrow{width:100%;height:100%;display:block}.project-body__headline{max-width:42rem;margin:0 0 2rem;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.15}.project-footer-nav{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;display:flex}.project-nav-link:hover{border-right:3px solid var(--project-accent)}.project-nav-link--next:hover{border-right:0;border-left:3px solid var(--project-accent)}.project-connect-nav{color:#fff;background:#0d0d0d;padding-top:clamp(2rem,4vw,3rem)}.project-connect-nav__inner{max-width:1320px}.project-connect-nav .project-footer-nav{border-top:1px solid #ffffff1a;margin:0;padding-top:1.5rem}.project-connect-nav .project-nav-link{color:#fff;border-color:#fff3}.project-connect{color:#fff;background:#0d0d0d;margin-top:0;padding:clamp(2.5rem,5vw,3.5rem) 0 clamp(4rem,8vw,6rem)}.project-connect__inner{max-width:1320px}.project-connect__divider{background:#ffffff1a;height:1px;margin-bottom:clamp(3rem,6vw,4.5rem)}.project-connect__layout{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:clamp(2rem,5vw,4rem);display:grid}.project-connect__copy{min-width:0}.project-connect__label{letter-spacing:.2em;text-transform:uppercase;color:#ff004c;margin:0 0 1.25rem;font-size:.68rem;font-weight:700}.project-connect__title{letter-spacing:-.02em;color:#fff;max-width:20ch;margin:0;font-family:Raleway-Black,sans-serif;font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.08}.project-connect__cta-wrap{flex-shrink:0;justify-content:flex-end;align-self:stretch;align-items:flex-end;display:flex}.project-connect__cta-wrap .contact-nav-btn{flex-shrink:0;padding:.9rem 1.55rem;font-size:.95rem}.project-connect__cta-wrap .contact-nav-btn__viewport{height:1.35rem}.project-connect__cta-wrap .contact-nav-btn__row{height:1.35rem;line-height:1.35rem}.project-connect__cta-wrap .contact-nav-btn:hover .contact-nav-btn__track,.project-connect__cta-wrap .contact-nav-btn:focus-visible .contact-nav-btn__track{transform:translateY(-1.35rem)}.project-connect__cta-wrap .contact-nav-btn__row img{width:18px;height:18px}@media (max-width:900px){.project-connect__layout{grid-template-columns:1fr;align-items:start}.project-connect__cta-wrap{justify-content:flex-start;align-self:auto;align-items:flex-start}}.page{padding:7.5rem 0 5rem}.page-hero h1{margin:0 0 1rem;font-size:clamp(2.4rem,6vw,4.2rem)}.lede{max-width:40rem;color:var(--muted);font-size:1.1rem;line-height:1.7}.section{padding:4rem 0}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.75rem;font-weight:700}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;display:grid}.card{border:1px solid var(--line);transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-soft);background:#ffffffb8;border-radius:1.25rem;padding:1.25rem}.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #0000000f}.card h3{margin:.35rem 0 .5rem;font-size:1.35rem}.card p{color:var(--muted);margin:0;line-height:1.55}.skill-groups{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.skill-group{border:1px solid var(--line);background:#ffffffb3;border-radius:1.1rem;padding:1.25rem}.skill-group h3{margin:0 0 .85rem;font-size:1.1rem}.skill-group ul{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.skill-group li{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.35rem .7rem;font-size:.85rem;font-weight:600}.project-art{aspect-ratio:4/3;width:100%;font-family:var(--font-display), sans-serif;color:var(--theme-txt-dark,var(--ink));background:linear-gradient(145deg, #ffffff8c, transparent 45%), var(--theme-bg-dark,#d8f0e5);border-radius:1rem;place-items:center;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;display:grid}.meta-row{flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;display:flex}.meta-row span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem;font-size:.72rem;display:block}.meta-row strong{font-size:.95rem}.about-enter{opacity:1}.about-page{--about-accent:#ff004c;color:#fff;background:#0d0d0d;min-height:100vh;padding:clamp(5.5rem,10vh,7rem) 0 5rem}.about-page--spotlight{isolation:isolate;position:relative}.about-page__spotlight{pointer-events:none;z-index:0;background:radial-gradient(circle clamp(3rem, 12vw, 5rem) at var(--spot-x,50%) var(--spot-y,50%), #ff004c24 0%, #ff004c0f 38%, transparent 72%);position:fixed;inset:0}.about-page__spotlight-content{z-index:1;position:relative}.about-intro{max-width:1320px;margin:0 auto;position:relative}.about-intro__glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#ff004c29 0%,#0000 68%);border-radius:50%;width:min(520px,48vw);height:min(680px,72vh);position:absolute;top:0;right:-25%}.about-intro .about-statement,.about-intro .about-section{z-index:1;position:relative}.about-hero{padding-inline:var(--site-pad-x);grid-template-columns:minmax(0,1fr) min(40vw,480px);align-content:center;align-items:center;gap:clamp(2rem,5vw,4rem);max-width:1320px;margin:0 auto;display:grid}.about-hero__copy{flex-direction:column;gap:16px;display:flex}.about-hero__hello{letter-spacing:-.02em;margin:0 0 1.25rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.6rem,6vw,4.8rem);line-height:1.02}.about-hero__name{color:var(--about-accent,#ff004c)}.about-hero__lede{color:#ffffffb8;max-width:34rem;margin:0 0 1rem;font-size:1.05rem;line-height:1.7}.about-hero__avail{color:#ffffff80;max-width:28rem;margin:0;font-size:.95rem;line-height:1.6}.about-hero__social{flex-wrap:wrap;align-items:center;gap:1.35rem;margin-top:1.75rem;display:flex}.about-hero__social-link{flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;transition:transform .25s;display:inline-flex;position:relative}.about-hero__social-icon{object-fit:contain;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.about-hero__social-icon--color{opacity:0}.about-hero__social-link:hover{transform:translateY(-1px)}.about-hero__social-link:hover .about-hero__social-icon--white{opacity:0}.about-hero__social-link:hover .about-hero__social-icon--color{opacity:1}.about-hero__portrait{width:100%;position:relative}.about-hero__portrait-slot{aspect-ratio:3/4;background:#ffffff0a;border-radius:.35rem;width:100%;min-height:min(68vh,560px);overflow:hidden}.about-hero__portrait img{object-fit:cover;border-radius:.35rem;width:100%;height:100%;display:block}.about-statement{padding:clamp(4rem, 8vw, 7rem) var(--site-pad-x) 0;max-width:1320px;margin:0 auto}.about-statement h2{letter-spacing:-.02em;max-width:52rem;margin:0;font-family:Raleway-Black,sans-serif;font-size:clamp(1.8rem,3.8vw,3.2rem);line-height:1.15}.about-section{padding:clamp(3rem, 6vw, 5rem) var(--site-pad-x) 0;max-width:1320px;margin:0 auto}.about-section__label{letter-spacing:.14em;text-transform:uppercase;color:#ffffff73;margin:0 0 1.25rem;font-size:.75rem;font-weight:700}.about-section__body{color:#ffffffd1;max-width:44rem;margin:0;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.65}.experience-hats__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.experience-hat__card .core-module__title{margin-bottom:.75rem}.experience-hat__body{color:#ffffffad;margin:0;font-size:.9rem;line-height:1.6}.core-modules{--core-accent:#ff004c;padding:clamp(4rem, 8vw, 6rem) var(--site-pad-x);max-width:1320px;margin:0 auto}.core-modules__title{text-align:center;letter-spacing:-.02em;color:#fff;margin:0 0 clamp(2rem,5vw,3rem);font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.core-modules__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.core-module__card{--spot-x:50%;--spot-y:50%;background:linear-gradient(165deg,#ffffff0a 0%,#ffffff04 100%),#0c0c0ceb;border:1px solid #ffffff14;border-radius:.85rem;padding:1.35rem 1.25rem 1.5rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.core-module__card:before,.core-module__card:after{content:"";pointer-events:none;z-index:1;border-style:solid;border-color:#ff004c73;width:.85rem;height:.85rem;position:absolute}.core-module__card:before{border-width:1px 0 0 1px;top:.55rem;left:.55rem}.core-module__card:after{border-width:0 1px 1px 0;bottom:.55rem;right:.55rem}.core-module__spotlight{pointer-events:none;opacity:0;background:radial-gradient(circle clamp(3rem, 12vw, 5rem) at var(--spot-x) var(--spot-y), #ff004c24 0%, #ff004c0f 38%, transparent 72%);transition:opacity .3s;position:absolute;inset:0}.core-module__card.is-spotlight .core-module__spotlight{opacity:1}.core-module__title{color:#fff;margin:0 0 1.35rem;font-family:Raleway-Black,sans-serif;font-size:1.35rem;line-height:1.1;transition:color .25s}.core-module__card.is-spotlight .core-module__title{color:#fff}.core-module__skills{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.core-module__skill-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem;display:flex}.core-module__skill-name{letter-spacing:.08em;text-transform:uppercase;color:#ffffffb8;font-size:.68rem;font-weight:600}.core-module__skill-value{letter-spacing:.06em;color:var(--core-accent,#ff004c);font-size:.68rem;font-weight:700}.core-module__bar{gap:2px;height:5px;display:flex}.core-module__segment{background:#ffffff14;border-radius:1px;flex:1}.core-module__segment.is-filled{background:var(--core-accent,#ff004c);box-shadow:0 0 8px #ff004c59}.core-modules__status{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:#ffffff47;margin:1.75rem 0 0;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.68rem}.featured-projects{--project-accent:#ff004c;padding:clamp(4rem, 8vw, 6rem) var(--site-pad-x);max-width:1320px;margin:0 auto}.featured-projects__title{text-align:center;letter-spacing:-.02em;color:#fff;margin:0 0 1rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.featured-projects__lede{text-align:center;color:#ffffff80;max-width:42rem;margin:0 auto clamp(2.5rem,5vw,3.5rem);font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.65}.featured-projects__grid{grid-template-columns:repeat(3,minmax(0,1fr));justify-items:stretch;gap:1.25rem;display:grid}.project-card{background:linear-gradient(165deg,#ffffff09 0%,#ffffff03 100%),#0a0a0af2;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;transition:border-color .3s,box-shadow .3s,transform .3s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--project-accent,#ff004c) 35%, #ff004c8c 65%, transparent 100%);opacity:.55;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:#ff004c47;transform:translateY(-2px);box-shadow:0 0 0 1px #ff004c14,0 18px 40px #00000059}.project-card:hover:before{opacity:1}.project-card__visual{background:radial-gradient(80% 70% at 50% 0,#ff004c14 0%,#0000 70%),#00000073;border:1px solid #ffffff0f;border-radius:.75rem;justify-content:center;align-items:center;min-height:9.5rem;margin:1.1rem 1.1rem 0;padding:1.25rem;display:flex}.project-card__art{width:100%;max-width:14rem}.project-card__art--erp{gap:.55rem;display:grid}.project-card__erp-row{background:#ffffff1a;border-radius:999px;height:.45rem;display:block}.project-card__erp-row--lg{background:#ff004c59;width:92%}.project-card__erp-row--md{width:68%}.project-card__erp-row--sm{width:48%}.project-card__art--clinic{grid-template-columns:repeat(3,1fr);gap:.45rem;max-width:7.5rem;display:grid}.project-card__clinic-cell{aspect-ratio:1;background:#ff004c38;border:1px solid #ff004c59;border-radius:.35rem}.project-card__clinic-cell:nth-child(2),.project-card__clinic-cell:nth-child(5),.project-card__clinic-cell:nth-child(8){background:#ffffff14;border-color:#ffffff1f}.project-card__art--web{gap:.5rem;max-width:11rem;display:grid}.project-card__web-bar{background:#ff004c73;border-radius:999px;width:38%;height:.35rem}.project-card__web-block{background:#ffffff14;border-radius:.35rem;height:1.6rem}.project-card__web-block--wide{background:#ff004c2e;border:1px solid #ff004c47}.project-card__art--ai{font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem;line-height:1.7}.project-card__ai-line{color:#ffffffd1;margin:0}.project-card__ai-line--dim{color:#ffffff61}.project-card__ai-prompt{color:var(--project-accent,#ff004c);margin-right:.35rem}.project-card__body{flex-direction:column;flex:1;gap:1rem;padding:1.35rem 1.35rem 1.5rem;display:flex}.project-card__head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.project-card__title{color:#fff;margin:0;font-family:Raleway-Black,sans-serif;font-size:clamp(1.25rem,2.2vw,1.55rem);line-height:1.15}.project-card__badge{color:var(--project-accent,#ff004c);letter-spacing:.08em;text-transform:uppercase;background:#ff004c1a;border:1px solid #ff004c59;border-radius:999px;flex-shrink:0;padding:.28rem .55rem;font-size:.62rem;font-weight:700}.project-card__block{gap:.4rem;display:grid}.project-card__label{letter-spacing:.14em;text-transform:uppercase;color:#ffffff61;margin:0;font-size:.62rem;font-weight:700}.project-card__text{color:#ffffffb8;margin:0;font-size:.88rem;line-height:1.6}.project-card__tags{flex-wrap:wrap;gap:.4rem;margin:auto 0 0;padding:0;list-style:none;display:flex}.project-card__tags li{color:#ffffffd1;letter-spacing:.02em;background:#ff004c14;border:1px solid #ff004c38;border-radius:999px;padding:.32rem .62rem;font-size:.68rem;font-weight:600}.career-timeline{--timeline-accent:#ff004c;padding:clamp(4rem, 8vw, 6rem) var(--site-pad-x);max-width:1100px;margin:0 auto;position:relative}.career-timeline:before{content:"";pointer-events:none;background:radial-gradient(circle,#ff004c12 0%,#0000 68%);width:min(720px,80%);height:min(720px,80%);position:absolute;top:8rem;left:50%;transform:translate(-50%)}.career-timeline__header{z-index:1;text-align:center;margin-bottom:clamp(2.5rem,5vw,3.5rem);position:relative}.career-timeline__title{letter-spacing:-.02em;color:#fff;margin:0 0 1rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.career-timeline__lede{color:#ffffff80;max-width:38rem;margin:0 auto;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.65}.career-timeline__track{z-index:1;gap:0;display:grid;position:relative}.career-timeline__item{grid-template-columns:minmax(0,1fr) 2.5rem minmax(0,1.15fr);align-items:start;gap:1.25rem 1.5rem;padding:0 0 2.75rem;display:grid}.career-timeline__item:last-child{padding-bottom:0}.career-timeline__meta{text-align:right;padding-top:.15rem}.career-timeline__step{letter-spacing:.16em;color:#ff004c73;margin-bottom:.55rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.62rem;display:block}.career-timeline__period{letter-spacing:.06em;color:var(--timeline-accent,#ff004c);margin:0 0 .55rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.78rem;font-weight:700}.career-timeline__role{color:#fff;margin:0 0 .35rem;font-family:Raleway-Black,sans-serif;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.15}.career-timeline__company{color:#ffffff6b;margin:0 0 .75rem;font-size:.88rem}.career-timeline__tags{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.career-timeline__tag{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;border:1px solid #ffffff1f;border-radius:999px;padding:.28rem .55rem;font-size:.6rem;font-weight:700}.career-timeline__tag--freelance{background:#ffffff0a;border-color:#ffffff24}.career-timeline__tag--corporate{color:#ffffffb8;background:#ff004c0f;border-color:#ff004c38}.career-timeline__tag--current{color:var(--timeline-accent,#ff004c);background:#ff004c24;border-color:#ff004c73}.career-timeline__rail{flex-direction:column;align-items:center;min-height:100%;display:flex;position:relative}.career-timeline__node{z-index:2;border:2px solid var(--timeline-accent,#ff004c);background:#0a0a0a;border-radius:50%;flex-shrink:0;width:.72rem;height:.72rem;margin-top:.45rem;position:relative;box-shadow:0 0 0 4px #ff004c14}.career-timeline__node.is-current{background:var(--timeline-accent,#ff004c);animation:2.4s ease-in-out infinite career-node-pulse;box-shadow:0 0 0 4px #ff004c1f,0 0 18px #ff004c73}@keyframes career-node-pulse{0%,to{box-shadow:0 0 0 4px #ff004c1f,0 0 18px #ff004c73}50%{box-shadow:0 0 0 6px #ff004c14,0 0 28px #ff004c8c}}.career-timeline__line{background:linear-gradient(#ff004ca6 0%,#ff004c2e 72%,#ff004c0d 100%);flex:1;width:2px;min-height:calc(100% - .5rem);margin-top:.35rem}.career-timeline__panel{background:linear-gradient(160deg,#ffffff09 0%,#ffffff03 100%),#0a0a0ae0;border:1px solid #ffffff14;border-radius:.85rem;padding:1.1rem 1.2rem 1.15rem;transition:border-color .3s,box-shadow .3s}.career-timeline__item:hover .career-timeline__panel{border-color:#ff004c38;box-shadow:0 12px 32px #00000047}.career-timeline__list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.career-timeline__list li{color:#ffffffad;padding-left:1.15rem;font-size:.9rem;line-height:1.6;position:relative}.career-timeline__list li:before{content:"→";color:var(--timeline-accent,#ff004c);font-weight:700;position:absolute;top:0;left:0}.portfolio-assistant{--assistant-accent:#ff004c;padding:clamp(4rem, 8vw, 6rem) var(--site-pad-x);max-width:1180px;margin:0 auto}.portfolio-assistant__intro{text-align:center;margin-bottom:clamp(2rem,4vw,2.75rem)}.portfolio-assistant__title{letter-spacing:-.02em;color:#fff;margin:0 0 1rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.portfolio-assistant__lede{color:#ffffff80;max-width:40rem;margin:0 auto;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.65}.portfolio-assistant__shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:stretch;gap:1rem;display:grid}.portfolio-assistant__aside,.portfolio-assistant__chat{background:linear-gradient(165deg,#ffffff08 0%,#ffffff03 100%),#080808f0;border:1px solid #ffffff14;border-radius:1rem}.portfolio-assistant__aside{flex-direction:column;gap:1.1rem;padding:1.25rem;display:flex}.portfolio-assistant__aside-head{align-items:center;gap:.75rem;display:flex}.portfolio-assistant__pulse{background:var(--assistant-accent,#ff004c);border-radius:50%;width:.62rem;height:.62rem;animation:2s ease-in-out infinite assistant-pulse;box-shadow:0 0 14px #ff004c8c}@keyframes assistant-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.92)}}.portfolio-assistant__aside-label{letter-spacing:.12em;text-transform:uppercase;color:#ffffffd1;margin:0;font-size:.72rem;font-weight:700}.portfolio-assistant__aside-sub{color:#ffffff61;margin:.2rem 0 0;font-size:.72rem}.portfolio-assistant__signals{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.portfolio-assistant__signals li{background:#ffffff08;border:1px solid #ffffff0d;border-radius:.55rem;flex-direction:column;gap:.15rem;padding:.55rem .65rem;display:flex}.portfolio-assistant__signals span{letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;font-size:.58rem}.portfolio-assistant__signals strong{color:#ffffffc7;font-size:.72rem;font-weight:600}.portfolio-assistant__prompt-label{letter-spacing:.12em;text-transform:uppercase;color:#ffffff59;margin:.25rem 0 0;font-size:.62rem}.portfolio-assistant__prompts{gap:.45rem;display:grid}.portfolio-assistant__prompt{text-align:left;color:#ffffffd1;cursor:pointer;background:#ff004c0f;border:1px solid #ff004c2e;border-radius:.6rem;width:100%;padding:.62rem .72rem;font-size:.74rem;line-height:1.45;transition:border-color .25s,background .25s,transform .25s}.portfolio-assistant__prompt:hover:not(:disabled){background:#ff004c1f;border-color:#ff004c66;transform:translate(2px)}.portfolio-assistant__prompt:disabled{opacity:.55;cursor:not-allowed}.portfolio-assistant__chat{flex-direction:column;min-height:520px;display:flex;overflow:hidden}.portfolio-assistant__chat-head{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;display:flex}.portfolio-assistant__chat-title{color:#fff;margin:0;font-family:Raleway-Black,sans-serif;font-size:1.05rem}.portfolio-assistant__chat-sub{color:#ffffff61;margin:.2rem 0 0;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem}.portfolio-assistant__status{color:var(--assistant-accent,#ff004c);letter-spacing:.08em;text-transform:uppercase;background:#ff004c1a;border:1px solid #ff004c59;border-radius:999px;padding:.28rem .55rem;font-size:.62rem;font-weight:700}.portfolio-assistant__messages{flex-direction:column;flex:1;gap:.75rem;padding:1.1rem 1.15rem;display:flex;overflow:auto}.portfolio-assistant__bubble{border-radius:.9rem;max-width:88%;padding:.78rem .95rem;font-size:.9rem;line-height:1.55}.portfolio-assistant__bubble--assistant{color:#ffffffd1;background:#ffffff0a;border:1px solid #ffffff14;align-self:flex-start}.portfolio-assistant__bubble--user{background:var(--assistant-accent,#ff004c);color:#fff;align-self:flex-end;box-shadow:0 8px 24px #ff004c38}.portfolio-assistant__typing{align-items:center;gap:.3rem;padding:.5rem .2rem;display:flex}.portfolio-assistant__typing span{background:#ff004cbf;border-radius:50%;width:.38rem;height:.38rem;animation:1.1s ease-in-out infinite assistant-typing}.portfolio-assistant__typing span:nth-child(2){animation-delay:.15s}.portfolio-assistant__typing span:nth-child(3){animation-delay:.3s}@keyframes assistant-typing{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.portfolio-assistant__form{border-top:1px solid #ffffff0f;gap:.55rem;padding:.85rem 1.15rem .35rem;display:flex}.portfolio-assistant__form input{color:#fff;background:#ffffff08;border:1px solid #ffffff1a;border-radius:999px;flex:1;padding:.78rem 1rem;font-size:.88rem}.portfolio-assistant__form input::placeholder{color:#ffffff52}.portfolio-assistant__form input:focus{border-color:#ff004c73;outline:none;box-shadow:0 0 0 3px #ff004c1a}.portfolio-assistant__form button{background:var(--assistant-accent,#ff004c);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.78rem 1.15rem;font-size:.82rem;font-weight:700;transition:opacity .2s,transform .2s}.portfolio-assistant__form button:hover:not(:disabled){transform:translateY(-1px)}.portfolio-assistant__form button:disabled{opacity:.45;cursor:not-allowed}.portfolio-assistant__note{color:#ffffff52;margin:0;padding:.55rem 1.15rem 1rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.68rem;line-height:1.5}.field-notes{--notes-accent:#ff004c;padding:clamp(4rem, 8vw, 6rem) var(--site-pad-x);max-width:1180px;margin:0 auto}.field-notes__header{text-align:center;margin-bottom:clamp(2rem,4vw,2.75rem)}.field-notes__title{letter-spacing:-.02em;color:#fff;margin:0 0 1rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.field-notes__lede{color:#ffffff80;max-width:40rem;margin:0 auto;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.65}.field-notes__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.field-note{background:linear-gradient(165deg,#ffffff09 0%,#ffffff03 100%),#0a0a0af0;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;min-height:100%;padding:1.35rem 1.25rem 1.2rem;transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;position:relative}.field-note:hover{border-color:#ff004c3d;transform:translateY(-2px);box-shadow:0 16px 36px #00000047}.field-note__top{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.field-note__index{letter-spacing:.12em;color:#ff004c73;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.68rem}.field-note__topic{letter-spacing:.08em;text-transform:uppercase;color:#ffffff9e;border:1px solid #ffffff1f;border-radius:999px;padding:.28rem .55rem;font-size:.58rem;font-weight:700}.field-note__topic--ai{color:var(--notes-accent,#ff004c);background:#ff004c1a;border-color:#ff004c59}.field-note__topic--ui{background:#ffffff0d;border-color:#ffffff2e}.field-note__topic--engineering{background:#ff004c0f;border-color:#ff004c38}.field-note__title{margin:0 0 .75rem;font-family:Raleway-Black,sans-serif;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.2}.field-note__title a{color:#fff;text-decoration:none;transition:color .25s}.field-note__title a:hover{color:var(--notes-accent,#ff004c)}.field-note__excerpt{color:#ffffff9e;flex:1;margin:0;font-size:.88rem;line-height:1.6}.field-note__foot{border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}.field-note__date{color:#ffffff59;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem}.field-note__link{letter-spacing:.06em;text-transform:uppercase;color:var(--notes-accent,#ff004c);font-size:.72rem;font-weight:700;text-decoration:none;transition:opacity .2s}.field-note__link:hover{opacity:.8}.field-notes__more{text-align:center;margin-top:1.75rem}.field-notes__view-all{color:var(--notes-accent,#ff004c);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;text-decoration:none;transition:opacity .2s;display:inline-flex}.field-notes__view-all:hover{opacity:.8}.notes-page,.note-article{--notes-accent:#ff004c;padding:clamp(5rem, 9vw, 7rem) var(--site-pad-x) clamp(3rem, 6vw, 4rem);max-width:1180px;margin:0 auto}.notes-page__hero,.note-article__hero{text-align:center;margin-bottom:clamp(2.5rem,5vw,3.5rem)}.notes-page__label,.note-article__meta{letter-spacing:.2em;text-transform:uppercase;color:var(--notes-accent,#ff004c);margin:0 0 1rem;font-size:.68rem;font-weight:700}.note-article__meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.note-article__meta time{color:#ffffff61;letter-spacing:.04em;text-transform:none;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem}.notes-page__title,.note-article__title{letter-spacing:-.02em;color:#fff;margin:0 0 1rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.notes-page__lede,.note-article__excerpt{color:#ffffff85;max-width:40rem;margin:0 auto;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.65}.notes-page__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.notes-page__card{background:linear-gradient(165deg,#ffffff09 0%,#ffffff03 100%),#0a0a0af0;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;overflow:hidden}.notes-page__card:hover{border-color:#ff004c3d;transform:translateY(-2px);box-shadow:0 16px 36px #00000047}.notes-page__media{aspect-ratio:16/10;display:block;overflow:hidden}.notes-page__media img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.notes-page__card:hover .notes-page__media img{transform:scale(1.04)}.notes-page__body{flex-direction:column;flex:1;padding:1.2rem 1.15rem 1.25rem;display:flex}.notes-page__meta{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.notes-page__index{letter-spacing:.12em;color:#ff004c73;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.68rem}.notes-page__card-title{margin:0 0 .65rem;font-family:Raleway-Black,sans-serif;font-size:1.15rem;line-height:1.2}.notes-page__card-title a{color:#fff;text-decoration:none;transition:color .25s}.notes-page__card-title a:hover{color:var(--notes-accent,#ff004c)}.notes-page__excerpt{color:#ffffff9e;flex:1;margin:0;font-size:.86rem;line-height:1.6}.notes-page__foot{border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding-top:.9rem;display:flex}.notes-page__foot time{color:#ffffff59;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem}.note-article__cover{border:1px solid #ffffff14;border-radius:1rem;max-width:920px;margin:0 auto 2rem;overflow:hidden}.note-article__cover img{object-fit:cover;width:100%;max-height:420px;display:block}.note-article__content{white-space:pre-wrap;color:#ffffffbd;max-width:720px;margin:0 auto;font-size:1rem;line-height:1.85}.note-article__refs{border-top:1px solid #ffffff14;max-width:720px;margin:2.5rem auto 0;padding-top:1.5rem}.note-article__refs h2{letter-spacing:.14em;text-transform:uppercase;color:#ffffff6b;margin:0 0 1rem;font-size:.72rem;font-weight:700}.note-article__refs ul{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.note-article__refs a{color:var(--notes-accent,#ff004c);font-size:.92rem;text-decoration:none}.note-article__refs a:hover{text-decoration:underline}.note-article__back{max-width:720px;margin:2rem auto 0}.about-skill-group h4{color:#ffffffe6;margin:0 0 .85rem;font-size:1rem}.about-skill-group ul{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.about-skill-group li{color:#ffffffd9;background:#ffffff14;border-radius:999px;padding:.35rem .7rem;font-size:.85rem;font-weight:600}.about-connect{--connect-accent:#ff004c;padding:clamp(5rem, 10vw, 8rem) var(--site-pad-x) clamp(2.5rem, 5vw, 3.5rem);text-align:center;border-top:1px solid #ffffff0f;margin-top:clamp(3rem,6vw,5rem);position:relative;overflow:hidden}.about-connect__glow{pointer-events:none;background:radial-gradient(circle,#ff004c29 0%,#0000 68%);border-radius:50%;width:min(520px,70vw);height:min(520px,70vw);position:absolute;bottom:-25%;right:-8%}.about-connect__label{z-index:1;letter-spacing:.2em;text-transform:uppercase;color:var(--connect-accent,#ff004c);margin:0 0 1.25rem;font-size:.68rem;font-weight:700;position:relative}.about-connect__title{z-index:1;letter-spacing:-.02em;color:#fff;max-width:16ch;margin:0 auto 1.25rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.08;position:relative}.about-connect__lede{z-index:1;color:#ffffff85;max-width:38rem;margin:0 auto 2rem;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.7;position:relative}.about-connect__social{z-index:1;flex-wrap:wrap;justify-content:center;gap:.65rem;margin-bottom:2rem;display:flex;position:relative}.about-connect__chip{color:#ffffffd1;background:#ffffff08;border:1px solid #ffffff1f;border-radius:.75rem;align-items:center;gap:.5rem;padding:.72rem 1rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:border-color .25s,background .25s,transform .25s,color .25s;display:inline-flex}.about-connect__chip:hover{color:#fff;background:#ff004c14;border-color:#ff004c59;transform:translateY(-1px)}.about-connect__chip svg,.about-connect__chip img{opacity:.9;flex-shrink:0}.about-connect__cta{z-index:1;color:#fff;letter-spacing:.02em;background:linear-gradient(90deg,#ff004c 0%,#c8003d 55%,#f36 100%);border-radius:999px;justify-content:center;align-items:center;min-width:min(100%,280px);padding:1rem 2rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s,filter .25s;display:inline-flex;position:relative;box-shadow:0 0 0 1px #ff004c33,0 16px 40px #ff004c38}.about-connect__cta:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 0 0 1px #ff004c59,0 22px 48px #ff004c52}.about-connect__footer{z-index:1;color:#ffffff52;margin:2.5rem 0 0;font-size:.72rem;line-height:1.6;position:relative}.about-connect__heart{vertical-align:-.05em;color:var(--connect-accent,#ff004c);margin-left:.2rem;display:inline-block}.project-enter,.project-enter:not(.is-ready),.project-enter.is-ready{opacity:1}.project-reveal-content__body{padding-bottom:3rem}.form{gap:.9rem;max-width:560px;display:grid}.form label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.form input,.form textarea,.form select{border:1px solid var(--line);background:#ffffffd9;border-radius:.85rem;width:100%;padding:.8rem .95rem}.form textarea{resize:vertical;min-height:140px}.form-msg{color:var(--accent);font-size:.9rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-nav-btn{--contact-accent:#ff004c;background:var(--contact-accent);color:#fff;letter-spacing:.02em;cursor:pointer;border:0;border-radius:999px;padding:.62rem 1.1rem;font-size:.82rem;font-weight:700;transition:box-shadow .25s,transform .25s;overflow:hidden}.contact-nav-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #ff004c59}.contact-nav-btn__viewport{height:1.15rem;display:block;overflow:hidden}.contact-nav-btn__track{will-change:transform;flex-direction:column;transition:transform .35s cubic-bezier(.22,1,.36,1);display:flex}.contact-nav-btn:hover .contact-nav-btn__track,.contact-nav-btn:focus-visible .contact-nav-btn__track{transform:translateY(-1.15rem)}.contact-nav-btn__row{white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.45rem;height:1.15rem;line-height:1.15rem;display:inline-flex}.contact-nav-btn__row img{object-fit:contain;width:1rem;height:1rem}body.about-theme .contact-nav-btn{box-shadow:0 0 0 1px #ff004c33}.contact-modal{z-index:120;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b8;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.contact-modal__shell{width:min(520px,100%);max-height:min(90vh,720px);position:relative}.contact-modal__panel{scrollbar-width:none;-ms-overflow-style:none;color:#fff;background:#111;border:1px solid #ffffff1a;border-radius:1rem;width:100%;max-height:min(90vh,720px);padding:1.5rem 1.5rem 1.35rem;position:relative;overflow:auto;box-shadow:0 24px 60px #00000073}.contact-modal__panel::-webkit-scrollbar{width:0;height:0;display:none}.contact-modal__close{color:#ffffff8c;cursor:pointer;background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:.85rem;right:.85rem}.contact-modal__label{letter-spacing:.14em;text-transform:uppercase;color:#ff004c;margin:0 0 .45rem;font-size:.68rem;font-weight:700}.contact-modal__title{margin:0 0 .5rem;font-family:Raleway-Black,sans-serif;font-size:1.6rem;line-height:1.15}.contact-modal__lede{color:#ffffff8c;margin:0 0 1.25rem;font-size:.92rem;line-height:1.6}.contact-modal__form{gap:.85rem;display:grid}.contact-modal__form label{color:#ffffffb8;gap:.35rem;font-size:.82rem;font-weight:600;display:grid}.contact-modal__form input,.contact-modal__form textarea{color:#fff;width:100%;font:inherit;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:.65rem;padding:.75rem .85rem}.contact-modal__form textarea{resize:vertical;min-height:110px}.contact-modal__submit{color:#fff;cursor:pointer;background:#ff004c;border:0;border-radius:999px;margin-top:.25rem;padding:.85rem 1.2rem;font-weight:700}.contact-modal__submit:disabled{opacity:.55;cursor:not-allowed}.contact-modal__error{color:#ff8fab;margin:0;font-size:.88rem}.contact-modal__success{color:#7dffb8;margin:0;font-size:.88rem}.badge{border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.chat-launcher{z-index:50;background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.9rem 1.1rem;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 12px 30px #0000002e}.chat-panel{border:1px solid var(--line);z-index:50;transform-origin:100% 100%;width:min(380px,100vw - 1.5rem);height:min(520px,100vh - 7rem);animation:chatIn .35s var(--ease-out);background:#fff;border-radius:1.25rem;flex-direction:column;display:flex;position:fixed;bottom:4.8rem;right:1.25rem;overflow:hidden;box-shadow:0 24px 60px #00000024}@keyframes chatIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.chat-panel header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.95rem 1rem;display:flex}.chat-panel header strong{font-family:var(--font-display), sans-serif}.chat-panel header button{cursor:pointer;background:0 0;border:0;font-size:1.1rem}.chat-messages{background:#fafafa;flex-direction:column;flex:1;gap:.75rem;padding:1rem;display:flex;overflow:auto}.bubble{border-radius:1rem;max-width:90%;padding:.7rem .85rem;font-size:.92rem;line-height:1.45}.bubble.bot{border:1px solid var(--line);background:#fff;align-self:flex-start}.bubble.user{background:var(--ink);color:#fff;align-self:flex-end}.chat-input{border-top:1px solid var(--line);gap:.4rem;padding:.75rem;display:flex}.chat-input input{border:1px solid var(--line);border-radius:999px;flex:1;padding:.7rem .9rem}.chat-input button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.7rem .95rem}.admin-shell{--admin-accent:#ff004c;color:#ffffffe0;background:#0a0a0a;grid-template-columns:220px 1fr;min-height:100vh;display:grid}.admin-nav{color:#fff;background:#111;border-right:1px solid #ffffff0f;padding:1.5rem 1rem}.admin-nav a{opacity:.8;color:#ffffffd1;border-radius:.65rem;margin-bottom:.25rem;padding:.65rem .75rem;display:block}.admin-nav a:hover,.admin-nav a[data-active=true]{opacity:1;color:#fff;background:#ff004c1f}.admin-nav a[data-active=true]{border:1px solid #ff004c47}.admin-main{background:#0d0d0d;padding:1.5rem}.admin-main h1,.admin-main h2,.admin-main h3{color:#fff}.admin-main .lede{color:#ffffff8c}.admin-table{border-collapse:collapse;background:#ffffff08;border:1px solid #ffffff14;border-radius:1rem;width:100%;overflow:hidden}.admin-table th,.admin-table td{text-align:left;vertical-align:top;color:#ffffffc7;border-bottom:1px solid #ffffff0f;padding:.85rem 1rem;font-size:.92rem}.admin-table th{color:#ffffff73;font-weight:600}.admin-table input,.admin-table textarea{color:#fff;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:.5rem;padding:.5rem .65rem}.badge-new{color:#ff6b96;background:#ff004c26}.badge-field{color:#ff8fab;background:#ff004c1a}.badge-other{color:#ffffff8c;background:#ffffff14}.stat-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.stat{background:#ffffff08;border:1px solid #ffffff14;border-radius:1rem;padding:1rem 1.15rem}.stat span{color:#ffffff73;font-size:.85rem}.stat strong{font-size:1.8rem;font-family:var(--font-display), sans-serif;color:#fff;display:block}.admin-shell .btn-primary{background:var(--admin-accent,#ff004c);color:#fff;border:0;justify-content:center}.admin-shell .btn-ghost{color:#fff;background:0 0;border:1px solid #6969698c}.admin-shell .card{color:#ffffffd1;background:#ffffff08;border:1px solid #ffffff14}.admin-color-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.admin-color-field{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.admin-color-field__row{align-items:center;gap:.65rem;display:flex}.form .admin-color-field__row .admin-color-field__picker{cursor:pointer;background:0 0;border:1px solid #0000001f;border-radius:4px;flex-shrink:0;width:20px;min-width:20px;height:20px;padding:0}.admin-color-field__picker::-webkit-color-swatch-wrapper{padding:0}.admin-color-field__picker::-webkit-color-swatch{border:none;border-radius:3px}.admin-color-field__picker::-moz-color-swatch{border:none;border-radius:3px}.form .admin-color-field__row .admin-color-field__hex{border:1px solid var(--line);color:#0d0d0d;letter-spacing:.02em;background:#fff;border-radius:.85rem;flex:1;width:auto;min-width:0;margin:0;padding:.8rem .95rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.admin-color-field__hex:focus{border-color:#ff004c73;outline:none;box-shadow:0 0 0 2px #ff004c1f}.admin-project-split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:1.25rem;margin-bottom:1.5rem;display:grid}@media (max-width:1100px){.admin-project-split{grid-template-columns:1fr}}.admin-project-form{max-width:none}.admin-project-form__actions{flex-wrap:wrap;gap:.65rem;display:flex}.admin-project-form .btn-primary:disabled{opacity:.45;cursor:not-allowed}.admin-form-errors{color:#ff8fab;background:#ff004c14;border:1px solid #ff004c38;border-radius:.85rem;margin:0;padding:.75rem .95rem;font-size:.86rem;list-style:none}.admin-form-errors li+li{margin-top:.35rem}.admin-project-preview{max-width:none;padding:1rem;position:sticky;top:1rem;overflow:hidden}.admin-project-preview__head{margin-bottom:.85rem}.admin-project-preview__hint{color:#ffffff80;margin:.35rem 0 0;font-size:.82rem;line-height:1.45}.admin-project-preview__frame{background:var(--project-bg,#dff9f4);color:var(--project-primary,#327700);border:1px solid #ffffff14;border-radius:1rem;max-height:min(78vh,920px);overflow:auto}.admin-project-preview__frame .project-page--preview{pointer-events:none;-webkit-user-select:none;user-select:none;min-height:100%;position:relative}.admin-project-preview__frame .project-hero__title{color:var(--project-hero-fg,#fff);opacity:1;z-index:2;font-size:clamp(2rem,7vw,3.75rem);position:relative}.admin-project-preview__frame .project-case__title,.admin-project-preview__frame .project-case__section-title,.admin-project-preview__frame .project-case__row-title{color:var(--ink)}.admin-project-preview__frame .project-case__section--dark .project-case__section-title,.admin-project-preview__frame .project-case__section--dark .project-case__row-title{color:#fff}.admin-project-preview__frame .project-case__summary,.admin-project-preview__frame .project-case__brief,.admin-project-preview__frame .project-case__meta-list li,.admin-project-preview__frame .project-case__meta-value,.admin-project-preview__frame .project-case__stack-list li,.admin-project-preview__frame .project-case__row-body,.admin-project-preview__frame .project-case__eyebrow{color:inherit}.admin-project-preview__frame .project-hero{min-height:auto;padding-top:2.5rem;position:relative;top:auto;overflow:visible}.admin-project-preview__frame .project-hero__stage{padding-bottom:3rem}.admin-project-preview__frame .project-hero__image{max-height:42vh}.admin-project-preview__frame .project-hero__scroll-ring,.admin-project-preview__frame .project-hero__scroll-fill,.admin-project-preview__frame .project-hero__scroll-arrow{opacity:1;animation:none;transform:none}.admin-project-preview__frame .project-hero__scroll-fill{transform:scale(1)}.admin-project-preview__frame .project-hero__scroll-arrow{transform:translateY(0)}.admin-project-preview__frame .project-case__intro{padding-top:clamp(2.5rem,5vw,3.5rem)}.admin-project-preview__frame .project-fab{opacity:1;visibility:visible;pointer-events:none;position:absolute;bottom:1rem;right:1rem;transform:none}.admin-project-preview__frame .project-fab__label{opacity:1;clip:auto;width:auto;max-width:12rem;height:auto;margin:0;position:static;overflow:visible}.admin-project-preview__frame .project-fab:hover,.admin-project-preview__frame .project-fab:focus-visible{gap:0;width:3.5rem;padding:0}.admin-login{--login-accent:#ff004c;color:#fff;background:#0d0d0d;place-items:center;min-height:100vh;padding:clamp(1.5rem,4vw,3rem);display:grid;position:relative;overflow:hidden}.admin-login__glow{pointer-events:none;background:radial-gradient(circle,#ff004c2e 0%,#0000 68%);border-radius:50%;width:min(560px,80vw);height:min(560px,80vw);position:absolute;bottom:-18%;right:-12%}.admin-login__grid{pointer-events:none;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 100%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 100%)}.admin-login__shell{z-index:1;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:clamp(2rem,5vw,4rem);width:min(920px,100%);display:grid;position:relative}.admin-login__brand{min-width:0}.admin-login__mark{color:#f36;letter-spacing:.08em;background:#ff004c14;border:1px solid #ff004c47;border-radius:1rem;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;margin-bottom:1.5rem;font-family:Raleway-Black,sans-serif;font-size:.95rem;display:inline-flex}.admin-login__label{letter-spacing:.2em;text-transform:uppercase;color:var(--login-accent);margin:0 0 1rem;font-size:.68rem;font-weight:700}.admin-login__title{letter-spacing:-.02em;max-width:11ch;margin:0 0 1.25rem;font-family:Raleway-Black,sans-serif;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05}.admin-login__lede{color:#ffffff85;max-width:34ch;margin:0;font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.7}.admin-login__panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(165deg,#ffffff0a 0%,#ffffff04 100%),#0c0c0ceb;border:1px solid #ffffff14;border-radius:1.25rem;gap:1rem;padding:clamp(1.5rem,3vw,2rem);display:grid;box-shadow:0 0 0 1px #ff004c0f,0 24px 60px #00000073}.admin-login__field{position:relative}.admin-login__field-icon{color:#ffffff61;pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.admin-login__input{color:#fff;width:100%;font:inherit;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:.85rem;padding:.95rem 1rem .95rem 2.85rem;font-size:1rem;transition:border-color .25s,box-shadow .25s,background .25s}.admin-login__input::placeholder{color:#ffffff57}.admin-login__input:focus{background:#ffffff0f;border-color:#ff004c73;outline:none;box-shadow:0 0 0 3px #ff004c1f}.admin-login__btn{color:#fff;letter-spacing:.02em;cursor:pointer;background:linear-gradient(90deg,#ff004c 0%,#c8003d 55%,#f36 100%);border:0;border-radius:999px;padding:1rem 1.5rem;font-size:.95rem;font-weight:700;transition:transform .25s,box-shadow .25s,filter .25s,opacity .25s;box-shadow:0 0 0 1px #ff004c33,0 16px 40px #ff004c38}.admin-login__btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 0 0 1px #ff004c59,0 22px 48px #ff004c52}.admin-login__btn:disabled{opacity:.65;cursor:wait}.admin-login__error{color:#ff8fab;margin:0;font-size:.88rem}.admin-login__back{color:#ffffff6b;justify-self:center;font-size:.82rem;text-decoration:none;transition:color .25s}.admin-login__back:hover{color:#ffffffc7}@media (max-width:760px){.admin-login__shell{grid-template-columns:1fr;gap:2rem}.admin-login__title{max-width:none}}.admin-docs{max-width:880px}.admin-docs__hero{margin-bottom:1.75rem}.admin-docs__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--admin-accent,#ff004c);margin:0 0 .5rem;font-size:.72rem;font-weight:700}.admin-docs h1{font-family:var(--font-display), sans-serif;color:#fff;margin:0 0 .75rem;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15}.admin-docs__lede{color:#ffffff8c;margin:0;font-size:1.02rem;line-height:1.65}.admin-docs__card{background:#ffffff08;border:1px solid #ffffff14;border-radius:1rem;margin-bottom:1.25rem;padding:1.35rem 1.4rem}.admin-docs__card h2{color:#fff;margin:0 0 .85rem;font-size:1.15rem}.admin-docs__card h3{color:#fff;margin:0 0 .45rem;font-size:.95rem}.admin-docs__card p{color:#ffffffad;margin:0 0 .75rem;line-height:1.65}.admin-docs__card a{color:var(--admin-accent,#ff004c)}.admin-docs__steps{color:#ffffffad;margin:0;padding-left:1.25rem;line-height:1.7}.admin-docs__steps li+li{margin-top:.45rem}.admin-docs__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.admin-docs__grid article{background:#ffffff05;border:1px solid #ffffff0f;border-radius:.75rem;padding:1rem}.admin-docs__list{color:#ffffffad;margin:0;padding-left:1.2rem;line-height:1.7}.admin-docs__list li+li{margin-top:.55rem}.admin-docs__quote{border-left:3px solid var(--admin-accent,#ff004c);color:#ffffffc7;background:#ff004c0f;border-radius:0 .5rem .5rem 0;margin:0;padding:1rem 1.15rem;font-style:italic;line-height:1.65}.admin-docs__table th{text-align:left;vertical-align:top;color:#ffffff73;width:9rem;font-weight:600}.admin-docs__table td{vertical-align:top;color:#ffffffb8}.admin-docs__table code{color:#ff8fab;font-size:.85em}.admin-docs__actions{flex-wrap:wrap;gap:.65rem;display:flex}.admin-deploy__code{background:#0d1117;border:1px solid #ffffff1a;border-radius:.75rem;margin:.85rem 0;overflow:hidden}.admin-deploy__code-head{letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;border-bottom:1px solid #ffffff14;padding:.5rem .8rem;font-size:.72rem}.admin-deploy__code pre{color:#e6edf3;white-space:pre-wrap;margin:0;padding:.9rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.55;overflow:auto}@media (max-width:900px){.admin-docs__grid{grid-template-columns:1fr}}@media (max-width:1150px){.slide__grid{grid-template-columns:minmax(0,1fr) minmax(520px,42vw)}.slide__media{width:min(820px,42vw);min-width:min(820px,42vw)}.slide__media-frame,.slide__media .project-art{width:100%;min-width:100%;max-width:100%}.featured-projects__grid,.experience-hats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.career-timeline__item{grid-template-columns:1fr;gap:.85rem;padding-bottom:2.25rem}.career-timeline__meta{text-align:left;padding-top:0}.career-timeline__tags{justify-content:flex-start}.career-timeline__rail{display:none}.portfolio-assistant__shell{grid-template-columns:1fr}.portfolio-assistant__chat{min-height:460px}.field-notes__grid,.notes-page__grid{grid-template-columns:1fr}}@media (max-width:900px){.project-case__intro-grid{grid-template-columns:1fr;gap:2.5rem}.project-case__row{grid-template-columns:1fr;gap:.85rem}.project-case__title,.project-case__section-title{max-width:none}.slide__grid{grid-template-columns:1fr;gap:2rem;padding-top:5.5rem}.slide__copy{padding-right:0}.slide__media{perspective:1200px;width:100%;min-width:0}.slide__media-frame{width:min(100%,92vw);min-width:0;max-width:100%;aspect-ratio:var(--hero-ratio-w,16) / var(--hero-ratio-h,11);height:auto;max-height:46vh;transform:rotateY(-16deg)translateZ(0)}.slide__media .project-art{width:min(100%,92vw);min-width:0;max-width:100%;max-height:46vh;transform:rotateY(-16deg)}.slide__title{-webkit-line-clamp:2;line-clamp:2;margin-bottom:1rem;font-size:clamp(1.75rem,8vw,2.6rem)}.slide__summary{-webkit-line-clamp:4;line-clamp:4;margin-bottom:1.5rem;font-size:1rem}.side-nav--right{right:0}.nav-zone{min-width:4rem;padding-right:var(--site-pad-x)}.nav-gallery-stack{--slide-active-h:38vh;--slide-inactive-h:18vh;--slide-gap:1.25rem;width:min(88vw,440px);height:min(72vh,660px)}.nav-gallery-stack__item{width:min(76vw,340px);max-height:180px}.nav-gallery-stack__item.is-active{width:min(88vw,420px);max-height:360px}.home-stage.is-nav-open .nav-zone{width:min(68vw,260px);padding-right:var(--site-pad-x)}.skill-groups,.stat-grid,.about-hero{grid-template-columns:1fr}.about-hero__portrait{order:-1}.about-hero__portrait-slot{min-height:min(52vh,420px)}.core-modules__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-projects__grid,.about-skills,.admin-shell{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr!important}}@media (max-width:560px){.core-modules__grid,.experience-hats__grid{grid-template-columns:1fr}}
