
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');
:root{--cream:#f4f0e6;--ink:#171717;--lime:#d9ff4f;--blue:#3557ff;--red:#ff5b4a;--sky:#bcecff;--paper:#fffdf7;--line:#171717}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
header{height:86px;border-bottom:1.5px solid var(--line);background:rgba(244,240,230,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}
.head{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font:600 21px "Playfair Display",serif}.wordmark i{color:var(--blue)}
nav{display:flex;gap:6px}nav a{border:1px solid var(--line);border-radius:999px;padding:10px 15px;font-size:12px}nav a:hover{background:var(--lime)}
.status{display:flex;align-items:center;gap:8px;font-size:11px}.status:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--lime);border:1px solid var(--ink);animation:pulse 1.8s infinite}

.hero{padding:58px 0 0}.hero-grid{display:grid;grid-template-columns:1fr .9fr;gap:38px;align-items:end}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.15em;font-weight:700;color:var(--blue)}
h1{font:600 clamp(68px,9vw,132px)/.82 "Playfair Display",serif;letter-spacing:-.06em;margin:24px 0 30px}.italic{font-style:italic;color:var(--blue)}
.lead{max-width:650px;font-size:18px;line-height:1.65}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.btn{padding:14px 18px;border:1.5px solid var(--ink);font-weight:700;font-size:13px}.btn.primary{background:var(--lime)}.btn.secondary{background:var(--paper)}
.hero-art{position:relative;padding:26px 0 0 26px}.hero-art:before{content:"";position:absolute;inset:0 30px 30px 0;background:var(--red);border-radius:50% 50% 8% 50%;border:1.5px solid var(--ink)}.hero-art img{position:relative;border:1.5px solid var(--ink);border-radius:44% 44% 5% 44%;height:600px;width:100%;object-fit:cover;animation:float 6s ease-in-out infinite}
.ribbon{margin-top:55px;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--blue);color:white;overflow:hidden}.run{display:flex;width:max-content;animation:run 22s linear infinite}.run span{padding:14px 28px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}

.intro{padding:110px 0}.intro-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.side-note{font-size:12px;line-height:1.7;border-top:1px solid;padding-top:14px}.big-copy{font:600 clamp(42px,6vw,76px)/1 "Playfair Display",serif;letter-spacing:-.04em;margin:0}.big-copy em{color:var(--red)}

.services{padding:0 0 110px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1.5px solid var(--ink)}
.service{min-height:290px;padding:32px;border-right:1px solid;border-bottom:1px solid;position:relative;overflow:hidden}.service:nth-child(2n){border-right:0}.service:nth-child(n+3){border-bottom:0}.service:nth-child(1){background:var(--lime)}.service:nth-child(2){background:var(--paper)}.service:nth-child(3){background:var(--sky)}.service:nth-child(4){background:#ffc8bf}
.service .num{font:700 11px monospace}.service h3{font:600 38px/1 "Playfair Display";margin:70px 0 12px}.service p{max-width:440px;line-height:1.6;margin:0}.service:after{content:"↗";position:absolute;right:28px;top:24px;font-size:30px;transition:.3s}.service:hover:after{transform:translate(5px,-5px)}

.app{background:var(--ink);color:white;padding:100px 0}.app-top{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end}.app h2,.section-title{font:600 clamp(54px,7vw,96px)/.9 "Playfair Display";letter-spacing:-.05em;margin:0}.app p{color:#c9c9c9;line-height:1.7}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.chips span{border:1px solid #555;border-radius:999px;padding:8px 12px;font-size:11px}
.gallery{margin-top:55px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px;align-items:start}.shot{background:#242424;padding:10px;border-radius:18px}.shot:nth-child(2){margin-top:80px}.shot:nth-child(3){margin-top:25px}.shot:nth-child(4){margin-top:105px}.shot img{border-radius:11px;width:100%}.shot small{display:block;margin:10px 5px 3px;color:#aaa}
.banner{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--paper);padding:18px}.banner img{width:100%;max-height:520px;object-fit:cover}

.method{padding:110px 0}.method-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:45px}.method-head p{max-width:400px;line-height:1.65}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.step{border:1.5px solid;padding:24px;min-height:280px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between}.step:nth-child(2){transform:translateY(30px);background:var(--lime)}.step:nth-child(3){transform:translateY(60px);background:var(--sky)}.step:nth-child(4){transform:translateY(90px);background:#ffc8bf}.step b{font:600 29px "Playfair Display"}.step span{font-size:11px;text-transform:uppercase;letter-spacing:.1em}

.contact{padding:160px 0 80px}.contact-card{background:var(--blue);color:white;border:1.5px solid var(--ink);padding:48px;display:grid;grid-template-columns:1.2fr .8fr;gap:50px;transform:rotate(-1deg)}.contact-card h2{font:600 clamp(50px,7vw,90px)/.88 "Playfair Display";margin:0}.contact-list{align-self:end}.contact-list div{border-top:1px solid rgba(255,255,255,.5);padding:12px 0;font-size:13px}.contact-list small{display:block;opacity:.65;text-transform:uppercase;margin-bottom:4px}

footer{background:var(--lime);border-top:1.5px solid var(--ink);padding:45px 0 24px}.foot{display:grid;grid-template-columns:1.4fr .6fr .6fr;gap:30px}.foot img{max-width:360px}.foot h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em}.foot a,.foot p{font-size:12px;line-height:1.7}.legal{margin-top:30px;padding-top:16px;border-top:1px solid;display:flex;justify-content:space-between;font-size:11px}.legal a{text-decoration:underline}

.reveal{opacity:0;transform:translateY(28px);transition:.75s ease}.reveal.on{opacity:1;transform:none}
.policy{padding:75px 0 110px}.policy-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:50px}.policy-hero h1{margin:0}.policy-hero p{line-height:1.7}.policy-body{display:grid;grid-template-columns:240px 1fr;gap:35px}.toc{position:sticky;top:110px;align-self:start}.toc a{display:block;padding:8px 0;font-size:12px;border-bottom:1px solid}.policy-copy{background:var(--paper);border:1.5px solid;padding:36px}.policy-copy section{padding:0 0 25px;margin:0 0 25px;border-bottom:1px solid #bbb}.policy-copy section:last-child{border:0}.policy-copy h2{font:600 26px "Playfair Display";margin:0 0 10px}.policy-copy p{line-height:1.75;color:#5d5953;margin:0}.policy-copy a{color:var(--blue);text-decoration:underline}
@keyframes float{50%{transform:translateY(-12px) rotate(.5deg)}}@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(217,255,79,.25)}}@keyframes run{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:900px){nav{display:none}.hero-grid,.intro-grid,.app-top,.contact-card,.policy-hero,.policy-body{grid-template-columns:1fr}.hero-art img{height:auto}.gallery{grid-template-columns:1fr 1fr}.shot:nth-child(n){margin-top:0}.steps{grid-template-columns:1fr 1fr}.step:nth-child(n){transform:none}.foot{grid-template-columns:1fr 1fr}.toc{position:static}.contact-card{transform:none}}
@media(max-width:600px){.wrap{width:calc(100% - 24px)}.status{display:none}h1{font-size:62px}.service-grid,.gallery,.steps,.foot{grid-template-columns:1fr}.service{border-right:0!important;border-bottom:1px solid!important}.service:last-child{border-bottom:0!important}.app h2,.section-title{font-size:52px}.contact-card{padding:28px}.legal{flex-direction:column;gap:12px}}
