@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#0b1315;--panel:#101b1deF;--gold:#d7b376;--cream:#ebe4d6;--muted:#92a09e;--teal:#6bb8ac;--line:#bba57230;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);font-size:13px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:transparent;transition:background .18s,border .18s,transform .18s}button:hover:not(:disabled){border-color:var(--gold);background:#d7b37612}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.35}button:active:not(:disabled){transform:translateY(1px)}.ambient{position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,#091215e8,#091215b0,#091215eb),url('assets/arena.png') center/cover}.ambient:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#091215 0%,transparent 80%)}header{height:88px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0b1418ba;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--cream);font-family:var(--serif);font-size:26px;letter-spacing:3px}.brand svg{width:34px;fill:none;stroke:var(--gold);stroke-width:.9}.brand small{display:block;font:8px var(--sans);letter-spacing:3px;color:var(--gold);margin-top:3px}.header-center{color:var(--muted);font-size:9px;letter-spacing:2.5px}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px #71c5b6;margin-right:9px}nav{display:flex;align-items:center;gap:24px}.quiet{border:0;color:#bdc5bd;padding:10px 0}.key{display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:#abb3a9;width:20px;height:21px;border:1px solid #7b8a7b45;border-radius:3px;margin-left:9px}.icon-btn{border:0;position:relative;width:30px;height:30px;font-size:23px;color:var(--gold)}.sound-slash{position:absolute;left:8px;top:4px;color:#c0c4be;font-size:20px}.eyebrow{color:var(--gold);font-size:9px;font-weight:600;letter-spacing:3px}.draft{max-width:1160px;margin:auto;text-align:center;padding:41px 28px 24px}.draft h1{font:500 clamp(36px,4vw,57px)/1.1 var(--serif);margin:12px 0 12px;letter-spacing:-.7px}.draft .intro{color:#a4afaa;margin:0 auto 27px;font-size:13px;line-height:1.7}.draft-heading{position:relative}.draft-tools{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:20px}.reroll{font-size:11px;color:#acb7b0;padding:9px 15px;border-color:transparent}.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;text-align:left}.hero-card{position:relative;overflow:hidden;border:1px solid #9f946a45;min-height:460px;background:linear-gradient(160deg,#283333c9,#0d191bf2 65%);padding:0;text-align:left;cursor:pointer}.hero-card:before{content:'';position:absolute;inset:8px;border:1px solid #a7986c1c;pointer-events:none;z-index:1}.hero-card:hover,.hero-card.selected{border-color:var(--gold);background-color:#15272a;transform:translateY(-4px);box-shadow:0 15px 60px #0006}.hero-card.selected:after{content:'✓';position:absolute;right:18px;top:18px;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#15201e;text-align:center;line-height:24px}.card-top{position:absolute;top:20px;left:22px;z-index:2;color:var(--gold);font-size:9px;letter-spacing:1.8px}.card-art{height:240px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#9b7b3b38,transparent 63%)}.card-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#111d1e)}.portrait{background-image:url('assets/characters.png');background-size:300% 200%;height:100%;aspect-ratio:1;margin:auto;background-repeat:no-repeat}.portrait.s0{background-position:0 0}.portrait.s1{background-position:50% 0}.portrait.s2{background-position:100% 0}.portrait.s3{background-position:0 100%}.portrait.s4{background-position:50% 100%}.portrait.s5{background-position:100% 100%}.card-art .portrait{width:255px;height:255px;margin-top:5px}.card-content{position:relative;padding:0 25px 22px;z-index:2}.race{font-size:9px;letter-spacing:2px;color:var(--teal);text-transform:uppercase}.hero-card h2{font:500 29px var(--serif);margin:7px 0}.class-line{font-size:11px;color:#c4c5b7;margin-bottom:16px}.class-line span{color:#607774;margin:0 8px}.card-quote{font-family:var(--serif);font-style:italic;font-size:16px;color:#a7b0a5;margin:0 0 17px}.stats-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0 0}.stat{font-size:9px;color:#899a95;letter-spacing:1px}.stat strong{font-size:19px;font-weight:500;color:#dedbc9;display:block;margin-bottom:4px}.card-trait{margin:14px 0 0;font-size:10px;color:#93a89f}.primary{background:var(--gold);color:#172320;border:1px solid #eccb8c;min-height:46px;padding:13px 28px;font-size:11px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;box-shadow:0 4px 25px #0003}.primary:hover:not(:disabled){background:#ebc98d;color:#10201c}.primary span{margin-left:30px;font-size:17px}.draft-footer{display:flex;justify-content:center;gap:25px;font-size:9px;letter-spacing:1px;color:#859993;margin-top:23px}.draft-footer span:before{content:'◇';color:var(--gold);margin-right:9px}.resume{color:var(--gold);font-size:11px}.game{height:calc(100dvh - 88px);min-height:650px;position:relative;display:flex;flex-direction:column;overflow:hidden}.arena-top{position:absolute;top:22px;left:50%;transform:translateX(-50%);z-index:3;text-align:center;pointer-events:none;width:400px}.arena-top h1{font:500 32px var(--serif);margin:7px 0}.arena-top .sub{font-size:10px;color:#a4b2ac;letter-spacing:.5px}.round-pips{display:flex;justify-content:center;gap:8px;margin-top:14px;align-items:center}.round-pips i{width:5px;height:5px;border:1px solid #ab976657;transform:rotate(45deg)}.round-pips i.done{background:var(--gold);border-color:var(--gold)}.round-pips i.active{background:var(--gold);box-shadow:0 0 10px #e3b776}.round-pips i:nth-child(5),.round-pips i:nth-child(10){width:9px;height:9px}.arena-stage{position:relative;flex:1;min-height:0;background:#101c1e}canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.stage-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 160px 0 130px -65px #081217,inset -160px 0 130px -65px #081217,inset 0 110px 100px -40px #081217,inset 0 -60px 80px -50px #081217}.party-panel{position:absolute;left:25px;top:26px;width:192px;z-index:3}.panel-label{font-size:9px;color:#8ea29a;letter-spacing:2px;margin-bottom:14px;display:flex;justify-content:space-between}.party-member{display:flex;align-items:center;text-align:left;width:100%;padding:10px 9px;background:#0a1519d9;border:1px solid #64716b3d;margin-bottom:8px;gap:10px}.party-member.active{border-color:#c0a26a;background:#1c2929eb}.mini-portrait{width:43px;height:48px;flex:none;overflow:hidden;border:1px solid #9d8e6260}.mini-portrait .portrait{width:60px;height:60px;margin-left:-8px}.member-info{min-width:0;flex:1}.member-name{font-family:var(--serif);font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-sub{font-size:9px;color:var(--muted);margin:3px 0 7px}.hp-track{height:3px;background:#394440;width:100%;position:relative}.hp-track b{display:block;height:100%;background:var(--teal)}.hp-numbers{font-size:9px;color:#a1c0b5;margin-top:4px}.member-dots{color:var(--gold);letter-spacing:4px;font-size:9px;float:right}.party-member.down{opacity:.4}.run-stats{display:flex;justify-content:space-between;font-size:9px;color:#82988f;margin-top:20px}.run-stats b{color:#b2c1b5;font-weight:500}.enemies-panel{position:absolute;right:25px;top:26px;width:175px;z-index:3}.enemy-row{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #8d86662b;cursor:pointer}.enemy-row .mini-portrait{width:31px;height:35px;border:0}.enemy-row .mini-portrait .portrait{width:42px;height:42px;margin-left:-5px}.enemy-row .member-name{font:11px var(--sans)}.enemy-row .hp-track{margin-top:7px;background:#503a32}.enemy-row .hp-track b{background:#c18168}.enemy-row .hp-numbers{font-size:8px;color:#b89682}.combat-log{position:absolute;right:25px;bottom:26px;width:210px;z-index:3;pointer-events:none}.log-title{font-size:9px;letter-spacing:2px;color:#a7ad96;margin-bottom:12px}.log-line{font-size:10px;line-height:1.65;color:#92a69b;margin:6px 0;padding-left:10px;border-left:1px solid #586a5b55}.log-line.damage{color:#d3bb8b}.log-line.hurt{color:#c98e7d}.log-line.heal{color:#82bda8}.log-line.round{color:#c9cabb}.turn-pill{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);background:#0b1c1ee8;border:1px solid #82b6a74d;color:#9bc5b5;font-size:9px;letter-spacing:2px;padding:10px 22px;z-index:2;white-space:nowrap}.hint{position:absolute;bottom:27px;left:25px;color:#a1b5a9;font-size:10px;z-index:2;width:210px;line-height:1.8}.action-dock{height:134px;flex:none;z-index:4;background:linear-gradient(#172324,#101c1e);border-top:1px solid #c4a36766;display:flex;align-items:center;gap:25px;padding:18px 30px;box-shadow:0 -10px 50px #0004}.active-character{width:205px;flex:none;display:flex;gap:13px;align-items:center}.active-character .mini-portrait{height:72px;width:59px;border-color:#ad9763}.active-character .portrait{width:82px;height:82px;margin-left:-11px}.active-character h3{font:500 22px var(--serif);margin:0 0 4px}.active-character small{font-size:9px;color:var(--muted)}.resource-pips{color:var(--gold);font-size:14px;letter-spacing:4px;white-space:nowrap;margin-top:7px}.resource-label{font-size:8px;color:#8ba196;margin-top:1px}.actions{display:flex;gap:8px;flex:1;justify-content:center}.ability{width:84px;height:87px;position:relative;border-color:#aa986345;background:#0c191b;padding:8px 3px 7px;text-align:center}.ability.selected{background:#bda16b1c;border-color:var(--gold);box-shadow:inset 0 0 15px #ccb07513}.ability .shortcut{position:absolute;top:5px;left:6px;font-size:8px;color:#7d8c81}.ability svg{width:27px;height:27px;stroke:var(--gold);fill:none;stroke-width:1.4;margin:3px 0 6px}.ability strong{display:block;font-size:9px;font-weight:500;white-space:nowrap}.ability small{font-size:8px;display:block;color:#78968a;margin-top:5px}.turn-controls{width:190px;flex:none}.turn-controls .primary{width:100%;padding:13px 12px;letter-spacing:1.5px}.turn-controls .primary span{margin-left:17px}.turn-summary{font-size:9px;color:#88a597;display:flex;justify-content:center;gap:13px;margin-bottom:12px}.turn-summary .spent{color:#4f625a}.bottom-sub{font-size:8px;color:#8b9b90;margin-top:8px;text-align:center}.tooltip{position:absolute;background:#0c1b1ef5;border:1px solid var(--gold);padding:13px 15px;pointer-events:none;z-index:6;max-width:240px;font-size:11px;line-height:1.6;color:#bdc9bc}.tooltip b{display:block;color:var(--gold);font-family:var(--serif);font-size:19px}.overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#071316c4;backdrop-filter:blur(7px);padding:25px;overflow:auto}.modal{max-width:930px;width:100%;text-align:center;animation:arrive .35s ease}.modal h2{font:500 56px/1.1 var(--serif);margin:12px 0}.modal .lead{color:#abb9ae;line-height:1.8;margin:10px 0 25px}.reward-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.reward-card{min-height:272px;padding:24px;background:linear-gradient(150deg,#21312fd9,#0e1d20);text-align:left;position:relative}.reward-card .rarity{font-size:8px;letter-spacing:2px;color:#94aa9c}.reward-card.RARE{border-color:#78a5c473}.reward-card.RARE .rarity{color:#80b7d8}.reward-card.LEGENDARY{border-color:#d9aa627d}.reward-card.LEGENDARY .rarity{color:var(--gold)}.reward-icon{width:56px;height:63px;margin:23px 0;color:var(--gold)}.reward-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1}.reward-card h3{font:500 25px var(--serif);margin:12px 0}.reward-card p{font-size:11px;color:#9fb3a4;line-height:1.8;margin:0}.reward-card .pick-label{margin-top:22px;display:block;font-size:9px;color:var(--gold);letter-spacing:1px}.reward-card:hover{transform:translateY(-5px);box-shadow:0 8px 40px #0006}.rest-icon{font-size:64px;color:var(--gold);margin:15px}.summary-stats{display:flex;justify-content:center;gap:60px;margin:30px 0 35px}.summary-stats b{display:block;font:40px var(--serif);color:var(--gold);margin-bottom:5px}.summary-stats span{font-size:9px;color:#91a89a;letter-spacing:1.4px}.end-actions{display:flex;gap:15px;justify-content:center}.secondary{padding:12px 25px;font-size:11px;color:var(--gold)}#toast{position:fixed;bottom:150px;left:50%;transform:translate(-50%,12px);opacity:0;transition:.2s;z-index:30;background:#152529f5;border:1px solid #d2b3737d;padding:13px 22px;color:#e7d6b5;font-size:12px;max-width:90vw;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:#122124;border:1px solid #a38c5b7d;color:var(--cream);max-width:690px;width:calc(100% - 32px);padding:40px;box-shadow:0 40px 100px #0008}dialog::backdrop{background:#030b10bb;backdrop-filter:blur(6px)}dialog h2{font:42px var(--serif);margin:15px 0}dialog p{font-size:12px;line-height:1.8;color:#a8b9ad}.close{position:absolute;right:15px;top:10px;border:0;font-size:27px;color:#9eae9f}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 30px;margin:25px 0}.guide-grid b{font:20px var(--serif);color:var(--gold)}.guide-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;font-size:11px;color:#bdd0ba;line-height:1.8}.muted{color:var(--muted)}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-height:950px){.draft{padding-top:65px}.card-art{height:290px}.card-art .portrait{height:300px;width:300px}.hero-card{min-height:515px}}@media(max-width:1100px){header{padding:0 24px}.header-center{display:none}.action-dock{gap:12px;padding:16px}.active-character{width:175px}.ability{width:71px}.turn-controls{width:160px}.party-panel{left:16px;width:163px}.enemies-panel{right:16px;width:150px}.combat-log{width:165px;right:16px}.hint{left:16px;width:165px}.hero-cards{gap:13px}.card-content{padding:0 19px 20px}.hero-card h2{font-size:26px}}@media(max-width:800px){header{height:72px;padding:0 18px}.brand{font-size:21px}.brand svg{width:27px}.brand small{font-size:6px}.quiet{font-size:11px}nav{gap:10px}.game{height:calc(100dvh - 72px);min-height:640px}.draft{padding:30px 16px}.hero-cards{gap:10px}.card-art{height:180px}.card-art .portrait{height:200px;width:200px;margin-left:calc(50% - 100px)}.hero-card{min-height:400px}.card-content{padding:0 13px 16px}.hero-card h2{font-size:23px}.card-quote{font-size:13px}.card-trait{font-size:9px;line-height:1.7}.class-line{font-size:9px}.active-character{display:none}.action-dock{height:127px;padding:13px;gap:12px}.actions{justify-content:flex-start;gap:6px}.ability{flex:1;width:auto;max-width:85px}.turn-controls{width:145px}.party-panel{width:140px;left:12px;top:18px}.enemies-panel{width:130px;right:12px;top:18px}.party-member{padding:6px;gap:6px}.member-name{font-size:15px}.member-sub{font-size:8px}.mini-portrait{width:30px;height:37px}.mini-portrait .portrait{width:47px;height:47px}.arena-top{top:20px;width:230px}.arena-top h1{font-size:25px}.arena-top .eyebrow{font-size:8px}.arena-top .sub{font-size:8px}.combat-log{display:none}.hint{font-size:9px;width:160px;bottom:17px}.turn-pill{font-size:8px;bottom:18px;padding:9px 12px}.reward-card{padding:18px}.reward-card h3{font-size:23px}}@media(max-width:570px){.draft{padding-top:27px}.draft .intro{font-size:11px;max-width:300px}.hero-cards{display:flex;overflow-x:auto;padding:5px 0 12px;scroll-snap-type:x mandatory}.hero-card{flex:0 0 81%;scroll-snap-align:center}.card-art{height:230px}.card-art .portrait{height:250px;width:250px;margin-left:calc(50% - 125px)}.card-content{padding:0 22px 20px}.hero-card h2{font-size:29px}.card-quote{font-size:16px}.draft-footer{gap:10px;font-size:7px}.draft-tools{flex-wrap:wrap}.header-center{display:none}.quiet .key{display:none}.arena-top{top:15px;width:190px}.arena-top h1{font-size:22px}.arena-top .sub{display:none}.party-panel{top:110px;width:124px;left:8px}.party-panel .panel-label{font-size:7px}.enemies-panel{top:110px;width:110px;right:8px}.enemies-panel .panel-label{font-size:7px}.enemy-row .mini-portrait{display:none}.enemy-row .member-name{font-size:9px}.run-stats{display:none}.stage-vignette{box-shadow:inset 0 90px 65px -35px #081217,inset 0 -50px 50px -20px #081217}.game{min-height:650px}.action-dock{height:190px;display:block;padding:10px}.actions{justify-content:center}.ability{height:79px;width:18%;max-width:90px}.ability strong{font-size:8px}.ability svg{height:24px;margin-bottom:4px}.turn-controls{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-top:12px;gap:7px}.turn-summary{margin:0;font-size:8px}.turn-controls .primary{width:145px;min-height:38px;padding:10px;font-size:9px}.bottom-sub{width:100%;margin:0;font-size:8px}.hint{display:none}.turn-pill{bottom:12px;font-size:7px}.reward-cards{grid-template-columns:1fr;gap:9px;margin:15px 0}.reward-card{min-height:0;padding:15px 17px 15px 78px}.reward-icon{position:absolute;left:15px;top:30px;width:40px;height:45px;margin:0}.reward-card h3{font-size:22px;margin:6px 0}.reward-card p{font-size:10px;line-height:1.6}.reward-card .pick-label{display:none}.modal h2{font-size:37px}.modal .lead{font-size:11px;margin-bottom:15px}.overlay{padding:15px}.summary-stats{gap:25px}.summary-stats b{font-size:30px}.summary-stats span{font-size:8px}.guide-grid{grid-template-columns:1fr;gap:3px}dialog{padding:30px 22px}dialog h2{font-size:34px}#toast{bottom:205px}.guide-grid p{margin:5px 0 12px}.brand small{letter-spacing:2px}}
.recipient-picker{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.recipient{padding:8px 14px;font-size:10px;color:#9db6a7;border-color:#76876b66}.recipient.chosen{border-color:var(--gold);color:var(--gold);background:#c8ab7020}@media(min-width:801px) and (max-height:850px){.draft{padding-top:27px}.draft h1{font-size:46px}.draft .intro{margin-bottom:20px}.card-art{height:213px}.card-art .portrait{width:230px;height:230px}.hero-card{min-height:430px}.draft-footer{margin-top:17px}}
/* DND Rouge: illustrated loot, party equipment, rival recruitment. */
.portrait.s6{background-image:url('assets/rogue.png');background-size:contain;background-position:center;background-repeat:no-repeat}.card-art .s6{width:230px;height:290px;margin-top:-6px}.rules-chip{display:inline-block;color:#d5bd88;border:1px solid #a99a6740;padding:3px 8px;font-size:9px;letter-spacing:1px;margin:9px 5px 0 0}.rule-link{color:#a2bcae;text-decoration:none;font-size:10px;border-bottom:1px solid #a7b69c40}.rule-link:hover{color:var(--gold)}.starting-kit{font-size:9px;margin-top:9px;color:#738e83}.draft-note{font-size:9px;color:#6e887d;margin:17px 0 0;line-height:1.7}.card-trait{min-height:24px;line-height:1.6}.loot-art{background:url('assets/loot.png') no-repeat;background-size:400% 300%;background-position:var(--lx) var(--ly);width:100%;height:100%;aspect-ratio:1;filter:drop-shadow(0 8px 12px #0006)}.reward-art-wrap{height:155px;width:155px;margin:8px auto 10px;position:relative}.reward-art-wrap:before{content:'';position:absolute;inset:14px;background:radial-gradient(ellipse,#d7af6533,transparent 65%)}.reward-card{padding:23px 24px;min-height:370px;background:radial-gradient(ellipse at 50% 20%,#41533a33,transparent 60%),linear-gradient(145deg,#22302eea,#0b1b1e);border:1px solid #a5946b52;overflow:hidden}.reward-card .loot-art{transition:transform .3s}.reward-card:hover .loot-art{transform:translateY(-5px) scale(1.05)}.reward-card.RARE .reward-art-wrap:before{background:radial-gradient(ellipse,#86acd64d,transparent 67%)}.reward-card h3{font-size:27px;min-height:32px}.reward-card p{min-height:60px;font-size:11px}.reward-rule{display:block;color:#7e9b8c;font-size:8px;line-height:1.6;margin-top:12px}.loot-note{color:#8ba697;font-size:10px;line-height:1.8}.loot-overlay{background:radial-gradient(ellipse at 50% 40%,#142e2ad9,#061216f2)}.loot-overlay .lead{margin-bottom:12px}.recipient-picker{align-items:center}.recipient-picker>span{font-size:9px;color:#8aa293;margin-right:5px}.reward-cards{margin-top:20px;margin-bottom:10px}.gear-link{border-color:#a2916338;font-size:9px;width:100%;padding:9px;color:#abb9a2;margin-top:5px}.resource-text{font-size:9px;color:var(--gold);line-height:1.8;margin-top:9px}.enemy-row{width:100%;border:0;border-bottom:1px solid #8d86662b;text-align:left}.rival-label{font-size:7px;color:var(--gold);letter-spacing:.6px;display:block;margin-top:4px}.rival{border:1px solid #c3a16b66;margin-top:10px;padding:6px;background:#213029a8}.recruit-button{width:100%;padding:8px 5px;font-size:10px;color:var(--gold);border-color:#c3a16b66;background:#c3a16b12;margin-top:6px}.recruit-button span{display:block;font-size:7px;color:#a9ae90;margin-top:4px;text-transform:uppercase;letter-spacing:1px}.recruit-portrait{height:140px;display:flex;justify-content:center;overflow:hidden;margin:15px auto}.recruit-portrait .portrait{height:150px;width:150px}.narrow{max-width:650px}.narrow h3{font:28px var(--serif);margin:10px}.chance{font:37px var(--serif);color:var(--gold);display:block;margin:14px 0}.target-panel{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);z-index:8;background:#0c1c22f2;border:1px solid #b9a6e76b;padding:16px 22px;min-width:310px;box-shadow:0 10px 40px #0007;text-align:center}.target-panel>b{font:25px var(--serif);color:#d1c5f2;display:block;margin-bottom:7px}.target-panel label{font-size:10px;color:#9fa9bd}.target-panel select{background:#17262e;color:#d6d4dc;border:1px solid #73818d;padding:5px;margin-left:8px}.target-panel>span,.target-panel small{display:block;font-size:10px;color:#b1bdc5;margin:8px}.target-panel>div{display:flex;gap:10px;align-items:center;justify-content:center}.target-panel .primary,.target-panel .secondary{font-size:9px;min-height:32px;padding:8px 16px}.target-panel .quiet{font-size:9px}.target-panel.compact{min-width:270px}.more-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.more-actions button{padding:14px;text-align:left;background:#09181a}.more-actions b{display:block;font:20px var(--serif);color:var(--gold);margin-bottom:6px}.more-actions small{font-size:10px;line-height:1.6;color:#a5b7a7}.between-party{display:flex;gap:15px;justify-content:center;margin:25px 0}.between-party>div{background:#112623;border:1px solid #8e9e6740;min-width:190px;padding:15px;text-align:left}.between-party .mini-portrait{float:left;margin-right:10px;width:42px;height:48px}.between-party b{display:block;font:22px var(--serif)}.between-party span{display:block;font-size:10px;color:#a9c5b1;margin-top:5px}.between-party small{display:block;clear:both;font-size:9px;color:#839f90;padding-top:10px}.next-arena{background-size:cover;background-position:center 45%;height:150px;max-width:600px;border:1px solid #b1a16f60;margin:25px auto;text-align:left;padding:32px}.next-arena small{display:block;color:var(--gold);letter-spacing:2px;font-size:9px}.next-arena strong{font:34px var(--serif);display:block;margin-top:12px}.gear-dialog{max-width:1140px;width:calc(100% - 40px);max-height:92vh;padding:32px;overflow:auto}.gear-dialog h2{margin:10px 0;font-size:40px}.gear-dialog>p{margin:10px 0 20px}.gear-heroes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}.gear-hero{padding:18px;background:#0b1c1f;border:1px solid #a293633c}.gear-heading{display:flex;gap:10px;align-items:center}.gear-heading h3{font:24px var(--serif);margin:0 0 4px}.gear-heading small{font-size:9px;color:#9fb1a2}.six-stats{display:flex;justify-content:space-between;padding:14px 0;margin:10px 0;border-top:1px solid #8d96602e;border-bottom:1px solid #8d96602e}.six-stats span{font-size:8px;text-align:center;color:#89a092}.six-stats b{display:block;font-size:19px;color:#d4d8c4;font-weight:500;margin:4px 0}.six-stats small{color:#bdad7c}.gear-slots{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gear-slot{background:#0c171b;border:1px solid #69796557;min-height:132px;position:relative;cursor:pointer}.gear-slot:focus-visible{outline:2px solid var(--gold)}.gear-slot.compatible{border-color:#8ed5a6;box-shadow:inset 0 0 20px #8ed5a611}.slot-label{padding:9px 10px;font-size:8px;letter-spacing:1.5px;color:#869a87;border-bottom:1px solid #66745b25;display:flex;justify-content:space-between;align-items:center}.unequip{border:0;padding:0;font-size:15px;line-height:10px;color:#a3b3a1}.equipment-item{border:1px solid #6d7b663a;background:#142322;text-align:left;padding:8px;display:flex;gap:8px;align-items:center;width:100%;min-height:76px}.equipment-item .loot-art{height:60px;width:60px;flex:none}.equipment-item b{display:block;font:18px/1.1 var(--serif);color:#d6d7bf}.equipment-item small{display:block;font-size:8px;color:#8fa795;margin-top:6px;line-height:1.6}.equipment-item.RARE{border-color:#84a6cf65}.equipment-item.UNCOMMON{border-color:#a2b77a50}.equipment-item.picked{border:1px solid #edce8c;background:#c3aa6b1f}.gear-slot .equipment-item{border:0;display:block;background:transparent;min-height:115px;text-align:center;padding:8px}.gear-slot .equipment-item .loot-art{height:58px;width:58px;margin:auto}.gear-slot .equipment-item b{font-size:17px}.gear-slot .equipment-item small{font-size:8px;line-height:1.5}.empty-slot{text-align:center;font-size:27px;color:#476b5e;padding:24px 5px}.empty-slot small{display:block;font-size:8px;color:#718e80;margin-top:7px}.stash-heading{display:flex;justify-content:space-between;margin:25px 0 12px;font-size:9px;letter-spacing:1px;color:var(--gold)}.stash-heading span{font-size:9px;color:#8aa28f;letter-spacing:0}.stash{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;min-height:100px;border:1px dashed #8a9b6550;padding:15px}.stash p{grid-column:1/-1;text-align:center;color:#769182}.gear-dialog .equipment-note{font-size:10px;color:#809c8c}.character-passive{font-size:9px!important;line-height:1.7;color:#9bba9c!important;margin:13px 0 0!important}.intermission{max-width:850px}.game[data-theme='verdant']{--teal:#9bc4a2}.game[data-theme='forge']{--teal:#cfa276}
@media(max-width:1100px){.header-center{display:none}.active-character{width:185px}.ability{width:80px}.gear-dialog{padding:24px}.hero-card{min-height:450px}}
@media(max-width:800px){.fx-toggle{font-size:9px}.reward-art-wrap{height:125px;width:125px}.reward-card{padding:18px;min-height:345px}.reward-card h3{font-size:23px}.gear-heroes{grid-template-columns:1fr}.gear-hero{padding:15px}.gear-slots{grid-template-columns:repeat(4,1fr)}.gear-slot .equipment-item b{font-size:14px}.gear-slot .equipment-item small{font-size:7px}.between-party>div{min-width:145px}.reward-card p{font-size:10px}.ability{max-width:90px}.draft-note{max-width:600px;margin:15px auto}.card-art .s6{height:235px;width:190px;margin-left:calc(50% - 95px)}}
@media(max-width:570px){.brand{font-size:19px;letter-spacing:2px}.brand small{font-size:5px;letter-spacing:1.2px}.brand svg{width:24px}.fx-toggle{font-size:0;width:22px}.fx-toggle:first-letter{font-size:18px}.quiet{font-size:10px}header{padding:0 12px}nav{gap:7px}.header-center{display:none}.hero-card{flex-basis:84%;min-height:450px}.card-art .s6{height:285px;width:215px;margin-left:calc(50% - 107px)}.reward-card{padding:14px 15px 14px 100px;min-height:150px}.reward-art-wrap{position:absolute;left:6px;top:30px;height:86px;width:86px;margin:0}.reward-card h3{min-height:0;font-size:23px}.reward-card p{min-height:0}.reward-rule{margin-top:7px;font-size:7px}.reward-cards{gap:10px}.recipient-picker{gap:5px}.recipient{padding:6px 9px;font-size:8px}.recipient-picker>span{font-size:8px}.loot-overlay{align-items:flex-start;padding-top:25px}.loot-overlay h2{font-size:37px}.loot-overlay .lead{font-size:10px}.loot-note{font-size:8px}.gear-dialog{padding:22px 14px;width:calc(100% - 18px);max-height:94dvh}.gear-dialog h2{font-size:32px}.gear-dialog>p{font-size:10px}.gear-slots{grid-template-columns:1fr 1fr}.gear-slot .equipment-item b{font-size:17px}.gear-slot .equipment-item small{font-size:8px}.stash{grid-template-columns:1fr}.stash-heading{gap:10px;line-height:1.6}.stash-heading span{max-width:165px;text-align:right;font-size:8px}.between-party{flex-direction:column;gap:8px}.between-party>div{min-width:0;padding:10px}.between-party small{clear:none;padding-top:4px}.end-actions{flex-wrap:wrap;gap:10px}.end-actions .primary,.end-actions .secondary{font-size:10px}.target-panel{bottom:45px;min-width:285px;max-width:95%;padding:12px}.recruit-button{font-size:8px}.recruit-button span{font-size:6px}.next-arena{height:115px;padding:20px}.next-arena strong{font-size:28px}.next-arena small{font-size:8px}.more-actions{grid-template-columns:1fr}.narrow .lead{font-size:10px}.chance{font-size:30px}.recruit-portrait{height:105px}.recruit-portrait .portrait{height:115px;width:115px}.draft-footer{flex-wrap:wrap}.ability strong{font-size:8px}.ability small{font-size:7px}.party-panel{width:126px}.enemies-panel{width:120px}.rival-label{font-size:6px}.enemy-row .member-name{white-space:normal}.enemy-row .hp-numbers{font-size:7px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.loot-art{clip-path:inset(3%)}.gear-hero:only-child .gear-slots{grid-template-columns:repeat(4,1fr)}.gear-hero:only-child .six-stats{max-width:480px}.gear-hero:only-child .gear-slot{min-height:160px}.gear-dialog .gear-hero:only-child .character-passive{margin-top:10px!important}@media(max-width:570px){.gear-hero:only-child .gear-slots{grid-template-columns:1fr 1fr}.gear-hero:only-child .gear-slot{min-height:130px}}
/* Character progression and readable tabletop-inspired stat blocks. */
.xp-line{margin-top:7px;text-align:left}.xp-line>span{display:block;font-size:8px;letter-spacing:1px;color:#ccb781;margin-bottom:4px}.xp-track{height:3px;background:#061214;overflow:hidden}.xp-track i{height:100%;display:block;background:linear-gradient(90deg,#9d8050,#f1d598)}
.level-banner{display:flex;align-items:center;gap:18px;padding:17px 23px;border:1px solid #c4a56a70;background:radial-gradient(ellipse at 15% 50%,#9d773b30,transparent 60%),#142124;margin:14px 0 25px;text-align:left;animation:level-reveal .7s ease-out}.level-star{font:44px var(--serif);color:#f2d79e;text-shadow:0 0 24px #f3d39080}.level-banner strong{font:23px var(--serif);color:#f7e5ba}.level-banner small{display:block;color:#b8c4b5;margin-top:5px;font-size:11px}.level-banner .secondary{margin-left:auto;white-space:nowrap}.level-dialog{width:min(1100px,94vw);max-height:90vh;padding:34px 40px;overflow:auto;background:radial-gradient(ellipse at 10% 0,#31433c55,transparent 45%),#101f23;color:var(--cream);border:1px solid #bda57480}.level-dialog h2{font:48px var(--serif);margin:14px 0}.level-dialog h3{font:26px var(--serif);color:#efe1bd;margin:17px 0}.level-intro{max-width:750px;font-size:13px;line-height:1.7;color:#a8bcb3}.level-tabs{display:flex;gap:10px;margin:25px 0;border-bottom:1px solid #bda57440;padding-bottom:16px}.level-tabs button{padding:12px 20px;background:#10282b;border:1px solid #52655d;color:#d4dbca;text-align:left}.level-tabs button.selected{border-color:#dbb777;background:#8d6f3930}.level-tabs small{display:block;margin-top:4px;font-size:10px;color:#a1b8ad}.level-layout{display:grid;grid-template-columns:250px 1fr;gap:35px}.level-summary{background:#07171b80;padding:22px;border:1px solid #c6ac7330;text-align:center}.level-crest{width:90px;height:102px;margin:5px auto 23px;display:grid;place-items:center;clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);background:linear-gradient(145deg,#dfc893,#685735);color:#112125;font:52px var(--serif);text-shadow:0 1px #fce9bd}.level-summary p{font-size:12px;color:#b4c3b5;line-height:1.7}.level-summary .xp-line{margin:20px 0}.level-gain{padding:22px 0;border-top:1px solid #bda57440;border-bottom:1px solid #bda57440}.level-gain>span{font-size:9px;letter-spacing:2px;color:#a9b9ac;display:block}.level-gain>b{font:32px var(--serif);display:block;color:#f2d695;margin:8px}.level-gain small,.level-scope{font-size:11px!important;line-height:1.7;color:#93aba0}.level-choices>p{font-size:12px;line-height:1.8;color:#acbeb1}.feature-list>div{display:flex;gap:13px;align-items:flex-start;padding:12px 14px;border:1px solid #6c806342;margin-bottom:8px;background:#24382d35}.feature-list span{color:#e1c488;padding-top:3px}.feature-list p{font-size:12px;line-height:1.7;margin:0;color:#c4cebc}.level-rule{padding:12px;border-left:2px solid #a38a55;background:#bda5740a;font-size:11px!important;line-height:1.7;color:#a7b9ad}.asi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.asi-grid>div{text-align:center;border:1px solid #bda57440;padding:12px;background:#07171b80}.asi-grid label{letter-spacing:2px;font-size:11px;color:#ddc58f}.asi-grid small{display:block;margin:9px;font-size:11px;color:#afc3b3}.asi-grid>div>div{display:flex;justify-content:center;align-items:center;gap:13px}.asi-grid button{width:30px;height:30px;background:#263d34;border:1px solid #829b7c;color:#e9d59b;font-size:20px}.asi-grid button:disabled{opacity:.3}.spell-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.spell-choice{display:flex;gap:10px;padding:13px;border:1px solid #788a6b40;background:#08171b;cursor:pointer}.spell-choice.chosen{border-color:#d0b579;background:#4b482b33}.spell-choice input{accent-color:#d7b376;margin-top:5px}.spell-choice b{display:block;font:17px var(--serif);color:#e6d5af}.spell-choice small{font:8px var(--sans);letter-spacing:1px;margin-left:9px;color:#8ca397;white-space:nowrap}.spell-choice em{display:block;font-style:normal;font-size:10px;line-height:1.6;color:#a7bcae;margin-top:6px}.level-error{color:#efad91;font-size:12px;margin:15px 0}.level-dialog .end-actions{flex-wrap:wrap;gap:10px}.shield-setting{display:flex;gap:12px;font-size:12px;line-height:1.7;color:#b7c8b7;margin:18px 0}.shield-setting input{accent-color:#dfc488}.slot-choice{display:flex;gap:15px;align-items:center;margin:25px 0;font-size:12px}.slot-choice select{padding:10px;background:#172c2e;color:#e7d4ae;border:1px solid #b29c68}
#statPopover,.tooltip{width:350px;max-height:min(660px,80vh);overflow:auto;background:#09191ef5;border:1px solid #c1a56d88;box-shadow:0 18px 60px #0009;padding:17px;z-index:10000;text-align:left;pointer-events:none}#statPopover{position:fixed}#statPopover[hidden]{display:none}.statblock h3{font:24px var(--serif);color:#f1dfb2;margin:7px 0}.statblock .eyebrow{font-size:8px}.statblock p{font-size:11px;line-height:1.65;color:#b7c8b8;margin:10px 0}.statblock p>b{color:#dfcfac}.statblock small{font-size:9px;line-height:1.5;color:#829d91;display:block}.block-vitals{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #af975a66;border-bottom:1px solid #af975a66;padding:10px 0;gap:8px;font-size:10px;color:#9eb4a5}.block-vitals b{color:#e4d5b4}.block-abilities{display:grid;grid-template-columns:repeat(6,1fr);text-align:center;gap:4px;margin:13px 0;color:#a6bba9;font-size:9px}.block-abilities b{display:block;color:#eedcb0;font:20px var(--serif);margin:4px 0}.rescue-tip{color:#b2d7ff;font-size:11px}.captive-card{position:absolute;right:24px;bottom:22px;width:205px;background:#0a1d29ee;border:1px solid #a2c6d985;padding:15px;z-index:6;box-shadow:0 0 25px #8ab7d318}.captive-card .eyebrow{font-size:8px;color:#9fc9e3}.captive-name{padding:0;margin:8px 0;background:none;border:none;color:#e4e3d0;text-align:left;font:19px var(--serif)}.captive-name small{display:block;color:#9ebec4;font:10px var(--sans);margin-top:5px}.captive-card p{font-size:10px;line-height:1.7;color:#a8bec4}.captive-card .secondary{width:100%;padding:10px;font-size:10px}@keyframes level-reveal{from{opacity:0;transform:translateY(9px);box-shadow:0 0 55px #f5d89655}to{opacity:1;transform:none;box-shadow:0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.level-banner{animation:none}}@media(max-width:700px){.level-dialog{padding:23px 18px}.level-layout{grid-template-columns:1fr;gap:16px}.level-summary{display:none}.level-dialog h2{font-size:36px}.spell-choices{grid-template-columns:1fr}.level-banner{padding:12px;gap:10px;flex-wrap:wrap}.level-banner .secondary{margin-left:0}.level-banner strong{font-size:20px}.captive-card{right:8px;bottom:12px;width:160px;padding:10px}.level-tabs{overflow-x:auto}.level-tabs button{min-width:110px}.asi-grid{grid-template-columns:repeat(2,1fr)}#statPopover,.tooltip{width:min(350px,90vw)}}
.level-dialog{max-width:min(1100px,94vw)}.level-layout{grid-template-columns:250px minmax(0,1fr)}.level-choices{min-width:0}.level-summary{align-self:start}.level-tabs{margin:18px 0}.level-dialog .level-intro{margin-bottom:0}@media(max-width:700px){.level-layout{grid-template-columns:minmax(0,1fr)}}
.game:has(.captive-card) .combat-log{display:none}.captive-card{background:#0a1d29}

/* Battle outcomes leave the arena visible while making the result unmistakable. */
.outcome-overlay{background:radial-gradient(ellipse at center,#08161860,#050d12e8);backdrop-filter:blur(2px);z-index:25}
.battle-result{width:min(640px,94vw);padding:35px 24px;text-align:center;animation:result-arrive .55s ease both;--result-color:#f2d398}
.defeat .battle-result{--result-color:#e4a28c}
.battle-result .eyebrow{color:#c5c1af;letter-spacing:3px;font-size:10px}
.outcome-sigil{width:82px;height:82px;margin:25px auto 20px;border:1px solid #d7b37660;transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 50px #d7b37620,inset 0 0 30px #d7b37610}
.outcome-sigil svg{width:44px;height:44px;transform:rotate(-45deg);fill:none;stroke:var(--result-color);stroke-width:1.5}
.result-rule{display:flex;align-items:center;gap:18px;width:240px;margin:auto;color:var(--result-color)}
.result-rule:before,.result-rule:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--result-color))}.result-rule:after{transform:rotate(180deg)}
.battle-result h2{font-family:'Cinzel',Palatino,serif;font-size:clamp(48px,7vw,80px);font-weight:600;letter-spacing:.04em;color:var(--result-color);text-shadow:0 3px 18px #000;margin:10px 0 12px;line-height:1.2}
.battle-result p{color:#d0d6ce;line-height:1.7;margin:0 0 26px}
.outcome-details{display:flex;justify-content:center;gap:45px;margin:25px auto 30px}.outcome-details span{font-size:9px;letter-spacing:1.6px;color:#b4c1ba}.outcome-details b{display:block;font-family:'Cinzel',Palatino,serif;font-size:26px;font-weight:600;letter-spacing:0;color:#f1e6ce;margin-bottom:8px}
.battle-result .outcome-level{font-size:11px;letter-spacing:1px;color:#f2d398}.battle-result .primary{min-width:240px;background:#182722ed;color:#f2d398}
@keyframes result-arrive{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.battle-result{animation:none}}
@media(max-height:650px){.battle-result{padding:18px}.outcome-sigil{width:55px;height:55px;margin:16px auto}.outcome-sigil svg{width:32px;height:32px}.battle-result h2{font-size:46px}.outcome-details{margin:14px auto}.battle-result p{margin-bottom:16px}}
/* A sealed reward draw: contract, charge, burst, then reveal each choice. */
#outcomeContinue{position:relative;overflow:visible;transform-origin:center}
#outcomeContinue:disabled{opacity:1;color:#fff1cf}
.charge-outline{position:absolute;inset:-8px;pointer-events:none;margin:0!important}
.charge-outline svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 7px #ffd482)}
.charge-outline rect{fill:none;stroke:#fff1bd;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:18 82;stroke-linecap:round}
.loot-opening-layer{position:fixed;inset:0;pointer-events:none;z-index:1000;overflow:hidden}
.loot-shard,.loot-shockwave{position:absolute;left:var(--burst-x);top:var(--burst-y);pointer-events:none}
.loot-shard{width:var(--size);height:calc(var(--size)*2);background:var(--particle-color);box-shadow:0 0 12px var(--particle-color);animation:loot-burst .85s cubic-bezier(.1,.6,.2,1) forwards}
.loot-shockwave{width:30px;height:30px;border:2px solid #ffe3a9;border-radius:50%;box-shadow:0 0 35px #eacb85,inset 0 0 25px #eacb85;animation:loot-wave .65s ease-out forwards}
@keyframes loot-burst{from{opacity:1;transform:translate(-50%,-50%) scale(1.5)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--spin)) scale(.2)}}
@keyframes loot-wave{from{opacity:.9;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(16)}}
.reward-card{--rarity:#b9c8c1;position:relative;border-color:color-mix(in srgb,var(--rarity) 45%,transparent)}
.rarity-uncommon{--rarity:#91d7ac}.rarity-rare{--rarity:#93bfff}.rarity-very-rare{--rarity:#d3a3ff}
.reward-card.rarity-uncommon{background:radial-gradient(ellipse at 50% 24%,#62b59120,transparent 62%),#10221f}
.reward-card.rarity-rare{background:radial-gradient(ellipse at 50% 24%,#6a9eff35,transparent 65%),#111d2a;box-shadow:0 0 28px #82aaff17,inset 0 0 28px #85b6ff0a;border-color:#8ebeff8c}
.reward-card.rarity-very-rare{background:radial-gradient(ellipse at 50% 24%,#b075ff40,transparent 65%),#21192b;box-shadow:0 0 38px #c68dff32,inset 0 0 28px #e8b6ff12;border-color:#d3a3ff}
.reward-card .rarity{color:var(--rarity);font-size:10px;letter-spacing:1.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;min-height:26px}
.reward-card .rarity>span{font-size:11px;letter-spacing:1px;text-shadow:0 0 12px var(--rarity)}
.reward-card h3{color:var(--rarity)}.reward-card .reward-art-wrap{position:relative}
.reward-card .reward-art-wrap:before{content:'';position:absolute;inset:13%;border:1px solid var(--rarity);opacity:.2;border-radius:50%;box-shadow:0 0 25px var(--rarity)}
.reward-card.rarity-very-rare .reward-art-wrap:after{content:'✦';position:absolute;right:16%;top:17%;color:#eedbff;font-size:24px;text-shadow:0 0 18px #cc8aff}
.reward-card:hover:not(:disabled){border-color:var(--rarity);box-shadow:0 0 30px color-mix(in srgb,var(--rarity) 22%,transparent)}
.reward-cards.revealing .reward-card{animation:reward-arrive .62s cubic-bezier(.15,.75,.2,1) var(--reveal-delay) both;pointer-events:none;opacity:1}
.reward-cards.revealing .reward-card .reward-art-wrap{animation:rarity-flare .85s ease-out var(--reveal-delay) both}
@keyframes reward-arrive{0%{opacity:0;transform:translateY(32px) scale(.82);filter:brightness(2)}65%{opacity:1;transform:translateY(-4px) scale(1.025);filter:brightness(1.2)}100%{opacity:1;transform:none;filter:brightness(1)}}
@keyframes rarity-flare{0%{filter:brightness(3);transform:scale(.8)}100%{filter:brightness(1);transform:scale(1)}}
.equipment-item.rarity-very-rare{border-color:#d3a3ff80;background:#231b2b}.equipment-item.rarity-very-rare b{color:#dfbaff}.equipment-item .item-rarity{color:var(--rarity,#a5b9a9);font-size:7px;letter-spacing:1.2px}
@media(prefers-reduced-motion:reduce){.reward-cards.revealing .reward-card{animation:reward-fade .15s ease calc(var(--reveal-delay)*.25) both}.reward-cards.revealing .reward-card .reward-art-wrap{animation:none}}
@keyframes reward-fade{from{opacity:0}to{opacity:1}}
@media(max-width:570px){.reward-card .rarity{justify-content:flex-start;font-size:8px;letter-spacing:.8px}.reward-card .rarity>span{font-size:8px}.reward-card .reward-art-wrap{position:absolute}.reward-card.rarity-very-rare .reward-art-wrap:after{font-size:16px}}

.reward-cards.revealing.reveal-calm .reward-card{animation:reward-fade .15s ease calc(var(--reveal-delay)*.25) both}.reward-cards.revealing.reveal-calm .reward-card .reward-art-wrap{animation:none}

.content-guide-link{font-size:11px;color:var(--gold);text-decoration:none;white-space:nowrap}.content-guide-link:hover{text-decoration:underline}@media(max-width:1100px){header .header-center{display:none}}@media(max-width:570px){.content-guide-link{font-size:9px}header nav{gap:8px}#guideButton .key{display:none}}
/* Independent enemy assets prevent neighboring sprite cells from bleeding in. */
.portrait.s3,.portrait.s4,.portrait.s5{background-size:contain;background-position:center;background-repeat:no-repeat}.portrait.s3{background-image:url('assets/enemies/goblin.png')}.portrait.s4{background-image:url('assets/enemies/skeleton.png')}.portrait.s5{background-image:url('assets/enemies/knight.png')}.fg-monsters .fg-portrait{height:215px}.fg-monsters .fg-portrait .portrait{width:100%;height:100%}.fg-monsters .fg-portrait:after{display:none}
.hero-choice{position:relative;min-width:0}.hero-choice .hero-card{width:100%;height:100%}.hero-card.selected:after{display:none}.hero-card.selected{border-color:#9ec8b7;box-shadow:0 0 0 1px #9ec8b750,0 15px 60px #0006}.hero-card:hover:not(.selected){border-color:#d7b37680}.choice-status{display:block;margin-top:15px;padding-top:12px;border-top:1px solid #9db8a52b;font-size:10px;letter-spacing:.5px;color:#a8b8af}.selected .choice-status{color:#b1e0c9}.stat-info{position:absolute;right:12px;top:12px;z-index:4;border:1px solid #b9c8ba77;border-radius:50%;width:27px;height:27px;font:bold 16px Georgia,serif;background:#102126;color:#e9d8b1;display:grid;place-items:center;padding:0}.stat-info:hover{background:#253b3b!important}.party-inspect,.enemy-entry{position:relative}.party-inspect .party-member,.enemy-entry .enemy-row{padding-right:31px}.party-inspect .stat-info,.enemy-entry .stat-info{width:21px;height:21px;right:5px;top:7px;font-size:13px}.captive-card .stat-info{right:7px;top:7px}.captive-card .eyebrow{padding-right:18px}body[data-stat-mode=hover] .stat-info{opacity:.7}
#statPopover{pointer-events:auto;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overscroll-behavior:contain;padding-top:22px}.stat-close{position:absolute;right:7px;top:3px;border:0;background:none;font-size:22px;color:#c2c9b8}.roll-rarity{display:inline-flex;gap:8px;align-items:baseline;font-size:9px;letter-spacing:.7px;text-transform:uppercase;border:1px solid currentColor;padding:5px 7px;margin-top:7px;color:#b6c5be}.roll-rarity small{font:8px var(--sans);letter-spacing:0;text-transform:none;color:inherit!important;display:inline!important}.roll-uncommon{color:#8cd4a7}.roll-rare{color:#8abfff}.roll-epic{color:#c6a1f3}.roll-legendary{color:#f0c16e}.member-info .roll-rarity{font-size:7px;padding:2px 4px;letter-spacing:.2px;margin-top:3px}.member-info .roll-rarity small{display:none!important}.roll-explanation{border-top:1px solid #af975a40;padding-top:10px;margin:12px 0}.roll-explanation summary{cursor:pointer;font-size:10px;color:#d7bd88}.roll-explanation p{font-size:10px}.inspection-settings{border:1px solid #a88f6040;padding:20px;margin:25px 0}.inspection-settings legend{padding:0 8px;color:#dbc48e}.inspection-settings label{display:flex;align-items:start;gap:12px;cursor:pointer;margin:15px 0}.inspection-settings input{accent-color:#d7b376;margin-top:3px}.inspection-settings b{font-size:13px;font-weight:500}.inspection-settings small{display:block;font-size:11px;line-height:1.7;color:#9eb3a4;margin-top:6px}
@media(max-width:570px){.hero-choice{flex:0 0 84%;scroll-snap-align:center}.hero-choice .hero-card{min-height:450px}.settings-label{display:none}#settingsButton{font-size:17px}.party-inspect .stat-info,.enemy-entry .stat-info{width:19px;height:19px;font-size:12px}.party-inspect .party-member,.enemy-entry .enemy-row{padding-right:24px}}

#statPopover{background:#09191e}

/* Individual ancestry, class and gender illustrations. */
.entity-portrait{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:none;filter:drop-shadow(0 8px 10px #0003)}
.card-art>div{width:100%;height:100%}.card-art .entity-portrait{padding:6px 8px 0;object-position:center bottom}
.mini-portrait .entity-portrait{width:100%;height:100%;object-fit:contain;transform:none}
.recruit-portrait{height:220px;max-width:280px;margin:0 auto}.recruit-portrait .entity-portrait{width:100%;height:100%}
.stat-art{float:right;width:100px;height:110px;object-fit:contain;margin:0 0 8px 8px}.statblock:after{content:'';display:block;clear:both}

.statblock a{color:#dfc28b;text-decoration-color:#dfc28b66}.statblock a:hover{color:#f4dfb7}

/* Adventure controls replace the introductory rules row rather than adding height. */
.draft{padding-top:28px}
.draft-heading{display:flex;align-items:center;justify-content:space-between;gap:26px;text-align:left;margin-bottom:24px}
.draft-copy{min-width:0}
.draft h1{font-size:clamp(32px,3.3vw,45px);max-width:580px;margin:11px 0 9px}
.draft .intro{margin:0;font-size:12px;line-height:1.6}
.draft-tools{margin:0;gap:9px;flex:none;flex-wrap:nowrap}
.draft-tools .primary{white-space:nowrap;padding:13px 20px;min-height:46px}
.draft-tools .primary span{margin-left:14px}
.resume{padding:13px 14px;min-height:46px;border-color:#bda57455;white-space:nowrap;background:#101e20}
.resume-long{display:none}
.reroll-control{position:relative;flex:none}
.reroll{display:grid;place-items:center;width:46px;height:46px;padding:11px;border:1px solid #bda57455;background:#101e20;color:var(--gold)}
.reroll svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.4}
.reroll svg circle{fill:currentColor;stroke:none}
#rerollTip{position:absolute;right:0;top:calc(100% + 8px);padding:9px 12px;background:#09191e;border:1px solid #bda57480;color:#e4d5b7;font-size:11px;white-space:nowrap;z-index:20;pointer-events:none;opacity:0;transform:translateY(-3px);transition:.15s}
.reroll-control:hover #rerollTip,.reroll-control:focus-within #rerollTip{opacity:1;transform:none}
.draft-rules{margin-top:17px}
.draft-rules .rules-chip{margin-top:0}
.combat-roster{position:absolute;inset:0 0 134px;pointer-events:none;z-index:3}
.combat-roster>aside,.combat-roster .captive-card{pointer-events:auto}
.roster-toolbar,.camera-controls{display:none}
.entity-portrait{image-rendering:auto}
@media(min-width:1100px){.resume-long{display:inline}}
@media(max-width:1000px){.draft-heading{gap:14px}.draft h1{max-width:440px}.draft-tools .primary{padding:13px 14px}.resume{padding:13px 10px}}
@media(max-width:800px){
 .draft{padding:22px 16px 24px}
 .draft-heading{display:block;text-align:center;margin-bottom:14px}
 .draft h1{max-width:none;font-size:36px;margin:9px 0 8px}
 .draft .intro{max-width:none;font-size:11px}
 .draft-tools{justify-content:center;margin-top:16px}
 .draft-tools .primary{padding:13px 22px}
}
@media(max-width:570px){
 .draft{padding-top:18px}
 .draft .eyebrow{font-size:8px;letter-spacing:2px}
 .draft h1{font-size:34px;line-height:1.05;max-width:350px;margin:9px auto}
 .draft-tools{gap:8px;margin-top:14px}
 .draft-tools .primary{flex:1;padding:12px 9px;font-size:10px;letter-spacing:.7px}
 .draft-tools .primary span{margin-left:8px}
 .draft-tools .resume{font-size:10px;padding:12px 10px}
 .reroll{width:44px;height:46px}
 .hero-cards{padding-top:5px}
 .draft-footer{margin-top:15px}
}

/* Compact combat: the battlefield gets its own unobstructed space. */
@media(max-width:800px),(max-width:1100px) and (max-height:600px){
 body:has(.game){overflow:hidden}
 body:has(.game) header{height:60px;padding:0 12px}
 body:has(.game) header .brand{font-size:18px;gap:8px}
 body:has(.game) header .brand small{display:none}
 body:has(.game) header .brand svg{width:23px}
 body:has(.game) header .settings-label{display:none}
 body:has(.game) header #settingsButton{font-size:17px}
 .game{height:calc(100dvh - 60px);min-height:0}
 .arena-stage{flex:1;min-height:130px;overflow:hidden}
 .arena-top{top:11px;width:100%;padding:0 12px}
 .arena-top .eyebrow{font-size:7px;letter-spacing:1.5px}
 .arena-top h1{font-size:22px;margin:3px 0}
 .arena-top .sub{display:block;font-size:8px}
 .round-pips{display:none}
 .stage-vignette{box-shadow:inset 0 70px 60px -30px #081217,inset 0 -35px 30px -25px #081217}
 .combat-log,.hint{display:none}
 .turn-pill{bottom:10px;left:12px;transform:none;padding:8px 9px;font-size:7px;letter-spacing:1px}
 .camera-controls{position:absolute;bottom:8px;right:10px;display:flex;align-items:center;gap:4px;z-index:3}
 .camera-controls>span{display:none}
 .camera-controls button{height:32px;min-width:32px;padding:3px 7px;background:#0b1c20ee;border-color:#bda57460;color:#e0c58f;font-size:18px}
 .camera-controls button:last-child{font-size:10px}
 .combat-roster{position:relative;inset:auto;flex:none;background:#0c191e;border-top:1px solid #bda57445;pointer-events:auto;padding:0 10px 7px;z-index:4}
 .roster-toolbar{height:33px;display:flex;justify-content:space-between;align-items:center;gap:6px}
 .roster-toolbar [role=tablist]{display:flex;align-items:stretch;gap:9px;height:100%}
 .roster-toolbar button{font-size:10px;padding:5px 5px;border:0;color:#94a99f;white-space:nowrap}
 .roster-toolbar [aria-selected=true]{color:#e7cd93;border-bottom:2px solid #d7b376}
 .roster-toolbar #mobileGear{color:#d7b376}
 .combat-roster .party-panel,.combat-roster .enemies-panel{display:none;position:static;width:auto;max-width:none;margin:0;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#7a7958 transparent}
 .combat-roster #captivePanel{display:none}
 .game[data-roster=party] .party-panel,.game[data-roster=enemies] .enemies-panel{display:flex}
 .game[data-roster=captive] #captivePanel{display:block}
 .combat-roster .panel-label,.combat-roster .run-stats,.combat-roster .gear-link,.combat-roster .xp-line,.combat-roster .roll-rarity{display:none}
 .party-inspect{flex:1 0 108px;min-width:0;max-width:230px}
 .party-inspect .party-member{height:65px;min-height:65px;margin:0;padding:6px 25px 6px 6px;gap:5px}
 .party-member .mini-portrait{width:27px;height:43px;border:0}
 .party-member .member-name{font:15px var(--serif)}
 .party-member .member-sub{font-size:8px;margin:2px 0 5px;white-space:nowrap}
 .party-member .member-dots{float:none;letter-spacing:1px;display:none}
 .party-member .hp-numbers{font-size:8px;margin-top:4px;white-space:nowrap}
 .party-inspect .stat-info,.enemy-entry .stat-info{width:28px;height:28px;right:2px;top:2px;font-size:14px;border-color:transparent;background:transparent}
 .enemy-entry{flex:1 0 130px;max-width:220px;border:1px solid #956c4f55;background:#241c1a55;margin:0;padding:0}
 .enemy-entry .enemy-row{height:65px;padding:6px 29px 6px 7px;border:0;gap:6px}
 .enemy-row .mini-portrait{display:block;width:28px;height:43px;flex:none}
 .enemy-row .member-name{font-size:10px;white-space:nowrap}
 .enemy-row .hp-numbers{font-size:8px}
 .enemy-row .rival-label{font-size:7px}
 .recruit-button{margin:0;padding:5px;font-size:9px;border-width:1px 0 0}
 .recruit-button span{display:none}
 .captive-card{position:relative;inset:auto;width:100%;min-height:65px;padding:8px 10px;display:grid;grid-template-columns:1fr auto;column-gap:10px;box-shadow:none}
 .captive-card .eyebrow{font-size:7px}
 .captive-card .captive-name{grid-column:1;font-size:17px;margin:3px 0}
 .captive-card p{display:none}
 .captive-card .secondary{grid-column:2;grid-row:1/3;align-self:center;width:auto;margin-right:22px;padding:10px}
 .action-dock{height:auto;min-height:0;padding:8px 10px max(8px,env(safe-area-inset-bottom));display:block;border-top:1px solid #bda57435;box-shadow:none}
 .active-character{display:none}
 .actions{display:flex;justify-content:stretch;gap:5px}
 .ability{flex:1;min-width:0;width:auto;max-width:none;height:66px;padding:3px 1px}
 .ability svg{width:22px;height:22px;margin:1px 0 3px}
 .ability .shortcut{display:none}
 .ability strong{font-size:8px;white-space:normal;line-height:1.1}
 .ability small{font-size:7px;margin-top:4px;white-space:nowrap}
 .turn-controls{width:100%;margin-top:7px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}
 .turn-summary{margin:0;font-size:9px;gap:9px;white-space:nowrap}
 .turn-controls .primary{width:auto;min-width:118px;min-height:36px;padding:8px 12px;font-size:9px}
 .turn-controls .primary span{font-size:14px;margin-left:12px}
 .bottom-sub{display:none}
 .target-panel{bottom:49px;padding:10px 12px;min-width:260px;max-width:calc(100% - 20px);max-height:calc(100% - 80px);overflow:auto}
 #toast{bottom:245px;font-size:11px;padding:10px 14px}
 .overlay{position:fixed;inset:60px 0 0;overflow:auto}
}
@media(max-width:390px){
 body:has(.game) header nav{gap:7px}
 body:has(.game) .content-guide-link{font-size:0}
 body:has(.game) .content-guide-link:after{content:'Guide';font-size:10px}
 .party-inspect{flex-basis:96px}
 .party-member .mini-portrait{display:none}
 .turn-summary{font-size:8px;gap:7px}
 .ability small{font-size:6px}
}
@media(max-width:1100px) and (max-height:600px) and (orientation:landscape){
 body:has(.game) header{height:44px}
 .game{height:calc(100dvh - 44px);display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:minmax(0,1fr) auto}
 .arena-stage{grid-column:1;grid-row:1/3;min-height:0}
 .combat-roster{grid-column:2;grid-row:1;min-height:0;overflow:auto;border-left:1px solid #bda57435;border-top:0}
 .game[data-roster=party] .party-panel,.game[data-roster=enemies] .enemies-panel{flex-direction:column}
 .party-inspect,.enemy-entry{flex:none;max-width:none}
 .action-dock{grid-column:2;grid-row:2;border-left:1px solid #bda57435}
 .ability{height:62px}
 .ability strong{font-size:7px}
 .ability small{font-size:6px}
 .turn-summary{font-size:7px;gap:5px}
 .turn-controls .primary{min-width:88px;font-size:8px;padding:8px}
 .turn-controls .primary span{margin-left:4px}
 .overlay{top:44px}
}
@media(max-width:570px){
 header .brand{white-space:nowrap;gap:8px;font-size:18px}
 header .brand small{display:none}
 header .brand svg{width:22px}
 header nav{gap:9px}
 header .fx-toggle{width:24px;padding:8px 0;font-size:21px;line-height:1}
 header .fx-toggle .fx-label{display:none}
 header #guideButton{font-size:0;width:23px;padding:8px 0}
 header #guideButton:after{content:'?';font-size:17px;color:#bdc5bd}
 header .content-guide-link{font-size:9px}
 .party-inspect:only-of-type{max-width:none}
}
@media(max-width:570px){.party-panel:has(.party-inspect:nth-of-type(3)) .mini-portrait{display:none}}
@media(max-width:390px){
 header .brand{font-size:16px;gap:6px;letter-spacing:1.5px}
 header nav{gap:6px}
 header .content-guide-link{font-size:0}
 header .content-guide-link:after{content:'Guide';font-size:9px}
 body:has(.game) header .brand{font-size:16px}
 body:has(.game) header nav{gap:6px}
}

/* Each champion's rolled rarity colors the glass, frame and portrait halo. */
.hero-choice{--champion-color:#b6c5be}
.champion-uncommon{--champion-color:#8cd4a7}
.champion-rare{--champion-color:#8abfff}
.champion-epic{--champion-color:#c6a1f3}
.champion-legendary{--champion-color:#f0c16e}
.hero-choice .hero-card{
 border:1px solid color-mix(in srgb,var(--champion-color) 67%,transparent);
 border-top:2px solid var(--champion-color);
 background:radial-gradient(ellipse at 50% 5%,color-mix(in srgb,var(--champion-color) 17%,transparent),transparent 62%),linear-gradient(160deg,#283333b0,#0d191be8 65%);
 box-shadow:inset 0 0 25px color-mix(in srgb,var(--champion-color) 5%,transparent),0 8px 32px color-mix(in srgb,var(--champion-color) 8%,transparent);
 backdrop-filter:blur(10px);
}
.hero-choice .hero-card:before{border-color:color-mix(in srgb,var(--champion-color) 18%,transparent)}
.hero-choice .hero-card:hover,.hero-choice .hero-card:focus-visible{
 border-color:var(--champion-color);
 box-shadow:0 0 0 1px color-mix(in srgb,var(--champion-color) 35%,transparent),0 14px 45px color-mix(in srgb,var(--champion-color) 20%,transparent);
}
.hero-choice .card-art:before{content:'';position:absolute;inset:12% -12% -15%;background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--champion-color) 30%,transparent),transparent 64%);pointer-events:none}
.hero-choice .card-art>div{position:relative}
.hero-choice .card-top{color:var(--champion-color)}
.hero-choice .card-top:before{content:'◇';margin-right:8px;color:var(--champion-color)}
.champion-epic .card-top:before,.champion-legendary .card-top:before{content:'✦'}
.hero-choice .choice-status{color:var(--champion-color);display:flex;align-items:center;justify-content:space-between;border-color:color-mix(in srgb,var(--champion-color) 28%,transparent)}
.choice-status>span{font-size:17px;transition:transform .2s}
.hero-card:hover .choice-status>span{transform:translateX(4px)}
.draft-start-hint{color:#becbc2;font-size:11px;line-height:1.5;white-space:nowrap}
.draft-start-hint>span{display:inline-block;color:var(--gold);font-size:19px;margin-left:9px}
@media(max-width:800px){.draft-tools{justify-content:space-between}.draft-start-hint{margin-right:auto;text-align:left}}
@media(max-width:570px){.draft-start-hint{font-size:10px}.draft-start-hint>span{margin-left:5px}.hero-choice .card-art:before{inset:6% -12% -20%}}
@media(prefers-reduced-motion:reduce){.choice-status>span{transition:none}}
.hero-choice .hero-card:hover:not(:disabled){background:radial-gradient(ellipse at 50% 5%,color-mix(in srgb,var(--champion-color) 17%,transparent),transparent 62%),linear-gradient(160deg,#283333b0,#0d191be8 65%)}
/* Class silhouettes stay readable in cards and above arena sprites. */
.class-emblem{display:inline-flex!important;align-items:center;justify-content:center;width:19px;height:19px;padding:0!important;margin:0 4px 0 0!important;vertical-align:middle;color:var(--class-color);border:1px solid color-mix(in srgb,var(--class-color) 55%,transparent);border-radius:50%;background:#08171c;flex:none}
.class-emblem svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.member-sub .class-emblem{width:15px;height:15px}.member-sub .class-emblem svg{width:10px;height:10px}
.pending-action{width:100%;display:flex;gap:7px;align-items:center;text-align:left;padding:7px 9px;margin:0 0 6px;border:1px solid #69cbb76b;background:linear-gradient(120deg,#183a36a6,#122428);color:#d3e9df;min-height:42px;border-radius:3px}
.pending-action>span:nth-child(2){flex:1;min-width:0}.pending-action b{display:block;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}.pending-action small{display:block;font-size:8px;color:#93bbae;margin-top:3px}.pending-action kbd{font:8px var(--sans);color:#b8c9b9;border:1px solid #7eaa9960;padding:3px;border-radius:2px}.pending-action .class-emblem{margin:0!important}.pending-action.is-focused{border-color:#e5b96f88;background:linear-gradient(120deg,#463b22a6,#122428)}
.game[data-cinematic=true] .arena-top{opacity:.08}.game[data-cinematic=true] :is(.combat-log,.hint,.camera-controls){opacity:0;pointer-events:none}.game[data-cinematic=true] .turn-pill{opacity:.3}
.arena-top,.party-panel,.enemies-panel,.combat-log,.hint{transition:opacity .22s}
@media(min-width:801px) and (min-height:601px){
 .action-dock{height:154px;padding-top:10px;padding-bottom:10px}.turn-controls{width:220px}.turn-controls .primary{padding:10px 12px;font-size:11px}.turn-summary{margin-bottom:7px}.bottom-sub{margin-top:5px}
 .game[data-cinematic=true] :is(.party-panel,.enemies-panel,.captive-card){opacity:0;pointer-events:none}
}
@media(max-width:800px),(max-width:1100px) and (max-height:600px){
 .turn-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,56%);gap:5px 8px}
 .turn-summary{grid-column:1;grid-row:1/3;flex-wrap:wrap;justify-content:flex-start;white-space:normal;align-content:center;line-height:1.5;margin:0}
 .pending-action{grid-column:2;grid-row:1;margin:0;padding:6px 7px;min-height:36px}.pending-action b{font-size:10px}.pending-action small{font-size:7px}.pending-action kbd{font-size:7px;padding:2px}.pending-action .class-emblem{width:17px;height:17px}
 .turn-controls #endTurn{grid-column:2;grid-row:2;width:100%;min-height:30px;padding:6px 9px}.turn-controls #endTurn span{margin-left:6px}.turn-controls .bottom-sub{display:none}
}
@media(max-width:1100px) and (max-height:600px) and (orientation:landscape){.turn-controls{grid-template-columns:minmax(0,1fr) minmax(145px,68%)}.pending-action{gap:5px}.pending-action b{font-size:9px}.pending-action kbd{display:none}}
