.cx-sr-only{position:absolute!important;clip-path:inset(100%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.cx-dialogue-card{--speaker:#d9b889;display:flex;gap:22px;align-items:stretch;background:#152a2af5;color:#f5f1e4;border:1px solid color-mix(in srgb,var(--speaker) 55%,#122624);border-left:5px solid var(--speaker);border-radius:12px;overflow:hidden;padding:0!important;min-height:190px;box-shadow:0 15px 45px #05151040;animation:cx-line-enter .24s ease-out}.cx-dialogue-card[data-side=player]{background:#1e392bf5;flex-direction:row-reverse;border-left:1px solid #587259;border-right:5px solid var(--speaker)}.cx-speaker-portrait{width:125px;flex:0 0 125px;position:relative;overflow:hidden;background:linear-gradient(145deg,#60725750,#152527)}.cx-speaker-portrait img{position:absolute;top:0;left:0;width:100%;height:230%;object-fit:cover;object-position:50% 0;filter:drop-shadow(0 4px 10px #05141140)}.cx-speaker-portrait>span:not(.cx-speaker-side){display:grid;place-items:center;height:100%;font:55px Georgia;color:var(--speaker)}.cx-speaker-side{position:absolute;bottom:9px;left:8px;right:8px;text-align:center;color:#12291e;background:var(--speaker);border-radius:4px;font-size:9px;letter-spacing:2px;font-weight:700;padding:3px}.cx-speech{flex:1;padding:22px 24px 18px 0;min-width:0}.cx-dialogue-card[data-side=player] .cx-speech{padding:22px 0 18px 24px}.cx-speaker-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid #e9e3c61e;padding-bottom:10px}.cx-speaker-head strong{font:600 17px 'Segoe UI',sans-serif;color:var(--speaker)}.cx-speaker-head>span{color:#c6cec0;font-size:10px;max-width:48%;text-align:right}.cx-words{margin:15px 0 12px!important;min-height:74px;font:21px/1.7 Georgia,serif!important;color:#fff5df;white-space:pre-wrap}.cx-words:after{content:'▌';color:var(--speaker);opacity:.7;font-size:15px;animation:cx-caret 1s step-end infinite}.cx-line-complete .cx-words:after{display:none}.cx-writing-hint{font:9px 'Segoe UI',sans-serif!important;letter-spacing:.5px!important;color:#bdc8b1!important;text-transform:none!important}.cx-full-stage{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#071414;color:#f9f2dd;overflow:hidden;box-shadow:none;isolation:isolate;font:15px/1.6 'Segoe UI',sans-serif}.cx-full-stage::backdrop{background:#071414;backdrop-filter:none}.cx-full-stage button{font:inherit;border:1px solid #e6e4c940;color:#f2edda;background:#112827e8;padding:9px 16px;border-radius:7px;cursor:pointer}.cx-full-stage button:hover{background:#36534b}.cx-full-stage button:focus-visible{outline:3px solid #edcc88;outline-offset:3px}.cx-full-stage button:disabled{opacity:.35;cursor:default}.cx-environment{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.cx-stage-header{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:25px 32px;background:linear-gradient(#071a22d9,transparent);z-index:5}.cx-stage-header small{font-size:9px;letter-spacing:2.5px;color:#c7d1c0;text-transform:uppercase}.cx-stage-header h2{font:28px/1.2 Georgia,serif;color:#fff3d8;margin:5px 0}.cx-stage-header button{font-size:11px;white-space:nowrap}.cx-dialogue-shade{position:absolute;inset:0;background:linear-gradient(#0926275c 0%,#09262722 35%,#071816e8 100%);z-index:-2}.cx-cast{position:absolute;inset:100px 0 170px;display:flex;justify-content:space-around;align-items:flex-end;gap:20px;padding:0 8vw}.cx-cast-person{height:100%;width:40%;max-width:430px;margin:0;position:relative;display:flex;align-items:flex-end;justify-content:center;filter:brightness(.5) saturate(.5);transform:scale(.96);transform-origin:center bottom;transition:filter .3s,transform .3s;opacity:.75}.cx-cast-person.speaking{filter:brightness(1) saturate(1);transform:scale(1);opacity:1}.cx-cast-person img{max-width:100%;height:100%;max-height:660px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 16px #04151265)}.cx-cast-person figcaption{position:absolute;bottom:20px;left:5%;right:5%;text-align:center;font-size:10px;letter-spacing:1px;background:#102722de;color:#ebe7d0;border:1px solid #d8cca943;padding:7px;border-radius:5px}.cx-avatar-initial{width:200px;height:300px;border:1px solid #c3b488;background:#17312b;display:grid;place-items:center;font:100px Georgia;border-radius:80px 80px 0 0}.cx-dialogue-dock{position:absolute;bottom:20px;left:max(20px,8vw);right:max(20px,8vw);z-index:6}.cx-dialogue-dock .cx-dialogue-card{min-height:185px;max-width:1150px;margin:auto}.cx-dialogue-navigation{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:12px auto 0;max-width:1150px}.cx-dialogue-navigation span{font-size:10px;color:#d0d6be}.cx-dialogue-navigation button{font-size:12px;min-width:120px}.cx-dialogue-navigation .cx-next{background:#dbc397;color:#20342a;font-weight:600}.cx-dialogue-navigation kbd{font:9px 'Segoe UI';border:1px solid #d0d6be40;border-radius:3px;padding:1px 4px}.cx-battle-vignette{position:absolute;inset:0;z-index:-2;background:linear-gradient(#07192366,transparent 27%,transparent 55%,#0719237a 75%,#071923f5 100%),radial-gradient(ellipse at center,transparent 30%,#07192355 100%)}.cx-field{position:absolute;inset:75px 0 180px;overflow:hidden}.cx-combatant{position:absolute;width:clamp(150px,24vw,340px);height:clamp(160px,29vh,310px);transform:translate(-50%,-50%);z-index:2}.cx-ally{left:28%;top:66%}.cx-enemy{left:72%;top:38%}.cx-body{position:absolute;inset:0;display:grid;place-items:center;transform-origin:center 80%;z-index:2}.cx-body img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 5px #061b2533);animation:cx-breathe 3.7s ease-in-out infinite;transform-origin:center bottom;user-select:none}.cx-enemy .cx-body img{animation-delay:-1.8s}.cx-shadow{position:absolute;bottom:7%;left:17%;width:66%;height:10%;background:#08272065;filter:blur(9px);border-radius:50%;transform:rotate(-8deg);z-index:0}.cx-status{position:absolute;width:clamp(200px,23vw,330px);background:#112829eb;border:1px solid #eee2bc49;border-radius:10px;padding:13px 16px;box-shadow:0 8px 26px #051d2435;z-index:4;backdrop-filter:blur(12px)}.cx-status-enemy{right:6%;top:115px}.cx-status-ally{left:6%;bottom:210px}.cx-status-name{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.cx-status-name strong{font:21px Georgia,serif;color:#fff4d7}.cx-status-name>span{font-size:10px;color:#d9d7bd}.cx-status-types{display:flex;gap:7px;font-size:9px;color:#cfdbcb;margin:3px 0 9px}.cx-status-types span{border:1px solid #d2ddc82b;border-radius:3px;padding:0 5px}.cx-health{height:7px;background:#071b1a;border-radius:6px;overflow:hidden;border:1px solid #dfe6ca22}.cx-health i{display:block;height:100%;background:linear-gradient(90deg,#7fb896,#bed7a0);border-radius:4px;transition:width .6s cubic-bezier(.2,.7,.2,1)}.cx-health[data-health=medium] i{background:#d7b36d}.cx-health[data-health=low] i{background:#db8a79}.cx-health-numbers{font-size:9px;text-align:right;color:#c4cfba;margin-top:4px;font-variant-numeric:tabular-nums}.cx-combat-console{position:absolute;bottom:0;left:0;right:0;padding:16px max(25px,6vw) 14px;background:linear-gradient(#0a2127eb,#081b20);border-top:1px solid #e0dab649;z-index:8;box-shadow:0 -10px 45px #061c2440}.cx-combat-log{font:17px/1.5 Georgia,serif;color:#f4ecd2;min-height:28px;margin-bottom:12px}.cx-combat-actions{display:flex;gap:18px}.cx-techniques{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;flex:1}.cx-techniques button{border-top:2px solid var(--move);text-align:left;padding:9px 12px;background:#1a3539ed;line-height:1.4}.cx-techniques button span{display:block;font-size:12px;color:#fff3db}.cx-techniques button small{display:block;font-size:8px;letter-spacing:0;text-transform:none;color:#b9c9bb;margin-top:4px}.cx-other-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:225px}.cx-other-actions button{padding:7px;font-size:10px;color:#d6ddc7}.cx-combat-footer{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:11px;color:#aebfb0;font-size:9px}.cx-combat-footer label{display:flex;align-items:center;gap:6px}.cx-combat-footer input{accent-color:#c8be8d}.cx-combat-footer button{padding:2px 5px;border:0;font-size:9px;background:none}.cx-log-history{position:absolute;bottom:100%;right:6vw;width:min(500px,85vw);max-height:230px;overflow:auto;background:#0b2427f7;padding:18px;border:1px solid #d8d0ad44;white-space:pre-line;font-size:11px;color:#cbd6bf}.cx-result{display:flex;align-items:center;justify-content:space-between;gap:25px;width:100%;padding:10px 0}.cx-result strong{font:24px Georgia;color:#f4d9a1}.cx-result button{background:#d5c292;color:#18332c;font-size:12px}.cx-announcement{position:absolute;left:0;right:0;top:40%;text-align:center;z-index:6;pointer-events:none;opacity:0;padding:20px;background:linear-gradient(90deg,transparent,#0b2628d9,transparent)}.cx-announcement small{display:block;color:#e7cf9a;letter-spacing:5px;font-size:10px}.cx-announcement strong{display:block;font:42px Georgia;color:#fff2d3}.cx-fx-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}.cx-attack-fx{position:absolute;inset:0}.cx-particle{position:absolute;left:0;top:0;width:17px;height:17px;background:var(--fx);border-radius:50%;box-shadow:0 0 18px var(--fx);will-change:transform,opacity}.cx-fx-leaf .cx-particle{width:14px;height:27px;border-radius:100% 0 100% 0;box-shadow:0 0 8px var(--fx)}.cx-fx-water .cx-particle{width:16px;height:35px;border-radius:60% 40% 65% 35%;background:linear-gradient(transparent,var(--fx));box-shadow:0 0 17px #8eecf390}.cx-fx-fire .cx-particle{width:18px;height:35px;border-radius:70% 30% 60% 40%;background:linear-gradient(#ffe5a0,var(--fx),#d66c4980);box-shadow:0 0 25px #f89b5e}.cx-fx-bolt .cx-particle{width:12px;height:50px;clip-path:polygon(50% 0,100% 0,62% 40%,100% 40%,0 100%,30% 50%,0 50%);border-radius:0}.cx-fx-crystal .cx-particle,.cx-fx-prism .cx-particle{width:14px;height:32px;clip-path:polygon(50% 0,100% 35%,65% 100%,0 65%);border-radius:0;background:linear-gradient(45deg,#f4f3ff,var(--fx))}.cx-fx-slash .cx-particle,.cx-fx-wind .cx-particle{width:50px;height:9px;border-radius:100%;background:linear-gradient(90deg,transparent,var(--fx),transparent)}.cx-fx-mist .cx-particle{width:45px;height:45px;filter:blur(12px);opacity:.6}.cx-fx-dust .cx-particle,.cx-fx-rock .cx-particle{clip-path:polygon(15% 0,85% 10%,100% 75%,40% 100%,0 60%);border-radius:0;box-shadow:none}.cx-fx-star .cx-particle{clip-path:polygon(50% 0,60% 35%,100% 50%,60% 65%,50% 100%,40% 65%,0 50%,40% 35%);border-radius:0;width:28px;height:28px}.cx-fx-wave .cx-particle{background:none;border:2px solid var(--fx);border-radius:50%;width:38px;height:38px}.cx-fx-shield .cx-particle{clip-path:polygon(50% 0,95% 20%,80% 80%,50% 100%,20% 80%,5% 20%);border-radius:0}.cx-floating-number{position:absolute;font:700 32px Georgia;text-shadow:0 3px 6px #081f28,0 0 15px #081f28;z-index:9;white-space:nowrap}.cx-ring{position:absolute;width:160px;height:160px;border:3px solid var(--fx);border-radius:50%;box-shadow:inset 0 0 25px color-mix(in srgb,var(--fx) 40%,transparent),0 0 25px color-mix(in srgb,var(--fx) 40%,transparent)}.cx-guard-ring{clip-path:polygon(50% 0,94% 20%,85% 75%,50% 100%,15% 75%,6% 20%);border-radius:20px;background:#a2dad520}.cx-heal-ring:before,.cx-heal-ring:after{content:'+';position:absolute;left:45%;top:25%;font:45px Georgia;color:var(--fx)}.cx-heal-ring:after{left:15%;top:40%;font-size:20px}.cx-pact-capsule{position:absolute;left:0;top:0;width:23px;height:34px;border-radius:10px;background:linear-gradient(90deg,#31585b,#e6c89b 45%,#345f60);border:2px solid #eed4ab;box-shadow:0 0 18px #ecdbb37a}.cx-pact-ring{border-style:dashed}.cx-battle-loading,.cx-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:#0a2024;text-align:center;color:#e4e8d5}.cx-error h2{font:30px Georgia;color:#f5e5c6}.cx-error p{font-size:13px;max-width:650px}.cx-load-sigil{display:block;width:65px;height:65px;border:1px solid #dac799;border-top:3px solid #dac799;border-radius:50%;animation:cx-spin 1.5s linear infinite}.cx-battle-loading p{font-size:13px;margin:25px 0}.play-text.cx-dialogue-card{min-height:220px}.play-stage:has(.cx-dialogue-card) .play-context{font-size:11px}.play-stage:has(.cx-dialogue-card) .play-nav{margin-top:15px}.cx-loading{padding:40vh 15px;text-align:center;color:#e4e5cf}.cx-preview-link{background:#244b3f!important;color:#fff4d8!important;border-color:#244b3f!important}.cx-pnj-card-art{height:240px;width:100%;object-fit:contain;object-position:center bottom;display:block;filter:drop-shadow(0 12px 7px #1f38261c);margin:0 0 14px}.cx-pnj-dossier-art{float:right;width:32%;max-height:410px;object-fit:contain;object-position:center top;margin:0 0 20px 20px}.cx-pnj-status{font-size:9px;color:#788672;display:block}.cx-modal-voice{margin:14px 0;display:flex;gap:8px}.cx-modal-voice button{font-size:11px}@keyframes cx-line-enter{from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cx-caret{50%{opacity:0}}@keyframes cx-breathe{50%{transform:translateY(-4px) scale(1.012)}}@keyframes cx-spin{to{transform:rotate(360deg)}}
@media(max-width:1000px){.cx-combat-actions{gap:9px}.cx-techniques{grid-template-columns:repeat(2,1fr)}.cx-other-actions{width:180px}.cx-field{bottom:240px}.cx-status-ally{bottom:270px}.cx-status-enemy{top:105px}.cx-status{width:235px}.cx-combat-console{padding:14px 25px}.cx-stage-header{padding:20px 25px}.cx-speaker-head{display:block}.cx-speaker-head>span{display:block;text-align:left;max-width:100%;margin-top:3px}.cx-dialogue-card{gap:15px}.cx-words{font-size:19px!important}.cx-dialogue-dock{left:25px;right:25px}.cx-cast{bottom:220px;padding:0 5vw}}@media(max-width:600px){.cx-stage-header{padding:17px 14px}.cx-stage-header h2{font-size:21px;max-width:230px}.cx-stage-header small{font-size:7px;letter-spacing:1.5px}.cx-stage-header button{font-size:9px;padding:6px 8px}.cx-dialogue-dock{left:10px;right:10px;bottom:12px}.cx-dialogue-card{min-height:225px;gap:10px;border-radius:9px}.cx-speaker-portrait{width:71px;flex-basis:71px}.cx-speaker-portrait img{height:160%;width:180%;max-width:none;left:-40%;object-fit:cover;object-position:50% 0}.cx-speaker-side{font-size:7px;letter-spacing:1px;left:5px;right:5px;padding:3px}.cx-speech{padding:16px 12px 14px 0}.cx-dialogue-card[data-side=player] .cx-speech{padding:16px 0 14px 12px}.cx-speaker-head strong{font-size:15px}.cx-speaker-head>span{font-size:8px;line-height:1.5}.cx-words{font-size:17px!important;line-height:1.65!important;min-height:100px;margin:12px 0!important}.cx-writing-hint{font-size:8px!important;line-height:1.5}.cx-dialogue-navigation{gap:8px;margin-top:8px}.cx-dialogue-navigation button{min-width:0;padding:8px 10px;font-size:10px}.cx-dialogue-navigation span{font-size:8px}.cx-dialogue-navigation kbd{display:none}.cx-cast{inset:95px 0 255px;gap:0;padding:0 5px}.cx-cast-person{width:48%;max-width:240px}.cx-cast-person img{max-height:390px}.cx-cast-person figcaption{font-size:7px;bottom:7px;padding:5px;letter-spacing:.4px}.cx-combatant{width:145px;height:155px}.cx-ally{left:27%;top:66%}.cx-enemy{left:73%;top:36%}.cx-field{inset:100px 0 250px}.cx-status{width:172px;padding:8px 10px;border-radius:7px}.cx-status-enemy{top:90px;right:12px}.cx-status-ally{bottom:270px;left:12px}.cx-status-name strong{font-size:17px}.cx-status-name>span{font-size:8px}.cx-status-types{font-size:7px;margin:2px 0 6px}.cx-health{height:6px}.cx-health-numbers{font-size:8px}.cx-combat-console{padding:12px 12px 10px}.cx-combat-log{font-size:14px;min-height:40px;margin-bottom:8px}.cx-combat-actions{display:block}.cx-techniques{gap:6px}.cx-techniques button{padding:8px 9px;min-height:52px}.cx-techniques button span{font-size:11px}.cx-techniques button small{font-size:7px}.cx-other-actions{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.cx-other-actions button{font-size:9px;padding:7px 3px}.cx-combat-footer{font-size:8px;gap:6px;margin-top:8px}.cx-combat-footer button{font-size:8px}.cx-combat-footer label{gap:3px}.cx-combat-footer input{width:11px;height:11px}.cx-announcement strong{font-size:29px}.cx-announcement small{font-size:8px;letter-spacing:3px}.cx-floating-number{font-size:24px}.cx-result strong{font-size:19px}.cx-result button{font-size:10px;padding:8px}.cx-ring{width:110px;height:110px}.cx-pnj-dossier-art{float:none;width:100%;height:300px;margin:0 auto 20px;object-position:center}.play-text.cx-dialogue-card{min-height:260px}.cx-dialogue-card[data-side=player]{border-right-width:4px}.cx-dialogue-card[data-side=npc]{border-left-width:4px}}@media(max-height:600px) and (min-width:601px){.cx-field{inset:60px 0 160px}.cx-combatant{height:150px;width:160px}.cx-status-ally{bottom:175px}.cx-status-enemy{top:70px}.cx-status{padding:7px 10px;width:210px}.cx-combat-console{padding:8px 25px}.cx-combat-log{font-size:14px;margin:0 0 6px}.cx-techniques button{padding:6px 8px}.cx-combat-footer{margin-top:5px}.cx-dialogue-dock .cx-dialogue-card{min-height:160px}.cx-words{min-height:45px;font-size:17px!important}.cx-cast{inset:70px 0 160px}.cx-stage-header{padding:10px 20px}.cx-stage-header h2{font-size:22px}}@media(prefers-reduced-motion:reduce){.cx-full-stage *, .cx-dialogue-card *{animation:none!important;transition:none!important}.cx-dialogue-card{animation:none}.cx-words:after{display:none}}

.cx-cast-person.speaking img{animation:cx-speaking-breathe 4s ease-in-out infinite}.cx-motion-soft .cx-body img{animation:none}.cx-motion-soft .cx-health i{transition:none}@keyframes cx-speaking-breathe{50%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.cx-cast-person.speaking img{animation:none}}
.cx-team-bar{margin:0 0 11px}.cx-team-info{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:9px;color:#afc2b2;margin-bottom:6px}.cx-team-info b{font-weight:400;color:#d9d9bc}.cx-team-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cx-team-slots .cx-team-member{display:flex;align-items:center;gap:9px;text-align:left;padding:6px 10px;background:#143033;border:1px solid #bfceb13b;min-width:0;opacity:1}.cx-team-member img{width:37px;height:37px;object-fit:contain;flex-shrink:0}.cx-team-member>span{min-width:0;flex:1}.cx-team-member strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;color:#e7e6cf}.cx-team-member small{display:block;font-size:8px;text-transform:none;letter-spacing:0;color:#b5c4b4;margin-top:1px}.cx-team-member.active{background:#28463a;border-color:#b9cf93}.cx-team-member.active strong{color:#f1e8bb}.cx-team-member:disabled:not(.active){opacity:.45}.cx-team-member.exhausted img{filter:grayscale(1)}.cx-team-health{display:block;height:3px;border-radius:3px;background:#0b2121;overflow:hidden;margin-top:4px}.cx-team-health>i{display:block;height:100%;background:#adc897}.cx-team-empty{display:grid;place-items:center;border:1px dashed #b9c7ad38;color:#7d998d;font-size:9px;border-radius:7px;min-height:50px}.cx-replacement-needed{font-size:13px;color:#e2d4ad;margin:8px 0 3px}.cx-team-member:not(:disabled):hover{background:#375347;border-color:#ddcaa3}@media(max-width:600px){.cx-team-info{font-size:8px;gap:6px}.cx-team-slots{gap:4px}.cx-team-slots .cx-team-member{padding:5px 4px;gap:3px;min-height:47px}.cx-team-member img{width:25px;height:30px}.cx-team-member strong{font-size:8px}.cx-team-member small{font-size:6px;line-height:1.5}.cx-team-empty{font-size:7px;min-height:47px}.cx-team-bar{margin-bottom:8px}.cx-replacement-needed{font-size:11px}.cx-team-health{height:2px;margin-top:3px}}@media(max-width:600px) and (max-height:650px){.cx-status-ally{display:none}.cx-status-enemy{top:70px}.cx-field{top:90px}.cx-combatant{width:110px;height:115px}}
.cx-full-stage .cx-team-slots .cx-team-member.active{opacity:1;box-shadow:inset 0 0 0 1px #b9cf9355}.cx-full-stage .cx-team-slots .cx-team-member.exhausted.active{background:#3c3331;border-color:#aa8b7a;box-shadow:none}.cx-team-member.exhausted strong{color:#b8aba0}

.cx-field-effects{display:flex;flex-wrap:wrap;gap:8px;color:#e9deac;font-size:12px}.cx-field-effects:empty{display:none}.cx-field-effects span{padding:4px 9px;background:#294c46;border-radius:7px}
