/* Le portail du ticket : animations légères, aucun changement du moteur XP. */
body{background:#080d16 url('../../cartes/mauditHalloween/assets/decor-gothique-v2.webp') center top/cover fixed no-repeat}
.shell{max-width:1000px;background:linear-gradient(100deg,#090d17ee,#151225dc 55%,#0a1120e8);box-shadow:0 0 100px #000b}
.shell>header{background:#090d16b8}
.shell>header .brand{padding:16px 0}
.shell>header .brand a{color:#f4c37e;letter-spacing:.23em;text-shadow:0 0 24px #c9853833}
.shell>header nav{flex-wrap:wrap;align-items:center}
.shell>header nav>a{font-size:.78rem;padding:10px 4px;min-height:44px;display:flex;align-items:center}
.balance{background:#111724dd;border-block:1px solid #a5824030}
body[data-view=scan] main,body[data-view=receipt] main{background:radial-gradient(ellipse at 50% 42%,#61412428,transparent 65%)}
.scan-experience,.receipt-reveal{max-width:680px;margin:auto;text-align:center}
.scan-experience h1{font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.12;margin-bottom:13px}
.scan-experience h1 em{font-style:normal;color:#f2bf78}
.scan-intro{color:#c9c1d5;margin-bottom:4px}
.portal-form{max-width:480px;margin:auto}
.scan-portal{height:340px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;margin:20px auto 0}
.scan-portal:before{content:'';position:absolute;inset:12% 8%;background:radial-gradient(ellipse,#c791332c,#835bbe15 50%,transparent 70%);z-index:-1}
.radar-ring{position:absolute;width:190px;height:190px;border:1px solid #dca95a;border-radius:50%;opacity:0;animation:ticket-radar 4s ease-out infinite;pointer-events:none;z-index:-1}
.ring-two{animation-delay:2s}
.portal-corners{position:absolute;inset:20px 48px;border:1px solid #c79a5144;border-radius:25px;background:linear-gradient(90deg,#e7b75f,transparent 16%,transparent 84%,#e7b75f) top/100% 2px no-repeat,linear-gradient(90deg,#e7b75f,transparent 16%,transparent 84%,#e7b75f) bottom/100% 2px no-repeat;pointer-events:none}
.portal-ticket{position:relative;width:232px;padding:20px 24px 24px;color:#352638;background:#f7edd7;clip-path:polygon(0 0,100% 0,100% 97%,95% 100%,90% 97%,85% 100%,80% 97%,75% 100%,70% 97%,65% 100%,60% 97%,55% 100%,50% 97%,45% 100%,40% 97%,35% 100%,30% 97%,25% 100%,20% 97%,15% 100%,10% 97%,5% 100%,0 97%);transform:rotate(-3deg);transition:transform .4s,filter .4s;box-shadow:0 15px 35px #000a}
.receipt-brand{display:block;font:700 25px Georgia,serif;letter-spacing:3px}
.receipt-demo{display:block;font-size:8px;letter-spacing:.06em;margin-top:7px}
.receipt-strokes{margin:17px 0;display:grid;gap:6px}
.receipt-strokes i{height:2px;background:#92816c66}.receipt-strokes i:nth-child(2){width:70%}
.portal-ticket label{display:block;font-size:12px;text-align:left}
.portal-ticket input{width:100%;background:#fffaf0;border:1px solid #98806d;color:#281d2b;font-size:25px;font-weight:650;text-align:center;padding:7px;margin:7px 0 12px;min-height:46px}
.portal-ticket input:focus-visible{outline:3px solid #885324;outline-offset:2px}
.portal-ticket-total{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #9e8974;padding-top:9px;font-size:12px}
.portal-ticket-total strong{font-size:19px;color:#71410f}
.receipt-barcode{display:block;width:80%;height:18px;margin:14px auto 0;background:repeating-linear-gradient(90deg,#352638 0 2px,transparent 2px 4px,#352638 4px 5px,transparent 5px 8px)}
.portal-rune{position:absolute;bottom:5px;font-size:26px;color:#f6c274;text-shadow:0 0 16px #ffbd4c}
.portal-beam{display:none;position:absolute;inset:30px 58px auto;height:3px;background:#ffdf94;box-shadow:0 0 18px 4px #ffa94088;pointer-events:none}
.scan-status{color:#efd1a0;font-size:14px;min-height:44px;display:flex;align-items:center;justify-content:center;margin:6px 0}
.scan-trigger{padding:17px 20px;box-shadow:0 0 30px #d0903423;font-size:17px;letter-spacing:.015em}
.scan-trigger span{margin-left:12px}.scan-cancel{font-size:14px;padding:8px 0}
.scan-caption{font-size:11px;line-height:1.6;color:#b4adbf;margin:12px auto 0;max-width:400px}
.is-scanning .portal-beam{display:block;animation:ticket-read 1.1s ease-in-out infinite alternate}
.is-scanning .portal-ticket{transform:rotate(0);filter:brightness(1.08)}
.is-scanning .radar-ring{animation-duration:1.3s}
.is-scanning .scan-trigger:disabled{opacity:1;background:#3c2f25;color:#f3ce92}
.xp-orb{position:relative;display:grid;place-content:center;width:225px;height:225px;margin:18px auto 8px;border:1px solid #ce9b574f;border-radius:50%;background:radial-gradient(circle,#b67a3833,transparent 72%);box-shadow:0 0 70px #c9943020;animation:xp-arrival .9s ease-out both}
.xp-orb:before,.xp-orb:after{content:'✦';position:absolute;font-size:24px;color:#ebba70;text-shadow:0 0 20px #f9a936;top:18%;left:5%}.xp-orb:after{top:68%;left:90%;font-size:18px}
.xp-orb>span{font-size:22px;color:#f7ce8c}.xp-orb h1{font-size:64px;color:#ffda99;margin:0;text-shadow:0 0 28px #ce97466b}.xp-orb small{display:block;font:600 15px/1.7 system-ui;letter-spacing:.2em}
.receipt-calculation{font-size:13px;color:#beb2c9;margin:12px 0 26px}
.receipt-reveal h2{font-size:clamp(24px,4vw,32px);color:#f5dfbd}
.reveal-card-fan{height:195px;display:flex;align-items:center;justify-content:center;gap:0;margin:25px 0 30px}
.reveal-card-fan img{height:175px;width:auto;max-width:30%;object-fit:contain;border-radius:7px;filter:drop-shadow(0 10px 14px #0008)}
.reveal-card-fan img:first-child{transform:rotate(-12deg) translate(15px,6px)}
.reveal-card-fan img:nth-child(2){height:195px;z-index:1}
.reveal-card-fan img:last-child{transform:rotate(12deg) translate(-15px,6px)}
.receipt-reveal .receipt-choice{max-width:480px;margin:auto;background:#141927d9;border-color:#b786484f;padding:22px}
.receipt-choice p{font-size:14px;line-height:1.6;color:#c9c1d5;margin-bottom:12px}.reserve-choice{background:transparent;border-color:#82688b}
@keyframes ticket-radar{0%{transform:scale(.9);opacity:.45}100%{transform:scale(1.85);opacity:0}}
@keyframes ticket-read{from{transform:translateY(10px)}to{transform:translateY(265px)}}
@keyframes xp-arrival{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
@media(max-width:520px){body{background-attachment:scroll}.shell>header .brand{padding:12px 0}.shell>header .brand a{font-size:25px}.shell>header nav{gap:4px}.shell>header nav button{font-size:12px}.shell>header nav>a{flex-basis:100%;justify-content:center;min-height:34px;font-size:11px;padding:4px}.scan-experience .eyebrow{font-size:9px}.scan-intro{font-size:14px}.scan-portal{height:320px;margin-top:10px}.portal-corners{inset:14px 9px}.portal-beam{left:16px;right:16px}.portal-ticket{width:216px;padding:17px 22px 22px}.radar-ring{width:150px;height:150px}.scan-trigger{font-size:15px}.receipt-reveal .receipt-choice{padding:17px}.reveal-card-fan{height:175px}.reveal-card-fan img{height:155px}.reveal-card-fan img:nth-child(2){height:175px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.radar-ring{opacity:.15}.is-scanning .portal-beam{top:50%}}

/* Simulation du geste de scan : cadrage, lecture, détection, puis XP. */
.camera-viewfinder{height:365px;border:1px solid #be99535c;border-radius:24px;overflow:hidden;background:radial-gradient(ellipse at 50% 65%,#31303e,#10131bdd 65%),#0b0d14;box-shadow:inset 0 0 60px #0009,0 20px 50px #0005}
.camera-label{position:absolute;top:16px;left:0;right:0;color:#ddcbb0;font:600 9px/1.4 system-ui;letter-spacing:.18em;z-index:3}
.camera-dot{display:inline-block;width:6px;height:6px;background:#e6b267;border-radius:50%;margin-right:6px;box-shadow:0 0 10px #f4bd61}
.camera-viewfinder .portal-corners{inset:45px max(22px,calc((100% - 276px)/2)) 36px;border:0;border-radius:0;background:none;z-index:3}
.portal-corners i{position:absolute;width:27px;height:27px;border:solid #f5ca7c;border-width:3px 0 0 3px;border-radius:6px 0 0;transition:color .3s,border-color .3s}
.portal-corners i:nth-child(1){top:0;left:0}.portal-corners i:nth-child(2){top:0;right:0;transform:rotate(90deg)}.portal-corners i:nth-child(3){bottom:0;right:0;transform:rotate(180deg)}.portal-corners i:nth-child(4){bottom:0;left:0;transform:rotate(270deg)}
.camera-viewfinder .portal-ticket{width:210px;padding:23px 19px 27px;transform:translate(20px,75px) rotate(-13deg) scale(.87);filter:brightness(.55) blur(.4px);opacity:.65;transition:transform 1.25s ease,filter 1.25s ease,opacity 1.25s ease;z-index:1}
.camera-viewfinder .receipt-brand{font-size:23px}.camera-viewfinder .receipt-demo{font-size:7px}
.receipt-items{display:grid;grid-template-columns:1fr auto;text-align:left;font:11px/1.9 monospace;gap:4px 8px;margin:24px 0 15px;border-top:1px dashed #9e8974;padding-top:12px}
.receipt-items span:nth-child(even){text-align:right}
.camera-viewfinder .portal-ticket-total{font-size:10px}.camera-viewfinder .portal-ticket-total strong{font-size:19px;white-space:nowrap;color:#302730}
.receipt-thanks{display:block;font:9px monospace;margin-top:10px}
.camera-hint{position:absolute;bottom:12px;left:0;right:0;color:#b0a8b8;letter-spacing:.14em;font:8px system-ui;z-index:3}
.camera-viewfinder .portal-beam{display:block;left:12%;right:12%;top:48px;height:2px;z-index:2;opacity:.22;animation:camera-sweep 2.7s ease-in-out infinite alternate}
.camera-viewfinder .radar-ring{z-index:0}
.is-scanning .camera-viewfinder .portal-ticket{transform:translate(0,5px) rotate(0) scale(1);filter:brightness(1);opacity:1}
.camera-viewfinder[data-phase=framing] .portal-beam{opacity:0}
.camera-viewfinder[data-phase=reading] .portal-beam{opacity:1;animation:camera-sweep 1.2s ease-in-out infinite alternate}
.camera-viewfinder[data-phase=detected] .portal-beam,.camera-viewfinder[data-phase=xp] .portal-beam{display:none}
.camera-viewfinder[data-phase=detected] .portal-corners i,.camera-viewfinder[data-phase=xp] .portal-corners i{border-color:#8febbd;box-shadow:0 0 10px #8febbd22}
.detection-ok{position:absolute;right:22px;top:52px;width:36px;height:36px;background:#8febbd;border-radius:50%;color:#142921;font-size:23px;display:grid;place-content:center;z-index:4;opacity:0;transform:scale(.6);transition:opacity .3s,transform .3s}
.camera-viewfinder[data-phase=detected] .detection-ok,.camera-viewfinder[data-phase=xp] .detection-ok{opacity:1;transform:scale(1)}
.camera-viewfinder[data-phase=xp] .portal-ticket{filter:brightness(1.25);transform:translateY(-12px) scale(.95)}
.scan-progress{display:flex;justify-content:center;gap:20px;margin:0 0 17px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#8b8198}
.scan-progress span{border-top:2px solid #514457;padding-top:7px;min-width:60px}
.portal-form:has([data-phase=framing]) .scan-progress span:first-child,.portal-form:has([data-phase=reading]) .scan-progress span:nth-child(-n+2),.portal-form:has([data-phase=detected]) .scan-progress span:nth-child(-n+2),.portal-form:has([data-phase=xp]) .scan-progress span{color:#f9d498;border-color:#e8b261}
.scan-trigger{display:flex;align-items:center;justify-content:center;gap:12px}.scan-trigger .shutter-icon{margin:0;display:inline-block;flex:none;width:22px;height:22px;border:2px solid currentColor;border-radius:50%;box-shadow:inset 0 0 0 4px #e8c688}
@keyframes camera-sweep{from{transform:translateY(0)}to{transform:translateY(270px)}}
@media(max-width:520px){.camera-viewfinder{height:340px}.camera-viewfinder .portal-ticket{width:194px;padding:19px 17px 23px}.camera-viewfinder .portal-corners{inset:40px 24px 30px}.camera-viewfinder .portal-beam{top:43px}.camera-viewfinder .receipt-items{margin-top:18px}.camera-viewfinder .receipt-brand{font-size:22px}.camera-viewfinder .portal-ticket-total strong{font-size:17px}.detection-ok{right:12px;top:43px;width:30px;height:30px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.camera-viewfinder .portal-ticket{transform:translateY(5px);filter:brightness(.85);opacity:1}.camera-viewfinder .portal-beam{top:50%}.is-scanning .camera-viewfinder .portal-ticket{transform:translateY(5px)}}

.reserve-cauldron{display:flex;align-items:center;gap:18px;padding:12px 26px 12px 12px;margin:24px 0;border:1px solid #c1955759;border-radius:20px;background:radial-gradient(ellipse at 15% 50%,#81469033,transparent 53%),linear-gradient(110deg,#191523e8,#101520dc);box-shadow:inset 0 1px #edc4840d;text-align:left}
.cauldron-art{position:relative;width:180px;flex:0 0 180px;filter:drop-shadow(0 8px 14px #0005)}
.cauldron-art svg{display:block;width:100%;height:auto;overflow:visible}
.cauldron-xp{position:absolute;inset:45% 17% auto;text-align:center;color:#ffe5aa;text-shadow:0 0 12px #fcb947b3;animation:reserve-glow 2.8s ease-in-out infinite;line-height:1.15}
.cauldron-xp strong{display:block;font:700 clamp(18px,3vw,25px)/1.25 Georgia,serif;overflow-wrap:anywhere}
.cauldron-xp span{font:700 11px/1.5 system-ui;letter-spacing:.15em}
.potion-sparks{animation:reserve-sparks 3.6s ease-in-out infinite;transform-origin:100px 60px}
.reserve-copy .eyebrow{font-size:10px;margin:0 0 7px;color:#e8b879}.reserve-copy h2{font-size:clamp(21px,3vw,28px);line-height:1.2;color:#f7dfb8;margin:0 0 8px}
.reserve-copy p:not(.eyebrow){font-size:14px;color:#d5c6dc;margin:0 0 8px}.reserve-copy>span{display:block;color:#aca2ba;font-size:12px;line-height:1.6}
@keyframes reserve-glow{0%,100%{opacity:1;text-shadow:0 0 14px #ffc967b3}50%{opacity:.55;text-shadow:0 0 3px #e3a94155}}
@keyframes reserve-sparks{0%,100%{opacity:.4;transform:translateY(3px)}50%{opacity:1;transform:translateY(-5px)}}
@media(max-width:520px){.reserve-cauldron{gap:5px;padding:14px 12px 14px 3px}.cauldron-art{width:128px;flex-basis:128px}.cauldron-xp strong{font-size:18px}.reserve-copy h2{font-size:21px}.reserve-copy p:not(.eyebrow){font-size:12px}.reserve-copy>span{font-size:11px}.reserve-copy .eyebrow{font-size:9px}}
@media(max-width:350px){.reserve-cauldron{flex-direction:column;text-align:center;padding:8px 16px 18px}.cauldron-art{flex-basis:auto;width:140px}}
@media(prefers-reduced-motion:reduce){.cauldron-xp,.potion-sparks{animation:none;opacity:1}}

.cauldron-button{border:0;background:none;padding:0;border-radius:20px;cursor:pointer;transition:filter .3s,transform .3s}
.cauldron-button:hover{background:#b78a3714;transform:translateY(-3px);filter:drop-shadow(0 0 18px #b77afc66)}
#xp-dialog{padding:32px;background:radial-gradient(ellipse at 50% 0,#52345d,#161220 70%);border:1px solid #d5ab6a;border-radius:22px;box-shadow:0 0 80px #9e609344}
#xp-dialog h2{font-size:28px;line-height:1.15;padding:0;color:#ffe1ab;margin:15px 0}
.xp-dialog-close{position:absolute;right:10px;top:10px;width:38px;min-height:38px;padding:0;border:0;background:transparent;font-size:24px}
.xp-dialog-spark{font-size:35px;color:#ffd791;text-shadow:0 0 30px #d99347}
#xp-dialog .eyebrow{font-size:10px;margin:10px 0}#xp-dialog #xp-available{font-size:16px;color:#edc780}
#xp-gift-form label{display:block;text-align:left;margin:22px 0 8px;color:#d1c1d9;font-size:13px}
.xp-input-row{display:flex;gap:8px}.xp-input-row input{min-width:0;flex:1;width:100%;font-size:25px;text-align:center;color:#ffe0a0}.xp-input-row button{font-size:12px}
#xp-dialog .xp-dialog-hint{font-size:12px;line-height:1.6;color:#c1b4ce;margin:18px 0}
#xp-dialog-error{color:#ffbfa5;min-height:0}#xp-dialog-error:empty{display:none}
.xp-transfer-bar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;gap:16px;background:#1e172cf5;border:1px solid #d3a45f;border-radius:15px;padding:12px;margin:20px 0;box-shadow:0 10px 30px #0008;isolation:isolate}
.xp-transfer-bar p{margin:0;font-size:12px;color:#e8d3b2;line-height:1.5;flex:1}
#xp-token{flex:none;background:radial-gradient(ellipse,#fad691,#ba814a);color:#211426;border:2px solid #ffe1a0;border-radius:40px;font-weight:800;box-shadow:0 0 18px #e8ba5844;cursor:grab;touch-action:none;user-select:none;position:relative;z-index:22;white-space:nowrap}
#xp-token.xp-dragging{cursor:grabbing;box-shadow:0 0 35px #e3ae69aa;pointer-events:none}
[data-xp-cancel]{padding:3px 10px;font-size:24px;background:none;border:0}
.family.xp-selectable{border-color:#a68054}.family.xp-target{border:2px solid #ffd481;background:#4b3449;box-shadow:0 0 24px #db9c4d66}
.xp-target-label{display:block;background:#f4cc86;color:#2e1b25;padding:12px 8px;margin-top:12px;border-radius:6px;font-size:12px;font-weight:750;line-height:1.5;text-align:center}
.tier.xp-received{border-color:#e9b76e;box-shadow:0 0 26px #d8a65555}
.tier.xp-received progress::-webkit-progress-value{background:#efc16f}.tier.xp-received progress::-moz-progress-bar{background:#efc16f}
@media(max-width:520px){#xp-dialog{padding:27px 20px}.xp-transfer-bar{gap:8px;flex-wrap:wrap;top:8px}.xp-transfer-bar p{flex-basis:calc(100% - 45px);order:2}.xp-transfer-bar [data-xp-cancel]{margin-left:auto}.xp-transfer-bar #xp-token{padding:10px 15px}.xp-target-label{font-size:11px;padding:8px 5px}}

/* Scan simplifié : un viseur puis un résultat, à un rythme lisible. */
.camera-viewfinder .portal-ticket{transition-duration:2.2s}
.camera-viewfinder[data-phase=reading] .portal-beam{animation-duration:2.3s}
@media(prefers-reduced-motion:reduce){.camera-viewfinder .portal-ticket{transition:none}}

/* Réserve compacte : alignée avec le Corbeau, troisième colonne sur ordinateur. */
.collection-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:end;margin:8px 0 18px}
.collection-tools .toolbar{grid-column:1 / 3;margin:0 0 10px;align-items:center}
.collection-tools .reserve-cauldron{grid-column:3;justify-self:center;display:flex;flex-direction:column;gap:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;text-align:center;width:160px;max-width:100%}
.collection-tools .cauldron-art{width:145px;max-width:100%;flex:0 0 auto;filter:drop-shadow(0 4px 12px #54257466)}
.collection-tools .cauldron-button:hover{background:none;filter:drop-shadow(0 0 14px #b947ff80)}
.cauldron-caption{font-size:11px;line-height:1.4;color:#c9bad6;margin:0}
.collection-tools .cauldron-xp{color:#eaffc5;animation:green-reserve-glow 3s ease-in-out infinite}
.collection-tools .cauldron-xp strong{font-size:21px}
.potion-bubbles{filter:drop-shadow(0 0 5px #c02bff)}
.potion-bubble{transform-box:fill-box;transform-origin:center;animation:potion-bubble 2.8s ease-in-out infinite}
.potion-bubble.b2{animation-delay:-1.3s;animation-duration:3.3s}.potion-bubble.b3{animation-delay:-.5s;animation-duration:2.6s}.potion-bubble.b4{animation-delay:-2.1s;animation-duration:3s}.potion-bubble.b5{animation-delay:-.8s;animation-duration:2.3s}
@keyframes potion-bubble{0%{transform:translateY(3px) scale(.45);opacity:.65}30%{transform:translateY(-3px) scale(1.05);opacity:1}70%{transform:translateY(-18px) scale(.9);opacity:.9}85%,100%{transform:translateY(-29px) scale(.15);opacity:0}}
@keyframes green-reserve-glow{0%,100%{opacity:1;text-shadow:0 0 12px #aade6780}50%{opacity:.65;text-shadow:0 0 4px #9acf6350}}
@media(max-width:520px){.collection-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.collection-tools .toolbar{grid-column:1;flex-direction:column;align-items:stretch;gap:8px;margin-bottom:8px}.collection-tools .toolbar button{font-size:11px;padding:9px 7px}.collection-tools .reserve-cauldron{grid-column:2;width:135px}.collection-tools .cauldron-art{width:125px}.collection-tools .cauldron-xp strong{font-size:18px}.cauldron-caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.collection-tools .cauldron-xp,.potion-bubble{animation:none;opacity:1}.potion-bubble.b2,.potion-bubble.b4{transform:translateY(-10px)}}

/* Progression de résurrection, visible dès le choix de la carte. */
.family{border:1px solid color-mix(in srgb,var(--card-glow) 40%,#35243d);background:radial-gradient(ellipse at 50% 10%,#45304c88,transparent 65%),linear-gradient(150deg,#201626,#090d16);border-radius:16px;box-shadow:inset 0 0 20px #0007,0 7px 20px #0005;padding:12px;transition:border-color .3s,box-shadow .3s}
.family:hover{border-color:var(--card-glow);box-shadow:0 0 20px color-mix(in srgb,var(--card-glow) 25%,transparent)}
.family img{transition:filter 1.8s ease}.family-name small{font:12px system-ui;color:var(--card-glow)}
.family-meter{display:block;height:16px;border:1px solid color-mix(in srgb,var(--card-glow) 70%,#fff);border-radius:20px;margin:13px 0 7px;padding:3px;background:#090b12;box-shadow:inset 0 2px 5px #000,0 0 10px color-mix(in srgb,var(--card-glow) 20%,transparent)}
.family-meter-fill{display:block;height:100%;border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--card-glow) 60%,#29142e),var(--card-glow),#fff3be);box-shadow:0 0 10px var(--card-glow);transition:width 1.8s ease}
.family-progress{display:flex;justify-content:space-between;gap:4px;font-size:13px;color:#fff0d1;font-weight:700}.family-progress b{color:var(--card-glow)}
.family-next{line-height:1.5;font-size:11px}.family-meta{margin-top:8px}
.family.xp-received{border:2px solid var(--card-glow);box-shadow:0 0 35px color-mix(in srgb,var(--card-glow) 45%,transparent)}
.xp-arrival{position:absolute;top:28%;left:10%;right:10%;padding:12px 5px;border:1px solid #ffe3a2;border-radius:25px;text-align:center;color:#ffeabc;background:#1c1233e8;font:bold 24px Georgia,serif;box-shadow:0 0 28px #a95ad988;pointer-events:none;animation:xp-transfer-arrival 3s ease both}
@keyframes xp-transfer-arrival{0%{opacity:0;transform:translateY(25px) scale(.7)}20%,65%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-45px)}}
.receipt-selection{max-width:none!important}.receipt-selection .family-grid{text-align:left;margin-top:24px}.receipt-selection .xp-orb{width:140px;height:140px;margin:0 auto 16px}.receipt-selection .xp-orb h1{font-size:40px}.receipt-instruction{color:#e1d2e9;font-size:15px;max-width:570px;margin:0 auto 18px}.receipt-target-help{color:#ffe0a0;min-height:24px;margin-top:18px}.receipt-selection .reserve-choice{margin-bottom:6px}.receipt-selection h2{font-size:clamp(25px,4vw,36px)}
.tier progress{height:15px;box-shadow:0 0 12px #b29aca44}.tier-progress{font-size:14px;font-weight:650}
@media(max-width:520px){.family{padding:8px;border-radius:12px}.family-progress{font-size:11px}.family-name small{display:block;margin-top:3px}.receipt-selection .xp-orb{width:115px;height:115px}.receipt-instruction{font-size:13px}.receipt-selection .family-grid{gap:10px}.xp-target-label{font-size:12px}.xp-arrival{font-size:19px}}
@media(prefers-reduced-motion:reduce){.xp-arrival{animation:none}.family img,.family-meter-fill{transition:none}}

/* Réserve immédiatement identifiable et bulles violettes. */
.cauldron-title{margin:0 0 10px;color:#e3b0ff;font-size:14px;font-weight:800;letter-spacing:.06em;text-align:center;text-shadow:0 0 12px #ab35ff99;animation:cauldron-title-blink 2.4s ease-in-out infinite}
.potion-bubbles .potion-bubble{fill:#b844ff;stroke:#edbcff;filter:drop-shadow(0 0 4px #9d22ff)}
@keyframes cauldron-title-blink{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:520px){.cauldron-title{font-size:12px;margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.cauldron-title{animation:none;opacity:1}}

/* Trois destinations distinctes, également sur téléphone. */
.shell>header nav.demo-navigation{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:8px;align-items:stretch;padding-bottom:10px}
.shell>header nav.demo-navigation>a,.shell>header nav.demo-navigation>button{display:flex;align-items:center;justify-content:center;text-align:center;padding:11px 8px;min-width:0;min-height:46px;border:1px solid #796484;border-radius:9px;background:#251c31;color:#f5eee1;font-size:13px;text-decoration:none;line-height:1.35}
.shell>header nav.demo-navigation>a:hover,.shell>header nav.demo-navigation>button:hover{background:#35273f;border-color:#e5bd78}
.shell>header nav.demo-navigation>button[aria-current=page]{color:#ffe0a0;border-color:#e5bd78;background:#463047}
@media(max-width:520px){.shell>header nav.demo-navigation{gap:5px}.shell>header nav.demo-navigation>a,.shell>header nav.demo-navigation>button{font-size:11px;padding:9px 5px}}

/* Intitulés de la démonstration Grandes Enseignes. */
.topline .digital-universe-link{color:#e3b0ff;text-align:right;text-shadow:0 0 10px #a735ff66;animation:digital-universe-blink 2.6s ease-in-out infinite}
.topline .demo,.topline .digital-universe-link{min-width:0;line-height:1.5}
@keyframes digital-universe-blink{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:520px){.topline{align-items:flex-start;gap:12px}.topline .demo{max-width:52%;font-size:10px}.topline .digital-universe-link{max-width:48%;font-size:11px}}
@media(prefers-reduced-motion:reduce){.topline .digital-universe-link{animation:none;opacity:1}}

/* Retour Grandes Enseignes permanent, sans clignotement. */
.topline .demo-home{animation:none;opacity:1;color:var(--gold);text-decoration:underline;text-underline-offset:4px}
.topline .demo-home:hover{color:#ffe3ae}

/* Explicit bridge from the simulation to validated receipt XP. */
.pilot-album-access{margin:0 20px 16px;padding:15px 18px;border:1px solid #8b7050;border-radius:12px;background:#241d2b;color:#f5eee1}.pilot-album-access p{margin:0 0 12px}.pilot-album-access a{display:inline-block;text-decoration:none;border-radius:8px;padding:10px 14px}
[data-ticket-pilot-only][hidden]{display:none!important}
