/* The Calgary Five giveaway. Concept "Ticket A: one thing per screen". Mobile first.
   Brand tokens from Reece's brief. No em dashes anywhere in this file. */
:root{
  --violet:#8100C7; --ink:#0E0E10; --paper:#F7F6F3; --glacier:#8FD6F5; --white:#FFFFFF;
  --ink-70:rgba(14,14,16,.7); --ink-50:rgba(14,14,16,.5); --ink-10:rgba(14,14,16,.1); --ink-06:rgba(14,14,16,.06);
  --err:#C8102E;
  --ease:cubic-bezier(.16,1,.3,1);
  --display:'Archivo Black','Archivo Fallback',system-ui,sans-serif;
  --body:'Plus Jakarta Sans','Jakarta Fallback',system-ui,sans-serif;
  --col:600px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--body);font-size:16px;line-height:1.55;background:var(--paper);color:var(--ink);overflow-x:hidden}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.06;letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,8vw,2.6rem)}
h2{font-size:clamp(1.5rem,6.2vw,2rem)}
h3{font-size:1.15rem}
a{color:inherit}
p{max-width:40ch}
.wrap{padding-left:24px;padding-right:24px;max-width:var(--col);margin:0 auto}
.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-70)}
.muted{color:var(--ink-70)}
em{font-style:normal;color:var(--violet)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:56px;padding:0 1.6rem;border-radius:999px;font-family:var(--body);font-weight:700;font-size:1rem;text-decoration:none;border:0;cursor:pointer;transition:transform .12s ease,background .16s ease,opacity .16s ease;width:100%;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn:focus-visible{outline:3px solid var(--glacier);outline-offset:3px}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#262629}
.btn-violet{background:var(--violet);color:#fff}
.btn-violet:hover{background:#6E00AB}
.btn[disabled]{opacity:.6;cursor:default;transform:none}
.btn .arr{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);font-size:1.1rem;flex:0 0 34px}
@media (min-width:600px){.btn{width:auto}}

/* reveals: rise 32px + fade, once (Agera house motion) */
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* nav */
.nav{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;max-width:var(--col);margin:0 auto}
.brand{font-family:var(--display);font-size:.95rem;text-decoration:none}
.nav small{font-size:.75rem;font-weight:600;color:var(--ink-70)}

/* screen 1: words only */
.hero{padding-top:36px;padding-bottom:44px}
.hero h1{margin:14px 0 22px}
.hero .lead{font-size:1.05rem;color:var(--ink-70);margin-bottom:34px}
.hero .fine{margin-top:18px;font-size:.82rem;color:var(--ink-50)}

/* screen 2: the ticket alone */
.stage{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px 18px 64px;background:radial-gradient(70% 45% at 50% 55%,rgba(129,0,199,.10),transparent 70%);text-align:center}
.stage .eyebrow{margin-bottom:16px}
.tix{perspective:1200px;width:100%;max-width:420px}
.ticket{position:relative;background:var(--violet);color:#fff;border-radius:28px;padding:40px 30px 34px;text-align:left;box-shadow:0 40px 70px -34px rgba(129,0,199,.6);animation:tilt 8s ease-in-out infinite}
.ticket{-webkit-mask:radial-gradient(circle 16px at 0 calc(100% - 99px),transparent 98%,#000 100%),radial-gradient(circle 16px at 100% calc(100% - 99px),transparent 98%,#000 100%);-webkit-mask-composite:source-in;mask:radial-gradient(circle 16px at 0 calc(100% - 99px),transparent 98%,#000 100%),radial-gradient(circle 16px at 100% calc(100% - 99px),transparent 98%,#000 100%);mask-composite:intersect}
.ticket .lbl{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85;font-weight:700}
.ticket .big{font-family:var(--display);font-size:clamp(3.6rem,17vw,4.4rem);line-height:.92;margin:16px 0 16px;letter-spacing:-.02em}
.ticket .what{font-size:1.15rem;line-height:1.4;opacity:.95;max-width:none}
.ticket .stub{border-top:2px dashed rgba(255,255,255,.4);margin-top:34px;padding-top:22px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ticket .stub b{font-family:var(--display);font-weight:400;font-size:1.35rem}
.ticket .stub span{font-size:.85rem;opacity:.85;text-align:right}
@keyframes tilt{0%,100%{transform:rotateX(4deg) rotateY(-5deg)}50%{transform:rotateX(-3deg) rotateY(5deg)}}
@media (prefers-reduced-motion:reduce){.ticket{animation:none}}
.stage .under{margin-top:28px;font-size:.95rem;color:var(--ink-70);max-width:32ch}

/* FAQ accordion */
.faq{padding-top:40px;padding-bottom:40px}
.faq-list{display:grid;gap:10px}
.faq-item{background:var(--white);border-radius:18px;box-shadow:0 24px 50px -40px rgba(14,14,16,.35);overflow:hidden}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;padding:18px 18px 18px 20px;background:none;border:0;font:inherit;font-weight:700;font-size:.98rem;line-height:1.35;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.faq-q:focus-visible{outline:3px solid var(--glacier);outline-offset:-3px;border-radius:18px}
.faq-q i{position:relative;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--paper);transition:background .2s ease,transform .3s var(--ease)}
.faq-q i:before,.faq-q i:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .3s var(--ease)}
.faq-q i:after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item.open .faq-q i{background:var(--violet)}
.faq-item.open .faq-q i:before,.faq-item.open .faq-q i:after{background:#fff}
.faq-item.open .faq-q i:after{transform:translate(-50%,-50%) rotate(0deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-inner{overflow:hidden}
.faq-inner p{padding:0 20px 20px;color:var(--ink-70);font-size:.95rem;line-height:1.6;max-width:none}
.faq-inner a{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.faq-a,.faq-q i,.faq-q i:before,.faq-q i:after{transition:none}}

/* keep everything highlight */
.keep{margin-top:26px;padding:16px 18px;border-radius:16px;background:var(--glacier);color:var(--ink);font-weight:600;font-size:.98rem;line-height:1.5;max-width:36ch;text-align:left}

/* price transparency line */
.transparency{margin-top:16px;padding:12px 14px 12px 16px;border-left:4px solid var(--violet);color:var(--ink);font-size:.95rem;line-height:1.5}

/* one question to ask any agency */
.ask{padding-top:8px;padding-bottom:16px}
.qa{padding:20px 22px;border-radius:18px;background:var(--white);box-shadow:0 24px 50px -36px rgba(14,14,16,.35)}
.qa .q{font-family:var(--display);font-size:1.15rem;line-height:1.25;margin-bottom:10px;max-width:none}
.qa .a{color:var(--ink-70);font-size:.98rem;max-width:none}
.qa .a:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--violet);margin-right:8px;vertical-align:middle}

/* screen 3: the four spots */
.spots{padding:90px 24px;text-align:center}
.spots .n{font-family:var(--display);font-size:clamp(3rem,16vw,4.6rem);line-height:1;color:var(--violet)}
.spots h2{font-size:1.35rem;margin:16px 0 24px}
.spots{display:flex;flex-direction:column;align-items:center;padding:80px 18px 72px}
.gift{position:relative;width:100%;max-width:380px;padding-top:38px;text-align:left}
.gift-lid{height:30px;margin:0 -12px;background:var(--violet);border-radius:12px;box-shadow:0 10px 24px -14px rgba(129,0,199,.6);position:relative;z-index:1}
.gift-lid:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:26px;transform:translateX(-50%);background:var(--glacier);opacity:.9}
.gift-bow{position:absolute;top:0;left:50%;transform:translateX(-50%);width:96px;height:44px;z-index:2}
.gift-bow i{position:absolute;bottom:2px;width:44px;height:34px;border:5px solid var(--glacier);border-radius:60% 60% 50% 50%;background:var(--paper)}
.gift-bow i:first-child{left:2px;transform:rotate(-18deg)}
.gift-bow i:nth-child(2){right:2px;transform:rotate(18deg)}
.gift-bow b{position:absolute;left:50%;bottom:0;width:22px;height:22px;transform:translateX(-50%);border-radius:50%;background:var(--glacier);box-shadow:0 0 0 3px var(--paper)}
.gift-box{position:relative;background:var(--white);border-radius:0 0 26px 26px;padding:28px 24px 30px;box-shadow:0 36px 70px -34px rgba(129,0,199,.35),0 0 0 1.5px var(--ink-10);overflow:visible}
.gift-box:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:26px;transform:translateX(-50%);background:rgba(143,214,245,.22);pointer-events:none}
.gift-box>*{position:relative}
.gift-box .lbl{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--violet)}
.gift-box .big{font-family:var(--display);font-size:clamp(2.8rem,14vw,3.6rem);line-height:.95;margin:14px 0 12px;letter-spacing:-.02em}
.gift-box .big span{font-family:var(--body);font-weight:700;font-size:1rem;letter-spacing:0;color:var(--ink-70)}
.gift-box .what{font-size:1rem;line-height:1.45;color:var(--ink-70);max-width:none}
.gift-tag{margin:22px -6px -46px auto;width:max-content;max-width:240px;background:var(--paper);border:2px solid var(--violet);border-radius:12px;padding:12px 16px 12px 30px;transform:rotate(-3deg);position:relative;box-shadow:0 14px 30px -18px rgba(14,14,16,.4)}
.gift-tag:before{content:"";position:absolute;left:11px;top:50%;width:9px;height:9px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 2px var(--violet);transform:translateY(-50%)}
.gift-tag b{display:block;font-family:var(--display);font-weight:400;font-size:1.3rem;color:var(--violet);line-height:1;white-space:nowrap}
.gift-tag span{display:block;font-size:.76rem;color:var(--ink-70);margin-top:4px}
.spots .under{margin-top:64px;font-size:.95rem;color:var(--ink-70);max-width:32ch}

/* generic sections */
.section{padding-top:72px;padding-bottom:72px}
.section h2{margin-bottom:18px}
.section .intro{color:var(--ink-70);margin-bottom:28px}

/* who I am */
.who{display:grid;gap:22px}
.photo{width:96px;height:96px;border-radius:50%;background:linear-gradient(140deg,var(--violet),#3a0a5c);position:relative;overflow:hidden;flex:0 0 96px}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);text-align:center;line-height:1.5}
.who p{margin-bottom:14px;font-size:1.02rem;line-height:1.65}
.who .sig{font-family:var(--display);font-size:1.3rem;display:inline-block;transform:rotate(-3deg);margin-top:4px}

/* facts, one per row */
.facts{list-style:none}
.facts li{padding:24px 0;border-top:1px solid var(--ink-10)}
.facts li:last-child{border-bottom:1px solid var(--ink-10)}
.facts b{display:block;font-family:var(--display);font-weight:400;font-size:1.15rem;margin-bottom:6px;transition:color .35s ease}
.facts span{color:var(--ink-70);font-size:.95rem;display:block;max-width:40ch}
.facts li.active b{color:var(--violet)}
@media (prefers-reduced-motion:reduce){.facts b{transition:none}}

/* promo card */
.promo{margin-top:34px;padding:26px 24px;border-radius:20px;background:var(--white);box-shadow:0 30px 60px -40px rgba(14,14,16,.35)}
.promo .k{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--violet)}
.promo .n{font-family:var(--display);font-size:2.2rem;line-height:1;margin:10px 0 8px}
.promo p{color:var(--ink-70);font-size:.95rem;margin-top:10px}

/* why 3 months */
.why3 p{color:var(--ink-70);font-size:1.02rem;line-height:1.65}
.months{list-style:none;display:grid;gap:10px;margin:24px 0}
.months li{display:grid;grid-template-columns:86px 1fr;gap:12px;align-items:start;padding:16px 18px;border-radius:16px;background:var(--white);box-shadow:0 20px 44px -34px rgba(14,14,16,.35)}
.months b{font-family:var(--display);font-weight:400;font-size:1rem;color:var(--violet);line-height:1.3}
.months span{font-size:.95rem;color:var(--ink-70);line-height:1.5}

/* how it works */
.steps{list-style:none;display:grid;gap:18px}
.steps b{display:block;font-size:1.02rem;margin-bottom:4px}
.steps span{color:var(--ink-70);font-size:.95rem;display:block}

/* proof + spend */
.proof{padding:0 0 0 18px;border-left:4px solid var(--glacier)}
.proof p{font-family:var(--display);font-size:1.25rem;line-height:1.25;max-width:none}
.proof small{display:block;margin-top:12px;font-size:.82rem;color:var(--ink-70)}
.proof-shots{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.shot{margin:0;background:#fff;border:1px solid var(--ink-10);border-radius:10px;overflow:hidden;box-shadow:0 6px 18px rgba(14,14,16,.06)}
.shot img{display:block;width:100%;height:auto}
.shot-roas{width:151px}
.shot-wide{flex:1 1 100%;max-width:582px}
.spend{margin-top:48px;padding:22px 22px;border-radius:16px;background:var(--glacier);line-height:1.55}
.spend b{display:block;font-family:var(--display);font-weight:400;font-size:1.05rem;margin-bottom:6px}
.spend p{max-width:none;font-size:.95rem}
.deadline{margin-top:48px;text-align:center}
.deadline .d{font-family:var(--display);font-size:clamp(1.5rem,7vw,2.1rem);line-height:1.1}
.deadline p{margin:8px auto 0;color:var(--ink-70);font-size:.95rem}

/* form: no panel, smaller controls, three questions at a time */
.apply{padding:40px 0 30px}
.apply .card{background:var(--white);border-radius:28px;padding:30px 22px 26px;box-shadow:0 30px 70px -30px rgba(129,0,199,.28),0 12px 30px -18px rgba(14,14,16,.25),0 1px 0 rgba(255,255,255,.8) inset;max-width:480px}
@media (min-width:600px){.apply .card{padding:38px 34px 32px}}
.apply h2{margin-bottom:8px}
.apply .intro{margin-bottom:22px;font-size:.95rem}
.form{display:grid;gap:18px}
.progress{height:3px;border-radius:3px;background:var(--ink-10);overflow:hidden}
.progress .bar{display:block;height:100%;width:100%;background:var(--violet);transform-origin:left;transform:scaleX(.25);transition:transform .5s var(--ease)}
.step{display:none;gap:16px}
.step.active{display:grid;animation:stepin .45s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translateY(14px)}}
@media (prefers-reduced-motion:reduce){.step.active{animation:none}}
.field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px}
.field .help{display:block;font-weight:500;font-size:.82rem;color:var(--ink-70);margin:-2px 0 7px}
.field input[type=text],.field input[type=tel],.field input[type=email],.field textarea{width:100%;font:inherit;font-size:.95rem;padding:11px 14px;border-radius:12px;border:1.5px solid var(--ink-10);background:var(--paper);color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease;-webkit-appearance:none;appearance:none}
.field textarea{min-height:84px;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--violet);box-shadow:0 0 0 4px rgba(129,0,199,.15)}
.field .err{display:none;margin-top:6px;font-size:.82rem;color:var(--err);font-weight:600}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid textarea{border-color:var(--err)}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice label{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:12px;border:1.5px solid var(--ink-10);background:var(--paper);font-weight:700;cursor:pointer;margin:0;transition:background .16s ease,border-color .16s ease,color .16s ease}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice label:has(input:checked){background:var(--violet);border-color:var(--violet);color:#fff}
.choice label:has(input:focus-visible){box-shadow:0 0 0 4px rgba(129,0,199,.15)}
.check{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:.88rem;line-height:1.5;cursor:pointer;font-weight:500}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--violet)}
.check a{text-decoration:underline}
.field.invalid .check{color:var(--err)}
.nav-row{display:flex;gap:10px;margin-top:4px}
.nav-row .btn{min-height:50px;font-size:.95rem;flex:1;white-space:nowrap}
.nav-row .btn[hidden]{display:none}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink-10);flex:0 0 auto;padding:0 1.2rem}
.apply .fine{font-size:.82rem;color:var(--ink-70)}
.form-error{display:none;padding:12px 14px;border-radius:12px;background:#FDECEE;color:var(--err);font-size:.88rem;font-weight:600}
.form-error.show{display:block}
.ts-slot{min-height:0}

/* footer */
.footer{padding:44px 0 60px;background:var(--paper);border-top:1px solid var(--ink-10)}
.footer p{font-size:.8rem;line-height:1.6;color:var(--ink-70);max-width:none;margin-bottom:12px}
.footer a{text-decoration:underline}
.footer .brand{display:block;margin-bottom:14px}

/* sticky CTA (landing page only) */
.sticky-cta{position:fixed;left:16px;right:16px;bottom:14px;z-index:5;transition:opacity .3s ease,transform .3s var(--ease)}
.sticky-cta .btn{width:100%;box-shadow:0 18px 40px -18px rgba(14,14,16,.5)}
.sticky-cta.hide{opacity:0;transform:translateY(20px);pointer-events:none}
@media (min-width:600px){.sticky-cta{left:auto;right:24px;width:auto}}
.spacer{height:90px}

/* legal pages */
.legal{padding-top:16px;padding-bottom:80px}
.legal h1{margin-bottom:10px}
.legal .updated{color:var(--ink-70);font-size:.9rem;margin-bottom:34px}
.legal h2{font-size:1.2rem;margin:34px 0 10px}
.legal p,.legal li{font-size:.98rem;line-height:1.65;max-width:none;margin-bottom:10px}
.legal ul{padding-left:20px}
.legal .back{display:inline-block;margin-top:34px;font-weight:700}
.legal .pdf-link{margin:-18px 0 34px;font-size:.95rem;font-weight:700}
.legal .pdf-link a{text-decoration:underline}
/* print + the official-rules.pdf that build.py makes from rules.html */
@page{size:Letter;margin:16mm 18mm}
@media print{
  body{background:#fff}
  .page-rules .nav{padding:0 0 12px;max-width:none}
  .page-rules .legal{padding:0;max-width:none}
  .page-rules .pdf-link,.page-rules .back{display:none}
  .page-rules .footer{background:#fff;padding:24px 0 0;break-inside:avoid}
  .page-rules .footer .wrap{padding:0;max-width:none}
  .legal h2{break-after:avoid}
  .legal p,.legal li{orphans:3;widows:3}
  a{color:inherit}
}

/* thank you */
.thanks{min-height:calc(100dvh - 72px);display:flex;flex-direction:column;justify-content:center;padding-top:20px;padding-bottom:60px}
.thanks h1{margin:14px 0 18px}
.thanks .lead{font-size:1.05rem;color:var(--ink-70);margin-bottom:30px}
.thanks .next{list-style:none;display:grid;gap:16px;margin-bottom:34px}
.thanks .next li{position:relative;padding-left:26px}
.thanks .next li:before{content:"";position:absolute;left:0;top:7px;width:12px;height:12px;border-radius:50%;background:var(--glacier)}
.thanks .next li.v:before{background:var(--violet)}
.thanks .next b{display:block}
.thanks .next span{color:var(--ink-70);font-size:.95rem}
.thanks .nq{display:none;margin-bottom:26px;padding:16px 18px;border-radius:14px;background:var(--white);border:1.5px solid var(--ink-10);font-size:.92rem;line-height:1.55}
.thanks .nq.show{display:block}
