:root,[data-theme=dark]{--bg:#0b0d10;--bg-2:#101319;--surface:#171a1f;--surface-2:#232832;--surface-3:#111419;--line:#303742;--text:#f3efe7;--text-soft:#d8d0c2;--muted:#a8b0aa;--muted-2:#768079;--copper:#e9824c;--blueprint:#8ea4ff;--brass:#f2c66d;--success:#7bbf8f;--warning:#ffc857;--error:#ff5f6d;--header-bg:#0b0d10d6;--shadow:0 24px 80px #00000057;--cursor-x:50vw;--cursor-y:50vh;--cursor-opacity:0;--max-width:1180px;--radius:8px;--ease-out:cubic-bezier(.22, 1, .36, 1)}[data-theme=light]{--bg:#f3efe7;--bg-2:#e9e1d4;--surface:#fffaf0;--surface-2:#ebe3d6;--surface-3:#f8f0e4;--line:#d3c8b9;--text:#171a1f;--text-soft:#303742;--muted:#5d675f;--muted-2:#747b75;--copper:#b85f33;--blueprint:#425ed8;--brass:#996f1d;--header-bg:#f3efe7db;--shadow:0 22px 72px #372c2024}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:104px}body{min-width:320px;color:var(--text);background:linear-gradient(90deg, color-mix(in srgb, var(--line) 22%, transparent) 1px, transparent 1px), linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 46%, var(--bg) 100%);letter-spacing:0;text-rendering:optimizelegibility;background-size:72px 72px,auto;margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background .18s,color .18s;overflow-x:hidden}body::selection{color:var(--bg);background:var(--brass)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}p{color:var(--muted);margin:0;font-size:1.05rem;line-height:1.7}h1,h2,h3{color:var(--text);letter-spacing:0;margin:0;font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-weight:800}h1{max-width:790px;font-size:clamp(3.45rem,5.8vw,5.8rem);line-height:1}h2{max-width:820px;font-size:clamp(2.25rem,4.2vw,4.25rem);line-height:1.04}h3{font-size:1.05rem;line-height:1.25}img{max-width:100%}.ambient-field{z-index:0;pointer-events:none;background:radial-gradient(820px circle at var(--cursor-x) var(--cursor-y), color-mix(in srgb, var(--blueprint) 15%, transparent), transparent 68%), radial-gradient(520px circle at var(--cursor-x) var(--cursor-y), color-mix(in srgb, var(--copper) 11%, transparent), transparent 76%);opacity:calc(var(--cursor-opacity) * .68);mix-blend-mode:normal;transition:opacity .22s;position:fixed;inset:0}[data-theme=light] .ambient-field{background:radial-gradient(820px circle at var(--cursor-x) var(--cursor-y), #425ed83d, #425ed814 36%, transparent 70%), radial-gradient(460px circle at var(--cursor-x) var(--cursor-y), #8ea4ff3d, transparent 72%);opacity:calc(var(--cursor-opacity) * .72);mix-blend-mode:multiply}@media (hover:none),(pointer:coarse){.ambient-field{display:none}}main{z-index:1;position:relative}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:var(--header-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:fixed;top:0;left:0;right:0}.header-inner{width:min(calc(100% - 40px), var(--max-width));grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:26px;min-height:74px;margin:0 auto;display:grid}.brand{gap:9px;width:fit-content;display:grid}.brand span{color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;font-weight:800;line-height:1.1}.brand small{color:var(--text-soft);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-weight:700;line-height:1.2}.eyebrow,.period,.hero-note span,.snapshot-item span,.project-card>span,.section-more a,.gallery-card__content>span,.gallery-card__visual span,.gallery-card__link,.gallery-card__pending,.back-link,.contact-badge__mark,.contact-badge__text span,.mini-tags span{letter-spacing:0;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700}.rail-badges,.contact-badges.mobile-footer-badges{display:none}.contact-badges{flex-wrap:wrap;gap:10px;display:flex}.rail-badges{display:none}.contact-badge{min-height:48px;color:var(--text-soft);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 72%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:8px 12px 8px 8px;transition:border-color .16s,background .16s,color .16s,transform .16s;display:grid}.contact-badge:hover,.contact-badge:focus-visible{color:var(--text);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 90%, transparent), color-mix(in srgb, var(--surface) 100%, transparent));border-color:color-mix(in srgb, var(--copper) 68%, var(--line));transform:translateY(-2px)}.contact-badge__mark{width:28px;height:28px;color:var(--bg);background:var(--brass);border-radius:var(--radius);place-items:center;font-size:.64rem;line-height:1;display:grid}.contact-badge__mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9px;width:15px;height:15px;display:block}.contact-badge__mark svg path{vector-effect:non-scaling-stroke}.contact-badge__mark svg[data-logo=linkedin],.contact-badge__mark svg[data-logo=github]{fill:currentColor;stroke:none}.contact-badge__text{gap:2px;min-width:0;display:grid}.contact-badge__text strong{color:inherit;font-size:.84rem;line-height:1.1}.contact-badge__text span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;line-height:1.2;overflow:hidden}nav{color:var(--muted);gap:clamp(16px,2.6vw,30px);font-size:.92rem;font-weight:700;display:flex}nav a{padding:8px 0;position:relative}nav a:after{content:"";background:var(--copper);transform-origin:0;height:1px;transition:transform .16s;position:absolute;bottom:3px;left:0;right:0;transform:scaleX(0)}nav a:hover,nav a:focus-visible,nav a[aria-current=true]{color:var(--text)}nav a:hover:after,nav a:focus-visible:after,nav a[aria-current=true]:after{transform:scaleX(1)}.theme-toggle{z-index:40;width:44px;height:36px;color:var(--text);background:color-mix(in srgb, var(--surface) 82%, transparent);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;place-items:center;padding:0;transition:border-color .16s,transform .16s,background .16s;display:grid;position:fixed;top:clamp(16px,2vw,28px);right:clamp(16px,2vw,28px)}.theme-toggle:hover{border-color:var(--copper);transform:translateY(-1px)}.theme-toggle__track{border:1px solid color-mix(in srgb, var(--muted) 55%, transparent);border-radius:999px;width:24px;height:14px;display:block;position:relative}.theme-toggle__glyph{background:var(--brass);width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in srgb, var(--brass) 18%, transparent);transition:transform .18s var(--ease-out), background .18s ease;border-radius:999px;display:block;position:absolute;top:2px;left:2px}[data-theme=light] .theme-toggle__glyph{background:var(--copper);transform:translate(10px)}a:focus-visible,button:focus-visible{outline:3px solid color-mix(in srgb, var(--brass) 80%, white);outline-offset:4px}.section-shell{width:min(calc(100% - 40px), var(--max-width));margin:0 auto}.hero{align-items:center;gap:clamp(34px,6vw,72px);min-height:100svh;padding:clamp(112px,15vh,148px) 0 78px;display:grid;position:relative}.hero:before,.hero:after{pointer-events:none;content:"";position:absolute}.hero:before{background:linear-gradient(90deg, var(--copper), transparent);width:180px;height:1px;top:96px;left:0}.hero:after{background:linear-gradient(90deg, transparent, var(--blueprint));width:220px;height:1px;bottom:74px;right:8%}.hero-copy{z-index:2;max-width:min(100%,820px);position:relative}.mobile-hero-actions{display:none}.eyebrow{color:var(--copper);margin:0 0 18px;font-size:.76rem;line-height:1.35}.hero-notes{z-index:2;gap:18px;max-width:min(100%,760px);display:grid;position:relative}.hero-note{border-top:1px solid color-mix(in srgb, var(--line) 82%, transparent);gap:7px;padding-top:14px;display:grid}.hero-note:first-child{border-top-color:color-mix(in srgb, var(--copper) 62%, var(--line))}.hero-note span{color:var(--copper);font-size:.7rem;line-height:1.35}.hero-note p{color:var(--muted);font-size:clamp(.98rem,1.05vw,1.02rem);line-height:1.54}.hero-note:first-child p{color:var(--text-soft)}.hero-note a{color:var(--text-soft);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-underline-offset:.18em;font-weight:700;transition:color .16s,text-decoration-color .16s}.hero-note a:visited{color:color-mix(in srgb, var(--text-soft) 76%, var(--blueprint));-webkit-text-decoration-color:color-mix(in srgb, var(--blueprint) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--blueprint) 48%, transparent)}.hero-note a:hover,.hero-note a:focus-visible{color:var(--text);-webkit-text-decoration-color:var(--copper);text-decoration-color:var(--copper)}.experience-row,.project-card{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow)}.snapshot-band{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 82%, transparent), color-mix(in srgb, var(--surface-3) 88%, transparent));padding:86px 0;position:relative}.snapshot-band:before,.snapshot-band:after{pointer-events:none;content:"";background:color-mix(in srgb, var(--line) 78%, transparent);width:100%;height:1px;position:absolute;left:0;right:0}.snapshot-band:before{top:0}.snapshot-band:after{bottom:0}.section-heading{margin-bottom:34px}.section-heading.narrow{max-width:850px}.section-heading.split-heading{grid-template-columns:minmax(0,.98fr) minmax(280px,.64fr);align-items:end;gap:clamp(24px,6vw,72px);display:grid}.snapshot-layout{grid-template-columns:minmax(0,.9fr) minmax(280px,.44fr);align-items:end;gap:clamp(28px,7vw,96px);margin-bottom:clamp(32px,5vw,58px);display:grid}.snapshot-layout .section-heading{margin-bottom:0}.snapshot-intro{max-width:400px;color:var(--text-soft);font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.62}.snapshot-flow{border-top:1px solid color-mix(in srgb, var(--line) 82%, transparent);gap:0;margin:0;padding:0;list-style:none;display:grid}.snapshot-item{border-bottom:1px solid color-mix(in srgb, var(--line) 82%, transparent);align-items:start;padding:clamp(22px,3.2vw,34px) 0;display:grid}.snapshot-item div{grid-template-columns:minmax(150px,.28fr) minmax(240px,.46fr) minmax(280px,.72fr);align-items:baseline;gap:clamp(16px,3vw,42px);display:grid}.snapshot-item div>span{color:var(--copper);font-size:.7rem;display:block}.snapshot-item strong{color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:clamp(1.16rem,1.8vw,1.56rem);line-height:1.12;display:block}.snapshot-item p{font-size:.98rem;line-height:1.6}.experience-section,.projects-section{padding:104px 0}.projects-section{isolation:isolate;position:relative}.projects-section:before{z-index:1;pointer-events:none;content:"";background:color-mix(in srgb, var(--line) 78%, transparent);width:100vw;height:1px;position:absolute;top:0;left:calc(50% - 50vw)}.projects-section:after{z-index:-1;pointer-events:none;content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 82%, transparent), color-mix(in srgb, var(--surface-3) 88%, transparent));width:100vw;position:absolute;top:0;bottom:0;left:calc(50% - 50vw)}.experience-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.experience-row{--brand-primary:var(--blueprint);--brand-secondary:var(--copper);--brand-accent:var(--brass);min-height:360px;box-shadow:none;flex-direction:column;align-items:stretch;gap:24px;padding:20px;display:flex;position:relative;overflow:hidden}.experience-row:before{z-index:0;pointer-events:none;content:"";background:radial-gradient(560px circle at 18% 12%, color-mix(in srgb, var(--brand-primary) 20%, transparent), transparent 64%), linear-gradient(135deg, color-mix(in srgb, var(--brand-primary) 13%, transparent), color-mix(in srgb, var(--brand-secondary) 14%, transparent));opacity:0;transition:opacity .18s;position:absolute;inset:0}.experience-row:hover:before,.experience-row:focus-within:before{opacity:1}.experience-row>*{z-index:1;position:relative}.experience-row>div{flex-direction:column;flex:1;min-height:0;display:flex}.period{color:var(--brass);font-size:.74rem;line-height:1.45;transition:color .18s}.experience-row h3{font-size:clamp(1.35rem,2vw,1.85rem)}.experience-row .company{width:fit-content;color:var(--text-soft);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--line) 80%, transparent);text-decoration-color:color-mix(in srgb, var(--line) 80%, transparent);text-underline-offset:.18em;margin-top:5px;font-weight:700;transition:color .18s,text-decoration-color .18s;display:inline-flex}.experience-row .company:hover,.experience-row .company:focus-visible{color:var(--text);-webkit-text-decoration-color:var(--brand-accent);text-decoration-color:var(--brand-accent)}.experience-row p:not(.company){max-width:none;margin-top:16px;font-size:.98rem;line-height:1.62}.experience-row .mini-tags{margin-top:auto;padding-top:18px}.experience-row:hover .period,.experience-row:focus-within .period{color:var(--brand-accent)}.experience-row:hover .company,.experience-row:focus-within .company{color:color-mix(in srgb, var(--brand-secondary) 72%, var(--text))}.experience-row:hover .mini-tags span,.experience-row:focus-within .mini-tags span{color:color-mix(in srgb, var(--brand-accent) 74%, var(--text));background:color-mix(in srgb, var(--brand-primary) 14%, var(--surface-2));border-color:color-mix(in srgb, var(--brand-secondary) 46%, var(--line))}.mini-tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.mini-tags span{color:var(--muted);background:color-mix(in srgb, var(--surface-2) 70%, transparent);border:1px solid var(--line);border-radius:var(--radius);padding:7px 9px;font-size:.68rem;transition:background .18s,border-color .18s,color .18s}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.project-card{min-height:292px;box-shadow:none;flex-direction:column;gap:22px;padding:20px;display:flex;position:relative;overflow:hidden}.project-card:before{z-index:0;pointer-events:none;content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--blueprint) 7%, transparent), transparent 42%), linear-gradient(135deg, transparent 0%, color-mix(in srgb, var(--copper) 8%, transparent) 100%);opacity:0;transition:opacity .18s;position:absolute;inset:0}.project-card:hover:before,.project-card:focus-within:before{opacity:1}.project-card>span{z-index:1;color:var(--brass);font-size:.72rem;line-height:1.45;position:relative}.project-card__content{z-index:1;gap:14px;min-width:0;display:grid;position:relative}.project-card h3{font-size:clamp(1.35rem,2vw,1.85rem)}.project-card p{margin-top:0;font-size:.98rem;line-height:1.62}.project-card .mini-tags{margin-top:0}.section-more a,.gallery-card__link,.gallery-card__pending,.back-link{width:fit-content;color:var(--text-soft);align-items:center;font-size:.72rem;line-height:1.35;display:inline-flex}.section-more a,.gallery-card__link,.back-link{text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-underline-offset:.22em;transition:color .16s,text-decoration-color .16s,transform .16s}.section-more a:after,.gallery-card__link:after,.back-link:before{color:var(--copper)}.section-more a:after,.gallery-card__link:after{content:"->";margin-left:8px}.back-link:before{content:"<-";margin-right:8px}.section-more a:visited,.gallery-card__link:visited,.back-link:visited{color:color-mix(in srgb, var(--text-soft) 76%, var(--blueprint));-webkit-text-decoration-color:color-mix(in srgb, var(--blueprint) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--blueprint) 48%, transparent)}.section-more a:hover,.section-more a:focus-visible,.gallery-card__link:hover,.gallery-card__link:focus-visible,.back-link:hover,.back-link:focus-visible{color:var(--text);-webkit-text-decoration-color:var(--copper);text-decoration-color:var(--copper);transform:translateY(-1px)}.gallery-card__pending{color:var(--muted-2)}.section-more{justify-content:flex-end;margin-top:18px;display:flex}.project-gallery{grid-template-columns:minmax(0,920px);gap:22px;display:grid}.project-gallery.is-single{grid-template-columns:minmax(0,760px)}.gallery-card{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(280px,.74fr) minmax(0,1fr);min-height:0;transition:border-color .16s,background .16s,transform .16s;display:grid;overflow:hidden;box-shadow:0 14px 42px #00000038}.gallery-card__visual{background:linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 82%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--line) 24%, transparent) 1px, transparent 1px), linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px);border-right:1px solid color-mix(in srgb, var(--line) 82%, transparent);background-size:auto,42px 42px,42px 42px;min-height:100%;position:relative;overflow:hidden}.gallery-card__visual:before,.gallery-card__visual:after{content:"";border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:var(--radius);position:absolute}.gallery-card__visual:before{background:color-mix(in srgb, var(--bg) 28%, transparent);width:min(52%,250px);height:118px;bottom:28px;right:32px;box-shadow:0 24px 50px #00000038}.gallery-card__visual:after{border-color:color-mix(in srgb, var(--copper) 42%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--copper) 16%, transparent), transparent);width:42%;height:88px;top:34px;left:28px}.gallery-card__visual span{z-index:1;color:var(--text-soft);font-size:.68rem;position:absolute;bottom:16px;right:18px}.gallery-card__visual.is-booking{background:radial-gradient(360px circle at 20% 18%, color-mix(in srgb, var(--copper) 18%, transparent), transparent 68%), radial-gradient(320px circle at 78% 36%, color-mix(in srgb, var(--blueprint) 14%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 82%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--line) 24%, transparent) 1px, transparent 1px), linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px);background-size:auto,auto,auto,42px 42px,42px 42px;min-height:100%;padding:20px;display:grid}.gallery-card__visual.is-booking:before,.gallery-card__visual.is-booking:after{display:none}.gallery-card__visual.is-booking span{z-index:auto;position:static;bottom:auto;right:auto}.booking-visual{grid-template-rows:minmax(120px,1fr) auto;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;min-height:100%;display:grid}.booking-visual__panel,.booking-visual__status{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 28%, transparent);min-width:0}.booking-visual__panel{align-content:start;gap:12px;padding:15px;display:grid}.booking-visual__panel--public{border-color:color-mix(in srgb, var(--copper) 48%, var(--line))}.booking-visual__panel--admin{border-color:color-mix(in srgb, var(--blueprint) 44%, var(--line));align-self:end}.booking-visual__panel>span,.booking-visual__status>span{color:var(--copper);text-transform:none;font-size:.68rem}.booking-visual__panel strong,.booking-visual__status strong{overflow-wrap:anywhere;color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.9rem;line-height:1.25}.booking-visual__steps,.booking-visual__grid{gap:7px;display:grid}.booking-visual__steps{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-visual__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-visual__steps span,.booking-visual__grid span{min-height:32px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2) 58%, transparent);border:1px solid color-mix(in srgb, var(--line) 78%, transparent);text-align:center;border-radius:6px;place-items:center;padding:6px;font-size:.62rem;line-height:1;display:grid}.booking-visual__status{border-color:color-mix(in srgb, var(--brass) 42%, var(--line));background:color-mix(in srgb, var(--surface-2) 48%, transparent);grid-column:1/-1;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.booking-visual__integration{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:inline-flex}.booking-visual__logo{background-color:var(--surface);border:1px solid color-mix(in srgb, var(--brass) 52%, var(--line));width:24px;height:24px;color:var(--brass);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:999px;flex:none;place-items:center;font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.68rem;font-weight:800;line-height:1;display:grid;box-shadow:0 8px 18px #00000038}.booking-visual__status strong{color:var(--brass);text-align:right;font-size:.78rem}.gallery-card__visual.is-workflow{background:radial-gradient(360px circle at 78% 16%, color-mix(in srgb, var(--blueprint) 18%, transparent), transparent 68%), radial-gradient(300px circle at 18% 78%, color-mix(in srgb, var(--copper) 14%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 82%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--line) 24%, transparent) 1px, transparent 1px), linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px);background-size:auto,auto,auto,42px 42px,42px 42px;min-height:100%;padding:20px;display:grid}.gallery-card__visual.is-workflow:before,.gallery-card__visual.is-workflow:after{display:none}.gallery-card__visual.is-workflow span{z-index:auto;position:static;bottom:auto;right:auto}.workflow-visual{grid-template-rows:minmax(120px,1fr) auto;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:12px;min-height:100%;display:grid}.workflow-visual__panel,.workflow-visual__gate{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 28%, transparent);min-width:0}.workflow-visual__panel{align-content:start;gap:12px;padding:15px;display:grid}.workflow-visual__panel--docs{border-color:color-mix(in srgb, var(--blueprint) 48%, var(--line))}.workflow-visual__panel--loop{border-color:color-mix(in srgb, var(--copper) 46%, var(--line));align-self:end}.workflow-visual__panel>span,.workflow-visual__gate>span{color:var(--copper);font-size:.68rem}.workflow-visual__docs,.workflow-visual__steps{gap:7px;display:grid}.workflow-visual__docs span,.workflow-visual__steps span{min-height:32px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2) 58%, transparent);border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:6px;align-items:center;padding:6px 8px;font-size:.62rem;line-height:1.1;display:grid}.workflow-visual__steps{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-visual__steps span{text-align:center;place-items:center}.workflow-visual__gate{border-color:color-mix(in srgb, var(--brass) 42%, var(--line));background:color-mix(in srgb, var(--surface-2) 48%, transparent);grid-column:1/-1;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.workflow-visual__gate strong{overflow-wrap:anywhere;color:var(--brass);text-align:right;font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.78rem;line-height:1.25}.gallery-card__visual.is-landing{background:radial-gradient(360px circle at 20% 18%, color-mix(in srgb, var(--brass) 18%, transparent), transparent 68%), radial-gradient(320px circle at 78% 44%, color-mix(in srgb, var(--blueprint) 12%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 82%, transparent), color-mix(in srgb, var(--surface) 94%, transparent));min-height:100%;padding:20px;display:grid}.gallery-card__visual.is-landing:before,.gallery-card__visual.is-landing:after{display:none}.gallery-card__visual.is-landing span{z-index:auto;position:static;bottom:auto;right:auto}.landing-visual{grid-template-rows:minmax(124px,1fr) auto;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px;min-height:100%;display:grid}.landing-visual__hero,.landing-visual__sections,.landing-visual__handoff{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 28%, transparent);min-width:0}.landing-visual__hero{border-color:color-mix(in srgb, var(--brass) 46%, var(--line));align-content:end;gap:12px;padding:16px;display:grid}.landing-visual__sections{border-color:color-mix(in srgb, var(--blueprint) 44%, var(--line));grid-template-columns:repeat(2,minmax(0,1fr));align-self:end;gap:7px;padding:14px;display:grid}.landing-visual__handoff{border-color:color-mix(in srgb, var(--copper) 46%, var(--line));background:color-mix(in srgb, var(--surface-2) 48%, transparent);grid-column:1/-1;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.landing-visual__hero span,.landing-visual__handoff span{color:var(--copper);font-size:.68rem}.landing-visual__hero strong,.landing-visual__handoff strong{overflow-wrap:anywhere;color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.9rem;line-height:1.25}.landing-visual__handoff strong{color:var(--brass);text-align:right;font-size:.78rem}.landing-visual__sections span{min-height:32px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2) 58%, transparent);border:1px solid color-mix(in srgb, var(--line) 78%, transparent);text-align:center;border-radius:6px;place-items:center;padding:6px;font-size:.62rem;line-height:1;display:grid}.gallery-card__visual.is-finance{background:radial-gradient(360px circle at 22% 18%, color-mix(in srgb, var(--blueprint) 16%, transparent), transparent 68%), radial-gradient(320px circle at 78% 76%, color-mix(in srgb, var(--brass) 16%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 82%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--line) 24%, transparent) 1px, transparent 1px), linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px);background-size:auto,auto,auto,42px 42px,42px 42px;min-height:100%;padding:20px;display:grid}.gallery-card__visual.is-finance:before,.gallery-card__visual.is-finance:after{display:none}.gallery-card__visual.is-finance span{z-index:auto;position:static;bottom:auto;right:auto}.finance-visual{grid-template-rows:minmax(124px,1fr) auto;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:12px;min-height:100%;display:grid}.finance-visual__panel,.finance-visual__handoff{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 28%, transparent);min-width:0}.finance-visual__panel{align-content:start;gap:14px;padding:15px;display:grid}.finance-visual__panel--calculator{border-color:color-mix(in srgb, var(--brass) 46%, var(--line))}.finance-visual__panel--catalogue{border-color:color-mix(in srgb, var(--blueprint) 44%, var(--line));align-self:end}.finance-visual__panel>span,.finance-visual__handoff>span{color:var(--copper);font-size:.68rem}.finance-visual__panel strong{color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:1rem;line-height:1.2}.finance-visual__bars{gap:8px;display:grid}.finance-visual__bars i{width:var(--bar);background:linear-gradient(90deg, var(--brass), color-mix(in srgb, var(--blueprint) 72%, var(--brass)));opacity:.82;border-radius:999px;height:8px;display:block}.finance-visual__filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.finance-visual__filters span{min-height:32px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2) 58%, transparent);border:1px solid color-mix(in srgb, var(--line) 78%, transparent);text-align:center;border-radius:6px;place-items:center;padding:6px;font-size:.62rem;line-height:1;display:grid}.finance-visual__handoff{border-color:color-mix(in srgb, var(--copper) 46%, var(--line));background:color-mix(in srgb, var(--surface-2) 48%, transparent);grid-column:1/-1;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.finance-visual__handoff div{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.finance-visual__handoff strong{color:var(--brass);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.68rem;line-height:1.1}.gallery-card.is-placeholder .gallery-card__visual{opacity:.74}.gallery-card__content{align-content:start;gap:13px;padding:22px;display:grid}.gallery-card__content>span{color:var(--copper);font-size:.72rem}.gallery-card.is-placeholder .gallery-card__content>span{color:var(--muted)}.gallery-card h2{font-size:clamp(1.55rem,2.5vw,2.35rem);line-height:1.06}.gallery-card h2.gallery-card__linked-title{font-size:clamp(1.55rem,2.25vw,2.12rem)}.gallery-card__title-link{color:inherit;text-decoration-line:none;transition:color .16s;display:inline}.gallery-card__title-link:after{color:var(--copper);content:"↗";margin-left:.28em;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68em;line-height:1;transition:transform .16s,color .16s;display:inline-block;transform:translateY(-.12em)}.gallery-card__title-link:hover,.gallery-card__title-link:focus-visible{color:var(--text-soft)}.gallery-card__title-link:hover:after,.gallery-card__title-link:focus-visible:after{color:var(--brass);transform:translate(2px,-.22em)}.gallery-card p{font-size:1rem;line-height:1.62}.gallery-card__proof{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:2px 0 0;display:grid;overflow:hidden}.gallery-card__proof div{background:color-mix(in srgb, var(--surface-2) 34%, transparent);border-right:1px solid color-mix(in srgb, var(--line) 78%, transparent);gap:8px;min-width:0;padding:12px;display:grid}.gallery-card__proof div:last-child{border-right:0}.gallery-card__proof dt{color:var(--copper);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700;line-height:1.2}.gallery-card__proof dd{color:var(--text-soft);margin:0;font-size:.86rem;font-weight:700;line-height:1.28}.gallery-card__notes{gap:9px;margin:0;padding:0;list-style:none;display:grid}.gallery-card__notes li{color:var(--muted);padding-left:16px;font-size:.94rem;line-height:1.5;position:relative}.gallery-card__notes li:before{content:"";background:var(--copper);width:6px;height:1px;position:absolute;top:.72em;left:0}.gallery-card .mini-tags{margin-top:0}.gallery-card__actions{flex-wrap:wrap;align-items:center;gap:10px 16px;padding-top:4px;display:flex}.gallery-card__link.secondary-link{color:var(--muted);-webkit-text-decoration-color:color-mix(in srgb, var(--line) 90%, transparent);text-decoration-color:color-mix(in srgb, var(--line) 90%, transparent)}.gallery-card:hover,.gallery-card:focus-within{border-color:color-mix(in srgb, var(--copper) 54%, var(--line));background:color-mix(in srgb, var(--surface-2) 72%, var(--surface));transform:translateY(-2px)}.projects-page{min-height:100svh;padding-bottom:112px}.projects-page-hero{padding:clamp(60px,8vh,90px) 0 clamp(20px,4vw,34px)}.projects-page-hero .back-link{margin-bottom:clamp(12px,1.8vw,18px)}.projects-page-hero__grid{max-width:920px;display:grid}.projects-page-hero__copy{gap:10px;display:grid}.projects-page-hero .eyebrow{margin-top:0}.projects-page-hero h1{letter-spacing:-.026em;text-wrap:balance;max-width:520px;font-size:clamp(2rem,3.1vw,3.15rem);line-height:1.06}.featured-showcase{padding:0 0 clamp(76px,9vw,124px)}.featured-project{background:radial-gradient(640px circle at 12% 16%, color-mix(in srgb, var(--copper) 14%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 76%, transparent), color-mix(in srgb, var(--surface) 96%, transparent));border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(0,1.12fr) minmax(340px,.58fr);min-height:560px;display:grid;overflow:hidden}.featured-project__media{background:color-mix(in srgb, var(--bg) 28%, transparent);min-width:0;padding:clamp(18px,2.8vw,34px);display:grid}.featured-project__content,.supporting-project__content,.process-project__content{align-content:start;min-width:0;display:grid}.featured-project__content{border-left:1px solid color-mix(in srgb, var(--line) 84%, transparent);gap:18px;padding:clamp(28px,4vw,46px)}.featured-project__content>span,.supporting-project__content>span,.process-project__content>span{color:var(--copper);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:700}.featured-project h2,.process-project h2,.showcase-section-heading h2{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.15rem,4vw,4.1rem);line-height:1.04}.featured-project p,.supporting-project p,.process-project p,.showcase-section-heading p{color:var(--text-soft);text-wrap:pretty;font-size:1.04rem;line-height:1.65}.showcase-proof{margin:2px 0 0;display:grid}.showcase-proof div{border-top:1px solid color-mix(in srgb, var(--line) 80%, transparent);gap:7px;min-width:0;padding:13px 0;display:grid}.showcase-proof dt{color:var(--copper);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700;line-height:1.2}.showcase-proof dd{color:var(--text-soft);margin:0;font-size:.92rem;font-weight:700;line-height:1.35}.showcase-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;padding-top:4px;display:flex}.showcase-link{min-height:32px;color:var(--text);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--copper) 62%, transparent);text-decoration-color:color-mix(in srgb, var(--copper) 62%, transparent);text-underline-offset:.22em;align-items:center;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.74rem;font-weight:700;transition:color .14s,text-decoration-color .14s;display:inline-flex}.showcase-link:after{color:var(--copper);content:"->";margin-left:8px;text-decoration:none}.showcase-link.is-secondary{color:var(--muted);-webkit-text-decoration-color:color-mix(in srgb, var(--line) 90%, transparent);text-decoration-color:color-mix(in srgb, var(--line) 90%, transparent)}.showcase-link:hover,.showcase-link:focus-visible{color:var(--brass);-webkit-text-decoration-color:var(--brass);text-decoration-color:var(--brass)}.artifact-preview{--preview-a:var(--copper);--preview-b:var(--blueprint);background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid color-mix(in srgb, var(--line) 92%, transparent);border-radius:var(--radius);grid-template-rows:auto 1fr;min-height:320px;display:grid;position:relative;overflow:hidden}.artifact-preview__image{z-index:3;background:var(--surface);object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.artifact-preview__image[hidden]{display:none}.artifact-preview.is-large{min-height:100%}.artifact-preview.is-booking{--preview-a:var(--copper);--preview-b:var(--brass)}.artifact-preview.is-landing{--preview-a:var(--brass);--preview-b:var(--blueprint)}.artifact-preview.is-finance{--preview-a:var(--blueprint);--preview-b:var(--brass)}.artifact-preview.is-workflow{--preview-a:var(--blueprint);--preview-b:var(--copper)}.artifact-preview__chrome{background:color-mix(in srgb, var(--surface-3) 72%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 84%, transparent);grid-template-columns:8px 8px 8px minmax(0,1fr);align-items:center;gap:7px;min-height:38px;padding:0 13px;display:grid}.artifact-preview__chrome span{background:color-mix(in srgb, var(--muted) 52%, transparent);border-radius:999px;width:8px;height:8px}.artifact-preview__chrome span:first-child{background:var(--preview-a)}.artifact-preview__chrome strong{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;font-weight:700;overflow:hidden}.artifact-preview__surface{background:radial-gradient(420px circle at 18% 12%, color-mix(in srgb, var(--preview-a) 20%, transparent), transparent 70%), radial-gradient(360px circle at 88% 80%, color-mix(in srgb, var(--preview-b) 16%, transparent), transparent 72%), color-mix(in srgb, var(--bg) 22%, transparent);grid-template-rows:minmax(156px,1fr) auto;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px;padding:clamp(14px,2vw,20px);display:grid}.artifact-preview__primary,.artifact-preview__secondary,.artifact-preview__footer{border:1px solid color-mix(in srgb, var(--line) 76%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--bg) 24%, transparent);min-width:0}.artifact-preview__primary{border-color:color-mix(in srgb, var(--preview-a) 56%, var(--line));align-content:end;gap:12px;padding:clamp(16px,2vw,22px);display:grid}.artifact-preview__secondary{border-color:color-mix(in srgb, var(--preview-b) 50%, var(--line));align-content:start;align-self:end;gap:12px;padding:clamp(14px,1.8vw,18px);display:grid}.artifact-preview__primary span,.artifact-preview__secondary span,.artifact-preview__footer span{color:var(--copper);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700}.artifact-preview__primary strong,.artifact-preview__footer strong{color:var(--text);font-family:Sora,"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.28rem);line-height:1.2}.artifact-preview__secondary div{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.artifact-preview__secondary i{min-height:30px;color:var(--text-soft);background:color-mix(in srgb, var(--surface-2) 52%, transparent);border:1px solid color-mix(in srgb, var(--line) 74%, transparent);text-align:center;border-radius:6px;place-items:center;padding:6px;font-size:.62rem;font-style:normal;font-weight:700;line-height:1;display:grid}.artifact-preview__footer{border-color:color-mix(in srgb, var(--copper) 48%, var(--line));grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.artifact-preview__footer strong{color:var(--brass);text-align:right;font-size:.82rem}.artifact-preview__logo{background-color:var(--surface);border:1px solid color-mix(in srgb, var(--brass) 52%, var(--line));background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:999px;flex:none;width:24px;height:24px}.project-gallery{padding:0 0 clamp(74px,9vw,122px);display:block}.showcase-section-heading{border-top:1px solid color-mix(in srgb, var(--line) 86%, transparent);grid-template-columns:minmax(0,.8fr) minmax(300px,.55fr);align-items:end;gap:clamp(24px,5vw,72px);margin-bottom:24px;padding-top:clamp(26px,4vw,42px);display:grid}.showcase-section-heading p{margin:0}.supporting-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.supporting-project{background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid var(--line);border-radius:var(--radius);grid-template-rows:auto 1fr;min-width:0;transition:border-color .16s,background .16s,transform .16s;display:grid;overflow:hidden}.supporting-project:hover,.supporting-project:focus-within,.featured-project:hover,.featured-project:focus-within,.process-project:hover,.process-project:focus-within{border-color:color-mix(in srgb, var(--copper) 54%, var(--line));background:color-mix(in srgb, var(--surface-2) 70%, var(--surface))}.supporting-project:hover,.supporting-project:focus-within{transform:translateY(-2px)}.supporting-project .artifact-preview{border:0;border-bottom:1px solid color-mix(in srgb, var(--line) 82%, transparent);border-radius:0;min-height:300px}.supporting-project__content{gap:14px;padding:22px}.supporting-project h3{letter-spacing:-.028em;text-wrap:balance;font-size:clamp(1.55rem,2.2vw,2.05rem);line-height:1.08}.supporting-project .showcase-proof{gap:0}.process-showcase{padding:0 0 clamp(40px,7vw,86px)}.process-project{border-top:1px solid color-mix(in srgb, var(--line) 86%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 86%, transparent);grid-template-columns:minmax(0,.92fr) minmax(300px,.58fr);align-items:center;gap:clamp(24px,5vw,72px);padding:clamp(28px,5vw,56px) 0;display:grid}.process-project__content{gap:16px}.process-project .showcase-proof{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.process-project .showcase-proof div{border-top:1px solid color-mix(in srgb, var(--line) 80%, transparent)}.project-list{gap:0;max-width:980px;padding:0 0 clamp(64px,8vw,104px);display:grid}.project-list-item{border-top:1px solid color-mix(in srgb, var(--line) 76%, transparent);border-radius:0;grid-template-columns:172px minmax(0,1fr);align-items:start;gap:clamp(20px,3vw,32px);padding:30px 0;transition:background .16s,transform .16s;display:grid;position:relative}.project-list-item:last-child{border-bottom:1px solid color-mix(in srgb, var(--line) 76%, transparent)}.project-list-item:hover,.project-list-item:focus-within{background:linear-gradient(90deg, color-mix(in srgb, var(--surface-2) 44%, transparent), transparent 82%), color-mix(in srgb, var(--surface) 18%, transparent);transform:translateY(-1px)}.project-list-item .artifact-preview{aspect-ratio:16/9;border-color:color-mix(in srgb, var(--line) 82%, transparent);border-radius:6px;align-self:start;width:100%;max-width:172px;min-height:0}.artifact-preview.is-thumb .artifact-preview__chrome{grid-template-columns:6px 6px 6px minmax(0,1fr);gap:5px;min-height:20px;padding:0 7px}.artifact-preview.is-thumb .artifact-preview__chrome span{width:6px;height:6px}.artifact-preview.is-thumb .artifact-preview__chrome strong{font-size:.5rem}.artifact-preview.is-thumb .artifact-preview__surface{grid-template-rows:1fr;grid-template-columns:1fr;gap:0;padding:9px}.artifact-preview.is-thumb .artifact-preview__primary{align-content:end;gap:6px;padding:10px}.artifact-preview.is-thumb .artifact-preview__primary span{font-size:.55rem}.artifact-preview.is-thumb .artifact-preview__primary strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.16;display:-webkit-box;overflow:hidden}.artifact-preview.is-thumb .artifact-preview__secondary,.artifact-preview.is-thumb .artifact-preview__footer{display:none}.project-list-item__content{gap:9px;min-width:0;max-width:760px;display:grid}.project-list-item__content>span{color:var(--brass);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700}.project-list-item h2{letter-spacing:-.025em;font-size:clamp(1.38rem,1.8vw,1.72rem);line-height:1.1}.project-list-title{color:var(--text);text-decoration-line:none;transition:color .15s;display:inline}.project-list-title:after{color:var(--copper);content:"↗";margin-left:.34em;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62em;line-height:1;transition:transform .15s,color .15s;display:inline-block;transform:translateY(-.12em)}.project-list-title:hover,.project-list-title:focus-visible{color:var(--brass)}.project-list-title:hover:after,.project-list-title:focus-visible:after{color:var(--brass);transform:translate(2px,-.2em)}.project-list-item p{max-width:62ch;color:var(--text-soft);text-wrap:pretty;font-size:1rem;line-height:1.55}.project-list-proof{color:var(--text-soft);gap:6px;margin:0;padding:0;font-size:.92rem;line-height:1.45;list-style:none;display:grid}.project-list-proof li{grid-template-columns:max-content minmax(0,1fr);gap:8px;max-width:76ch;display:grid}.project-list-proof span{color:var(--copper);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700;line-height:1.45}.project-list-proof span:after{content:""}.project-list-item .mini-tags{margin-top:4px}.project-list-item .mini-tags span{color:color-mix(in srgb, var(--brass) 64%, var(--text-soft));background:color-mix(in srgb, var(--surface-2) 62%, transparent)}.project-list-item .showcase-actions{padding-top:0}.project-card:hover,.project-card:focus-within{border-color:color-mix(in srgb, var(--copper) 54%, var(--line));background:color-mix(in srgb, var(--surface-2) 72%, var(--surface))}.experience-row:hover,.experience-row:focus-within{border-color:color-mix(in srgb, var(--brand-primary) 66%, var(--line));background:color-mix(in srgb, var(--surface-2) 76%, var(--surface))}html.js-ready [data-reveal]{opacity:0;transition:opacity .42s var(--ease-out) var(--delay,0s), transform .42s var(--ease-out) var(--delay,0s);transform:translateY(18px)}html.js-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}html.js-ready .hero-copy[data-reveal].is-visible>*{animation:hero-rise .52s var(--ease-out) both}html.js-ready .hero-copy[data-reveal].is-visible>:first-child{animation-delay:40ms}html.js-ready .hero-copy[data-reveal].is-visible>:nth-child(2){animation-delay:.13s}@keyframes hero-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1180px){:root{--rail-width:clamp(260px, 20vw, 318px);--rail-group-gap:clamp(70px, 12vh, 112px);--rail-footer-offset:clamp(68px, 8vh, 92px);--desktop-content-left-gap:clamp(72px, 7vw, 132px);--desktop-content-right-gap:clamp(64px, 6vw, 132px);--desktop-content-max:1160px}html{scroll-padding-top:32px}.site-header{width:var(--rail-width);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;bottom:0;right:auto}.header-inner{grid-template-rows:auto auto 1fr;grid-template-columns:1fr;align-items:start;width:min(100% - 64px,256px);min-height:100svh;padding:clamp(54px,8vh,78px) 0 clamp(34px,6vh,58px);display:grid;position:relative}.brand{gap:10px}.brand span{font-size:clamp(1.46rem,1.78vw,1.78rem);line-height:1}.brand small{color:var(--muted);font-size:.76rem}.rail-badges{bottom:var(--rail-footer-offset);gap:12px;max-width:100%;display:flex;position:absolute;left:0}.rail-badges .contact-badge{width:42px;min-height:42px;color:var(--text-soft);background:color-mix(in srgb, var(--surface) 34%, transparent);border-color:color-mix(in srgb, var(--line) 72%, transparent);grid-template-columns:1fr;place-items:center;padding:0}.rail-badges .contact-badge:hover,.rail-badges .contact-badge:focus-visible{color:var(--brass);background:color-mix(in srgb, var(--surface-2) 56%, transparent);border-color:color-mix(in srgb, var(--brass) 58%, var(--line));transform:translateY(-1px)}.rail-badges .contact-badge__mark{color:currentColor;background:0 0;border-radius:0;width:auto;height:auto}.rail-badges .contact-badge__mark svg{width:17px;height:17px}.rail-badges .contact-badge__text{display:none}nav{flex-direction:column;align-self:start;gap:10px;margin-top:0;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}nav a{--nav-arrow-color:color-mix(in srgb, var(--muted) 54%, transparent);--nav-arrow-width:30px;align-items:center;gap:12px;width:fit-content;padding:8px 0;display:inline-flex}nav a:before{content:"";background:linear-gradient(var(--nav-arrow-color), var(--nav-arrow-color)) left 50% / calc(100% - 4px) 1px no-repeat;width:54px;height:12px;transform:scaleX(calc(var(--nav-arrow-width) / 54));transform-origin:0;transition:transform .18s var(--ease-out), background .16s ease}nav a:after{top:50%;bottom:auto;right:auto;left:calc(var(--nav-arrow-width) - 8px);border-top:1px solid var(--nav-arrow-color);border-right:1px solid var(--nav-arrow-color);transform-origin:50%;width:7px;height:7px;transition:left .18s var(--ease-out), border-color .16s ease;background:0 0;display:block;transform:translateY(-50%)rotate(45deg)}nav a:hover,nav a:focus-visible,nav a[aria-current=true]{--nav-arrow-color:var(--copper);--nav-arrow-width:54px}nav a:hover:after,nav a:focus-visible:after,nav a[aria-current=true]:after{transform:translateY(-50%)rotate(45deg)}.section-shell{width:min(calc(100% - var(--rail-width) - var(--desktop-content-left-gap) - var(--desktop-content-right-gap)), var(--desktop-content-max));margin-right:0;margin-left:calc(var(--rail-width) + var(--desktop-content-left-gap))}.hero{grid-template-columns:minmax(0,.76fr) minmax(420px,.5fr);gap:clamp(42px,5vw,78px);min-height:100svh;padding:clamp(82px,11vh,124px) 0 clamp(92px,11vh,124px)}.hero-copy{max-width:780px}.hero h1{max-width:780px;font-size:clamp(3.55rem,4.45vw,5.35rem);line-height:.98}h2{font-size:clamp(2.1rem,2.8vw,3rem);line-height:1.08}.hero-notes{align-self:center;max-width:520px;padding-top:clamp(0px,1.5vh,18px)}.hero:before{top:clamp(56px,8vh,92px)}.hero:after{background:linear-gradient(90deg, var(--blueprint), transparent);width:260px;bottom:64px;left:0;right:auto}.snapshot-band{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 54%, transparent), color-mix(in srgb, var(--surface-3) 66%, transparent))}.projects-section:before{left:calc(-1 * (var(--rail-width) + var(--desktop-content-left-gap)))}.projects-section:after{left:calc(-1 * (var(--rail-width) + var(--desktop-content-left-gap)));background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 54%, transparent), color-mix(in srgb, var(--surface-3) 66%, transparent))}}@media (max-width:1179px){.header-inner{padding-right:58px}.hero{grid-template-columns:1fr;min-height:0}.hero-notes{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%}.snapshot-layout{grid-template-columns:1fr;gap:18px}.snapshot-intro{max-width:680px}.snapshot-item div{grid-template-columns:minmax(140px,.34fr) minmax(220px,.66fr);align-items:start}.snapshot-item p{grid-column:2}.experience-list,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading.split-heading{grid-template-columns:1fr}}@media (max-width:760px){html{scroll-padding-top:104px}.site-header{position:sticky}.header-inner{width:min(calc(100% - 32px), var(--max-width));grid-template-columns:1fr auto;gap:8px 14px;min-height:0;padding:8px 0}.brand{align-content:center;min-height:44px}nav{overscroll-behavior-x:contain;border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);scrollbar-width:none;grid-area:2/1/auto/-1;justify-content:center;gap:18px;width:100%;padding-top:8px;font-size:.74rem;overflow-x:auto}nav::-webkit-scrollbar{display:none}nav a{flex:none;justify-content:center;align-items:center;min-width:max-content;min-height:38px;padding:0 2px;display:inline-flex}.rail-badges{display:none}.rail-badges::-webkit-scrollbar{display:none}.rail-badges .contact-badge{flex:none;grid-template-columns:24px auto;min-height:40px;padding:6px 10px 6px 6px}.rail-badges .contact-badge__mark{width:24px;height:24px}.rail-badges .contact-badge__text span{display:none}.contact-badges.mobile-footer-badges{width:min(calc(100% - 32px), var(--max-width));justify-content:center;margin:24px auto 32px;display:flex}.mobile-footer-badges .contact-badge{grid-template-columns:26px auto;min-height:42px;padding:7px 11px 7px 7px}.mobile-footer-badges .contact-badge__mark{width:26px;height:26px}.mobile-footer-badges .contact-badge__text span{display:none}.section-shell{width:min(calc(100% - 32px), var(--max-width))}.hero{gap:24px;padding:24px 0 12px}.hero:before,.hero:after{display:none}h1{font-size:clamp(2.38rem,10vw,3rem);line-height:1}h2{font-size:clamp(2rem,10vw,3.2rem)}.mobile-hero-actions{flex-wrap:wrap;gap:10px 18px;margin-top:22px;display:flex}.mobile-hero-actions a{min-height:44px;color:var(--text-soft);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--copper) 48%, transparent);text-underline-offset:.22em;align-items:center;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.74rem;font-weight:700;display:inline-flex}.mobile-hero-actions a:after{color:var(--copper);content:"->";margin-left:8px}.mobile-hero-actions a:focus-visible{color:var(--text)}.hero-notes{grid-template-columns:1fr;gap:12px}.hero-note{padding-top:12px}.hero-note p{font-size:1rem;line-height:1.48}.hero-note.is-personal{opacity:.82;margin-top:8px}.snapshot-item div{grid-template-columns:1fr;gap:10px}.snapshot-item p{grid-column:auto}.snapshot-item{padding:22px 0}.experience-list,.project-grid,.project-gallery{grid-template-columns:1fr}.experience-row,.project-card{min-height:0;padding:20px}.section-more{justify-content:flex-end}.projects-page{padding-bottom:78px}.projects-page-hero{padding:32px 0 42px}.projects-page-hero .eyebrow{margin-top:24px}.gallery-card{grid-template-columns:1fr;min-height:0}.gallery-card__visual{border-right:0;border-bottom:1px solid color-mix(in srgb, var(--line) 82%, transparent);min-height:190px}.gallery-card__proof{grid-template-columns:1fr}.gallery-card__proof div{border-right:0;border-bottom:1px solid color-mix(in srgb, var(--line) 78%, transparent)}.gallery-card__proof div:last-child{border-bottom:0}.experience-section,.projects-section{padding:78px 0}.snapshot-band{padding:64px 0}}@media (max-width:540px){p{font-size:1rem}nav a{padding:6px 0}.gallery-card__visual.is-booking{min-height:312px;padding:16px}.gallery-card__visual.is-workflow,.gallery-card__visual.is-landing,.gallery-card__visual.is-finance{min-height:328px;padding:16px}.booking-visual{grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:0}.booking-visual__panel--admin{align-self:stretch}.booking-visual__status{flex-direction:column;align-items:flex-start}.booking-visual__status strong{text-align:left}.booking-visual__integration{justify-content:flex-start}.workflow-visual{grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:0}.workflow-visual__panel--loop{align-self:stretch}.workflow-visual__gate{flex-direction:column;align-items:flex-start}.workflow-visual__gate strong{text-align:left}.landing-visual{grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:0}.landing-visual__sections{align-self:stretch}.landing-visual__handoff{flex-direction:column;align-items:flex-start}.landing-visual__handoff strong{text-align:left}.finance-visual{grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:0}.finance-visual__panel--catalogue{align-self:stretch}.finance-visual__handoff{flex-direction:column;align-items:flex-start}.finance-visual__handoff div{justify-content:flex-start}}@media (max-width:980px){.projects-page-hero__grid,.featured-project,.showcase-section-heading,.process-project{grid-template-columns:1fr}.featured-project{min-height:0}.featured-project__content{border-top:1px solid color-mix(in srgb, var(--line) 84%, transparent);border-left:0}.supporting-project-grid{grid-template-columns:1fr}.process-project .showcase-proof{grid-template-columns:1fr;gap:0}.project-list-item{grid-template-columns:152px minmax(0,1fr)}}@media (max-width:760px){.projects-page{padding-bottom:78px}.projects-page-hero{padding:30px 0 24px}.projects-page-hero__grid,.featured-project__content,.supporting-project__content,.process-project__content{gap:14px}.projects-page-hero h1{letter-spacing:-.026em;font-size:clamp(1.95rem,8.5vw,2.55rem);line-height:1.04}.projects-page-hero__intro{font-size:1rem;line-height:1.55}.featured-showcase,.project-gallery{padding-bottom:76px}.featured-project__media{padding:14px}.featured-project__content,.supporting-project__content{padding:20px}.featured-project h2,.process-project h2,.showcase-section-heading h2{font-size:clamp(2rem,9.2vw,3rem)}.artifact-preview,.supporting-project .artifact-preview{min-height:286px}.artifact-preview__surface{grid-template-rows:auto auto auto;grid-template-columns:1fr}.artifact-preview__secondary{align-self:stretch}.artifact-preview__footer{flex-direction:column;align-items:flex-start}.artifact-preview__footer strong{text-align:left}.showcase-section-heading{margin-bottom:18px}.showcase-actions{gap:8px 16px;padding-top:0}.showcase-link{min-height:42px}.project-list{gap:0;padding-bottom:76px}.project-list-item{grid-template-columns:1fr;gap:14px;padding:22px 0}.project-list-item .artifact-preview{width:min(100%,300px);max-width:300px}.project-list-item h2{font-size:clamp(1.45rem,7vw,1.9rem)}.project-list-proof{gap:7px;display:grid}.project-list-proof li{grid-template-columns:1fr;gap:2px}}@media (max-width:540px){.artifact-preview__chrome strong{font-size:.6rem}.artifact-preview__primary,.artifact-preview__secondary,.artifact-preview__footer{padding:13px}.artifact-preview__secondary div{grid-template-columns:1fr}.supporting-project p,.featured-project p,.process-project p{font-size:1rem;line-height:1.55}.showcase-proof div{padding:11px 0}.project-list-item{padding:20px 0}.project-list-item .mini-tags{gap:7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.js-ready [data-reveal],html.js-ready [data-reveal].is-visible{opacity:1;transition:none;transform:none}.ambient-field{display:none}}
