/* ==========================================================================
   WILL & LPA CHECK UK — Free Will & LPA Checker
   One product, one flow. Mobile-first, 390px is the design canvas.
   No scrolling during the check: every screen is a full viewport.
   ========================================================================== */

/* ── Fonts ──────────────────────────────────────────────────────────────── */
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:600 800;font-display:swap;
  src:url('../fonts/playfair-display-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:600 800;font-display:swap;
  src:url('../fonts/playfair-display-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root{
  /* Sampled from the campaign artwork — do not eyeball these. */
  --navy:#021C3B;
  --navy-deep:#00142B;
  --navy-lift:#0A2A50;
  --gold:#D4A450;
  --gold-bright:#EBC784;
  --gold-deep:#A87B32;
  --bone:#FDFDFD;
  --white:#FDFDFD;

  --ink-on-gold:#021C3B;
  --soft:rgba(253,253,253,.72);
  --faint:rgba(253,253,253,.6);
  --hair:rgba(253,253,253,.16);
  --hair-gold:rgba(212,164,80,.4);

  --display:clamp(2.5rem,1.9rem + 3.4vw,4.25rem);
  --question:clamp(1.75rem,1.4rem + 1.9vw,2.75rem);
  --lede:clamp(1rem,.95rem + .35vw,1.25rem);
  --answer:clamp(1rem,.96rem + .22vw,1.125rem);
  --label:.6875rem;

  --pad:clamp(1.5rem,.9rem + 3vw,3.5rem);
  --col:34rem;                 /* the one column everything lines up to */
  --answer-h:clamp(60px,7.6vh,76px);
  --cta-h:clamp(62px,8vh,76px);

  --e-out:cubic-bezier(.16,1,.3,1);
  --e-soft:cubic-bezier(.4,0,.2,1);
}

/* ── Reset ──────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--navy);color:var(--bone);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow:hidden;overscroll-behavior:none;
}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
input{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
a{color:inherit}
svg{display:block}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
[tabindex="-1"]:focus{outline:none}
::selection{background:rgba(212,164,80,.32)}

.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
[hidden]{display:none!important}

/* ── Stage ──────────────────────────────────────────────────────────────── */
.stage{
  position:fixed;left:0;right:0;top:0;overflow:hidden;
  height:100vh;          /* fallback */
  height:100svh;         /* smallest visible area — safe when bars are showing */
  height:100dvh;         /* tracks the bars as they collapse */
}
.stage.on-entry::after{opacity:0}
.stage::after{ /* ambient gold light, top-centre — one soft source, nothing else */
  transition:opacity .5s var(--e-soft);
  content:'';position:absolute;left:50%;top:-38%;width:min(150vw,1000px);aspect-ratio:1;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(circle,rgba(212,164,80,.15) 0%,rgba(212,164,80,.05) 34%,transparent 62%);
}
.screen{
  position:absolute;inset:0;display:flex;flex-direction:column;
  padding:calc(var(--pad) + env(safe-area-inset-top)) var(--pad)
          calc(var(--pad) + env(safe-area-inset-bottom) + var(--cookie-h,0px));
  transition:padding-bottom .4s var(--e-out);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .42s var(--e-soft),visibility .42s;
}
.screen.is-active{opacity:1;visibility:visible;pointer-events:auto}
/* Screens with inputs always allow scrolling: on a phone the keyboard covers
   half the viewport, and nothing may become unreachable. The question screens
   stay fixed — they are short and must not move under the thumb. */
.screen.result{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Landscape phones and very short windows: shrink the furniture, and allow the
   screen itself to scroll rather than clipping anything. */
@media (max-height:620px){
  :root{
    --pad:1.1rem;--answer-h:46px;--cta-h:50px;
    --question:1.375rem;--display:2rem;--lede:.9375rem;
  }
  .screen{overflow-y:auto;overscroll-behavior:contain}
  .q__title{margin-bottom:1rem}
  .answers{gap:.4rem}
  .dial{width:min(34vh,190px)}
  .proc__status{margin-top:1.25rem;min-height:2.6em}
  .proc__note{position:static;margin-top:1rem}
  .tick{width:64px;height:64px}
}
.screen__body{flex:1;display:flex;flex-direction:column;justify-content:center;
  justify-content:safe center;min-height:0}
.screen__foot{flex:none;padding-top:clamp(1rem,2.4vh,2rem)}

.wrap{width:100%;max-width:var(--col);margin-inline:auto}
@media (min-width:1024px){ :root{--col:38rem} }

/* ── Type ───────────────────────────────────────────────────────────────── */
.display,.question,.result-head{
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-weight:700;
  text-transform:uppercase;letter-spacing:-.005em;line-height:1.02;text-wrap:balance;
  font-variant-numeric:lining-nums;font-feature-settings:'lnum' 1;
}
.display{font-size:var(--display)}
.question{font-size:var(--question);line-height:1.04}
.result-head{font-size:clamp(1.75rem,1.35rem + 1.9vw,2.875rem);line-height:1.05;letter-spacing:-.012em}
.lede{font-size:var(--lede);color:var(--soft);line-height:1.55;max-width:32rem}
.eyebrow{
  font-size:var(--label);font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
}
.micro{font-size:.75rem;line-height:1.5;color:var(--faint)}
.trust{
  font-size:.625rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);
  text-align:center;
}

/* ── Brand ──────────────────────────────────────────────────────────────── */
.badge{display:block;flex:none;width:clamp(62px,17vw,84px);height:auto}
.badge--check{width:clamp(38px,10vw,46px)}

/* ── Buttons ────────────────────────────────────────────────────────────── */
.cta{
  position:relative;display:flex;align-items:center;justify-content:center;gap:.8rem;width:100%;
  min-height:var(--cta-h);padding:1rem 1.5rem;
  background:linear-gradient(180deg,var(--gold-bright),var(--gold) 52%,var(--gold-deep));
  color:var(--ink-on-gold);border-radius:2px;
  font-size:clamp(.8125rem,.7rem + .38vw,.9375rem);font-weight:700;
  letter-spacing:clamp(.09em,.04em + .18vw,.16em);text-transform:uppercase;line-height:1.2;
  box-shadow:0 18px 40px -20px rgba(212,164,80,.8);
  transition:transform .16s var(--e-soft),box-shadow .3s var(--e-out),filter .3s var(--e-out);
  overflow:hidden;
}
.cta:hover{filter:brightness(1.05);box-shadow:0 22px 50px -20px rgba(212,164,80,.95)}
.cta:active{transform:scale(.985)}
.cta::after{ /* one gold sweep to draw the eye, then it rests — not a shimmer */
  content:'';position:absolute;top:0;bottom:0;width:45%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);
  transform:translateX(-160%);animation:sweep 3.4s var(--e-soft) 1.2s 2;
}
@keyframes sweep{0%{transform:translateX(-160%)}38%,100%{transform:translateX(320%)}}
.cta[disabled],.cta[aria-disabled="true"]{opacity:.5;pointer-events:none}
.cta.is-busy{color:transparent}
.cta.is-busy::after{animation:none;opacity:0}
.cta__spin{
  position:absolute;inset:0;margin:auto;width:22px;height:22px;border-radius:50%;
  border:2px solid rgba(2,28,59,.25);border-top-color:var(--ink-on-gold);opacity:0;
  animation:spin .7s linear infinite;
}
.cta.is-busy .cta__spin{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}

.ghost{
  display:inline-flex;align-items:center;gap:.6rem;min-height:44px;
  font-size:.6875rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);
  transition:color .25s var(--e-out);
}
.ghost:hover{color:var(--gold)}
.ghost svg{width:14px;height:14px}

/* ── Entry screen ───────────────────────────────────────────────────────── */
.entry{overflow:hidden}
.entry__photo{position:absolute;inset:0;z-index:-2;pointer-events:none}
.entry__photo img{width:100%;height:100%;object-fit:cover;object-position:88% 30%;transform:scale(1.06);transform-origin:right center}
.entry__scrim{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,
      var(--navy) 0%, rgba(2,28,59,.94) 22%, rgba(2,28,59,.42) 40%,
      rgba(2,28,59,.32) 55%, rgba(2,28,59,.9) 74%, var(--navy) 88%),
    linear-gradient(105deg, rgba(2,28,59,.96) 0%, rgba(2,28,59,.66) 34%, rgba(2,28,59,.12) 100%);
}
@media (min-width:768px){
  .entry__photo img{object-position:74% 26%}
  .entry__scrim{
    background:
      linear-gradient(90deg, var(--navy) 24%, rgba(2,28,59,.9) 42%, rgba(2,28,59,.12) 70%, rgba(2,28,59,.2) 100%),
      linear-gradient(180deg, rgba(2,28,59,.5) 0%, transparent 26%, transparent 74%, rgba(2,28,59,.55) 100%);
  }
}
.entry__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:none}
.entry__top{margin-bottom:clamp(.5rem,2vh,1.5rem)}
.entry .display{margin-top:clamp(1rem,2.4vh,2rem)}
.entry .lede{margin-top:clamp(1.1rem,2.6vh,1.75rem)}
.entry__rule{
  width:100%;height:1px;border:0;margin:clamp(1.5rem,3.6vh,2.75rem) 0 0;
  background:linear-gradient(90deg,var(--gold) 0%,rgba(201,164,92,.18) 45%,transparent 100%);
  transform-origin:left;animation:ruleIn 1.1s var(--e-out) .5s both;
}
@keyframes ruleIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.entry__cta{margin-bottom:clamp(.9rem,2vh,1.4rem)}
@media (min-width:768px){
  /* The campaign layout: type on the navy panel, photograph to the right. */
  .entry .wrap{margin-inline:0;max-width:31rem}
  .entry__cta .cta{max-width:23rem}
  .entry .trust,.entry .mini-links{text-align:left;justify-content:flex-start}
}
@media (min-width:1200px){ .entry .wrap{max-width:34rem} }

/* Headline line reveal */
.ln{display:block;overflow:hidden}
.ln>span{display:block;animation:lineUp 1s var(--e-out) both}
.ln:nth-child(2)>span{animation-delay:.1s}
.ln:nth-child(3)>span{animation-delay:.2s}
@keyframes lineUp{from{transform:translateY(104%)}to{transform:translateY(0)}}
.fade-up{animation:fadeUp .9s var(--e-out) both}
.d1{animation-delay:.34s}.d2{animation-delay:.46s}.d3{animation-delay:.58s}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ── Question screen ────────────────────────────────────────────────────── */
.q__top{
  flex:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  width:100%;max-width:var(--col);margin-inline:auto;
}
.q__count{
  font-size:.75rem;font-weight:700;letter-spacing:.22em;color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.q__count em{font-style:normal;color:var(--faint)}
.q__progress{
  flex:none;height:2px;background:rgba(253,253,253,.14);margin-top:1rem;position:relative;
  overflow:hidden;width:100%;max-width:var(--col);margin-inline:auto;
}
.q__progress i{
  position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright));
  transition:width .55s var(--e-out);
}
.q__title{margin-bottom:clamp(1.5rem,4vh,2.75rem)}
.answers{display:flex;flex-direction:column;gap:clamp(.5rem,1.1vh,.75rem)}
.answer{
  position:relative;display:flex;align-items:center;width:100%;min-height:var(--answer-h);
  padding:.9rem clamp(1rem,4vw,1.6rem);text-align:left;
  border:1px solid var(--hair);background:rgba(253,253,253,.05);color:var(--bone);
  font-size:var(--answer);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  transition:background-color .28s var(--e-out),border-color .28s var(--e-out),
             color .28s var(--e-out),transform .14s var(--e-soft);
  animation:answerIn .5s var(--e-out) both;
}
.answer:nth-child(1){animation-delay:.06s}
.answer:nth-child(2){animation-delay:.12s}
.answer:nth-child(3){animation-delay:.18s}
.answer:nth-child(4){animation-delay:.24s}
.answer:nth-child(5){animation-delay:.3s}
@keyframes answerIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (hover:hover){
  .answer:hover{background:rgba(212,164,80,.14);border-color:var(--hair-gold)}
}
.answer:active{transform:scale(.988)}
.answer__arrow{
  margin-left:auto;width:18px;height:18px;color:var(--faint);flex:none;
  transition:color .28s var(--e-out),transform .28s var(--e-out);
}
.answer:hover .answer__arrow{color:var(--gold);transform:translateX(3px)}
.answer.is-chosen{
  background:var(--gold);border-color:var(--gold);color:var(--ink-on-gold);
  box-shadow:0 16px 40px -22px rgba(212,164,80,.9);
}
.answer.is-chosen .answer__arrow{color:var(--ink-on-gold);transform:translateX(4px)}

/* ── Processing screen ──────────────────────────────────────────────────── */
.proc{align-items:center;justify-content:center;text-align:center}
.proc__body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  justify-content:safe center;width:100%}
.scanline{
  position:absolute;left:0;right:0;height:210px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(212,164,80,.07) 44%,rgba(212,164,80,.5) 50%,rgba(212,164,80,.07) 56%,transparent);
  animation:scan 2.6s cubic-bezier(.45,0,.55,1) infinite;opacity:.9;
}
@keyframes scan{0%{transform:translateY(-30vh)}100%{transform:translateY(105vh)}}
.dial{position:relative;width:min(70vw,300px);aspect-ratio:1}
.dial__ring{width:100%;height:100%;transform:rotate(-90deg)}
.dial__track{fill:none;stroke:rgba(253,253,253,.12);stroke-width:1}
.dial__arc{
  fill:none;stroke:url(#dialGold);stroke-width:2.5;stroke-linecap:round;
  stroke-dasharray:295.3;stroke-dashoffset:295.3;
  filter:drop-shadow(0 0 8px rgba(212,164,80,.45));
}
.dial__shield{ /* quiet mark behind the reading, never competing with it */
  position:absolute;left:50%;top:50%;width:42%;height:auto;aspect-ratio:64/72;
  transform:translate(-50%,-50%);color:rgba(201,164,92,.15);
}
.dial__pct{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;text-align:center;
  font-family:'Playfair Display',Georgia,serif;font-size:clamp(3rem,10vw,4.25rem);font-weight:600;
  line-height:1;color:var(--bone);font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:'lnum' 1,'tnum' 1;
}
.dial__pct sup{font-size:.34em;color:var(--gold);vertical-align:super;margin-left:.06em}
.proc__status{
  position:relative;margin-top:clamp(2rem,5vh,3.5rem);min-height:3.2em;width:100%;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.proc__status span{
  font-size:clamp(1rem,.9rem + .5vw,1.25rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bone);
}
.proc__status span.is-out{animation:statusOut .3s var(--e-soft) both}
.proc__status span.is-in{animation:statusIn .45s var(--e-out) both}
@keyframes statusIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes statusOut{to{opacity:0;transform:translateY(-12px)}}
.proc__note{ /* footnote, not part of the centred mass — the dial owns the middle */
  position:absolute;left:var(--pad);right:var(--pad);
  bottom:calc(var(--pad) + env(safe-area-inset-bottom));
  max-width:26rem;margin-inline:auto;
}

/* ── Result screen ──────────────────────────────────────────────────────── */
.result__body{flex:1;display:flex;flex-direction:column;justify-content:center;
  justify-content:safe center;min-height:0}
.result__head{text-align:center}
.result__badge{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:.7rem 1.35rem;border:1px solid var(--gold);color:var(--gold);
  font-size:.8125rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  background:rgba(212,164,80,.09);
}
.result__badge svg{width:16px;height:16px}
.result-head{margin-top:clamp(1.1rem,2.8vh,1.75rem);text-align:center}
.result__line{
  margin-top:clamp(.9rem,2.2vh,1.35rem);font-size:var(--lede);line-height:1.5;
  color:var(--soft);text-align:center;max-width:30rem;margin-inline:auto;
}
.result__panel{
  margin-top:clamp(1.25rem,3vh,2rem);padding-top:clamp(1.1rem,2.6vh,1.6rem);
  border-top:1px solid var(--hair-gold);
}
.result__panel .eyebrow{text-align:center;display:block}
.result__smallprint{
  margin-top:clamp(.7rem,1.6vh,1rem);font-size:.625rem;line-height:1.5;
  color:var(--faint);text-align:center;
}
.result__panel .eyebrow{color:var(--gold)}
.field{margin-top:clamp(.7rem,1.6vh,1rem)}
.field label{
  display:block;font-size:var(--label);font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faint);margin-bottom:.45rem;
}
.field input{
  width:100%;min-height:clamp(54px,6.8vh,64px);padding:.85rem 1.05rem;
  background:rgba(253,253,253,.06);border:1px solid var(--hair);border-radius:2px;
  color:var(--bone);font-size:1.25rem;font-weight:600;letter-spacing:.06em;
  transition:border-color .25s,background-color .25s,box-shadow .25s;
}
.field input::placeholder{color:rgba(253,253,253,.5);font-weight:400;letter-spacing:.04em}
.field input:focus{outline:none;border-color:var(--gold);background:rgba(212,164,80,.1);
  box-shadow:0 0 0 3px rgba(212,164,80,.16)}
.field.is-error input{border-color:#E08A72;box-shadow:0 0 0 3px rgba(224,138,114,.14)}
.field__error{display:none;margin-top:.55rem;font-size:.8125rem;color:#E8A38E}
.field.is-error .field__error{display:block;animation:fadeUp .3s var(--e-out) both}
.result__submit{margin-top:clamp(.75rem,1.8vh,1.1rem)}
.consent-note{
  margin-top:clamp(.6rem,1.4vh,.9rem);font-size:.625rem;line-height:1.5;
  color:var(--faint);text-align:center;
}
.consent-note a{color:var(--soft);text-decoration:underline;text-underline-offset:2px}
.consent-box{
  display:flex;gap:.75rem;align-items:flex-start;margin-top:clamp(.8rem,1.8vh,1.1rem);
}
.consent-box input{
  appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin-top:1px;
  border:1px solid var(--hair);background:rgba(253,253,253,.06);position:relative;cursor:pointer;
}
.consent-box input:checked{background:var(--gold);border-color:var(--gold)}
.consent-box input:checked::after{
  content:'';position:absolute;left:7px;top:3px;width:5px;height:10px;
  border:solid var(--ink-on-gold);border-width:0 2px 2px 0;transform:rotate(42deg);
}
.consent-box label{font-size:.6875rem;line-height:1.55;color:var(--faint);cursor:pointer}
.consent-box.is-error{outline:1px solid #E08A72;outline-offset:6px}
.form-error{
  display:none;margin-top:.9rem;padding:.75rem .9rem;border:1px solid rgba(224,138,114,.5);
  background:rgba(224,138,114,.08);color:#F0BCAA;font-size:.8125rem;
}
.form-error.is-shown{display:block;animation:fadeUp .3s var(--e-out) both}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ── Thank you ──────────────────────────────────────────────────────────── */
.ty{align-items:center;text-align:center}
.ty__body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  justify-content:safe center}
.tick{width:clamp(92px,26vw,128px);height:clamp(92px,26vw,128px)}
.tick__ring{
  fill:none;stroke:var(--gold);stroke-width:1.5;stroke-dasharray:339;stroke-dashoffset:339;
  transform:rotate(-90deg);transform-origin:50% 50%;animation:draw 1s var(--e-out) .1s forwards;
}
.tick__check{
  fill:none;stroke:var(--gold-bright);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:70;stroke-dashoffset:70;animation:draw .55s var(--e-out) .8s forwards;
}
@keyframes draw{to{stroke-dashoffset:0}}
.ty .display{margin-top:clamp(1.75rem,4vh,2.75rem);animation:fadeUp .8s var(--e-out) 1.15s both}
.ty .lede{margin-top:clamp(1rem,2.4vh,1.5rem);text-align:center;margin-inline:auto;
  animation:fadeUp .8s var(--e-out) 1.35s both}

/* ── Cookie bar ─────────────────────────────────────────────────────────── */
.cookie{
  position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;
  padding:1rem var(--pad) calc(1rem + env(safe-area-inset-bottom));
  background:rgba(4,16,29,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--hair);
}
.cookie.is-shown{display:block;animation:fadeUp .5s var(--e-out) both}
.cookie__inner{
  max-width:60rem;margin-inline:auto;display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;
  justify-content:space-between;
}
.cookie p{font-size:.6875rem;line-height:1.5;color:var(--faint);flex:1 1 16rem}
.cookie p a{color:var(--soft);text-decoration:underline}
.cookie__actions{display:flex;gap:.5rem;flex:none}
.cookie__btn{
  min-height:40px;padding:.5rem 1rem;border:1px solid var(--hair);
  font-size:.625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--soft);
  transition:border-color .25s,color .25s,background-color .25s;
}
.cookie__btn:hover{border-color:var(--gold);color:var(--gold)}
.cookie__btn--accept{background:var(--gold);border-color:var(--gold);color:var(--ink-on-gold)}
.cookie__btn--accept:hover{color:var(--ink-on-gold);filter:brightness(1.06)}

/* ── Footer links (entry + result only) ─────────────────────────────────── */
.mini-links{
  display:flex;gap:1.25rem;justify-content:center;flex-wrap:wrap;
  margin-top:clamp(.9rem,2vh,1.25rem);
}
.mini-links a{
  font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  transition:color .25s;text-decoration:none;
}
.mini-links a:hover{color:var(--gold)}

/* ── Legal document pages (separate, plain, out of the flow) ────────────── */
body.doc-page{overflow:auto;background:var(--navy)}
.doc{max-width:44rem;margin-inline:auto;padding:clamp(2.5rem,8vh,5rem) var(--pad) 6rem}
.doc__back{margin-bottom:2.5rem}
.doc h1{
  font-family:'Playfair Display',Georgia,serif;font-size:clamp(2rem,1.5rem + 2vw,3rem);font-weight:600;
  text-transform:uppercase;line-height:1.04;
}
.doc__meta{margin-top:1rem;font-size:.75rem;color:var(--faint)}
.doc h2{
  font-family:'Playfair Display',Georgia,serif;font-size:1.375rem;font-weight:600;text-transform:uppercase;
  margin-top:2.75rem;padding-top:1.5rem;border-top:1px solid var(--hair);letter-spacing:.02em;
  font-variant-numeric:lining-nums;font-feature-settings:'lnum' 1;
}
.doc p,.doc li{margin-top:.85rem;font-size:.9375rem;line-height:1.7;color:var(--soft)}
.doc ul{padding-left:1.15rem;margin:0}
.doc a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.doc .todo{
  display:block;margin-top:1.1rem;padding:.9rem 1rem;border:1px dashed var(--hair-gold);
  background:rgba(212,164,80,.08);color:var(--gold);font-size:.8125rem;
}
.doc .todo strong{display:block;font-size:.625rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.4rem}

/* ── Reduced motion ─────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.12s!important;
  }
  .scanline,.cta::after{display:none}
  .dial__arc{filter:none}
}
