.lq-pose-monk{background-image:url('assets/monk-bald-motion.webp')}.lq-pose-mage{background-image:url('assets/mage-motion.webp')}.lq-pose-arca{background-image:url('assets/arca-motion.webp')}
.lq-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:1000px;margin:10px auto;padding:10px}.lq-gallery figure{margin:0;border:1px solid #dac99544;border-radius:18px;background:radial-gradient(ellipse at 50% 70%,#344563,#121a2e);padding:8px}.lq-gallery .lq-body{height:auto;aspect-ratio:3/4}.lq-gallery figcaption{text-align:center;font-size:12px;color:#eee0c1;min-height:32px}
.lq-gate{position:relative;isolation:isolate;display:grid;justify-items:center;overflow:hidden;padding:12px;border-radius:18px;background:radial-gradient(ellipse,#56477366,#101a2c 80%);color:#f6e8c5}.lq-gate .lq-hero{position:relative;left:auto;height:260px;width:195px;z-index:2;animation:lq-arca-entry 2.4s both}.lq-gate .lq-body{height:100%}.lq-gate strong{font-size:15px;z-index:2}.lq-gate p{font-size:12px;color:#c4c4df;z-index:2}.lq-portal{position:absolute;width:200px;height:265px;border:2px solid #e8d8a7;border-radius:50% 50% 15% 15%;top:12px;box-shadow:0 0 28px #d2b5ff66,inset 0 0 35px #b894df55;background:radial-gradient(ellipse,#bba4f333,transparent 70%);animation:lq-gate-glow 4s infinite alternate}.lq-gate-preview{max-width:520px;margin:auto;padding:14px;border:1px solid #c1ab7b66;border-radius:20px;background:#111a2e}.lq-gate-preview>button{display:block;margin:0 0 10px auto}
.lq-cast-orb{position:absolute;z-index:8;left:23%;top:38%;width:30px;height:30px;border-radius:50%;opacity:0;background:radial-gradient(circle,#fff,#9addff 30%,#527de1 60%,transparent 72%);box-shadow:0 0 20px #83ceff}
.lq-cinema[data-actor=monk] .lq-cast-orb{background:radial-gradient(circle,#fff,#dbffd3 30%,#62b891 60%,transparent 72%);box-shadow:0 0 24px #aeffbd}
.lq-cinema:is([data-actor=monk],[data-actor=mage]) .lq-slash{display:none}.lq-cinema:is([data-actor=monk],[data-actor=mage])[data-phase=attack] .lq-cast-orb{animation:lq-cast-flight var(--swing-ms,180ms) linear both}
.lq-cinema:is([data-actor=monk],[data-actor=mage])[data-phase=prepare] .lq-cast-orb{animation:lq-cast-charge .5s both}.lq-cinema:is([data-actor=monk],[data-actor=mage])[data-phase=attack] .lq-hero{animation:lq-caster-step var(--swing-ms,180ms) both}.lq-cinema:is([data-actor=monk],[data-actor=mage])[data-phase=impact] .lq-hero{animation:lq-caster-return .5s both}.lq-cinema:is([data-actor=monk],[data-actor=mage])[data-phase=impact] .lq-shockwave{animation:lq-wave .5s both}
@keyframes lq-cast-flight{0%{opacity:1}90%{opacity:1}100%{opacity:0;transform:translateX(170px) scale(1.6)}}@keyframes lq-cast-charge{from{opacity:0;transform:scale(.1)}to{opacity:.75;transform:scale(.8)}}@keyframes lq-caster-step{to{transform:translateX(9%)}}@keyframes lq-caster-return{from{transform:translateX(9%)}}@keyframes lq-arca-entry{from{opacity:0;transform:translateY(18px);filter:brightness(2)}50%{opacity:1}to{opacity:1;transform:none;filter:none}}@keyframes lq-gate-glow{to{box-shadow:0 0 45px #d2b5ff88,inset 0 0 45px #b894df77}}
@media(max-width:600px){.lq-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.lq-gallery figcaption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.lq-gate *,.lq-ambient *{animation:none!important}.lq-cast-orb{display:none}}
.rebirth-preview>.lq-pose{flex:0 0 84px;width:84px;height:112px}.intro-preview>.lq-pose{width:150px;height:200px;margin:auto}
/* Exclude adjacent-cell staff tips in the original painted casting atlas. */
.lq-pose-mage:not(.lq-female):is([data-frame="5"],[data-frame="6"]){clip-path:polygon(20% 0,100% 0,100% 100%,0 100%,0 55%,20% 55%)}

.lq-pose-swordsman{background-image:url('assets/swordsman-chibi.webp')}.lq-pose-shadow{background-image:url('assets/shadow-chibi.webp')}

/* Independent protagonist, acting companion, and recipient. */
.lq-performer{position:absolute;left:2%;bottom:100px;width:29%;height:168px;z-index:4;opacity:0;pointer-events:none}
.lq-performer small{position:absolute;bottom:-12px;left:0;right:0;text-align:center;font-size:10px;color:#fff3ce;text-shadow:0 2px 4px #000}
.lq-has-performer .lq-performer{opacity:1}
.lq-has-performer .lq-hero{width:34%;height:178px;bottom:20px;left:1%;animation:none!important;transform:none!important;filter:none}
.lq-cinema[data-active-slot=performer][data-phase=prepare] .lq-performer{animation:lq-ready .65s both}
.lq-cinema[data-active-slot=performer][data-phase=attack] .lq-performer{animation:lq-dash .26s both}
.lq-cinema[data-active-slot=performer][data-phase=impact] .lq-performer{animation:lq-return .4s both}
.lq-cinema[data-active-slot=performer][data-phase=heal] .lq-performer{animation:lq-pray 1s both}
.lq-cinema[data-target-slot]:not([data-target-slot=hero])[data-phase=counter] .lq-hero,
.lq-cinema[data-target-slot]:not([data-target-slot=hero])[data-phase=dodge] .lq-hero,
.lq-cinema[data-target-slot]:not([data-target-slot=hero])[data-phase=defeat] .lq-hero{animation:none;transform:none}
.lq-cinema[data-target-slot=performer][data-phase=counter]:not(.lq-missed) .lq-performer,
.lq-cinema[data-target-slot=ally][data-phase=counter]:not(.lq-missed) .lq-ally,
.lq-cinema[data-target-slot=heal-target][data-phase=counter]:not(.lq-missed) .lq-heal-target{animation:lq-hit .45s}
.lq-cinema[data-target-slot=performer]{--recipient-x:13%;--recipient-y:17%}
.lq-cinema[data-target-slot=hero]{--recipient-x:10%;--recipient-y:43%}
.lq-cinema[data-target-slot=ally]{--recipient-x:32%;--recipient-y:32%}
.lq-cinema[data-target-slot=heal-target]{--recipient-x:35%;--recipient-y:43%}
.lq-cinema[data-target-slot] .lq-counter-number,
.lq-cinema[data-target-slot][data-phase=heal] .lq-number{left:var(--recipient-x);top:var(--recipient-y);font-size:24px}
.lq-cinema[data-target-slot] .lq-light{background:radial-gradient(ellipse at var(--recipient-x) var(--recipient-y),#acffcd99,transparent 48%)}
.lq-unknown{display:grid;place-items:center;width:100%;height:100%;font-size:70px;color:#b4c6df;background:radial-gradient(ellipse,#a7c5ff22,transparent 65%)}
.lq-heal-target{left:30%;width:28%;height:154px;bottom:25px}
.lq-ally{width:32%;height:190px;left:12%;bottom:30px}
.lq-guarding .lq-hero{filter:none;transform:none}
@media(max-height:700px){.lq-performer{height:138px;bottom:80px}.lq-has-performer .lq-hero{height:145px}.lq-ally{height:160px}.lq-heal-target{height:135px}}
@media(prefers-reduced-motion:reduce){.lq-performer,.lq-ally,.lq-heal-target{animation:none!important}}
.lq-performer{left:22%;bottom:150px;width:27%;height:145px}
.lq-has-performer .lq-hero{height:148px;bottom:18px}
.lq-cinema[data-target-slot=performer]{--recipient-x:28%;--recipient-y:12%}
@media(max-height:700px){.lq-performer{bottom:117px;height:105px}.lq-has-performer .lq-hero{height:112px}}
.lq-cinema[data-target-slot=performer][data-phase=dodge] .lq-performer,
.lq-cinema[data-target-slot=heal-target][data-phase=dodge] .lq-heal-target{animation:lq-evade .5s}
.lq-cinema[data-target-slot=performer][data-phase=defeat] .lq-performer,
.lq-cinema[data-target-slot=ally][data-phase=defeat] .lq-ally,
.lq-cinema[data-target-slot=heal-target][data-phase=defeat] .lq-heal-target{animation:lq-fall .8s both}
.lq-cinema[data-phase=shield] .lq-shield{left:var(--recipient-x,18%)}
.appearance-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
.appearance-picker .hero-face{height:140px}
.appearance-picker .lq-pose{width:100%;height:100%}
.appearance-picker button:disabled{opacity:.45;cursor:default}
.rebirth-art{display:block;width:100px;height:140px;flex:none}.rebirth-art>.lq-pose{width:100%;height:100%}
.roster-avatar>.lq-pose,.roster-avatar>img,.roster-avatar>.hero-new-art{display:block;width:60px;height:80px;object-fit:contain}
.lq-pose-monk.lq-female{background-image:url('assets/monk-female-motion.webp')}
.lq-pose-swordsman.lq-female{background-image:url('assets/swordsman-female-motion.webp')}
.lq-pose-mage.lq-female{background-image:url('assets/mage-female-motion.webp')}
/* Isolate long weapons from adjacent atlas silhouettes without altering the source art. */
.lq-pose-mage.lq-female:is([data-frame="4"],[data-frame="5"],[data-frame="6"]){clip-path:polygon(16% 0,84% 0,84% 34%,100% 34%,100% 60%,82% 60%,82% 100%,0 100%,0 62%,14% 62%)}
.lq-pose-monk.lq-female[data-frame="5"]{clip-path:polygon(0 0,100% 0,100% 56%,92% 56%,92% 100%,0 100%)}
/* Class-specific rank effects; hits and numeric amounts come from the original timeline. */
.lq-spell-seal,.lq-spell-column{pointer-events:none;position:absolute;opacity:0;z-index:7}
.lq-spell-seal{left:48%;top:30%;width:42%;aspect-ratio:1;border:3px double #d6bdff;border-radius:50%;display:grid;place-items:center;font-size:80px;color:#edd7ff;text-shadow:0 0 15px currentColor;box-shadow:0 0 24px #b38aff88,inset 0 0 20px #a983ff66}
.lq-spell-seal:after{content:'';position:absolute;inset:12%;border:2px solid currentColor;transform:rotate(45deg)}
.lq-spell-column{left:59%;top:0;width:22%;height:100%;background:linear-gradient(90deg,transparent,#ffe998bb,#fffde8,#ffe998bb,transparent);filter:drop-shadow(0 0 18px #f8df99)}
.lq-cinema[data-actor=mage][data-tier=middle] .lq-cast-orb{background:radial-gradient(circle,#fff6ba,#ffc146 25%,#f95d2c 60%,transparent 73%);box-shadow:0 0 24px #ff8f36}
.lq-cinema[data-actor=mage][data-tier=middle][data-phase=impact] .lq-shockwave{border-color:#ffb368;box-shadow:0 0 32px #ff7428;animation:lq-wave-large .6s both}
.lq-cinema[data-actor=mage]:is([data-tier=advanced],[data-tier=ultimate])[data-phase=prepare] .lq-spell-seal{animation:lq-seal-charge .8s both}
.lq-cinema[data-actor=mage][data-tier=advanced][data-phase=impact] .lq-spell-column{left:51%;width:34%;background:#e0cdff;clip-path:polygon(44% 0,88% 0,54% 36%,92% 36%,20% 100%,41% 57%,7% 57%);animation:lq-lightning .4s both;filter:drop-shadow(0 0 18px #a77aff)}
.lq-cinema[data-actor=mage][data-tier=ultimate][data-phase=impact] .lq-spell-seal{background:radial-gradient(circle,#fff,#e7ceff 25%,#aa62ff88 52%,transparent 70%);animation:lq-magic-burst 1s both}
.lq-cinema[data-actor=monk]:is([data-tier=advanced],[data-tier=ultimate]) .lq-spell-seal{color:#ffedb1;border-color:#ffedb1;box-shadow:0 0 25px #ffd48688,inset 0 0 30px #f5edb366}
.lq-cinema[data-actor=monk][data-tier=advanced][data-phase=impact] .lq-spell-seal{animation:lq-sacred-ring .6s both}
.lq-cinema[data-actor=monk][data-tier=ultimate][data-phase=prepare] .lq-spell-seal{animation:lq-seal-charge 1.4s both}
.lq-cinema[data-actor=monk][data-tier=ultimate][data-phase=impact] .lq-spell-column{animation:lq-golden-column 1s both}
@keyframes lq-seal-charge{from{opacity:0;transform:rotate(-60deg) scale(.3)}to{opacity:.9;transform:rotate(30deg)}}
@keyframes lq-lightning{0%,40%,75%{opacity:1}25%,60%,100%{opacity:0}}
@keyframes lq-magic-burst{0%{opacity:1;transform:scale(.3)}40%{opacity:1;transform:scale(1.6) rotate(50deg)}100%{opacity:0;transform:scale(2.2) rotate(90deg)}}
@keyframes lq-sacred-ring{0%{opacity:0;transform:scale(.25)}40%{opacity:1}100%{opacity:0;transform:scale(1.7) rotate(70deg)}}
@keyframes lq-golden-column{0%{opacity:0;transform:scaleX(.1)}20%,65%{opacity:.95;transform:scaleX(1.4)}100%{opacity:0;transform:scaleX(2)}}
@media(prefers-reduced-motion:reduce){.lq-spell-seal,.lq-spell-column{animation:none!important;display:none}}
.roster-avatar{width:60px;height:80px;flex-shrink:0}
.lq-job-projectile{position:absolute;left:24%;top:42%;width:65px;height:3px;opacity:0;z-index:8;background:#ffe8ac;box-shadow:0 0 8px #c9ffad}
.lq-job-projectile:after{content:'';position:absolute;right:-8px;top:-5px;border-left:12px solid #fff1bd;border-top:6px solid transparent;border-bottom:6px solid transparent}
.lq-cinema[data-actor=archer] .lq-slash{display:none}
.lq-cinema[data-actor=archer][data-phase=attack] .lq-job-projectile{animation:lq-arrow-flight var(--swing-ms,180ms) linear both}
.lq-cinema[data-actor=archer][data-tier=advanced] .lq-job-projectile{box-shadow:0 -22px 0 #d8ffc4,0 22px 0 #d8ffc4,0 0 15px #a8ff8f}
.lq-cinema[data-actor=archer][data-tier=ultimate] .lq-job-projectile{height:12px;width:100px;background:linear-gradient(90deg,transparent,#d9ffc2,#fff);filter:drop-shadow(0 0 10px #d7ffab)}
.lq-cinema[data-actor=archer][data-phase=attack] .lq-hero{animation:lq-caster-step var(--swing-ms,180ms) both}
@keyframes lq-arrow-flight{0%{opacity:1;transform:translateX(0)}85%{opacity:1}100%{opacity:0;transform:translateX(150px)}}
@media(prefers-reduced-motion:reduce){.lq-job-projectile{display:none}}
.lq-pose-archer{background-image:url('assets/archer-male-motion.webp')}
.lq-pose-archer.lq-female{background-image:url('assets/archer-female-motion.webp')}

.lq-pose-fighter{background-image:url('assets/fighter-male-motion.webp')}
.lq-pose-fighter.lq-female{background-image:url('assets/fighter-female-motion.webp')}

.lq-pose-samurai{background-image:url('assets/samurai-male-motion.webp')}
.lq-pose-samurai.lq-female{background-image:url('assets/samurai-female-motion.webp')}
.lq-cinema[data-actor=fighter] .lq-slash{display:none}
.lq-cinema[data-actor=fighter] .lq-shockwave{border-color:#fff0b0;box-shadow:0 0 20px #ff7540,inset 0 0 15px #ffb65b}
.lq-cinema[data-actor=fighter][data-phase=impact] .lq-shockwave{animation:lq-punch-impact .4s both}
.lq-cinema[data-actor=fighter][data-tier=ultimate][data-phase=impact] .lq-shockwave{animation:lq-punch-barrage .85s both}
.lq-cinema[data-actor=samurai] .lq-slash{height:5px;transform:rotate(-8deg);background:#fff4ed;box-shadow:0 0 12px #fff,0 0 30px #f77998}
.lq-cinema[data-actor=samurai][data-tier=ultimate] .lq-slash{height:15px;box-shadow:0 0 24px #fff,0 0 65px #ff8b9c}
.lq-cinema[data-actor=samurai][data-phase=impact] .lq-slash{animation:lq-iai-flash .35s both}
.lq-cinema[data-actor=shinobi] .lq-slash{background:#f0dbff;box-shadow:0 0 20px #b899ff}
.lq-cinema[data-actor=shinobi]:not([data-tier=normal]) .lq-job-projectile{height:35px;width:35px;background:#ddd1fb;box-shadow:none;clip-path:polygon(50% 0,61% 34%,100% 50%,64% 62%,50% 100%,38% 64%,0 50%,34% 38%)}
.lq-cinema[data-actor=shinobi]:not([data-tier=normal])[data-phase=attack] .lq-job-projectile{animation:lq-shuriken-flight var(--swing-ms,180ms) both}
.lq-cinema[data-actor=shinobi] .lq-afterimage{inset:5% 45% 5% 1%;background:none;clip-path:none;filter:sepia(.7) hue-rotate(210deg);z-index:2}
.lq-cinema[data-actor=shinobi] .lq-afterimage>.lq-pose{width:100%;height:100%}
.lq-cinema[data-actor=shinobi]:is([data-tier=advanced],[data-tier=ultimate])[data-phase=attack] .lq-afterimage{animation:lq-ninja-echo .45s both}
.lq-cinema[data-actor=shinobi][data-phase=dodge] .lq-afterimage{animation:lq-ninja-echo .5s both}
@keyframes lq-punch-impact{0%{opacity:1;transform:scale(.2)}50%{opacity:1;transform:scale(.8)}100%{opacity:0;transform:scale(1.3)}}
@keyframes lq-punch-barrage{0%,40%,80%{opacity:1;transform:translate(-15px,-20px) scale(.8)}20%,60%{opacity:.7;transform:translate(30px,15px) scale(1.5)}100%{opacity:0;transform:scale(2.5)}}
@keyframes lq-iai-flash{0%{opacity:0;transform:rotate(-8deg) scaleX(.1)}20%,40%{opacity:1;transform:rotate(-8deg) scaleX(1.5)}100%{opacity:0;transform:rotate(-8deg) scaleX(1.8)}}
@keyframes lq-shuriken-flight{0%{opacity:1;transform:translateX(0) rotate(0)}95%{opacity:1}100%{opacity:0;transform:translateX(160px) rotate(450deg)}}
@keyframes lq-ninja-echo{0%{opacity:.6;transform:translateX(-10px)}50%{opacity:.4;transform:translateX(25px)}100%{opacity:0;transform:translateX(55px)}}
.lq-pose-shinobi{background-image:url('assets/shinobi-male-motion.webp')}
.lq-pose-shinobi.lq-female{background-image:url('assets/shinobi-female-motion.webp')}
.lq-cinema[data-active-slot=performer] :is(.lq-cast-orb,.lq-job-projectile){left:34%;top:23%}
.lq-cinema[data-target-slot=performer]{--enemy-travel-x:-120px;--enemy-travel-y:-50px}
.lq-cinema.lq-has-performer[data-target-slot=hero]{--enemy-travel-x:-170px;--enemy-travel-y:65px}
.lq-cinema[data-target-slot=ally]{--enemy-travel-x:-110px;--enemy-travel-y:20px}
.lq-cinema[data-target-slot=heal-target]{--enemy-travel-x:-90px;--enemy-travel-y:45px}
@keyframes lq-orb-flight{0%{opacity:1;transform:none}90%{opacity:1}100%{opacity:0;transform:translate(var(--enemy-travel-x,-170px),var(--enemy-travel-y,0px)) scale(1.3)}}
@keyframes lq-claw-flight{0%{opacity:0;transform:scaleX(.1)}35%{opacity:1}100%{opacity:0;transform:translate(var(--enemy-travel-x,-110px),var(--enemy-travel-y,0px)) scaleX(1.4)}}
@keyframes lq-tempt-flight{0%{opacity:1;transform:none}95%{opacity:1}100%{opacity:0;transform:translate(var(--enemy-travel-x,-145px),var(--enemy-travel-y,0px)) rotate(-25deg)}}

.lq-pose-guardian{background-image:url('assets/guardian-male-motion.webp')}
.lq-pose-guardian.lq-female{background-image:url('assets/guardian-female-motion.webp')}

.lq-pose-seeker{background-image:url('assets/seeker-male-motion.webp')}
.lq-pose-seeker.lq-female{background-image:url('assets/seeker-female-motion.webp')}
.lq-cinema:is([data-actor=guardian],[data-actor=seeker],[data-actor=gunner],[data-actor=idol]) .lq-slash{display:none}
.lq-cinema[data-actor=guardian][data-phase=impact] .lq-shield{left:52%;opacity:1;animation:lq-glow .55s both}
.lq-cinema[data-actor=guardian][data-tier=ultimate][data-phase=impact] .lq-shield{width:42%;height:75%;top:10%;border-width:4px;box-shadow:0 0 35px #a0ffcf}
.lq-cinema[data-actor=guardian][data-phase=impact] .lq-shockwave{border-color:#b7ffd9;animation:lq-wave .5s both}
.lq-cinema[data-actor=seeker] .lq-spell-seal{border-color:#ffdf8b;color:#ffeab9;background:repeating-conic-gradient(from 0deg,transparent 0deg 44deg,#d8bd6633 44deg 45deg);font-size:72px}
.lq-cinema[data-actor=seeker][data-phase=prepare] .lq-spell-seal{animation:lq-seal-charge .6s both}
.lq-cinema[data-actor=seeker][data-phase=impact] .lq-spell-seal{animation:lq-sacred-ring .6s both}
.lq-cinema[data-actor=seeker][data-tier=ultimate][data-phase=impact] .lq-spell-seal{animation:lq-magic-burst .9s both}
.lq-cinema[data-actor=gunner] .lq-job-projectile{width:20px;height:8px;border-radius:50%;background:#fff4ca;box-shadow:0 0 14px #ff9766}
.lq-cinema[data-actor=gunner] .lq-job-projectile:after{display:none}
.lq-cinema[data-actor=gunner][data-phase=attack] .lq-job-projectile{animation:lq-arrow-flight var(--swing-ms,180ms) linear both}
.lq-cinema[data-actor=gunner][data-tier=ultimate] .lq-job-projectile{width:160px;height:20px;border-radius:50%;background:linear-gradient(90deg,#ff686888,#fff,#ffd7a0);filter:drop-shadow(0 0 15px #ff8670)}
.lq-cinema[data-actor=bandit] .lq-slash{height:25px;background:#fff2bc;box-shadow:0 0 28px #db9c54}
.lq-cinema[data-actor=bandit][data-phase=impact] .lq-shockwave{top:65%;left:38%;width:55%;height:45px;border-color:#e9b67b;animation:lq-wave-large .7s both}
.lq-cinema[data-actor=bandit][data-tier=ultimate][data-phase=impact] .lq-floor{animation:lq-camera-impact .7s both;box-shadow:0 0 45px #e7ac5a}
.lq-cinema[data-actor=idol] .lq-job-projectile{height:45px;width:45px;background:none;box-shadow:none;color:#ffe2f2}
.lq-cinema[data-actor=idol] .lq-job-projectile:after{content:'♪';font-size:43px;border:none;top:-15px;text-shadow:0 0 12px #ff9bdf}
.lq-cinema[data-actor=idol][data-phase=attack] .lq-job-projectile{animation:lq-arrow-flight var(--swing-ms,180ms) both}
.lq-cinema[data-actor=idol][data-tier=advanced] .lq-job-projectile:after{content:'✦';color:#fff1ae}
.lq-cinema[data-actor=idol][data-tier=ultimate][data-phase=impact] .lq-spell-column{left:10%;width:80%;background:conic-gradient(from 155deg at 50% 0%,transparent,#ffc4ee99,transparent,#ffedb388,transparent);animation:lq-golden-column 1s both}
.lq-cinema[data-actor=pirate] .lq-slash{box-shadow:0 0 20px #7bd2ff}
.lq-cinema[data-actor=pirate]:is([data-tier=advanced],[data-tier=ultimate]) .lq-job-projectile{height:40px;width:40px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#bfd7e9,#384455 55%,#111827);box-shadow:0 0 18px #ffd09b}
.lq-cinema[data-actor=pirate] .lq-job-projectile:after{display:none}
.lq-cinema[data-actor=pirate]:is([data-tier=advanced],[data-tier=ultimate])[data-phase=attack] .lq-job-projectile{animation:lq-arrow-flight var(--swing-ms,180ms) both}
.lq-cinema[data-actor=pirate][data-tier=ultimate][data-phase=impact] .lq-shockwave{border-color:#a9f0ff;box-shadow:0 0 40px #48b4e9;animation:lq-wave-large .9s both}
.lq-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:600px){.lq-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

.lq-pose-gunner{background-image:url('assets/gunner-male-motion.webp')}
.lq-pose-gunner.lq-female{background-image:url('assets/gunner-female-motion.webp')}
.lq-pose-bandit{background-image:url('assets/bandit-male-motion.webp')}
.lq-pose-bandit.lq-female{background-image:url('assets/bandit-female-motion.webp')}
.lq-pose-idol{background-image:url('assets/idol-male-motion.webp')}
.lq-pose-idol.lq-female{background-image:url('assets/idol-female-motion.webp')}
.lq-pose-pirate{background-image:url('assets/pirate-male-motion.webp')}
.lq-pose-pirate.lq-female{background-image:url('assets/pirate-female-motion.webp')}

.lq-cinema[data-phase=trait] .lq-light{left:var(--recipient-x,25%);opacity:1;animation:lq-glow .65s both;background:radial-gradient(ellipse,#fff9c999,#ffcf4155,transparent 70%)}
.lq-cinema[data-phase=trait] .lq-caption{color:#ffe49c;text-shadow:0 0 12px #ffc23d99}
.lq-cinema[data-actor=seeker][data-phase=trait] .lq-spell-seal{animation:lq-sacred-ring .65s both;color:#ffe69c;border-color:#ffe69c}

.lq-pose-goblin{background-image:url('assets/enemy-goblin-motion.webp')}
.lq-pose-slime{background-image:url('assets/enemy-slime-motion.webp')}
.lq-pose-wraith{background-image:url('assets/enemy-wraith-motion.webp')}
.lq-pose-mist{background-image:url('assets/enemy-mist-motion.webp')}
.lq-pose-siren{background-image:url('assets/enemy-siren-motion.webp')}
/* Enemy presentation variants share hit timing, never the combat calculation. */
.lq-cinema{--enemy-color:#d8b8ff;--enemy-dark:#55358c}
.lq-cinema[data-enemy-kind=goblin]{--enemy-color:#cfdbb8;--enemy-dark:#557766}
.lq-cinema[data-enemy-kind=slime]{--enemy-color:#b6edff;--enemy-dark:#557dac}
.lq-cinema[data-enemy-kind=wraith]{--enemy-color:#bacaff;--enemy-dark:#273b79}
.lq-cinema[data-enemy-kind=mist]{--enemy-color:#bceee8;--enemy-dark:#527c88}
.lq-cinema[data-enemy-kind=siren]{--enemy-color:#ffd0f0;--enemy-dark:#b35fa9}
.lq-cinema:not([data-enemy-kind=shadow]) .lq-enemy-orb{display:grid;place-items:center;color:white;font-size:29px;background:radial-gradient(circle,var(--enemy-color),var(--enemy-dark),transparent 75%);box-shadow:0 0 18px var(--enemy-color);text-shadow:0 0 8px white}
.lq-cinema[data-enemy-kind=slime][data-enemy-move=claw] .lq-enemy-orb{border-radius:50% 30%;background:linear-gradient(90deg,var(--enemy-color),var(--enemy-dark),transparent)}
.lq-cinema:is([data-enemy-kind=slime],[data-enemy-kind=mist])[data-enemy-move=orb] .lq-enemy-orb{border:3px double var(--enemy-color);background:transparent;box-shadow:0 0 0 10px #b4deed44,0 0 0 20px #b4deed22}
.lq-cinema:is([data-enemy-kind=mist],[data-enemy-kind=wraith],[data-enemy-kind=goblin])[data-enemy-move=claw] .lq-enemy-orb{filter:blur(2px);border-radius:45%;height:50px;background:radial-gradient(ellipse,var(--enemy-color),var(--enemy-dark),transparent 75%)}
.lq-cinema[data-enemy-kind=siren] .lq-enemy-orb{border-radius:9px;border:1px solid #ffe2f9;box-shadow:0 0 18px #ef9ad4,15px -12px 0 -6px #7fcfdf99,-10px 15px 0 -6px #fcaee999}
.lq-cinema[data-enemy-low=true] .lq-enemy .lq-body{filter:saturate(.7) drop-shadow(0 0 8px #dca97d44)}
.lq-pose-goblin:is([data-frame="2"],[data-frame="4"]),.lq-pose-mist:is([data-frame="2"],[data-frame="3"],[data-frame="4"],[data-frame="5"]),.lq-pose-siren:is([data-frame="4"],[data-frame="5"]){transform:scaleX(-1)}
@media(prefers-reduced-motion:reduce){.lq-cinema .lq-enemy-orb{display:none!important}}
.lq-cinema[data-phase=enemy-entrance] .lq-enemy{animation:lq-boss-entry .95s both}
.lq-cinema[data-phase=enemy-entrance] .lq-moon{box-shadow:0 0 50px #f7bb8344}
@keyframes lq-boss-entry{0%{opacity:0;filter:brightness(2.5);transform:translateY(-16px)}55%{opacity:1;filter:brightness(1.3);transform:translateY(4px)}100%{opacity:1;filter:brightness(1);transform:none}}

.lq-pose-titan{background-image:url('assets/enemy-titan-motion.webp')}
.lq-pose-harpy{background-image:url('assets/enemy-harpy-motion.webp')}
.lq-pose-minotaur{background-image:url('assets/enemy-minotaur-motion.webp')}
.lq-pose-gran{background-image:url('assets/enemy-gran-motion.webp')}
.lq-cinema[data-enemy-kind=titan]{--enemy-color:#e7d6ad;--enemy-dark:#597c72}
.lq-cinema[data-enemy-kind=harpy]{--enemy-color:#e5c389;--enemy-dark:#4e9c9b}
.lq-cinema[data-enemy-kind=minotaur]{--enemy-color:#e4c999;--enemy-dark:#51677c}
.lq-cinema[data-enemy-kind=gran]{--enemy-color:#f7c165;--enemy-dark:#723d88}
.lq-cinema:is([data-enemy-kind=titan],[data-enemy-kind=minotaur])[data-enemy-move=claw] .lq-enemy-orb{height:65px;width:65px;border-radius:8px;border:4px double var(--enemy-color)}
.lq-cinema[data-enemy-kind=harpy] .lq-enemy-orb{border-radius:80% 0 80% 0;border:2px solid #fff5cd;background:linear-gradient(30deg,transparent,#fff5cdaa,transparent);box-shadow:12px -10px 0 -3px #b3ded9,24px -20px 0 -5px #d8b477}
.lq-cinema[data-enemy-kind=minotaur][data-enemy-move=orb] .lq-enemy-orb{border:4px double #e4c999;width:62px;height:86px;border-radius:4px;background:repeating-linear-gradient(0deg,#d8b06477 0 2px,#394b6d55 2px 12px)}
.lq-cinema[data-enemy-kind=gran][data-enemy-move=orb] .lq-enemy-orb{width:65px;height:65px;border:3px double #ffc967;box-shadow:0 0 26px #c28cdb,0 0 0 12px #dfb56733}
.lq-cinema:not([data-enemy-kind=shadow]) .lq-temptations i{border-color:var(--enemy-color);background:var(--enemy-dark);box-shadow:0 0 16px var(--enemy-color)}
.lq-rebirth-reflection{text-align:center;color:#e6d3a0;line-height:1.9;padding:12px;border-block:1px solid #d9bd7133}
.lq-inheritance-light{position:relative;z-index:3;padding:10px 18px;margin:6px 0;border-radius:24px;border:1px solid #f7df9c;color:#ffebbc;background:#70532544;box-shadow:0 0 25px #f0c96c66;animation:lq-inherit 1.5s both}
@keyframes lq-inherit{0%,35%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:none}}
/* Bond roster is built from the earned-day snapshot, never the current guild. */
.lq-bond .lq-hero{visibility:hidden}.lq-bond .lq-arena{height:370px;background:radial-gradient(ellipse at 50% 65%,#38385a88,transparent 65%)}
.lq-bond-party{position:absolute;inset:48% 3% 4%;z-index:5}
.lq-bond-member{position:absolute;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;justify-content:flex-end;transition:filter .2s,opacity .2s;overflow:hidden}
.lq-bond-member .lq-body{height:calc(100% - 20px);aspect-ratio:.75;max-width:95%;position:relative;filter:drop-shadow(0 4px 5px #0009)}
.lq-bond-member small{height:20px;max-width:100%;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#f5e9c7;text-shadow:0 1px 3px #000}
.lq-bond-member.is-active{filter:drop-shadow(0 0 6px #b4efff)}
.lq-bond-member[data-contributed=true] small:before{content:'✧ ';color:#9ce9dd}
.lq-bond .lq-enemy{height:175px;width:42%;bottom:auto;top:4px;right:1%}
.lq-bond.lq-has-performer .lq-performer{left:7%;bottom:auto;top:10px;width:40%;height:170px;opacity:1;z-index:6}
.lq-bond-title{position:absolute;inset:25% 0 auto;text-align:center;font-size:32px;font-weight:800;letter-spacing:.15em;color:#ffedbb;text-shadow:0 0 24px #c3a2ff;z-index:12;opacity:0;pointer-events:none}
.lq-bond[data-phase=bond-intro] .lq-arena:after{content:'';position:absolute;inset:0;background:#080b1ee6;z-index:10}
.lq-bond[data-phase=bond-intro] .lq-bond-title{opacity:1;animation:lq-bond-title .8s ease-out both}
.lq-bond[data-phase=bond-intro] .lq-bond-party{opacity:0}
.lq-bond[data-phase=bond-entry] .lq-bond-party{animation:lq-bond-entry .6s ease-out both}
.lq-bond-light{position:absolute;inset:8% 8%;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(ellipse,#fffde9 0%,#c4e7ff99 15%,#c4a2ff55 35%,transparent 65%);z-index:9}
.lq-bond[data-phase=bond-gather] .lq-bond-light{animation:lq-bond-gather .85s ease-in both}
.lq-bond[data-phase=bond-finish] .lq-bond-light{animation:lq-bond-release .5s ease-out both}
.lq-bond[data-phase=bond-finish] .lq-arena{animation:lq-bond-camera .5s ease-out both}
.lq-bond[data-phase=bond-support] .lq-performer{filter:drop-shadow(0 0 13px #fff1b6)}
.lq-bond[data-phase=bond-support] .lq-bond-party{filter:drop-shadow(0 0 6px #bbf6d7)}
.lq-bond[data-phase=bond-support][data-bond-support=shield] .lq-performer:after{content:'✧';position:absolute;inset:5%;border:2px solid #a2dfff;border-radius:50%;color:#b3ebff;text-align:center;font-size:45px;box-shadow:0 0 20px #78c9ff99}
.lq-bond[data-phase=bond-support][data-bond-support=song] .lq-performer:after{content:'♪　♫';position:absolute;inset:0;color:#ffbced;font-size:30px;animation:lq-bond-entry .4s ease-out both}
@keyframes lq-bond-title{from{transform:scale(.85);filter:blur(5px)}to{transform:scale(1);filter:blur(0)}}
@keyframes lq-bond-entry{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes lq-bond-gather{from{opacity:0;transform:scale(1.3)}to{opacity:.85;transform:scale(.45)}}
@keyframes lq-bond-release{from{opacity:1;transform:scale(.45)}to{opacity:0;transform:scale(1.65)}}
@keyframes lq-bond-camera{0%{transform:scale(1)}35%{transform:scale(1.035) translateY(-2px)}100%{transform:scale(1)}}
@media(max-height:700px){.lq-bond .lq-arena{height:290px}.lq-bond .lq-enemy,.lq-bond.lq-has-performer .lq-performer{height:130px}.lq-bond-member small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.lq-bond *{animation:none!important;transition:none!important}.lq-bond[data-phase=bond-gather] .lq-bond-light,.lq-bond[data-phase=bond-finish] .lq-bond-light{opacity:.3}}

.lq-ambient[data-ambient-visible=false] *{animation-play-state:paused!important}
.lq-ambient[data-ambient-visible=false] [data-rig]{background-image:none!important}
.lq-asset-unavailable{background-image:none!important;display:grid!important;place-items:center;color:#d5d0ff;font-size:45px;border:1px solid #a4a8cc55;border-radius:45%;background:radial-gradient(ellipse,#66598a55,transparent)!important}
