/* [PORT] Final weekend: clue banner, close countdown, closed pages. Isolated overrides. */
.clue-banner{align-items:center;background:linear-gradient(180deg,rgba(251,13,27,.16),rgba(251,13,27,.06));border:1px solid rgba(251,13,27,.55);border-radius:var(--r-lg,18px);box-shadow:0 12px 34px -18px rgba(251,13,27,.8);display:flex;flex-direction:column;gap:8px;margin:clamp(10px,1.8vh,18px) auto 0;max-width:min(440px,92vw);padding:clamp(10px,1.6vh,14px) 18px;text-align:center}
.clue-label{color:var(--paper,#f6f1ea);font:700 clamp(11px,2.8vw,14px)/1.1 var(--lemon);letter-spacing:.08em;text-transform:uppercase}
.clue-slots{display:inline-flex;gap:clamp(6px,1.6vw,10px);justify-content:center}
.clue-slot{align-items:center;border-radius:10px;display:inline-flex;font:700 clamp(24px,7vw,40px)/1 var(--lemon);height:clamp(40px,10vw,58px);justify-content:center;width:clamp(34px,8.6vw,50px)}
.clue-slot.known{background:var(--red,#fb0d1b);color:#fff;box-shadow:0 8px 22px -10px rgba(251,13,27,.9)}
.clue-slot.empty{border:1px dashed rgba(246,241,234,.34);color:rgba(246,241,234,.34)}
.clue-compact{flex-direction:row;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:10px;padding:8px 14px}
.clue-compact .clue-slot{font-size:clamp(18px,5vw,26px);height:clamp(30px,8vw,40px);width:clamp(26px,6.6vw,34px)}
.keypad-intro .clue-banner{margin-top:12px}
.result .clue-banner{margin:4px auto 12px}
.vault-register .clue-banner{margin-bottom:10px}
.closed-card .ended-kicker{color:var(--gold,#ffd979)}
.closed-winner{color:var(--paper,#f6f1ea)!important;font-size:clamp(13px,3.4vw,17px)!important}
.closed-winner b{color:#fff;font-family:var(--lemon);letter-spacing:.02em}
.closed-code{align-items:center;display:flex;flex-direction:column;gap:8px;margin:0 auto clamp(12px,2vh,18px)}
.closed-code-label{color:var(--paper-dim);font:700 11px/1 var(--lemon);letter-spacing:.14em;text-transform:uppercase}
.closed-code-digits{display:inline-flex;gap:8px}
.closed-deadline-copy{color:var(--paper,#f6f1ea)!important;font-size:clamp(13px,3.4vw,17px)!important}

/* ===== v2 (Nathan feedback 24 Sep) ===== */
/* 1. Empty clue slot: a centred dash (was an underscore glyph sitting on the baseline). */
.clue-slot.empty{align-items:center;justify-content:center;line-height:0}
.clue-dash{background:currentColor;border-radius:2px;display:block;height:3px;width:34%}
.clue-compact .clue-dash{height:2px;width:36%}

/* 6. Result screen: bolder buttons and natural breathing room. */
.result.miss .r-miss{margin-bottom:clamp(24px,3.6vh,34px)}
.result.miss .again-btn.rb-primary{background:linear-gradient(180deg,#ff3a45 0%,#fb0d1b 52%,#c9000c 100%);border:0;border-radius:999px;box-shadow:0 0 0 1px rgba(255,120,128,.35) inset,0 -3px 0 rgba(0,0,0,.25) inset,0 14px 36px -10px rgba(251,13,27,.85),0 0 0 0 rgba(251,13,27,.5);color:#fff;cursor:pointer;font:700 clamp(15px,3.8vw,18px)/1 var(--lemon);letter-spacing:.1em;min-height:56px;min-width:min(240px,80vw);overflow:hidden;padding:19px 46px 17px;position:relative;text-transform:uppercase;transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,filter .2s ease;animation:rbGlow 2.6s ease-in-out infinite}
.result.miss .again-btn.rb-primary span{position:relative;z-index:1}
.result.miss .again-btn.rb-primary:before{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%);content:"";inset:0;position:absolute;transform:translateX(-120%);transition:transform .6s ease}
.result.miss .again-btn.rb-primary:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,140,146,.5) inset,0 -3px 0 rgba(0,0,0,.25) inset,0 20px 46px -10px rgba(251,13,27,1)}
.result.miss .again-btn.rb-primary:hover:before{transform:translateX(120%)}
.result.miss .again-btn.rb-primary:active{transform:translateY(1px) scale(.97);box-shadow:0 3px 0 rgba(0,0,0,.3) inset,0 6px 18px -8px rgba(251,13,27,.9);filter:brightness(.95)}
.result.miss .again-btn.rb-primary:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes rbGlow{0%,100%{box-shadow:0 0 0 1px rgba(255,120,128,.35) inset,0 -3px 0 rgba(0,0,0,.25) inset,0 14px 36px -10px rgba(251,13,27,.85),0 0 0 0 rgba(251,13,27,.45)}50%{box-shadow:0 0 0 1px rgba(255,120,128,.35) inset,0 -3px 0 rgba(0,0,0,.25) inset,0 14px 36px -10px rgba(251,13,27,.85),0 0 0 10px rgba(251,13,27,0)}}
.result.miss .clue-banner{margin:clamp(26px,4vh,36px) auto clamp(26px,4vh,36px)}
.result.miss .incorrect-codes-link.rb-secondary{background:rgba(251,13,27,.06);border:2px solid var(--red,#fb0d1b);color:#fff;font:700 clamp(13px,3.4vw,15px)/1 var(--lemon);gap:10px;letter-spacing:.1em;margin:0 auto;min-height:52px;padding:16px 30px 14px}
.result.miss .rb-primary+.incorrect-codes-link,.result.miss .fine+.incorrect-codes-link,.result.miss .result-return+.incorrect-codes-link{margin-top:clamp(26px,4vh,36px)}
.result.miss .incorrect-codes-link.rb-secondary svg{flex:none;margin-top:-2px;transition:transform .2s cubic-bezier(.16,1,.3,1)}
.result.miss .incorrect-codes-link.rb-secondary:hover{background:var(--red,#fb0d1b);box-shadow:0 14px 34px -12px rgba(251,13,27,.9);transform:translateY(-2px)}
.result.miss .incorrect-codes-link.rb-secondary:hover svg{transform:translate(2px,-2px)}
.result.miss .incorrect-codes-link.rb-secondary:active{transform:translateY(1px) scale(.98)}
.result.miss .incorrect-codes-note{margin-top:12px}

/* 4. Vault closed (v2): cinematic door slam. */
.vc{isolation:isolate;overflow:hidden;padding:clamp(24px,5vh,56px) 16px clamp(40px,7vh,72px)}
.vc-bg{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0;background:radial-gradient(ellipse 70% 55% at 50% 38%,rgba(251,13,27,.22),transparent 62%),radial-gradient(ellipse 120% 60% at 50% 110%,rgba(120,0,6,.5),transparent 60%),#050303}
.vc-beam{background:linear-gradient(180deg,rgba(255,80,88,.16),rgba(255,80,88,0) 75%);filter:blur(8px);height:140vh;position:absolute;top:-20vh;transform-origin:50% 0;width:28vw;animation:vcBeam 9s ease-in-out infinite alternate}
.vc-beam-l{left:18%;transform:rotate(18deg)}
.vc-beam-r{right:18%;transform:rotate(-18deg);animation-delay:-4.5s}
@keyframes vcBeam{0%{opacity:.35;transform:rotate(22deg)}100%{opacity:.9;transform:rotate(8deg)}}
.vc-beam-r{animation-name:vcBeamR}
@keyframes vcBeamR{0%{opacity:.35;transform:rotate(-22deg)}100%{opacity:.9;transform:rotate(-8deg)}}
.vc-flash{background:radial-gradient(circle at 50% 36%,rgba(255,40,52,.85),rgba(251,13,27,.25) 35%,transparent 70%);inset:0;opacity:0;position:absolute;animation:vcFlash .9s ease-out 1.05s both}
@keyframes vcFlash{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
.vc-embers{inset:0;position:absolute}
.vc-ember{background:#ff3b45;border-radius:50%;bottom:-12px;box-shadow:0 0 8px 2px rgba(251,13,27,.7);opacity:0;position:absolute;animation-name:vcEmber;animation-iteration-count:infinite;animation-timing-function:linear}
.vc-ember.gold{background:#ffd979;box-shadow:0 0 8px 2px rgba(255,217,121,.6)}
@keyframes vcEmber{0%{opacity:0;transform:translate3d(0,0,0)}10%{opacity:.9}80%{opacity:.5}100%{opacity:0;transform:translate3d(var(--drift),-105vh,0)}}
.vc-stage{align-items:center;display:flex;flex-direction:column;max-width:720px;position:relative;text-align:center;width:100%;z-index:1;animation:vcShake .5s cubic-bezier(.36,.07,.19,.97) 1.05s both}
@keyframes vcShake{0%,100%{transform:none}15%{transform:translate3d(-7px,4px,0)}30%{transform:translate3d(6px,-3px,0)}45%{transform:translate3d(-4px,2px,0)}60%{transform:translate3d(3px,-1px,0)}75%{transform:translate3d(-1px,1px,0)}}
.vc .result-logo{margin-bottom:clamp(10px,1.8vh,16px);width:clamp(84px,14vh,120px)}
.vc-kicker{color:var(--gold,#ffd979);font:700 clamp(14px,3.6vw,20px)/1 var(--lemon);letter-spacing:.24em;text-transform:uppercase;animation:vcFade .6s ease .2s both}
.vc-door{height:clamp(170px,28vh,260px);margin:clamp(14px,2.4vh,26px) auto clamp(14px,2.4vh,24px);perspective:1100px;position:relative;width:clamp(170px,28vh,260px);isolation:isolate}
.vc-glow{background:radial-gradient(circle,rgba(251,13,27,.75),rgba(251,13,27,.18) 45%,transparent 70%);border-radius:50%;inset:-38%;position:absolute;z-index:0;opacity:.45;animation:vcGlow 3.2s ease-in-out 1.1s infinite}
@keyframes vcGlow{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.07)}}
.vc-frame:before{background:radial-gradient(circle,#0b0808 58%,transparent 59%),conic-gradient(from 20deg,#3a3434,#8d8686,#2a2626,#6f6868,#2a2626,#9a9393,#3a3434);border-radius:50%;box-shadow:0 30px 60px -12px rgba(0,0,0,.9),0 0 0 2px rgba(0,0,0,.6),inset 0 0 0 3px rgba(255,255,255,.08);content:"";inset:0;position:absolute;z-index:1}
.vc-frame{inset:0;position:absolute}
.vc-bolt{inset:0;pointer-events:none;position:absolute;z-index:3}
.vc-bolt i{background:linear-gradient(90deg,#8e8a86,#f2ede6 45%,#9a948e);border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.6);height:15%;left:50%;margin-left:-3.5%;position:absolute;top:1.5%;width:7%;transform:translateY(-55%);opacity:.0;animation:vcBolt .28s cubic-bezier(.2,1.6,.4,1) calc(1.25s + var(--i) * .09s) both}
@keyframes vcBolt{0%{opacity:.9;transform:translateY(-55%)}100%{opacity:1;transform:translateY(0);background:linear-gradient(90deg,#b8860b,#ffe9a8 45%,#c9951c);box-shadow:0 0 12px rgba(255,217,121,.8),0 2px 6px rgba(0,0,0,.6)}}
.vc-leaf{background:radial-gradient(circle at 34% 28%,#ff5a61 0%,#e0101b 26%,#9a0510 58%,#3d0105 100%);border-radius:50%;box-shadow:inset 0 0 0 6px rgba(0,0,0,.35),inset 0 0 0 10px rgba(255,120,128,.18),inset 0 -18px 40px rgba(0,0,0,.55),0 10px 30px rgba(0,0,0,.7);inset:10%;position:absolute;transform-origin:0% 50%;z-index:2;animation:vcSwing 1.05s cubic-bezier(.55,0,.9,.35) .15s both}
@keyframes vcSwing{0%{transform:rotateY(-82deg);filter:brightness(.45)}100%{transform:rotateY(0);filter:brightness(1)}}
.vc-rivets{border:3px dotted rgba(255,230,230,.45);border-radius:50%;inset:9%;position:absolute}
.vc-wheel{inset:26%;position:absolute;animation:vcSpin 1.1s cubic-bezier(.2,.7,.2,1) 1.2s both}
.vc-wheel span{background:linear-gradient(180deg,#f5efe8,#a8a29c);border-radius:6px;box-shadow:0 2px 5px rgba(0,0,0,.55);height:10%;left:0;margin-top:-5%;position:absolute;top:50%;width:100%}
.vc-wheel span:nth-child(2){transform:rotate(60deg)}
.vc-wheel span:nth-child(3){transform:rotate(120deg)}
.vc-hub{background:radial-gradient(circle at 40% 35%,#fff,#bdb6ae 55%,#6c6660);border-radius:50%;box-shadow:0 3px 10px rgba(0,0,0,.6);inset:32%;position:absolute}
@keyframes vcSpin{0%{transform:rotate(0)}100%{transform:rotate(-300deg)}}
.vc-title{color:#fff;font:700 clamp(38px,9vw,84px)/.9 var(--lemon);letter-spacing:.01em;margin:0 auto clamp(12px,2vh,18px);max-width:13ch;text-shadow:0 0 28px rgba(251,13,27,.8),0 0 70px rgba(251,13,27,.45);text-transform:uppercase;animation:vcSlam .55s cubic-bezier(.2,1.4,.4,1) 1.85s both}
.vc-deadline .vc-title{max-width:none}
@keyframes vcSlam{0%{opacity:0;transform:scale(1.9);filter:blur(10px)}100%{opacity:1;transform:none;filter:none}}
.vc-copy{color:var(--paper,#f6f1ea);font-size:clamp(15px,3.9vw,19px);line-height:1.5;margin:0 auto clamp(16px,2.6vh,24px);max-width:36ch;text-wrap:balance;animation:vcFade .6s ease 2.25s both}
.vc-winner b{color:#fff;font-family:var(--lemon);font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.vc-small{color:var(--paper-dim);font-size:clamp(13px,3.4vw,15px)}
.vc-code{align-items:center;display:flex;flex-direction:column;gap:10px;margin:0 auto clamp(16px,2.6vh,24px);animation:vcFade .5s ease 2.35s both}
.vc-code-label{color:var(--gold,#ffd979);font:700 12px/1 var(--lemon);letter-spacing:.2em;text-transform:uppercase}
.vc-code-digits{display:inline-flex;gap:clamp(8px,2vw,12px)}
.vc-digit{align-items:center;background:linear-gradient(180deg,#ff3a45,#c9000c);border-radius:12px;box-shadow:0 10px 26px -8px rgba(251,13,27,.95),inset 0 1px 0 rgba(255,255,255,.3);color:#fff;display:inline-flex;font:700 clamp(30px,8vw,46px)/1 var(--lemon);height:clamp(50px,13vw,70px);justify-content:center;width:clamp(42px,11vw,58px);animation:vcDrop .45s cubic-bezier(.2,1.5,.4,1) calc(2.45s + var(--i) * .12s) both}
@keyframes vcDrop{0%{opacity:0;transform:translateY(-30px) scale(.8)}100%{opacity:1;transform:none}}
.vc-stats{background:rgba(246,241,234,.12);border:1px solid rgba(251,13,27,.45);border-radius:18px;box-shadow:0 20px 50px -20px rgba(251,13,27,.6);display:grid;gap:1px;grid-template-columns:repeat(3,1fr);margin:clamp(6px,1.4vh,12px) auto clamp(22px,3.4vh,32px);overflow:hidden;width:min(560px,100%);animation:vcRise .7s cubic-bezier(.2,.8,.2,1) 2.4s both}
.vc-stat{background:rgba(12,6,6,.92);display:flex;flex-direction:column;gap:8px;padding:clamp(14px,2.2vh,20px) 8px}
.vc-stat-value{color:#fff;font:700 clamp(24px,6.4vw,38px)/1 var(--lemon);font-variant-numeric:tabular-nums}
.vc-stat-label{color:var(--paper-dim);font:700 clamp(9px,2.4vw,11px)/1.2 var(--lemon);letter-spacing:.16em;text-transform:uppercase}
.vc-ig{align-items:center;background:linear-gradient(180deg,#ff3a45 0%,#fb0d1b 50%,#c9000c 100%);border-radius:999px;box-shadow:0 0 0 1px rgba(255,140,146,.4) inset,0 18px 46px -12px rgba(251,13,27,.95);color:#fff;display:inline-flex;font:700 clamp(15px,3.9vw,20px)/1 var(--lemon);gap:12px;letter-spacing:.08em;overflow:hidden;padding:clamp(18px,2.6vh,22px) clamp(28px,7vw,48px) clamp(16px,2.4vh,20px);position:relative;text-decoration:none;text-transform:uppercase;transition:transform .18s cubic-bezier(.16,1,.3,1),filter .2s;animation:vcRise .7s cubic-bezier(.2,.8,.2,1) 2.6s both}
.vc-ig:before{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);content:"";inset:0;position:absolute;transform:translateX(-130%);animation:vcShine 3.6s ease-in-out 3.4s infinite}
@keyframes vcShine{0%{transform:translateX(-130%)}35%,100%{transform:translateX(130%)}}
.vc-ig span,.vc-ig svg{position:relative;z-index:1}
.vc-ig svg{flex:none;margin-top:-2px}
.vc-ig:hover{filter:brightness(1.1);transform:translateY(-2px) scale(1.02)}
.vc-ig:active{transform:translateY(1px) scale(.97)}
.vc-ig:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes vcFade{from{opacity:0}to{opacity:1}}
@keyframes vcRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(max-width:420px){.vc-stat-label{letter-spacing:.1em}.vc-ig{gap:10px}}
@media(prefers-reduced-motion:reduce){.vc *,.vc *:before,.vc{animation:none!important;transition:none!important}.vc-flash,.vc-embers,.vc-beam{display:none}.vc-bolt i{opacity:1;transform:none;background:linear-gradient(90deg,#b8860b,#ffe9a8 45%,#c9951c)}.result.miss .again-btn.rb-primary{animation:none}}
