@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--background:#fafafa;--foreground:#18181b;--card:#fff;--border:#e4e4e7;--secondary:#f4f4f5;--quiet:#71717a;--accent:#e96035;color-scheme:light}
:root[data-theme=dark]{--background:#09090b;--foreground:#fafafa;--card:#111114;--border:#27272a;--secondary:#1c1c20;--quiet:#a1a1aa;--accent:#ff8359;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--background:#09090b;--foreground:#fafafa;--card:#111114;--border:#27272a;--secondary:#1c1c20;--quiet:#a1a1aa;--accent:#ff8359;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;background:var(--background);color:var(--foreground);font:400 15px/1.6 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}svg{width:19px;height:19px;flex-shrink:0}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.055em;font-weight:600}p{color:var(--quiet);line-height:1.8}.accent{color:var(--accent)}.subtle{color:var(--quiet)}.p-shell{width:min(1240px,100%);margin:auto;padding-inline:40px}.p-nav{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:30;height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:color-mix(in srgb,var(--background) 90%,transparent);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}.p-brand{display:flex;align-items:center;gap:14px}.p-brand>span{font-size:32px;font-weight:700;letter-spacing:-3px}.p-brand small{font-size:13px;font-weight:600}.p-nav nav{display:flex;align-items:center;gap:26px;font-size:12px}.p-icon{width:37px;height:37px;border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,background .2s}.p-icon:hover{transform:translateY(-3px);background:var(--secondary)}.p-eyebrow{font-size:10px;font-weight:600;letter-spacing:.13em;color:var(--quiet);display:flex;align-items:center;gap:9px}.p-button{border:1px solid var(--border);background:var(--card);border-radius:9px;padding:11px 17px;display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:500;transition:transform .2s,box-shadow .2s}.p-button:hover{transform:translateY(-3px);box-shadow:0 6px 16px #00000012}.p-button.primary{color:var(--background);background:var(--foreground);border-color:var(--foreground)}.p-tags{display:flex;gap:7px;flex-wrap:wrap}.p-tags span,.p-badge{border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-size:10px;color:var(--quiet);background:var(--card);white-space:nowrap}.p-badge{display:inline-flex;align-items:center;gap:8px}.p-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--border);padding:30px 0;margin-top:70px;font-size:11px;color:var(--quiet)}.p-footer>div{display:flex;gap:8px}
.stack-panel{position:relative;isolation:isolate;background:var(--background)}.stack-surface{min-height:100svh;background:var(--background);position:relative;transform-origin:50% 0;overflow:clip}.stack-surface::after{content:'';position:absolute;inset:0;pointer-events:none;background:#000;opacity:var(--stack-shade,0)}.stack-panel:nth-child(2) .stack-surface{background:var(--card)}.stack-enabled .stack-panel{position:sticky;top:var(--stack-top,0px)}.stack-enabled .stack-surface{transform:scale(var(--stack-scale,1));border-radius:var(--stack-radius,0px);box-shadow:0 -20px 65px #00000018}.stack-enabled .stack-panel{background:transparent}
.b-hero{padding-top:135px;padding-bottom:55px;position:relative;overflow:hidden;min-height:100svh;display:flex;flex-direction:column;justify-content:center}.b-hero>.p-eyebrow{justify-content:space-between}.b-hero h1{font-size:clamp(64px,8.8vw,120px);line-height:.99;letter-spacing:-.07em;margin:32px 0}.b-outline{color:transparent;-webkit-text-stroke:1.5px var(--foreground)}.b-hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--accent);letter-spacing:-.065em}.b-hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px}.b-hero-bottom p{max-width:380px;font-size:14px;margin:0}.b-work{padding-top:125px;padding-bottom:55px}.b-section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.14em;color:var(--quiet);margin-bottom:28px}.b-photo{height:clamp(270px,43svh,480px);overflow:hidden;position:relative;border-radius:8px}.b-photo img{height:100%;width:100%;object-fit:cover;transition:transform .8s}.b-feature:hover img{transform:scale(1.035)}.b-open{position:absolute;right:24px;bottom:24px;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--background);color:var(--foreground)}.b-open svg{width:27px;height:27px}.b-project-copy{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:28px 0 0}.b-project-copy h2{font-size:46px;line-height:1.1;margin:0}.b-project-copy>div{max-width:380px;justify-self:end}.b-project-copy p{font-size:13px;margin-top:15px}.b-about{padding-top:150px;min-height:calc(100svh - 150px)}.b-about h2{font-size:clamp(30px,4.3vw,56px);line-height:1.2;margin:30px 0}.b-about>div{display:flex;justify-content:space-between;gap:40px;align-items:center}.b-about p{max-width:540px;font-size:14px}

@media(max-width:900px){.p-nav nav{gap:12px}.p-nav nav>a:not(.p-icon){display:none}.b-hero h1{font-size:80px}}
@media(max-width:600px){.p-shell{padding-inline:22px}.p-nav{height:76px}.p-brand small{display:none}.p-nav nav{gap:8px}.b-hero{padding-top:115px;min-height:100svh}.b-hero>.p-eyebrow>span{display:none}.b-hero h1{font-size:clamp(50px,13vw,70px);margin:30px 0}.b-hero-bottom,.b-about>div{display:block}.b-hero-bottom .p-button{margin-top:24px}.b-work{padding-top:110px;padding-bottom:40px}.b-photo{height:270px}.b-project-copy{grid-template-columns:1fr;gap:22px}.b-project-copy>div{justify-self:start}.b-project-copy h2{font-size:35px}.b-about{padding-top:115px;min-height:auto}.p-footer>span:nth-child(2){display:none}.p-footer{margin-top:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.stack-enabled .stack-panel{position:relative;top:0}.stack-enabled .stack-surface{transform:none;border-radius:0}.stack-surface::after{display:none}}

/* A responsive field of connections sits behind the hero content. */
.b-network{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;mask-image:linear-gradient(to bottom,transparent,black 16%,black 80%,transparent)}
.b-hero> :not(.b-network){position:relative;z-index:1}
.b-hero>.scroll-cue{position:absolute}

.scroll-cue{position:absolute;bottom:27px;left:40px;display:inline-flex;align-items:center;gap:14px;color:var(--quiet);font-size:12px;font-weight:600;letter-spacing:.14em;transition:color .2s}
.scroll-cue:hover{color:var(--accent)}
.scroll-cue-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%}
.scroll-cue svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;animation:scroll-nudge 1.8s ease-in-out infinite}
@keyframes scroll-nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
@media(max-width:600px){.scroll-cue{left:22px;bottom:20px}.b-hero{padding-bottom:90px}}
