/* RIP — IT · Jeu Black Friday — DA reprise de rip-it.fr (boutique/assets/shop.css) */
@font-face{font-family:"PP NeueBit";src:url(/_next/static/media/PPNeueBit-Bold.2015wq3ub8ca4.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Neue Montreal";src:url(/_next/static/media/PPNeueMontreal-Regular.2nt9vwhba_bmh.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Neue Montreal Medium";src:url(/_next/static/media/PPNeueMontreal-Medium.3-ybiivjpygh_.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --ink:#000;
  --paper:#fff;
  --soft:#f6f6f6;
  --line:rgba(0,0,0,.12);
  --muted:rgba(0,0,0,.6);
  --gutter:clamp(16px,4vw,64px);
  --bit:"PP NeueBit",ui-monospace,monospace;
  --sans:"Neue Montreal",system-ui,-apple-system,sans-serif;
  --med:"Neue Montreal Medium","Neue Montreal",system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.35;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.muted{color:var(--muted)}
.h-small{font-family:var(--bit);text-transform:uppercase;font-size:clamp(17px,1.6vw,20px);margin:0 0 14px}

/* bandeau test */
.test{background:var(--ink);color:#fff;text-align:center;font-family:var(--bit);text-transform:uppercase;font-size:13px;padding:8px var(--gutter)}

/* header */
.hdr{position:sticky;top:0;z-index:50;height:64px;display:flex;align-items:center;gap:16px;padding:0 var(--gutter);background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.brand:hover{opacity:.7}
.brand__mascot{height:30px;width:auto;image-rendering:pixelated}
.brand__word{display:flex;align-items:center;gap:.27em;font-family:var(--bit);font-size:28px;line-height:1}
.brand__dash{display:inline-block;width:.7em;height:max(1.5px,.05em);background:var(--ink);transform:translateY(-.04em)}
.brand__c{font-family:var(--med);font-size:11px;align-self:flex-start}
.hdr__link{margin-left:auto;border:1px solid var(--ink);padding:10px 16px;font-family:var(--bit);font-size:14px;text-transform:uppercase;text-decoration:none;transition:opacity .2s}
.hdr__link:hover{opacity:.6}

/* intro / lockup */
.jeu{max-width:560px;margin:0 auto;padding:56px 16px 96px}
.intro{display:flex;justify-content:center;margin-bottom:40px}
.lockup{width:fit-content}
.lockup__title{font-family:var(--bit);font-weight:700;font-size:clamp(64px,16vw,98px);line-height:.82;margin:0}
.lockup__lines{margin-top:14px;font-family:var(--bit);font-size:clamp(13px,3.4vw,18px);line-height:1;opacity:.8}
.lockup__row{display:flex;justify-content:space-between;gap:40px}

/* carte */
.carte{border:1px solid var(--ink);background:var(--paper);padding:28px clamp(18px,5vw,32px)}
h1{font-family:var(--bit);font-weight:700;text-transform:uppercase;font-size:32px;line-height:.95;margin:0 0 14px;letter-spacing:0}
.carte>p{margin:0 0 6px}
.lead{font-size:clamp(14px,1.2vw,16px);color:var(--muted);margin:0}
.code{font-family:var(--bit);font-size:18px;letter-spacing:.06em;color:var(--ink)}
.petit{font-size:12px;line-height:1.4;color:var(--muted);margin:14px 0 0}
.carte a{text-underline-offset:3px}

/* formulaire (même style que le formulaire de rétractation du site) */
form{display:flex;flex-direction:column;gap:16px;margin-top:28px}
label{display:flex;flex-direction:column;gap:6px;font-family:var(--bit);font-size:13px;text-transform:uppercase}
input[type=text],input[type=email],input:not([type]){font:inherit;font-family:var(--sans);text-transform:none;font-size:16px;border:1px solid var(--ink);border-radius:0;padding:12px;background:#fff;color:var(--ink);width:100%}
fieldset{border:0;border-top:1px solid var(--line);padding:16px 0 0;margin:0;display:flex;flex-direction:column;gap:10px}
legend{font-family:var(--bit);font-size:13px;text-transform:uppercase;padding:0 8px 0 0}
.choix{flex-direction:row;align-items:flex-start;gap:10px;font-family:var(--sans);text-transform:none;font-size:14px;line-height:1.35}
.choix input{margin:2px 0 0;accent-color:#000;width:16px;height:16px;flex:none}
.parents{color:var(--muted)}
button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 24px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-family:var(--bit);font-size:16px;text-transform:uppercase;cursor:pointer;transition:opacity .2s;border-radius:0}
button:hover{opacity:.8}
.erreurs{margin:16px 0 0;padding:12px 14px 12px 30px;border-left:2px solid #b00020;background:var(--soft);color:#b00020;font-size:13px}

/* champ code manuel */
form[method=get]{flex-direction:row;gap:8px}
form[method=get] input{flex:1;font-family:var(--bit);font-size:20px;text-transform:uppercase;letter-spacing:.08em}
form[method=get] button{width:auto}

/* résultat */
.resultat{position:relative;text-align:center;padding:40px 0 28px;border-bottom:1px solid var(--line)}
.resultat .big{font-family:var(--bit);font-weight:700;font-size:clamp(64px,18vw,96px);line-height:.82;text-transform:uppercase}
.resultat p{margin:16px auto 0;max-width:380px}
.resultat.gagne{background:var(--ink);color:#fff;margin:-28px calc(-1 * clamp(18px,5vw,32px)) 0;padding:56px clamp(18px,5vw,32px) 32px;border:0}
.resultat.gagne .petit{color:rgba(255,255,255,.65)}
.resultat.gagne .lot{font-family:var(--bit);font-size:clamp(22px,5vw,28px);text-transform:uppercase;line-height:1;margin-top:18px}
.etb{display:flex;gap:16px;align-items:center;margin-top:24px}
.etb .nb{font-family:var(--bit);font-weight:700;font-size:56px;line-height:.8;min-width:72px;text-align:center;border:1px solid var(--ink);padding:12px 6px 8px}
.etb p{margin:0}

/* bulle pixel (construction identique à rip-it.fr) */
.bubble{position:absolute;display:inline-block;font-family:var(--bit);font-size:clamp(13px,3.24vw,17px);line-height:.75;color:#000;text-transform:uppercase;white-space:nowrap;z-index:2}
.bubble__bg{position:absolute;inset:0;pointer-events:none}
.bubble__bg i{position:absolute;background:#000}
.bubble__bg .f{background:#fff;top:.2em;bottom:.2em;left:.2em;right:.2em}
.bubble__bg .t{height:.21em;left:.41em;right:.41em;top:0}
.bubble__bg .b{height:.21em;left:.41em;right:.41em;bottom:0}
.bubble__bg .l{width:.21em;top:.38em;bottom:.38em;left:0}
.bubble__bg .r{width:.21em;top:.38em;bottom:.38em;right:0}
.bubble__bg .tl{width:.18em;height:.19em;left:.2em;top:.2em}
.bubble__bg .tr{width:.18em;height:.19em;right:.2em;top:.2em}
.bubble__bg .bl{width:.18em;height:.19em;left:.2em;bottom:.2em}
.bubble__bg .br{width:.18em;height:.19em;right:.2em;bottom:.2em}
.bubble__txt{position:relative;display:block;padding:.75em 1em;text-align:center}
.bubble--res{top:-14px;right:8px;transform:rotate(4deg)}
.gagne .bubble__bg i{background:#fff}
.gagne .bubble__bg .f{background:#000}
.gagne .bubble{color:#fff}

/* règlement / tableaux */
table{border-collapse:collapse;width:100%;font-size:14px}
td,th{border-bottom:1px solid var(--line);padding:8px 4px;text-align:left}

/* footer */
.ftr{padding:clamp(48px,6vw,81px) var(--gutter) 24px;border-top:1px solid var(--line)}
.ftr__brand{display:flex;align-items:center;gap:.27em;font-family:var(--bit);font-size:clamp(72px,9vw,132px);line-height:.8}
.brand__dash--xl{width:.7em;height:.05em}
.brand__c--xl{font-size:clamp(24px,3vw,44px)}
.ftr__tag{max-width:320px;margin:40px 0 56px}
.ftr__cols{display:flex;flex-wrap:wrap;gap:clamp(45px,8vw,120px)}
.ftr__cols>div{display:flex;flex-direction:column;gap:14px}
.ftr__cols a{text-decoration:none;font-size:14px}
.ftr__cols a:hover{color:var(--ink)}
.ftr__copy{margin:56px 0 0;font-size:13px}
@media (max-width:520px){.ftr__cols{gap:32px 45px}}

/* effets de résultat */
.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:100}
.lot-img{margin:24px auto 4px;width:min(170px,44vw);transform:scale(.4) rotate(-8deg);opacity:0}
.lot-img img{width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(255,255,255,.18))}
.gagne.is-in .lot-img{animation:pop .7s cubic-bezier(.2,1.6,.4,1) .25s forwards}
.gagne.is-in .big{animation:shake .5s steps(4) .1s}
@keyframes pop{0%{transform:scale(.4) rotate(-8deg);opacity:0}60%{opacity:1}100%{transform:scale(1) rotate(-4deg);opacity:1}}
@keyframes shake{0%,100%{transform:none}25%{transform:translate(-3px,1px)}50%{transform:translate(3px,-1px)}75%{transform:translate(-2px,0)}}
.ghost-fx{display:block;width:96px;height:auto;margin:6px auto 18px;image-rendering:pixelated}
.perdu .encourage{font-size:15px;color:var(--ink);margin-top:14px}
.perdu.is-in .big{animation:fade .6s ease .9s both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lot-img{transform:none;opacity:1}.gagne.is-in .lot-img,.gagne.is-in .big,.perdu.is-in .big{animation:none}}
