:root{--color-bg:#fff;--color-text:#111;--color-muted:#666;--color-border:#e2e2e2;--color-surface:#f2f2f2;--font-body:"Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-headline:"Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--content-max:1100px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-weight:300;line-height:1.5}a{color:inherit}.hero__media{position:relative}.hero__image{object-fit:cover;width:100%;height:auto;max-height:80vh;display:block}.hero__fireflies{pointer-events:none;position:absolute;inset:0}.firefly{width:6px;height:6px;animation:firefly-drift var(--firefly-duration) ease-in-out infinite, firefly-glow calc(var(--firefly-duration) * .55) ease-in-out infinite;animation-delay:var(--firefly-delay);background:radial-gradient(circle,#ffe296f2 0%,#ffc86e8c 45%,#ffc86e00 75%);border-radius:50%;position:absolute}.hero__fireflies--desktop .firefly{background:#fff3d6;width:2px;height:2px;box-shadow:0 0 3px 1px #ffe096e6,0 0 7px 2px #ffbe5a73}.hero__fireflies--desktop .firefly--bright{width:3px;height:3px;box-shadow:0 0 5px 1.5px #ffe8aa,0 0 12px 4px #ffbe5a8c}@keyframes firefly-drift{0%{transform:translate(0)}25%{transform:translate(10px,-14px)}50%{transform:translate(-6px,-22px)}75%{transform:translate(-14px,-6px)}to{transform:translate(0)}}@keyframes firefly-glow{0%,to{opacity:.3}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.firefly{opacity:.7;animation:none}}@property --spot-radius{syntax:"<length>";inherits:false;initial-value:0}@property --spot-x{syntax:"<percentage>";inherits:false;initial-value:50%}@property --spot-y{syntax:"<percentage>";inherits:false;initial-value:30%}@property --glow-radius{syntax:"<length>";inherits:true;initial-value:0}.hero__glow-layer{pointer-events:none;position:absolute;inset:0}.hero__glow-hotspot{pointer-events:none;--glow-x:50%;--glow-y:50%;--glow-radius:0px;position:absolute;inset:0 0 24%}.hero__glow-hotspot:after{content:"";background:radial-gradient(circle var(--glow-radius) at var(--glow-x) var(--glow-y), #ffd68cbf 0%, #ffbe6459 55%, transparent 100%);mix-blend-mode:screen;transition:--glow-radius 60ms ease-out;position:absolute;inset:0}.hero__glow-hotspot--active:after{transition:--glow-radius .35s}@media (hover:hover) and (pointer:fine){.hero__glow-hotspot{pointer-events:auto}}.hero__soil-veil{--spot-x:50%;--spot-y:30%;--spot-radius:80px;-webkit-mask-image:radial-gradient(circle var(--spot-radius) at var(--spot-x) var(--spot-y), transparent 0%, transparent 60%, black 100%);-webkit-mask-image:radial-gradient(circle var(--spot-radius) at var(--spot-x) var(--spot-y), transparent 0%, transparent 60%, black 100%);mask-image:radial-gradient(circle var(--spot-radius) at var(--spot-x) var(--spot-y), transparent 0%, transparent 60%, black 100%);background:linear-gradient(#04080600 0%,#040806d9 12%,#040806fc 100%);transition:--spot-radius 60ms ease-out;position:absolute;inset:76% 0 0}@media (width<=640px){.hero__soil-veil{--spot-radius:50px}}.hero__soil-veil--active{transition:--spot-radius .35s}.hero__headline{max-width:var(--content-max);font-family:var(--font-headline);margin:0 auto 1rem;padding:2.5rem 1.5rem 0;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:500}@media (width<=640px){.hero__headline{font-size:clamp(1.85rem,8vw,2.5rem);line-height:1.15}}.hero__copy{max-width:900px;margin:0 auto;padding:0 1.5rem}@media (width>=640px){.hero__headline{white-space:nowrap;text-align:center}.hero__copy{text-align:center}}.hero__body p{color:var(--color-muted);font-size:1.05rem}.hero__body strong{color:var(--color-text);font-weight:500}.hero__work{margin-top:1rem}.hero__work-list{margin:0;padding:0;list-style:none}.hero__work-list li{margin-bottom:.4rem;font-size:.95rem}.hero__work-org{color:var(--color-text);font-weight:500}.hero__work-years{color:var(--color-muted)}.hero__socials{justify-content:center;gap:1.25rem;margin-top:1rem;display:flex}.hero__social-link{width:40px;height:40px;color:var(--color-muted);justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.hero__social-link svg{width:22px;height:22px}.hero__social-link:hover{color:var(--color-text)}.project-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:160px;grid-auto-flow:dense;gap:1.25rem;margin:1rem auto 4rem;padding:0 1.5rem;display:grid;position:relative}@media (width>=1000px){.project-grid{grid-auto-rows:210px}}@media (width>=1440px){.project-grid{grid-auto-rows:250px}}@media (width<=640px){.project-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}}.project-card{height:100%;display:block}.project-card--tall{grid-row:span 2}.project-card--wide{grid-column:span 2}.project-card__thumb{background:linear-gradient(135deg,#eef1f5 0%,#dbe2e9 100%);border-radius:18px;height:100%;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000f}.project-card:nth-child(4n+2) .project-card__thumb{background:linear-gradient(135deg,#e6eaf0 0%,#d0d9e2 100%)}.project-card:nth-child(4n+3) .project-card__thumb{background:linear-gradient(135deg,#f1f3f6 0%,#e2e8ed 100%)}.project-card:nth-child(4n+4) .project-card__thumb{background:linear-gradient(135deg,#e2e7ed 0%,#c9d3dd 100%)}.project-card:hover .project-card__thumb{transform:scale(1.015);box-shadow:0 10px 28px #0000001a}.project-card__thumb:after{content:"Coming soon";color:var(--color-muted);opacity:0;background:#fff9;justify-content:center;align-items:center;font-size:1.05rem;font-weight:300;transition:opacity .3s;display:flex;position:absolute;inset:0}.project-card:hover .project-card__thumb:after{opacity:1}.project-page{max-width:var(--content-max);margin:0 auto;padding:1.5rem}.back-link{color:var(--color-muted);margin-bottom:1.5rem;text-decoration:none;display:inline-block}.project-page__title{margin:0 0 1.5rem}.project-page__gallery{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.project-page__image{aspect-ratio:16/10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px}.project-page__blurb p{max-width:65ch;color:var(--color-muted)}
