@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');

:root { --ink:#182822; --cream:#f4f0e7; --lime:#d8f34a; --line:rgba(24,40,34,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.nav { height:92px; display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:auto; padding:0 32px; }
.brand { display:flex; align-items:center; gap:12px; font-weight:600; font-size:18px; }
.brand-mark { width:36px; height:36px; border-radius:50% 50% 48% 52% / 42% 44% 56% 58%; display:grid; place-items:center; background:var(--lime); color:var(--ink); font-weight:600; font-size:17px; transform:rotate(-7deg); }
.nav-links { display:flex; align-items:center; gap:34px; font-size:14px; }
.nav-links>a:not(.button):hover,.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:26px; padding:15px 22px; border-radius:4px; background:var(--ink); color:white; font-weight:500; font-size:14px; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); background:#284038; }
.button-small { padding:11px 17px; }
.hero { max-width:1240px; margin:auto; padding:82px 32px 0; overflow:hidden; }
.eyebrow { display:flex; align-items:center; gap:9px; font-size:12px; text-transform:uppercase; letter-spacing:.16em; font-weight:600; }
.eyebrow span { width:8px; height:8px; border-radius:50%; background:#ec6e51; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:890px; margin:27px 0; font-family:"Manrope",Arial,sans-serif; font-size:clamp(55px,7.8vw,108px); line-height:.94; letter-spacing:-.065em; font-weight:500; }
h1 em,.process h2 em { font-family:Georgia,serif; font-weight:400; }
.hero-copy { max-width:580px; font-size:18px; line-height:1.55; color:#53605b; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:32px; }
.text-link { font-size:14px; border-bottom:1px solid var(--line); padding-bottom:3px; }
.phone-stage { height:590px; position:relative; margin-top:50px; border-radius:10px 10px 0 0; background:#193129; overflow:hidden; }
.orb { position:absolute; border-radius:50%; }
.orb-one { width:390px; height:390px; background:#f1785e; left:-100px; bottom:-160px; }
.orb-two { width:360px; height:360px; background:var(--lime); right:-100px; top:-160px; }
.phone { position:absolute; width:246px; height:495px; background:#111; border:7px solid #101413; border-radius:37px; box-shadow:0 28px 55px rgba(0,0,0,.3); overflow:hidden; }
.phone::before { content:""; position:absolute; z-index:2; width:78px; height:20px; background:#101413; border-radius:0 0 15px 15px; left:77px; top:0; }
.phone-left { left:12%; top:125px; transform:rotate(-8deg); }
.phone-center { left:50%; top:45px; transform:translateX(-50%); z-index:3; }
.phone-right { right:12%; top:120px; transform:rotate(8deg); }
.phone-screen { height:100%; padding:32px 18px 20px; border-radius:29px; }
.phone-time { display:block; font-size:9px; margin-bottom:37px; }
.phone-screen p { font-size:9px; letter-spacing:.08em; }
.phone-screen h3 { font-family:"Manrope",Arial,sans-serif; font-size:24px; line-height:1.1; letter-spacing:-.04em; }
.screen-gather { background:#f2e9dc; }
.event-card { background:white; border-radius:12px; padding:15px; margin-top:14px; }
.event-card.muted { background:#dce9df; }
.event-card b,.event-card small,.note b,.note small { display:block; font-size:11px; }
.event-card small,.note small { margin-top:5px; opacity:.6; font-size:8px; }
.screen-tempo { background:#dcef52; text-align:center; }
.screen-tempo .phone-time { text-align:left; }
.sun-mark { font-size:86px; line-height:1; margin:58px 0 16px; }
.screen-tempo button { margin-top:42px; padding:12px 30px; background:#193129; color:white; border:0; border-radius:22px; }
.screen-fieldnote { background:#f8f5ef; }
.note { background:#b9d8dc; border-radius:8px; padding:17px 13px; margin-top:10px; }
.note.peach { background:#f4ae8d; }
.note.yellow { background:#e6db77; }
.work { max-width:1240px; margin:auto; padding:120px 32px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; border-bottom:1px solid var(--line); padding-bottom:25px; }
.section-heading span,.section-label { text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:600; }
.section-heading h2 { font-family:"Manrope",Arial,sans-serif; font-size:44px; letter-spacing:-.045em; font-weight:500; margin:0; }
.project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:30px; }
.project-art { height:350px; position:relative; display:grid; place-items:center; overflow:hidden; }
.project-art span { position:absolute; left:18px; top:18px; font-size:11px; }
.project-art b { font-family:Georgia,serif; font-size:140px; font-weight:400; opacity:.8; }
.project-art.coral { background:#ef8b70; }
.project-art.lime { background:#d9ee5b; }
.project-art.blue { background:#accfd4; }
.project>p { margin:20px 0 7px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; opacity:.6; }
.project h3 { font-size:28px; margin-bottom:10px; }
.project>div:last-child { color:#5b6662; line-height:1.5; font-size:14px; max-width:300px; }
.process { background:#e7e1d4; padding:110px max(32px,calc((100vw - 1176px)/2)); display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.process h2 { margin-top:25px; font-family:"Manrope",Arial,sans-serif; font-size:clamp(45px,5vw,72px); line-height:1.03; letter-spacing:-.055em; font-weight:500; }
.process ol { list-style:none; margin:0; padding:0; }
.process li { display:grid; grid-template-columns:48px 1fr; gap:15px; padding:28px 0; border-top:1px solid var(--line); }
.process li>span { font-size:12px; opacity:.55; }
.process li b { font-size:19px; }
.process li p { color:#5b6662; margin:8px 0 0; line-height:1.5; max-width:390px; }
footer { background:var(--ink); color:white; padding:85px max(32px,calc((100vw - 1176px)/2)) 35px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:70px; }
footer>div { display:flex; align-items:center; gap:25px; }
footer h2 { font-family:"Manrope",Arial,sans-serif; font-size:clamp(42px,5vw,70px); letter-spacing:-.05em; font-weight:500; margin:0; }
.button.light { background:var(--lime); color:var(--ink); }
.button.light:hover { background:white; }
footer>p { border-top:1px solid rgba(255,255,255,.18); padding-top:25px; margin:20px 0 0; font-size:12px; opacity:.65; }
footer>p:last-child { text-align:right; }

@media (max-width:800px) {
  .nav-links>a:not(.button) { display:none; }
  .nav { padding:0 20px; }
  .hero { padding:55px 20px 0; }
  .hero-copy { font-size:16px; }
  .phone-stage { height:460px; }
  .phone { width:180px; height:370px; }
  .phone-left { left:-10px; top:105px; }
  .phone-right { right:-10px; top:105px; }
  .phone-center { top:40px; }
  .phone::before { width:58px; left:54px; }
  .phone-screen { padding:27px 13px; }
  .phone-screen h3 { font-size:18px; }
  .sun-mark { font-size:58px; margin-top:35px; }
  .screen-tempo button { margin-top:25px; }
  .work { padding:80px 20px; }
  .section-heading { align-items:start; flex-direction:column; gap:15px; }
  .project-grid { grid-template-columns:1fr; }
  .project-art { height:300px; }
  .process { grid-template-columns:1fr; gap:40px; padding:80px 20px; }
  footer { grid-template-columns:1fr; padding:70px 20px 30px; gap:25px; }
  footer>div { align-items:flex-start; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  footer>p:last-child { text-align:left; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .button { transition:none; }
}
