:root{--bg:#0D1B19;--fg:#E8ECE8;--muted:#9FB0AA;--line:#22342F;--panel:#132522;--ph1:#142623;--ph2:#172B27;--ph3:#11221F;--accent:#B9C79A;--mono:'IBM Plex Mono',ui-monospace,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'Archivo',system-ui,sans-serif;font-size:17px;line-height:1.6}
a{color:inherit;text-decoration:none}a:hover{opacity:.75}
img{max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding-inline:clamp(16px,4vw,48px)}
header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0;position:relative;z-index:5}
.brand{font-size:20px;font-weight:600;letter-spacing:-.01em}
nav{display:flex;flex-wrap:wrap;gap:32px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
nav>a,.dd>a{display:inline-flex;align-items:center;gap:6px;padding:12px 0}
.dd{position:relative}
.dd-menu{display:none;position:absolute;top:100%;left:-16px;padding-top:4px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu div{min-width:200px;display:flex;flex-direction:column;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;font-family:'Archivo',system-ui,sans-serif;font-size:15px;letter-spacing:0;text-transform:none}
.dd-menu a{padding:12px 14px;border-radius:4px}
.dd-menu a:hover{background:var(--ph2);opacity:1}
.hero{padding:72px 0 56px;display:flex;flex-direction:column;gap:28px}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
h1{margin:0;font-size:clamp(44px,7vw,104px);line-height:1;font-weight:300;letter-spacing:-.03em}
.lede{margin:0;max-width:52ch;font-size:19px;color:var(--muted)}
.textlink{display:inline-flex;align-items:center;gap:8px;min-height:48px;font-weight:500}
.ph{width:100%;display:block;border-radius:4px;overflow:hidden;background:var(--ph1)}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
section.block{padding:120px 0 0}
.sec-head{border-top:1px solid var(--line);padding-top:24px;margin-bottom:40px;display:flex;flex-direction:column;gap:8px}
h2{margin:0;font-size:clamp(32px,4vw,48px);font-weight:400;letter-spacing:-.02em}
.sec-sub{margin:0;color:var(--muted);max-width:56ch}
.galleries{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px 24px}
.card{display:flex;flex-direction:column;gap:16px;scroll-margin-top:24px}
.card .ph img{transition:transform .6s ease}
.card:hover{opacity:1}
.card:hover .ph img{transform:scale(1.03)}
.card-title{font-size:24px;font-weight:500;letter-spacing:-.01em}
.card-sub{font-size:15px;color:var(--muted)}
.card-text{display:flex;flex-direction:column;gap:2px}
.cta{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.field-meta{display:flex;flex-wrap:wrap;gap:24px 56px;margin-top:28px}
.field-meta .left{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:4px}
.field-meta .right{flex:999 1 480px;min-width:0;max-width:640px}
.field-meta .right p{margin:0;color:var(--muted)}
.field-title{font-size:24px;font-weight:500}
.field-where{font-family:var(--mono);font-size:13px;color:var(--muted)}
.split{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start}
.split .left{flex:1 1 320px;min-width:0}
.split .right{flex:999 1 480px;min-width:0}
.big{margin:0;font-size:clamp(24px,2.4vw,32px);line-height:1.3;font-weight:300;letter-spacing:-.01em}
.muted{color:var(--muted)}
.about-text{display:flex;flex-direction:column;gap:22px;max-width:640px}
.about-text p{margin:0}
.ww-card{display:flex;gap:20px;align-items:flex-start;padding:24px;border:1px solid var(--line);border-radius:6px;background:var(--panel);margin-top:6px}
.ww-card img{height:40px;width:auto;flex:none}
.ww-text{display:flex;flex-direction:column;gap:4px}
.ww-name{font-size:20px;font-weight:500}
.ww-desc{font-size:15px;color:var(--muted)}
.contact-info{display:flex;flex-direction:column;gap:20px}
.contact-info p{margin:0}
.email{font-family:var(--mono);font-size:15px;color:var(--accent);overflow-wrap:anywhere}
form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.full{grid-column:1/-1}
label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{min-height:48px;padding:0 14px;background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:4px;font:inherit}
select{background:var(--bg)}
textarea{padding:12px 14px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
form button{min-height:48px;padding:0 32px;background:var(--accent);color:var(--bg);border:0;border-radius:999px;font:inherit;font-weight:500;cursor:pointer}
form button:hover{opacity:.85}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);margin-top:120px;padding:28px 0 40px;font-family:var(--mono);font-size:13px;color:var(--muted)}
main+footer{margin-top:0}
footer a{display:inline-flex;align-items:center;gap:12px;padding:8px 0}
footer img{height:32px;width:auto;display:block}

/* gallery pages */
.page-head{padding:56px 0 48px;display:flex;flex-direction:column;gap:20px}
.page-title{font-size:clamp(44px,6vw,88px)}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:13px}
.pills a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:1px solid var(--line);border-radius:999px}
.pills a[aria-current="page"]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.masonry{columns:3 300px;column-gap:24px}
.masonry.single{columns:1}
.g-item{break-inside:avoid;margin:0 0 32px;display:flex;flex-direction:column;gap:10px}
.g-open{display:block;width:100%;padding:0;border:0;background:var(--ph1);border-radius:4px;overflow:hidden;cursor:zoom-in}
.g-open img{display:block;width:100%;height:auto;transition:transform .6s ease}
.g-open:hover img{transform:scale(1.02)}
.g-open:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.g-item figcaption{font-family:var(--mono);font-size:13px;color:var(--muted)}
.lb{position:fixed;inset:0;z-index:50;background:rgba(5,12,11,.96);display:flex;align-items:center;justify-content:center;padding:56px 72px}
.lb[hidden]{display:none}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;max-height:100%}
.lb-img{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain;display:block}
.lb-cap{font-family:var(--mono);font-size:13px;color:var(--muted);text-align:center}
.lb-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.06);color:var(--fg);cursor:pointer}
.lb-btn:hover{background:rgba(255,255,255,.14)}
.lb-btn:focus-visible{outline:2px solid var(--accent)}
.lb-close{top:16px;right:16px}
.lb-prev{left:16px;top:50%;transform:translateY(-50%)}
.lb-next{right:16px;top:50%;transform:translateY(-50%)}
@media (max-width:700px){.lb{padding:64px 8px 88px}.lb-prev,.lb-next{top:auto;bottom:20px;transform:none}.lb-prev{left:calc(50% - 60px)}.lb-next{right:calc(50% - 60px)}}
.split .left.portrait{flex:0 1 320px;max-width:320px}
.field-meta .right p+p{margin-top:12px}
/* fade-in, inquire, gallery end */
html.js .g-item,html.js .g-end{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
html.js .g-item.in,html.js .g-end.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .g-item,html.js .g-end{opacity:1;transform:none;transition:none}}
.lb-inquire{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border-radius:999px;background:var(--accent);color:var(--bg);font-weight:500;font-size:15px}
.lb-inquire:hover{opacity:.85}
.g-end{border-top:1px solid var(--line);margin-top:56px;padding:48px 0 120px;display:flex;flex-wrap:wrap;gap:48px 56px;align-items:center}
.g-next{flex:1 1 360px;min-width:0;display:flex;gap:20px;align-items:center}
.g-next .ph{flex:0 0 180px;width:180px;aspect-ratio:3/2}
.g-next-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.g-next-name{font-size:clamp(28px,3vw,40px);font-weight:400;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:12px}
.g-next:hover{opacity:1}.g-next:hover .g-next-name{color:var(--accent)}
.g-cta{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.g-cta p{margin:0}
.btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 28px;border-radius:999px;background:var(--accent);color:var(--bg);font-weight:500}
.btn:hover{opacity:.85}
main+.lb+footer,.g-end~footer{margin-top:0}
@media (max-width:520px){.g-next .ph{flex-basis:120px;width:120px}}
.lb-img{transition:opacity .25s ease}
.lb-img.fading{opacity:0}
@media (prefers-reduced-motion:reduce){.lb-img{transition:none}}
.g-wide{margin:24px 0 56px}
.g-wide figcaption{font-size:14px}
img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.masonry{columns:auto;display:flex;flex-wrap:wrap;gap:32px 24px}
.masonry .g-item{margin:0;flex-grow:calc(var(--ar,1.5) * 100);flex-basis:calc(var(--ar,1.5) * 240px);min-width:0}
.masonry.single .g-item{flex-basis:100%}
@media (max-width:700px){.masonry .g-item{flex-basis:100%}}
/* tighter section spacing */
section.block{padding-top:96px}
#contact{padding-bottom:96px!important}
@media (max-width:700px){
section.block{padding-top:56px}
#contact{padding-bottom:56px!important}
.hero{padding:40px 0 32px;gap:20px}
.sec-head{padding-top:20px;margin-bottom:24px}
.galleries{gap:32px}
.split{gap:28px}
.split .left.portrait{flex:0 0 auto;width:220px;max-width:60%}
.field-meta{margin-top:20px;gap:12px}
.page-head{padding:32px 0;gap:16px}
.g-end{margin-top:24px;padding:40px 0 56px;gap:32px}
}
.nav-ig{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-12px -12px -12px -6px}
.foot-ig,.ig-follow{display:inline-flex;align-items:center;gap:10px;min-height:44px}
.ig-follow{font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg)}
.g-cta .btn+.ig-follow{margin-top:-4px}
/* legal pages + footer links */
.foot-legal{display:inline-flex;gap:20px;margin-left:24px}
.foot-legal a{display:inline-flex;align-items:center;min-height:44px}
.legal{max-width:720px;padding:56px 0 96px}
.legal .page-title{margin:8px 0 6px;font-size:clamp(36px,5vw,64px)}
.legal-date{font-family:var(--mono);font-size:13px;color:var(--muted);margin:0 0 32px}
.legal h2{font-size:24px;font-weight:500;letter-spacing:-.01em;margin:40px 0 10px}
.legal p,.legal li{color:var(--muted)}
.legal p{margin:0 0 14px}
.legal ul{margin:0 0 14px;padding-left:20px}
.legal li{margin-bottom:8px}
.legal strong{color:var(--fg);font-weight:500}
.legal a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.form-note{grid-column:1/-1;margin:0;font-size:14px;color:var(--muted)}
.form-note a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
@media (max-width:700px){.foot-legal{margin-left:16px}.legal{padding:32px 0 56px}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.form-status{margin:0;font-size:14px;color:var(--muted)}
.form-status a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
form button:disabled{opacity:.6;cursor:default}
.form-done{display:flex;flex-direction:column;gap:12px;align-self:start}
.form-done[hidden]{display:none}
.form-done p{margin:0}
.form-done a{color:var(--accent);overflow-wrap:anywhere}
.form-done:focus{outline:none}
form[hidden]{display:none}
/* tools teaser */
.tool-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.tool-card:hover{opacity:1}
.tool-card .ph{position:relative;border-radius:0;height:100%;min-height:260px}
.tool-card .ph img{position:absolute;inset:0;transition:transform .6s ease}
.tool-card:hover .ph img{transform:scale(1.03)}
.tool-card .ph::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(185,199,154,0) 0 46px,rgba(185,199,154,.55) 46px 47px);-webkit-mask-image:linear-gradient(90deg,transparent 15%,#000 50%,transparent 85%);mask-image:linear-gradient(90deg,transparent 15%,#000 50%,transparent 85%)}
.tool-text{padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;gap:12px;justify-content:center}
.tool-name{font-size:clamp(28px,3vw,40px);font-weight:400;letter-spacing:-.02em;line-height:1.1}
.tool-text .muted{font-size:16px}
.tool-card:hover .tool-name{color:var(--accent)}
.tool-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
nav>a[aria-current="page"]{color:var(--accent)}
@media (max-width:700px){.tool-card{grid-template-columns:1fr}.tool-card .ph{min-height:0;aspect-ratio:16/10}}
@media (max-width:520px){nav{gap:16px;font-size:12px;letter-spacing:.05em}}
