/* Campaign shell. App surfaces keep their own production tokens and proportions. */
/* Tapes uses its app palette independently of Galambas Studio. The action fill
   is a slightly deeper purple so small white button labels meet AA contrast. */
.campaign-page { --bg:#0c0a14; --text:#f5f3f9; --muted:#c4c1d0; --faint:#9c99a6; --accent:#7c5cff; --accent-action:#7655ff; --accent-hover:#6f4cf4; background:var(--bg); }
.campaign-page .shell { max-width:1280px; padding:0 48px; }
a { color:inherit; }
.skip-link { position:absolute; top:8px; left:12px; z-index:50; padding:12px 18px; background:#fff; color:#111; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.campaign-page .nav { min-height:104px; padding:24px 0; gap:24px; border-bottom:1px solid #ffffff14; }
.nav .mark img { width:116px; height:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:32px; font-size:13px; }
.nav-links a { text-decoration:none; padding:12px 0; }
.nav-links .nav-join { border-bottom:1px solid var(--accent); }
.nav-join span { margin-left:14px; }
.campaign-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:30px; padding:40px 0 64px; min-height:770px; }
.campaign-copy { position:relative; z-index:2; }
.campaign-page .eyebrow { color:var(--accent); font-size:11px; letter-spacing:1.8px; line-height:1.5; font-weight:600; }
.campaign-page h1 { font-size:clamp(54px,6.9vw,98px); font-weight:600; letter-spacing:-4px; line-height:.98; margin:28px 0 26px; }
.campaign-page h1 em { color:var(--accent); font-style:normal; }
.campaign-page .lede { font-size:17px; line-height:1.7; max-width:445px; margin:0; }
.hero-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin-top:34px; }
.button-primary { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:52px; padding:14px 22px; background:var(--accent-action); color:#fff; font-weight:700; border-radius:10px; text-decoration:none; font-size:14px; transition:background .18s,transform .18s; }
.button-primary:hover { background:var(--accent-hover); transform:translateY(-2px); }
.text-link { display:inline-flex; align-items:center; gap:15px; min-height:44px; font-size:13px; text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:8px; }
.availability { display:flex; align-items:center; gap:8px; font-size:11px; color:var(--faint); margin:22px 0 0; }
.availability>span { width:5px; height:5px; background:var(--accent); border-radius:50%; }
.studio-signature { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:var(--faint); font-size:11px; text-decoration:none; }
.campaign-copy>.studio-signature { margin-top:48px; }
.studio-signature strong { color:var(--text); font-weight:600; }
.campaign-product { position:relative; isolation:isolate; overflow:clip; padding:24px 0; display:grid; place-items:center; min-width:0; }

.campaign-product .home-preview-wrap { width:318px; margin-left:36px; }
.campaign-product .home-preview { height:590px; }
.campaign-product .home-phone { border:1px solid #7c5cff80; box-shadow:0 30px 70px #000c,0 0 1px 4px #171522; }
.campaign-product .home-preview-header { padding:16px 14px 6px; gap:8px; }
.campaign-product .home-preview-tabs { gap:14px; }
.campaign-product .home-preview-tab { font-size:14px; }
.campaign-product .home-preview-tools { gap:7px; }
.campaign-product .home-preview-chain { padding:0 10px; }
.campaign-product .home-preview-wrap>.demo-label { margin:0 0 14px; text-transform:uppercase; font-size:9px; letter-spacing:1.5px; color:var(--muted); text-align:center; }
.campaign-product .home-preview-hint { margin:16px 0 0; font-size:10px; color:var(--faint); }
.home-cover-art { object-fit:cover; }
.home-cover-reaction { position:absolute; z-index:-1; width:90%; height:auto; bottom:35px; left:5%; filter:drop-shadow(0 0 2px #fff) drop-shadow(0 2px 8px #0006); }
.campaign-scene { position:relative; aspect-ratio:1.92; border-radius:20px; overflow:hidden; margin:12px 0 130px; background:#1a1822; }
.campaign-scene>img { width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.campaign-scene::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#0006,transparent 35%,#000b); pointer-events:none; }
.scene-note { position:absolute; top:32px; left:36px; z-index:1; display:flex; align-items:center; gap:9px; font-size:10px; letter-spacing:1.5px; }
.scene-record { width:6px; height:6px; border-radius:50%; background:#ee5e59; }
.scene-headline { position:absolute; left:36px; right:36px; bottom:40px; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.scene-headline h2 { margin:0; font:600 clamp(32px,4vw,58px)/1 var(--display); letter-spacing:-1.7px; }
.scene-headline p { margin:0 0 4px; font-size:13px; line-height:1.7; }
.campaign-caption { position:absolute; bottom:10px; right:18px; z-index:1; font-size:9px; color:#ffffffa6; }
.workflow { display:grid; grid-template-columns:.9fr 1.1fr; gap:76px; align-items:center; margin:0 0 130px; scroll-margin-top:32px; }
.campaign-page h2 { font-weight:600; }
.workflow h2,.reaction-copy h2 { font:600 clamp(38px,4.8vw,62px)/1.02 var(--display); letter-spacing:-2px; margin:20px 0; }
.workflow-intro>p:not(.eyebrow),.reaction-copy>p:not(.eyebrow) { font-size:16px; line-height:1.65; color:var(--muted); max-width:400px; }
.workflow-list { list-style:none; padding:0; margin:36px 0 0; }
.workflow-list li { display:flex; gap:20px; padding:18px 0; border-top:1px solid #ffffff18; }
.workflow-list li>span { font-size:10px; color:var(--accent); padding-top:4px; font-variant-numeric:tabular-nums; }
.workflow-list h3 { margin:0 0 6px; font:500 19px/1.3 var(--display); }
.workflow-list p { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.workflow-preview { min-width:0; }
.reaction-feature { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:100px; margin:0 0 110px; }
.reaction-art { height:530px; position:relative; isolation:isolate; }
.reaction-photo { position:absolute; inset:15px 16% 30px 12%; border:1px solid #ffffff33; border-radius:24px; overflow:hidden; transform:rotate(-6deg); box-shadow:0 30px 70px #0008; }
.reaction-photo>img { width:100%; height:100%; object-fit:cover; object-position:30% center; }
.reaction-photo>span { position:absolute; top:20px; left:16px; right:16px; text-align:center; font:700 30px/.95 var(--display); text-shadow:0 2px 10px #000; }
.reaction-person { position:absolute; bottom:24px; right:-10px; width:82%; height:auto; filter:drop-shadow(0 0 2px white) drop-shadow(0 8px 14px #0007); transform:rotate(4deg); }
.reaction-tag { position:absolute; bottom:12px; left:10%; z-index:2; background:var(--accent-action); color:#fff; padding:12px 18px; font-size:9px; letter-spacing:1.8px; font-weight:700; transform:rotate(-3deg); }
.pace-strip { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ffffff22; border-bottom:1px solid #ffffff22; margin-bottom:110px; padding:34px 0; gap:36px; }
.pace-strip p { display:flex; flex-direction:column; gap:8px; margin:0; }
.pace-strip strong { font:500 26px/1.2 var(--display); }
.pace-strip span { color:var(--muted); font-size:12px; }
.campaign-page .waitlist { background:radial-gradient(ellipse at top right,#7c5cff24,transparent 70%),#171522; border:1px solid #7c5cff55; border-radius:20px; padding:48px; margin-bottom:100px; scroll-margin-top:40px; }
.campaign-page .waitlist-copy { max-width:430px; min-width:0; }
.campaign-page .waitlist-copy h2 { font-size:36px; line-height:1.1; }
.campaign-page .waitlist-copy p { line-height:1.65; margin-top:14px; }
.campaign-page .waitlist-inner { gap:50px; }
.campaign-page .waitlist-form { max-width:400px; min-width:0; }
.campaign-page .cta { animation:none; box-shadow:none; border-radius:10px; background:var(--accent-action); min-height:52px; }
.campaign-page .closing-link { background:var(--accent-action); }
.campaign-page .cta:hover:not(:disabled),.campaign-page .closing-link:hover { background:var(--accent-hover); }
.campaign-page .fineprint { line-height:1.6; }
.campaign-page .faq { padding:0 0 70px; }
.campaign-page .faq .section-head { text-align:left; margin-bottom:30px; }
.campaign-page .faq-list { max-width:none; }
.campaign-page .faq-item { background:none; border:0; border-bottom:1px solid #ffffff22; border-radius:0; }
.campaign-page .faq-q { padding:22px 0; }
.campaign-page .faq-a { padding-left:0; padding-right:0; max-width:850px; }
.campaign-page .closing { padding:60px 0 100px; }
.campaign-page .closing h2 { font-size:clamp(38px,5.5vw,72px); letter-spacing:-2px; line-height:1.03; }
.campaign-page .footer { gap:20px; border-top:1px solid #ffffff1a; padding:24px 0 36px; flex-wrap:wrap; }
.campaign-page .footer-links { font-size:11px; line-height:2; }
.campaign-page .copy { font-size:10px; }
[hidden] { display:none !important; }
@media (max-width:1000px) {
 .campaign-page .shell { padding:0 30px; }
 .campaign-hero { gap:0; }
 .campaign-product .home-preview-wrap { margin-left:0; }
 .workflow { gap:36px; }.reaction-feature { gap:45px; }
 .campaign-page h1 { letter-spacing:-3px; }
 .scene-headline p { display:none; }
}
@media (max-width:760px) {
 .campaign-page .shell { padding:0 22px; }
 .campaign-page .nav { min-height:84px; padding:20px 0; }
 .nav .mark img { width:98px; }.nav-links { gap:18px; font-size:11px; }
 .nav-links>a:first-child { display:none; }
 .campaign-hero { grid-template-columns:1fr; padding:46px 0 55px; gap:46px; min-height:0; }
 .campaign-page h1 { font-size:clamp(58px,12vw,88px); letter-spacing:-3px; margin:22px 0; }
 .campaign-page .lede { font-size:15px; max-width:520px; }
 .hero-actions { gap:22px; margin-top:26px; }.button-primary { font-size:13px; padding:13px 18px; }
 .campaign-copy>.studio-signature { margin-top:22px; }.availability { margin-top:17px; }
 .campaign-product { margin:0 -10px; }
 .campaign-product .home-preview-wrap { width:min(318px,100%); }
 .campaign-scene { aspect-ratio:.95; margin:0 0 80px; border-radius:16px; }
 .campaign-scene>img { object-position:56% center; }
 .scene-note { top:24px; left:22px; font-size:8px; letter-spacing:1px; }
 .scene-headline { left:22px; right:22px; bottom:34px; }.scene-headline h2 { font-size:40px; letter-spacing:-1.3px; }
 .workflow,.reaction-feature { grid-template-columns:1fr; gap:40px; margin-bottom:78px; }
 .workflow h2,.reaction-copy h2 { font-size:46px; }
 .workflow-list { margin-top:24px; }.workflow-list li { padding:16px 0; }
 .workflow-preview { max-width:480px; width:100%; margin:auto; }
 .reaction-art { height:450px; max-width:420px; width:100%; margin:auto; }.reaction-feature { gap:24px; }
 .reaction-copy { padding-bottom:0; }.reaction-person { right:0; }
 .pace-strip { gap:20px; grid-template-columns:1fr; padding:28px 0; margin-bottom:70px; }
 .pace-strip p { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:18px; }.pace-strip strong { font-size:23px; }.pace-strip span { font-size:11px; line-height:1.6; }
 .campaign-page .waitlist { padding:28px 22px; margin-bottom:70px; }.campaign-page .waitlist-inner { display:block; }
 .campaign-page .waitlist-copy h2 { font-size:33px; }.campaign-page .waitlist-form { max-width:none; margin-top:26px; width:100%; }
 .campaign-page .section-head h2 { font-size:34px; }.campaign-page .faq-q { font-size:16px; }
 .campaign-page .closing { padding:32px 0 70px; }.campaign-page .closing h2 { font-size:46px; }
 .campaign-page .footer { display:block; }.campaign-page .footer-links { margin:14px 0; }
}
@media (max-width:360px) {
 .campaign-page .shell { padding:0 16px; }.campaign-page h1 { font-size:54px; }
 .campaign-product { margin:0; }.scene-headline h2 { font-size:34px; }
 .campaign-product .home-preview-header { gap:5px; padding-left:10px; padding-right:10px; }.campaign-product .home-preview-tabs { gap:10px; }
 .campaign-product .home-preview-tab { font-size:13px; }.campaign-product .home-preview-tools { gap:5px; }.campaign-product .home-preview-chain { gap:5px; padding:0 8px; }
 .reaction-art { height:390px; }.hero-actions { gap:15px; }.button-primary { gap:15px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
