/* buoy. — styles
   Palette: change these variables to re-colour the whole site. */
@font-face{font-family:"Bricolage Grotesque";font-weight:300;font-style:normal;font-display:swap;src:url("assets/fonts/bricolage-grotesque-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:400;font-style:normal;font-display:swap;src:url("assets/fonts/bricolage-grotesque-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:500;font-style:normal;font-display:swap;src:url("assets/fonts/bricolage-grotesque-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-style:normal;font-display:swap;src:url("assets/fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2")}

:root{
  --accent:#ff8a6b;   /* the one colour, used only for actions */
  --canvas:#dce5e5;
  --paper:#f1f6f5;
  --ink:#0d2027;
  --graphite:#4a6168;
  --hair:#b0c2c4;
  --muted:#8ea6aa;
  --stripe:#cfdbdb;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:400;font-size:17px;line-height:1.5;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
h1,h2,h3,p{margin:0}
img{display:block;max-width:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.eyebrow{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--graphite)}
.rule{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-bottom:20px;border-bottom:1px solid var(--hair)}

/* NAV */
.nav-wrap{padding:20px 24px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:780px;margin:0 auto;padding:6px 8px 6px 22px;background:var(--ink);color:var(--paper);border-radius:999px}
.nav .logo img{height:36px;width:auto}
.nav .links{display:flex;gap:28px;font-size:14px}
.nav .links a:hover{opacity:.7}
.btn-sm{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;background:var(--accent);color:var(--ink);border-radius:999px;font-weight:500;font-size:14px}

/* HERO */
.hero{padding:56px 40px 0}
.hero h1{margin-top:40px;font-weight:300;font-size:clamp(52px,10.2vw,160px);line-height:.92;letter-spacing:-.045em}
.hero-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 40px;margin:44px 0 56px}
.hero-row p{flex:1 1 320px;max-width:400px;color:var(--graphite)}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;background:var(--accent);border-radius:999px;font-weight:500;transition:transform .15s ease}
.btn:hover{transform:translateY(-2px)}
.link-u{font-weight:500;border-bottom:1px solid var(--ink)}

.hero-comp{position:relative;container-type:inline-size;height:clamp(300px,47vw,640px)}
.laptop{position:absolute;left:0;top:0;width:80%;aspect-ratio:16/10;background:#f5f9fd;border-radius:14px;overflow:hidden;container-type:inline-size}
.phone{position:absolute;right:3%;bottom:0;width:22%;aspect-ratio:9/18;background:#0f1f2e;border:.8cqw solid var(--ink);border-radius:3.2cqw;overflow:hidden;container-type:inline-size}
.pg-bar{display:flex;align-items:center;justify-content:space-between;padding:2.2cqw 4cqw;font-size:1.5cqw}
.pg-prime .pg-bar{background:#0a1b33;color:#fff}
.pg-prime .blue{color:#1a8cff}
.pg-body{padding:6cqw 4cqw 0;color:#0a1b33}
.pg-body .h{max-width:58cqw;font-weight:700;font-size:5.6cqw;line-height:1;letter-spacing:-.02em}
.pg-body .s{margin-top:2.4cqw;max-width:40cqw;font-size:1.7cqw;opacity:.7}
.pg-btn{display:inline-block;margin-top:3cqw;padding:1.2cqw 3cqw;background:#1a8cff;color:#fff;border-radius:99px;font-size:1.6cqw;font-weight:700}
.ph-in{padding:9cqw 8cqw;color:#fff}
.ph-in .k{font-size:7cqw;font-weight:700;color:#2bbfbf;letter-spacing:.08em}
.ph-in .h{margin-top:10cqw;font-size:15cqw;line-height:.95;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.ph-in .h i{color:#c8b482}
.ph-in .b{display:inline-block;margin-top:10cqw;padding:3.4cqw 7cqw;background:#2bbfbf;border-radius:1cqw;font-size:6.4cqw;font-weight:700}

/* STATEMENT */
.statement{padding:140px 40px 130px}
.statement p{max-width:1100px;font-weight:300;font-size:clamp(28px,4.3vw,66px);line-height:1.08;letter-spacing:-.03em}
.pill{display:inline-block;padding:0 .3em;border:1px solid var(--ink);border-radius:999px;font-size:.82em;line-height:1.2;letter-spacing:-.01em}
.pill.fill{background:var(--accent);border-color:var(--accent)}

/* WORK */
.work{padding:0 40px 140px}
.work .rule{margin-bottom:56px}
.plate{display:flex;flex-wrap:wrap;gap:28px 48px;margin-bottom:120px}
.plate.p1{align-items:flex-end}
.plate.p2{flex-wrap:wrap-reverse;align-items:flex-start}
.plate .shot{flex:1 1 520px;min-width:0}
.plate.p2 .shot{flex:1 1 440px;max-width:780px;margin-left:auto}
.plate .copy{flex:0 1 300px;min-width:240px}
.plate.p2 .copy{padding-top:40px}
.plate h3{margin:8px 0 12px;font-weight:300;font-size:44px;line-height:1;letter-spacing:-.03em}
.plate p.d{color:var(--graphite)}
.plate .link-u{display:inline-block;margin-top:18px}
.screen{background:#0f1f2e;border-radius:14px;overflow:hidden;container-type:inline-size;aspect-ratio:16/10}
.screen.prime{background:#f5f9fd;aspect-ratio:4/3}
.yp-bar{display:flex;align-items:center;justify-content:space-between;padding:2.2cqw 4cqw;background:#fff;color:#1c2b3a;font-size:1.5cqw}
.yp-bar b,.yp-k{color:#2bbfbf}
.yp-bar .n{font-weight:700;color:#2bbfbf;letter-spacing:.08em}
.yp-main{display:flex;gap:4cqw;padding:5cqw 4cqw;color:#fff}
.yp-main>div{flex:1 1 50%}
.yp-k{font-size:1.5cqw;letter-spacing:.12em}
.yp-h{margin-top:1.6cqw;font-size:7.4cqw;line-height:.92;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.yp-h i{color:#c8b482}
.yp-btn{display:inline-block;margin-top:3cqw;padding:1.3cqw 3cqw;background:#2bbfbf;border-radius:.5cqw;font-size:1.6cqw;font-weight:700}
.ba{display:flex;height:34cqw;border-radius:.8cqw;overflow:hidden}
.ba i{flex:1;background:#6b6f69}.ba i+i{background:#cfd9d6}.ba b{width:.5cqw;background:#2bbfbf}
.pr-bar{display:flex;align-items:center;justify-content:space-between;padding:2.4cqw 4cqw;background:#0a1b33;color:#fff;font-size:1.7cqw}
.pr-body{padding:6cqw 5cqw;color:#0a1b33}
.pr-body .h{font-weight:700;font-size:7cqw;line-height:1;letter-spacing:-.02em}
.pr-cards{display:flex;gap:2cqw;margin-top:5cqw}
.pr-cards i{flex:1;height:24cqw;border-radius:1.2cqw;background:#0a1b33}
.pr-cards i:nth-child(2){background:#1a8cff}.pr-cards i:nth-child(3){background:#e4f1ff}
.small-plates{display:flex;flex-wrap:wrap;gap:40px}
.small-plates>div{flex:1 1 360px;min-width:0}
.ph-box{aspect-ratio:4/3;border-radius:14px;background:repeating-linear-gradient(135deg,var(--canvas) 0 14px,var(--stripe) 14px 28px);border:1px dashed var(--graphite);display:flex;align-items:center;justify-content:center;color:var(--graphite);font-size:14px;letter-spacing:.05em;text-transform:uppercase;text-align:center;padding:12px}
.next{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:4/3;padding:28px;background:var(--accent);border-radius:14px;transition:transform .15s ease}
.next:hover{transform:translateY(-3px)}
.next .big{font-weight:300;font-size:clamp(40px,5vw,76px);line-height:.95;letter-spacing:-.04em}
.small-plates .eyebrow{margin-top:18px}
.small-plates h3{margin-top:6px;font-weight:300;font-size:32px;letter-spacing:-.03em}

/* PRICES */
.prices{margin:0 16px;padding:100px 40px 110px;background:var(--paper);border-radius:28px}
.prices h2{max-width:900px;margin:24px 0 64px;font-weight:300;font-size:clamp(40px,6vw,92px);line-height:.95;letter-spacing:-.04em}
.tier{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 40px;padding:32px 0;border-top:1px solid var(--ink)}
.tier:last-of-type{border-bottom:1px solid var(--ink)}
.tier .t{flex:1 1 240px}
.tier .t .no{font-size:13px;color:var(--graphite)}
.tier .t h3{margin-top:4px;font-weight:300;font-size:44px;line-height:1;letter-spacing:-.03em}
.tier .sum{flex:1 1 260px;color:var(--graphite)}
.tier .inc{flex:1 1 260px;font-size:15px;margin:0;padding:0;list-style:none}
.tier .price{flex:0 0 160px;font-weight:300;font-size:56px;line-height:1;letter-spacing:-.04em}
.m-price{display:none;font-weight:300;font-size:34px;letter-spacing:-.04em}
.badge{padding:2px 10px;background:var(--accent);border-radius:99px;color:var(--ink)}

/* ASK */
.ask{display:flex;flex-wrap:wrap;gap:48px 80px;padding:140px 40px}
.ask .l{flex:1 1 320px}
.ask h2{margin-top:20px;font-weight:300;font-size:clamp(40px,5.6vw,84px);line-height:.95;letter-spacing:-.04em}
.ask .l p.s{margin-top:24px;max-width:340px;color:var(--graphite)}
.chat{flex:1 1 440px;display:flex;flex-direction:column;gap:14px;max-width:640px}
.q,.a{margin:0;padding:14px 22px}
.q{align-self:flex-end;background:var(--ink);color:var(--paper);border-radius:20px 20px 4px 20px}
.a{align-self:flex-start;max-width:520px;margin-bottom:18px;background:var(--paper);border-radius:20px 20px 20px 4px}
.chat .a:last-child{margin-bottom:0}

/* CONTACT */
.contact{margin:0 16px 16px;padding:110px 40px 96px;background:var(--ink);color:var(--paper);border-radius:28px}
.contact .eyebrow{color:var(--muted)}
.contact h2{margin-top:24px;font-weight:300;font-size:clamp(52px,11vw,176px);line-height:.9;letter-spacing:-.05em}
.contact .row{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;margin-top:56px}
.contact .btn{min-height:64px;padding:0 36px;color:var(--ink);font-size:19px}
.contact .num{font-weight:300;font-size:38px;letter-spacing:-.03em}
.contact .reply{color:var(--muted)}

footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding:20px 40px 36px;font-size:13px;color:var(--graphite)}

/* PHONE LAYOUT */
@media (max-width:700px){
  body{font-size:16px}
  .nav-wrap{padding:12px 14px 0}
  .nav{padding:6px 6px 6px 16px}
  .nav .links{display:none}
  .nav .logo img{height:32px}
  .hero{padding:36px 18px 0}
  .hero .rule{font-size:11px;padding-bottom:14px;gap:4px 16px}
  .hero .rule span:nth-child(3){display:none}
  .hero h1{margin-top:28px;font-size:clamp(46px,15vw,70px);line-height:.93}
  .hero-row{flex-direction:column;align-items:stretch;gap:20px;margin:24px 0 36px}
  .hero-row p{flex:0 0 auto}
  .cta-row{flex-direction:column;align-items:stretch;gap:18px}
  .cta-row .btn{width:100%}
  .cta-row .link-u{align-self:flex-start}
  .hero-comp{height:auto;aspect-ratio:1/.86}
  .laptop{width:88%;border-radius:10px}
  .phone{width:38%;right:0;border-width:4px;border-radius:18px}
  .pg-bar{font-size:2.4cqw}.pg-body{padding:7cqw 5cqw}.pg-body .h{font-size:6.6cqw;max-width:62cqw}
  .pg-body .s,.pg-btn{display:none}
  .statement{padding:80px 18px 70px}
  .statement p{font-size:29px;line-height:1.1}
  .work{padding:0 18px 80px}
  .work .rule{margin-bottom:28px;font-size:11px;padding-bottom:14px}
  .plate{margin-bottom:56px;gap:16px}
  .plate .shot,.plate.p2 .shot{flex:1 1 100%;max-width:none}
  .plate .copy,.plate.p2 .copy{flex:1 1 100%;min-width:0;padding-top:0}
  .plate h3{font-size:36px;margin:4px 0 8px}
  .plate.p2{flex-direction:column;flex-wrap:nowrap}
  .plate.p2 .shot{order:-1;flex:0 0 auto;width:100%;margin-left:0}
  .plate.p2 .copy{flex:0 0 auto}
  .small-plates{gap:40px}
  .next{aspect-ratio:1/1;padding:22px}
  .next .big{font-size:52px}
  .prices{margin:0 10px;padding:56px 18px 48px;border-radius:22px}
  .prices .rule{font-size:11px}
  .prices h2{font-size:50px;margin:16px 0 28px}
  .tier{gap:8px;padding:22px 0}
  .tier .t{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between}
  .tier .t .no{flex:1 1 100%}
  .tier .t h3{font-size:34px;margin:0}
  .tier .price{display:none}
  .tier .sum{flex:1 1 100%;font-size:15px}
  .tier .inc{flex:1 1 100%;font-size:14px;color:var(--graphite)}
  .m-price{display:block}
  .ask{padding:72px 18px 64px;gap:28px}
  .ask h2{font-size:46px;margin-top:0}
  .ask .l .eyebrow,.ask .l p.s{display:none}
  .q,.a{padding:12px 18px;border-radius:18px 18px 4px 18px}
  .a{border-radius:18px 18px 18px 4px;max-width:300px;margin-bottom:14px}
  .contact{margin:0 10px 10px;padding:64px 18px 56px;border-radius:22px}
  .contact .row{margin-top:36px;gap:16px}
  .contact .btn{width:100%}
  .contact .num{font-size:30px}
  footer{padding:20px 18px 32px}
}
