:root{--paper:#12140d;--paper-raise:#1a1d12;--ink:#eceee2;--ink-soft:#a6ac98;--pine:#3fa871;--pine-deep:#0f3b27;--brass:#cba05a;--line:#2c3021;--card:#181b10}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}a:focus-visible,button:focus-visible,.btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:19px;line-height:1.55}h1,h2,h3{text-transform:uppercase;text-wrap:balance;letter-spacing:.01em;margin:0;font-family:Big Shoulders Display,Impact,Arial Narrow,sans-serif;line-height:.95}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}a{color:inherit}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--pine);font-family:IBM Plex Mono,monospace;font-size:14.5px}section[id],footer[id]{scroll-margin-top:84px}header.site{z-index:40;backdrop-filter:blur(6px);background:#12140de6;border-bottom:1px solid #0000;transition:border-color .25s,background .25s;position:sticky;top:0}header.site.scrolled{border-bottom-color:var(--line)}.bar{align-items:center;gap:24px;padding:16px 28px;display:flex}.brand img{height:34px;display:block}nav.primary{gap:26px;margin-left:auto;display:flex}nav.primary a{color:var(--ink-soft);padding-bottom:4px;font-size:17px;text-decoration:none;transition:color .2s;position:relative}nav.primary a:hover,nav.primary a:focus-visible{color:var(--ink)}nav.primary a:after{content:"";background:var(--pine);width:0;height:1px;transition:width .25s;position:absolute;bottom:0;left:0}nav.primary a:hover:after{width:100%}.btn{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:11px 20px;font-size:17px;font-weight:600;text-decoration:none;transition:background .2s,transform .15s,color .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-solid{background:var(--pine);color:#fff}.btn-solid:hover{background:var(--pine-deep)}.btn-line{border-color:var(--ink);color:var(--ink)}.btn-line:hover{background:var(--ink);color:var(--paper)}.nav-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;padding:6px;display:none}.nav-toggle-bar{background:var(--ink);width:22px;height:2px;display:block}.hero{border-bottom:1px solid var(--line);padding:76px 0 64px;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:56px;display:grid}.hero h1{font-size:clamp(48px,6.2vw,82px);font-weight:800}.hero h1 em{color:var(--pine);font-style:normal}.hero p.lede{max-width:52ch;color:var(--ink-soft);margin:20px 0 30px;font-size:21.5px}.hero-ctas{flex-wrap:wrap;gap:14px;display:flex}.scope{border:1px solid var(--line);background:var(--card);border-radius:6px;padding:18px 20px 8px;position:relative}.scope canvas{width:100%;height:180px;display:block}.scope-caption{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);border-top:1px solid var(--line);justify-content:space-between;margin-top:4px;padding-top:10px;padding-bottom:12px;font-family:IBM Plex Mono,monospace;font-size:13px;display:flex}.scope-caption b{color:var(--pine);font-weight:600}.head{max-width:640px;margin:0 0 40px}.head h2{margin-top:10px;font-size:clamp(34px,3.9vw,50px)}.head p{color:var(--ink-soft);margin-top:14px}section{border-bottom:1px solid var(--line);padding:80px 0}.about-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:48px;display:grid}.about-grid figure{cursor:zoom-in;background:var(--paper-raise);border-radius:6px;margin:0;position:relative;overflow:hidden}.about-grid figure img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,.8,.24,1);display:block}.about-grid figure:hover img,.about-grid figure:focus-within img{transform:scale(1.06)}.about-grid figcaption{color:var(--ink-soft);margin-top:10px;font-family:IBM Plex Mono,monospace;font-size:14px}.cat-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.cat-card{background:var(--card);flex-direction:column;gap:14px;padding:22px;display:flex}.cat-media{aspect-ratio:1;background:var(--paper-raise);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.cat-media img{object-fit:contain;width:100%;height:100%;transition:transform .45s cubic-bezier(.16,.8,.24,1);display:block}.cat-media:hover img,.cat-media:focus-within img{transform:scale(1.08)}.cat-media:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(#0000 45%,#0a0c078c);transition:opacity .3s;position:absolute;inset:0}.cat-media:hover:after,.cat-media:focus-within:after{opacity:1}.zoom-hint{opacity:0;pointer-events:none;background:#12140dbf;border:1px solid #eceee240;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:12px;right:12px;transform:translateY(6px)scale(.9)}.cat-media:hover .zoom-hint,.cat-media:focus-within .zoom-hint{opacity:1;transform:translateY(0)scale(1)}.zoom-hint svg{width:16px;height:16px;stroke:var(--ink)}.cat-card{transition:transform .25s,box-shadow .25s}.cat-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px -18px #0000008c}.gallery-nav{color:var(--ink);cursor:pointer;opacity:.85;z-index:2;background:#12140d99;border:1px solid #eceee240;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:opacity .2s,background .2s,transform .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:hover{opacity:1;background:var(--pine);transform:translateY(-50%)scale(1.06)}.gallery-nav.prev{left:12px}.gallery-nav.next{right:12px}.gallery-dots{justify-content:center;gap:7px;margin-top:14px;display:flex}.gallery-dot{background:var(--line);cursor:pointer;border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.gallery-dot:hover{background:var(--ink-soft)}.gallery-dot.active{background:var(--pine);transform:scale(1.3)}.cat-name{text-transform:uppercase;font-family:Big Shoulders Display;font-size:24px;font-weight:700;line-height:1.05}.cat-dim{color:var(--pine);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:15px}.cat-price{color:var(--brass);margin-top:-6px;font-family:IBM Plex Mono,monospace;font-size:15.5px}.cat-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;display:flex}.cat-foot a{text-transform:uppercase;letter-spacing:.05em;color:var(--ink);font-size:14.5px;font-weight:600;text-decoration:none;transition:color .2s}.cat-foot a:hover{color:var(--pine)}.cat-cta{text-align:center;margin-top:36px}.proj-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.proj-card{aspect-ratio:4/3;background:var(--paper-raise);cursor:zoom-in;position:relative;overflow:hidden}.proj-card img{object-fit:cover;filter:saturate(.92);width:100%;height:100%;transition:transform .5s cubic-bezier(.16,.8,.24,1),filter .4s;display:block}.proj-card:hover img,.proj-card:focus-within img{filter:saturate(1.05);transform:scale(1.08)}.proj-tag{background:linear-gradient(#0000,#0a0c07d9);padding:14px 16px;position:absolute;bottom:0;left:0;right:0}.proj-tag .city{letter-spacing:.08em;text-transform:uppercase;color:#b9e6c7;font-family:IBM Plex Mono,monospace;font-size:12.5px}.proj-tag .name{text-transform:uppercase;color:#efefe4;font-family:Big Shoulders Display;font-size:21.5px;font-weight:700;line-height:1.1}.video-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.video-card{background:var(--card);border:1px solid var(--line);border-radius:6px;transition:transform .25s,box-shadow .25s;overflow:hidden}.video-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px -18px #0000008c}.testi-media{aspect-ratio:9/16;background:#000}.testi-media video{object-fit:cover;width:100%;height:100%;display:block}.video-info{padding:14px 16px}.video-info .name{font-size:17.5px;font-weight:600}.video-info .role{color:var(--ink-soft);margin-top:2px;font-size:14.5px}.blog-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.blog-empty{color:var(--ink-soft);font-size:17px}.blog-card{background:var(--card);border:1px solid var(--line);color:inherit;border-radius:6px;flex-direction:column;gap:10px;padding:20px;text-decoration:none;transition:transform .25s,border-color .25s;display:flex}.blog-card:hover{border-color:var(--pine);transform:translateY(-4px)}.blog-card .date{color:var(--pine);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:13px}.blog-card h3{text-transform:none;font-family:IBM Plex Sans,sans-serif;font-size:21.5px;font-weight:700}.blog-card p{color:var(--ink-soft);margin:0;font-size:16px}.cta-final{background:var(--pine-deep);text-align:center;border-bottom:none}.cta-final p{color:#b9d4c1;margin:16px 0 30px}.cta-final .btn-solid{color:var(--pine-deep);background:#fff}.cta-final .btn-solid:hover{background:#e7ecde}footer.site{padding:64px 0 0}.foot-grid{grid-template-columns:1.3fr 1fr 1fr;gap:40px;display:grid}.foot-grid h4{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 14px;font-family:IBM Plex Mono,monospace;font-size:14.5px}.foot-grid ul{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.foot-grid a{color:var(--ink-soft);text-decoration:none;transition:color .2s}.foot-grid a:hover{color:var(--pine)}.foot-bottom{border-top:1px solid var(--line);justify-content:space-between;margin-top:44px;padding:20px 0;font-family:IBM Plex Mono,monospace;font-size:14px;display:flex}.lightbox{z-index:100;opacity:0;visibility:hidden;background:#0a0c07eb;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.lightbox.open{opacity:1;visibility:visible}.lightbox-inner{width:100%;max-width:min(90vw,1100px);max-height:86vh;position:relative}.lightbox-inner img{object-fit:contain;border-radius:4px;width:100%;height:86vh;display:block}.lightbox-close,.lightbox-nav{color:var(--ink);cursor:pointer;background:#12140dbf;border:1px solid #eceee240;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;transition:background .2s,transform .15s;display:flex;position:absolute}.lightbox-close:hover,.lightbox-nav:hover{background:var(--pine);transform:scale(1.06)}.lightbox-close{top:-18px;right:-18px}.lightbox-nav.prev{top:50%;left:-60px;transform:translateY(-50%)}.lightbox-nav.next{top:50%;right:-60px;transform:translateY(-50%)}.lightbox-caption{text-align:center;color:var(--ink-soft);margin-top:12px;font-family:IBM Plex Mono,monospace;font-size:15.5px}@media (width<=720px){.lightbox-nav.prev{left:6px}.lightbox-nav.next{right:6px}.lightbox-close{top:10px;right:10px}}@media (width<=880px){.hero-grid,.about-grid{grid-template-columns:1fr}.cat-grid,.proj-grid,.video-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1fr;gap:28px}nav.primary{display:none}.nav-toggle{display:flex}nav.primary.open{background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;padding:16px 28px 24px;display:flex;position:absolute;top:100%;left:0;right:0}}@media (width<=560px){.cat-grid,.proj-grid,.video-grid,.blog-grid{grid-template-columns:1fr}}.reveal,.reveal-item{transition:opacity .6s cubic-bezier(.16,.8,.24,1),transform .6s cubic-bezier(.16,.8,.24,1)}html.js-anim .reveal,html.js-anim .reveal-item{opacity:0;transform:translateY(16px)}html.js-anim .reveal.in,html.js-anim .reveal-item.in{opacity:1;transform:translateY(0)}
