/* Amsy Factory — design system (Concept D "Atelier") */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --paper:#faf9f6; --ink:#1e1d1a; --char:#211f1c; --char2:#191816;
  --dim:#8a877f; --dim-d:#b7b3a8; --line:#e6e3dc; --line-d:#38352e;
  --green:#90F858;
}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:'Instrument Sans',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.serif{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400}
img{display:block}
a{color:inherit;text-decoration:none}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;gap:38px;padding:20px 48px;color:#fff;transition:background .4s,padding .4s}
nav.solid,nav.always{background:var(--char)}
nav .burger{width:22px;cursor:pointer;flex:0 0 auto}
nav .burger span{display:block;height:1.5px;background:#fff;margin:5px 0;transition:.3s}
nav .wordmark{font-weight:600;font-size:18px;letter-spacing:.14em;white-space:nowrap}
nav .wordmark b{color:var(--green);font-weight:600}
nav .links{display:flex;gap:32px;font-size:15.5px;margin-left:20px}
nav .links a{opacity:.92;position:relative;padding-bottom:3px}
nav .links a:hover{opacity:1}
nav .links a.on::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--green)}
nav .right{margin-left:auto;display:flex;gap:24px;align-items:center;font-size:14px;letter-spacing:.05em}
nav .right span{cursor:pointer;opacity:.85}
nav .right span:hover{opacity:1}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:14px 28px;font-size:15px;cursor:pointer;transition:.3s;border:0}
.btn.primary{background:var(--green);color:#15140f;font-weight:600}
.btn.primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn.ghost{border:1px solid #4a473f;color:#f4f2ec}
.btn.ghost:hover{border-color:var(--green);color:var(--green)}
.btn.ink{border:1px solid var(--ink);color:var(--ink)}
.btn.ink:hover{background:var(--ink);color:var(--paper)}

/* ---------- shared section bits ---------- */
.wrap{padding-left:48px;padding-right:48px}
.eyebrow{font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:38px}
.sec-head a{font-size:15px;border-bottom:1px solid var(--ink);padding-bottom:2px}
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.rv.in{opacity:1;transform:none}

/* ---------- page hero (interior pages) ---------- */
.page-hero{background:var(--char);color:#f4f2ec;padding:190px 48px 90px}
.page-hero h1{font-size:clamp(40px,6vw,76px);font-weight:500;letter-spacing:-.015em;line-height:1.02}
.page-hero h1 .serif{color:var(--green);font-size:1.04em}
.page-hero p{margin-top:22px;max-width:560px;font-size:18px;line-height:1.6;color:var(--dim-d)}
.crumb{font-size:13.5px;letter-spacing:.1em;color:var(--dim-d);text-transform:uppercase;margin-bottom:26px}
.crumb b{color:#f4f2ec;font-weight:500}

/* ---------- footer ---------- */
footer{background:var(--char);color:#f4f2ec;padding:100px 48px 40px;margin-top:0}
.f-top{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap}
.f-top .big{font-size:clamp(28px,3.6vw,48px);font-weight:500;line-height:1.12;max-width:560px;letter-spacing:-.01em}
.f-top .big .serif{color:var(--green)}
.f-top .big .cta-row{margin-top:34px}
.f-cols{display:flex;gap:80px;font-size:15px;line-height:2.2;color:var(--dim-d)}
.f-cols b{color:#f4f2ec;font-weight:500;display:block;margin-bottom:6px}
.f-cols a:hover{color:var(--green)}
.f-bottom{margin-top:80px;padding-top:24px;border-top:1px solid var(--line-d);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#7d796e;font-size:13px}
.f-bottom a:hover{color:var(--green)}

/* ---------- cards ---------- */
.cat{position:relative;overflow:hidden;cursor:pointer;background:#dcd8cf;display:block}
.cat img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease;filter:saturate(.92)}
.cat:hover img{transform:scale(1.05)}
.cat::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,17,0) 52%,rgba(20,19,17,.66))}
.cat .lb{position:absolute;left:22px;bottom:20px;right:22px;color:#fff;font-size:20px;font-weight:500;z-index:2;line-height:1.25}
.cat .lb small{display:block;font-size:13.5px;font-weight:400;opacity:.8;margin-top:4px}
.cat .n{position:absolute;top:18px;left:22px;color:rgba(255,255,255,.85);font-size:12.5px;z-index:2;letter-spacing:.12em}

.proj{cursor:pointer;display:block}
.proj .im{aspect-ratio:4/3;overflow:hidden;background:#dcd8cf}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform .8s;filter:saturate(.92)}
.proj:hover img{transform:scale(1.04)}
.proj .loc{margin-top:15px;color:var(--dim);font-size:13.5px}
.proj .nm{font-size:20px;font-weight:500;margin-top:3px}
.proj .ap{color:var(--dim);font-size:15px;margin-top:3px;line-height:1.45}

/* ---------- mobile ---------- */
@media(max-width:920px){
  .wrap,nav,footer,.page-hero{padding-left:22px;padding-right:22px}
  nav .links{display:none}
  .f-cols{gap:40px;flex-wrap:wrap}
}
