.rift-shell{--rift-accent:#9bff24;--rift-shadow:#315f32;max-width:1390px;margin:0 auto;padding:36px 28px 95px;color:#eef7ed}
.rift-shell *{box-sizing:border-box}
.rift-shell [hidden]{display:none!important}
.rift-shell button{font:inherit;cursor:pointer}
.rift-shell button:disabled{cursor:not-allowed;opacity:.45}
.rift-shell h1,.rift-shell h2,.rift-shell h3,.game-choices h2{font-family:'Barlow Condensed',sans-serif!important;text-transform:uppercase;line-height:1.02}
.rift-eyebrow{display:block;color:var(--rift-accent);font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.rift-top{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 23px}
.rift-top h1{font-size:clamp(44px,5vw,72px);margin:6px 0;color:#fff}
.rift-top h1 span{color:var(--rift-accent)}
.rift-top p{color:#aabfa9;font-size:14px;margin:0}
.rift-top-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}
.rift-player,.rift-link{background:#15231a;border:1px solid #3b5842;padding:10px 13px;color:#e7ffe0;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.06em}
.rift-player{color:#baff71}
.rift-link:hover{border-color:var(--rift-accent);color:var(--rift-accent)}
.rift-loading{display:flex;align-items:center;justify-content:center;gap:15px;min-height:380px;color:#b9d3b4;font-size:12px;font-weight:800;letter-spacing:.15em;border:1px solid #3b5740;background:#132019}
.rift-spinner{display:block;width:25px;height:25px;border:3px solid #54804e;border-top-color:#b8ff5b;animation:rift-spin 1s linear infinite}
@keyframes rift-spin{to{transform:rotate(360deg)}}
.rift-notice{padding:12px 16px;margin:0 0 18px;border:1px solid #7faa57;background:#a4ff2319;color:#e4ffdc;font-size:12px}
.rift-notice.error{background:#e5513620;border-color:#a35b4a;color:#ffded5}
.rift-summary,.rift-panel,.rift-run-bar,.rift-scene,.rift-encounter{background:linear-gradient(145deg,#19291e,#0c1711);border:1px solid #3b5941;box-shadow:inset 0 1px #ffffff0b,0 16px 40px #0005}
.rift-summary{display:grid;grid-template-columns:36% 1fr;min-height:300px;overflow:hidden;position:relative;border-top:3px solid var(--rift-accent);margin-bottom:18px}
.rift-summary-visual{display:grid;place-items:center;background:radial-gradient(circle,#9bff2425,#08120c 64%),linear-gradient(45deg,#9bff2409 25%,transparent 25% 50%,#9bff2409 50% 75%,transparent 75%);background-size:auto,40px 40px;overflow:hidden;position:relative}
.rift-summary-visual::after{content:'GATEWAY // EXCALIA';position:absolute;bottom:15px;left:20px;font-size:9px;letter-spacing:.22em;color:#7ca782;font-weight:800}
.rift-portal{position:relative;width:220px;height:220px;border:18px solid #283b31;border-radius:50%;box-shadow:inset 0 0 0 7px #07170e,inset 0 0 22px #9bff2488,0 0 0 8px #5c865a,0 0 0 18px #192a20,0 0 32px #9bff2465;animation:rift-portal-pulse 4s ease-in-out infinite}
.rift-portal::before{content:'';position:absolute;inset:-22px;border:3px dashed #8bd150;border-radius:50%;animation:rift-spin 35s linear infinite}
.rift-portal::after{content:'';position:absolute;inset:22px;border:1px solid #aaff7588;border-radius:50%;box-shadow:0 0 25px #6bfe82,inset 0 0 25px #76fa6a}
.rift-portal-core{position:absolute;inset:34px;border-radius:50%;background:radial-gradient(circle at 45% 42%,#d6ffa9,#68e896 15%,#174a34 42%,#091b16 70%);box-shadow:0 0 35px #9bff24}
@keyframes rift-portal-pulse{50%{box-shadow:inset 0 0 0 7px #07170e,inset 0 0 30px #9bff24ad,0 0 0 8px #6c9a69,0 0 0 18px #192a20,0 0 46px #9bff2488}}
.rift-summary-copy{padding:34px 36px;align-self:center}
.rift-summary-copy h2{font-size:clamp(37px,4vw,58px);color:#fff;margin:7px 0 10px}
.rift-summary-copy p{color:#a9bea9;font-size:13px;line-height:1.65;max-width:600px;margin:0}
.rift-summary-stats{display:flex;gap:32px;flex-wrap:wrap;margin-top:25px}
.rift-summary-stats strong{display:block;color:#c6ff83;font:800 31px/1 'Barlow Condensed',sans-serif}
.rift-summary-stats span{display:block;color:#879f8d;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-top:4px}
.rift-primary,.rift-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border:1px solid var(--rift-accent);font-size:11px!important;font-weight:800!important;letter-spacing:.06em;text-decoration:none;transition:.15s}
.rift-primary{color:#09140a!important;background:var(--rift-accent)}
.rift-primary:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-2px)}
.rift-outline{color:#def9d5;background:#192d1f;border-color:#587e51}
.rift-outline:hover:not(:disabled){border-color:var(--rift-accent);color:var(--rift-accent)}
#riftResume{margin-top:23px}
.rift-hub-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:18px;align-items:start}
.rift-panel{padding:23px}
.rift-panel h2{font-size:32px;color:#f2fff0;margin:5px 0 15px}
.rift-section-head{display:flex;justify-content:space-between;gap:10px;align-items:end}
.rift-section-head h2,.rift-section-head h3{margin:6px 0 0;color:#fff;font-size:31px}
.rift-section-hint{color:#91aa95;font-size:11px;text-align:right}
.rift-tiers{display:grid;gap:12px;margin-top:23px}
.rift-tier{border:1px solid #334c3a;background:#101c15;overflow:hidden}
.rift-tier.is-current{border-color:var(--tier-accent)}
.rift-tier.is-locked{opacity:.53}
.rift-tier-head{display:flex;align-items:center;gap:13px;padding:13px 16px;background:linear-gradient(90deg,color-mix(in srgb,var(--tier-accent) 18%,#15221a),#14221a);border-bottom:1px solid #314738}
.rift-tier-icon{width:35px;height:35px;display:grid;place-items:center;color:var(--tier-accent);background:#0b1b14;border:1px solid var(--tier-accent)}
.rift-tier-head strong{display:block;font:800 23px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;color:#f7fff4}
.rift-tier-head small{display:block;color:#a8bdac;font-size:10px;margin-top:3px}
.rift-tier-head em{font:800 15px 'Barlow Condensed',sans-serif;color:var(--tier-accent);margin-left:auto;white-space:nowrap}
.rift-stage-list{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#2d4334}
.rift-stage{min-width:0;min-height:97px;padding:11px 9px;background:#111e16;border:0;color:#d5e6d3;text-align:left;transition:.16s}
.rift-stage:not(:disabled):hover{background:#223a27;color:#fff}
.rift-stage.is-cleared{background:#203925}
.rift-stage.is-next{background:color-mix(in srgb,var(--tier-accent) 17%,#14251a);box-shadow:inset 0 0 0 1px var(--tier-accent)}
.rift-stage.is-boss{background:#1f2620}
.rift-stage b{display:block;color:var(--tier-accent);font:800 15px 'Barlow Condensed',sans-serif}
.rift-stage span{display:block;font:700 15px/1.1 'Barlow Condensed',sans-serif;text-transform:uppercase;margin-top:8px}
.rift-stage small{display:block;color:#90ac96;font-size:9px;margin-top:6px}
.rift-side{display:grid;gap:18px}
.rift-wallet{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #557747;background:#112317;color:#ecffc7;font-size:11px;font-weight:800;margin-bottom:12px}
.rift-wallet i{color:#ead080}
.rift-wallet span:last-child{margin-left:auto;color:#a9c3a8}
.rift-wallet strong{font-size:16px}
.rift-upgrade{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #334939;padding:11px 1px}
.rift-upgrade:last-child{border-bottom:0}
.rift-upgrade-icon{width:39px;height:39px;display:grid;place-items:center;color:#adff6b;border:1px solid #557e4c;background:#1c3524}
.rift-upgrade strong{display:block;color:#fff;font:800 19px/1 'Barlow Condensed',sans-serif;text-transform:uppercase}
.rift-upgrade small{display:block;color:#91a994;font-size:10px;margin-top:4px}
.rift-upgrade button{background:#aaff38;color:#13210d;border:0;padding:8px 9px;font-size:10px;font-weight:800;min-width:74px}
.rift-upgrade button:hover:not(:disabled){filter:brightness(1.15)}
.rift-armory>.rift-outline{width:100%;margin-top:14px}
.rift-guide p{font-size:12px;color:#a9bba9;line-height:1.65}
.rift-run-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 23px;margin-bottom:18px;border-left:4px solid var(--rift-accent)}
.rift-run-bar h2{font-size:35px;color:#fff;margin:4px 0}
.rift-run-position{font-size:11px;color:#a9c2aa;text-transform:uppercase;letter-spacing:.08em}
.rift-run-actions{display:flex;align-items:center;gap:10px}
.rift-saved{font-size:10px;color:#83bb7e;font-weight:800;letter-spacing:.07em}
.rift-run-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(295px,.65fr);gap:18px;align-items:start}
.rift-run-main,.rift-run-sidebar{min-width:0}
.rift-run-sidebar{display:grid;gap:17px}
.rift-scene{height:330px;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 63%,color-mix(in srgb,var(--rift-accent) 30%,transparent),transparent 43%),linear-gradient(180deg,#0b1410,#12271a 60%,#0b1611)}
.rift-scene::before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,transparent 0 54px,#ffffff05 54px 56px),repeating-linear-gradient(180deg,transparent 0 27px,#ffffff05 27px 29px);mask-image:linear-gradient(#000,transparent 80%)}
.rift-scene-stars{position:absolute;inset:0;background-image:radial-gradient(circle,var(--rift-accent) 1px,transparent 2px);background-size:67px 59px;opacity:.28;animation:rift-drift 10s linear infinite}
@keyframes rift-drift{to{transform:translateY(59px)}}
.rift-scene-arch{position:absolute;width:245px;height:235px;left:50%;bottom:44px;transform:translateX(-50%);border:20px solid #35443a;border-bottom:0;border-radius:120px 120px 0 0;box-shadow:inset 0 0 0 8px #111d17,0 0 0 7px #1a2a20,0 0 30px color-mix(in srgb,var(--rift-accent) 45%,transparent);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--rift-accent) 45%,#08190e),#081a15 70%)}
.rift-scene-arch::before{content:'';position:absolute;inset:-19px;border:2px dashed var(--rift-accent);border-bottom:0;border-radius:120px 120px 0 0;opacity:.5}
.rift-scene-door{position:absolute;inset:22px 21px 0;border-radius:100px 100px 0 0;background:radial-gradient(ellipse,color-mix(in srgb,var(--rift-accent) 64%,#10152a),#0a1815 73%);box-shadow:inset 0 0 30px var(--rift-accent);animation:rift-door 3s ease-in-out infinite}
@keyframes rift-door{50%{filter:brightness(1.4)}}
.rift-scene-floor{position:absolute;bottom:0;left:0;right:0;height:81px;background:repeating-linear-gradient(90deg,#273a2d 0 48px,#15261d 48px 51px),linear-gradient(#35453a,#101c17);clip-path:polygon(0 35%,50% 0,100% 35%,100% 100%,0 100%);opacity:.65}
.rift-scene-label{position:absolute;bottom:12px;left:17px;right:17px;display:flex;justify-content:space-between;align-items:end;gap:10px;z-index:3;text-shadow:0 2px 4px #000}
.rift-scene-label span:first-child{color:var(--rift-accent);font:800 17px 'Barlow Condensed',sans-serif;letter-spacing:.1em}
.rift-scene-label span:last-child{color:#d3e7d1;font-size:10px;text-align:right}
.rift-enemy-art{position:absolute;z-index:2;left:50%;bottom:45px;width:190px;height:225px;transform:translateX(-50%);filter:drop-shadow(0 15px 7px #000a) drop-shadow(0 0 19px var(--rift-accent));animation:rift-enemy-bob 3s ease-in-out infinite}
.rift-enemy-art svg{width:100%;height:100%}
@keyframes rift-enemy-bob{50%{translate:0 -8px}}
.rift-battle-hud{display:grid;grid-template-columns:1fr 160px auto;gap:12px;align-items:center;padding:13px 17px;background:#20251d;border:1px solid #624b38;border-top:0}
.rift-battle-hud strong{display:block;color:#fff;font:800 22px 'Barlow Condensed',sans-serif;text-transform:uppercase}
.rift-battle-hud span{display:block;color:#eac38d;font-size:10px;font-weight:800;text-transform:uppercase}
.rift-battle-hud small{color:#cfdbcd;font-size:10px;white-space:nowrap}
.rift-health-track{height:10px;background:#0a130e;border:1px solid #56634f;overflow:hidden}
.rift-health-track span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#b53931,#f68a52);transition:width .25s}
.rift-health-track.player span{background:linear-gradient(90deg,#51b956,#b4ff40)}
.rift-encounter{padding:22px 23px;margin-top:17px;border-top:3px solid var(--rift-accent)}
.rift-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.rift-choice{min-height:154px;text-align:left;padding:15px;background:#102017;border:1px solid #425a43;color:#fff;transition:.15s}
.rift-choice:hover:not(:disabled){border-color:var(--rift-accent);background:#1e3623;transform:translateY(-2px)}
.rift-choice i{font-size:19px;color:var(--rift-accent)}
.rift-choice .risk{float:right;color:#d5a774;font-size:9px;font-weight:800;letter-spacing:.1em}
.rift-choice strong{display:block;font:800 22px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;margin-top:19px}
.rift-choice small{display:block;font-size:11px;color:#a5b9a6;margin-top:7px;line-height:1.4}
.rift-combat-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}
.rift-combat-actions button{padding:13px 14px;text-align:left;background:#15271a;border:1px solid #456345;color:#fff;transition:.15s}
.rift-combat-actions button:hover:not(:disabled){border-color:var(--rift-accent);background:#25442b}
.rift-combat-actions i{float:left;font-size:21px;color:var(--rift-accent);margin:2px 12px 4px 0}
.rift-combat-actions strong{display:block;font:800 20px 'Barlow Condensed',sans-serif}
.rift-combat-actions small{display:block;color:#aac0ab;font-size:10px;margin-top:3px}
.rift-vitals h3,.rift-route h3{font-size:28px;color:#fff;margin:5px 0 17px}
.rift-vital-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:#a8bda6;font-size:10px;font-weight:800;letter-spacing:.09em;margin:12px 0 6px}
.rift-vital-line strong{color:#fff;font-size:12px;letter-spacing:0}
.rift-energy-track{display:flex;gap:6px}
.rift-energy-track i{height:9px;flex:1;background:#17251a;border:1px solid #496344}
.rift-energy-track i.active{background:var(--rift-accent);box-shadow:0 0 11px var(--rift-accent)}
.rift-inventory{display:flex;justify-content:space-between;gap:8px;margin-top:19px;border-top:1px solid #344d3a;padding-top:12px;color:#a9c2a4;font-size:10px;font-weight:800;letter-spacing:.05em}
.rift-inventory+.rift-inventory{margin-top:0}
.rift-inventory i{color:var(--rift-accent)}
.rift-inventory strong{color:#fff}
.rift-room-map{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.rift-room{aspect-ratio:1;display:grid;place-items:center;background:#0b1710;border:1px solid #3b5340;color:#5e7b62;font:800 14px 'Barlow Condensed',sans-serif}
.rift-room.done{background:#26442c;color:#9bd19b}
.rift-room.current{background:var(--rift-accent);color:#12210d;border-color:var(--rift-accent);box-shadow:0 0 16px color-mix(in srgb,var(--rift-accent) 70%,transparent)}
.rift-room.camp{border-color:#77af76}
.rift-room.seal{border-color:#d9b46a}
.rift-room.boss{border-color:#e78271}
.rift-route-legend{display:flex;gap:12px;flex-wrap:wrap;color:#8daa90;font-size:9px;margin-top:11px}
.rift-route-legend i{display:inline-block;width:7px;height:7px;background:var(--rift-accent);margin-right:3px}
.rift-route-legend .legend-camp{background:#77af76}.rift-route-legend .legend-seal{background:#d9b46a}
.rift-run-help p{font-size:12px;color:#a9bbaa;margin:9px 0 0;line-height:1.5}
.rift-toast{position:fixed;right:20px;bottom:20px;z-index:2000;max-width:400px;padding:13px 17px;border:1px solid #9bff24;background:#14241a;color:#f0ffe9;box-shadow:0 15px 35px #000a;font-size:13px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}
.rift-toast.show{opacity:1;transform:none}
/* Cartes du hall */
.game-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:18px 0}
.game-choice{position:relative;display:flex;min-height:210px;padding:25px;border:1px solid #436048;background:linear-gradient(130deg,#182b1d,#0d1711);overflow:hidden;text-decoration:none;transition:.18s}
.game-choice:hover{border-color:#a1ff38;transform:translateY(-3px)}
.game-choice::before{content:'';position:absolute;right:-10px;bottom:-45px;width:195px;height:195px;border:1px solid #9bff2455;transform:rotate(45deg);box-shadow:0 0 0 30px #9bff240b}
.game-choice.rifts{background:linear-gradient(115deg,#15271c,#10231c 65%,#1d3529);border-color:#678357}
.game-choice.rifts::before{border-color:#66d9cb77;box-shadow:0 0 0 28px #66d9cb0e,0 0 0 55px #66d9cb08}
.game-choice-content{position:relative;z-index:2;max-width:67%}
.game-choice-eyebrow{color:#9bff24;font-size:10px;font-weight:800;letter-spacing:.16em}
.game-choice.rifts .game-choice-eyebrow{color:#66d9cb}
.game-choice h2{font-size:38px;color:#fff;margin:11px 0 8px}
.game-choice p{color:#a9c0ad;font-size:12px;margin:0}
.game-choice-action{display:inline-block;margin-top:20px;color:#b5ff70;font-size:11px;font-weight:800;letter-spacing:.08em}
.game-choice.rifts .game-choice-action{color:#8be6dc}
.game-choice-icon{position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:76px;color:#9bff2465}
.game-choice.rifts .game-choice-icon{color:#66d9cb70}
@media(max-width:1100px){.rift-hub-grid,.rift-run-grid{grid-template-columns:1fr}.rift-side{grid-template-columns:1fr 1fr}.rift-run-sidebar{grid-template-columns:1fr 1fr}.rift-run-help{grid-column:1/-1}}
@media(max-width:750px){.rift-shell{padding:25px 15px 70px}.rift-top{display:block}.rift-top-actions{margin-top:16px}.rift-summary{grid-template-columns:1fr}.rift-summary-visual{height:200px}.rift-portal{width:150px;height:150px;border-width:13px}.rift-summary-copy{padding:25px}.rift-summary-stats{gap:17px}.rift-side,.rift-run-sidebar{grid-template-columns:1fr}.rift-run-bar{display:block}.rift-run-actions{margin-top:13px}.rift-choices{grid-template-columns:1fr}.rift-choice{min-height:112px}.rift-choice strong{margin-top:9px}.rift-combat-actions{grid-template-columns:1fr 1fr}.rift-scene{height:280px}.rift-battle-hud{grid-template-columns:1fr 100px}.rift-battle-hud small{display:none}.game-choices{grid-template-columns:1fr}}
@media(max-width:560px){.rift-top h1{font-size:43px}.rift-stage-list{grid-template-columns:repeat(5,1fr)}.rift-stage{min-height:84px;padding:8px 5px}.rift-stage span{font-size:12px}.rift-stage small{font-size:8px}.rift-tier-head{padding:11px}.rift-tier-head strong{font-size:18px}.rift-tier-head small{font-size:9px}.rift-tier-icon{width:29px;height:29px}.rift-tier-head em{font-size:12px}.rift-panel{padding:17px}.rift-summary-stats strong{font-size:25px}.rift-run-actions{flex-wrap:wrap}.rift-scene-label span:last-child{display:none}.rift-combat-actions{grid-template-columns:1fr}.rift-section-head{display:block}.rift-section-hint{display:block;text-align:left;margin-top:4px}.game-choice{min-height:175px}.game-choice h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){.rift-portal,.rift-portal::before,.rift-scene-stars,.rift-scene-door,.rift-enemy-art,.rift-spinner{animation:none}}
.rift-rank-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #344c3a;color:#b8cdb7;font-size:11px}
.rift-rank-row:last-child{border-bottom:0}
.rift-rank-row b{color:#caff8a;font:800 19px 'Barlow Condensed',sans-serif}
.rift-rank-row strong{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rift-rank-empty{font-size:12px;color:#a6baa5}

.rift-field-forge h3{font-size:27px;color:#fff;margin:5px 0 8px}.rift-field-forge p{font-size:11px;color:#aabdaa;line-height:1.5}.rift-field-forge>.rift-outline{width:100%;margin-top:12px}

.rift-tier-mechanic{padding:7px 14px;color:#a8c5aa;font-size:10px;border-bottom:1px solid #314738;background:#14251a}.rift-status-line{margin-top:10px;color:#ffaf72;background:#8c3d251f;border:1px solid #a45435;padding:6px 9px;font-size:10px;font-weight:800;letter-spacing:.07em}

.rift-modal{width:min(540px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:22px;border:1px solid #77a365;background:linear-gradient(145deg,#1a3020,#0c1710);color:#edffed;box-shadow:0 30px 90px #000b}
.rift-modal::backdrop{background:#020905d9;backdrop-filter:blur(5px)}
.rift-modal-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rift-modal-top button{width:34px;height:34px;border:1px solid #4e7553;background:#12251a;color:#e9ffe4;font-size:25px;cursor:pointer}
.rift-modal h2{font:800 35px/1 'Barlow Condensed',sans-serif;color:#fff;margin:9px 0 8px;text-transform:uppercase}
.rift-modal>p{color:#a9c2aa;font-size:12px;line-height:1.5;margin:0 0 19px}
.rift-difficulty-options{display:grid;gap:8px}
.rift-difficulty-option{display:grid;grid-template-columns:27px 1fr 18px;align-items:center;gap:12px;width:100%;padding:14px;text-align:left;border:1px solid #4d7151;background:#14271a;color:#e9ffe9;cursor:pointer}
.rift-difficulty-option:hover:not(:disabled){border-color:#9bff24;background:#1f3a25}
.rift-difficulty-option:disabled{opacity:.48;cursor:not-allowed}
.rift-difficulty-option>i:first-child{color:#adff6c;font-size:19px}
.rift-difficulty-option strong{display:block;font:800 21px/1 'Barlow Condensed',sans-serif}
.rift-difficulty-option small{display:block;color:#a8c3a9;font-size:11px;line-height:1.4;margin-top:4px}
/* Expédition : mise en scène et lecture des décisions */
.rift-top{padding-bottom:18px;border-bottom:1px solid #557052}
.rift-top h1{letter-spacing:.018em;text-shadow:0 5px 22px #0009}
.rift-run-bar{background:linear-gradient(110deg,#203626,#101b16 74%);border-top:1px solid #779e6a;box-shadow:0 16px 50px #0007}
.rift-chapter-name{display:block;color:var(--rift-accent);font:800 16px 'Barlow Condensed',sans-serif;letter-spacing:.13em;margin-top:9px}
.rift-scene{height:415px;background:radial-gradient(ellipse at 50% 53%,color-mix(in srgb,var(--rift-accent) 37%,transparent),transparent 34%),linear-gradient(180deg,#101d18,#1a2b23 53%,#060e0b);border-color:#739266;box-shadow:inset 0 0 90px #000b,0 20px 55px #0008}
.rift-scene[data-biome="0"]{background:radial-gradient(circle at 50% 43%,#a6cf7566,transparent 33%),linear-gradient(180deg,#172d20,#335039 55%,#07120e)}
.rift-scene[data-biome="1"]{background:radial-gradient(circle at 50% 45%,#55d9db70,transparent 34%),linear-gradient(180deg,#0d1b2b,#18445a 58%,#091521)}
.rift-scene[data-biome="2"]{background:radial-gradient(circle at 50% 52%,#fa682d85,transparent 35%),linear-gradient(180deg,#211820,#612922 61%,#120f15)}
.rift-scene[data-biome="3"]{background:radial-gradient(circle at 50% 48%,#bf84fc88,transparent 31%),linear-gradient(180deg,#111222,#352549 60%,#0c0c1d)}
.rift-scene[data-biome="4"]{background:radial-gradient(circle at 50% 47%,#48dafa91,transparent 32%),linear-gradient(180deg,#0c1724,#1c4356 60%,#08111e)}
.rift-scene[data-biome="5"]{background:radial-gradient(circle at 50% 48%,#e3b87b7c,transparent 35%),linear-gradient(180deg,#131b31,#263c56 62%,#090f1d)}
.rift-scene::before{z-index:0;background:repeating-linear-gradient(90deg,transparent 0 24px,#ffffff07 24px 27px),linear-gradient(160deg,transparent 48%,#080d0b88 49% 53%,transparent 54%);opacity:.65;mask-image:none}
.rift-scene::after{content:'';position:absolute;left:-8%;right:-8%;bottom:41px;height:135px;background:repeating-linear-gradient(90deg,#0c1b1588 0 31px,#263e3199 31px 35px);clip-path:polygon(0 78%,4% 62%,9% 65%,13% 46%,17% 52%,22% 30%,27% 47%,32% 22%,37% 35%,43% 27%,50% 45%,56% 24%,61% 33%,67% 21%,72% 39%,79% 25%,85% 50%,91% 42%,96% 65%,100% 66%,100% 100%,0 100%);opacity:.72;pointer-events:none}
.rift-scene[data-biome="2"]::after{background:repeating-linear-gradient(90deg,#2c1417 0 31px,#552219 31px 35px)}
.rift-scene[data-biome="3"]::after{background:repeating-linear-gradient(90deg,#130d24 0 31px,#392255 31px 35px)}
.rift-scene[data-biome="4"]::after{background:repeating-linear-gradient(90deg,#0a1b2e 0 31px,#194d66 31px 35px)}
.rift-scene[data-biome="5"]::after{background:repeating-linear-gradient(90deg,#111c30 0 31px,#2b4562 31px 35px)}
.rift-scene-arch{z-index:1;width:310px;height:290px;bottom:51px;border:23px solid #344a40;border-bottom:0;border-radius:150px 150px 0 0;box-shadow:inset 0 0 0 8px #0b1510,0 0 0 7px #12261d,0 0 45px color-mix(in srgb,var(--rift-accent) 58%,transparent)}
.rift-scene-door{inset:21px 20px 0;animation:rift-door 5s ease-in-out infinite}
.rift-scene-floor{z-index:2;height:105px;background:repeating-linear-gradient(90deg,#213d2c 0 57px,#0f2118 57px 61px);opacity:.78}
.rift-scene[data-biome="2"] .rift-scene-floor{background:repeating-linear-gradient(90deg,#492722 0 57px,#2a1919 57px 61px)}
.rift-scene[data-biome="3"] .rift-scene-floor{background:repeating-linear-gradient(90deg,#38294d 0 57px,#1d1730 57px 61px)}
.rift-scene[data-biome="4"] .rift-scene-floor{background:repeating-linear-gradient(90deg,#174058 0 57px,#112637 57px 61px)}
.rift-scene[data-biome="5"] .rift-scene-floor{background:repeating-linear-gradient(90deg,#2c4056 0 57px,#142338 57px 61px)}
.rift-ambient{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.rift-ambient i{position:absolute;left:var(--x);top:var(--y);width:5px;height:5px;background:var(--rift-accent);box-shadow:0 0 12px var(--rift-accent);opacity:.6;animation:rift-mote 4.4s ease-in-out var(--delay) infinite}
.rift-ambient i:nth-child(3n){width:3px;height:12px;opacity:.35}
@keyframes rift-mote{0%,100%{transform:translate(0,10px);opacity:.1}45%{transform:translate(14px,-27px);opacity:.9}}
.rift-enemy-art{width:260px;height:280px;bottom:58px;z-index:3;filter:drop-shadow(0 20px 6px #000a) drop-shadow(0 0 23px var(--rift-accent));animation:rift-enemy-enter .48s ease-out both,rift-enemy-bob 3.2s ease-in-out .5s infinite}
.rift-enemy-art.boss{width:310px;height:330px;bottom:42px}
.rift-sprite{width:100%;height:100%;image-rendering:pixelated}
.rift-sprite-body{transform-origin:50% 85%;animation:rift-sprite-breathe 3.2s ease-in-out infinite}
@keyframes rift-sprite-breathe{50%{transform:scale(1.025,.985)}}
@keyframes rift-enemy-enter{from{opacity:0;transform:translate(-50%,70px) scale(.7);filter:brightness(4)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.rift-scene-label{z-index:5;bottom:17px;left:22px;right:22px}
.rift-scene-label span:first-child{font-size:23px;color:#fff;text-shadow:0 0 16px var(--rift-accent),0 2px 3px #000}
.rift-scene-label span:last-child{font-size:11px;font-weight:700}
.rift-impact{position:absolute;left:50%;top:21%;z-index:8;opacity:0;transform:translate(-50%,10px);color:#fff;font:900 52px 'Barlow Condensed',sans-serif;text-shadow:0 0 18px #ff6746,0 3px #27150e;pointer-events:none}
.rift-impact.show{animation:rift-impact-pop .85s ease-out both}
@keyframes rift-impact-pop{0%{opacity:0;transform:translate(-50%,20px) scale(.65)}20%{opacity:1;transform:translate(-50%,-5px) scale(1.25)}100%{opacity:0;transform:translate(-50%,-56px) scale(1)}}
.rift-scene.rift-strike .rift-enemy-art{animation:rift-hit .42s ease-out,rift-enemy-bob 3s ease-in-out .42s infinite}
.rift-scene.rift-wound{animation:rift-screen-hit .4s ease-out}
.rift-scene.rift-gate .rift-scene-door{animation:rift-gate-open .8s ease-out}
.rift-scene.rift-victory{animation:rift-win-glow 1.3s ease-out}
@keyframes rift-hit{30%{transform:translate(-58%,-5px);filter:brightness(3)}60%{transform:translate(-45%,0);filter:brightness(.6)}}
@keyframes rift-screen-hit{25%{box-shadow:inset 0 0 120px #fb553b9c;transform:translateX(-4px)}60%{transform:translateX(4px)}100%{transform:none}}
@keyframes rift-gate-open{50%{filter:brightness(2);transform:scaleX(1.12)}}
@keyframes rift-win-glow{50%{box-shadow:inset 0 0 120px #b1ff6c99,0 0 45px #b1ff6c55}}
.rift-battle-hud{grid-template-columns:1fr minmax(120px,170px) auto auto auto;gap:9px;background:linear-gradient(90deg,#342b22,#1a261e);border-color:#97704d}
.rift-battle-hud #enemyIntent{font-size:11px;letter-spacing:.03em}
.rift-ward,.rift-phase{white-space:nowrap;padding:7px;border:1px solid #ba9b54;color:#f6d994!important;font-size:10px!important;font-weight:900}
.rift-phase{border-color:#8c8ecc;color:#d9d0ff!important}
.rift-act-track{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:17px 0 0}
.rift-act{display:flex;align-items:center;gap:7px;min-height:38px;padding:6px;background:#101d15;border:1px solid #365043;color:#698270}
.rift-act b{font:800 18px 'Barlow Condensed',sans-serif}.rift-act small{font-size:9px;line-height:1.1;font-weight:800;letter-spacing:.06em}
.rift-act.active{border-color:var(--rift-accent);color:#fff;background:color-mix(in srgb,var(--rift-accent) 21%,#102319)}
.rift-act.done{color:#a6d48d;border-color:#658a5d}
.rift-encounter{margin-top:8px}
.rift-choice{position:relative;min-height:162px;background:linear-gradient(145deg,#1c3322,#0c1c13);box-shadow:inset 0 1px #ffffff0c}
.rift-choice:hover:not(:disabled){box-shadow:0 10px 24px #0007,inset 0 0 20px color-mix(in srgb,var(--rift-accent) 12%,transparent)}
.rift-choice .risk{border:1px solid #9a6f49;padding:3px 5px;background:#372819;color:#f2c58f}
.rift-choice:disabled{opacity:.48;cursor:not-allowed}
.rift-combat-actions{grid-template-columns:repeat(3,1fr)}
.rift-combat-actions button{min-height:86px;border-bottom:3px solid #4b7952;background:linear-gradient(145deg,#1c3324,#0e1b15)}
.rift-combat-actions button:hover:not(:disabled){transform:translateY(-2px);border-bottom-color:var(--rift-accent)}
.rift-combat-actions button:focus-visible,.rift-choice:focus-visible,.rift-stage:focus-visible{outline:3px solid #d4ff93;outline-offset:2px}
.rift-combat-log{min-height:51px;padding:15px 20px;margin-top:8px;border-left:3px solid var(--rift-accent);background:#132218;color:#d8ecd3;font-size:12px;line-height:1.5}
.rift-threat-track{height:9px;border:1px solid #705246;background:#1c1514;overflow:hidden}
.rift-threat-track span{display:block;height:100%;background:linear-gradient(90deg,#7acb48,#ef982e 55%,#d5372c);transition:width .3s}
.rift-threat small{display:block;color:#b9a18a;font-size:10px;line-height:1.4;margin-top:5px}
.rift-room.gate{border-color:#8fc7db;color:#b4e9f3}
@media(max-width:900px){.rift-battle-hud{grid-template-columns:1fr 125px auto}.rift-ward,.rift-phase{display:none!important}.rift-combat-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.rift-scene{height:310px}.rift-scene-arch{width:225px;height:218px;bottom:43px;border-width:16px}.rift-enemy-art{width:205px;height:220px;bottom:51px}.rift-enemy-art.boss{width:235px;height:258px;bottom:41px}.rift-scene-floor{height:75px}.rift-act{display:block;text-align:center;padding:5px 2px;min-height:40px}.rift-act b{display:block;font-size:15px}.rift-act small{font-size:7px}.rift-scene-label span:first-child{font-size:18px}.rift-combat-actions{grid-template-columns:1fr 1fr}.rift-combat-actions button{min-height:90px}.rift-combat-actions i{float:none;display:block;margin:0 0 5px;font-size:18px}.rift-combat-actions strong{font-size:17px}.rift-combat-actions small{font-size:9px}.rift-battle-hud{grid-template-columns:1fr}.rift-battle-hud .rift-health-track{display:block}.rift-battle-hud small{display:block}}
@media(prefers-reduced-motion:reduce){.rift-ambient i,.rift-sprite-body,.rift-enemy-art,.rift-scene.rift-strike .rift-enemy-art,.rift-scene.rift-wound,.rift-scene.rift-gate .rift-scene-door,.rift-scene.rift-victory,.rift-impact.show{animation:none!important}.rift-impact.show{opacity:1}}
.rift-gate-panel{margin-top:18px;padding:19px;border:1px solid #70b99c;background:radial-gradient(circle at 50% 0,#3d877053,#0f211b 62%);text-align:center;box-shadow:inset 0 0 35px #59dab11a}
.rift-gate-heading{display:flex;align-items:center;justify-content:center;gap:11px;text-align:left}
.rift-gate-heading i{color:#87f4d3;font-size:27px}.rift-gate-heading strong{display:block;color:#fff;font:800 26px 'Barlow Condensed',sans-serif}.rift-gate-heading small{display:block;color:#aed0c2;font-size:11px}
.rift-gate-preview{height:83px;display:grid;place-items:center;margin:17px 0;border:1px solid #5f9885;background:#071710;color:#719f8b;font:900 38px 'Barlow Condensed',sans-serif;letter-spacing:.25em;transition:color .2s}
.rift-gate-preview.revealed{color:#d3ffec;text-shadow:0 0 18px #63ffd1}
.rift-gate-progress{color:#b1d8c0;font-size:10px;font-weight:800;letter-spacing:.15em}
.rift-gate-inputs{display:flex;justify-content:center;gap:13px;margin:14px 0}
.rift-gate-inputs button{width:72px;height:68px;border:2px solid #80b9a1;background:#193c2d;color:#e8fff0;font-size:34px;cursor:pointer;transition:.16s}
.rift-gate-inputs button:hover:not(:disabled),.rift-gate-inputs button:focus-visible{transform:translateY(-4px);border-color:#c0ffe2;box-shadow:0 0 20px #8cffce6d}
.rift-gate-panel>.rift-outline{min-height:36px;font-size:10px!important}
@media(max-width:620px){.rift-shell.is-running{padding-top:13px}.rift-shell.is-running .rift-top{margin-bottom:12px;padding-bottom:10px}.rift-shell.is-running .rift-top h1{font-size:29px;margin:0}.rift-shell.is-running .rift-top p,.rift-shell.is-running .rift-top-actions{display:none}.rift-shell.is-running .rift-run-bar{padding:12px 15px;margin-bottom:12px}.rift-shell.is-running .rift-run-bar h2{font-size:28px}.rift-shell.is-running .rift-run-actions{margin-top:8px}.rift-shell.is-running .rift-run-actions .rift-saved{display:none}.rift-shell.is-running .rift-run-actions button{min-height:33px;padding:5px 10px;font-size:9px!important}}
