@font-face{font-family:Fraunces;font-style:normal;font-weight:400 800;font-display:swap;src:url("fonts/fraunces-var.woff2?v=e7916543") format("woff2")}
@font-face{font-family:Fraunces;font-style:italic;font-weight:400 800;font-display:swap;src:url("fonts/fraunces-var-italic.woff2?v=7026a01a") format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url("fonts/manrope-var.woff2?v=a30ddcd3") format("woff2")}
/* Cookie Golf · Pro V1 Giveaway #1 · Version B (felt + cookie world) */
:root{
  --cream:#FEF6E0; --paper:#FFFDFB; --dough:#F6E3BF; --dough-d:#EAD3A6;
  --ink:#2D1F14; --ink-2:#5A4330; --muted:#7A6450;
  --cookie:#B97634; --cookie-d:#8A5226; --cookie-l:#E9C28A;
  --felt:#4E8C3D; --felt-l:#7FB069; --felt-d:#356B2A; --felt-dd:#25501D;
  --yellow:#F4D04A; --yellow-l:#FFE58A; --yellow-d:#D9AE22;
  --navy:#3B6CB7; --err:#B4402F; --err-bg:#FFF3EE;
  --pink:#EE6FA0; --blue:#4C8FE0; --lilac:#9B7FE0; --orange:#F2A93B;
  --r-lg:28px; --r-md:16px;
  --s1:8px; --s2:12px; --s3:16px; --s4:24px; --s5:32px;  /* the one spacing scale */
  --spring:cubic-bezier(.34,1.56,.64,1);
  --soft:cubic-bezier(.22,1,.36,1);
  --felt-tex:url("felt.svg");
  --felt-tex-d:url("felt-dark.svg");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font:500 16px/1.5 "Manrope",system-ui,sans-serif;
  overflow-x:hidden; -webkit-tap-highlight-color:transparent;
  background-image:
    radial-gradient(1200px 520px at 85% -8%, #FFF2C9 0%, transparent 60%),
    radial-gradient(900px 600px at -10% 40%, #FBEBCB 0%, transparent 65%);
}
img,svg,canvas{display:block;max-width:100%}
a{color:var(--navy);text-underline-offset:3px;text-decoration-thickness:1.5px}
button,input,select{font:inherit;color:inherit}
.nowrap{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:10px}

.grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.45;background-image:var(--felt-tex-d);background-size:180px}

.page{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:0 var(--s3) calc(var(--s4) + env(safe-area-inset-bottom))}
.landing{padding-bottom:calc(88px + env(safe-area-inset-bottom))}

/* ---------- HERO (phone first: logo, headline, real prize photo, dates and the question fit the first screen) ---------- */
.hero{padding-top:max(var(--s2),env(safe-area-inset-top))}
.topbar{display:flex;align-items:center;gap:var(--s2);min-height:56px}
.logo{width:84px;height:auto;margin-left:-2px;filter:drop-shadow(0 4px 8px rgba(90,52,20,.18))}

/* "GIVEAWAY #1 OF 100" stamp: loud, high contrast, one slow shine. No inner stitch: the rings do the work. */
.stamp-wrap{flex:none;padding:var(--s1) var(--s1) var(--s1) 0;text-align:right}
.stamp{position:relative;display:inline-block;margin:0;padding:6px 12px 7px;overflow:hidden;transform:rotate(-4deg);
  border-radius:10px;background:#2D1F14;color:#FFE58A;text-align:center;
  box-shadow:0 0 0 3px #FEF6E0,0 0 0 5px #2D1F14,0 8px 14px -6px rgba(45,31,20,.55)}
.stamp::after{content:"";position:absolute;top:-30%;bottom:-30%;left:0;width:34%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-200%) skewX(-20deg);
  animation:stampShine 5s var(--soft) 1.2s infinite}
@keyframes stampShine{0%{transform:translateX(-200%) skewX(-20deg)}30%,100%{transform:translateX(420%) skewX(-20deg)}}
.stamp-top{display:block;font:800 10px/1 "Manrope",sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#FFF6D6}
.stamp-num{display:block;margin-top:3px;font:800 21px/1 "Fraunces",serif;font-variation-settings:"SOFT" 50,"opsz" 72;letter-spacing:-.01em;white-space:nowrap;text-transform:uppercase}
.stamp-note{margin:var(--s1) 0 0;font:600 13px/1.4 "Manrope",sans-serif;color:var(--ink-2)}

/* speaker toggle for the ball chime */
.sound{flex:none;display:grid;place-items:center;width:40px;height:40px;margin:0 0 0 auto;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:#FFF1BF;color:var(--ink);box-shadow:0 2px 0 #E6CF7A}
.sound svg{width:22px;height:22px}
.sound .spk{fill:currentColor}
.sound .wave,.sound .cross{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.sound .cross,.sound[aria-pressed=true] .wave{display:none}
.sound[aria-pressed=true] .cross{display:block}
.sound[aria-pressed=true]{background:#F1E6CF;box-shadow:0 2px 0 #DCCBA9}

.hero-row{display:grid;grid-template-columns:minmax(0,1fr) clamp(140px,42vw,200px);gap:var(--s2);align-items:end;margin-top:var(--s1)}
.headline{margin:0;font-family:"Fraunces",serif;font-weight:800;font-variation-settings:"SOFT" 100,"opsz" 144;
  font-size:clamp(30px,8.9vw,44px);line-height:.95;letter-spacing:-.025em;color:#3A2414;
  text-shadow:0 2px 0 var(--cookie-l),0 4px 0 #D9A866,0 6px 12px rgba(138,82,38,.22)}
.hl-line{display:block;white-space:nowrap}
.hl-prize{font-style:italic;font-weight:700;letter-spacing:-.035em}
.lede{margin:var(--s2) 0 0;font:800 15px/1.35 "Manrope";color:var(--felt-dd);text-wrap:balance}

.stage{position:relative;height:clamp(140px,40vw,190px);touch-action:pan-y}
.turf{position:absolute;left:0;right:0;bottom:0;height:24px;border-radius:50%;z-index:1;
  background:var(--felt-tex),radial-gradient(ellipse at 50% 35%,#69A956,var(--felt) 60%,var(--felt-d));background-size:180px,cover;
  box-shadow:0 4px 0 var(--felt-dd),0 12px 18px -10px rgba(37,80,29,.5)}
.turf .stitch{display:none;position:absolute;inset:var(--s1) var(--s3);border-radius:50%;border:2px dashed rgba(255,246,214,.55)}
.sleeve-photo{position:absolute;left:2px;bottom:10px;height:calc(100% - 20px);width:auto;z-index:2;transform:rotate(-4deg);transform-origin:50% 100%;
  filter:drop-shadow(0 8px 10px rgba(45,31,20,.28))}
.ball-wrap{position:absolute;right:0;bottom:28px;width:clamp(52px,15vw,72px);height:clamp(52px,15vw,72px);cursor:grab;z-index:3}
.ball-wrap:active{cursor:grabbing}
#ball3d{width:100%;height:100%;opacity:0;transition:opacity .6s var(--soft)}
.ball-3d-on #ball3d{opacity:1}
.ball-fallback{position:absolute;inset:4px;border-radius:50%;
  background:
    radial-gradient(circle at 34% 28%,rgba(255,255,255,.95) 0 9%,transparent 22%),
    radial-gradient(circle,rgba(150,140,120,.22) 0 2.2px,transparent 2.8px) 0 0/9px 9px,
    radial-gradient(circle at 40% 35%,#FFFFFF,#F2EEE6 55%,#CFC7B8 85%,#B9AE9C);
  box-shadow:inset -6px -8px 14px rgba(120,100,70,.28);transition:opacity .4s}
.ball-3d-on .ball-fallback{opacity:0}
.tee{position:absolute;right:calc(clamp(52px,15vw,72px) / 2 - 16px);bottom:12px;width:32px;z-index:2;filter:drop-shadow(0 3px 2px rgba(90,52,20,.25))}
.spin-hint{position:absolute;right:0;top:0;margin:0;display:flex;align-items:center;gap:4px;font:700 11.5px/1 "Manrope";color:var(--muted);transition:opacity .4s;z-index:4;white-space:nowrap}
.spun .spin-hint{opacity:0}

.sprinkles i{position:absolute;left:var(--x);top:var(--y);width:14px;height:5px;border-radius:4px;background:var(--c);
  transform:rotate(var(--r));box-shadow:inset 0 -1.5px 0 rgba(0,0,0,.14);animation:bob 5.5s ease-in-out infinite;animation-delay:var(--d)}
@keyframes bob{50%{transform:rotate(calc(var(--r) + 14deg)) translateY(-7px)}}

.prize{text-wrap:balance;margin:var(--s3) 0 0;font:italic 500 16px/1.3 "Fraunces";font-variation-settings:"SOFT" 100,"opsz" 36;color:var(--ink-2)}

/* sticky "Enter free" bar: phones only, steps aside once the real button is on screen */
.jump{position:fixed;left:var(--s3);right:var(--s3);bottom:calc(var(--s2) + env(safe-area-inset-bottom));z-index:30;
  display:flex;align-items:center;justify-content:center;min-height:48px;max-width:520px;margin:0 auto;border-radius:999px;
  background:#2D1F14;color:#FFE58A;font:800 16px/1 "Manrope";text-decoration:none;
  box-shadow:0 0 0 3px #FEF6E0,0 10px 22px -6px rgba(45,31,20,.55);transition:transform .3s var(--soft),opacity .3s,visibility 0s}
.jump.away{transform:translateY(160%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .3s var(--soft),opacity .3s,visibility 0s .3s}
html{scroll-padding-bottom:80px}
#entry-form{scroll-margin-top:104px}

/* ---------- ENTRY CARD ---------- */
.entry{margin-top:var(--s3);scroll-margin-top:var(--s2)}
.card{position:relative;background:var(--paper);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 0 0 1px #EBDCC2,0 3px 0 #E6D2AE,0 30px 60px -28px rgba(90,52,20,.42)}
/* putting progress: the stitch sits 8 px in from the felt edge; label, pill, flag and ball sit 8+ px inside the stitch */
.putt{position:relative;height:88px;
  background:var(--felt-tex),linear-gradient(180deg,#5B9C48,var(--felt) 70%,var(--felt-d));background-size:180px,cover}
.putt .stitch{position:absolute;top:var(--s1);left:var(--s1);right:var(--s1);bottom:0;border:2px dashed rgba(255,246,214,.55);border-bottom:0;border-radius:14px 14px 0 0;pointer-events:none}
.putt-top{position:absolute;top:20px;left:var(--s4);right:64px;display:flex;align-items:center;gap:var(--s2);z-index:3}
.putt-label{font:800 12px/1 "Manrope";letter-spacing:.08em;text-transform:uppercase;color:#FFF6D6;text-shadow:0 1px 0 rgba(0,0,0,.35);white-space:nowrap}
.togo{margin:0;flex:none;font:800 13px/1 "Manrope";color:var(--felt-dd);background:#EAF3DF;padding:7px var(--s2);box-shadow:0 2px 0 rgba(0,0,0,.15);border-radius:99px;transition:background .3s,color .3s;white-space:nowrap}
.card.ready .togo{background:var(--yellow);color:var(--ink)}
.putt-track{position:absolute;inset:0}
.putt-line{position:absolute;left:36px;right:48px;top:65px;border-top:2.5px dotted rgba(255,246,214,.6)}
.putt-ball{position:absolute;left:var(--s4);top:54px;width:24px;height:24px;border-radius:50%;z-index:2;
  background:radial-gradient(circle at 34% 30%,#fff 0 14%,transparent 34%),radial-gradient(circle,rgba(140,130,110,.3) 0 1px,transparent 1.5px) 0 0/4px 4px,radial-gradient(circle at 40% 35%,#fff,#ECE7DD 60%,#B9AF9D);
  box-shadow:0 3px 3px rgba(0,0,0,.3);transition:transform .7s var(--spring)}
.putt-ball.sunk{transition:transform .5s var(--soft),opacity .3s .35s;opacity:0}
.putt-cup{position:absolute;right:var(--s4);top:60px;width:32px;height:14px;border-radius:50%;background:radial-gradient(ellipse at 50% 70%,#0F1F0B,#1E3818);box-shadow:inset 0 3px 3px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.25)}
.putt-flag{position:absolute;right:34px;top:22px;width:20px;height:40px;font:24px/1 "Manrope",sans-serif;color:#FFE58A;text-shadow:0 1px 0 rgba(0,0,0,.35);transform-origin:2px 100%;animation:wave 3s ease-in-out infinite}
@keyframes wave{50%{transform:rotate(-4deg)}}

form{padding:var(--s3) var(--s3) var(--s4)}
.field{margin:0;padding:0;border:0;min-width:0}
.field + .field{margin-top:var(--s3)}
label,legend{display:block;font:700 15px/1.35 "Manrope";color:var(--ink)}
.req{color:var(--cookie-d);margin-left:2px}
.lbl-note{font-weight:600;font-size:13px;color:var(--muted);margin-left:4px}
legend{font:800 20px/1.22 "Fraunces";font-variation-settings:"SOFT" 100,"opsz" 36;padding:4px 0 0;letter-spacing:-.005em}

/* Yes / No option cards: wide rounded rectangles, radio mark, words, small golf icon */
.tokens{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin-top:var(--s2)}
.token{position:relative;display:flex;cursor:pointer}
.token input{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.token-face{position:relative;flex:1;display:flex;align-items:center;gap:10px;min-height:76px;padding:12px 12px 12px 14px;overflow:hidden;
  border-radius:18px;border:2px solid #E2D1B2;background:#FFFDF8;color:var(--ink);
  box-shadow:0 4px 0 #E6D2AE,0 12px 20px -14px rgba(90,52,20,.45);
  transition:transform .3s var(--spring),box-shadow .3s var(--spring),border-color .2s,background .2s}
.token-mark{position:relative;flex:none;width:24px;height:24px;border-radius:50%;border:2.5px solid #A8916F;background:#fff;transition:border-color .2s,background .2s}
.token-mark::after{content:"";position:absolute;left:6px;top:2.5px;width:6px;height:11px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg) scale(0);transition:transform .35s var(--spring)}
.token-text{display:flex;flex-direction:column;min-width:0}
.token-word{font:800 26px/1 "Fraunces";font-variation-settings:"SOFT" 100,"opsz" 72}
.token-sub{margin-top:4px;font:700 12.5px/1.2 "Manrope";color:var(--ink-2)}
.token-icon{position:absolute;top:9px;right:9px;width:24px;height:24px;color:var(--felt-d)}
.token-face::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transform:translateX(-180%) skewX(-20deg)}
.token:hover .token-face{transform:translateY(-2px);border-color:#C9AE85}
.token:active .token-face{transform:translateY(3px) scale(.97);box-shadow:0 1px 0 #E6D2AE}
.token input:checked + .token-face{border-color:var(--felt-d);background:#EAF3DF;transform:translateY(2px);
  box-shadow:0 2px 0 var(--felt-dd),0 0 0 3px rgba(78,140,61,.25)}
.token input:checked + .token-face .token-mark{border-color:var(--felt-d);background:var(--felt-d)}
.token input:checked + .token-face .token-mark::after{transform:rotate(45deg) scale(1)}
.token input:checked + .token-face .token-icon{animation:iconPop .5s var(--spring)}
.token input:checked + .token-face::after{animation:cardShine .7s var(--soft) 1}
@keyframes cardShine{0%{opacity:1;transform:translateX(-180%) skewX(-20deg)}100%{opacity:1;transform:translateX(330%) skewX(-20deg)}}
@keyframes iconPop{40%{transform:scale(1.25) rotate(-8deg)}}
.token input:focus-visible + .token-face{outline:3px solid var(--navy);outline-offset:3px}
.hint{margin:var(--s2) 0 0;font:600 13.5px/1.4 "Manrope";color:var(--muted);text-align:center}

/* inputs */
input[type=text],input[type=email],select{
  display:block;width:100%;height:56px;margin-top:8px;padding:0 16px;border-radius:var(--r-md);
  border:2px solid #E2D1B2;background:var(--paper);font:600 17px "Manrope";color:var(--ink);
  box-shadow:inset 0 2px 0 rgba(90,52,20,.05);transition:border-color .2s,box-shadow .2s,background .2s;appearance:none;-webkit-appearance:none}
input::placeholder{color:#B5A28A}
input:focus,select:focus{outline:none;border-color:var(--cookie-d);box-shadow:0 0 0 4px rgba(244,208,74,.6)}
.select-wrap{position:relative}
.select-wrap .chev{position:absolute;right:16px;top:50%;margin-top:4px;width:20px;height:20px;transform:translateY(-50%);pointer-events:none;color:var(--cookie-d)}
select{padding-right:44px;cursor:pointer}
select:invalid{color:#9C8770}
.field.invalid input,.field.invalid select{border-color:var(--err);background:var(--err-bg)}
.field.invalid input:focus,.field.invalid select:focus{box-shadow:0 0 0 4px rgba(180,64,47,.2)}
.err{margin:0;font:700 13.5px/1.35 "Manrope";color:var(--err);max-height:0;opacity:0;overflow:hidden;transition:max-height .3s var(--soft),opacity .2s,margin .3s}
.field.invalid .err{max-height:60px;opacity:1;margin-top:7px}
.err::before{content:"";display:inline-block;width:14px;height:14px;margin:-2px 6px 0 0;vertical-align:middle;border-radius:50%;
  background:var(--err) url("err.svg")}
.q-junior.invalid .err{text-align:center}
.suggest{margin:8px 0 0;font:600 14px/1.3 "Manrope";color:var(--ink-2)}
.suggest button{border:0;background:#FFF1BF;padding:5px 9px;border-radius:8px;font-weight:800;color:var(--ink);cursor:pointer;min-height:32px;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}

/* checkboxes */
.checks .check{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;min-height:44px;padding:8px 2px;cursor:pointer;font:600 15px/1.45 "Manrope"}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check .box{width:28px;height:28px;margin-top:-1px;border-radius:9px;border:2px solid #CDB58E;background:var(--paper);display:grid;place-items:center;color:#fff;
  box-shadow:inset 0 2px 0 rgba(90,52,20,.06);transition:background .2s,border-color .2s,transform .3s var(--spring)}
.check .box svg{width:18px;height:18px;transform:scale(0);transition:transform .3s var(--spring)}
.check input:checked + .box{background:var(--felt);border-color:var(--felt-d);transform:scale(1.06)}
.check input:checked + .box svg{transform:scale(1)}
.check input:focus-visible + .box{outline:3px solid var(--navy);outline-offset:3px}
.check-text{color:var(--ink)}
.muted{color:var(--muted);font-weight:600}
.field.invalid .check .box{border-color:var(--err);background:var(--err-bg)}
.optional{margin-top:var(--s3) !important;padding:var(--s2) var(--s3) var(--s1);border-radius:18px;background:#FBF3E2;border:1.5px solid #EBDCC2}
.opt-label{margin:2px 0 0;font:800 12.5px/1 "Manrope";color:var(--muted);letter-spacing:.02em}

/* glossy primary button */
.cta{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:66px;margin-top:var(--s4);padding:0 var(--s4);border:0;border-radius:999px;cursor:pointer;
  font:800 19px/1 "Manrope";letter-spacing:.005em;color:var(--ink);
  background:linear-gradient(180deg,#FFF0A8 0%,#FFE36E 22%,var(--yellow) 58%,#E7BC2E 100%);
  box-shadow:0 6px 0 #B98F14,0 16px 26px -10px rgba(185,143,20,.75),inset 0 2px 0 rgba(255,255,255,.75),inset 0 -3px 0 rgba(160,110,0,.18);
  transition:transform .18s var(--soft),box-shadow .18s var(--soft);isolation:isolate;overflow:hidden}
.cta::before{content:"";position:absolute;left:14px;right:14px;top:5px;height:42%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0));z-index:-1}
.cta:hover{transform:translateY(-2px);box-shadow:0 8px 0 #B98F14,0 20px 30px -10px rgba(185,143,20,.8),inset 0 2px 0 rgba(255,255,255,.75),inset 0 -3px 0 rgba(160,110,0,.18)}
.cta:active{transform:translateY(5px);box-shadow:0 1px 0 #B98F14,0 6px 12px -6px rgba(185,143,20,.6),inset 0 2px 0 rgba(255,255,255,.6),inset 0 -2px 0 rgba(160,110,0,.18)}
.cta:focus-visible{outline:3px solid var(--navy);outline-offset:4px}
.cta-shine{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.cta-shine::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:38%;transform:translateX(-160%) skewX(-22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.85) 50%,transparent);animation:sweep 4.2s var(--soft) infinite 1.2s}
.cta:hover .cta-shine::after{animation-duration:1.6s}
@keyframes sweep{0%{transform:translateX(-160%) skewX(-22deg)}38%,100%{transform:translateX(420%) skewX(-22deg)}}
.cta-ball{width:26px;height:26px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 34% 30%,#fff 0 14%,transparent 34%),radial-gradient(circle,rgba(140,130,110,.3) 0 1px,transparent 1.5px) 0 0/4.5px 4.5px,radial-gradient(circle at 40% 35%,#fff,#ECE7DD 60%,#B9AF9D);
  box-shadow:0 2px 0 rgba(120,80,0,.35);transition:transform .6s var(--spring)}
.cta:hover .cta-ball{transform:rotate(200deg)}
.card.ready .cta{animation:readyPulse 1.1s var(--soft) 1}
@keyframes readyPulse{0%{box-shadow:0 6px 0 #B98F14,0 0 0 0 rgba(244,208,74,.8)}100%{box-shadow:0 6px 0 #B98F14,0 0 0 18px rgba(244,208,74,0)}}
.legal{margin:16px 0 0;text-align:center;font:600 13px/1.5 "Manrope";color:var(--ink-2)}
.legal a{font-weight:800}

/* ---------- CELEBRATION ---------- */
.celebrate{position:fixed;inset:0;z-index:40;display:none;place-items:center;pointer-events:none;
  background:radial-gradient(circle at 50% 45%,rgba(254,246,224,.9),rgba(254,246,224,.96))}
.celebrate.on{display:grid}
.celebrate.fading{background:transparent;transition:background .5s}
#sprinkleCanvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:45;pointer-events:none}
.green-disc{position:relative;width:min(330px,86vw);aspect-ratio:1.35;border-radius:50%;
  background:var(--felt-tex),radial-gradient(ellipse at 45% 35%,#78B663,var(--felt) 60%,var(--felt-d));background-size:180px,cover;
  box-shadow:0 10px 0 var(--felt-dd),0 30px 40px -18px rgba(37,80,29,.6);transform:perspective(600px) rotateX(18deg)}
.green-disc::before{content:"";position:absolute;inset:10px;border-radius:50%;border:2.5px dashed rgba(255,246,214,.55)}
.cup{position:absolute;left:62%;top:52%;width:62px;height:26px;margin:-13px 0 0 -31px}
.cup-back{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 50% 75%,#0B1608,#1E3818 70%);box-shadow:inset 0 5px 6px rgba(0,0,0,.7),0 1.5px 0 rgba(255,255,255,.35)}
.pin{position:absolute;left:calc(62% - 3px);top:calc(52% - 112px);width:40px;height:120px;transform-origin:6px 100%}
.roll-ball{position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;z-index:3;opacity:0;overflow:hidden;box-shadow:0 4px 4px rgba(0,0,0,.28)}
.roll-ball-in{position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle,rgba(140,130,110,.38) 0 1.2px,transparent 1.8px) 0 0/5.5px 5.5px,#F7F4EE}
.roll-ball::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.95) 0 12%,transparent 32%),radial-gradient(circle at 40% 35%,transparent 45%,rgba(120,100,70,.35) 100%)}

/* ---------- AFTER ---------- */
.after{display:none}
.after.on{display:block;margin-top:26px;scroll-margin-top:14px}
.ticket{position:relative;transform:rotate(-1.4deg);filter:drop-shadow(0 3px 0 #E2CCA4) drop-shadow(0 22px 26px rgba(90,52,20,.28))}
.ticket.printing{animation:print .9s var(--spring) both}
@keyframes print{from{clip-path:inset(0 0 100% 0);transform:rotate(-1.4deg) translateY(-24px)}to{clip-path:inset(-20% -20% -40% -20%);transform:rotate(-1.4deg) translateY(0)}}
.ticket-cut{display:grid;grid-template-columns:1fr 92px;border-radius:22px;overflow:hidden;
  -webkit-mask:radial-gradient(circle 12px at calc(100% - 92px) 0,#0000 97%,#000),radial-gradient(circle 12px at calc(100% - 92px) 100%,#0000 97%,#000);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle 12px at calc(100% - 92px) 0,#0000 97%,#000),radial-gradient(circle 12px at calc(100% - 92px) 100%,#0000 97%,#000);
  mask-composite:intersect}
.ticket-main{padding:20px 16px 18px 20px;background:var(--paper);min-width:0}
.ticket-stub{position:relative;display:grid;place-items:center;gap:10px;align-content:center;padding:14px 0;
  background:var(--felt-tex),linear-gradient(160deg,#5E9F4B,var(--felt) 60%,var(--felt-d));background-size:180px,cover}
.ticket-stub::after{content:"";position:absolute;left:0;top:16px;bottom:16px;border-left:2.5px dashed rgba(255,246,214,.75)}
.stub-ball{width:40px;height:40px;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#fff 0 12%,transparent 32%),radial-gradient(circle,rgba(140,130,110,.3) 0 1.2px,transparent 1.8px) 0 0/5.5px 5.5px,radial-gradient(circle at 40% 35%,#fff,#ECE7DD 60%,#B3A994);box-shadow:0 4px 0 rgba(0,0,0,.25)}
.stub-code{writing-mode:vertical-rl;transform:rotate(180deg);font:800 12px/1 "Manrope";letter-spacing:.14em;color:#FFF3CF}
.t-kicker{margin:0;font:800 13px/1 "Manrope";color:var(--felt-d)}
.t-title{margin:8px 0 0;font:800 33px/1.02 "Fraunces";font-variation-settings:"SOFT" 100,"opsz" 72;letter-spacing:-.02em;overflow-wrap:anywhere}
.t-meta{display:flex;gap:16px;margin:14px 0 0;flex-wrap:wrap}
.t-meta div{min-width:0}
.t-meta dt{font:700 11.5px/1 "Manrope";color:var(--muted)}
.t-meta dd{margin:5px 0 0;font:700 18px/1 "Fraunces";font-variation-settings:"opsz" 24}

.block{margin-top:22px;padding:20px;border-radius:24px;background:var(--paper);box-shadow:0 0 0 1px #EBDCC2,0 3px 0 #E6D2AE,0 24px 40px -26px rgba(90,52,20,.35)}
.block h3{margin:0;font:800 24px/1.15 "Fraunces";font-variation-settings:"SOFT" 100,"opsz" 48}
.block > p{margin:6px 0 0;color:var(--ink-2);font-weight:600}
.linkbox{display:flex;margin-top:16px;border-radius:16px;border:2px solid #E2D1B2;background:#FBF6EC;overflow:hidden}
.linkbox input{flex:1;min-width:0;height:52px;padding:0 14px;border:0;background:transparent;font:700 15px "Manrope";color:var(--ink)}
.linkbox input:focus{outline:none}
.btn-copy{flex:none;min-width:84px;border:0;border-left:2px solid #E2D1B2;background:#FFF1BF;font:800 15px "Manrope";cursor:pointer}
.btn-copy:active{background:var(--yellow)}
.cta-sm{min-height:58px;margin-top:12px;font-size:17px}


.actions{display:grid;gap:10px;padding:12px}
.row-btn,.switch{display:flex;align-items:center;gap:14px;width:100%;min-height:68px;padding:12px 14px;border-radius:18px;border:0;background:#FBF6EC;text-align:left;text-decoration:none;color:var(--ink);cursor:pointer;
  transition:transform .25s var(--soft),background .2s}
.row-btn:hover,.switch:hover{transform:translateY(-2px);background:#F7EEDB}
.row-btn:active{transform:translateY(1px) scale(.99)}
.row-ico{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff}
.row-ico svg{width:24px;height:24px}
.row-ico.ig{background:linear-gradient(135deg,#F2A93B,#EE6FA0 55%,#9B7FE0)}
.row-ico.cal{background:var(--navy)}
.row-text{display:grid;gap:2px}
.row-text b{font:800 15.5px/1.25 "Manrope"}
.row-text small{font:600 13px/1.3 "Manrope";color:var(--muted)}
.switch{position:relative}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch-track{order:2;margin-left:auto;flex:none;width:54px;height:32px;border-radius:99px;background:#D9C9AA;position:relative;transition:background .25s;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}
.switch-knob{position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.25);transition:transform .35s var(--spring)}
.switch input:checked + .switch-track{background:var(--felt)}
.switch input:checked + .switch-track .switch-knob{transform:translateX(22px)}
.switch input:focus-visible + .switch-track{outline:3px solid var(--navy);outline-offset:3px}
.notify-on{margin:2px 6px 4px;font:700 14px/1.4 "Manrope";color:var(--felt-d)}
.fine{margin:16px 0 0;text-align:center;font:600 12.5px "Manrope";color:var(--muted)}

/* ---------- misc ---------- */
.foot{margin-top:var(--s5);padding:var(--s3) 0 var(--s1);border-top:1.5px solid #EBDCC2;text-align:center;font:600 13px/1.6 "Manrope";color:var(--muted)}
.foot p{margin:0}
.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:60;transform:translate(-50%,220%);visibility:hidden;padding:12px 18px;border-radius:99px;background:var(--ink);color:var(--cream);font:700 14.5px "Manrope";box-shadow:0 12px 24px rgba(45,31,20,.35);transition:transform .45s var(--spring),visibility 0s .45s;pointer-events:none;white-space:nowrap}
.toast.show{transition:transform .45s var(--spring),visibility 0s}
.toast.show{transform:translate(-50%,0);visibility:visible}
.page.entered .entry{display:none}

/* ---------- DESKTOP ---------- */
@media (min-width:980px){
  .page{display:grid;grid-template-columns:1.08fr .92fr;column-gap:64px;padding-top:28px}
  .landing{padding-bottom:var(--s4)}
  .hero{grid-column:1;grid-row:1 / span 3;position:sticky;top:24px;align-self:start}
  .entry,.after{grid-column:2}
  .entry{margin-top:12px}
  .after.on{margin-top:12px}
  .foot{grid-column:1 / -1}
  .logo{width:150px}
  .hero-row{display:block;margin-top:var(--s2)}
  .headline{font-size:76px}
  .lede{display:inline-block;margin-top:var(--s3);padding:var(--s1) var(--s3);border-radius:99px;background:#FFF1BF;box-shadow:0 2px 0 #E6CF7A;font-size:16px;color:var(--ink)}
  .stage{height:360px;margin-top:var(--s1);max-width:540px}
  .sleeve-photo{height:300px;left:6%;bottom:40px}
  .ball-wrap{right:auto;left:50%;bottom:auto;top:76px;width:200px;height:200px}
  .ball-fallback{inset:10px}
  .tee{right:auto;left:calc(50% + 100px);bottom:46px;width:80px;margin-left:-40px}
  .turf{height:76px}
  .turf .stitch{display:block}
  .spin-hint{top:0}
  .prize{font-size:21px}
  .jump{display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .cta-shine::after{display:none}
}

/* Server page integration and accessible defaults. */
[hidden]{display:none!important}
.kicker{font-size:11px;font-weight:800;letter-spacing:.1em;margin:var(--s1) 0 0;color:var(--felt-dd)}
.spin-hint{visibility:hidden}.ball-3d-on .spin-hint{visibility:visible}
.sprinkles i:nth-child(1){--x:8%;--y:18%;--r:24deg;--c:#EE6FA0;--d:0s}
.sprinkles i:nth-child(2){--x:86%;--y:12%;--r:-38deg;--c:#4C8FE0;--d:-1.2s}
.sprinkles i:nth-child(3){--x:92%;--y:58%;--r:70deg;--c:#4FB548;--d:-2.4s}
.sprinkles i:nth-child(4){--x:4%;--y:64%;--r:-12deg;--c:#F2A93B;--d:-3.1s}
.sprinkles i:nth-child(5){--x:20%;--y:4%;--r:58deg;--c:#9B7FE0;--d:-.6s}
.sprinkles i:nth-child(6){--x:74%;--y:84%;--r:-64deg;--c:#EE6FA0;--d:-1.8s}
.sprinkles i:nth-child(7){--x:16%;--y:86%;--r:34deg;--c:#4C8FE0;--d:-2.9s}
.stub-code{color:#2d1f14;background:#fff1bf;padding:8px 5px;border-radius:6px}
:root{--muted:#69513e;--navy:#285895}
input::placeholder,select:invalid{color:#75604a}
.field-error{color:var(--err);font-size:13.5px;font-weight:700;margin:7px 0 0}
.field-error::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;background:var(--err) url("err.svg");border-radius:50%}
#junior_golfer-error:not([hidden]) + .field{margin-top:18px}
#junior_golfer + .field-error + .field{margin-top:18px}
.lbl-note{margin:2px 0 0}.note{font-size:13px;color:var(--ink-2);line-height:1.6}
.suggest{text-align:left}.suggest button{min-height:44px}
.invite{grid-column:1/-1;padding:12px;border-radius:12px;background:#eaf3df;color:var(--felt-dd);font-weight:700}
.document{max-width:760px;display:block;padding-top:16px}
.document .topbar{max-width:540px;margin:auto}.document .kicker{text-align:center}
.document .after{margin-top:26px}.document form{padding:0}
.doc h1{font:800 clamp(30px,6vw,44px)/1.12 Fraunces,serif;margin:0 0 18px}
.block h2{font:800 24px/1.2 Fraunces,serif;margin:20px 0 10px}.block h2:first-child{margin-top:0}
.doc p{overflow-wrap:anywhere}.eyebrow{font-weight:800;letter-spacing:.06em;font-size:12px}
.error{padding:12px;background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:12px}
.notice{padding:12px;background:#eaf3df;border-radius:12px}.sent-to{font-weight:800}.start-over a{display:inline-block;padding:12px 0}
input.share{width:100%;min-width:0;min-height:52px;padding:12px;border:2px solid #e2d1b2;border-radius:16px;background:#fbf6ec;font-size:14px;margin:8px 0}
.block label[for=share-link]{margin-top:20px}
button:not(.cta):not(.linklike):not(.sound){min-height:48px;padding:12px 18px;border:0;border-radius:999px;font-weight:800;background:linear-gradient(#fff0a8,#f4d04a);box-shadow:0 3px 0 #b98f14;cursor:pointer;margin:8px 4px 8px 0}
button.secondary{background:#fff1bf}.resend{margin:16px 0}
.actions>a:last-child{padding:12px}.notify-on{padding:14px;border-radius:16px;background:#eaf3df;color:var(--felt-dd)}
.celebrate .sprinkles{position:absolute;inset:0}
.celebrate .sprinkles i{animation:none}
@media(min-width:980px){.landing .hero{grid-row:1}.landing .entry{min-width:0}.landing .invite{grid-row:1}.landing:has(.invite) .hero{grid-row:2}.landing .entry .fine{line-height:1.6}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.celebrate{display:none!important}}
.field.invalid .token-face,#junior_golfer[aria-invalid=true] .token-face{border-color:var(--err);background:var(--err-bg)}
.rules-note{margin:8px 0 0 44px;font:600 12.5px/1.4 "Manrope";color:var(--ink-2)}
/* You're in: entries bar + ways to earn, numbers from the Official Rules */
.meter-wrap{margin-top:14px}
.meter-label{font:800 15px/1.35 "Manrope";color:var(--ink)}
progress.meter{display:block;width:100%;height:22px;margin:10px 0 0;padding:0;border:0;border-radius:999px;overflow:hidden;
  appearance:none;-webkit-appearance:none;background:#25501D;box-shadow:inset 0 3px 6px rgba(0,0,0,.35)}
progress.meter::-webkit-progress-bar{background:#25501D;border-radius:999px}
progress.meter::-webkit-progress-value{background:linear-gradient(90deg,#F4D04A,#FFE58A);border-radius:999px}
progress.meter::-moz-progress-bar{background:linear-gradient(90deg,#F4D04A,#FFE58A);border-radius:999px}
.ways{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.ways li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#FBF6EC;box-shadow:0 0 0 1px #EBDCC2;font-weight:600;color:var(--ink-2)}
.ways b{flex:none;min-width:48px;padding:6px 8px;border-radius:12px;text-align:center;font:800 20px/1 "Fraunces";color:#2D1F14;background:#FFE58A;box-shadow:0 2px 0 #D9AE22}
@media(min-width:980px){.stamp-num{font-size:30px}.stamp-top{font-size:12px}}
@media(prefers-reduced-motion:reduce){.stamp::after,.token-face::after{display:none}}

.giveaway-faq{grid-column:1 / -1;margin:24px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.giveaway-faq h2{font-size:20px;margin:0 0 10px}.giveaway-faq details{border-top:1px solid currentColor;padding:8px 0}.giveaway-faq summary{cursor:pointer;font-weight:700;padding:4px 0}.giveaway-faq summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}.giveaway-faq p{margin:6px 0}
