/* next.css: shared shell for the homepage directions (/next/a…e).
   Each page sets its own palette through the --vars on body. */
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:'Inter',-apple-system,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}

.top{max-width:1240px;width:100%;margin:0 auto;padding:22px 28px 0;display:flex;justify-content:space-between;align-items:center}
.wm{font-family:'Fraunces',Georgia,serif;font-weight:700;font-variation-settings:'opsz' 26;letter-spacing:-.01em;font-size:24px;color:var(--mark);text-decoration:none}

.hero{flex:1;max-width:1240px;width:100%;margin:0 auto;padding:28px 28px 40px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:60px;align-items:center}
.hero.flip{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.hero.flip .film-wrap{order:2}

.film-wrap{position:relative;width:100%;aspect-ratio:1/1;border-radius:28px;overflow:hidden;background:var(--stage,#101409);box-shadow:0 30px 80px -40px rgba(0,0,0,.45)}
.stage{position:absolute;left:0;top:0;width:1080px;height:1080px;transform-origin:0 0;overflow:hidden}
.stage *{will-change:transform}

.copy h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-variation-settings:'opsz' 72;font-size:clamp(38px,4.6vw,62px);line-height:1.04;letter-spacing:-.015em;margin:0 0 18px}
.copy h1 i{font-style:italic;font-weight:500;color:var(--accent)}
.copy .sub{font-size:clamp(16px,1.35vw,19px);color:var(--mute);margin:0 0 28px;max-width:34em}
.copy .sub b{color:var(--ink);font-weight:600}

form.wl{display:flex;gap:10px;max-width:470px;flex-wrap:wrap}
form.wl input{flex:1 1 220px;min-width:0;font:inherit;font-size:16px;padding:15px 18px;border-radius:999px;border:1px solid var(--line);background:var(--field);color:var(--ink);outline:none}
form.wl input:focus{border-color:var(--accent)}
form.wl input::placeholder{color:var(--mute)}
form.wl button{font:inherit;font-size:16px;font-weight:700;padding:15px 24px;border-radius:999px;border:0;background:var(--btn);color:var(--btnInk);cursor:pointer;white-space:nowrap}
form.wl button:disabled{opacity:.7;cursor:default}
.wl-success{font-size:17px;font-weight:600;color:var(--accent);margin:4px 0 0}
.fine{font-size:13px;color:var(--mute);margin:14px 0 0}

.partners{display:flex;align-items:center;gap:14px;margin-top:30px;flex-wrap:wrap}
.partners span{font-family:'Courier New',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.partners img{height:30px;width:auto;border-radius:8px;display:block;background:#fff;box-shadow:0 0 0 1px rgba(127,127,127,.28)}
.partners img.wide{height:30px;padding:6px 10px;border-radius:8px;box-sizing:border-box}

.foot{max-width:1240px;width:100%;margin:0 auto;padding:0 28px 26px;display:flex;gap:18px;font-size:13px;color:var(--mute)}
.foot a{text-decoration:none}

@media (max-width:860px){
  .hero,.hero.flip{grid-template-columns:1fr;gap:30px;padding-top:16px}
  .hero.flip .film-wrap{order:0}
  .film-wrap{border-radius:22px}
}

/* Phones: the partner label takes its own line so the four logos sit on one row. */
@media (max-width:860px){
  .partners{gap:12px}
  .partners span{flex-basis:100%}
}

/* Form-first layout (html.ff) for ad landings on phones: headline and email first, the film after,
 * and a sticky join button once the form scrolls away. Off since Oct 11 2026 (no ads running): add
 * class="ff" to a film's <html> to turn it back on. */
@media (max-width:860px){
  html.ff .hero{gap:26px;padding-top:6px}
  html.ff .copy{order:-1;display:flex;flex-direction:column}
  html.ff .copy h1{font-size:clamp(32px,9vw,40px);margin-bottom:16px}
  html.ff .copy form.wl{order:1}
  html.ff .copy .wl-success{order:2}
  html.ff .copy .fine{order:3}
  html.ff .copy .sub{order:4;margin:22px 0 0}
  html.ff .copy .partners{order:5}
}
.go-bar{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:50;font:inherit;font-size:17px;font-weight:700;padding:16px 24px;border-radius:999px;border:0;background:var(--btn);color:var(--btnInk);box-shadow:0 12px 30px -10px rgba(0,0,0,.45);transform:translateY(140%);transition:transform .25s ease;cursor:pointer}
.go-bar.on{transform:none}
@media (min-width:861px){.go-bar{display:none}}

/* ?export=1: only the stage, 1080x1080, for the video renderer. */
body.export{background:var(--stage,#101409)}
body.export .top,body.export .copy,body.export .foot{display:none}
body.export .hero{display:block;padding:0;max-width:none;margin:0}
body.export .film-wrap{width:1080px;height:1080px;border-radius:0;box-shadow:none}

/* ---------- the WhatsApp phone, in 1080-stage design px ---------- */
.ph{position:absolute;width:600px;height:1250px;background:#0A0D08;border-radius:80px;padding:15px;box-shadow:0 60px 120px -40px rgba(0,0,0,.6),0 0 0 2px #2C3629}
.ph .scr{position:relative;width:100%;height:100%;border-radius:66px;overflow:hidden;background:#EFE7DE;color:#111B21;font-family:-apple-system,'Inter',sans-serif}
.ph .sb{height:70px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 46px 8px 52px;font-weight:600;font-size:25px;background:#F0F2F5;color:#111B21}
.ph .isl{position:absolute;top:16px;left:50%;width:150px;height:42px;margin-left:-75px;border-radius:30px;background:#000}
.ph .hd{height:104px;display:flex;align-items:center;gap:18px;padding:0 26px;background:#F0F2F5;border-bottom:1px solid #DDD6CD}
.ph .hd img,.ph .hd .av{width:62px;height:62px;border-radius:50%;object-fit:cover;flex:0 0 62px}
.ph .hd b{display:block;font-size:28px;line-height:1.15}
.ph .hd span{display:block;font-size:21px;color:#667781}
.ph .bd{padding:22px 22px 0;display:flex;flex-direction:column;gap:12px}
.ph .day{align-self:center;background:#fff;color:#54656F;font-size:19px;padding:5px 16px;border-radius:10px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.bb{max-width:80%;padding:13px 18px 9px;border-radius:18px;font-size:27px;line-height:1.36;box-shadow:0 1px 1px rgba(0,0,0,.08);position:relative}
.bb.in{align-self:flex-start;background:#fff;border-top-left-radius:6px}
.bb.out{align-self:flex-end;background:#D9FDD3;border-top-right-radius:6px}
.bb .nm{display:block;font-size:21px;font-weight:700;margin-bottom:2px}
.bb .t{display:block;text-align:right;font-size:17px;color:#667781;margin-top:3px}
.bb b{font-weight:700}
.bb .hl{background:#FFF3B0;border-radius:6px;padding:0 4px}
.typing{align-self:flex-start;background:#fff;border-radius:18px;border-top-left-radius:6px;padding:18px 22px;display:flex;gap:8px;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.typing i{width:12px;height:12px;border-radius:50%;background:#98A2A8;display:block}
.react{align-self:flex-start;margin:-10px 0 0 16px;background:#fff;border:1px solid #E5DED6;border-radius:999px;padding:3px 12px;font-size:20px;color:#54656F;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.react.r{align-self:flex-end;margin:-10px 16px 0 0}

/* ---------- the placeholder creator (next/creator.js), films F-J ---------- */
.cr-av{border-radius:50%;background:linear-gradient(135deg,#F7A35A 0%,#E8457A 55%,#8B6B8A 100%);color:#fff;font-family:'Fraunces',Georgia,serif;font-weight:700;font-variation-settings:'opsz' 26;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}
.cr-av img{width:100%;height:100%;object-fit:cover;display:block}
.host{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:6px;background:#E8F0EB;color:#2E6B47;font-size:15px;font-weight:700;letter-spacing:.04em;vertical-align:2px}
/* an Instagram story screen */
.igs{position:absolute;inset:0;color:#fff;font-family:-apple-system,'Inter',sans-serif}
.igs .bars{position:absolute;left:22px;right:22px;top:78px;display:flex;gap:6px}
.igs .bars i{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.35);overflow:hidden;display:block}
.igs .bars i b{display:block;height:100%;width:100%;background:#fff;transform-origin:0 50%}
.igs .who{position:absolute;left:24px;top:100px;display:flex;align-items:center;gap:14px;font-weight:700;font-size:25px}
.igs .who .cr-av{width:58px;height:58px;font-size:28px;border:3px solid #fff}
.igs .who small{font-weight:400;opacity:.75;font-size:22px}
.igs .say{position:absolute;left:44px;right:44px;top:330px;font-size:40px;line-height:1.28;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.igs .stk{position:absolute;left:0;right:0;margin:0 auto;width:max-content;top:700px;background:#fff;color:#111;border-radius:16px;padding:18px 28px;font-weight:800;font-size:26px;letter-spacing:.06em;white-space:nowrap;box-shadow:0 10px 30px -8px rgba(0,0,0,.4)}
.igs .stk::before{content:"\1F517  ";}
.vf{display:inline-block;width:1em;height:1em;margin-left:.25em;vertical-align:-.12em;flex:0 0 auto}
.pp{border-radius:50%;object-fit:cover;display:block;flex:0 0 auto}
.bb.in.wa{margin-left:58px}
.bb .bav{position:absolute;left:-58px;top:0;width:46px;height:46px;border-radius:50%;object-fit:cover}
.react.wa{margin-left:74px}
/* end cards overhang the stage so the phone's screen can't bleed through the
   anti-aliased bottom edge once the stage is scaled (the faint white line) */
.stage>.endc,.stage>.fin{inset:-8px}
.film-wrap .sound{position:absolute;right:14px;bottom:14px;z-index:6;display:flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;border:0;background:rgba(0,0,0,.55);color:#fff;font:600 13px/1 'Inter',sans-serif;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.film-wrap .sound[aria-pressed="true"]{background:rgba(255,255,255,.9);color:#111}
.foot .credit{margin-left:auto;opacity:.75}
.ph .hd span span{display:inline;font-size:inherit;color:inherit}
