:root{color-scheme:light;--bg:#f7f7f1;--surface:#eeeee6;--ink:#1b2018;--mute:#50594d;--line:#cbcec2;--accent:#24482c;--button:#233c28;--button-text:#fff;--art:#14261b;--lime:#d7ff73;font-family:Geist,Inter,system-ui,sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#111610;--surface:#1a2119;--ink:#edf0e6;--mute:#b4bead;--line:#394437;--accent:#c8ef88;--button:#d7ff73;--button-text:#17200f}
@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#111610;--surface:#1a2119;--ink:#edf0e6;--mute:#b4bead;--line:#394437;--accent:#c8ef88;--button:#d7ff73;--button-text:#17200f}}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}
a{color:inherit;text-underline-offset:.2em}
a:hover{color:var(--accent)}
button,input,textarea,select{font:inherit;color:inherit}
button,summary,select{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}
.top{border-bottom:1px solid var(--line);position:relative;z-index:3;background:var(--bg)}
.bar,.controls{display:flex;align-items:center;gap:1rem}
.bar{min-height:74px;justify-content:space-between}
.brand{font-size:1.55rem;font-weight:760;letter-spacing:-.09em;text-decoration:none}
#nav{display:flex;align-items:center;gap:clamp(.75rem,2vw,2.25rem);font-size:.94rem}
#nav>a,#nav summary,.controls a{text-decoration:none;font-weight:580}
#nav details{position:relative}
#nav summary{padding:.5rem 0}
#nav details div{position:absolute;min-width:15rem;display:grid;gap:.25rem;top:100%;left:-1rem;background:var(--bg);border:1px solid var(--line);padding:.5rem;box-shadow:0 16px 32px #0002}
#nav details a{padding:.45rem .6rem;text-decoration:none}
#nav details a:hover,#nav details a[aria-current]{background:var(--surface)}
.controls a,.controls button,.menu{min-width:44px;min-height:44px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:4px}
.menu{display:none}
.skip{position:absolute;left:1rem;top:.5rem;transform:translateY(-160%);z-index:10;background:var(--bg);padding:.6rem}
.skip:focus{transform:none}
main{min-height:55vh;padding-bottom:clamp(3rem,7vw,6rem)}
.hero{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,5vw,5rem);padding:clamp(3rem,7vw,7rem) 0}
.intro{padding:clamp(3rem,7vw,7rem) 0 clamp(2rem,5vw,4rem)}
.hero .intro,.contact .intro{padding:0}
.eyebrow{font-size:.76rem;font-weight:720;letter-spacing:.11em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem}
h1,h2,h3,p{overflow-wrap:anywhere}
h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.045em}
h1{font-size:clamp(2.6rem,6.1vw,6.2rem);max-width:15ch;font-weight:660;white-space:pre-line}
h2{font-size:clamp(1.65rem,3vw,3.15rem);font-weight:630}
h3{font-size:clamp(1.15rem,2vw,1.55rem)}
.lead{font-size:clamp(1rem,1.8vw,1.32rem);max-width:48ch;color:var(--mute);margin:1.4rem 0 0}
.actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.8rem}
.button{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1.15rem;min-height:46px;background:var(--button);color:var(--button-text);border:1px solid var(--button);border-radius:4px;text-decoration:none;font-weight:680;transition:transform .18s ease}
.button:hover{color:var(--button-text);transform:translateY(-2px)}
.button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}
.hero-art{position:relative;overflow:hidden;aspect-ratio:1.06;background:var(--art);isolation:isolate;border-radius:5px}
.art-grid{position:absolute;inset:0;background-image:linear-gradient(#a5dd8b23 1px,transparent 1px),linear-gradient(90deg,#a5dd8b23 1px,transparent 1px);background-size:24px 24px;mask-image:radial-gradient(ellipse,#000 25%,transparent 85%)}
.orb{position:absolute;left:31%;top:30%;width:38%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle at 32% 30%,#d7ff73b8 0 1px,transparent 1px 4px),radial-gradient(circle at 30% 20%,#a6e15b,#244d33 65%,#14261b);box-shadow:0 0 5rem #a6e15b48}
.orbit{position:absolute;left:13%;top:34%;width:74%;height:32%;border:1px solid #bcf88780;border-radius:50%;transform:rotate(-32deg)}
.orbit.two{transform:rotate(26deg)}
.orbit.three{transform:rotate(83deg)}
.art-point{position:absolute;left:76%;top:36%;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime);animation:pulse 4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.band{border-top:1px solid var(--line);padding:clamp(1.8rem,5vw,4rem) 0}
.section-head{display:flex;gap:1rem;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.8rem,2.5vw,2rem)}
.featured{grid-template-columns:repeat(3,minmax(0,1fr))}
.project{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--surface)}
.project a{display:block;text-decoration:none}
.project a:focus-visible{outline-offset:-4px}
.shot{overflow:hidden;background:var(--surface);aspect-ratio:1.6}
.shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.project a:hover img{transform:scale(1.035)}
.project-info{padding:clamp(.85rem,2vw,1.5rem)}
.project-info p{color:var(--mute);margin:.65rem 0 0}
.project-info small{color:var(--accent);display:block;margin-bottom:.4rem}
.project-info h3 span{float:right}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,7vw,7rem)}
.rows,.checks,.process{padding:0;margin:0;list-style:none}
.band>h2{margin-bottom:1rem}
.rows li,.checks li,.process li{border-bottom:1px solid var(--line);padding:1rem 0}
.rows a,.checks li{font-weight:650}
.rows p,.process p,.facts p{margin:.35rem 0 0;color:var(--mute)}
.checks{margin-top:1rem}
.facts{background:var(--surface);padding:clamp(1rem,3vw,2rem)}
.facts h2{font-size:1.45rem}
.facts a{margin-top:1rem;display:inline-flex}
.case-image{margin-bottom:clamp(2rem,5vw,4rem);border:1px solid var(--line);border-radius:5px}
.crumb{padding-top:1.5rem;color:var(--mute)}
.crumb+.intro{padding-top:2rem}
.filters{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.filters label{flex:1;min-width:min(100%,13rem)}
.filters label+label{flex:0 1 16rem}
label{display:grid;gap:.4rem;font-weight:630}
input,textarea,select{width:100%;min-height:44px;background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:.55rem .7rem}
textarea{resize:vertical}
.contact{padding:clamp(3rem,7vw,7rem) 0}
form{display:grid;gap:1rem;padding:clamp(1rem,3vw,2rem);border:1px solid var(--line);background:var(--surface)}
form button{justify-self:start}
.notice,.form-note{margin:0;color:var(--mute)}
.notice{padding:.7rem;border:1px solid var(--accent)}
.tech-list{margin:0}
.tech-list div{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.tech-list dt{font-weight:720}
.tech-list dd{margin:0}
footer{border-top:1px solid var(--line);background:var(--surface)}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:1.5rem;padding-block:3rem}
.foot h2{font-size:1rem;letter-spacing:0;margin:0 0 .6rem}
.foot p{color:var(--mute)}
.foot div:not(:first-child) a{display:block;text-decoration:none;padding:.2rem 0}
.foot a:hover{text-decoration:underline}
@media(max-width:940px){
.wrap{width:calc(100% - 48px)}
.bar{flex-wrap:wrap}
.controls{margin-left:auto;gap:.45rem}
.js .menu{display:grid;margin-left:auto;padding:0 .65rem}
.js .controls{margin-left:0}
#nav{order:4;width:100%;display:grid;gap:.2rem;padding:0 0 .8rem}
.js .menu[aria-expanded=false]+#nav{display:none}
#nav details div{position:static;min-width:0;box-shadow:none}
#nav>a{padding:.5rem 0}
}
@media(max-width:680px){
.wrap{width:calc(100% - 32px)}
.bar{min-height:65px;gap:.45rem}
.hero,.split,.project-grid,.featured{grid-template-columns:minmax(0,1fr)}
.hero-art{aspect-ratio:1.4}
.foot{grid-template-columns:repeat(2,minmax(0,1fr))}
.foot>div:first-child{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.benefit{font-size:1.55rem;margin-top:2rem}
