/* HORIZIA — système d'animations commun à toutes les pages et commandes de l'interface. */
:root{--game-mint:#7dffb3;--game-cyan:#5fe3ff;--game-gold:#ffd86b;--game-motion:240ms cubic-bezier(.22,.7,.25,1);--game-glow:#55e3c53b}
body.hz-world{isolation:isolate}
body.hz-world>main,body.hz-world>footer{position:relative;z-index:1}
.hz-world-aura{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:.7;contain:strict}
.hz-world-aura span{position:absolute;inset:-30% -15%;background:radial-gradient(ellipse at 10% 25%,#1ac39717,transparent 38%),radial-gradient(ellipse at 90% 60%,#20b5de16,transparent 40%);animation:hz-aura-drift 19s ease-in-out infinite alternate;will-change:transform}
.hz-world-aura span+span{background:radial-gradient(ellipse at 70% 10%,#6ae5c711,transparent 33%),radial-gradient(ellipse at 20% 90%,#12668019,transparent 35%);animation-duration:27s;animation-delay:-10s}
/* Une même navigation et les mêmes couleurs actives sur tous les onglets. */







/* Retour visuel de CHAQUE lien, bouton et commande, sans modifier leur action. */
.hz-motion-control{position:relative;isolation:isolate;transition:transform var(--game-motion),border-color var(--game-motion),box-shadow var(--game-motion),background-color var(--game-motion),color var(--game-motion),filter var(--game-motion);-webkit-tap-highlight-color:#7dffb322}
.hz-control-sheen{position:absolute!important;inset:-2px!important;overflow:hidden!important;z-index:2!important;pointer-events:none!important;border:0!important;border-radius:inherit!important;background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;min-height:0!important;min-width:0!important;opacity:.9;contain:paint}
.hz-control-sheen:after{content:"";position:absolute;top:-100%;bottom:-100%;width:30%;left:-65%;background:linear-gradient(90deg,transparent,#c4ffe532,transparent);transform:skewX(-22deg) translateX(-180%);opacity:0}
.hz-motion-control:is(:focus-visible,:hover)>.hz-control-sheen:after{animation:hz-control-sweep .65s ease-out}
body.hz-world main .btn:not(.secondary):not(:disabled)>.hz-control-sheen:after{animation:hz-control-sweep 6.5s ease-in-out infinite;animation-delay:1.2s}
.hz-tap-wave{position:absolute!important;display:block!important;z-index:8!important;width:22px!important;height:22px!important;min-width:0!important;min-height:0!important;border:1px solid #b4ffdb!important;border-radius:50%!important;background:#5fe3ff12!important;box-shadow:0 0 14px #5fe3ff66!important;pointer-events:none!important;padding:0!important;margin:0!important;transform:translate(-50%,-50%) scale(.2);animation:hz-tap-wave .65s ease-out forwards;contain:layout}
.hz-tap-wave:after{content:"";position:absolute;inset:5px;border:1px solid #5fe3ff;border-radius:50%}
.hz-motion-control.hz-press{animation:hz-control-press .3s ease-out}
body.hz-world :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--game-cyan);outline-offset:4px}
body.hz-world :is(.action-arrow,.btn>span[aria-hidden="true"]):not(.hz-control-sheen):not(.hz-tap-wave){display:inline-block;transition:transform .22s}
body.hz-world .pack-option>span{transition:transform .22s,box-shadow .22s,border-color .22s}
body.hz-world .pack-option input:checked+span{animation:hz-option-lock .4s ease-out;box-shadow:inset 0 0 12px #7dffb30f,0 0 12px #5fe3ff20}
/* Apparitions au défilement : rien n'est masqué avant l'activation JavaScript. */
.hz-arrives{animation:hz-world-arrival .7s cubic-bezier(.16,1,.3,1) backwards;animation-delay:var(--hz-delay,0ms)}
.hz-heading-arrives{animation:hz-heading-arrival .65s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--hz-delay,0ms)}
.hz-game-title{position:relative;text-shadow:0 2px 8px #0008;animation:hz-title-aura 8s ease-in-out infinite}
body.hz-world .royal-hero #home-title{animation:hz-home-title-energy 7s ease-in-out infinite}
body.hz-world .royal-hero-crest{animation:hz-hero-emblem-float 6.5s ease-in-out infinite;filter:drop-shadow(0 0 15px #7dffb36b)}
body.hz-world .royal-ornament{display:inline-block;animation:hz-ornament-energy 5.5s ease-in-out infinite;color:#e5ca8e;filter:drop-shadow(0 0 7px #7dffb359)}
body.hz-world .royal-motto{animation:hz-motto-arrival .9s ease-out both}
/* Relief des cartes, halo local à la souris, coins éclairés et survol des médias. */
.hz-motion-card{--hz-accent:var(--staff-accent,var(--grade-color,var(--rank,#7dffb3)));position:relative;isolation:isolate;transition:transform .24s,border-color .24s,box-shadow .24s;transform:perspective(1100px) rotateX(var(--hz-tilt-x,0deg)) rotateY(var(--hz-tilt-y,0deg)) translateY(var(--hz-lift,0px))}
.hz-card-glow{display:block;position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--hz-x,50%) var(--hz-y,50%),color-mix(in srgb,var(--hz-accent) 13%,transparent),transparent 70%);transition:opacity .25s;mix-blend-mode:screen}
.hz-motion-card.hz-card-stable{transform:translateY(var(--hz-lift,0px))}
.hz-motion-card.hz-in-view:focus-within{border-color:#79e6c78c;box-shadow:0 0 0 1px #5fe3ff24,0 12px 30px #0004,0 0 20px #5fe3ff13}
.hz-motion-card.hz-in-view:focus-within>.hz-card-glow{opacity:.7}
body.hz-world .staff-member img{animation:hz-avatar-hover 6s ease-in-out infinite;filter:drop-shadow(0 5px 5px #0008);transition:transform .28s,filter .28s}
body.hz-world :is(.realm-card,.hz-landscape-grid figure,.lore-landscape,.hz-universe-art,.spirit-photo){overflow:hidden}
body.hz-world :is(.realm-card,.hz-landscape-grid figure,.lore-landscape,.hz-universe-art,.spirit-photo) img{transition:transform .6s cubic-bezier(.2,.7,.25,1),filter .5s}
body.hz-world :is(.path-emblem,.auth-intro>img){filter:drop-shadow(0 0 9px #7dffb33d);animation:hz-emblem-hover 6s ease-in-out infinite}
/* Champs et formulaires : focus, validation native et réponses de l'application. */
.hz-field{transition:border-color .22s,box-shadow .22s,background-color .22s,transform .22s}
body.hz-world .hz-field:focus{border-color:#7dffb3;box-shadow:0 0 0 3px #7dffb316,0 0 20px #5fe3ff1c;background-color:#0d2831;outline:none}
body.hz-world :is(input[type="radio"],input[type="checkbox"]){accent-color:#7dffb3;transition:filter .2s}
.hz-value-feedback{animation:hz-value-feedback .55s ease-out}
.hz-feedback{animation:hz-response-arrival .5s ease-out}
.hz-feedback.is-error{animation:hz-error-response .4s ease-out}
body.hz-world .toast:not(:empty){animation:hz-response-arrival .45s ease-out;box-shadow:0 0 0 1px #7dffb33c,0 10px 30px #0007,0 0 23px #5fe3ff26}
/* Onglets, panneaux, tableaux et raccourcis du règlement. */
.hz-panel-switch{animation:hz-panel-switch .48s ease-out}
body.hz-world .path-tabs [aria-selected="true"]{box-shadow:inset 0 -2px 0 #7dffb3,0 0 18px #5fe3ff22;border-color:#7dffb380}
body.hz-world .rules-article:target{border-color:#7dffb3;box-shadow:0 0 0 2px #7dffb329,0 0 24px #5fe3ff26;animation:hz-target-highlight 1.1s ease-out}
body.hz-world .hz-game-table tbody td{transition:background-color .22s,box-shadow .22s}
body.hz-world .hz-game-table tbody tr:hover>td{box-shadow:inset 0 1px 0 #7dffb31e,inset 0 -1px 0 #7dffb31e}
body.hz-world .grade-comparison .is-rank-highlighted{--hz-accent:var(--grade-color)}
/* Les effets permanents coûteux sont suspendus quand la carte n'est pas à l'écran. */
.hz-motion-card:not(.hz-in-view) .staff-member img,.hz-motion-card:not(.hz-in-view) .path-emblem{animation-play-state:paused}
body.hz-motion-paused *{animation-play-state:paused!important}
@media(hover:hover){body.hz-world .hz-motion-control:hover:not(:disabled){border-color:#7dffb38c;box-shadow:0 6px 20px #0004,0 0 18px #5fe3ff26;filter:brightness(1.08)}body.hz-world :is(button,a.btn,a.hz-mini-action,header a,.rules-topics a,.staff-shortcuts a,.dashboard-shortcuts a).hz-motion-control:hover:not(:disabled){transform:translateY(-3px)}body.hz-world .hz-motion-control:hover :is(.action-arrow,svg:not(.rank-crest)){transform:translateX(3px) rotate(-3deg)}body.hz-world .hz-motion-control:hover .brand-logo{transform:rotate(-5deg) scale(1.06);filter:drop-shadow(0 0 15px #7dffb36b)}.hz-motion-card:hover{--hz-lift:-5px;border-color:color-mix(in srgb,var(--hz-accent) 60%,#5fe3ff);box-shadow:0 15px 35px #0006,0 0 22px color-mix(in srgb,var(--hz-accent) 13%,transparent)}.hz-motion-card:hover>.hz-card-glow{opacity:1}body.hz-world :is(.realm-card,.hz-landscape-grid figure,.lore-landscape,.hz-universe-art,.spirit-photo):hover img{transform:scale(1.035);filter:brightness(1.07)}body.hz-world .staff-member:hover img{transform:rotate(-5deg) scale(1.12);filter:drop-shadow(0 0 12px #7dffb34d)}body.hz-world .pack-option:hover>span{transform:translateY(-2px);box-shadow:0 0 13px #5fe3ff28}}
body.hz-world :is(button,a.btn,a.hz-mini-action,header a).hz-motion-control:active:not(:disabled){transform:translateY(1px) scale(.97)}
@keyframes hz-aura-drift{from{transform:translate(-3%,-2%) rotate(-4deg)}to{transform:translate(4%,3%) rotate(4deg)}}
@keyframes hz-menu-energy{0%,100%{box-shadow:inset 0 0 0 2px #092027,0 0 12px #5fe3ff27}50%{box-shadow:inset 0 0 0 2px #092027,0 0 23px #7dffb345}}
@keyframes hz-logo-float{0%,100%{translate:0 1px}50%{translate:0 -3px}}
@keyframes hz-energy-trace{0%,8%{transform:translateX(0);opacity:0}18%{opacity:.9}85%{opacity:.9}100%{transform:translateX(500%);opacity:0}}
@keyframes hz-control-sweep{0%,65%{transform:skewX(-22deg) translateX(-180%);opacity:0}70%{opacity:.9}95%,100%{transform:skewX(-22deg) translateX(750%);opacity:0}}
@keyframes hz-tap-wave{from{opacity:.95;transform:translate(-50%,-50%) scale(.2)}to{opacity:0;transform:translate(-50%,-50%) scale(6)}}
@keyframes hz-control-press{0%{scale:1}35%{scale:.96}100%{scale:1}}
@keyframes hz-option-lock{from{filter:brightness(1.32);translate:0 2px}to{filter:brightness(1);translate:0 0}}
@keyframes hz-world-arrival{from{opacity:.35;translate:0 20px}to{opacity:1;translate:0 0}}
@keyframes hz-heading-arrival{from{opacity:.4;translate:-8px 8px}to{opacity:1;translate:0 0}}
@keyframes hz-title-aura{0%,100%{text-shadow:0 2px 10px #0008,0 0 20px #7dffb315}50%{text-shadow:0 2px 10px #0008,0 0 28px #5fe3ff32}}
@keyframes hz-home-title-energy{0%,100%{text-shadow:0 3px 1px #261f0c,0 6px 22px #000b,0 0 24px #7dffb328;translate:0 2px}50%{text-shadow:0 3px 1px #261f0c,0 6px 24px #000b,0 0 40px #5fe3ff4a;translate:0 -3px}}
@keyframes hz-hero-emblem-float{0%,100%{translate:0 3px;filter:drop-shadow(0 0 12px #7dffb34d)}50%{translate:0 -5px;filter:drop-shadow(0 0 22px #5fe3ff6b)}}
@keyframes hz-ornament-energy{0%,100%{opacity:.7;translate:0 0}50%{opacity:1;translate:0 -2px}}
@keyframes hz-motto-arrival{from{opacity:.3;letter-spacing:6px;translate:0 8px}to{opacity:1;letter-spacing:4px;translate:0 0}}
@keyframes hz-avatar-hover{0%,100%{translate:0 1px}50%{translate:0 -3px}}
@keyframes hz-emblem-hover{0%,100%{translate:0 2px;rotate:-1deg}50%{translate:0 -3px;rotate:1deg}}
@keyframes hz-value-feedback{0%{filter:brightness(1);scale:1}40%{filter:brightness(1.22);scale:1.035}100%{filter:brightness(1);scale:1}}
@keyframes hz-response-arrival{from{opacity:.5;translate:0 7px}to{opacity:1;translate:0 0}}
@keyframes hz-error-response{0%,100%{translate:0 0}25%{translate:-3px 0}60%{translate:3px 0}85%{translate:-1px 0}}
@keyframes hz-panel-switch{from{opacity:.4;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes hz-target-highlight{0%{box-shadow:0 0 0 1px #7dffb33d,0 0 28px #5fe3ff4d}100%{box-shadow:0 0 0 2px #7dffb329,0 0 24px #5fe3ff26}}
@media(max-width:700px){.hz-world-aura{opacity:.45}.hz-world-aura span+span{display:none}.hz-motion-card{transform:translateY(var(--hz-lift,0px))}.hz-card-glow{mix-blend-mode:normal}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.hz-world-aura,.hz-control-sheen,.hz-tap-wave{display:none!important}body.hz-world *,body.hz-world *:before,body.hz-world *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hz-world :is(.hz-motion-card,.hz-motion-control,.hz-game-title,.royal-hero-crest,.brand-logo,.path-emblem,.staff-member img){transform:none!important;translate:none!important;scale:none!important;rotate:none!important}.hz-arrives,.hz-heading-arrives{opacity:1!important;translate:none!important}}
.hz-tap-canvas{position:absolute!important;display:block!important;inset:0!important;overflow:hidden!important;border-radius:inherit!important;pointer-events:none!important;z-index:8!important;padding:0!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;contain:paint}
@media(prefers-reduced-motion:reduce){.hz-tap-canvas{display:none!important}}
/* Le bouton Discord reprend la palette HORIZIA en conservant son logo officiel. */
body.hz-world .hero-discord a{background:linear-gradient(135deg,#123b36ee,#102b39e8);border-color:#7dffb35c;color:#d3ffe6;box-shadow:inset 0 1px 0 #c4ffdf0a,0 5px 18px #0004}
body.hz-world .hero-discord a svg{color:#5fe3ff}
