
:root{--ink:#111;--g:#0a6b3b;--l:#c9f26a;--y:#ffd84d;--w:#fff;--soft:#f1f6e4;--m:#4d5249;--bd:3px solid var(--ink);--sh:6px 6px 0 var(--ink);--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--w);line-height:1.6}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',Impact,sans-serif;font-weight:800;line-height:1;letter-spacing:-.025em;margin:0 0 .5em}
h1{font-size:clamp(2.8rem,8vw,6.6rem)}h2{font-size:clamp(2rem,5vw,3.6rem)}h3{font-size:1.5rem;letter-spacing:-.015em}
a{color:inherit}img{max-width:100%;height:auto;display:block}.wrap{max-width:1180px;margin:0 auto;padding:0 22px}.narrow{max-width:820px}
.ic{width:20px;height:20px;flex:none}
.sticker{display:inline-block;background:var(--ink);color:var(--l);font:800 .78rem Inter;text-transform:uppercase;letter-spacing:.14em;padding:7px 14px;border-radius:999px;margin-bottom:20px;transform:rotate(-2deg)}.sticker.y{background:var(--y);color:var(--ink);border:2px solid var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border:var(--bd);border-radius:999px;font:800 1rem 'Bricolage Grotesque',sans-serif;text-decoration:none;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:.12s}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn-b{background:var(--ink);color:var(--l)}.btn-w{background:var(--w);color:var(--ink)}.sm{padding:9px 18px;font-size:.92rem;box-shadow:3px 3px 0 var(--g)}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0}.btns.stack{flex-direction:column;align-items:stretch}.btns.stack .btn{justify-content:center}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--w);border-bottom:var(--bd)}.bar{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:16px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}.mk{width:46px;height:46px;flex:none}.lt{display:flex;flex-direction:column;line-height:1}.lt b{font:800 1.7rem 'Bricolage Grotesque',sans-serif;letter-spacing:-.03em}.lt i{font:700 .66rem Inter;letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:var(--g);margin-top:3px}
.nav{display:flex;align-items:center;gap:8px}.nav>a:not(.btn){text-decoration:none;font:700 1rem 'Bricolage Grotesque',sans-serif;padding:9px 18px;border-radius:999px;border:2px solid transparent}.nav>a:not(.btn):hover{border-color:var(--ink)}.nav>a.on{background:var(--l);border-color:var(--ink)}.nav .btn{margin-left:10px}
.burger{display:none;background:var(--l);border:var(--bd);border-radius:12px;padding:10px;cursor:pointer}.burger span{display:block;width:24px;height:3px;background:var(--ink);margin:4px 0}
/* hero */
.hero{background:var(--l);border-bottom:var(--bd);padding:64px 0 72px;overflow:hidden}.hg{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hl{background:var(--w);border:var(--bd);border-radius:14px;padding:0 .15em;display:inline-block;transform:rotate(-1.5deg);box-shadow:var(--sh)}.ht p{font-size:1.2rem;max-width:520px;margin:24px 0 0}
.collage{position:relative;aspect-ratio:1/1;max-width:540px;width:100%;margin:0 auto}.c{position:absolute;border:var(--bd);border-radius:var(--r);overflow:hidden;background:#000;box-shadow:var(--sh)}.c img{width:100%;height:100%;object-fit:cover}
.c1{inset:6% 0 18% 10%;transform:rotate(2.5deg)}.c2{width:42%;aspect-ratio:1/1;left:0;bottom:2%;transform:rotate(-6deg)}.c3{width:34%;aspect-ratio:1/1;right:2%;top:-2%;transform:rotate(7deg)}
.spin{position:absolute;width:30%;right:2%;bottom:0;animation:sp 18s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.tick{background:var(--ink);color:var(--l);overflow:hidden;white-space:nowrap;padding:16px 0;border-bottom:var(--bd)}.tt{display:inline-flex;animation:tk 40s linear infinite}.tt span{font:800 1.3rem 'Bricolage Grotesque';text-transform:uppercase;padding:0 26px}.tt span::after{content:"✿";margin-left:52px;color:var(--y)}
@keyframes tk{to{transform:translateX(-33.333%)}}@media(prefers-reduced-motion:reduce){.tt,.spin{animation:none}html{scroll-behavior:auto}}
/* sections */
.sec{padding:96px 0}.soft{background:var(--soft);border-top:var(--bd);border-bottom:var(--bd)}.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:12px}.shead h2{margin:0}
.lnk{font:800 1.05rem 'Bricolage Grotesque';text-decoration:none;display:inline-flex;gap:8px;align-items:center;border-bottom:3px solid var(--l);padding-bottom:2px}.lnk:hover{border-color:var(--ink)}
.rows{margin-top:32px;border-top:var(--bd)}.row{display:grid;grid-template-columns:70px 1fr 140px 44px;gap:20px;align-items:center;padding:20px 12px;border-bottom:var(--bd);text-decoration:none;transition:.15s}.row:hover{background:var(--l);padding-left:26px}
.rn{font:800 1.3rem 'Bricolage Grotesque';color:var(--g)}.rt b{display:block;font:800 clamp(1.3rem,2.6vw,2rem) 'Bricolage Grotesque';letter-spacing:-.02em}.rt small{color:var(--m);font-size:.95rem}
.rim{display:block;width:140px;aspect-ratio:3/2;border:var(--bd);border-radius:10px;overflow:hidden}.rim img{width:100%;height:100%;object-fit:cover}.ra{transition:.15s}.row:hover .ra{transform:translateX(6px)}
.case{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center;margin-top:48px}.case.rev .cimg{order:2}.cimg{display:block;border:var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);background:#000}.cimg img{width:100%;transition:transform .5s}.cimg:hover img{transform:scale(1.04)}
.tag{display:inline-block;background:var(--y);border:2px solid var(--ink);border-radius:999px;padding:3px 12px;font:800 .78rem Inter;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}.ctx p{color:var(--m);font-size:1.05rem}
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}.wc{border:var(--bd);border-radius:var(--r);padding:28px;box-shadow:var(--sh)}.wc b{font:800 2.6rem 'Bricolage Grotesque';display:block;line-height:1;margin-bottom:12px}.wc p{margin:0}.w1{background:var(--l)}.w2{background:var(--y)}.w3{background:#bfe6ff}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}.steps div{background:var(--w);border:var(--bd);border-radius:var(--r);padding:28px}.steps span{display:flex;width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--l);font:800 1.3rem 'Bricolage Grotesque';align-items:center;justify-content:center;margin-bottom:16px}.steps p{margin:0;color:var(--m)}
.faq details{border:var(--bd);border-radius:14px;background:var(--w);margin-bottom:12px}.faq summary{cursor:pointer;padding:16px 20px;font:800 1.1rem 'Bricolage Grotesque';list-style:none;display:flex;justify-content:space-between;gap:12px}.faq summary::after{content:"+";font-size:1.6rem;line-height:1;color:var(--g)}.faq details[open] summary::after{content:"−"}.faq details[open]{background:var(--l)}.faq p{margin:0;padding:0 20px 18px}
.band{background:var(--g);color:var(--w);border-top:var(--bd)}.bandin{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:64px;padding-bottom:64px}.band h2{color:var(--w);margin-bottom:8px}.band p{margin:0;color:#d4f0dd;font-size:1.1rem}.band .btn-b{background:var(--l);color:var(--ink);box-shadow:4px 4px 0 #000}.band .btn-w{box-shadow:4px 4px 0 #000}
/* inner pages */
.phero{background:var(--l);border-bottom:var(--bd);padding:64px 0 56px}.phero h1{margin-bottom:12px}.phero p{font-size:1.2rem;max-width:600px;margin:0}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}.filters button{font:800 1rem 'Bricolage Grotesque';padding:10px 22px;border:var(--bd);border-radius:999px;background:var(--w);cursor:pointer;box-shadow:3px 3px 0 var(--ink)}.filters button.on,.filters button:hover{background:var(--l)}
.mason{columns:3;column-gap:20px}.fig{display:block;break-inside:avoid;margin-bottom:20px;border:var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:5px 5px 0 var(--ink);background:var(--w);text-decoration:none;transition:.15s}.fig:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}.fig img{width:100%}.cap{display:block;padding:12px 14px;font-size:.85rem;border-top:var(--bd);color:var(--m);line-height:1.4}.cap b{display:block;color:var(--g);font:800 .72rem Inter;text-transform:uppercase;letter-spacing:.12em;margin-bottom:2px}.fig.hide{display:none}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:56px 0;border-bottom:var(--bd)}.svc:first-child{padding-top:0}.svc.rev .simg{order:2}.simg{display:block;border:var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);background:#000}.simg img{width:100%;aspect-ratio:4/3;object-fit:cover}
.lead{color:var(--m);font-size:1.1rem}.ticks{list-style:none;padding:0;margin:18px 0}.ticks li{padding:7px 0 7px 34px;position:relative;font-weight:500}.ticks li::before{content:"✓";position:absolute;left:0;top:6px;width:24px;height:24px;border-radius:50%;background:var(--l);border:2px solid var(--ink);font-size:.8rem;display:flex;align-items:center;justify-content:center;font-weight:800}
.two{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:start}.mt{margin-top:36px}.addr{margin:8px 0 0}.soon{background:var(--y);border:var(--bd);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}.soon p{margin:4px 0 0}
.form{background:var(--w);border:var(--bd);border-radius:var(--r);padding:30px;box-shadow:var(--sh)}.form label{display:block;font-weight:600;font-size:.92rem;margin-bottom:16px}.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px;padding:13px;border:var(--bd);border-radius:12px;font:1rem Inter,sans-serif;background:var(--soft)}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--g);background:#fff}.form .btn{width:100%;justify-content:center}.form small{display:block;margin-top:12px;color:var(--m)}.form .err{border-color:#d92d20}
.ftr{background:var(--ink);color:#cfd3c7;padding:56px 0 24px}.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}.ftr h4{color:var(--l);font-size:1.1rem}.ftr ul{list-style:none;padding:0;margin:0}.ftr li{margin-bottom:8px}.ftr a{text-decoration:none}.ftr a:hover{color:var(--l)}.ftr .logo{color:#fff;margin-bottom:14px}.ftr .lt i{color:var(--l)}.fine{margin-top:32px;padding-top:18px;border-top:1px solid #2c2f2a;font-size:.88rem;color:#8d9186}
.mbar{display:none}
.lb{position:fixed;inset:0;background:#000e;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:100;padding:20px}.lb.on{display:flex}.lb img{max-width:100%;max-height:82vh;border-radius:10px;border:3px solid var(--l)}.lb p{color:#fff;margin:12px 0 0;text-align:center}.lbx{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}
@media(max-width:960px){
 .hg,.case,.svc,.two{grid-template-columns:1fr;gap:28px}.case.rev .cimg,.svc.rev .simg{order:0}.why,.steps{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.mason{columns:2}
 .burger{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--w);flex-direction:column;align-items:stretch;gap:6px;padding:14px 22px 22px;border-bottom:var(--bd)}.nav.open{display:flex}.nav>a:not(.btn){border:2px solid var(--ink)}.nav .btn{margin:8px 0 0;justify-content:center}
 .sec{padding:64px 0}.hero{padding:44px 0 56px}.row{grid-template-columns:44px 1fr 90px 28px;gap:12px}.rim{width:90px}
 .mbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;border-top:var(--bd)}.mbar a{display:flex;justify-content:center;align-items:center;gap:8px;padding:15px;font:800 1rem 'Bricolage Grotesque';text-decoration:none;background:var(--l)}.mbar a+a{background:var(--ink);color:var(--l)}body{padding-bottom:56px}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}.mason{columns:1}.mk{width:40px;height:40px}.lt b{font-size:1.4rem}.band h2{font-size:2rem}}
