/* Recruitment animation is controlled explicitly by its visible skip checkbox. */
/* Source-matched card fire and one hall entrance per recruitment visit. */
.r-effect-preference{position:relative;display:inline-flex;align-items:center;gap:9px;margin-left:auto;min-height:40px;padding:7px 12px;background:#171811d9;border:1px solid #a78b535e;border-radius:2px;font-size:14px;color:#e7d5b1;cursor:pointer;white-space:nowrap;line-height:1.4}
.r-effect-preference input{position:absolute;width:1px;height:1px;opacity:0}
.r-effect-check{display:grid;place-items:center;width:19px;height:19px;flex:none;background:#11130f;box-shadow:inset 0 1px 4px #0008;border:1px solid #b79a68}
.r-effect-preference input:checked+.r-effect-check{background:#e0c58e;color:#222417;box-shadow:inset 0 0 0 2px #685636}
.r-effect-preference input:checked+.r-effect-check:after{content:'✓';font:bold 17px/1 sans-serif}
.r-effect-preference:has(input:focus-visible){outline:2px solid #ffebae;outline-offset:3px}
.r-stage.is-fast-reveal .r-card-inner{transition:transform .24s cubic-bezier(.36,.04,.36,1)}
.r-stage.is-fast-reveal .r-card-shell{animation:none!important}
@media(max-width:900px){.r-scene-top{gap:8px}.r-scene-top>span:first-child{font-size:14px}.r-effect-preference{font-size:13px;padding:6px 8px;gap:6px}}
@media(max-width:600px){.r-scene-top>span:first-child{flex:1 1 100%}.r-effect-preference{margin-left:0}.r-scene-top .r-pool-button{margin-left:auto}}
.r-stage{background:#20130d url(assets/recruit-hall-open-hd.webp) center/100% 100% no-repeat}
.r-entry-scene{position:absolute;inset:0;z-index:8;background:#20130d;pointer-events:none;overflow:hidden}
.r-entry-scene video{display:block;width:100%;height:100%;object-fit:fill}
.r-stage.is-entering>.r-stage-top,.r-stage.is-entering>.r-card-row,.r-stage.is-entering>.r-results-bottom{opacity:0}
.r-stage.is-dealing .r-card-shell{animation:r-deal-card .55s cubic-bezier(.15,.55,.16,1) both}
.r-stage.is-dealing .r-card-shell:nth-child(2){animation-delay:.035s}.r-stage.is-dealing .r-card-shell:nth-child(3){animation-delay:.07s}.r-stage.is-dealing .r-card-shell:nth-child(4){animation-delay:.105s}.r-stage.is-dealing .r-card-shell:nth-child(5){animation-delay:.14s}
@keyframes r-deal-card{0%{opacity:0;transform:translateY(30px) scale(.82);filter:brightness(.4)}65%{opacity:1;filter:brightness(1.2)}100%{transform:translateY(0) scale(1);filter:none}}
.r-card-inner{transition:transform .36s cubic-bezier(.12,.5,.2,1)}
.r-card-beam{inset:-5% -5%;background:none;box-shadow:none;border:2px solid var(--glow);mix-blend-mode:screen;filter:drop-shadow(0 0 5px var(--glow));transform:none}
.is-revealing .r-card-beam{animation:r-rectangle-burn .72s ease-out both}
.r-card-flare{inset:-18% -19%;width:138%;height:136%;background:radial-gradient(ellipse at 5% 5%,#fff8 0%,var(--glow) 1%,transparent 8%),radial-gradient(ellipse at 95% 5%,#fff 0%,var(--glow) 1%,transparent 10%),radial-gradient(ellipse at 5% 94%,#fff 0%,var(--glow) 1%,transparent 9%),radial-gradient(ellipse at 95% 94%,#fff8 0%,var(--glow) 1%,transparent 9%);filter:blur(1px)}
.is-revealing .r-card-flare{animation:r-corner-flames .65s ease-out both}
.r-card-dust{inset:-2%;border:1px solid var(--bright);box-shadow:0 0 6px var(--bright),0 0 18px var(--glow),inset 0 0 20px var(--dim);background:linear-gradient(45deg,transparent 38%,var(--glow) 48%,#fff7 50%,var(--glow) 52%,transparent 63%);mix-blend-mode:screen;filter:blur(.6px)}
.is-revealing .r-card-dust{animation:r-frame-light .6s ease-out both .07s}
.is-revealing.rarity-5 .r-card-front,.is-revealing.rarity-5 .r-card-back{animation:r-gold-card-fill .72s ease-out both}
@keyframes r-rectangle-burn{0%{opacity:0;transform:scale(.96);box-shadow:0 0 0 transparent}20%{opacity:1;box-shadow:0 0 10px var(--bright),0 0 23px var(--glow),inset 0 0 17px var(--glow)}55%{opacity:1;transform:scale(1.06);box-shadow:0 0 13px var(--bright),0 0 30px var(--glow)}100%{opacity:0;transform:scale(1.12);box-shadow:0 0 4px var(--glow)}}
@keyframes r-corner-flames{0%{opacity:0;transform:scale(.9)}24%{opacity:1;transform:scale(1.03)}65%{opacity:.85;transform:scale(1.09)}100%{opacity:0;transform:scale(1.17)}}
@keyframes r-frame-light{0%{opacity:0;background-position:0 100%}25%{opacity:1}60%{opacity:.9}100%{opacity:0;transform:scale(1.11)}}
@keyframes r-gold-card-fill{0%{filter:brightness(1)}40%{filter:brightness(1.6) saturate(1.3)}70%{filter:brightness(2.1)}100%{filter:brightness(1)}}
.r-reference-cinematic{background:#090906;isolation:isolate;overflow:hidden}
.r-cg-blackout{position:absolute;inset:0;background:#050604;animation:r-cg-darken .32s both;z-index:0}
.r-source-cinematic{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#050604;z-index:1;animation:r-source-in .35s ease-out both}
.r-cg-scene{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 29% 57%,#a88a4d3d,transparent 48%),radial-gradient(ellipse at 79% 39%,#5947293d,transparent 58%),#080908;animation:r-source-in .46s ease-out both}
.r-cg-medallion{position:absolute;left:-4%;top:12%;width:53%;aspect-ratio:1;border:8px double #a89a6844;border-radius:50%;box-shadow:inset 0 0 0 8px #1e211766,inset 0 0 0 10px #b7a16b2e,0 0 0 3px #3c40317a;transform:rotate(-12deg);opacity:.85}
.r-cg-medallion:before,.r-cg-medallion:after{content:'';position:absolute;inset:4%;border:2px dashed #99865d44;border-radius:50%}.r-cg-medallion:after{inset:9%;border-style:double;border-width:6px;transform:rotate(20deg)}
.r-cg-medallion>span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:clamp(210px,32vw,630px);line-height:1;color:#dcc08c8c;filter:drop-shadow(0 0 7px #e7c47444);transform:rotate(10deg)}
.r-cg-hero{position:absolute;left:7%;bottom:-4%;width:42%;height:99%;z-index:2;animation:r-cg-hero-in .7s cubic-bezier(.12,.65,.15,1) both;filter:drop-shadow(0 0 25px #a8844840)}
.r-cg-window{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(0deg,transparent,black 15% 86%,transparent),radial-gradient(ellipse at center,#000 46%,transparent 76%);mask-composite:intersect}
.r-cg-window>img,.r-cg-window>.art-window{position:absolute;max-width:none;width:125%;height:142%;left:-16%;top:-9%;object-fit:fill;display:block;filter:none}
.r-cg-window>.art-window>img{filter:none}
.r-cg-ghost{position:absolute;left:43%;top:-12%;width:66%;height:124%;opacity:.13;filter:sepia(.8) grayscale(.75);transform:scale(1.14);mix-blend-mode:screen}
.r-cg-name{position:absolute;left:46.3%;top:17%;z-index:3;writing-mode:vertical-rl;text-orientation:upright;color:#d28b53;text-shadow:1px 2px 3px #000;font-size:clamp(25px,3.4vw,53px);letter-spacing:.13em;line-height:1.3;padding:0 5px 25px;background:linear-gradient(#0b0c08e3,#0a0b07ba 70%,transparent)}
.r-cg-name>small{writing-mode:horizontal-tb;color:#eee3c6;font:clamp(23px,2.8vw,43px) Georgia,serif;letter-spacing:0;margin-bottom:15px;text-align:center}
.r-cg-information{position:absolute;left:53%;right:4%;top:12%;bottom:11%;z-index:3;color:#ddcca5;padding:16px 20px;background:linear-gradient(100deg,#3f301e9e,#3127175e 60%,transparent);mask-image:linear-gradient(0deg,transparent,black 7% 95%,transparent);animation:r-cg-panel-in .6s ease-out both .1s}
.r-cg-information h3{font-size:clamp(16px,1.8vw,28px);font-weight:400;margin:0 0 9px;color:#e1c487}
.r-cg-aptitudes{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid #bbaa7066}
.r-cg-aptitudes>span{font-size:clamp(12px,1.6vw,24px);padding:3px 7px;background:linear-gradient(#57316cc9,#946cac80);border:1px solid #978b6755;white-space:nowrap}
.r-cg-aptitudes>span:nth-child(2){background:linear-gradient(#344f73c9,#6796b380)}.r-cg-aptitudes>span:nth-child(3){background:linear-gradient(#7b4936c9,#bc8c6880)}.r-cg-aptitudes>span:nth-child(4){background:linear-gradient(#49628cc9,#7394c180)}.r-cg-aptitudes>span:nth-child(5){background:linear-gradient(#3a6750c9,#76a77880)}
.r-cg-aptitudes b{font-weight:400;color:#f1e2b9;margin-left:5px}
.r-cg-information dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px;margin:15px 0 18px;padding-bottom:14px;border-bottom:1px solid #a18c5266}
.r-cg-information dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:7px;padding:7px 0;font-size:clamp(14px,1.8vw,28px)}
.r-cg-information dt{color:#d2b876;white-space:nowrap}.r-cg-information dd{margin:0;color:#eddfbf;white-space:nowrap;font-variant-numeric:tabular-nums}
.r-cg-information dd small{font-size:.68em;color:#8ebc98;margin-left:5px;font-family:inherit}
.r-cg-skill{display:flex;align-items:center;gap:13px;padding:9px 0;border-bottom:1px solid #b6985455;background:linear-gradient(90deg,#38445888,transparent)}
.r-cg-skill-grade{width:34px;height:34px;border:2px solid #c8bda0;border-radius:50%;display:grid;place-items:center;font-size:25px;color:#e5dbc6;flex:none}.r-cg-skill h4{margin:0;font-size:clamp(17px,1.9vw,30px);font-weight:400;color:#dfd5bd}.r-cg-skill>span:last-child{margin-left:auto;font-size:16px;white-space:nowrap}
.r-cg-skill-copy{font-size:clamp(13px,1.4vw,21px);line-height:1.7;color:#d5c6a5;margin-top:15px;max-height:5.2em;overflow:hidden}
.r-cg-earned{margin-top:20px;display:flex;flex-direction:column;gap:8px}.r-cg-earned>span{font-size:17px;color:#bb9d64}.r-cg-earned>strong{font-weight:400;font-size:clamp(28px,3.5vw,53px);color:#ead5a8;text-shadow:0 0 20px #d4ad6744}.r-cg-earned>small{font-family:inherit;color:#b1a385;font-size:15px}
.r-cg-dust{z-index:5;mix-blend-mode:screen}.r-cg-dust i{width:6px;height:9px;box-shadow:0 0 4px #c7a276;border-radius:25% 70%;background:#cbb08a;animation-duration:3.3s;opacity:0;filter:blur(.7px)}
.r-cg-burst{position:absolute;inset:0;z-index:6;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse at 33% 53%,#fff4cbef 0%,#edb651b8 8%,#a05a1022 36%,transparent 65%);animation:r-cg-burst .72s ease-out both}
.r-reference-cinematic .r-cg-continue{z-index:10;color:#c6b699;animation:none;padding-bottom:25px;font-size:16px;background:linear-gradient(0deg,#080b07c9,transparent 13%)}
.r-reference-cinematic.is-rare .r-cg-medallion{border-color:#c5a35c66;box-shadow:inset 0 0 55px #cea54d22,0 0 30px #a3814422}.r-reference-cinematic.is-rare .r-cg-earned>span{color:#f0c15b}
@keyframes r-cg-darken{from{opacity:0}to{opacity:1}}
@keyframes r-source-in{from{opacity:0;transform:scale(1.07);filter:brightness(1.8)}to{opacity:1;transform:scale(1);filter:none}}
@keyframes r-cg-hero-in{0%{opacity:0;transform:translateX(-9%) scale(1.08);filter:brightness(2.2)}55%{opacity:1}100%{opacity:1;transform:none;filter:none}}
@keyframes r-cg-panel-in{from{opacity:0;transform:translateX(5%)}to{opacity:1;transform:none}}
@keyframes r-cg-burst{0%{opacity:0;transform:scale(.8)}28%{opacity:.9}100%{opacity:0;transform:scale(1.25)}}
@media(max-width:900px){.r-cg-information{left:51%;right:2%;padding:12px;top:15%;bottom:15%}.r-cg-information dd small{display:none}.r-cg-aptitudes{gap:4px;padding-bottom:9px}.r-cg-aptitudes>span{padding:3px 5px;font-size:13px}.r-cg-information dl{gap:0 9px;margin:10px 0}.r-cg-information dl>div{padding:6px 0;font-size:15px}.r-cg-skill-grade{width:25px;height:25px;font-size:19px}.r-cg-skill{gap:7px}.r-cg-skill>span:last-child{display:none}.r-cg-earned{margin-top:15px;gap:6px}.r-cg-earned>span{font-size:13px}.r-cg-earned>small{font-size:12px}.r-cg-name{left:44%;top:19%;font-size:28px}.r-cg-hero{left:1%;width:46%;height:87%;bottom:6%}.r-cg-medallion{top:26%;width:48%}.r-cg-medallion>span{font-size:32vw}}
@media(max-width:600px){.r-source-cinematic{object-fit:contain}.r-cg-scene{inset:8% 0 6%}.r-cg-hero{width:68%;height:65%;top:0;left:-6%}.r-cg-medallion{width:69%;top:4%;left:-12%}.r-cg-medallion>span{font-size:48vw}.r-cg-name{left:59%;top:11%;font-size:27px}.r-cg-information{left:6%;right:6%;top:55%;bottom:0;padding:10px 12px}.r-cg-information h3{font-size:16px}.r-cg-aptitudes{gap:6px}.r-cg-aptitudes>span{font-size:12px}.r-cg-information dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px;margin:7px 0;padding-bottom:6px}.r-cg-information dl>div{font-size:12px;gap:4px;padding:4px 0}.r-cg-skill{padding:5px 0}.r-cg-skill h4{font-size:16px}.r-cg-skill-copy{display:none}.r-cg-earned{margin-top:8px;gap:4px;flex-direction:row;align-items:center;flex-wrap:wrap}.r-cg-earned>strong{font-size:21px}.r-cg-earned>small{font-size:11px}.r-cg-earned>span{font-size:12px;margin-right:8px}.r-reference-cinematic .r-cg-continue{font-size:13px;padding-bottom:22px}.r-cg-ghost{left:20%;top:0;width:90%;height:70%}}
@media(max-height:550px) and (min-width:600px){.r-cg-information{top:7%;bottom:8%}.r-cg-information h3{font-size:15px}.r-cg-aptitudes>span{font-size:12px}.r-cg-information dl>div{padding:4px 0;font-size:14px}.r-cg-information dl{margin:7px 0;padding-bottom:8px}.r-cg-skill-copy{display:none}.r-cg-earned{margin-top:10px;gap:4px}.r-cg-earned>strong{font-size:28px}.r-cg-earned>span{font-size:12px}.r-cg-name{top:16%;font-size:29px}.r-cg-hero{bottom:-7%;height:110%}.r-reference-cinematic .r-cg-continue{font-size:13px;padding-bottom:13px}}

.r-source-edge{position:absolute;left:-18.5484%;top:-13.8381%;width:137.0968%;height:126.3708%;max-width:none;z-index:7;pointer-events:none;mix-blend-mode:screen;object-fit:fill;background:transparent}.rarity-4 .r-source-edge{filter:hue-rotate(235deg) saturate(.8)}.is-revealing:has(.r-source-edge) .r-card-beam,.is-revealing:has(.r-source-edge) .r-card-dust,.is-revealing:has(.r-source-edge) .r-card-flare{opacity:.4;animation-duration:.6s}

/* Genuine alpha in the atlas: no opaque black plate or blend-mode dependency.
   Fire sits over its own card and beneath neighboring cards. */
.r-native-flame{position:absolute;z-index:4;pointer-events:none;background-repeat:no-repeat;background-color:transparent;will-change:background-position;image-rendering:auto;filter:blur(var(--flame-softness,.8px))}
.r-gold-transition{position:absolute;inset:0;z-index:20;pointer-events:none;overflow:hidden}
.r-gold-wash,.r-gold-shade,.r-gold-veil{position:absolute;inset:0;pointer-events:none}
.r-gold-wash{background:radial-gradient(ellipse at var(--gold-x) var(--gold-y),#fff1a670 0%,#ffdc6252 16%,#ffc52f33 35%,#ffbe1914 59%,transparent 84%),linear-gradient(#ffd86a1f,#ffd86a1f);animation:r-gold-room-light .6s linear both}
.r-gold-shade{background:radial-gradient(ellipse at var(--gold-x) var(--gold-y),transparent 10%,#160b0333 56%,#06040299 100%);animation:r-gold-room-shade .6s linear both}
.r-gold-veil{background:#000;animation:r-gold-room-fade .6s linear both}
@keyframes r-gold-room-light{0%,8%{opacity:0}22%{opacity:.14}36%{opacity:.75}49%{opacity:1}65%{opacity:.73}81%{opacity:.3}100%{opacity:0}}
@keyframes r-gold-room-shade{0%,45%{opacity:0}75%{opacity:.28}100%{opacity:1}}
@keyframes r-gold-room-fade{0%,66%{opacity:0}80%{opacity:.08}88%{opacity:.3}95%{opacity:.7}100%{opacity:1}}
.r-card-shell .r-draw-card{z-index:5;perspective:6000px}
.r-card-shell.is-revealing .r-draw-card{z-index:3}
.r-card-inner{transition:transform .3s cubic-bezier(.25,.2,.5,1)}
.r-card-shell.has-native-flame .r-card-beam,.r-card-shell.has-native-flame .r-card-flare,.r-card-shell.has-native-flame .r-card-dust,.r-card-shell.rarity-3 .r-card-beam,.r-card-shell.rarity-3 .r-card-flare,.r-card-shell.rarity-3 .r-card-dust{display:none}
.r-card-shell.has-native-flame .r-card-front,.r-card-shell.has-native-flame .r-card-back{animation:none}
.r-stage.is-dealing .r-card-shell{animation-duration:.35s}
.r-stage.is-dealing .r-card-shell:nth-child(2){animation-delay:.025s}.r-stage.is-dealing .r-card-shell:nth-child(3){animation-delay:.05s}.r-stage.is-dealing .r-card-shell:nth-child(4){animation-delay:.075s}.r-stage.is-dealing .r-card-shell:nth-child(5){animation-delay:.1s}
/* Gold cuts to black, then the officer enters. The source already includes
   its own flash, camera motion and particles; no second bright overlay. */
.r-reference-cinematic,.r-cg-blackout,.r-source-cinematic{background:#000}
.r-source-cinematic,.r-cg-blackout{animation:none}
.r-cg-scene{animation:r-native-scene-in .2s linear both .067s}
.r-cg-hero{animation:r-native-officer-in .42s cubic-bezier(.16,.7,.25,1) both .067s}
.r-cg-information{animation:r-cg-panel-in .38s ease-out both .9s}
.r-cg-name{animation:r-cg-panel-in .28s ease-out both .8s}
.r-cg-ghost{left:-9%;top:-17%;width:70%;height:130%;opacity:.16}
.r-cg-medallion{animation:r-native-seal-in 1.25s ease-out both}
@keyframes r-native-seal-in{0%{left:57%;top:13%;width:37%;opacity:0;transform:scale(1.12)}16%,57%{left:57%;top:13%;width:37%;opacity:.85;transform:scale(1)}100%{left:-4%;top:12%;width:53%;opacity:.3;transform:rotate(-12deg)}}
.r-cg-dust i{width:3px;height:6px;opacity:0;filter:blur(.35px);animation-delay:calc(var(--d) + .25s)}
@keyframes r-native-scene-in{from{opacity:0}to{opacity:1}}
@keyframes r-native-officer-in{from{opacity:0;transform:translateX(-3%) scale(1.015)}to{opacity:1;transform:none}}
@media(max-width:600px){.r-cg-medallion{animation:none}.r-cg-ghost{width:80%;height:75%;left:-10%;top:-12%}}

/* Speed affects only card turns; native sprite and cinematic timings stay intact. */
.r-stage.is-double-speed .r-card-inner{transition-duration:.15s}
