/* Source: style.css */
:root{color-scheme:dark;--gold:#edca83;--muted:#a0b7c9;--line:#ffffff23;font-family:Arial,Helvetica,sans-serif;color:#f5f0e7;background:#04101f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;touch-action:manipulation}button:disabled{opacity:.42;cursor:default}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,select:focus-visible{outline:2px solid #ffe3a3;outline-offset:3px}#game{max-width:500px;position:relative;min-height:100dvh;margin:auto;overflow:hidden;background:#081b30;box-shadow:0 0 100px #000}#world{position:fixed;top:0;width:min(500px,100vw);height:100dvh;pointer-events:none}#vignette{position:fixed;inset:0;width:min(500px,100vw);left:50%;transform:translateX(-50%);background:linear-gradient(#04152d55,transparent 35%,#07172df2 70%,#061429);pointer-events:none}#top{position:relative;padding:calc(env(safe-area-inset-top,0px) + 16px) 20px 10px;z-index:2}.toprow{display:flex;align-items:center;gap:10px}.avatar{width:40px;height:40px;border:1px solid #d4b478;border-radius:50%;background:url('portraits.webp') 0 0/400% 400%}.profile{flex:1}.profile b{display:block;font-size:13px;letter-spacing:.5px}.profile small{font-size:10px;color:var(--muted)}.round{background:#122a40cc;border:1px solid #7798ac44;border-radius:50%;width:38px;height:38px;color:#e8d7b4;font-size:17px}.wallet{display:flex;gap:8px;margin-top:15px;font-size:12px}.wallet span{border:1px solid #829bb433;background:#071b30ba;padding:8px 12px;border-radius:6px;display:flex;gap:6px;align-items:center}.wallet span:last-child{margin-left:auto;color:#a0b7c9}.coin{color:#f1c462}.gem{color:#a0e7ff}#main{position:relative;padding:8px 20px 110px;min-height:calc(100dvh - 120px)}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,serif}h1{font-size:37px;line-height:.93;letter-spacing:-1.7px}h2{font-size:29px;letter-spacing:-.7px}h3{font-size:16px}.eyebrow{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase}.muted{color:var(--muted);font-size:12px;line-height:1.55}.pagehead{display:flex;align-items:center;gap:12px;padding:10px 0 20px}.pagehead h2{flex:1}.back{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#183348;font-size:22px}.titlemark{display:flex;align-items:center;gap:8px}.compass{color:var(--gold);font-size:40px;line-height:1}.logo{padding-top:12px;text-shadow:0 2px 15px #081a30}.logo h1 span{color:var(--gold)}.logo .eyebrow{margin-top:8px;font-size:9px;letter-spacing:3.5px}.hero{height:clamp(225px,32dvh,330px);position:relative;margin:8px -20px 0;overflow:hidden}.hero-art{position:absolute;width:360px;height:360px;left:45%;top:-5px;transform:translateX(-50%);background:url('portraits.webp') 0 0/400% 400%;mask-image:linear-gradient(black 50%,transparent 96%);-webkit-mask-image:linear-gradient(black 50%,transparent 96%)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0a2c4d55,transparent 45%),linear-gradient(transparent 55%,#081c32)}.hero-label{position:absolute;bottom:12px;left:20px;z-index:1}.hero-label p{font:italic 19px Georgia;color:#fff7da;max-width:220px;line-height:1.1}.hero-label small{font-size:8px;letter-spacing:2px;color:var(--gold)}.ribbon{position:absolute;right:16px;bottom:20px;z-index:1;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px;color:#e3ca92}.primary{width:100%;padding:16px 18px;border-radius:7px;border:1px solid #f2d394;background:linear-gradient(115deg,#b88743,#eed093 50%,#c39655);color:#172435;font-weight:800;letter-spacing:.3px;box-shadow:0 5px 20px #0004;display:flex;justify-content:space-between;align-items:center;font-size:14px}.primary small{font-size:10px;opacity:.68}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.tile{position:relative;text-align:left;border:1px solid #c6d8ec2b;border-radius:7px;padding:15px 13px;background:linear-gradient(130deg,#23465bdb,#10283be8);min-height:72px;overflow:hidden}.tile b{display:block;font-size:13px}.tile small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.tile .symbol{position:absolute;right:12px;top:18px;font:30px Georgia;color:#c4d8e744;transform:rotate(-15deg)}.tile.red{background:linear-gradient(130deg,#663d49e8,#292b3fe8);border-color:#c9918066}.sectionline{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px}.sectionline h3{font:18px Georgia}.textbtn{font-size:11px;color:var(--gold);background:transparent;padding:7px}.team-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.mini{border:1px solid #b99b6977;border-radius:5px;overflow:hidden;min-width:0;background:#193046}.mini small{display:block;text-align:center;font-size:8px;padding:5px 0;color:#eadbbf}.portrait{aspect-ratio:1;background-image:url('portraits.webp');background-size:400% 400%;background-color:#193448;position:relative}.type-dot{position:absolute;right:4px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--type);box-shadow:0 0 5px var(--type)}#nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(500px,100vw);display:grid;grid-template-columns:repeat(5,1fr);padding:9px 10px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid #9db7ce26;background:linear-gradient(#102b41f5,#071a2cfb);backdrop-filter:blur(16px);z-index:7}#nav button{background:transparent;color:#8da5b8;font-size:9px;padding:3px 0 1px}#nav button em{display:block;font-style:normal;font:22px Georgia;margin-bottom:5px}#nav button.active{color:var(--gold)}#nav button.active:before{content:'';display:block;height:2px;width:22px;background:var(--gold);position:absolute;top:0;margin-left:calc(10% - 14px)}.panel{border:1px solid #829db333;border-radius:9px;background:linear-gradient(145deg,#17354bef,#0c2338f5);padding:16px;margin:10px 0}.row{display:flex;align-items:center;gap:12px}.grow{flex:1}.tag{display:inline-block;border:1px solid #e3bd7166;background:#b88b3622;color:var(--gold);font-size:9px;letter-spacing:1px;padding:5px 7px;border-radius:3px}.bar{height:6px;overflow:hidden;background:#030d1c99;border-radius:3px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#18ac8e,#82e4b6);transition:width .45s}.subtitle{margin:5px 0 18px;color:#b4c6d4;font-size:12px;line-height:1.5}.filters{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 16px}.filters select,.filters button{padding:9px 10px;font-size:11px;border-radius:5px;background:#19384f;border:1px solid #7f9cb343;color:#e8e4da}.filters button.selected{background:#8c6b3b;color:#fff2d0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card{display:block;position:relative;background:linear-gradient(#2b4961,#10283c);border:1px solid #bca16f80;border-radius:7px;padding:0;overflow:hidden;text-align:left;box-shadow:0 3px 12px #0004;min-width:0}.card.locked{filter:saturate(.3);opacity:.6}.card .portrait{width:100%;aspect-ratio:.86}.card .name{display:block;padding:9px 7px 4px;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .info{display:flex;justify-content:space-between;font-size:8px;padding:0 7px 8px;color:#a8bece}.rarity{position:absolute;left:5px;top:6px;font-size:11px;font-style:italic;font-weight:900;color:#ffe3a1;text-shadow:1px 1px 2px #000;z-index:1}.card .badge{position:absolute;bottom:43px;right:5px;background:#0b213cdd;border:1px solid #e5c984;color:#fbe1ac;font-size:8px;padding:3px 5px}.empty{padding:30px;text-align:center;color:var(--muted)}.mapview{min-height:230px;position:relative;margin:5px 0 16px;border-radius:16px}.region-grid{display:flex;gap:7px;overflow:auto;padding:5px 0 12px;scrollbar-width:none}.region-pill{flex:none;width:104px;min-height:65px;border:1px solid #86a3b64d;border-radius:7px;background:#0f2e44e6;padding:10px;text-align:left}.region-pill.selected{border-color:var(--gold);background:#3c4c48}.region-pill b{display:block;font-size:11px}.region-pill small{color:var(--muted);font-size:9px}.island-title{position:absolute;bottom:20px;left:12px;text-shadow:0 3px 12px #000}.island-title h2{font-size:37px}.missions{display:grid;gap:8px}.mission{padding:13px;background:#102c43ed;border:1px solid #8cabc13b;border-radius:7px;display:flex;align-items:center;gap:12px;text-align:left}.mission .number{display:grid;place-items:center;width:35px;height:35px;border:1px solid #e3c27d99;border-radius:50%;font:18px Georgia;color:var(--gold);flex:none}.mission h3{font-size:12px}.mission p{font-size:10px;color:#98b2c5;margin-top:5px}.mission .end{margin-left:auto;color:var(--gold);font-size:12px}.detail-hero{max-width:230px;margin:5px auto 20px;border:1px solid #ddbc78;border-radius:10px;overflow:hidden;box-shadow:0 5px 55px #88b9cf22}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.stats div{text-align:center;background:#081d31;padding:13px 4px;border:1px solid var(--line);border-radius:5px}.stats small{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.stats b{font-size:17px;color:#edd5a1}.secondary{padding:12px;border:1px solid #8fa8bd55;border-radius:6px;background:#214056;font-size:12px;font-weight:700;width:100%}.wide{margin-top:10px}.small{font-size:11px}.note{color:#8ba9bd;font-size:10px;line-height:1.55;margin-top:14px}.summon-banner{position:relative;height:260px;overflow:hidden;border:1px solid #e4bc7466;border-radius:10px;background:radial-gradient(ellipse,#6b455e,#0d2945 70%);margin:12px 0}.summon-banner .portrait{position:absolute;bottom:0;top:0;width:260px;aspect-ratio:1;mask-image:linear-gradient(black 65%,transparent);-webkit-mask-image:linear-gradient(black 65%,transparent)}.summon-banner .one{right:65px;transform:rotate(-8deg);opacity:.7}.summon-banner .twoart{right:-50px;transform:rotate(5deg)}.banner-copy{position:absolute;left:18px;bottom:18px;text-shadow:0 2px 12px #000}.banner-copy h2{font-size:30px;line-height:1;max-width:220px}.banner-copy p{font-size:10px;color:#f4d492;margin-top:10px}.odds{font-size:11px;line-height:1.8;color:#b5cbd9}.listitem{padding:14px 0;border-bottom:1px solid var(--line)}dialog{border:1px solid #8cacc066;border-radius:14px;background:#10273bf5;color:#f5f0e7;max-width:460px;width:calc(100% - 30px);max-height:85dvh;padding:22px;box-shadow:0 20px 100px #000c;backdrop-filter:blur(20px)}dialog::backdrop{background:#031021be;backdrop-filter:blur(6px)}dialog h2{margin:8px 0 12px}dialog .close{float:right;background:transparent;color:#c1cfda;padding:0;font-size:23px}#toast{position:fixed;left:50%;bottom:calc(95px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#e9d2a1;color:#142a3b;padding:13px 20px;max-width:90vw;border-radius:8px;opacity:0;pointer-events:none;z-index:20;font-size:12px;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.battle #nav{display:none}.battle #world{top:calc(env(safe-area-inset-top,0px) + 110px);height:clamp(180px,28dvh,300px)}.battle #top{padding-top:calc(env(safe-area-inset-top,0px) + 8px)}.battle .wallet{display:none}.battle #main{padding:0 15px 20px;min-height:calc(100dvh - 80px)}.battle #vignette{background:linear-gradient(#071a3055,transparent 30%,#07192cbf 46%,#07172dfc 70%)}.battle-stage{height:clamp(180px,28dvh,300px);position:relative}.enemyhud{border:1px solid #d28e7b55;padding:9px 12px;border-radius:7px;background:#132e4399}.enemyhud .row{justify-content:space-between;margin-bottom:6px;font-size:11px}.enemyhud .bar i{background:linear-gradient(90deg,#b8424a,#f1837e)}.battlelog{position:absolute;bottom:5px;left:0;right:0;z-index:2;text-align:center;font-size:11px;line-height:1.3;color:#f4e5c8;text-shadow:0 2px 5px #000;background:linear-gradient(transparent,#071b30bb);padding-top:12px}.battlelog strong{display:block;font:22px Georgia}.crew-hp{margin:8px 0 11px}.crew-hp .row{justify-content:space-between;font-size:10px;margin-bottom:5px;color:#bcd3dc}.rotation{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fighter{display:flex;align-items:center;gap:7px;background:#123248;border:1px solid #688ca655;padding:5px;border-radius:7px;position:relative;text-align:left;min-width:0}.fighter .portrait{width:39px;flex:none;border-radius:4px}.fighter b{font-size:10px;display:block;max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fighter small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.fighter.current{border-color:#edcb83;box-shadow:0 0 15px #edcb8322}.battle-tools{display:flex;gap:7px;margin-top:10px}.battle-tools button{font-size:10px;padding:10px 5px;flex:1;background:#163247;border:1px solid var(--line);border-radius:5px}.battle-tools .primary{flex:2;color:#1a2a37;font-weight:800;background:linear-gradient(90deg,#c99e5d,#edd29c)}#fx{position:fixed;inset:0;pointer-events:none;z-index:8;max-width:500px;margin:auto;overflow:hidden}.specialfx{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,transparent 10%,#020f2be6 75%);animation:flare 3s both}.specialfx:before{content:'';position:absolute;inset:-50%;background:repeating-conic-gradient(from 10deg,transparent 0deg 12deg,var(--glow) 13deg 14deg,transparent 15deg 30deg);opacity:.45;animation:spin 4s linear infinite}.specialfx .portrait{position:absolute;left:12%;top:20%;width:76%;box-shadow:0 0 70px var(--glow);transform:skewY(-7deg);border-block:3px solid #f3dfad;animation:cutin .4s both}.specialname{position:absolute;left:20px;right:20px;top:57%;font:bold italic 32px Georgia;line-height:1;text-align:center;text-shadow:2px 3px 0 #10233b,0 0 30px var(--glow);animation:cutin .7s both}.damage{position:absolute;top:34%;left:25%;width:50%;text-align:center;color:#ffdc95;text-shadow:2px 3px 0 #732e32;font:bold italic 47px Georgia;animation:damage 1.1s both}.impact{position:absolute;top:40%;left:50%;width:120px;height:120px;border-radius:50%;border:8px solid var(--glow);box-shadow:0 0 50px var(--glow);animation:impact .6s both}.result{text-align:center}.result .eyebrow{margin:20px 0 10px}.result h2{font-size:43px;color:#f0cf8b}.result .stats{margin:25px 0}.reveal{animation:reveal .8s both}.formline{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0;font-size:12px}.formline input{width:45%}.formline select{background:#193b53;color:white;padding:9px;border:1px solid var(--line);border-radius:4px}.notice{border-left:2px solid var(--gold);padding:10px 13px;background:#d1ad5c10;font-size:11px;line-height:1.6;color:#c7d3da;margin:15px 0}.team-slot{border:1px dashed #d0b57a99;border-radius:8px;background:#112c41;padding:0;text-align:left;overflow:hidden}.team-slot .slotnumber{padding:8px;color:var(--gold);font-size:10px}.team-slot b{display:block;font-size:10px;padding:8px}.about{font-size:11px;line-height:1.7;color:#b5c7d5}.no3d-map{background:radial-gradient(ellipse,#67a39188,#1e78999c 55%,#17486033 75%);border:1px solid #aed9cf33}.no3d-map:before{content:'✧';position:absolute;right:35px;top:12px;font:100px Georgia;color:#c8deb341;transform:rotate(-15deg)}.fallback-arena{position:absolute;inset:5px 0 0;overflow:hidden;border-radius:9px;background:linear-gradient(#4f94b1 0%,#9fcecc 48%,#238c9d 49%,#126278 69%,#998655 70%,#767747 100%);box-shadow:inset 0 0 50px #06182c88}.fallback-arena:before{content:'';position:absolute;left:20%;bottom:28%;width:25%;height:45%;border-radius:70% 80% 0 0;background:#457d70;box-shadow:130px 10px 0 #52867a,65px 20px 0 #6d9682}.fallback-fighter{position:absolute;width:34%;bottom:7%;filter:drop-shadow(0 8px 6px #091b3888);animation:breathe 2.7s ease-in-out infinite}.fallback-fighter .portrait{border:2px solid #cdb77d99;border-radius:30% 30% 12% 12%;mask-image:linear-gradient(black 85%,transparent);-webkit-mask-image:linear-gradient(black 85%,transparent);background-color:transparent;aspect-ratio:.9}.fallback-fighter.player{left:8%;transform:rotate(-5deg)}.fallback-fighter.enemy{right:7%;bottom:21%;width:29%;animation-delay:-1s;transform:rotate(6deg)}.fallback-arena.attacking .player{animation:lunge .8s ease-in-out}.fallback-arena.enemyattacking .enemy{animation:enemylunge .8s ease-in-out}.fallback-label{position:absolute;top:7px;left:8px;font-size:8px;letter-spacing:1px;color:#e5f1ed;opacity:.65}.no3d{background:radial-gradient(ellipse at 50% 30%,#20506a,#081b30 60%)!important}
@keyframes spin{to{transform:rotate(180deg)}}@keyframes cutin{from{opacity:0;translate:100% 0}to{opacity:1;translate:0 0}}@keyframes flare{0%{opacity:0}10%,85%{opacity:1}100%{opacity:0}}@keyframes damage{0%{opacity:0;transform:scale(2)}20%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:translateY(-45px)}}@keyframes impact{from{opacity:1;transform:translate(-50%,-50%) scale(.1)}to{opacity:0;transform:translate(-50%,-50%) scale(4)}}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes breathe{50%{translate:0 -5px}}@keyframes lunge{50%{translate:40px -12px;rotate:10deg}}@keyframes enemylunge{50%{translate:-35px 15px;rotate:-10deg}}@media(min-width:700px){body{background:radial-gradient(ellipse,#173d50,#030c18)}#game{border-inline:1px solid #8eb6cd33}}@media(max-height:750px){.hero{height:210px}.battle-stage,.battle #world{height:160px}.fighter .portrait{width:32px}.fighter small{font-size:8px}.battle #main{padding-bottom:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:500px){.battle-stage,.battle #world{height:clamp(135px,18dvh,180px)}.battle #main{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.battle .row.wide{margin-top:4px}.battle .crew-hp{margin:6px 0 8px}.battle .battle-tools button{min-height:38px}}

.game-notices{position:fixed;z-index:10000;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));max-width:600px;max-height:55vh;overflow:auto;margin:auto;padding:20px;background:#081b30;border:1px solid #dcc078;border-radius:16px;box-shadow:0 15px 60px #000b;color:#f7ebd0}.game-notices p{font-size:14px;line-height:1.5}.game-notices button{min-height:44px;width:100%}

/* Source: visual020.css */
/* Visual direction 0.2 — live controls over clean game artwork. */
:root{--gold:#f2ce7a;--hud:#071826e8}svg{width:24px;height:24px;flex:none}.round svg{width:21px;height:21px}.round{display:grid;place-items:center}.view-home #world,.island-overview #world{visibility:hidden}.view-home #vignette,.island-overview #vignette{display:none}#nav{bottom:calc(9px + env(safe-area-inset-bottom,0px));width:calc(min(500px,100vw) - 28px);padding:9px 5px 10px;background:linear-gradient(130deg,#07121de6,#07121dc9);border:1px solid #ffe2a840;border-radius:12px;box-shadow:0 6px 20px #0007;backdrop-filter:blur(12px)}#nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:8px;color:#f3e7c6;min-height:42px}#nav button svg{width:25px;height:25px;color:#ecc374;filter:drop-shadow(0 1px 2px #000)}#nav button.active{color:#fff4bd}#nav button.active:before{display:none}#nav button.active svg{filter:drop-shadow(0 0 6px #f5bd51)}.pagehead h2{font-family:Arial,sans-serif;font-size:23px;font-weight:800;letter-spacing:0}.back{background:transparent;border:0;font-size:35px}.view-home{background:#071b30}.view-home #game{height:100dvh;min-height:600px}.view-home #main{padding:0;height:100dvh;min-height:600px;position:absolute;inset:0}.home-scene{position:absolute;inset:0;background:url('assets/home-v2.webp') 58% 46%/cover}.home-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(#07335e45,transparent 28%,transparent 78%,#05132655),linear-gradient(90deg,#0316293b,transparent 60%)}.view-home #top{height:65px;padding:10px 12px;z-index:4}.view-home .avatar{width:33px;height:33px;border-radius:4px;box-shadow:0 2px 5px #0009}.view-home .toprow{gap:6px}.view-home .profile b{font-size:12px;text-shadow:0 1px 3px #000}.view-home .profile small{font-size:8px;color:#fff5c6;text-shadow:0 1px 3px #000}.view-home .profile{max-width:83px;min-width:55px}.view-home .round{margin-left:auto;width:27px;height:27px;border:0;background:transparent;filter:drop-shadow(0 1px 3px #000);border-radius:3px;color:white}.view-home .round+.round{margin-left:0}.view-home .wallet{margin:0;position:absolute;left:138px;right:74px;top:14px;gap:3px;pointer-events:none}.view-home .wallet span{padding:4px 5px;gap:4px;border-radius:5px;font-size:9px;background:#061b33d6;border-color:#c2dded77;min-width:0;white-space:nowrap}.view-home .wallet span:last-child{display:none}.grand-logo{position:absolute;top:clamp(65px,11dvh,100px);left:10px;width:73%;z-index:1;transform:rotate(-2deg);filter:drop-shadow(2px 3px 2px #000)}.grand-logo:before{content:'';position:absolute;inset:-7px;background:linear-gradient(110deg,#020b12ed,#020d18d9 60%,transparent);clip-path:polygon(5% 3%,72% 0,100% 18%,93% 35%,100% 49%,88% 61%,96% 89%,52% 94%,29% 100%,0 80%,5% 45%,0 21%);z-index:-1}.grand-logo h1{font-family:Georgia,serif;text-align:center;letter-spacing:-2px;line-height:.93;margin:7px 10px;text-shadow:1px 2px #08121f,2px 3px #08121f}.grand-logo h1 span{display:block;color:#55c6e9;font-size:clamp(34px,10vw,49px);font-weight:900;-webkit-text-stroke:.5px #0d1b28}.grand-logo h1 strong{display:block;font-size:clamp(28px,8.4vw,41px);color:#f5d180;letter-spacing:-1px;-webkit-text-stroke:.4px #4e2f16}.logo-sail{display:none}.logo-flourish{display:block;text-align:center;font-size:13px;color:#d7a64b;letter-spacing:4px;line-height:1}.grand-menu{position:absolute;left:13px;top:35%;width:150px;display:grid;gap:9px}.grand-option{min-height:43px;display:flex;align-items:center;gap:10px;position:relative;padding:7px 10px 7px 8px;border:1px solid #e4c271;border-radius:6px;background:linear-gradient(95deg,#061420ee,#0c2439ce 72%,#15354d55);box-shadow:inset 0 0 0 1px #263b46,0 2px 5px #03102288;text-align:left;clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}.grand-option svg{color:#edc478;width:27px;height:27px;filter:drop-shadow(0 1px 2px #000)}.grand-option span{font-size:11px;font-weight:800;letter-spacing:.2px;text-shadow:0 1px 3px #000}.grand-option:hover{filter:brightness(1.2)}.ping{position:absolute;right:7px;top:0;background:#e83937;color:white;width:15px;height:15px;border:1px solid white;border-radius:50%;font-size:10px;font-style:normal;text-align:center}.home-caption{position:absolute;bottom:100px;right:14px;font-size:8px;letter-spacing:2px;text-shadow:0 1px 4px #000;color:#fff4cd;max-width:180px;text-align:right}.resume-ribbon{position:absolute;right:12px;bottom:124px;background:#052746e0;border:1px solid #f5d381;border-radius:5px;padding:9px;color:#fff1cb;font-size:11px;box-shadow:0 2px 10px #0008}.island-overview #top{display:none}.island-overview #main{padding:0;position:relative;height:100dvh;min-height:600px;overflow:hidden}.world-art{position:absolute;inset:0;background:url('assets/world-v2.webp') center 42%/cover}.world-art:after{content:'';position:absolute;inset:0;background:linear-gradient(#032b50aa,transparent 16%,transparent 85%,#07305288)}.world-heading{position:absolute;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 12px);display:flex;gap:9px;align-items:center;padding:0 12px}.world-heading>button{background:transparent;font-size:30px;padding:3px;color:white;filter:drop-shadow(0 1px 2px #000)}.world-heading h2{font:bold 19px Arial,sans-serif;color:white;text-shadow:0 1px 3px #000;letter-spacing:0}.difficulty{display:flex;gap:5px;margin-left:auto}.difficulty button{border:1px solid #6db7d6;background:#062345dd;border-radius:5px;padding:7px 10px;font-size:9px;min-width:62px}.difficulty .selected{background:#075b85c9;box-shadow:inset 0 0 9px #37d2ff80;border-color:#75e3ff}.island-hotspots{position:absolute;inset:0;pointer-events:none}.island-spot{position:absolute;transform:translate(-50%,-50%);min-width:99px;width:29%;border:1px solid #c6e2ed7a;border-radius:6px;background:linear-gradient(#081b2ce8,#061322da);padding:6px 3px 5px;box-shadow:0 3px 8px #0007;pointer-events:auto}.island-spot strong{display:block;font-size:10px;text-shadow:0 1px 3px #000;white-space:nowrap}.island-spot span{display:block;font-size:12px;color:#ffe09a;padding-top:4px}.island-spot.unreached span{color:#c4d8e0}.world-bottom{position:absolute;left:12px;right:12px;bottom:105px}.world-bottom>.secondary{width:auto;display:flex;gap:10px;align-items:center;padding:7px 12px;font-size:10px;background:#061b30c9;backdrop-filter:blur(6px)}.world-bottom>.secondary svg{width:18px;height:18px}.other-islands{position:absolute;bottom:42px;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#041b2ef2;padding:10px;border:1px solid #d2e8ed44;border-radius:8px}.other-islands button{text-align:left;background:#14364d;border:1px solid #e9d59a44;padding:11px 7px;border-radius:4px;font-size:10px}.other-islands span{float:right;color:var(--gold)}.view-map:not(.island-overview) #world{opacity:.4}.view-collection #main,.view-team #main{background:linear-gradient(#041321ba,#041321e8)}.view-collection .grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.card{border-radius:3px;border:1px solid #c3a355;box-shadow:inset 0 0 0 1px #ffeeac55,0 2px 6px #0006}.card .portrait{aspect-ratio:.65}.card .rarity{top:auto;bottom:26px;left:2px;font-size:15px;font-style:italic;color:#ffe6e9;text-shadow:-1px 0 #a21d25,1px 1px #a21d25,2px 2px #18090e}.card .name{padding:4px 3px 1px;font-size:8px}.card .info{padding:0 3px 4px;font-size:7px}.card .info>span:last-child{display:none}.card .badge{font-size:6px;padding:2px;bottom:30px;right:2px}.view-collection .filters{gap:4px}.view-collection .filters select,.view-collection .filters button{font-size:9px;padding:8px 6px}.team-lineup{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-bottom:22px}.team-slot{border:1px solid #e3bc69;border-radius:3px;background:#10273c;position:relative;min-width:0}.team-slot .portrait{aspect-ratio:.55}.team-slot .slotnumber{position:absolute;top:0;left:0;right:0;z-index:1;padding:4px 1px;text-align:center;font-size:6px;background:#05132399}.team-slot b{font-size:7px;padding:5px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-slot:first-child{box-shadow:0 0 12px #f4bc4b66}.view-team #main{padding-inline:12px}.view-team .pagehead h2{font-size:21px}.view-team .subtitle{font-size:11px}.view-team .panel{border-radius:4px}
/* Battle: one continuous 3D stage, perspective orb field, compact lower HUD. */
.battle #game{height:100dvh;min-height:580px;overflow:hidden;background:linear-gradient(#346e91,#1c4c69 45%,#4e5945)}.battle #top,.battle #nav{display:none}.battle #main{position:relative;padding:0!important;height:100dvh;min-height:580px;overflow:hidden}.battle #world{top:0!important;width:min(500px,100vw);height:100dvh!important;visibility:visible}.battle #vignette{background:linear-gradient(#0413268c,transparent 18%,transparent 64%,#061526e8 89%,#041323);z-index:0}.battle-shell{position:relative;height:100%;isolation:isolate}.battle-top{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));left:9px;right:9px;display:flex;gap:6px;align-items:center;z-index:5}.enemy-badge{width:46px;height:46px;border-radius:50%;border:2px solid #e8c27a;overflow:hidden;box-shadow:0 2px 5px #0007;flex:none}.battle .enemyhud{flex:1;min-width:0;border:0;padding:4px 0;background:transparent}.enemyhud .row{font-size:9px;margin:0 0 5px;gap:6px}.enemyhud b{font-size:10px}.battle .enemyhud .bar{height:12px;border:1px solid #f6b9c2;border-radius:0;transform:skewX(-15deg);box-shadow:0 1px 5px #0009;background:#4b172c}.battle .enemyhud .bar i{background:linear-gradient(#f6334b,#ad163c)}.enemyhud small{display:block;margin-top:5px;font-size:8px;color:#e0e6ea;text-shadow:0 1px 3px #000}.battle-menubtn{padding:7px 8px;border:1px solid #c7dcec;border-radius:5px;background:#08233dd9;font-size:9px;align-self:flex-start}.battle .battle-stage{position:absolute;inset:0;height:auto!important;pointer-events:none}.battle .battlelog{bottom:auto;top:calc(90px + env(safe-area-inset-top,0px));left:20%;right:7%;font-size:10px;background:transparent;padding:0;text-align:right;color:#fff9e6;text-shadow:0 1px 3px #000,0 1px 5px #000}.battle-dock{position:absolute;left:10px;right:10px;bottom:calc(4px + env(safe-area-inset-bottom,0px));z-index:4}.battle .rotation{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-inline:22px;align-items:end}.battle .fighter{display:flex;flex-direction:column;align-items:center;gap:0;background:transparent;border:0;padding:0;border-radius:0;text-align:center;min-width:0;box-shadow:none}.medallion{display:block;border:3px solid #cda75d;border-radius:50%;width:clamp(60px,19vw,92px);height:clamp(60px,19vw,92px);padding:3px;background:radial-gradient(ellipse,#edcf81,#765324);box-shadow:0 0 0 2px #20251f,0 0 0 3px #eac57c88,0 0 19px #d9aa2a55;position:relative}.medallion .portrait{width:100%!important;height:100%;border-radius:50%;aspect-ratio:1}.medallion i{position:absolute;bottom:-2px;right:-3px;font-style:normal;font-size:13px;background:#142f45;border:1px solid #eed080;line-height:20px;width:22px;height:22px;border-radius:50%;color:var(--type)}.battle .fighter.current .medallion{border-color:#ffdf6e;box-shadow:0 0 0 2px #672f13,0 0 0 3px #ffe081,0 0 23px #ffbe3d9c;transform:scale(1.08);margin-bottom:3px}.battle .fighter b{font-size:10px;max-width:100%;margin-top:6px;color:white;text-shadow:0 1px 3px #000}.battle .fighter small{font-size:8px;margin-top:3px;color:#f8d997}.battle .crew-hp{margin:10px 4px 8px!important}.battle .crew-hp .row{margin:0;gap:8px;align-items:center}.battle .crew-hp .row>b{font:bold italic 17px Arial;color:#f4d85f}.battle .crew-hp .bar{flex:1;min-width:60px;height:12px;border-radius:0;border:1px solid #8bffdc;transform:skewX(-15deg)}.battle .crew-hp small{font-size:8px;white-space:nowrap}.battle .crew-hp .bar i{background:linear-gradient(#3aeab9,#078d8d)}.battle .battle-tools{margin:0;gap:5px}.battle .battle-tools button{min-height:39px!important;font-size:9px;padding:9px 4px;border-radius:4px;backdrop-filter:blur(7px)}.battle .battle-tools .primary{background:linear-gradient(#f7d985,#cb983d);color:#172636;border-color:#fff0b5;justify-content:center;font-size:10px}.battle-foot{display:flex;justify-content:space-between;margin-top:4px}.battle-foot button{font-size:8px;padding:5px}.battle .fallback-arena{inset:0;border-radius:0;background:linear-gradient(#337b9d 0%,#87bbcb 40%,#3d8296 42%,#225e73 58%,#887f54 59%,#4c5d46);box-shadow:inset 0 0 100px #021a3544}.battle .fallback-arena:before{left:-3%;bottom:26%;height:18%;width:31%;background:#657856;box-shadow:240px -40px 0 #48705e,140px -25px 0 #7b8962}.battle .fallback-fighter.player{left:-3%;bottom:25%;width:45%;transform:rotate(-9deg)}.battle .fallback-fighter.enemy{right:26%;bottom:65%;width:25%;transform:rotate(5deg)}.battle .fallback-fighter .portrait{border-radius:35% 35% 10% 10%;border-width:1px;mask-image:linear-gradient(black 65%,transparent);-webkit-mask-image:linear-gradient(black 65%,transparent)}.battle .fallback-label{top:auto;bottom:35%;left:10px;font-size:6px;writing-mode:vertical-rl;letter-spacing:1px;opacity:.5}.battle .result{position:relative;padding:calc(35px + env(safe-area-inset-top,0px)) 20px 110px;overflow-y:auto;height:100dvh;background:#041b30ef}.battle .result .team-strip{gap:5px}.battle .result h2{font-size:44px}.battle .result .primary{justify-content:center}.battle .specialfx{z-index:9}@media(max-height:720px){.grand-menu{top:35%;gap:6px}.grand-option{min-height:37px;padding-block:5px}.grand-logo{top:70px}.grand-logo h1 span{font-size:36px}.grand-logo h1 strong{font-size:31px}.battle .rotation{padding-inline:29px;gap:15px}.medallion{width:57px;height:57px}.battle .fighter b{font-size:9px;margin-top:3px}.battle .crew-hp{margin-top:6px!important}.battle .battlelog{top:75px}.battle .battle-tools button{min-height:34px!important}.battle-foot button{padding:4px}.grand-menu{width:143px}}@media(min-width:600px){.grand-logo h1 span{font-size:49px}.grand-logo h1 strong{font-size:41px}.grand-menu{width:170px;gap:11px}.grand-option{min-height:49px}.grand-option span{font-size:12px}.battle .medallion{width:85px;height:85px}}@media(prefers-reduced-motion:reduce){}
.island-spot:active:not(:disabled){transform:translate(-50%,-50%) scale(.97)}.island-spot>*{pointer-events:none}.view-collection .grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.avatar{background-image:url('assets/portraits/0.webp');background-size:cover}.battle .enemy-badge .portrait{width:100%;height:100%}

/* Source: illustrated.css */
/* 0.3 — Illustrated 2.5D animation. Procedural actors are no longer rendered. */
.battle #world{image-rendering:auto;background:#11263c}.battle #vignette{background:linear-gradient(#03122452,transparent 20%,transparent 61%,#031323c2 86%,#031323)}.battle .battlelog{top:calc(79px + env(safe-area-inset-top,0px));left:14px;right:14px;padding:5px 8px;font-size:9px;background:linear-gradient(90deg,#03162800,#03162888);border-radius:3px}.battle .battlelog:empty{display:none}.battle .enemyhud .bar{height:11px}.battle .enemyhud small{font-size:8px;text-shadow:0 1px 4px #000}.battle .battle-top{background:linear-gradient(#02152766,transparent);border-radius:8px;padding-bottom:4px}.battle .rotation{padding-inline:22px;gap:20px}.battle .medallion{width:clamp(56px,18vw,84px);height:clamp(56px,18vw,84px)}.battle .fighter b{font-size:9px}.battle .fighter small{font-size:7px}.battle .battle-tools button{background:#08283ecf;border-color:#b7daea77;min-height:37px!important}.battle .battle-tools .primary{background:linear-gradient(135deg,#fbe9ae,#ddb95d);border-color:#fff3be}.battle .crew-hp{margin-top:8px!important;margin-bottom:7px!important}.battle .crew-hp .bar{height:11px}.battle .battle-foot button{color:#e9d7ab;font-size:8px;padding-top:5px}.battle-dock{bottom:calc(4px + env(safe-area-inset-bottom,0px))}.view-settings .panel{border-color:#f3d69944}
.cinema{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 55% 42%,#18294688,#020c1be8 76%);animation:cinemaBackground 2.3s both;isolation:isolate}.cinema-rays{position:absolute;inset:-80%;background:repeating-conic-gradient(from 25deg,transparent 0deg 9deg,var(--glow) 9.5deg 10deg,transparent 10.5deg 24deg);opacity:.2;animation:cinemaRays 2.4s linear both;mix-blend-mode:screen}.cinema-ring{position:absolute;left:50%;top:40%;width:180px;height:180px;border-radius:50%;border:5px solid var(--glow);box-shadow:0 0 30px var(--glow),inset 0 0 30px var(--glow);transform:translate(-50%,-50%);animation:cinemaRing 2.3s both}.cinema-actor{position:absolute;left:0;right:0;top:12%;width:100%;height:62%;object-fit:contain;filter:drop-shadow(0 0 14px var(--glow)) drop-shadow(0 7px 5px #0008);transform-origin:55% 65%;animation:cinemaStrike 2.3s cubic-bezier(.18,.7,.18,1) both;will-change:transform}.cinema-caption{position:absolute;left:15px;right:15px;bottom:18%;transform:rotate(-5deg);text-align:center;text-shadow:2px 3px #051223,0 0 15px #000;animation:cinemaCaption 2.3s both;z-index:2}.cinema-caption small{display:block;font-size:10px;letter-spacing:4px;color:#ffe4a4;margin-bottom:7px}.cinema-caption strong{font:900 italic clamp(25px,7vw,39px) Georgia,serif;line-height:1.05;text-transform:uppercase;color:#fff1d8;-webkit-text-stroke:.5px #112137;filter:drop-shadow(0 0 8px var(--glow))}.cinema-beam{position:absolute;left:-30%;top:43%;height:11%;width:170%;background:linear-gradient(0deg,transparent,var(--glow) 22%,#fff6d7 48%,var(--glow) 74%,transparent);transform:rotate(-30deg);box-shadow:0 0 25px var(--glow);opacity:0;animation:cinemaBeam 2.3s both;mix-blend-mode:screen}.cinema-slash .cinema-beam{height:3px;box-shadow:0 0 0 8px #e8d9ff44,0 0 30px var(--glow);transform:rotate(-40deg)}.cinema-lightning .cinema-beam{clip-path:polygon(0 50%,38% 25%,34% 45%,72% 0,64% 45%,100% 20%,73% 68%,78% 48%,25% 100%,33% 63%);height:27%;top:34%}.cinema-room .cinema-ring{border-width:2px;width:280px;height:280px;box-shadow:0 0 50px var(--glow);background:radial-gradient(ellipse,#4dd7ff22,transparent)}.cinema-ice .cinema-beam{clip-path:polygon(0 10%,50% 30%,40% 0,100% 40%,80% 50%,100% 80%,30% 100%,42% 70%,0 60%)}.cinema-shadow .cinema-rays{opacity:.4}.cinema-flash{position:absolute;inset:0;background:#fffae6;opacity:0;animation:cinemaFlash 2.3s both;z-index:4;mix-blend-mode:screen}
@keyframes cinemaBackground{0%{opacity:0}10%,87%{opacity:1}100%{opacity:0}}@keyframes cinemaRays{from{transform:rotate(-15deg) scale(.7)}to{transform:rotate(30deg) scale(1.3)}}@keyframes cinemaRing{0%{opacity:0;scale:.1}20%{opacity:.8;scale:.6}55%{opacity:.8;scale:1.25}80%,100%{opacity:0;scale:3}}@keyframes cinemaStrike{0%{transform:translate(-90%,20%) scale(.55) rotate(-12deg);opacity:0}18%{transform:translate(-4%,2%) scale(.9) rotate(-3deg);opacity:1}42%{transform:translate(0,0) scale(1) rotate(0)}63%{transform:translate(14%,-5%) scale(1.25) rotate(5deg)}83%{transform:translate(33%,-9%) scale(1.55) rotate(9deg);opacity:1}100%{transform:translate(75%,-15%) scale(1.8);opacity:0}}@keyframes cinemaCaption{0%,15%{opacity:0;translate:-90% 0}26%,78%{opacity:1;translate:0 0}100%{opacity:0;translate:20% 0}}@keyframes cinemaBeam{0%,47%{opacity:0;translate:-70% 0}62%{opacity:.95;translate:0 0}78%{opacity:.4;translate:30% 0}100%{opacity:0;translate:100% 0}}@keyframes cinemaFlash{0%,59%{opacity:0}61%{opacity:.8}66%{opacity:0}69%{opacity:.25}73%,100%{opacity:0}}@media(max-height:720px){.battle .rotation{gap:20px;padding-inline:26px}.battle .medallion{width:56px;height:56px}.battle .fighter b{margin-top:3px}.battle .crew-hp{margin-top:6px!important}.battle .battlelog{top:70px;font-size:8px}.battle .battle-tools button{min-height:32px!important}.battle .battle-foot button{padding:3px}.cinema-actor{top:8%;height:67%}}@media(prefers-reduced-motion:reduce){.cinema-actor{animation:cinemaSimple .7s both}.cinema-rays,.cinema-ring,.cinema-beam,.cinema-flash{animation:none;display:none}.cinema-caption{animation:cinemaSimple .7s both}.cinema{animation:cinemaSimple .7s both}@keyframes cinemaSimple{from{opacity:0}to{opacity:1}}}
body:not(.battle) #world{visibility:hidden}.view-map:not(.island-overview) .mapview{background:linear-gradient(transparent,#08263b99),url('assets/world-anime.webp') center 35%/cover;border:1px solid #8abace55}.view-map:not(.island-overview) .mapview:before{display:none}.view-map:not(.island-overview) .island-title{background:#041e32ac;border-radius:5px;padding:8px 12px;backdrop-filter:blur(5px)}

/* Source: combat031.css */
/* Recording review fixes: readable HUD, grounded actors, clear action and organic board. */.battle .battlelog{font-size:12px;line-height:1.4;top:calc(79px + env(safe-area-inset-top,0px));left:14px;right:14px;color:#fff5dc;background:linear-gradient(90deg,#041b30b8,#041b30dc);border:1px solid #b5d6e32e;padding:6px 9px;text-align:center}.battle .battle-top{top:calc(9px + env(safe-area-inset-top,0px));left:10px;right:10px;gap:8px}.battle .enemyhud b{font-size:13px}.battle .enemyhud .row{font-size:11px;gap:6px}.battle .enemyhud small{font-size:11px}.battle .enemyhud .bar{height:12px}.battle .enemy-badge{width:47px;height:47px}.battle .battle-menubtn{font-size:12px;min-height:38px;padding:8px}.battle .rotation{padding-inline:18px;gap:16px}.battle .medallion{width:64px;height:64px}.battle .fighter b{font-size:12px;line-height:1.2;margin-top:6px}.battle .fighter small{font-size:11px;margin-top:4px}.battle .crew-hp{margin:9px 2px!important}.battle .crew-hp small{font-size:11px}.battle .crew-hp .bar{height:13px}.battle .battle-tools button{font-size:12px;min-height:44px!important;padding:10px 5px}.battle .battle-tools .primary{font-size:12px}.battle .battle-foot{margin-top:4px}.battle .battle-foot button{font-size:11px;min-height:27px;padding:5px 4px}.battle .resolving .fighter{pointer-events:none}.battle .resolving .rotation{opacity:.84}.battle .cinema{animation-duration:.7s;pointer-events:none}.battle .cinema-actor,.battle .cinema-ring,.battle .cinema-beam,.battle .cinema-caption,.battle .cinema-flash{animation-duration:.7s}.battle .cinema-caption{bottom:19%}.battle .damage{top:32%;font-size:clamp(36px,10vw,50px)}.battle .impact{top:34%}.battle .battle-dock{bottom:calc(3px + env(safe-area-inset-bottom,0px))}
@media(max-height:720px){.battle .medallion{width:55px;height:55px}.battle .fighter b{font-size:11px;margin-top:4px}.battle .fighter small{font-size:10px;margin-top:3px}.battle .rotation{padding-inline:24px;gap:16px}.battle .battlelog{font-size:11px;top:68px;padding:4px 7px}.battle .crew-hp{margin:7px 2px!important}.battle .battle-tools button{font-size:11px;min-height:42px!important}.battle .battle-foot button{font-size:10px;min-height:24px}}
@media(max-height:640px){.battle .medallion{width:46px;height:46px}.battle .rotation{gap:18px}.battle .fighter b{margin-top:3px}.battle .fighter small{font-size:10px;margin-top:2px}.battle .crew-hp{margin:5px 2px!important}.battle .battle-foot{margin-top:1px}.battle .battle-tools button{min-height:40px!important}.battle .battlelog{top:65px;font-size:10px}.battle .enemyhud small{font-size:10px}}
@media(prefers-reduced-motion:reduce){}

/* Source: combat032.css */
/* 0.3.2: a deep field converging on the opponent, with a compact command dock. */
.battle .battlelog{top:auto;bottom:calc(169px + env(safe-area-inset-bottom,0px));left:13px;right:13px;min-height:15px;border:0;background:none;padding:0;text-align:center;font-size:11px;pointer-events:none;text-shadow:0 2px 3px #000,0 0 8px #00111f}
.battle .selecting .battlelog{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.battle .battle-dock{left:12px;right:12px;bottom:calc(2px + env(safe-area-inset-bottom,0px))}
.battle .rotation{padding-inline:24px;gap:25px}.battle .medallion{width:54px;height:54px;border-width:2px;padding:2px}.battle .fighter.current .medallion{transform:scale(1.1);margin-bottom:1px}.battle .fighter b{font-size:11px;margin-top:4px}.battle .fighter small{font-size:10px;margin-top:2px}.battle .medallion i{width:18px;height:18px;line-height:16px;font-size:11px}
.battle .crew-hp{margin:7px 2px!important}.battle .crew-hp .bar{height:10px}.battle .crew-hp small{font-size:10px}.battle .crew-hp .row>b{font-size:16px}
.battle .battle-tools{display:grid;grid-template-columns:1fr 1fr 1.55fr;gap:5px}.battle .battle-tools button{font-size:10px;min-height:36px!important;padding:7px 3px}.battle .battle-tools .primary{font-size:11px}.battle .battle-foot{margin-top:1px}.battle .battle-foot button{font-size:10px;min-height:25px;padding:4px 2px}
.battle #vignette{background:linear-gradient(#03122452,transparent 18%,transparent 68%,#031323a8 83%,#031323e8)}
@media(max-height:660px){.battle .medallion{width:46px;height:46px}.battle .battlelog{bottom:calc(157px + env(safe-area-inset-bottom,0px))}.battle .battle-tools button{min-height:34px!important}.battle .fighter b{margin-top:3px}.battle .fighter small{font-size:9px}.battle .rotation{padding-inline:29px}}
@media(prefers-reduced-motion:reduce){}

/* 0.3.3: reserve the foreground ally lane and keep the caption in dock flow. */
@media(max-height:660px){}

/* Source: combat040.css */
/* Preparation is distinct from automatic turn resolution. */
.battle .turn-phase{position:absolute;top:calc(78px + env(safe-area-inset-top,0px));left:15px;right:15px;text-align:center;font-size:10px;letter-spacing:1.3px;color:#fff0be;text-shadow:0 2px 4px #001425;pointer-events:none}
.battle .resolving .turn-phase{color:#ffe7aa}
.battle .energy-meter{display:block;height:4px;border:1px solid #8ec2b980;background:#032c3b;width:58px;margin:4px 0 0;transform:skewX(-12deg)}.battle .energy-meter i{display:block;height:100%;background:linear-gradient(90deg,#18cbba,#fff2ac);transition:width .2s}
.battle .prepared .medallion{border-color:#66efcb;box-shadow:0 0 0 2px #0f594b,0 0 12px #36dcc944}.battle .prepared small{color:#9cf6d6;font-size:9px}.battle .prepared .medallion i{color:#97ffcf;background:#083e39}.battle .battlelog{bottom:calc(184px + env(safe-area-inset-bottom,0px))}
.battle .damage{font-style:italic;color:#fff2bd;text-shadow:2px 3px #6c281d,0 0 12px #ffbe4c;top:39%;animation:damageImpact .7s both}.battle .impact{top:43%}
@keyframes damageImpact{0%{opacity:0;transform:scale(2) rotate(-8deg)}20%{opacity:1;transform:scale(1) rotate(-8deg)}75%{opacity:1;translate:0 -8px}100%{opacity:0;translate:0 -24px}}
@media(max-height:660px){.battle .turn-phase{top:68px;font-size:9px}.battle .battlelog{bottom:calc(173px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.battle .damage{animation:none}.battle .energy-meter i{transition:none}}

/* Source: combat050.css */
/* Animated visual shell: button geometry never moves during idle. */.battle .fighter b{font-size:12px}.battle .fighter small,.battle .prepared small{font-size:10px;font-weight:600;color:#fff0bf;text-shadow:0 1px 3px #000}.battle .prepared small{color:#a8ffdb}.battle .turn-phase{font-size:11px;font-weight:700;letter-spacing:.8px;background:#031d3299;border-radius:4px;padding:4px 6px;left:22%;right:22%}
.battle .battlelog{font-size:12px;color:#fff4da;background:#031d32db;border:1px solid #d4e9f32e;border-radius:4px;padding:5px 7px;bottom:calc(200px + env(safe-area-inset-bottom,0px))}
.battle .battle-tools button{font-size:11px;min-height:38px!important}.battle .battle-tools .primary{font-size:12px}
.battle .cinema-actor{display:none}.battle .cinema{background:linear-gradient(125deg,#031325c9,transparent 66%);animation:signatureIntro .8s both}.battle .cinema-caption{bottom:auto;top:25%;left:12px;right:12px;text-align:left;animation:signatureIntro .8s both}.battle .cinema-caption strong{font-size:clamp(25px,7vw,36px)}.battle .cinema-rays,.battle .cinema-ring,.battle .cinema-beam,.battle .cinema-flash{display:none}
@keyframes signatureIntro{0%{opacity:0;translate:-35px 0}20%,65%{opacity:1;translate:0 0}100%{opacity:0;translate:20px 0}}
.app-paused *,.app-paused *:before,.app-paused *:after{animation-play-state:paused!important}
@media(max-height:660px){.battle .turn-phase{font-size:10px}.battle .fighter b{font-size:11px}.battle .fighter small,.battle .prepared small{font-size:9px}.battle .battlelog{bottom:calc(186px + env(safe-area-inset-bottom,0px));font-size:11px}}
@media(prefers-reduced-motion:reduce){.battle .cinema{display:none}}

/* Source: combat051.css */
/* Larger opponent with a clear interval above the sphere field. */
.battle .battle-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.battle .battle-tools button{font-size:12px;min-height:40px!important}
@media(max-height:660px){}
.battle .fallback-fighter.enemy{width:32%;bottom:61.5%;right:26%}

/* Source: combat070.css */
.battle .battle-plan{position:absolute;left:10px;top:25%;width:30%;max-width:145px;z-index:3;padding:7px;border:1px solid #d9d6a94a;border-radius:5px;background:linear-gradient(135deg,#031c31dc,#092b3dc9);text-shadow:0 1px 2px #00101d;pointer-events:none}
.battle .battle-plan small{display:block;font-size:8px;letter-spacing:.6px;color:#c8d8e1}.battle .battle-plan strong{display:block;font-size:12px;line-height:1.2;color:#ffe6a3;margin-top:4px}.battle .battle-plan span{display:block;font-size:9px;line-height:1.25;color:#e1e9e9;margin-top:4px}.battle .resolving .battle-plan{display:none}
.battle .medallion i{font-family:Arial,sans-serif;font-weight:800;font-size:11px}
@media(max-height:660px){.battle .battle-plan{top:24%;padding:5px}.battle .battle-plan strong{font-size:11px}.battle .battle-plan span{font-size:8px}.battle .battle-plan small{font-size:7px}}
.battle .battle-plan[data-intent="charge"]{border-color:#ff9c7280;background:linear-gradient(135deg,#32152ce8,#35202acc)}.battle .battle-plan[data-intent="charge"] strong{color:#ffb89d}.battle .battle-plan[data-intent="guard"]{border-color:#8edbeb70}.battle .battle-plan[data-intent="guard"] strong{color:#b3edff}

/* Source: combat080.css */
/* Central perspective fan; player silhouette stays at the left edge. */
.battle .battle-plan{top:17%;left:10px;width:auto;max-width:115px;padding:4px 6px;background:#031c3180;border:0;border-left:2px solid #e5c47580}
.battle .battle-plan small{display:none}.battle .battle-plan strong{font-size:10px;margin:0}.battle .battle-plan span{font-size:8px;margin-top:2px}
.battle .turn-phase{top:72px;left:27%;right:23%;font-size:9px;padding:3px;background:#031d3266;letter-spacing:.4px}
.battle .rotation{padding-inline:25px;gap:25px}.battle .medallion{width:52px;height:52px}.battle .fighter b{font-size:11px;margin-top:3px}.battle .fighter small{font-size:9px}.battle .energy-meter{height:3px}
.battle .crew-hp{margin:6px 2px!important}.battle .crew-hp .bar{height:10px}.battle .crew-hp small{font-size:10px}
.battle .battle-tools button{min-height:40px!important;padding:6px;font-size:11px}.battle .battle-foot button{font-size:10px;min-height:24px;padding:3px}
@media(max-height:660px){.battle .medallion{width:40px;height:40px}.battle .turn-phase{top:65px;font-size:8px}.battle .battle-tools button{min-height:40px!important}.battle .fighter small{font-size:8px}}

/* Source: combat112.css */
/* More saturated energy, curved depth bands, and no support-action dock. */
.battle .battle-dock{bottom:calc(5px + env(safe-area-inset-bottom,0px))}.battle .battle-foot{margin-top:7px}
@media(max-height:660px){}
@media(prefers-reduced-motion:reduce){}

/* Source: story.css */
.view-story{background:#071b2d}.view-story #main{padding-bottom:95px}.story-intro{padding:4px 3px 15px}.story-intro h1{font-size:29px;line-height:1.12;color:#fff0bf;margin:5px 0 12px}.story-intro p{font-size:13px;line-height:1.6;color:#d2dfeb}
.chapter-card{position:relative;display:block;width:100%;text-align:left;padding:65px 16px 20px;margin:12px 0;border:1px solid #e3bb6870;border-radius:12px;overflow:hidden;background:linear-gradient(0deg,#041728 8%,#0417289c 65%,#04172815),var(--chapter-art) center 40%/cover;color:white}.chapter-card:disabled{opacity:.5}.chapter-card>span,.chapter-card small{font-size:10px;color:#f8df9b;letter-spacing:.6px}.chapter-card h2{font-size:24px;margin:8px 0}.chapter-card p{font-size:12px;line-height:1.5}.chapter-card i{position:absolute;bottom:0;left:0;height:3px;background:#f5cd68}
.chapter-hero{padding:100px 16px 20px;background-size:cover;background-position:center 35%;position:relative;isolation:isolate;border-radius:12px;overflow:hidden}.chapter-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#041728);z-index:-1}.chapter-hero h1{font-size:27px;color:#fff1bf;margin:8px 0}.chapter-hero span,.chapter-hero p{font-size:12px}
.story-timeline{padding:12px 0}.story-node{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:15px 10px;border-radius:8px;background:#102c40;border:1px solid #99c5d52b;margin:9px 0;color:#eaf5ff}.story-node:disabled{opacity:.42}.story-node.done{border-color:#d8b86666}.story-node>div{flex:1}.node-number{border:1px solid #e2c37888;color:#f3d78b;border-radius:50%;min-width:28px;height:28px;text-align:center;line-height:26px}.story-node small{font-size:9px;letter-spacing:1px;color:#e2c378}.story-node h3{font-size:15px;margin:5px 0}.story-node p{font-size:11px;line-height:1.5;color:#bcd0df;margin:0}.story-stars{color:#fbd477;letter-spacing:4px}
.story-scene{height:min(57dvh,470px);min-height:310px;background-size:cover;background-position:center;position:relative;overflow:hidden;border:1px solid #e1bb6a55;border-radius:12px}.scene-label{position:absolute;top:12px;left:12px;right:12px;color:#ffe1a1;text-shadow:0 2px 4px #00101b;font-size:10px;letter-spacing:.6px;background:#051b2b99;padding:7px;border-radius:4px}.scene-character{position:absolute;bottom:110px;left:15%;width:70%;height:65%;object-fit:contain;filter:drop-shadow(0 8px 8px #00101f55)}.dialogue{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(#051b2bea,#051b2b);padding:15px;min-height:128px;border-top:1px solid #d7b56666}.dialogue strong{color:#ffe2a1;font-size:14px}.dialogue p{font-size:14px;line-height:1.6;margin:8px 0}.dialogue small{float:right;color:#b9ceda;font-size:10px}.view-story .primary{margin-top:12px;min-height:46px}.search-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.search-grid button{min-height:52px;font-size:12px}.search-feedback{font-size:13px;line-height:1.5;color:#f4dfa7}.view-story .panel>p{font-size:13px;line-height:1.6}.story-result>p{font-size:14px;line-height:1.6}.battle .rotation:has(.fighter:only-child){grid-template-columns:1fr}.battle .rotation:has(.fighter:nth-child(2):last-child){grid-template-columns:1fr 1fr}
/* Linear story scenes: animated cast, dialogue, then battle. No inspection UI. */
body.story-playing #top,body.story-playing #nav,body.story-playing #world,body.story-playing #vignette{display:none}
body.story-playing #main{padding:0;min-height:100dvh}.story-cinematic{height:100dvh;max-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:calc(8px + env(safe-area-inset-top,0px)) 8px calc(10px + env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow:hidden;background:#061829}
.cinematic-heading{display:flex;align-items:center;gap:8px;padding:0 3px 8px;min-height:42px}.cinematic-heading>div{flex:1;min-width:0}.cinematic-heading small{font-size:8px;letter-spacing:.5px;color:#d6bd7a}.cinematic-heading h2{font:bold 15px Arial;margin:5px 0;color:#f9e7bb}.cinematic-heading>.textbtn{font-size:10px;color:#d1c7aa;padding:8px 4px;min-height:38px}.cinematic-heading .back{min-height:38px}
.story-scene.cinematic-scene{height:100%;min-height:0;border-radius:10px;isolation:isolate;background-position:50% 45%;animation:storyCamera 10s ease-in-out infinite alternate}.cinematic-cast{position:absolute;inset:40px 0 160px;overflow:hidden}.scene-actor{position:absolute;bottom:0;width:72%;height:100%;transform-origin:50% 100%;animation:storyEntrance .35s ease-out both;filter:drop-shadow(0 7px 5px #03102066)}.scene-actor.actor-0{left:-9%}.scene-actor.actor-1{right:-10%;height:93%}.scene-actor img{width:100%;height:100%;object-fit:contain;object-position:50% 100%;animation:storyBreath 3.1s ease-in-out infinite;animation-delay:var(--actor-delay);transform-origin:50% 100%}.scene-actor.is-listening{filter:brightness(.82) saturate(.9) drop-shadow(0 7px 5px #03102066)}.scene-actor.is-speaking{z-index:2}.scene-actor.is-speaking img{animation:storySpeak 2.5s ease-in-out infinite;animation-delay:var(--actor-delay)}
.cinematic-scene .dialogue{height:160px;min-height:0;box-sizing:border-box;padding:13px 15px;background:linear-gradient(#061e32ed,#061827);border-top:1px solid #dfbd6a99}.cinematic-scene .dialogue strong{font-size:15px}.cinematic-scene .dialogue p{font-size:14px;line-height:1.55;margin-top:9px;animation:storyText .25s ease-out both}.cinematic-controls{padding:8px 2px 0}.cinematic-controls .primary{width:100%;margin:0;min-height:44px;font-size:12px}.cinematic-controls p{font-size:10px;line-height:1.4;margin:6px 3px;color:#dfcfa6}.cinematic-controls>small{display:block;text-align:center;font-size:9px;color:#99b5c8;padding-top:6px}.cinematic-controls>.textbtn{width:100%;font-size:10px;min-height:28px;color:#efcf87}
@keyframes storyEntrance{from{opacity:0;translate:15px 0}to{opacity:1;translate:0 0}}@keyframes storyBreath{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-1px) scaleY(1.008)}}@keyframes storySpeak{0%,100%{transform:rotate(-.25deg) scaleY(1)}50%{transform:rotate(.35deg) scaleY(1.01)}}@keyframes storyCamera{to{background-position:52% 46%}}@keyframes storyText{from{opacity:.25;translate:0 3px}to{opacity:1;translate:0 0}}
@media(max-height:600px){.cinematic-cast{bottom:145px}.cinematic-scene .dialogue{height:145px;padding:10px 12px}.cinematic-scene .dialogue p{font-size:12px;line-height:1.5}.cinematic-heading h2{font-size:13px}}
@media(prefers-reduced-motion:reduce){.cinematic-scene,.scene-actor,.scene-actor img,.cinematic-scene .dialogue p{animation:none!important}}body[data-quality="low"] .cinematic-scene,body[data-quality="low"] .scene-actor img{animation:none!important}

/* Source: character-cards.css */
/* Full-body collectible art with an independent live canvas and data panels. */
dialog.character-dialog{padding:0;width:calc(100% - 14px);max-width:460px;max-height:94dvh;border:1px solid #c7ae6b99;border-radius:9px;background:#071c2e;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}dialog.character-dialog #modalContent{position:relative}dialog.character-dialog #modalContent>.close{position:absolute;right:9px;top:8px;z-index:12;float:none;width:36px;height:36px;min-height:36px;display:grid;place-items:center;border:1px solid #ffe6a455;border-radius:50%;background:#061527ca;color:#fff2c5;font:23px Arial;backdrop-filter:blur(6px)}
.character-heading{height:54px;padding:8px 55px 5px 12px;background:linear-gradient(100deg,#17384b,#071c2e);border-bottom:1px solid #e0bf6a55}.character-heading small{font-size:8px;letter-spacing:1.7px;color:#e5c780}.character-heading h2{font:bold 20px Arial;margin:3px 0!important;color:#fff2ce;line-height:1.1}
.live-card{position:relative;isolation:isolate;height:clamp(300px,50dvh,430px);overflow:hidden;background:radial-gradient(ellipse at 50% 45%,var(--card-b),var(--card-base) 60%,#030917);border:2px solid #d7bb6d;box-shadow:inset 0 0 0 2px #10202b,inset 0 0 45px #0008;contain:paint}
.live-card:before{content:'';position:absolute;inset:0;z-index:1;border:5px solid transparent;border-image:linear-gradient(145deg,#ffe8a4,#8e692e 25%,#f9e5a3 45%,#9d772c 65%,#fff0b4) 1;pointer-events:none}.live-card[data-rarity="LR"]:before{border-image:linear-gradient(145deg,#ffd582,#a5ffef,#b69aff,#ffdf85,#b9efff) 1}.live-card[data-rarity="R"]:before{border-image:linear-gradient(#b6cad2,#536777,#e8edf0) 1}.live-card[data-rarity="SR"]:before{border-image:linear-gradient(#d5afff,#5753a4,#eee1ff) 1}
.card-prism{position:absolute;inset:-15%;background:repeating-conic-gradient(from 25deg at 50% 45%,#fff2 0deg 22deg,#0002 22deg 45deg,transparent 45deg 70deg);opacity:.45;transform:rotate(-8deg);animation:cardPrism 13s ease-in-out infinite alternate}.card-rays{position:absolute;inset:-40%;background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0deg 12deg,var(--card-a) 13deg 14deg,transparent 15deg 30deg);opacity:.10;animation:cardRays 35s linear infinite}.live-card[data-rarity="UR"] .card-rays,.live-card[data-rarity="LR"] .card-rays{opacity:.20}.card-gloss{position:absolute;inset:-50% -100%;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 40%,#fff2 48%,transparent 55%);animation:cardGloss 8s ease-in-out infinite}
#characterCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:2}.card-image-fallback{position:absolute;width:90%;height:88%;object-fit:contain;left:5%;top:3%;z-index:2}.card-ready .card-image-fallback{display:none}
.card-rarity{position:absolute;left:13px;top:11px;z-index:4;font:900 italic 40px Arial;letter-spacing:-3px;color:#fff1a3;-webkit-text-stroke:1px #69411d;text-shadow:2px 3px #16252b,0 0 12px #ffd76f}.card-rarity span{font-size:24px;letter-spacing:0;display:inline-block;vertical-align:top;margin-left:4px}.live-card[data-rarity="LR"] .card-rarity{color:#e9c8ff;text-shadow:2px 3px #312443,0 0 13px #a3f5ff}.card-type{position:absolute;top:65px;left:12px;z-index:4;background:linear-gradient(135deg,var(--type),#102537);border:1px solid #ffe9a0;border-radius:4px;padding:5px 6px;transform:skewY(-8deg);font-weight:900;font-size:10px;text-shadow:0 1px 3px #000}
.card-vertical-name{position:absolute;right:11px;top:24px;writing-mode:vertical-rl;z-index:4;max-height:67%;filter:drop-shadow(1px 2px 1px #020812)}.card-vertical-name strong{font:bold 24px Arial;color:#fff4ce;text-shadow:2px 1px #07162c;letter-spacing:2px}.card-vertical-name small{font-size:8px;color:#f8d787;letter-spacing:1.2px;margin-left:3px}
.card-level{position:absolute;bottom:62px;left:14px;z-index:4;font:bold 11px Arial;color:#fff2c0;text-shadow:0 1px 3px #000}.card-statstrip{position:absolute;bottom:20px;left:10px;right:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;z-index:4}.card-statstrip>div{position:relative;transform:skewX(-11deg);background:linear-gradient(#426f2d,#1b472b 57%,#10342d 58%);border:1px solid #e7d68a;box-shadow:0 3px 0 #041d23;padding:4px 2px;text-align:center}.card-statstrip b{display:block;transform:skewX(11deg);font:900 italic clamp(15px,4.7vw,20px) Arial;line-height:1.1;color:#fffde3;text-shadow:1px 2px #163426}.card-statstrip small{display:block;transform:skewX(11deg);font:900 italic 8px Arial;color:#ffdf83}
.card-art-toggle{position:absolute;left:30%;right:30%;bottom:0;z-index:5;border:0;border-radius:4px 4px 0 0;background:#071727c9;color:#f3d994;font-size:8px;min-height:20px;padding:4px;letter-spacing:.3px}
.card-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#081a29;border-block:1px solid #d6b86b66}.card-tabs button{padding:12px 3px;min-height:42px;border:0;background:transparent;color:#afc4d3;font-size:11px;border-bottom:2px solid transparent}.card-tabs button[aria-selected="true"]{background:linear-gradient(#143b54,#123147);color:#ffe0a0;border-bottom-color:#edc86e}
.card-tabpanel{padding:12px 14px;font-size:12px;line-height:1.6;min-height:150px}.card-tabpanel h3{font:bold 16px Arial;color:#ffe1a4;margin:0 0 8px}.card-tabpanel h4{font-size:11px;letter-spacing:.6px;color:#e0c381;margin:12px 0 4px}.card-tabpanel p{margin:6px 0 10px;color:#b9cfdb}.card-tabpanel .primary,.card-tabpanel .secondary{font-size:10px;min-height:42px;padding:10px 6px}.card-facts{display:grid;grid-template-columns:1.6fr 1fr .7fr;gap:8px}.card-facts span{font-size:9px;color:#9eb8c9}.card-facts b{display:block;font-size:11px;color:#f6e9bf;margin-top:2px}.card-xp{margin-top:10px;font-size:9px;color:#d5dfdf}.card-xp>div{height:5px;background:#07101b;border:1px solid #c4a97077;margin-top:4px;overflow:hidden}.card-xp i{height:100%;display:block;background:linear-gradient(90deg,#c3943b,#ffe797)}.growth-summary{display:flex;justify-content:space-between;font-size:10px;color:#b2cad8}.growth-summary b{display:block;color:#ffe1a0;font-size:15px}.card-navigation{display:flex;justify-content:space-between;padding:4px 10px 10px;border-top:1px solid #99c4dc22}.card-navigation button{font-size:10px;padding:8px;min-height:36px;color:#e9cf96}
.character-sheet.is-art .live-card{height:calc(94dvh - 4px);min-height:0}.art-only .card-rarity,.art-only .card-type,.art-only .card-vertical-name,.art-only .card-level,.art-only .card-statstrip{display:none}.art-only .card-art-toggle{left:25%;right:25%;bottom:12px;min-height:34px;font-size:10px;background:#071827d9;border:1px solid #e1bf6880}.art-only:before{border-width:3px}
.roster-art{display:block;position:relative;overflow:hidden;aspect-ratio:.68;background:radial-gradient(ellipse,var(--card-b),var(--card-base) 65%);border-bottom:1px solid #dfbf6b77}.roster-art:before{content:'';position:absolute;inset:0;background:repeating-conic-gradient(from 10deg at 50% 40%,#fff2 0 30deg,transparent 30deg 60deg);opacity:.5}.roster-art img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 3px var(--card-a));padding:5px 1px 0}.card .roster-art~.name{font-size:8px}.card:has(.roster-art) .rarity{z-index:2;font-size:14px;top:4px;left:3px}.card:has(.roster-art) .badge{font-size:6px;padding:2px;bottom:37px}.card:has(.roster-art){border-color:#e3c06d99;background:#081a29}.card.locked .roster-art{filter:saturate(.5)}
@keyframes cardPrism{to{transform:rotate(8deg) scale(1.03);opacity:.7}}@keyframes cardRays{to{transform:rotate(360deg)}}@keyframes cardGloss{0%,65%{translate:-20% 0;opacity:0}75%{opacity:.8}90%,100%{translate:30% 0;opacity:0}}
@media(prefers-reduced-motion:reduce){.card-prism,.card-rays,.card-gloss{animation:none}.card-gloss{display:none}}body[data-quality="low"] .card-prism,body[data-quality="low"] .card-rays{animation:none}body[data-quality="low"] .card-gloss{display:none}
/* 0.10.2: the entire sheet stays fixed; long tabs use explicit section pages. */
dialog.character-dialog{height:var(--sheet-height,calc(100dvh - 16px));max-height:var(--sheet-height,calc(100dvh - 16px));overflow:hidden;box-sizing:border-box;margin:auto;overscroll-behavior:none}
dialog.character-dialog #modalContent{height:100%;overflow:hidden}.character-sheet{height:100%;min-height:0;display:grid;grid-template-rows:var(--sheet-header,46px) minmax(0,1fr) var(--sheet-tabs,38px) var(--sheet-panel,184px) var(--sheet-nav,34px);overflow:hidden}
.character-heading{height:auto;min-height:0;padding:5px 52px 3px 10px;box-sizing:border-box}.character-heading small{font-size:7px}.character-heading h2{font-size:18px}.character-sheet>.live-card{height:auto;min-height:0;max-height:none}.card-tabs button{padding:5px 3px;min-height:0}.card-tabpanel{padding:9px 12px 4px;min-height:0;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box;font-size:12px;line-height:1.4}.card-panel-body{min-height:0;flex:1}.card-panel-body h3{font-size:14px;margin-bottom:6px}.card-panel-body p{margin:5px 0 8px}.card-tabpanel .primary,.card-tabpanel .secondary{min-height:35px;padding:7px 5px}.card-section-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;height:29px;border-top:1px solid #a4c9df25}.card-section-pager span{font-size:10px;color:#dcca9d}.card-section-pager button{width:36px;min-height:28px;padding:0;font-size:23px;color:#ffe0a1}.card-navigation{padding:0 8px;align-items:center;min-height:0}.card-navigation button{min-height:28px;padding:4px;font-size:9px}
.character-sheet.is-art{grid-template-rows:minmax(0,1fr)}.character-sheet.is-art .live-card{height:100%;min-height:0}.card-statstrip b{font-size:clamp(14px,4.6vw,20px)}.card-level{bottom:66px}.card-rarity{font-size:clamp(28px,8vw,40px)}.card-vertical-name strong{font-size:clamp(18px,5vw,24px)}
body:has(dialog.character-dialog[open]){overflow:hidden;overscroll-behavior:none}
@media(max-height:540px){.card-tabpanel{font-size:11px;line-height:1.35;padding-top:7px}.card-panel-body p{margin:4px 0 6px}.card-panel-body h3{font-size:13px}.card-rarity{font-size:26px}.card-type{top:48px;font-size:8px;padding:3px}.card-vertical-name{top:12px}.card-vertical-name strong{font-size:17px}.card-statstrip{left:8px;right:8px}.card-statstrip small{font-size:7px}.card-statstrip b{font-size:15px}.card-level{font-size:9px;bottom:58px}}
/* 0.13.0: immersive full-viewport illustrations, including rarity-specific detailing. */
dialog.character-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:var(--sheet-height,100dvh);max-height:none;margin:0;border:0;border-radius:0;background:#030b18}dialog.character-dialog #modalContent{max-width:600px;margin:auto}.character-dialog::backdrop{background:#030b18}
.character-sheet.is-art .live-card{border:0;border-radius:0}.art-only:before{border-width:2px;opacity:.7}.art-only .card-rarity{display:block;top:calc(15px + env(safe-area-inset-top,0px));left:18px;font-size:36px}.art-only .card-vertical-name{display:block;writing-mode:horizontal-tb;top:auto;bottom:151px;left:20px;right:20px;max-height:none;text-shadow:0 2px 8px #020611}.art-only .card-vertical-name small{display:block;font-size:9px;letter-spacing:2px;margin:0 0 5px}.art-only .card-vertical-name strong{display:block;font:bold italic 29px Arial;letter-spacing:0;color:#fff0ca}.art-only .card-level{display:block;bottom:135px;left:22px;font-size:10px}.art-only .card-statstrip{display:grid;bottom:calc(69px + env(safe-area-inset-bottom,0px));left:18px;right:18px;gap:5px}.art-only .card-statstrip>div{background:linear-gradient(#173b3be0,#071b2be8);backdrop-filter:blur(5px)}.art-only .card-art-toggle{left:22%;right:22%;bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:39px;font-size:9px;background:#04182bdd;border-color:#c7af75aa}.art-navigation{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:14px;right:14px;z-index:5;display:flex;justify-content:space-between;pointer-events:none}.art-navigation button{pointer-events:auto;width:40px;height:39px;border:1px solid #f0d49c66;border-radius:6px;background:#04182bbd;font-size:25px;color:#f8e3b4;padding:0}
.live-card[data-rarity="UR"] .card-gloss{animation-duration:6s}.live-card[data-rarity="LR"] .card-gloss{animation-duration:5s}.live-card[data-rarity="UR"] .card-prism,.live-card[data-rarity="LR"] .card-prism{opacity:.12}.live-card[data-rarity="LR"] .card-rays{opacity:.10}.live-card[data-rarity="LR"] .card-rarity{text-shadow:2px 3px #312443,0 0 15px #d9b5ff,0 0 30px #78c9fc}.live-card[data-rarity="UR"] .card-rarity{text-shadow:2px 3px #42301a,0 0 18px #ffce5c}
dialog.character-dialog #modalContent>.close{top:calc(12px + env(safe-area-inset-top,0px));right:12px;width:38px;height:38px}
@media(max-height:600px){.art-only .card-vertical-name{bottom:137px}.art-only .card-vertical-name strong{font-size:23px}.art-only .card-level{bottom:121px}.art-only .card-rarity{font-size:28px}.art-only .card-statstrip{bottom:65px}.art-only .card-statstrip b{font-size:17px}}
.card-zoom{position:absolute;right:12px;top:calc(61px + env(safe-area-inset-top,0px));z-index:5;border:1px solid #ebd09b66;border-radius:5px;background:#04182bc9;color:#f9e6b7;font-size:9px;padding:7px;min-height:32px}
#fx[data-rarity="UR"] .specialfx{--glow:#ffe18a!important;background:radial-gradient(ellipse,#b27c1944,#070e21 75%)}
#fx[data-rarity="LR"] .specialfx{--glow:#deb1ff!important;background:conic-gradient(from 35deg,#190c31,#384888,#391539,#190c31);animation:legendaryReveal 3.6s ease both}
.live-card[data-rarity="LR"] .card-rarity{animation:legendaryInspect 3.5s ease both}
.live-card[data-rarity="UR"] .card-rarity{animation:legendaryInspect 1.4s ease both}
@keyframes legendaryInspect{0%{opacity:0;transform:scale(.72);filter:brightness(3)}35%{opacity:1;transform:scale(1.08);filter:brightness(1.8)}100%{opacity:1;transform:scale(1);filter:none}}
@keyframes legendaryReveal{0%{opacity:0;filter:brightness(.4)}35%{opacity:1;filter:brightness(1.7)}100%{opacity:1;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){#fx[data-rarity] .specialfx,.live-card[data-rarity] .card-rarity{animation:none}}
/* Every collection thumbnail keeps complete headwear, weapons and boots in frame. */
.roster-art img{padding:8px 5px;object-fit:contain;object-position:center}.live-card:not(.art-only) .card-image-fallback{left:7%;top:6%;width:80%;height:67%;object-fit:contain}.art-only .card-image-fallback{left:4.5%;top:3.5%;width:91%;height:84.5%;object-fit:contain}.card-statstrip{gap:4px}.card-rarity,.card-type,.card-vertical-name{pointer-events:none}

/* 12.6 — Personal worlds. Scenic identity is independent of rarity and combat type. */
.live-card.card-world{background-color:var(--card-base);background-image:linear-gradient(0deg,#030b14b0,transparent 60%),var(--card-scene);background-size:cover;background-position:var(--scene-focus,center);}
.live-card.card-world :is(.card-prism,.card-rays,.card-gloss){display:none;}
.live-card.card-world:before{border-color:var(--card-type-color);border-width:2px;box-shadow:inset 0 0 18px #0003;opacity:1;}
.live-card.card-world .card-type,.live-card.card-world.art-only .card-type{display:inline-flex;align-items:center;gap:7px;left:16px;top:60px;z-index:6;max-width:calc(100% - 85px);min-height:30px;padding:5px 10px;border:2px solid var(--type);border-radius:8px;background:#071827ed;color:var(--type);font:900 12px/1.15 Arial,Helvetica,sans-serif;letter-spacing:.3px;transform:none;text-shadow:none;white-space:nowrap;box-shadow:0 3px 9px #0007;}
.live-card.card-world .card-type:before{content:'';width:9px;height:9px;background:var(--type);border-radius:50%;box-shadow:0 0 7px var(--type);flex:none;}
.live-card.card-world .card-type:after{content:attr(data-type-name);color:#f0f4f8;font-size:10px;letter-spacing:.1px;font-weight:700;}
.live-card.card-world.art-only .card-type{top:calc(69px + env(safe-area-inset-top,0px));}
.roster-art.card-world{background-image:linear-gradient(0deg,#071827aa,transparent 70%),var(--card-thumb);background-size:cover;background-position:var(--scene-focus,center);border-color:var(--card-type-color);}
.roster-art.card-world:before{background:linear-gradient(0deg,#07182766,transparent);opacity:1;}
.legend-card{isolation:isolate;}
.legend-card .legend-scene{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--scene-focus,center);opacity:.64;z-index:-1;pointer-events:none;}
.legend-card:after{pointer-events:none;}
.legend-card .legend-type{border-color:var(--type);box-shadow:0 0 0 1px #071827;}
@media(max-height:650px){.live-card.card-world.art-only .card-type{top:calc(59px + env(safe-area-inset-top,0px));min-height:26px;font-size:10px;padding:4px 8px;}.live-card.card-world .card-type:after{font-size:9px;}}
/* Full-art header has separate slots for type, rarity and close/action controls. */
.live-card.card-world.art-only .card-type{top:calc(15px + env(safe-area-inset-top,0px));left:16px;}
.live-card.card-world.art-only .card-rarity{left:auto;right:66px;top:calc(14px + env(safe-area-inset-top,0px));font-size:32px;}
.live-card.card-world.art-only .card-home-select{left:16px;top:calc(59px + env(safe-area-inset-top,0px));max-width:55%;}
.live-card.card-world.art-only .card-vertical-name{top:auto;bottom:151px;left:20px;right:20px;}
.live-card.card-world.art-only .card-family-button{left:auto;right:16px;bottom:115px;max-width:45%;}
@media(max-height:650px){.live-card.card-world.art-only .card-rarity{font-size:27px;}.live-card.card-world.art-only .card-vertical-name{bottom:137px;}.live-card.card-world.art-only .card-family-button{bottom:103px;}}
.live-card.card-world:before{border-image:none;z-index:4;}
body.view-collection #game .legend-card[data-id][data-rarity]{border-color:var(--type);box-shadow:0 0 0 1px #061827,0 3px 10px #0006;}
.live-card.card-world.art-only .card-vertical-name{bottom:167px;}
.live-card.card-world.art-only .card-level{bottom:151px;}
.live-card.card-world.art-only .card-family-button{left:16px;right:auto;bottom:117px;max-width:45%;}
@media(max-height:650px){.live-card.card-world.art-only .card-vertical-name{bottom:153px;}.live-card.card-world.art-only .card-level{bottom:137px;}.live-card.card-world.art-only .card-family-button,.live-card.card-world.art-only .card-potential{bottom:103px;}}

/* Face framing for the new full-art previews; full detail keeps the complete image. */
img[src*="assets/cards/roster20/"][src*="-preview.webp"]{object-position:50% 12%}

/* Keep metadata above the four attributes, including the iPhone safe area. */
.live-card.card-world.art-only{--card-stats-bottom:calc(69px + env(safe-area-inset-bottom,0px))}
.live-card.card-world.art-only .card-statstrip{bottom:var(--card-stats-bottom);height:44px}
.live-card.card-world.art-only .card-family-button,
.live-card.card-world.art-only .card-potential{bottom:calc(var(--card-stats-bottom) + 54px);height:36px;min-height:36px;max-width:45%;box-sizing:border-box;white-space:nowrap;overflow:hidden}
.live-card.card-world.art-only .card-family-button{left:16px;right:auto}
.live-card.card-world.art-only .card-potential{left:auto;right:12px;font-size:clamp(9px,2.6vw,11px)}
.live-card.card-world.art-only .card-level{bottom:calc(var(--card-stats-bottom) + 96px)}
.live-card.card-world.art-only .card-vertical-name{bottom:calc(var(--card-stats-bottom) + 112px)}

/* Source: potential.css */
.potential-screen{max-width:560px;margin:auto;color:#f3e9c6}.potential-screen header{padding:12px 45px 4px 0}.potential-screen h2{margin:4px 0}.potential-screen p{font-size:12px;line-height:1.45;margin:5px 0}.potential-scroll{height:45dvh;min-height:190px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;background:radial-gradient(ellipse at top,#24425d,#080d21 60%);border:1px solid #b99a5a;border-radius:12px}.potential-graph{position:relative;min-width:290px;isolation:isolate}.potential-graph svg{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.potential-graph line{stroke:#41546c;stroke-width:.45}.potential-graph line.lit{stroke:#efd68b;filter:drop-shadow(0 0 2px #ffb84c)}.potential-portrait{position:absolute;top:12px;left:calc(50% - 42px);width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid #e9ce8c;box-shadow:0 0 25px #7e7dbe77;animation:potentialBreath 4s ease-in-out infinite}.potential-branch{position:absolute;top:111px;transform:translateX(-50%);width:19%;text-align:center;font-size:10px;font-weight:700;line-height:1.3}.potential-node{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;border:2px solid #52617a;background:#101d31;color:#a6afc3;font-weight:800;touch-action:pan-y}.potential-node.available{border-color:#e6c474;color:#fff2c2;box-shadow:0 0 12px #c9a65755}.potential-node.unlocked{background:#235341;border-color:#f2df9c;color:#fff5bf;box-shadow:0 0 10px #dfc78044}.potential-node.selected{outline:2px solid #99ddff;outline-offset:3px}.potential-dock{padding:10px 0 max(6px,env(safe-area-inset-bottom))}.potential-dock h3{font-size:16px;margin:3px 0}.potential-dock .primary,.potential-dock .secondary{min-height:44px;margin-top:6px}.potential-dock .two{gap:8px}.potential-notice{color:#a6f6c6;animation:potentialUnlock .8s ease}.potential-preview{color:#c8ecff}.potential-mastery p{line-height:1.6}.card-potential{position:absolute;z-index:8;left:12px;bottom:117px;background:#132c43dd;color:#f8df99;border:1px solid #c1a667;border-radius:8px;min-height:36px;padding:6px 10px;font-size:11px}.card-development{font-size:11px}.card-development button{padding:7px;min-height:36px}.card-development progress{width:100%;accent-color:#d7b45e}.potential-material{display:flex;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid #314358}.fragment-result{color:#e6cbff;animation:potentialUnlock 1s ease}@keyframes potentialBreath{50%{box-shadow:0 0 30px #a0a0d999;transform:translateY(-2px)}}@keyframes potentialUnlock{0%{filter:brightness(2);transform:scale(.98)}100%{filter:none;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.potential-portrait,.potential-notice,.fragment-result{animation:none}}@media(max-height:650px){.potential-scroll{height:34dvh}.potential-screen p{font-size:10px}.potential-dock h3{font-size:13px}}
.card-potential{left:auto;right:12px;bottom:117px}.card-development{font-size:10px;line-height:1.3}.card-development progress{display:block;height:4px;margin-top:5px}.card-development+ p{font-size:11px;line-height:1.3;margin-top:6px}
.potential-updated .potential-node.selected.unlocked{animation:potentialUnlock .8s ease}.potential-graph line.newly{stroke:#fff2b8;stroke-dasharray:4 3;animation:potentialFlow .8s linear}.potential-updated .potential-node.selected.unlocked:after{content:'';position:absolute;inset:-9px;border:2px dotted #f9de95;border-radius:50%;animation:potentialUnlock .8s ease}@keyframes potentialFlow{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.potential-updated .potential-node,.potential-updated .potential-node:after,.potential-graph line.newly{animation:none!important}}

/* Source: legendary-home.css */
body.view-entry #game,body.view-home #game{height:100dvh;min-height:0;max-width:600px;overflow:hidden;background:#081628}body.view-entry #top,body.view-entry #nav,body.view-home #nav,body.entry-settings #top,body.entry-settings #nav{display:none!important}body.view-entry #main,body.view-home #main{padding:0!important;min-height:0!important;height:100dvh}body.view-home #top{position:absolute;top:0;left:0;right:0;z-index:10;padding:calc(8px + env(safe-area-inset-top,0px)) 10px 5px;background:linear-gradient(#04101be0,#07152666,transparent)}body.view-home .toprow{gap:5px}body.view-home .avatar{width:34px;height:34px;background-size:cover;background-position:center;border:1px solid #dec389}body.view-home .profile{flex:1;min-width:0}body.view-home .profile b{font-size:11px}body.view-home .profile small{font-size:8px}body.view-home .round{width:32px;min-height:32px;padding:6px}body.view-home .wallet{margin-top:4px;font-size:10px;gap:8px}body.view-home #world,body.view-entry #world,body.view-home #vignette,body.view-entry #vignette{display:none!important}.entry-screen{position:relative;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:calc(44px + env(safe-area-inset-top,0px)) 26px calc(24px + env(safe-area-inset-bottom,0px));isolation:isolate;background:#081b30}.entry-art{position:absolute;inset:0;z-index:-2;background:linear-gradient(#06152555,#07152400 35%,#020b1be8),url('assets/home-v2.webp') 62% center/cover}.entry-art:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 10%,#d7eaff22,transparent 60%);animation:entryLight 7s ease-in-out infinite alternate}.entry-logo{text-align:center;text-shadow:0 3px 6px #000}.entry-logo small{font-size:9px;letter-spacing:3px;color:#f2d69d}.entry-logo h1{font:900 clamp(27px,8vw,43px)/1 Georgia,serif;letter-spacing:-1px;color:#d6f2ff;margin:14px 0 8px;-webkit-text-stroke:.5px #17364a}.entry-logo strong{display:block;font-size:.69em;letter-spacing:1px;color:#f8d89b;margin-top:7px}.entry-logo>span{font-size:10px;letter-spacing:1px}.entry-actions{width:min(290px,100%);display:grid;gap:10px;margin-top:auto;padding-top:30px}.entry-actions button{min-height:48px;border:1px solid #d9bd7b99;letter-spacing:1px;font-size:12px;border-radius:7px;background:linear-gradient(130deg,#0b243ae8,#061222e8);box-shadow:0 4px 18px #0005}.entry-actions .primary{background:linear-gradient(120deg,#d2a760,#efdbab);color:#142638;font-weight:800}.entry-footer{font-size:9px;letter-spacing:.6px;color:#c5ced7;margin-top:20px}.legendary-home{height:100%;position:relative;isolation:isolate;background:radial-gradient(ellipse,var(--home-base),#030d1c);animation:homeEnter .25s ease both}.home-card-stage{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,var(--home-base),#06101e)}.home-card-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.home-art-fallback{position:absolute;left:5%;top:5%;width:90%;height:90%;object-fit:contain}.home-card-stage.card-ready>.home-art-fallback{visibility:hidden}.home-corner{position:absolute;display:grid;gap:10px;width:clamp(64px,19vw,86px);z-index:3}.corner-0{left:10px;top:calc(100px + env(safe-area-inset-top,0px))}.corner-1{right:10px;top:calc(100px + env(safe-area-inset-top,0px))}.corner-2{left:10px;bottom:calc(24px + env(safe-area-inset-bottom,0px))}.corner-3{right:10px;bottom:calc(24px + env(safe-area-inset-bottom,0px))}.corner-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;width:100%;aspect-ratio:1;min-height:60px;padding:8px 3px;border:1px solid #d3b87899;border-radius:10px;overflow:hidden;background:linear-gradient(#06122145,#020a16ee),var(--tile-art) center/cover;box-shadow:0 4px 12px #0007,inset 0 0 0 2px #06152888;color:#ffe8af;transition:filter .15s,transform .15s,border-color .15s;animation:tileEnter .3s ease both}.corner-tile svg{width:23px;height:23px;filter:drop-shadow(0 2px 3px #000)}.corner-tile span{font-size:8px;letter-spacing:.3px;font-weight:800;text-shadow:0 2px 2px #000}.corner-tile:active{filter:brightness(1.4);border-color:#fff0ad;transform:scale(.96)}.corner-tile i{position:absolute;right:4px;top:4px;border-radius:50%;background:#b7293b;color:white;font:700 10px Arial;padding:2px 5px}.home-main-label{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:27%;right:27%;text-align:center;text-shadow:0 2px 4px #000}.home-main-label small{font-size:7px;letter-spacing:1px;color:#f2d79d}.home-main-label button{display:block;width:100%;background:#04101a88;border-radius:6px;padding:7px 3px;font-size:12px;color:#ffe8b9;min-height:38px}.home-main-label .home-resume{font-size:8px;border:1px solid #ecd29566;margin-top:4px}.card-home-select{position:absolute;z-index:8;left:12px;top:61px;background:#071a2ae8;border:1px solid #ddc38c;color:#ffe5a6;border-radius:6px;min-height:32px;padding:5px 7px;font-size:9px}.entry-settings #main{padding-bottom:25px}.view-home #toast{z-index:30}@media(max-height:620px){.home-corner{width:64px;gap:6px}.corner-0,.corner-1{top:calc(83px + env(safe-area-inset-top,0px))}.corner-2,.corner-3{bottom:calc(15px + env(safe-area-inset-bottom,0px))}.corner-tile{padding:5px 2px}.corner-tile span{font-size:7px}.corner-tile svg{width:19px;height:19px}.entry-screen{padding-top:calc(20px + env(safe-area-inset-top,0px))}.entry-actions{gap:6px}.entry-actions button{min-height:42px}.entry-footer{margin-top:12px}.home-main-label{left:27%;right:27%;bottom:calc(10px + env(safe-area-inset-bottom,0px))}.home-main-label button{font-size:10px}}@media(orientation:landscape) and (max-height:500px){.entry-logo{align-self:flex-start}.entry-actions{position:absolute;right:20px;top:30px;width:42%;padding:0}.entry-footer{align-self:flex-start}.corner-0,.corner-1{top:75px}.home-corner{width:58px;gap:5px}.corner-tile{min-height:48px}}@keyframes entryLight{to{opacity:.45;transform:scale(1.025)}}@keyframes homeEnter{from{opacity:.6}to{opacity:1}}@keyframes tileEnter{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.entry-art:after,.legendary-home,.corner-tile{animation:none!important}}
body.view-home #top{height:auto}body.view-home .profile{max-width:none;min-width:65px}body.view-home .round{margin-left:0;height:32px}body.view-home .wallet{position:static;left:auto;right:auto;top:auto;display:flex;justify-content:flex-end;margin:5px 0 0;pointer-events:auto}body.view-home .wallet span{font-size:10px;padding:3px 6px}body.view-home .wallet span:last-child{display:none}

/* Source: promotions.css */
.promotion-screen{padding:12px 4px;color:#e4edf4}.promotion-screen>small{font-size:9px;letter-spacing:1.5px;color:#e4c88b}.promotion-screen h2{font-size:22px;color:#ffe3a7}.promotion-screen label{display:block;font-size:10px;letter-spacing:1px;color:#d5c296;margin:22px 0 8px}.promotion-screen input{display:block;width:100%;min-height:50px;border:1px solid #c4a467;border-radius:8px;background:#061321;color:#f5e4bd;font-size:16px;padding:12px;letter-spacing:1px}.promotion-screen .primary{min-height:48px;margin:16px 0 10px}.promotion-screen p{font-size:12px;line-height:1.6}.promotion-screen a{display:block;padding:12px;text-align:center;border:1px solid #bca36e;border-radius:7px;color:#ffe3a6}.promotion-screen a[hidden]{display:none}.promotion-screen .note{font-size:10px;color:#b5c7d7}.promotion-screen #promotionStatus{padding:12px;border:1px solid #647d9655;border-radius:7px;background:#0a2036}

/* Source: recruitment.css */
/* Recruitment: the same navy / luminous gold language as the entry screen. */
#nav{display:none!important}#main{padding-bottom:20px}.back-account{width:36px;height:36px;min-width:36px;border:1px solid #d6b879;border-radius:9px;background:linear-gradient(#24425b,#081d31);font-size:30px;line-height:1;color:#ffe9ad}.view-summon #top{display:none}.view-summon #main{padding:0!important;min-height:0;flex:1}.view-summon #game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}.recruit-hall,.recruit-cinema{height:100%;min-height:0;position:relative;overflow:hidden;background:#06162b;color:#fff1cf;isolation:isolate;display:flex;flex-direction:column}.recruit-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:calc(9px + env(safe-area-inset-top,0px)) 14px 9px;background:linear-gradient(#05162ce8,#0b294480);border-bottom:1px solid #c8a76c55}.recruit-header>span{font:900 15px Georgia,serif;text-align:center;line-height:1.15;letter-spacing:.8px;color:#ffdf94;text-shadow:0 2px 3px #000}.recruit-header>span b{font-size:11px;letter-spacing:1.5px}.recruit-header>strong{font-size:12px;border:1px solid #ac965d77;border-radius:6px;padding:9px 11px;background:#081e35;color:#80e6ff;white-space:nowrap}.recruit-back{width:42px;height:42px;min-height:42px;border:1px solid #d9bd7c;border-radius:9px;background:linear-gradient(#173b56d9,#041329df);color:#ffe4a3;font-size:31px;line-height:1;box-shadow:inset 0 0 0 1px #ffe5a31a,0 3px 8px #0004}.recruit-banner{position:relative;flex:1;min-height:0;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 70% 25%,#4b286b,#0d2246 55%,#061529)}.recruit-banner-sea{position:absolute;inset:0;background:linear-gradient(#06182f22,#04132466),url('assets/arenas/harbour-anime.webp') center top/cover;opacity:.5;z-index:-3}.recruit-banner>img{position:absolute;object-fit:contain;object-position:center top;filter:drop-shadow(0 6px 12px #030d2699);height:100%;top:0;max-width:none}.recruit-shanks{width:75%;left:-16%;transform:rotate(-4deg);opacity:.9}.recruit-nika{width:105%;right:-25%;top:-1%!important;height:105%!important}.recruit-banner-light{position:absolute;inset:0;background:linear-gradient(0deg,#06162b 0,#06162be8 7%,#06162b88 26%,transparent 56%),linear-gradient(90deg,#071b3e33,transparent 65%);pointer-events:none}.recruit-banner-title{position:absolute;bottom:20px;left:22px;right:18px;text-shadow:0 3px 6px #000}.recruit-banner-title>small{font-size:8px;letter-spacing:2px;color:#e9cb8d}.recruit-banner-title h1{font:900 clamp(32px,10vw,49px)/.98 Georgia,serif;margin:12px 0;color:#fff0c1;letter-spacing:-1px}.recruit-banner-title p{font:italic 16px Georgia,serif;color:#e5edf5;margin:9px 0 14px}.recruit-banner-title>span{display:inline-block;font-size:10px;padding:7px 10px;border:1px solid #e6bf7077;background:linear-gradient(90deg,#9d6a2b66,#102b4544);border-radius:4px;color:#ffe49d}.recruit-dock{position:relative;z-index:4;flex:none;padding:0 17px calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(#06162b,#071a30);text-align:center}.recruit-dock>p{margin:3px 0 12px;color:#cfbb89;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.recruit-pulls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.recruit-pulls button{min-height:65px;border:1px solid #c9ad70;border-radius:9px;background:linear-gradient(#254f6a,#0a233c);box-shadow:inset 0 0 0 2px #071a2a66,0 4px 10px #0006;color:#f7e7bf;transition:transform .15s,filter .15s}.recruit-pulls small,.recruit-pulls strong{display:block}.recruit-pulls small{font-size:10px;letter-spacing:1.7px;margin-bottom:6px}.recruit-pulls strong{font-size:23px;letter-spacing:1px}.recruit-pulls .recruit-ten{color:#2c1d0e;background:linear-gradient(#ffe9b0,#e1b460 53%,#b47b33);border:2px solid #ffe6a5;box-shadow:inset 0 0 0 2px #ab792f88,0 0 20px #bd8c3d22,0 4px 10px #0006}.recruit-pulls button:active{transform:scale(.97);filter:brightness(1.18)}.recruit-pulls button:disabled{filter:saturate(.3);opacity:.5}.recruit-links{display:flex;justify-content:space-between;gap:5px;margin:13px 0 9px}.recruit-links button{padding:6px 2px;min-height:34px;background:none;color:#dbca9e;font-size:9px;border:0;border-bottom:1px solid #b39e6b44}.recruit-dock>small{display:block;font-size:8px;color:#91aabd}.recruit-cinema-controls{position:absolute;left:0;right:0;top:0;z-index:12;padding:calc(12px + env(safe-area-inset-top,0px)) 13px 8px;display:flex;gap:8px;align-items:center}.recruit-cinema-controls>.recruit-back{margin-right:auto}.recruit-cinema-controls>button:not(.recruit-back){min-height:38px;padding:6px 11px;font-size:10px;letter-spacing:.7px;border:1px solid #c4ad7177;border-radius:6px;color:#f9e8c3;background:#061c32c9}.recruit-ocean{position:absolute;inset:0;z-index:-4;background:radial-gradient(ellipse at 60% 23%,#64d9e277,#0e5f9e88 35%,#061630 85%),url('assets/arenas/harbour-anime.webp') center/cover}.recruit-atmosphere{position:absolute;inset:-15%;z-index:-2;background:conic-gradient(from 0deg,transparent,#d4f7ff18,transparent 10%,transparent 20%,#72caff18,transparent 35%,transparent 60%,#fff8bf11,transparent 80%);animation:recruitSky 18s linear infinite;pointer-events:none}.recruit-particles{position:absolute;inset:0;z-index:6;pointer-events:none;background-image:radial-gradient(circle,#fff3bdc9 0 1px,transparent 2px),radial-gradient(circle,#b7e9ffb0 0 1px,transparent 2px);background-size:79px 113px,129px 157px;opacity:.25;animation:recruitDust 7s linear infinite}.recruit-saved{position:absolute;bottom:calc(5px + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:10;text-align:center;font-size:7px;letter-spacing:1.4px;color:#b7dccf;pointer-events:none}.recruit-voyage{position:absolute;inset:0;overflow:hidden}.recruit-distant-island{position:absolute;width:180px;height:190px;right:2%;top:24%;background:url('assets/adventure/voyage-atlas.webp') 0 0/400% 200%;filter:drop-shadow(0 3px 8px #052346);animation:recruitIsland calc(2.2s * var(--recruit-speed)) ease-out both}.recruit-vessel{position:absolute;width:57%;left:5%;top:39%;object-fit:contain;filter:drop-shadow(0 7px 5px #03224eaa);animation:recruitSail calc(2.2s * var(--recruit-speed)) cubic-bezier(.2,.5,.4,1) both}.recruit-sea-wake{position:absolute;left:0;top:62%;width:50%;height:12%;border-top:4px solid #e1ffffb3;border-radius:50%;filter:blur(2px);animation:recruitWake 1.2s ease-out infinite}.recruit-scene-caption{position:absolute;left:18px;right:18px;bottom:15%;z-index:7;text-align:center;text-shadow:0 3px 4px #000}.recruit-scene-caption>small{color:#ffe19d;letter-spacing:2px;font-size:9px}.recruit-scene-caption h1{font:800 29px/1.12 Georgia,serif;color:#fff0c1;margin:12px 0}.recruit-scene-caption p{font-size:11px;color:#c7e1ec}.recruit-deck{position:absolute;inset:0;z-index:-3;background:linear-gradient(#05193044,#03102288),url('assets/story/chapter-0.webp') center 37%/cover}.recruit-treasure{position:absolute;left:50%;top:45%;width:180px;height:150px;transform:translate(-50%,-50%);background:none;border:0;filter:drop-shadow(0 7px 10px #0009);z-index:7;animation:recruitChestPulse 2s ease-in-out infinite;overflow:visible}.recruit-chest-base{position:absolute;left:7%;right:7%;bottom:5%;height:55%;background:repeating-linear-gradient(0deg,#7d3d1d 0 16px,#a25c29 17px 19px);border:6px solid #e4b357;border-radius:4px 4px 13px 13px;box-shadow:inset 0 0 0 3px #533215,inset 0 8px 12px #0008}.recruit-chest-base:after{content:'';position:absolute;inset:0 22%;border-left:9px solid #d3a349;border-right:9px solid #d3a349}.recruit-chest-lid{position:absolute;left:4%;right:4%;top:2%;height:45%;z-index:3;background:repeating-linear-gradient(0deg,#d28e3d 0 15px,#b37431 17px 19px);border:6px solid #f3c66d;border-radius:55px 55px 8px 8px;box-shadow:inset 0 0 0 3px #794f1f;transform-origin:50% 100%}.recruit-treasure>span{position:absolute;left:43%;top:43%;width:26px;height:30px;z-index:5;background:linear-gradient(#fff0ae,#c28b33);color:#79501f;border:2px solid #f8da8e;border-radius:3px;font-size:17px;line-height:26px}.recruit-chest-light{position:absolute;inset:18% 2% 28%;z-index:0;background:radial-gradient(ellipse,#69d9ff77,transparent 65%);animation:recruitGlow 2s ease-in-out infinite alternate}.is-opening .recruit-chest-lid{animation:recruitChestOpen calc(1.1s * var(--recruit-speed)) ease-out both}.is-opening.recruit-treasure{animation:recruitChestShake .2s linear 3}.phase-opening .recruit-chest-light{background:radial-gradient(ellipse,var(--recruit-glow,#8de4ff),transparent 65%);animation:recruitBurst calc(1.1s * var(--recruit-speed)) ease-out both}.recruit-cinema{--recruit-glow:#78dfff;--recruit-dark:#092744}.recruit-cinema[data-rarity=SSR]{--recruit-glow:#c085ff;--recruit-dark:#281147}.recruit-cinema[data-rarity=UR]{--recruit-glow:#ffd568;--recruit-dark:#493013}.recruit-cinema[data-rarity=LR]{--recruit-glow:#f7d0ff;--recruit-dark:#1d0d3e}.phase-reveal .recruit-ocean{background:radial-gradient(ellipse at 50% 35%,var(--recruit-glow),var(--recruit-dark) 60%,#020b19);opacity:.8}.recruit-card-stage{position:absolute;inset:10% 0 18%;isolation:isolate;overflow:hidden}.recruit-card-rays{position:absolute;inset:-30%;z-index:-1;background:repeating-conic-gradient(from 10deg,transparent 0 12deg,#fff6cb20 13deg 19deg,transparent 20deg 40deg);animation:recruitSky 20s linear infinite}.recruit-card-halo{position:absolute;inset:10% 10% 0;background:radial-gradient(ellipse,var(--recruit-glow),transparent 66%);filter:blur(12px);opacity:.5;animation:recruitGlow 2s ease-in-out infinite alternate}.recruit-revealed-actor{position:absolute;inset:0 3% 7%;z-index:1;animation:recruitCharacter calc(1.4s * var(--recruit-speed)) cubic-bezier(.1,.4,.3,1) both}.recruit-revealed-actor>img,.recruit-revealed-actor>canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.recruit-revealed-actor.card-ready>img{visibility:hidden}.recruit-rarity{position:absolute;z-index:3;top:4%;left:18px;font:italic 1000 45px/1 Arial,sans-serif;color:#fff2bb;text-shadow:2px 3px #3c163b,0 0 18px var(--recruit-glow);animation:recruitRarity calc(1.2s * var(--recruit-speed)) ease both}.recruit-rarity>span{font-size:27px;margin-left:3px}.recruit-type{position:absolute;left:20px;top:17%;z-index:3;background:#05152bbb;padding:5px 8px;border:1px solid currentColor;border-radius:4px;font-size:10px}.recruit-card-name{position:absolute;left:15px;right:15px;bottom:0;z-index:5;padding:20px 8px 0;text-align:center;background:linear-gradient(transparent,#041225dd 30%,#041225);animation:recruitName calc(1.6s * var(--recruit-speed)) ease both}.recruit-card-name>small{font-size:10px;letter-spacing:2px;color:#e9cd93}.recruit-card-name h1{font:800 30px/1.12 Georgia,serif;margin:7px 0;color:#fff1c4}.recruit-card-name p{font-size:10px;font-weight:800;letter-spacing:.8px;margin:10px 0}.is-new{color:#a0f5cc!important}.is-duplicate{color:#efd698!important}.recruit-reveal-next{position:absolute;bottom:calc(27px + env(safe-area-inset-bottom,0px));left:22px;right:22px;text-align:center;z-index:10}.recruit-reveal-next button,.recruit-summary footer button{min-height:47px;width:100%;border:2px solid #ffe5a3;border-radius:7px;background:linear-gradient(#ffe6a5,#d9ab53,#a36c2d);color:#2d2012;box-shadow:inset 0 0 0 2px #8b5b2466;font-size:11px;font-weight:900;letter-spacing:1.3px}.recruit-reveal-next>small{display:block;margin-top:8px;color:#e9e1c8;font-size:10px;letter-spacing:2px}.recruit-lightning{position:absolute;inset:0;pointer-events:none;z-index:8;opacity:0}.phase-opening[data-rarity=LR] .recruit-lightning,.phase-reveal[data-rarity=LR] .recruit-lightning{background:linear-gradient(110deg,transparent 0 22%,#fff2ffcc 22.2% 22.6%,transparent 23% 71%,#f9dbff99 71.3% 72%,transparent 72.4%);animation:recruitLightning calc(2.7s * var(--recruit-speed)) ease both}.phase-reveal[data-rarity=LR] .recruit-revealed-actor{animation-duration:calc(2.8s * var(--recruit-speed))}.phase-reveal[data-rarity=LR] .recruit-rarity{font-size:61px;background:linear-gradient(120deg,#fff6b8,#ffc7f3,#9ff5ff,#fff4ad);background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px #1a0a2f);text-shadow:none;animation-duration:calc(2.4s * var(--recruit-speed))}.phase-reveal[data-rarity=LR] .recruit-card-name{animation-duration:calc(3s * var(--recruit-speed))}.phase-reveal[data-rarity=UR] .recruit-rarity{font-size:53px;color:#fff1a9}.phase-reveal[data-rarity=UR] .recruit-card-stage{border-top:1px solid #f0cd8566;border-bottom:1px solid #f0cd8566}.recruit-summary{position:absolute;inset:0;display:flex;flex-direction:column;background:linear-gradient(#06162bf2,#071d32ef);padding:calc(19px + env(safe-area-inset-top,0px)) 13px calc(24px + env(safe-area-inset-bottom,0px));z-index:9}.recruit-summary>header{text-align:center;flex:none}.recruit-summary>header>small{font-size:8px;letter-spacing:2px;color:#e9c77f}.recruit-summary h1{font:800 29px Georgia,serif;color:#ffeab5;margin:9px 0}.recruit-summary>header p{font-size:10px;color:#aacbd9;margin:0 0 13px}.recruit-result-grid{overflow:auto;min-height:0;flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 7px;padding:3px 2px 12px;align-content:start;overscroll-behavior:contain}.recruit-result-grid .char-card{width:100%;min-width:0}.recruit-result-grid>div>small{display:block;text-align:center;font-size:8px;padding-top:4px}.recruit-summary footer{flex:none;padding-top:7px;text-align:center}.recruit-summary footer p{font-size:9px;color:#b4d2d7;margin:3px 0 9px}.phase-summary .recruit-saved{display:none}.recruit-details p{font-size:12px;line-height:1.6;color:#d5e2e6}.recruit-details>small{font-size:9px;letter-spacing:2px;color:#e8c981}.recruit-details h2{font:800 24px Georgia,serif;color:#ffe5ad}@keyframes recruitSky{to{transform:rotate(360deg)}}@keyframes recruitDust{to{background-position:20px -220px,-30px -160px}}@keyframes recruitSail{from{transform:translate(-65px,70px) scale(.85) rotate(-7deg)}to{transform:translate(20px,-10px) scale(1.03) rotate(1deg)}}@keyframes recruitIsland{from{transform:translate(20px,-15px) scale(.85)}to{transform:none}}@keyframes recruitWake{from{opacity:0;transform:scale(.5)}50%{opacity:.7}to{opacity:0;transform:scale(1.4)}}@keyframes recruitChestPulse{50%{filter:drop-shadow(0 0 18px #ffe19a88);translate:0 -3px}}@keyframes recruitGlow{to{opacity:.8;transform:scale(1.06)}}@keyframes recruitChestOpen{20%{transform:rotate(-2deg)}100%{transform:perspective(300px) rotateX(-125deg) translateY(-5px);opacity:.6}}@keyframes recruitChestShake{25%{rotate:-3deg}75%{rotate:3deg}}@keyframes recruitBurst{from{opacity:.3;transform:scale(.2)}70%{opacity:1;transform:scale(2)}to{opacity:.1;transform:scale(3)}}@keyframes recruitCharacter{0%{filter:brightness(0);opacity:0;transform:scale(.76) translateY(28px)}30%{filter:brightness(0);opacity:1}60%{filter:brightness(1.7)}100%{filter:none;transform:none;opacity:1}}@keyframes recruitRarity{0%,40%{opacity:0;transform:scale(1.6) translateY(-15px)}75%{opacity:1;transform:scale(.95)}100%{opacity:1;transform:none}}@keyframes recruitName{0%,55%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}@keyframes recruitLightning{0%,20%,35%,60%,100%{opacity:0}24%,40%{opacity:.85}48%{opacity:.3}}@media(max-height:680px){.recruit-header{min-height:51px;padding-top:calc(6px + env(safe-area-inset-top,0px))}.recruit-header>span{font-size:12px}.recruit-header>strong{padding:7px;font-size:10px}.recruit-back{width:37px;height:37px;min-height:37px}.recruit-banner-title{left:16px;bottom:12px}.recruit-banner-title h1{font-size:32px;margin:7px 0}.recruit-banner-title p{font-size:12px;margin:6px 0 8px}.recruit-banner-title>small{font-size:7px;letter-spacing:1px}.recruit-banner-title>span{font-size:8px;padding:5px 7px}.recruit-pulls button{min-height:54px}.recruit-pulls strong{font-size:20px}.recruit-links{margin:6px 0}.recruit-dock{padding-bottom:calc(9px + env(safe-area-inset-bottom,0px))}.recruit-dock>p{margin-bottom:7px;font-size:8px}.recruit-card-name h1{font-size:25px}.recruit-rarity{font-size:35px}.recruit-treasure{scale:.85}.recruit-scene-caption h1{font-size:24px}.recruit-scene-caption{bottom:13%}.recruit-reveal-next{bottom:calc(20px + env(safe-area-inset-bottom,0px))}.recruit-result-grid{gap:7px 5px}.recruit-summary h1{font-size:23px}.recruit-summary>header p{margin-bottom:8px}.recruit-summary footer button{min-height:41px}}@media(prefers-reduced-motion:reduce){.recruit-cinema *,.recruit-hall *{animation:none!important;transition:none!important}.recruit-lightning,.recruit-particles{display:none!important}}.recruit-reduced *{animation-duration:.01ms!important;animation-iteration-count:1!important}.recruit-reduced .recruit-lightning,.recruit-reduced .recruit-particles{display:none}.app-paused .recruit-cinema *{animation-play-state:paused!important}
.recruit-result-grid:has(>div:only-child){grid-template-columns:minmax(0,180px);justify-content:center}.view-summon #top{padding:0;height:0;overflow:hidden}
.secondary-avatar{display:none!important}.recruit-revealed-actor>canvas{opacity:0;transition:opacity .2s}.recruit-revealed-actor.card-ready>canvas{opacity:1}
.recruit-result-grid .card{width:100%;min-width:0}.recruit-result-grid .card .info{font-size:7px;gap:3px}.recruit-result-grid .card .name{font-size:9px}.recruit-result-grid .card .badge{font-size:7px;padding:2px 3px}
/* 0.29.0: full-bleed ocean photography direction with a layered, continuous arrival. */
.phase-sailing .recruit-ocean,.phase-chest .recruit-ocean,.phase-opening .recruit-ocean{background:linear-gradient(0deg,#01182b66,transparent 45%),url('assets/recruit/ocean.webp') center/cover;opacity:1}.phase-sailing .recruit-ocean{inset:-4%;animation:recruitOceanCamera calc(5.8s * var(--recruit-speed)) cubic-bezier(.2,.4,.35,1) both}.phase-sailing .recruit-atmosphere,.phase-sailing .recruit-particles{display:none}.recruit-ship-track{position:absolute;left:0;top:28%;width:100%;height:50%;animation:recruitVoyagePath calc(5.8s * var(--recruit-speed)) cubic-bezier(.2,.3,.25,1) both;transform-origin:55% 80%;will-change:transform}.recruit-ship-bob{position:absolute;inset:0;animation:recruitShipRoll calc(1.35s * var(--recruit-speed)) ease-in-out infinite}.recruit-ship-bob>.recruit-vessel{left:0;top:0;width:100%;height:100%;animation:none;object-fit:contain;filter:drop-shadow(0 15px 8px #00384c77)}.recruit-ship-wake{position:absolute;left:-25%;top:71%;width:90%;height:27%;border:3px solid #d4ffffaa;border-right:0;border-radius:50%;transform:rotate(-15deg);filter:blur(1px);box-shadow:0 7px 0 -5px #cfffffaa,0 15px 0 -10px #cfffff77;animation:recruitTrail .8s ease-out infinite}.recruit-bow-spray{position:absolute;right:10%;top:70%;width:20%;height:15%;background:radial-gradient(ellipse,#e5ffffdd,transparent 65%);animation:recruitSpray .65s ease-in-out infinite alternate;filter:blur(2px)}.recruit-ocean-glints{position:absolute;inset:42% -20% 0;background:repeating-radial-gradient(ellipse at 10% 50%,transparent 0 32px,#d2ffff22 34px 35px,transparent 38px 60px);transform:perspective(400px) rotateX(55deg);animation:recruitWater 3s linear infinite;opacity:.4}.recruit-near-waves{position:absolute;inset:73% -20% -10%;background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 48px,#dcffff33 49px 51px,transparent 54px 90px);filter:blur(1px);animation:recruitWater 2s linear infinite;pointer-events:none}.phase-sailing .recruit-scene-caption{bottom:9%;animation:recruitVoyageTitle calc(5.8s * var(--recruit-speed)) ease both}.phase-sailing .recruit-scene-caption h1{font-size:27px}.recruit-arrival-fade{position:absolute;inset:0;background:#effdff;opacity:0;animation:recruitArrival calc(5.8s * var(--recruit-speed)) ease both;pointer-events:none}.recruit-deck{background:linear-gradient(#03233b55,#041322aa),url('assets/recruit/ocean.webp') center/cover;filter:blur(3px);transform:scale(1.03)}.recruit-treasure{top:44%;width:min(88vw,460px);height:min(88vw,460px);padding:0;animation:recruitChestHover 2.4s ease-in-out infinite;background:none!important;isolation:isolate}.recruit-treasure>.recruit-chest-art{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background-image:url('assets/recruit/chest-atlas.webp');background-size:200% 100%;background-repeat:no-repeat;box-shadow:none;transition:none;z-index:2}.recruit-chest-art.closed{background-position:0 0}.recruit-treasure>.recruit-chest-art.opened{background-position:100% 0;opacity:0;z-index:3}.recruit-treasure>.recruit-lock-shine{position:absolute;left:31%;top:57%;width:15%;height:15%;border:0;background:radial-gradient(circle,#fffbd9aa,transparent 65%);border-radius:50%;z-index:4;animation:recruitGlow 1.2s ease-in-out infinite alternate;pointer-events:none}.is-opening.recruit-treasure{animation:recruitTreasureOpening calc(2.4s * var(--recruit-speed)) ease both}.is-opening .recruit-chest-art.closed{animation:recruitClosedFade calc(2.4s * var(--recruit-speed)) ease both}.is-opening .recruit-chest-art.opened{animation:recruitOpenedFade calc(2.4s * var(--recruit-speed)) ease both}.recruit-treasure-rays{position:absolute;inset:10% -30% 20%;opacity:.18;background:repeating-conic-gradient(from 0deg,transparent 0 18deg,#ffe3a6 20deg 22deg,transparent 24deg 40deg);animation:recruitSky 32s linear infinite;pointer-events:none}.phase-opening .recruit-treasure-rays{opacity:.55}.phase-opening .recruit-chest-light{animation:recruitBurst calc(2.4s * var(--recruit-speed)) ease both}.recruit-opening-sparks{position:absolute;inset:0;pointer-events:none;z-index:8}.recruit-opening-sparks i{position:absolute;left:50%;top:45%;width:5px;height:11px;border-radius:50%;background:#ffefb0;box-shadow:0 0 9px #ffc75a;opacity:0}.phase-opening .recruit-opening-sparks i{--angle:calc(var(--i)*30deg);animation:recruitTreasureSpark calc(2.4s * var(--recruit-speed)) ease both;animation-delay:calc(var(--i)*.015s)}.phase-chest .recruit-scene-caption,.phase-opening .recruit-scene-caption{bottom:13%}.recruit-reduced .recruit-ship-track{transform:translate(4%,-12%) scale(.85);animation:none!important}
@keyframes recruitVoyagePath{0%{transform:translate(-37%,25%) scale(1.25) rotate(-6deg)}35%{transform:translate(-12%,8%) scale(1.1) rotate(-2deg)}70%{transform:translate(10%,-16%) scale(.83) rotate(4deg)}100%{transform:translate(20%,-25%) scale(.69) rotate(2deg)}}@keyframes recruitOceanCamera{from{transform:scale(1.07) translate(-1%,1%)}to{transform:scale(1.18) translate(-3%,3%)}}@keyframes recruitShipRoll{0%,100%{transform:translateY(3px) rotate(-1.2deg)}50%{transform:translateY(-5px) rotate(1.1deg)}}@keyframes recruitTrail{from{opacity:.2;scale:.8}to{opacity:.75;scale:1.17}}@keyframes recruitSpray{to{scale:1.35;opacity:.4}}@keyframes recruitWater{to{background-position:35px 60px}}@keyframes recruitVoyageTitle{0%,15%{opacity:0;translate:0 15px}30%,80%{opacity:1;translate:0 0}100%{opacity:0}}@keyframes recruitArrival{0%,88%{opacity:0}100%{opacity:1}}@keyframes recruitChestHover{50%{translate:0 -5px;filter:drop-shadow(0 10px 15px #ffe2a344)}}@keyframes recruitClosedFade{0%,24%{opacity:1}40%,100%{opacity:0}}@keyframes recruitOpenedFade{0%,24%{opacity:0;transform:scale(.96)}45%,100%{opacity:1;transform:none}}@keyframes recruitTreasureOpening{0%{transform:translate(-50%,-50%) scale(1)}12%{transform:translate(-50%,-50%) rotate(-2deg)}24%{transform:translate(-50%,-50%) rotate(2deg)}50%{transform:translate(-50%,-50%) scale(1.06)}100%{transform:translate(-50%,-50%) scale(1.22);filter:brightness(1.5) drop-shadow(0 0 30px #ffe9b8)}}@keyframes recruitTreasureSpark{0%,25%{opacity:0;transform:rotate(var(--angle)) translateY(0)}40%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-180px)}}
@media(prefers-reduced-motion:reduce){.recruit-ship-track{transform:translate(4%,-12%) scale(.85)}.phase-opening .recruit-chest-art.closed{opacity:0!important}.phase-opening .recruit-chest-art.opened{opacity:1!important}.recruit-opening-sparks{display:none}}.recruit-reduced.phase-opening .recruit-chest-art.closed{opacity:0}.recruit-reduced.phase-opening .recruit-chest-art.opened{opacity:1}
/* Stable anchor: :active may scale a control, but must never move its hit area. */
.recruit-treasure-anchor{position:absolute;left:50%;top:43%;width:min(88vw,460px);height:min(88vw,460px);transform:translate(-50%,-50%);z-index:7;perspective:900px}.recruit-treasure-anchor .recruit-treasure{inset:0;left:0;top:0;width:100%;height:100%;transform:none;scale:1;pointer-events:none;animation:recruitChestHover 2.4s ease-in-out infinite}.recruit-treasure-anchor .recruit-treasure.is-opening{animation:recruitKeyChestWake calc(4.3s * var(--recruit-speed)) ease both}.recruit-treasure>.recruit-lock-target{position:absolute;left:30%;top:55%;width:18%;height:22%;z-index:8;background:transparent;border:2px solid transparent;border-radius:50%;box-shadow:none;pointer-events:none}.recruit-lock-target.is-targeted{border-color:#fff0aa!important;box-shadow:0 0 22px #ffe6a2,inset 0 0 14px #ffe6a266!important}.recruit-key{position:absolute;left:65%;top:93%;width:44%;height:auto;aspect-ratio:180/80;min-height:55px;padding:0;border:0;background:none!important;box-shadow:none!important;transform:translate(-10%,-50%);transform-origin:8% 50%;z-index:12;overflow:visible;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;filter:drop-shadow(0 5px 4px #031527aa)}.recruit-key:active:not(:disabled){transform:translate(-10%,-50%)}.recruit-key>svg{display:block;width:100%;height:100%;overflow:visible;transform-origin:8% 50%;pointer-events:none}.recruit-key small{display:block;position:absolute;top:100%;left:0;right:0;font-size:8px;letter-spacing:1.2px;color:#fff0bb;text-shadow:0 2px 3px #000;pointer-events:none}.recruit-key.is-held{z-index:20;cursor:grabbing;filter:drop-shadow(0 0 12px #ffda7f)}.phase-opening .recruit-key{opacity:1;cursor:default;animation:recruitKeyInsert calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-key>svg{animation:recruitKeyTurn calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-chest-art.closed{animation:recruitUnlockedClosed calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-chest-art.opened{animation:recruitUnlockedOpen calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-chest-light{animation:recruitUnlockLight calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-opening-sparks i{animation-duration:calc(4.3s * var(--recruit-speed));animation-delay:0s}.phase-opening .recruit-treasure-rays{animation:recruitUnlockRays calc(4.3s * var(--recruit-speed)) ease both}.recruit-emerging-cards{position:absolute;inset:0;pointer-events:none;z-index:9}.recruit-emerging-cards i{position:absolute;left:35%;top:43%;width:27%;aspect-ratio:2/3;border:2px solid #f6d486;border-radius:8px;background:repeating-conic-gradient(from 45deg at 50% 45%,#142a47 0deg 45deg,#203b60 45deg 90deg);box-shadow:inset 0 0 0 4px #071b30,inset 0 0 0 5px #b28a47,0 0 24px var(--recruit-glow);opacity:0;display:grid;place-items:center}.recruit-emerging-cards b{font:900 40px Georgia,serif;color:#ffe7a1;text-shadow:0 0 14px #ffd77a}.phase-opening .recruit-emerging-cards i{animation:recruitCardsEscape calc(4.3s * var(--recruit-speed)) cubic-bezier(.2,.6,.35,1) both}.phase-chest .recruit-scene-caption,.phase-opening .recruit-scene-caption{bottom:10%}.phase-chest .recruit-scene-caption p{max-width:290px;margin:auto;line-height:1.6}.recruit-reduced.phase-opening .recruit-key{left:36%;top:65%;opacity:0}.recruit-reduced.phase-opening .recruit-emerging-cards i{opacity:1;transform:translateY(-90px)}
@keyframes recruitKeyInsert{0%,6%{left:65%;top:93%;opacity:1}28%,48%{left:36%;top:65%;opacity:1}56%,100%{left:36%;top:65%;opacity:0}}@keyframes recruitKeyTurn{0%,29%{transform:none}42%,100%{transform:rotateX(80deg)}}@keyframes recruitUnlockedClosed{0%,44%{opacity:1}62%,100%{opacity:0}}@keyframes recruitUnlockedOpen{0%,44%{opacity:0;transform:perspective(500px) rotateX(12deg) scale(.97)}64%,100%{opacity:1;transform:none}}@keyframes recruitKeyChestWake{0%,30%{filter:drop-shadow(0 7px 10px #0009);transform:none}35%{transform:rotate(-1deg)}41%{transform:rotate(1deg)}50%{transform:none}75%,100%{transform:scale(1.04);filter:drop-shadow(0 0 24px #ffdf8b)}}@keyframes recruitUnlockLight{0%,40%{opacity:.15;transform:scale(.55)}65%{opacity:1;transform:scale(1.3)}100%{opacity:.7;transform:scale(1.6)}}@keyframes recruitUnlockRays{0%,40%{opacity:.12;transform:rotate(-5deg)}70%,100%{opacity:.6;transform:rotate(12deg)}}@keyframes recruitCardsEscape{0%,60%{opacity:0;transform:translateY(20px) scale(.2) rotate(0deg)}70%{opacity:1}92%{opacity:1;transform:translate(calc((var(--i) - 1)*85px),calc(-95px - var(--i)*12px)) scale(.95) rotate(calc((var(--i) - 1)*18deg))}100%{opacity:0;transform:translate(calc((var(--i) - 1)*95px),-190px) scale(1.3) rotate(calc((var(--i) - 1)*20deg))}}
@media(prefers-reduced-motion:reduce){.phase-opening .recruit-key{opacity:0!important}.phase-opening .recruit-chest-art.closed{opacity:0!important}.phase-opening .recruit-chest-art.opened{opacity:1!important}.phase-opening .recruit-emerging-cards i{opacity:1;transform:translateY(-80px)}}
/* Stern view faces the destination; its bow and wake share the same heading. */
.recruit-ship-track{left:-3%;top:31%;width:94%;height:49%;animation-name:recruitSternPassage}.recruit-ship-wake{left:-5%;top:84%;width:58%;height:26%;transform:rotate(-42deg);transform-origin:90% 0;box-shadow:0 8px 0 -5px #cfffffaa,0 19px 0 -12px #cfffff77}.recruit-bow-spray{right:12%;top:53%;width:13%;height:9%}.recruit-ship-bob{animation-name:recruitSternBob}.recruit-ship-bob>.recruit-vessel{filter:drop-shadow(-4px 12px 6px #00384c88)}
@keyframes recruitSternPassage{0%{transform:translate(-17%,24%) scale(1.12)}35%{transform:translate(-3%,8%) scale(.93)}70%{transform:translate(18%,-16%) scale(.67)}100%{transform:translate(30%,-28%) scale(.5)}}@keyframes recruitSternBob{0%,100%{transform:translateY(2px) rotate(-.6deg)}50%{transform:translateY(-4px) rotate(.6deg)}}
/* Proximity feedback is local to the lock and proportional to the key distance. */
.recruit-lock-target{--key-proximity:0;isolation:isolate;transition:background .12s,box-shadow .12s}.recruit-lock-target.is-near{background:radial-gradient(circle,#fff2a644,transparent 70%)!important;box-shadow:0 0 calc(8px + var(--key-proximity)*24px) #ffd97199!important}.recruit-lock-target .key-orbit{position:absolute;inset:-20%;border:2px solid #ffdf86;border-bottom-color:transparent;border-left-color:#fff3b855;border-radius:50%;opacity:var(--key-proximity);scale:calc(1.3 - var(--key-proximity)*.3);animation:keyCompass 3s linear infinite;pointer-events:none}.recruit-lock-target .key-orbit.second{inset:-42%;border:1px dashed #fff3ba;animation-direction:reverse;animation-duration:5s}.recruit-lock-target>b{position:absolute;left:50%;top:-50%;font:28px Georgia;color:#fff3bb;opacity:var(--key-proximity);text-shadow:0 0 14px #ffcf68;animation:keySparkle .8s ease-in-out infinite alternate;pointer-events:none}.recruit-key.is-near-lock>svg{filter:drop-shadow(0 0 8px #ffe294);transition:filter .12s}.recruit-lock-target.is-targeted{background:radial-gradient(circle,#fff7c577,transparent 72%)!important}.recruit-key.is-near-lock small{color:#fff9d4}.phase-opening .recruit-lock-target{animation:keyLockConfirm calc(4.3s * var(--recruit-speed)) ease both}.phase-opening .recruit-lock-target .key-orbit{opacity:.8}.phase-opening .recruit-lock-target>b{opacity:1}
@keyframes keyCompass{to{rotate:360deg}}@keyframes keySparkle{to{scale:1.35;filter:brightness(1.4)}}@keyframes keyLockConfirm{0%,32%{box-shadow:0 0 20px #ffdf8499}42%{box-shadow:0 0 42px #fff0ac;scale:1.12}65%,100%{opacity:0;scale:1.3}}@keyframes recruitKeyInsert{0%,6%{left:var(--key-start-x,65%);top:var(--key-start-y,93%);opacity:1}28%,48%{left:36%;top:65%;opacity:1}56%,100%{left:36%;top:65%;opacity:0}}
@media(prefers-reduced-motion:reduce){.recruit-lock-target .key-orbit,.recruit-lock-target>b{animation:none!important}}
/* Category banners share the original recruitment flow and keep Grand Line artwork intact. */
.recruit-category-tabs{display:flex;gap:6px;padding:6px 12px;position:relative;z-index:2}.recruit-category-tabs button{flex:1;min-height:42px;background:#0a263b;color:#bed2df;border:1px solid #ac956355;border-radius:9px;font-size:12px;font-weight:700}.recruit-category-tabs button[aria-pressed="true"]{background:linear-gradient(#f2d78f,#ba853b);color:#152334;border-color:#ffe7b0;box-shadow:0 0 12px #edc87922}
.category-banner{isolation:isolate;min-height:340px;background:radial-gradient(ellipse at 50% 38%,#257e9b,#061b32 75%);overflow:hidden}.category-worst{background:radial-gradient(ellipse at 50% 40%,#7c284e,#151c3b 75%)}.category-emblem{position:absolute;font:220px Georgia;opacity:.09;left:50%;top:12%;transform:translateX(-50%);color:#ffe1a0}.category-art{position:absolute;inset:55px 0 80px}.category-art img{position:absolute;height:100%;width:60%;object-fit:contain;left:calc((var(--cast-index) + .5) * 100% / var(--cast-count));transform:translateX(-50%);filter:drop-shadow(0 5px 8px #0008)}.category-heading{position:absolute;z-index:2;top:10px;left:16px;right:16px;text-align:center;text-shadow:0 2px 5px #000}.category-heading small{font-size:8px;letter-spacing:1.5px;color:#ead39b}.category-heading h1{font:700 clamp(24px,6vw,34px) Georgia;color:#ffe4a5;line-height:1.1;margin-top:5px}.category-heading p{font-size:11px;margin-top:4px;color:#d9e9ee}.category-featured{position:absolute;bottom:28px;left:10px;right:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;background:linear-gradient(transparent,#051526)}.category-featured span{font-size:9px;padding:5px 7px;background:#061c32e6;border:1px solid #ddbc7044;border-radius:6px}.category-featured b{color:#ffd581}.category-guarantee{position:absolute;bottom:5px;left:6px;right:6px;text-align:center;font-size:9px;color:#f0d59a}.banner-odds details{padding:8px 0;border-bottom:1px solid #a5bdd533}.banner-odds summary{min-height:32px;cursor:pointer}.banner-odds details p{font-size:12px!important}
/* Four heads stay separate: captains behind, Gear 4 variants in the foreground. */
.category-worst .category-art img:nth-child(1){width:46%;height:85%;left:15%;top:0}
.category-worst .category-art img:nth-child(2){width:46%;height:85%;left:43%;top:0}
.category-worst .category-art img:nth-child(3){width:58%;height:80%;left:34%;top:24%}
.category-worst .category-art img:nth-child(4){width:58%;height:80%;left:78%;top:22%}
@media(max-height:680px){.category-banner{min-height:0}.category-heading h1{font-size:23px}.category-art{inset:65px 0 80px}.category-featured span{font-size:8px}.category-guarantee{font-size:8px}}

/* Illustrated banner covers; text and recruitment controls remain live UI. */
.recruit-banner:not(.category-banner){background:#0a1931 url('./assets/banners/grand-line-gear5.webp') center center/cover no-repeat}
.recruit-banner:not(.category-banner) .recruit-banner-sea,
.recruit-banner:not(.category-banner) .recruit-shanks,
.recruit-banner:not(.category-banner) .recruit-nika,
.recruit-banner:not(.category-banner) .recruit-banner-light{display:none}
.recruit-banner.category-marine{background:#0a1931 url('./assets/banners/marine-admirals.webp') center center/cover no-repeat}
.recruit-banner.category-marine .category-art,.recruit-banner.category-marine .category-emblem{display:none}
.recruit-banner.category-marine .category-heading{position:relative;z-index:2;text-shadow:0 2px 9px #001427}

/* Source: shop.css */
.view-shop #top,.view-shop #vignette,.view-shop #world{display:none}.view-shop #game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}.view-shop #main{padding:0!important;min-height:0;flex:1;overflow:hidden}.market-shell{height:100%;min-height:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 80% 10%,#153f55,#061729 55%);color:#f8eaca;overflow:hidden;isolation:isolate}.market-header{display:flex;align-items:center;gap:11px;padding:calc(10px + env(safe-area-inset-top,0px)) 13px 11px;border-bottom:1px solid #e6c78566;background:linear-gradient(110deg,#183b51,#071b30);flex:none}.market-back{width:42px;height:42px;min-width:42px;border:1px solid #d8b970;border-radius:8px;background:linear-gradient(#254e69,#0a2036);color:#ffe4a5;font:30px/1 Arial;box-shadow:inset 0 0 0 2px #081b2c66}.market-header>div:nth-child(2){min-width:0;flex:1}.market-header small{font-size:8px;letter-spacing:1.8px;color:#d7c086}.market-header h1{font:800 17px/1.15 Georgia,serif;margin:3px 0;color:#fff0c7}.market-wallet{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;white-space:nowrap}.market-wallet span{padding:5px 8px;border:1px solid #bd9c6066;border-radius:5px;background:#06182d;color:#f4da91}.market-wallet span+span{color:#8bdcff}.market-hero{position:relative;flex:none;height:145px;padding:21px 20px;background:linear-gradient(90deg,#06182cf5,#06182ca3 50%,#071a3122),url('assets/home-v2.webp') 70% 39%/cover;border-bottom:1px solid #dfb96977;box-shadow:inset 0 -25px 25px #06182b66;overflow:hidden}.market-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 45%,#fff2 49%,transparent 53%);translate:-100% 0;animation:marketHeroShine 8s ease infinite;pointer-events:none}.market-hero>small{font-size:7px;letter-spacing:2px;color:#e6c57e}.market-hero h2{font:800 27px/1.05 Georgia,serif;color:#fff1c7;text-shadow:0 2px 5px #000;margin:11px 0 9px}.market-hero>span{font-size:9px;color:#b6cbd8}.market-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));flex:none;padding:8px 7px 0;gap:3px;background:#071a2dee;border-bottom:1px solid #bd9c6066}.market-tabs button{min-width:0;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:3px 1px 7px;border:0;border-bottom:3px solid transparent;background:transparent;color:#adc3d1;border-radius:5px 5px 0 0;font-size:8px;transition:background .15s,border-color .15s}.market-tabs button[aria-current=page]{color:#ffe29e;border-bottom-color:#e7bf65;background:linear-gradient(#29435999,#62461c44)}.market-tabs button:active{filter:brightness(1.25);transform:scale(.97)}.shop-item-image{display:block;position:relative;width:90px;height:90px;background-image:url('assets/shop/items-atlas.webp');background-size:400% 200%;background-position:calc(var(--item-x)*100%/3) calc(var(--item-y)*100%);background-repeat:no-repeat;filter:drop-shadow(0 4px 6px #0006);flex:none}.market-tabs .shop-item-image{width:34px;height:34px}.market-outfit-icon{width:34px;height:34px;object-fit:cover;object-position:50% 33%;border-radius:5px;filter:drop-shadow(0 2px 2px #000)}.market-content{min-height:0;overflow:auto;flex:1;padding:13px 12px 20px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b49961 #081c2e;animation:marketPanelIn .22s ease both}.market-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:1px 2px 12px}.market-section-title h2{font:800 19px Georgia,serif;color:#f6e2b0;margin:0}.market-section-title>span{font-size:7px;color:#9fb7c7;letter-spacing:1px}.market-section-note{font-size:10px;line-height:1.5;color:#a5bfcd;margin:0 3px 13px}.market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.market-item{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid #d6b77488;border-radius:11px;overflow:hidden;background:linear-gradient(145deg,#173b52,#0b243b 65%,#081a2c);box-shadow:inset 0 0 0 2px #091b2a88,0 5px 12px #0003;animation:marketPanelIn .25s ease both}.market-item-art{position:relative;display:grid;place-items:center;min-height:105px;background:radial-gradient(ellipse,#31668066,transparent 72%);border-bottom:1px solid #b2915d22}.market-item-art:before{content:'';position:absolute;inset:12%;border-radius:50%;background:repeating-conic-gradient(#cfdeec0c 0 15deg,transparent 15deg 45deg)}.market-quantity{position:absolute;right:9px;bottom:8px;font-size:11px;font-weight:800;padding:3px 6px;border:1px solid #d6bb7c55;border-radius:4px;background:#05182c;color:#ffe6a2}.market-item-copy{padding:10px 10px 7px;flex:1;min-height:105px}.market-item-copy>small{font-size:7px;letter-spacing:.8px;color:#e5c88c}.market-item-copy h3{font:800 13px/1.22 Arial,sans-serif;color:#fff0cc;margin:6px 0}.market-item-copy p{font-size:9px;line-height:1.45;color:#a9c3d2;margin:0}.market-item>button{margin:0 8px 9px;min-height:43px;padding:7px 4px;border:1px solid #f7d991;border-radius:6px;background:linear-gradient(#f4d899,#c49648);box-shadow:inset 0 0 0 1px #8c682c;color:#2c2215;font-size:10px;font-weight:900}.market-item>button>span,.market-item>button>small{display:block}.market-item>button>span{font-size:13px}.market-item>button>small{font-size:7px;letter-spacing:.8px;margin-top:3px}.market-item>button:disabled{opacity:.4;filter:saturate(.4)}.market-outfit-art{position:relative;height:210px;background:radial-gradient(ellipse at 50% 45%,#766c8e77,#0d2842 70%);overflow:hidden;border-bottom:1px solid #cfaf6a33}.market-outfit-art img{width:100%;height:100%;object-fit:contain;padding:7px 5px 17px}.market-outfit-art>span{position:absolute;left:0;right:0;bottom:0;text-align:center;padding:5px;background:#071b2fe8;font-size:7px;letter-spacing:1.3px;color:#dfc58c}.market-inline-link{display:flex;align-items:center;gap:10px;margin-top:13px;padding:12px;border:1px solid #d4b47444;border-radius:8px;background:#0d2b41;font-size:10px;color:#bfd1d8}.market-inline-link button{margin-left:auto;background:transparent;border:0;color:#ffe2a0;font-size:9px;min-height:38px}.market-gem-banner{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #7bc8e877;border-radius:10px;background:linear-gradient(120deg,#16475e,#0b263c);margin-bottom:12px}.market-gem-banner>.shop-item-image{width:74px;height:74px}.market-gem-banner h3{font:800 16px Georgia;color:#d4f3ff;margin:0 0 7px}.market-gem-banner p{font-size:10px;line-height:1.5;color:#b7d8e8;margin:0}.market-source-list{display:grid;gap:10px}.market-source-list article{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;padding:12px;border:1px solid #cfb37666;border-radius:10px;background:#0e2b41}.market-source-list article>.shop-item-image,.market-source-list article>img{width:56px;height:65px;object-fit:cover;border-radius:6px}.market-source-list small{font-size:7px;letter-spacing:1.1px;color:#e8c784}.market-source-list h3{font-size:13px;margin:5px 0;color:#f7e7c4}.market-source-list p{font-size:10px;line-height:1.5;margin:0;color:#a8c6d5}.market-source-list button{grid-column:1/-1;min-height:39px;border:1px solid #c7a86b;border-radius:5px;background:linear-gradient(#20485f,#0d283e);color:#f8e1a7;font-size:9px;font-weight:800;letter-spacing:.7px}.market-footer{flex:none;padding:9px 5px calc(9px + env(safe-area-inset-bottom,0px));text-align:center;background:#061529;border-top:1px solid #c2a06533;font-size:7px;letter-spacing:.5px;color:#9eb9c8}.market-confirm{text-align:center}.market-confirm>small{font-size:8px;color:#d8bb7d;letter-spacing:1.5px}.market-confirm h2{font:800 25px Georgia;color:#ffe7ad;margin:10px 0}.market-confirm>.shop-item-image{margin:14px auto;width:120px;height:120px}.market-confirm h3{font-size:17px;color:#fff0c8}.market-confirm p{font-size:12px;line-height:1.6;color:#b4ced9}.market-preview-actor{display:block;width:100%;height:min(43dvh,350px);object-fit:contain;margin:12px auto;background:radial-gradient(ellipse,#29516c88,transparent 65%)}.market-cost{padding:13px;border:1px solid #cfb37c55;border-radius:8px;background:#0e2b41;margin-bottom:14px}.market-cost>span{display:block;font-size:21px;font-weight:900;color:#ffe5a1}.market-cost>small{display:block;margin-top:6px;color:#adc7d4;font-size:11px}.market-confirm>button{display:block;width:100%;min-height:45px;margin:9px 0 0;padding:10px;border:1px solid #f4d28b;border-radius:7px;background:linear-gradient(#f5dba2,#bc883d);color:#302416;font-size:11px;font-weight:900}.market-confirm>button.market-cancel{background:#102e44;color:#c6d7df;border-color:#7a9bac66}.market-confirm>button:disabled{opacity:.45}@keyframes marketPanelIn{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes marketHeroShine{0%,70%{translate:-100% 0}100%{translate:100% 0}}@media(max-height:700px){.market-hero{height:113px;padding:13px 17px}.market-hero h2{font-size:23px;margin:7px 0}.market-header{padding-top:calc(7px + env(safe-area-inset-top,0px))}.market-tabs button{min-height:58px}.market-item-art{min-height:94px}.market-item-copy{min-height:102px}.market-content{padding-top:10px}.market-outfit-art{height:175px}}@media(max-width:350px){.market-header h1{font-size:14px}.market-header{gap:7px;padding-inline:10px}.market-wallet{font-size:10px}.market-tabs button{font-size:7px}.market-grid{gap:8px}.market-item-copy{padding-inline:8px}.market-item-copy h3{font-size:12px}}@media(prefers-reduced-motion:reduce){.market-shell *{animation:none!important;transition:none!important}}.app-paused .market-shell *{animation-play-state:paused!important}
.market-back{width:44px;height:44px;min-width:44px}.market-tabs button{font-size:9px}.market-item-copy h3{font-size:14px}.market-item-copy p{font-size:10px}.market-item>button{min-height:44px}.market-item>button>small{font-size:8px}.market-source-list button,.market-inline-link button{min-height:44px}.market-footer{font-size:8px}.market-section-title>span{font-size:8px}
.entry-actions .entry-premium{border:1px solid #eacb84;color:#ffe3a0;background:linear-gradient(120deg,#18324a,#352936);font-size:12px}.premium-info{padding:10px}.premium-info>small,.premium-shop-hero>small{color:#eacb84;font-size:10px;letter-spacing:1.5px}.premium-info h2{margin:10px 0;font:700 29px Georgia;color:#ffe2a0}.premium-price{font:700 36px Georgia;color:#ffe2a0;margin:16px 0}.premium-price small{display:block;font:12px Arial;color:#a9bfcc;margin-top:6px}.premium-info li{padding:8px 0;color:#e4d6ba}.premium-info p,.paid-note{font-size:12px;line-height:1.5;color:#acc0cd;margin:12px 0}.premium-info button,.premium-shop-hero button,.paid-grid button{display:block;width:100%;min-height:44px;margin-top:9px;border:1px solid #c8ab6d;border-radius:9px;background:#15354b;color:#ffe4b3}.premium-info button:disabled,.paid-grid button:disabled{opacity:.55}.premium-shop-hero{padding:20px;border:1px solid #d5b66e;border-radius:15px;background:radial-gradient(ellipse at top right,#4b3d3c,#0a263e)}.premium-shop-hero h2{color:#ffe1a0;margin:9px 0;font:700 27px Georgia}.premium-shop-hero p{font-size:12px;color:#c0d4df}.paid-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.paid-grid article{padding:16px 10px;background:#0c2a3d;border:1px solid #bd9c5c66;border-radius:12px;text-align:center}.paid-grid article>span{display:block;font-size:40px;color:#8fe8ff}.paid-grid article>small{font-size:8px;color:#c8b68a}.paid-grid h3{font-size:13px;margin:9px 0}.paid-grid p{font-size:12px;color:#bcd3df}.paid-grid strong{display:block;margin-top:10px;color:#ffe2a0;font-size:22px}
.premium-info ul{list-style:none;padding:0;margin:12px 0}

/* Source: history-menu.css */
/* Story hub: illustrated arc covers, parchment title and compact nautical navigation. */
body:has(.story-hub,.story-arc-screen) #top,body:has(.story-hub,.story-arc-screen) #vignette,body:has(.story-hub,.story-arc-screen) #world{display:none}body:has(.story-hub,.story-arc-screen) #game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}body:has(.story-hub,.story-arc-screen) #main{padding:0!important;min-height:0;flex:1;overflow:hidden}.story-hub,.story-arc-screen{height:100%;min-height:0;display:flex;flex-direction:column;position:relative;isolation:isolate;background:radial-gradient(ellipse at top,#1e5671,#0a263d 40%,#071727);color:#f8eccb;overflow:hidden}.story-hub:before,.story-arc-screen:before{content:'';position:absolute;inset:40% 0 0;z-index:-1;background:linear-gradient(#04172be6,#100e0edc),url('assets/world-anime.webp') center/cover;opacity:.7}.history-top{display:flex;align-items:center;gap:8px;flex:none;min-height:65px;padding:calc(9px + env(safe-area-inset-top,0px)) 11px 9px;background:linear-gradient(110deg,#17466c,#08274a);border-bottom:1px solid #d8bb7955;z-index:3}.history-back,.history-menu-button{width:36px;height:44px;min-width:36px;border:1px solid #d7bc81;border-radius:9px;background:linear-gradient(#224461,#071e38);box-shadow:inset 0 0 0 2px #06182a88,0 3px 5px #0004;color:#ffe5a9;display:grid;place-items:center;padding:0;font:28px Arial}.history-menu-button svg{width:24px;height:24px}.history-profile{display:flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:#f5e4b9;flex:1;min-width:0;text-align:left}.history-profile img{width:39px;height:43px;object-fit:cover;border:1px solid #e2c37e;border-radius:8px;box-shadow:0 2px 6px #0006}.history-profile>span{min-width:37px;flex:1;max-width:83px}.history-profile b{font-size:11px;white-space:nowrap}.history-profile progress{display:block;appearance:none;width:100%;height:5px;border:1px solid #b1956355;border-radius:3px;background:#07192b;margin-top:5px;overflow:hidden}.history-profile progress::-webkit-progress-bar{background:#07192b}.history-profile progress::-webkit-progress-value{background:linear-gradient(90deg,#c78f37,#ffe39a)}.history-wallet{display:flex;gap:5px;align-items:center;font-size:10px;font-weight:900}.history-wallet>span{display:block;white-space:nowrap;padding:7px 7px;background:linear-gradient(#0a2444,#07162f);border:1px solid #cfb77e99;border-radius:7px;box-shadow:inset 0 0 0 1px #0007,0 2px 5px #0004}.history-coins{color:#ffe29d}.history-gems{color:#8be9ff}.history-hero{position:relative;height:140px;flex:none;overflow:hidden;background:linear-gradient(0deg,#08345a88,transparent 45%),url('assets/recruit/ocean.webp') center 31%/cover;padding:20px 14px;border-bottom:1px solid #c7b07888}.history-hero:after{content:'';position:absolute;left:-20%;right:-20%;bottom:-18px;height:29px;border-top:2px solid #d9faffbb;border-radius:50%;box-shadow:0 -7px 12px #00b9df66;pointer-events:none}.history-hero>img{position:absolute;right:-7px;top:-7px;width:42%;height:145px;object-fit:contain;filter:drop-shadow(0 5px 6px #00182a99);animation:historyShip 5s ease-in-out infinite}.history-hero-title{position:relative;display:inline-flex;align-items:center;gap:7px;padding:10px 18px 8px 7px;max-width:74%;background:linear-gradient(135deg,#fff1bb,#dec28b 50%,#b78c4e);box-shadow:0 4px 6px #001526aa;transform:rotate(-3deg);border:1px solid #7b501f;color:#2e1e12;clip-path:polygon(1% 5%,20% 1%,21% 5%,45% 0,47% 5%,73% 0,75% 5%,97% 0,100% 15%,98% 40%,100% 44%,98% 80%,100% 96%,74% 100%,72% 95%,49% 100%,47% 96%,22% 100%,20% 96%,0 100%,2% 70%,0 65%,2% 30%,0 20%)}.history-hero-title>svg{width:39px;height:39px;stroke:#795121;filter:drop-shadow(0 1px #fff5c5)}.history-hero h1{font:900 clamp(27px,8.4vw,41px)/1 Georgia,serif;color:#1e160e;letter-spacing:-1.7px;text-shadow:1px 1px #fff7d6;margin:0}.history-hero>span{display:block;font-size:7px;font-weight:900;letter-spacing:2px;color:#ffe7a9;margin:8px 0 0 48px;text-shadow:0 2px 3px #00142f}.history-hero p{margin:5px 0 0 12px;font-size:10px;color:#fff5dd;text-shadow:0 1px 3px #001529}.history-arc-list{min-height:0;flex:1;display:flex;flex-direction:column;gap:11px;padding:12px 12px 15px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bba16a #0c2133}.history-continue{flex:none;display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 12px;border:1px solid #f5d78e;border-radius:9px;background:linear-gradient(115deg,#dbb66b,#ffdf91 45%,#c29343);box-shadow:inset 0 0 0 2px #5d431b33,0 3px 8px #0006;color:#2b2113;text-align:left}.history-continue>svg{width:30px;height:30px}.history-continue>span{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.history-continue small{font-size:7px;font-weight:800;letter-spacing:1.1px;color:#5c4824}.history-continue strong{font-size:11px;font-weight:1000;letter-spacing:.6px}.history-continue em{font-size:8px;font-style:normal;color:#57411f;line-height:1.2}.history-continue>b{font:25px Georgia}.history-arc-card{position:relative;display:block;flex:none;min-height:150px;width:100%;text-align:left;border:1px solid #ac9874;border-radius:13px;padding:0;overflow:hidden;background:#112d43;color:#fbf0d5;box-shadow:inset 0 0 0 2px #08101daa,0 4px 12px #0009;isolation:isolate;animation:historyCardIn .3s ease both}.history-arc-card.is-current{min-height:172px;border:2px solid #ffdf86;box-shadow:inset 0 0 0 2px #8b642f,0 0 0 2px #b2864233,0 0 14px #f1c56a66,0 5px 13px #0009}.history-arc-card:disabled{opacity:1;cursor:default}.history-arc-scenery{position:absolute;inset:0;background-position:center;background-size:cover;z-index:-4;transition:scale .2s}.history-arc-cast{position:absolute;inset:0;z-index:-3;pointer-events:none}.history-arc-cast>img{position:absolute;object-fit:contain;object-position:center top;filter:drop-shadow(0 4px 5px #0008)}.history-arc-cast .arc-main{height:119%;width:64%;right:-9%;bottom:-23%}.history-arc-cast .arc-side{height:87%;width:37%;right:24%;bottom:-21%;filter:drop-shadow(0 3px 4px #06172b)}.arc-0 .arc-side{right:20%;height:87%;bottom:-27%}.arc-1 .arc-main{right:-11%;width:74%;height:127%;bottom:-28%}.arc-2 .arc-main{right:-6%;width:53%;height:127%;bottom:-24%}.arc-2 .arc-side{right:23%;bottom:-24%;height:90%}.history-arc-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#020b15f2,#04101cca 35%,#04101c55 58%,#06132600 80%),linear-gradient(0deg,#03101cf5,transparent 39%);pointer-events:none}.history-arc-copy{padding:12px 13px 54px;max-width:64%;pointer-events:none}.history-arc-copy>small{display:flex;align-items:center;gap:5px;font-size:8px;letter-spacing:.8px;color:#e8dbbb}.history-arc-copy>small svg{width:19px;height:19px;padding:2px;border:1px solid #dfc78c;border-radius:4px;color:#ecd4a2}.history-arc-copy h2{font:800 clamp(20px,6vw,28px)/1.02 Georgia,serif;color:#fff5dd;text-shadow:0 2px 4px #000;margin:9px 0 7px}.history-arc-copy p{font-size:10px;line-height:1.35;color:#dae1e1;margin:0;max-width:185px;text-shadow:0 1px 3px #000}.history-arc-status{position:absolute;bottom:11px;left:12px;right:12px;display:flex;align-items:center;gap:8px;min-height:29px;font-size:9px;color:#c9d5df;pointer-events:none}.history-phase-count{display:flex;align-items:center;gap:4px;border:1px solid #bfa66e77;padding:4px 7px 4px 4px;border-radius:6px;background:#041425e8;color:#91cfff;font-size:8px;white-space:nowrap}.history-phase-count>svg{width:22px;height:22px;color:#e9c777}.history-phase-count b{color:#faf1d8;font-size:11px}.history-star-count{font-size:17px;color:#ffd26c;white-space:nowrap}.history-star-count b{font-size:10px;color:#f2e5c6}.history-arc-open{margin-left:auto;padding:9px 10px;border:1px solid #ffe5a1;border-radius:6px;box-shadow:inset 0 0 0 1px #8b642c;color:#2b2010;background:linear-gradient(#ffe8a3,#d4a34e);font-weight:1000;font-size:10px;letter-spacing:.3px}.history-progress-track{position:absolute;height:3px;left:12px;right:12px;bottom:3px;border-radius:4px;overflow:hidden;background:#07182999;pointer-events:none}.history-progress-track i{display:block;height:100%;background:linear-gradient(90deg,#bd8c3e,#ffdf84)}.history-arc-status>svg{width:22px;height:22px;color:#b8c9d7}.history-arc-card.is-locked .history-arc-scenery{filter:brightness(.64) saturate(.72)}.history-arc-card.is-locked .history-arc-cast{filter:brightness(.7) saturate(.72)}.history-arc-card.is-locked .history-arc-copy h2{color:#dde4e8}.history-arc-card.is-locked .history-arc-shade{background:linear-gradient(90deg,#030d1aeb,#07122499 44%,#06142522),linear-gradient(0deg,#041222e8,transparent 50%)}.history-arc-card:not(:disabled):active{transform:scale(.985);filter:brightness(1.12)}.history-arc-card:not(:disabled):active .history-arc-scenery{scale:1.025}.history-utilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:none;gap:7px;padding:9px 12px calc(11px + env(safe-area-inset-bottom,0px));border-top:1px solid #bba16f66;background:linear-gradient(#142b3ce6,#100f13f2)}.history-utilities button{display:flex;align-items:center;gap:8px;min-height:50px;min-width:0;padding:7px 8px;border:1px solid #e0bf78;border-radius:8px;background:linear-gradient(90deg,#061b2ee8,#092746b0),var(--history-tile) center/cover;color:#f2e7cd;text-align:left;box-shadow:inset 0 0 0 2px #07111e88,0 3px 5px #0006}.history-utilities button>svg{width:30px;height:30px;stroke:#e9d19b;filter:drop-shadow(0 2px #0008)}.history-utilities button>span{font-size:8px;line-height:1.2;text-transform:uppercase;flex:1;min-width:0}.history-utilities button b{display:block;font-size:10px;margin-top:2px;color:#fff0bf}.history-utilities button>i{font:23px Georgia;color:#edcf89;font-style:normal}.history-chapter-heading{padding:15px 16px 12px;text-align:center;flex:none;background:linear-gradient(#153b54,#0b263c)}.history-chapter-heading small{font-size:8px;letter-spacing:1.5px;color:#dabe7e}.history-chapter-heading h1{font:800 27px Georgia;color:#fff0c7;margin:7px 0}.history-chapter-heading p{font-size:11px;color:#b7d0de;margin:0}.history-chapter-art{position:relative;isolation:isolate;overflow:hidden;height:146px;flex:none;border-block:1px solid #c3a46b88}.history-chapter-art .history-arc-shade{background:linear-gradient(0deg,#071726ee,transparent 60%)}.history-chapter-art .arc-main{right:1%;width:55%;height:150%;bottom:-50%}.history-chapter-art .arc-side{right:36%;height:130%;bottom:-50%}.history-chapter-art>span{position:absolute;bottom:11px;left:14px;border:1px solid #dfc18366;background:#05192ae6;padding:7px 10px;border-radius:5px;font-size:10px;color:#efd39a}.history-phase-list{min-height:0;flex:1;overflow:auto;padding:13px 12px;display:flex;flex-direction:column;gap:11px;overscroll-behavior:contain}.history-phase-card{position:relative;isolation:isolate;flex:none;display:flex;align-items:center;min-height:116px;width:100%;overflow:hidden;border:1px solid #d7b67788;border-radius:10px;background:linear-gradient(90deg,#071626f7,#071626ca 50%,#07162644),var(--phase-art) center/cover;padding:12px;text-align:left;color:#f2e6c9;box-shadow:inset 0 0 0 2px #08132588,0 4px 10px #0006}.history-phase-card.is-boss{border-color:#e7aa6e;background:linear-gradient(90deg,#321322f7,#211120bb 50%,#07162644),var(--phase-art) center/cover}.history-phase-card:disabled{opacity:1;filter:saturate(.65);color:#c1cdd7}.history-phase-copy{max-width:67%;position:relative;z-index:2}.history-phase-copy>small{font-size:8px;letter-spacing:.8px;color:#edc780}.history-phase-copy h2{font:800 18px/1.1 Georgia;margin:6px 0 7px;color:#fff0cc}.history-phase-copy>span{display:block;font-size:8px;font-weight:800;color:#a4d6f0}.history-phase-copy>strong{display:block;font-size:19px;letter-spacing:2px;color:#566e81;margin-top:8px}.history-phase-copy>strong>b{font-weight:normal;color:#f9ca69}.history-phase-card>img{position:absolute;right:7px;top:5px;width:34%;height:calc(100% - 6px);object-fit:contain;object-position:top center;filter:drop-shadow(0 3px 4px #020c1aaa);pointer-events:none}.history-phase-card>i{position:absolute;right:7px;bottom:9px;font:25px Georgia;color:#ffe3a0;text-shadow:0 2px 2px #000}.history-phase-card>i svg{width:20px;height:20px}.history-chapter-footer{display:flex;gap:8px;padding:9px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid #cfb16c55;flex:none}.history-chapter-footer button{flex:1;min-height:44px;border:1px solid #d4b776;border-radius:7px;background:linear-gradient(#244963,#0e2a40);color:#f3deb0;font-size:9px;font-weight:800}.history-phase-card:not(:disabled):active{transform:scale(.985);filter:brightness(1.15)}@keyframes historyShip{50%{transform:translateY(-3px) rotate(1deg)}}@keyframes historyCardIn{from{opacity:.5;translate:0 7px}to{opacity:1;translate:0 0}}@media(max-height:730px){.history-hero{height:116px;padding-top:12px}.history-hero>img{height:126px}.history-hero-title{padding-block:7px}.history-hero-title h1{font-size:31px}.history-hero>span{margin-top:7px}.history-hero p{font-size:9px}.history-arc-card{min-height:137px}.history-arc-card.is-current{min-height:158px}.history-arc-copy{padding-top:10px}.history-arc-copy h2{font-size:23px;margin-top:7px}.history-arc-copy p{font-size:9px}.history-utilities{padding-top:7px;gap:6px}.history-utilities button{min-height:47px}.history-chapter-art{height:112px}.history-chapter-heading{padding:10px 12px}.history-chapter-heading h1{font-size:23px}.history-phase-card{min-height:111px}}@media(max-width:350px){.history-top{gap:5px;padding-inline:8px}.history-profile img{width:32px;height:36px}.history-profile>span{min-width:30px}.history-profile b{font-size:9px}.history-wallet{font-size:9px;gap:4px}.history-wallet>span{padding:7px 5px}.history-back,.history-menu-button{width:32px;min-width:32px}.history-hero-title{gap:4px}.history-hero-title>svg{width:32px;height:32px}.history-hero h1{font-size:29px}.history-arc-copy h2{font-size:23px}.history-arc-status{gap:6px}.history-phase-count{font-size:7px;padding-inline:3px}.history-arc-open{font-size:9px;padding:8px}.history-utilities button{gap:5px;padding-inline:6px}.history-utilities button>svg{width:25px;height:25px}.history-utilities button>span{font-size:7px}.history-utilities button b{font-size:9px}}@media(prefers-reduced-motion:reduce){.story-hub *,.story-arc-screen *{animation:none!important;transition:none!important}}.app-paused .story-hub *,.app-paused .story-arc-screen *{animation-play-state:paused!important}
.history-hero{height:178px}.history-hero>img{height:177px}.history-hero>.history-continue{position:absolute;left:13px;bottom:10px;width:70%;min-height:44px;padding:6px 9px;gap:7px;z-index:2}.history-hero>.history-continue>svg{width:23px;height:23px}.history-hero>.history-continue small{display:none}.history-hero>.history-continue strong{font-size:10px}.history-hero>.history-continue em{font-size:7px;line-height:1.3}.history-hero>.history-continue>b{font-size:21px}@media(max-height:730px){.history-hero{height:152px}.history-hero>img{height:156px}.history-hero>.history-continue{bottom:8px}}
/* Compact fixed masthead: keep the available height for the arc covers. */
.story-hub .history-hero{height:100px;padding:9px 13px}.story-hub .history-hero-title{gap:5px;padding:5px 14px 4px 6px;max-width:68%;transform:rotate(-2deg)}.story-hub .history-hero-title>svg{width:25px;height:25px}.story-hub .history-hero h1{font-size:27px;letter-spacing:-1px}.story-hub .history-hero>span,.story-hub .history-hero>p{display:none}.story-hub .history-hero>img{width:29%;height:103px;right:0;top:-2px}.story-hub .history-hero>.history-continue{left:12px;bottom:7px;width:73%;min-height:44px;padding:5px 9px;gap:7px}.story-hub .history-hero>.history-continue>svg{width:21px;height:21px}.story-hub .history-hero>.history-continue strong{font-size:9px;letter-spacing:.4px}.story-hub .history-hero>.history-continue em{font-size:7px}.story-hub .history-arc-list{padding-top:11px}@media(min-height:850px){.story-hub .history-hero{height:108px}.story-hub .history-hero>img{height:112px}.story-hub .history-hero h1{font-size:29px}}@media(max-width:350px){.story-hub .history-hero h1{font-size:25px}.story-hub .history-hero-title{padding-right:10px;max-width:70%}.story-hub .history-hero-title>svg{width:23px;height:23px}.story-hub .history-hero>.history-continue{width:77%}}

.history-saga-tabs{display:flex;overflow-x:auto;gap:8px;scrollbar-width:thin}.history-saga-tabs>button{flex:0 0 145px;min-height:46px}.fixed-team-access{position:sticky;top:0;z-index:8;background:#0a2033ed;border:1px solid #d9bd76;backdrop-filter:blur(8px)}

/* Fixed campaign / cinema track switch. Progression remains independent. */
.history-tracks{display:grid;grid-template-columns:1fr 1.4fr;gap:7px;flex:none;padding:7px 12px;background:#06182b;border-bottom:1px solid #ac8f5266}.history-tracks button{min-height:44px;border:1px solid #546b7a;border-radius:7px;color:#a6bdcd;background:#0d293d;font-size:10px;font-weight:800;letter-spacing:.7px}.history-tracks button[aria-current=page]{color:#ffe7a6;border-color:#dab66a;background:linear-gradient(110deg,#5a4424,#17354a)}.history-tracks small{display:block;margin-top:4px;font-size:7px;letter-spacing:.8px;color:#dbc799}.filler-heading{flex:none;padding:16px 17px 12px;background:radial-gradient(ellipse at 90% 0,#80612b44,transparent 70%),#0b2436}.filler-heading>small{font-size:8px;letter-spacing:1.8px;color:#dabc7e}.filler-heading h1{font:700 29px/1.1 Georgia,serif;color:#ffe6a7;margin:7px 0}.filler-heading p{font-size:11px;color:#bbccda;margin:0 0 9px}.filler-heading>span{display:inline-block;font-size:8px;letter-spacing:1px;padding:5px 8px;border:1px solid #9e8650;border-radius:4px;color:#edd49b;background:#463d253d}.filler-film-list{gap:13px!important}.filler-film-card{flex:none;position:relative;isolation:isolate;min-height:182px;border:1px solid var(--film-accent);border-radius:13px;overflow:hidden;text-align:left;color:#e9e6dc;background:linear-gradient(105deg,#081b2be8,#081b2b99),var(--film-scene) center/cover;padding:0;box-shadow:0 5px 14px #0005}.filler-film-image{height:134px;position:absolute;right:0;top:0;width:42%;background:radial-gradient(ellipse,var(--film-accent),transparent 70%)}.filler-film-image img{height:155px;width:100%;object-fit:contain;object-position:50% 0;filter:drop-shadow(0 3px 4px #0008);opacity:.94}.filler-film-image>span{position:absolute;right:8px;top:8px;font-size:7px;letter-spacing:.6px;background:#051725dd;padding:5px;border:1px solid #af945077;border-radius:4px;color:#ead398}.filler-film-copy{position:relative;padding:17px 13px 12px;z-index:2;background:linear-gradient(90deg,#081a2be0,transparent 75%),linear-gradient(0deg,#061525 30%,transparent 57%);min-height:182px;box-sizing:border-box}.filler-film-copy>small{display:block;max-width:58%;font-size:8px;color:var(--film-accent);text-transform:uppercase;line-height:1.5}.filler-film-copy h2{font:700 24px/1.08 Georgia,serif;max-width:63%;color:#fff0cd;margin:8px 0;min-height:51px;text-shadow:0 2px 4px #000}.filler-film-copy p{font-size:8px;color:#adc1d1;margin:0 0 13px;max-width:72%;min-height:10px}.filler-film-copy>div{display:flex;align-items:center;gap:9px;font-size:9px}.filler-film-copy b{color:#ebc978}.filler-film-copy strong{margin-left:auto;font-size:9px;letter-spacing:.5px;color:#ffe3a0}.filler-film-copy progress{width:100%;height:3px;margin-top:10px;accent-color:var(--film-accent)}.filler-footer{flex:none;display:flex;align-items:center;gap:9px;font-size:8px;line-height:1.5;padding:9px 13px calc(9px + env(safe-area-inset-bottom,0px));background:#06182b;border-top:1px solid #a98c5055;color:#9fb8c9}.filler-footer svg{width:24px;height:24px;flex:none;color:#dbc58e}.filler-resume{flex:none;min-height:44px;margin:5px 12px;border:1px solid #d9bd76;border-radius:6px;color:#ffe9ae;background:#183b50}.filler-chapter .history-chapter-heading h1{font-size:25px}.filler-chapter .history-phase-card{min-height:116px}@media(max-height:730px){.filler-heading{padding-block:9px}.filler-heading h1{font-size:25px}.filler-heading>span{font-size:7px}.filler-film-card,.filler-film-copy{min-height:170px}.history-tracks{padding-block:5px}}

/* Source: campaign.css */
.history-saga-tabs{display:flex;gap:8px;flex:none;padding:7px 12px;background:#071d32;border-bottom:1px solid #c5a96d55}.history-saga-tabs button{flex:1;min-height:42px;border:1px solid #a88b5555;border-radius:7px;background:#0e2a43;color:#a8c2d2;font-size:10px;font-weight:900;letter-spacing:.8px}.history-saga-tabs button small{font-size:7px;display:inline-block;margin-left:5px;font-weight:400}.history-saga-tabs button[aria-current=page]{background:linear-gradient(#735726,#382e1f);color:#ffe3a0;border-color:#e5c680;box-shadow:inset 0 -2px #e7c47c}.history-arc-card .history-arc-cast img{max-width:none}.history-arc-card .history-arc-copy p{max-width:190px}.voyage-launch-content{max-height:calc(100% - 74px);overflow:auto;overscroll-behavior:contain;padding-top:15px}.campaign-prologue{margin:12px 0;padding:13px;text-align:left;border:1px solid #e0bd7766;border-radius:10px;background:linear-gradient(130deg,#0d2b43ed,#061526ed);box-shadow:0 6px 18px #0005}.campaign-prologue>small,.campaign-epilogue>small{font-size:8px;letter-spacing:1.3px;color:#e0c082}.campaign-prologue>p{font-size:12px;line-height:1.65;color:#d7e3e9;margin:9px 0 12px}.campaign-dialogue{display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid #c5b17b33;background:#193d5055;border-radius:5px}.campaign-dialogue>img{width:58px;height:70px;object-fit:contain;object-position:center top;flex:none;filter:drop-shadow(0 2px 4px #020c19);animation:campaignSpeaker 4s ease-in-out infinite}.campaign-dialogue strong{font-size:11px;color:#ffe5a9}.campaign-dialogue p{font:italic 12px/1.5 Georgia,serif;color:#edf0e6;margin:5px 0 0}.campaign-objective{font-size:10px;line-height:1.5;color:#9eddfa;border-top:1px solid #9ad3ed44;margin-top:11px;padding-top:9px}.campaign-epilogue{text-align:left;padding:13px;margin:13px 0;border:1px solid #d9bb7c66;border-radius:8px;background:#0b2539d9}.campaign-epilogue p{font-size:12px;line-height:1.7;color:#d4e1e8}.campaign-epilogue>strong{display:block;font-size:10px;letter-spacing:.6px;color:#ffe5a8;margin-top:10px}.voyage-launch-content>h1{font-size:clamp(24px,7vw,38px)}.voyage-launch-content .voyage-launch-details{margin-top:12px}.voyage-launch-content .voyage-launch-team img{width:32px;height:32px}.history-phase-card .history-phase-copy>small{font-size:7px}@keyframes campaignSpeaker{50%{transform:translateY(-2px)}}@media(max-height:730px){.campaign-prologue{padding:10px;margin-block:9px}.campaign-prologue>p{font-size:11px;line-height:1.5}.campaign-dialogue{padding:7px}.campaign-dialogue>img{width:44px;height:56px}.campaign-dialogue p{font-size:11px}.voyage-launch-content>h1{font-size:25px}.voyage-launch-content{max-height:calc(100% - 66px)}}@media(prefers-reduced-motion:reduce){.campaign-dialogue>img{animation:none}}.app-paused .campaign-dialogue>img{animation-play-state:paused!important}

.battle .enemyhud .mission-support{display:flex;align-items:center;gap:5px;padding:3px 0;color:#e4d6ff;line-height:1.1}.battle .mission-support img{width:22px;height:22px;object-fit:contain}.battle .mission-support span{display:grid;gap:2px}.battle .mission-support b{font-size:8px}.battle .mission-support small,.battle .enemyhud .mission-collective{font-size:7px}.battle .enemyhud .mission-collective{margin:0;padding:2px 0;color:#dceaf6}

/* Source: grand-home.css */
/* Approved ocean composition; original CardStage remains the sole animated character renderer. */
body.view-home #top{padding:calc(9px + env(safe-area-inset-top,0px)) 12px 0;background:linear-gradient(#020c1ac9,transparent);pointer-events:none}body.view-home #top button{pointer-events:auto}.grand-home-top{display:grid;grid-template-columns:minmax(110px,1.15fr) minmax(95px,1fr) minmax(75px,.8fr);gap:7px;align-items:center}.grand-profile{display:flex;align-items:center;gap:7px;padding:0;background:linear-gradient(110deg,#06182ceb,#071d3980);border:1px solid #f2d6a255;border-radius:27px 7px 7px 27px;text-align:left;height:44px;color:#fff}.grand-profile>img{width:45px;height:45px;object-fit:cover;border:2px solid #e2b86a;border-radius:50%;box-shadow:0 2px 8px #0008}.grand-profile>span{display:grid;gap:1px;min-width:0;flex:1;padding-right:8px}.grand-profile b{font-size:12px}.grand-profile small{font-size:9px;color:#d5e1eb}.grand-profile progress{display:block;width:100%;height:4px;accent-color:#e9c87d}.grand-currency{height:32px;min-height:32px;display:flex;align-items:center;gap:4px;padding:0 0 0 5px;border:1px solid #d5b87888;border-radius:6px;background:linear-gradient(#0d2e4ee8,#03101deb);box-shadow:0 3px 8px #0008;color:#fff;overflow:hidden}.grand-currency>b{font-size:22px;line-height:1;text-shadow:0 2px 5px #000}.grand-currency>span{font-size:10px;font-weight:800;white-space:nowrap;flex:1}.grand-currency>i{align-self:stretch;display:grid;place-items:center;width:22px;background:linear-gradient(#ffebb0,#d5a452);font:700 22px Arial;color:#172538}.grand-home-tools{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}.grand-home-tools .round{border-radius:5px;background:#05172bb3;border:1px solid #9dbbd22e;color:#e9f2fa;width:30px;min-height:30px;padding:5px}.grand-save-warning{position:absolute;right:12px;top:calc(90px + env(safe-area-inset-top,0px));color:#ffd28e;font-size:9px}.grand-home .home-card-stage{inset:0 0 18%;background:linear-gradient(#072e5a22,#04182b55),url('assets/recruit/ocean.webp') center/cover}.grand-home-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#020d19 0%,#020e1cfa 11%,#041323b0 26%,transparent 51%);z-index:0}.grand-home-brand{position:absolute;top:calc(90px + env(safe-area-inset-top,0px));left:22px;color:white;text-shadow:0 4px 10px #04101b;pointer-events:none;transform:rotate(-8deg);z-index:1}.grand-home-brand>strong{display:block;font:900 italic clamp(32px,9vw,48px)/.79 Georgia,serif;letter-spacing:-2px}.grand-home-brand>span{display:block;margin:10px 0 0 5px;font:700 11px Georgia,serif;letter-spacing:2px}.grand-home-card{position:absolute;top:calc(123px + env(safe-area-inset-top,0px));right:12px;max-width:44%;background:#041b324d;border:1px solid #d3e5ef26;border-radius:5px;text-align:right;padding:6px 8px;z-index:2;color:#fff}.grand-home-card small{font-size:6px;letter-spacing:1px;display:block;color:#bcd8e9;margin-bottom:3px}.grand-home-card span{font-size:10px}.grand-home-motto{position:absolute;left:22px;bottom:calc(39% + env(safe-area-inset-bottom,0px));margin:0;font:italic 23px/1.05 Georgia,serif;color:#fff;text-shadow:0 2px 5px #021022;transform:rotate(-7deg);z-index:1;pointer-events:none}.grand-home-content{position:absolute;left:14px;right:14px;bottom:calc(76px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:9px;z-index:3}.home-journey{position:relative;isolation:isolate;text-align:left;display:flex;flex-direction:column;justify-content:center;padding:12px 18px;min-height:99px;background:linear-gradient(90deg,#020a14f5 0%,#061628d9 43%,#07233b22 100%),var(--journey-art) 75% center/cover;border:1px solid #edce8c;border-radius:8px;box-shadow:0 4px 18px #0008,inset 0 0 0 2px #0c344e;color:#fff;overflow:hidden}.home-journey>small{font-size:8px;letter-spacing:.7px}.home-journey>strong{font:700 clamp(20px,5vw,27px)/1.2 Georgia,serif;margin:5px 30px 8px 0;text-shadow:0 2px 5px #000}.home-journey-progress{display:flex;align-items:center;gap:6px;font-size:8px;color:#e5ecf2;border-top:1px solid #c3d4df4d;padding-top:6px;margin-right:42%;white-space:nowrap}.home-journey-progress svg{width:17px;height:17px;color:#e1bb6d}.home-journey-progress b{color:#ffd97c;font-size:16px;margin-left:5px}.home-journey>i{position:absolute;right:11px;bottom:23px;border:1px solid #f2dca0;background:#062339ab;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;font:32px/1 Georgia;color:#fff0c3}.home-feature-rail{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:1px 1px 4px;overscroll-behavior-x:contain}.home-feature-rail::-webkit-scrollbar{display:none}.home-feature{flex:0 0 calc((100% - 16px)/3);aspect-ratio:1.12;min-height:72px;position:relative;display:flex;align-items:flex-end;justify-content:center;padding:8px 2px;scroll-snap-align:start;border:1px solid #d6b578b3;border-radius:6px;background:linear-gradient(transparent 15%,#03122344 50%,#020a16f5),var(--feature-art) center/cover;color:#f1f7fb;box-shadow:0 3px 10px #0006}.home-feature>span{font-size:9px;font-weight:800;letter-spacing:.2px;text-shadow:0 2px 3px #000}.home-feature>i{position:absolute;right:5px;top:5px;background:#c43035;border-radius:50%;padding:2px 6px;color:#fff}.home-rail-hint{margin:-5px 0 0;text-align:center;font-size:6px;color:#8ba7be;letter-spacing:1.5px}.home-rail-hint>span{color:#f4ce83}.home-bottom{position:absolute;bottom:0;left:0;right:0;height:calc(68px + env(safe-area-inset-bottom,0px));padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(5,1fr);background:linear-gradient(#051525f0,#020a14);border-top:1px solid #c1a26366;border-radius:13px 13px 0 0;z-index:4}.home-bottom>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:47px;background:transparent;border:1px solid transparent;border-radius:7px;color:#8da6bb;padding:3px 0}.home-bottom svg{width:24px;height:24px}.home-bottom span{font-size:6px;font-weight:800;letter-spacing:.1px}.home-bottom [aria-current=page]{color:#ffda83;border-color:#b48e4b44;background:radial-gradient(ellipse at top,#dca34330,transparent 75%);box-shadow:0 -3px 12px #ffcc5c22}.home-bottom [aria-current=page] svg{filter:drop-shadow(0 0 6px #edbc52)}.grand-home-resume{min-height:30px;border:1px solid #d7b767;color:#ffe5a3;background:#071d32ed;border-radius:5px;font-size:9px}.grand-home button:active{filter:brightness(1.2);transform:scale(.98)}.grand-home button:focus-visible{outline:2px solid #ffe3a4;outline-offset:2px}
@media(max-height:700px){.grand-home-brand{top:calc(78px + env(safe-area-inset-top,0px));left:17px}.grand-home-brand>strong{font-size:31px}.grand-home-brand>span{font-size:8px}.grand-home-card{top:calc(106px + env(safe-area-inset-top,0px))}.grand-home-content{gap:6px;bottom:calc(65px + env(safe-area-inset-bottom,0px));left:10px;right:10px}.home-journey{min-height:82px;padding:8px 13px}.home-journey>strong{font-size:20px;margin-block:3px 5px}.home-feature{aspect-ratio:1.5;min-height:60px}.home-bottom{height:calc(58px + env(safe-area-inset-bottom,0px))}.home-bottom svg{width:20px;height:20px}.grand-home-motto{font-size:18px;bottom:42%}.grand-home .home-card-stage{bottom:20%}}
@media(max-width:350px){.grand-home-top{grid-template-columns:minmax(100px,1fr) minmax(85px,.9fr) minmax(66px,.7fr);gap:4px}.grand-currency>span{font-size:9px}.grand-currency>i{width:18px}.grand-profile{gap:3px}.grand-profile>img{width:40px;height:40px}.home-feature>span{font-size:8px}.home-bottom span{font-size:5.5px}}
@media(orientation:landscape) and (max-height:500px){.grand-home-content{left:50%;right:12px;bottom:calc(66px + env(safe-area-inset-bottom,0px))}.grand-home .home-card-stage{right:43%;bottom:0}.grand-home-brand{left:14px;top:90px}.grand-home-motto,.grand-home-card{display:none}.home-feature{aspect-ratio:2;min-height:44px}.home-journey{min-height:68px}.home-rail-hint{display:none}}
/* Permanent access, outside the horizontally scrolled features. */
.home-impel-access{display:flex;align-items:center;gap:10px;min-height:49px;padding:7px 11px;border:1px solid #c9a666;border-radius:7px;text-align:left;color:#ffe1a0;background:linear-gradient(90deg,#1b1525f5,#1c2035d9 60%,#08172bbb),url('assets/arenas/impel-5.webp') center 36%/cover;box-shadow:inset 0 0 0 2px #081521,0 4px 13px #0007;overflow:hidden}.home-impel-sigil{font:30px/1 Georgia;color:#e2c289;border-right:1px solid #be9b5b55;padding-right:9px}.home-impel-access>span:nth-child(2){flex:1;display:grid;gap:4px}.home-impel-access small{font-size:6px;letter-spacing:1px;color:#b9bcc8}.home-impel-access strong{font:800 16px/1 Georgia;letter-spacing:.7px}.home-impel-access>b{font:800 18px Georgia;color:#ffe4af}.home-impel-access>b>small{font:9px system-ui;letter-spacing:0}.home-impel-access>i{font:27px Georgia;font-style:normal;color:#c9a666}.grand-home-content .home-journey{min-height:83px;padding-block:9px}.grand-home-content .home-feature{aspect-ratio:1.4;min-height:62px}.grand-home-motto{bottom:calc(43% + env(safe-area-inset-bottom,0px))}@media(max-height:700px){.home-impel-access{min-height:42px;padding-block:5px}.home-impel-access strong{font-size:14px}.home-impel-access small{font-size:5px}.grand-home-content .home-journey{min-height:70px;padding-block:6px}.grand-home-content .home-feature{min-height:51px;aspect-ratio:1.8}.grand-home-motto{display:none}}
.home-impel-sigil svg{display:block;width:28px;height:28px}

.home-feature-rail{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;overflow:visible!important}.home-feature-rail .home-feature{width:auto;min-width:0;height:86px;position:relative;overflow:hidden}.home-feature-rail .home-feature>span{font-size:10px;z-index:3;position:absolute;bottom:8px;left:0;right:0;text-align:center}.home-save-icon{position:absolute;width:36px;height:36px;left:calc(50% - 18px);top:12px;color:#ffe4a0;z-index:2}.recruit-tile-cast{position:absolute;inset:0;display:flex;justify-content:center;overflow:hidden}.recruit-tile-cast img{height:96px;width:58%;object-fit:contain;object-position:top;max-width:none;margin:0 -8px}.home-feature[data-action="summon"]{background-color:#123955}.home-feature-rail .home-feature:after{pointer-events:none}.grand-save-status{display:none}
/* Four equal bounded cells: explicit widths prevent legacy aspect ratios from
   expanding grid items beyond their tracks on iOS. */
.grand-home .grand-home-content{min-width:0}
.grand-home .grand-home-content .home-feature-rail{box-sizing:border-box;width:100%;max-width:100%;min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:1px 0 4px;align-items:stretch;justify-items:stretch;overflow:hidden!important;scroll-snap-type:none}
.grand-home .grand-home-content .home-feature-rail>.home-feature{box-sizing:border-box;width:100%;max-width:100%;min-width:0;height:80px;min-height:80px;aspect-ratio:auto;flex:none;margin:0;padding:0;justify-self:stretch;overflow:hidden;border-radius:6px}
.grand-home .grand-home-content .home-feature-rail>.home-feature>span{box-sizing:border-box;display:block;position:absolute;left:0;right:0;bottom:8px;width:100%;padding:0 1px;margin:0;text-align:center;white-space:nowrap;font-size:clamp(8px,2.3vw,10px);line-height:12px;letter-spacing:0}
.grand-home .home-save-icon{left:50%;top:11px;transform:translateX(-50%);width:34px;height:34px}
@media(max-height:650px){.grand-home .grand-home-content .home-feature-rail>.home-feature{height:66px;min-height:66px}.grand-home .home-save-icon{top:6px;width:29px;height:29px}}

/* Unified home destinations: two rows of square cards, no bottom menu. */
.grand-home .grand-home-content{bottom:calc(12px + env(safe-area-inset-bottom,0px));gap:8px}
.grand-home .grand-home-content .home-feature-rail>.home-feature{height:auto;min-height:0;aspect-ratio:1;touch-action:manipulation}
.grand-home .grand-home-content .home-feature-rail>.home-feature>span{bottom:8px;white-space:normal;font-size:clamp(9px,2.3vw,12px);line-height:1.2;padding:0 3px}
.home-feature>span>small{display:block;margin-top:4px;font-size:clamp(6px,1.6vw,8px);font-weight:400;color:#f5dfae;line-height:1.3}
@media(orientation:landscape) and (max-height:500px){.grand-home .grand-home-content{bottom:calc(8px + env(safe-area-inset-bottom,0px))}.grand-home .grand-home-content .home-feature-rail>.home-feature{aspect-ratio:1.3}}

/* Source: depth0240.css */
.development-guide{margin:12px 0;padding:12px;border:1px solid #d6b57277;border-radius:8px;background:linear-gradient(130deg,#173b54,#061728);color:#e2ecf3}.development-guide>small{display:block;font-size:8px;letter-spacing:1px;color:#e2bf7c}.development-guide>strong{display:block;font:700 15px Georgia,serif;margin:6px 0}.development-guide>p{font-size:11px;line-height:1.6;margin:8px 0}.development-guide>button{min-height:36px;font-size:10px;border-color:#c5a36677}.development-guide.is-compact{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:8px;margin:5px 0}.development-guide.is-compact>small{grid-column:1}.development-guide.is-compact>strong{font:700 10px Arial;margin:0}.development-guide.is-compact>button{grid-column:2;grid-row:1/3;padding:5px;font-size:8px;min-height:32px}.battle .cinema-premium{background:linear-gradient(120deg,#031223b3,transparent 72%);animation:premiumMontage var(--cinema-duration) both}.battle .cinema-premium .cinema-caption{top:29%;left:16px;right:16px;bottom:auto;animation:premiumCaption var(--cinema-duration) both}.battle .cinema-premium .cinema-caption strong{font-size:clamp(22px,6vw,34px);max-width:90%;display:block}.battle .cinema-premium .cinema-caption small{font-size:8px;letter-spacing:2px;max-width:75%;line-height:1.5}.cinema-letterbox{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 36px #010814e8,inset 0 -36px #010814e8;animation:premiumBars var(--cinema-duration) both}.cinema-portrait{position:absolute;right:-5%;top:9%;width:58%;height:22%;border-block:1px solid var(--glow);background:linear-gradient(120deg,transparent,#0b263ff0);transform:skewX(-12deg);overflow:hidden;animation:premiumPortrait var(--cinema-duration) both}.cinema-portrait>img{display:block;width:100%;height:100%;object-fit:contain;transform:skewX(12deg);filter:drop-shadow(0 0 9px var(--glow))}.cinema-streaks{position:absolute;inset:15% -25% 40%;opacity:.3;background:repeating-linear-gradient(165deg,transparent 0 32px,var(--glow) 33px 34px,transparent 35px 70px);animation:premiumStreaks var(--cinema-duration) both}.cinema-route-overhead .cinema-streaks,.cinema-route-rising .cinema-streaks{rotate:75deg}.cinema-route-radial .cinema-streaks,.cinema-route-orbit .cinema-streaks{border:2px solid var(--glow);border-radius:50%;background:none;inset:22% 10% 43%}.cinema-route-collapse .cinema-streaks{background:radial-gradient(ellipse,transparent 45%,var(--glow) 46%,transparent 48%);inset:10%}
@keyframes premiumMontage{0%{opacity:0}12%,75%{opacity:1}100%{opacity:0}}@keyframes premiumCaption{0%,12%{opacity:0;translate:-30px 0}27%,65%{opacity:1;translate:0 0}100%{opacity:0;translate:15px 0}}@keyframes premiumPortrait{0%{opacity:0;translate:80% 0}18%,48%{opacity:1;translate:0 0}85%,100%{opacity:0;translate:-15% 0}}@keyframes premiumBars{0%{opacity:0}20%,65%{opacity:1}100%{opacity:0}}@keyframes premiumStreaks{from{transform:scale(.8) translateX(-5%)}to{transform:scale(1.2) translateX(5%)}}
@media(prefers-reduced-motion:reduce){.battle .cinema-premium{display:none}.development-guide{animation:none}}.app-paused .cinema-premium,.app-paused .cinema-premium *{animation-play-state:paused!important}
.voyage-encounter:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#0615268c,#071628e8),var(--encounter-art) center/cover;opacity:.8}.voyage-encounter{isolation:isolate}.voyage-confrontation-title{font:italic 14px Georgia,serif;color:#e9c78c;text-align:center;margin:7px 18px}.victory-panel .adventure-stars{filter:drop-shadow(0 0 9px #eac35c)}

.power-comparison{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border:1px solid #d9b96c;border-radius:12px;background:linear-gradient(120deg,#102f46,#071724);color:#ffe4a6}.power-comparison b{color:#83e8b5}.power-comparison small{grid-column:1/-1;color:#cee0ec}.card-power{color:#ffe4a6;font-weight:800;text-align:center}

/* Source: rare-reveal.css */
/* Presentation-only timeline, suspended with the rest of the app. */
.rare-pending{--reveal-time:6s}.rare-pending .recruit-cinema-controls{z-index:40}.rare-pending:not(.rare-complete) .recruit-card-stage,.rare-pending:not(.rare-complete) .recruit-reveal-next{opacity:0;pointer-events:none}.rare-reveal{position:absolute;inset:0;z-index:25;overflow:hidden;background:#010208;color:#fff;isolation:isolate;pointer-events:none}.rare-reveal *{box-sizing:border-box}.rare-playing .rare-reveal{animation:rareRevealTimeline var(--reveal-time) linear both}.rare-reveal .rare-color-world{position:absolute;inset:-10%;background:radial-gradient(ellipse at 50% 58%,var(--reveal-a),var(--reveal-b) 28%,#071122 66%);opacity:0}.rare-playing .rare-color-world{animation:rareColor var(--reveal-time) ease both}.rare-horizon{position:absolute;inset:16% -40% 20%;background:repeating-conic-gradient(from 15deg at 50% 55%,transparent 0 20deg,var(--reveal-a) 22deg 23deg,transparent 25deg 48deg);opacity:0}.rare-playing .rare-horizon{animation:rareHorizon var(--reveal-time) ease both}.rare-arrival{position:absolute;inset:16% 6% 17%;filter:drop-shadow(0 0 18px var(--reveal-b));transform-origin:50% 85%}.rare-arrival>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}.rare-playing .rare-arrival-actor{animation:rareArrival var(--reveal-time) cubic-bezier(.2,.65,.35,1) both}.rare-emblem{position:absolute;left:8%;top:18%;font:italic 900 clamp(50px,16vw,90px) Georgia,serif;color:#ffe5a4;text-shadow:0 0 25px var(--reveal-b);opacity:0}.rare-emblem span{font-size:.5em}.rare-playing .rare-emblem{animation:rareEmblem var(--reveal-time) both}.rare-signature{position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:0;fill:none;stroke:var(--reveal-a);stroke-width:3;filter:drop-shadow(0 0 8px var(--reveal-b))}.rare-signature>path,.rare-signature>ellipse{display:none;stroke-dasharray:1300;stroke-dashoffset:1300}.rare-playing .rare-signature{animation:rareSignature var(--reveal-time) both}.motif-slash .rare-signature>path:first-child,.motif-haki .rare-signature>path:first-child,.motif-strings .rare-signature>path:first-child{display:block;stroke-width:5}.motif-quake .rare-signature>.fracture,.motif-storm .rare-signature>.fracture,.motif-frost .rare-signature>.fracture{display:block}.motif-room .rare-signature>ellipse,.motif-ocean .rare-signature>ellipse,.motif-vortex .rare-signature>ellipse{display:block}.rare-playing .rare-signature>*{animation:rareTrace var(--reveal-time) both}.rare-impact{position:absolute;left:12%;right:12%;top:69%;height:8%;border:3px solid var(--reveal-a);border-radius:50%;box-shadow:0 0 30px var(--reveal-b),inset 0 0 20px var(--reveal-b);opacity:0}.rare-playing .rare-impact{animation:rareImpact var(--reveal-time) both}.rare-intro-title{position:absolute;left:6%;right:6%;bottom:13%;text-align:center;opacity:0;text-shadow:0 2px 8px #000}.rare-intro-title small{font-size:10px;letter-spacing:3px;color:#ffe9b5}.rare-intro-title h2{font:800 clamp(25px,7vw,44px) Georgia,serif;margin:8px 0}.rare-intro-title p{font-size:12px;letter-spacing:1px;margin:0;color:#e8f3ff}.rare-playing .rare-intro-title{animation:rareTitle var(--reveal-time) both}.rare-reveal .rare-skip{position:absolute;right:6%;bottom:6%;z-index:5;pointer-events:auto;border:1px solid #b49460;border-radius:8px;background:#061323cc;padding:12px 16px;min-height:44px;font-size:10px;letter-spacing:1px;color:#ffe6af;opacity:.85}.rare-sigils{position:absolute;inset:0;pointer-events:none}.rare-sigils i{position:absolute;left:calc(12% + var(--i)*10%);top:calc(18% + var(--i)*7%);height:12px;width:5px;background:var(--reveal-a);box-shadow:0 0 16px var(--reveal-b);border-radius:50%;opacity:0}.rare-playing .rare-sigils i{animation:rareEmbers var(--reveal-time) both;animation-delay:calc(var(--i)*.018s)}
/* Distinct motif direction: effects and arrival paths match the character's power. */
.motif-flight .rare-arrival,.motif-king .rare-arrival{inset:10% 0 14%}.motif-flight .rare-arrival-actor{animation-name:rareFlight}.motif-dash .rare-arrival-actor,.motif-slash .rare-arrival-actor,.motif-haki .rare-arrival-actor{animation-name:rareDash}.motif-shadow .rare-arrival-actor,.motif-vortex .rare-arrival-actor,.motif-sand .rare-arrival-actor{animation-name:rareMaterialize}.motif-cloud .rare-sigils i,.motif-heart .rare-sigils i,.motif-homies .rare-sigils i{width:48px;height:38px;border-radius:50%;filter:blur(5px)}.motif-cloud .rare-color-world{background:radial-gradient(ellipse at 50% 60%,#fffdf5,#e4caff 26%,#3b1e72 48%,#08061a 70%)}.motif-haki .rare-color-world{background:radial-gradient(ellipse at 50% 58%,#ec4155,#550b20 30%,#020409 65%)}.motif-vortex .rare-horizon{background:repeating-conic-gradient(#0000 0 18deg,#341855 20deg 28deg,#0000 30deg 50deg);border-radius:50%}.motif-room .rare-signature{stroke:#7eefff}.motif-heart .rare-sigils i{background:#ff8ccf;transform:rotate(-35deg);border-radius:60% 10% 60% 40%}.motif-homies .rare-sigils i:nth-child(3n){background:#ffb83d}.motif-homies .rare-sigils i:nth-child(3n+1){background:#b9c5ff}.motif-magma .rare-sigils i{width:24px;height:35px;background:#ff5b2d}.motif-fire .rare-sigils i,.motif-sand .rare-sigils i{width:9px;height:27px}.reveal-ifrit{--reveal-b:#3ca8ff!important}.reveal-phoenix{--reveal-b:#49d7ff!important}.motif-king .rare-color-world{background:radial-gradient(ellipse at 50% 62%,#ffb45088,#6d252c 30%,#060711 70%)}.rare-playing .rare-king-flight{animation:kingFlight var(--reveal-time) ease both}.rare-playing .rare-king-landing{animation:kingLanding var(--reveal-time) ease both}.rare-playing .rare-king-rise{animation:kingRise var(--reveal-time) ease both}.rare-complete .rare-reveal{display:none}.rare-complete .recruit-card-stage,.rare-complete .recruit-reveal-next{opacity:1;pointer-events:auto}.rare-playing .rare-sigils{contain:layout paint}.app-paused .rare-reveal *,.app-paused .rare-reveal{animation-play-state:paused!important}
@keyframes rareRevealTimeline{0%,90%{opacity:1}100%{opacity:0}}@keyframes rareColor{0%,10%{opacity:0;transform:scale(.7);filter:saturate(0)}30%{opacity:.35;filter:saturate(.6)}60%,100%{opacity:.75;transform:scale(1.12);filter:saturate(1)}}@keyframes rareHorizon{0%,18%{opacity:0;transform:rotate(-15deg) scale(.6)}45%{opacity:.13}85%,100%{opacity:.05;transform:rotate(15deg) scale(1.2)}}@keyframes rareArrival{0%,24%{opacity:0;transform:translateY(18%) scale(.8);filter:brightness(0)}34%{opacity:1;filter:brightness(.15)}52%{filter:brightness(1.1);transform:translateY(-2%) scale(1.02)}75%,100%{opacity:1;filter:none;transform:none}}@keyframes rareFlight{0%,15%{opacity:0;transform:translate(-50%,-50%) rotate(18deg) scale(.35)}32%{opacity:1;filter:brightness(.25)}55%{opacity:1;transform:translate(0,3%) rotate(-2deg) scale(1.04)}80%,100%{opacity:1;filter:none;transform:none}}@keyframes rareDash{0%,28%{opacity:0;transform:translateX(-110%) skewX(-8deg);filter:brightness(0)}43%{opacity:1;transform:translateX(4%) skewX(1deg);filter:brightness(.2)}65%,100%{opacity:1;filter:none;transform:none}}@keyframes rareMaterialize{0%,22%{opacity:0;transform:scale(.7);filter:blur(22px) brightness(0)}50%{opacity:.8;filter:blur(5px) brightness(.3)}70%,100%{opacity:1;transform:none;filter:none}}@keyframes rareEmblem{0%,65%{opacity:0;transform:scale(1.5)}78%,100%{opacity:1;transform:none}}@keyframes rareSignature{0%,22%{opacity:0}40%,60%{opacity:.8}85%,100%{opacity:0}}@keyframes rareTrace{0%,28%{stroke-dashoffset:1300}48%,100%{stroke-dashoffset:0}}@keyframes rareImpact{0%,43%{opacity:0;transform:scale(.2)}49%{opacity:.8}70%,100%{opacity:0;transform:scale(2.2)}}@keyframes rareTitle{0%,70%{opacity:0;transform:translateY(18px)}82%,95%{opacity:1;transform:none}100%{opacity:0}}@keyframes rareEmbers{0%,20%{opacity:0;translate:0 40px}45%,75%{opacity:.7}100%{opacity:0;translate:0 -120px}}@keyframes kingFlight{0%,8%{opacity:0;transform:translate(-42%,-50%) rotate(18deg) scale(.35)}24%{opacity:1;filter:brightness(.25)}42%{opacity:1;transform:translate(0,4%) rotate(0deg) scale(1);filter:none}47%,100%{opacity:0;transform:translate(0,8%) scale(.95)}}@keyframes kingLanding{0%,40%{opacity:0;transform:translateY(-3%)}46%,56%{opacity:1;transform:translateY(3%)}63%,100%{opacity:0;transform:translateY(0)}}@keyframes kingRise{0%,55%{opacity:0;transform:translateY(4%)}64%,83%{opacity:1;transform:none}94%,100%{opacity:0;transform:translateY(-1%)}}
@media(prefers-reduced-motion:reduce){.rare-reveal{display:none!important}.rare-pending .recruit-card-stage,.rare-pending .recruit-reveal-next{opacity:1!important;pointer-events:auto!important}}.recruit-reduced .rare-reveal{display:none!important}.recruit-reduced .recruit-card-stage,.recruit-reduced .recruit-reveal-next{opacity:1!important}
.rare-arrival>.rare-king-landing{inset:23% 0 0;height:77%}.rare-arrival>.rare-king-rise{inset:8% 0 0;height:92%}.rare-playing .rare-king-final{animation:kingFinal var(--reveal-time) ease both}@keyframes kingFinal{0%,78%{opacity:0;transform:translateY(2%)}89%,100%{opacity:1;transform:none}}
.rare-low .rare-sigils,.rare-low .rare-horizon{display:none}.rare-low .rare-signature,.rare-low .rare-arrival{filter:none}.rare-low .rare-color-world{filter:none!important}
.motif-reborn .rare-color-world{background:radial-gradient(ellipse at 50% 65%,#f9d9bc,#b8243b 30%,#250b22 52%,#010206 78%)}.rare-playing .rare-reborn-recovery{animation:rebornRecovery var(--reveal-time) ease both}.rare-playing .rare-reborn-rising{animation:rebornRising var(--reveal-time) ease both}.rare-playing .rare-reborn-attack{animation:rebornAttack var(--reveal-time) ease both}.rare-playing .rare-reborn-front{animation:rebornHero var(--reveal-time) ease both}.motif-reborn .rare-sigils i{width:45px;height:100px;background:#ffe1e1;border-radius:50%;filter:blur(12px)}.motif-reborn .rare-intro-title small:after{content:' · ESPECIAL';color:#ffd978}.motif-reborn .rare-emblem{color:#ffe7aa}.motif-reborn .rare-arrival{inset:13% 5% 16%}.reveal-escape .rare-arrival-actor{animation-name:rareEscape}.reveal-friendship .rare-arrival-actor{animation-name:rareDance}@keyframes rareEscape{0%,15%{opacity:0;transform:translateX(-110%) rotate(-15deg)}38%{opacity:1;transform:translateX(6%) rotate(7deg)}52%{transform:translateX(-3%) rotate(-4deg)}70%,100%{opacity:1;transform:none}}@keyframes rareDance{0%,22%{opacity:0;transform:translateX(-30%) rotate(-20deg)}45%{opacity:1;transform:rotate(9deg)}60%{transform:rotate(-5deg)}80%,100%{opacity:1;transform:none}}@keyframes rebornRecovery{0%,12%{opacity:0;transform:scale(.8);filter:brightness(.12)}22%,35%{opacity:1;transform:scale(1.02);filter:brightness(.6)}42%,100%{opacity:0}}@keyframes rebornRising{0%,31%{opacity:0;transform:translateY(5%)}40%,53%{opacity:1;transform:none}61%,100%{opacity:0}}@keyframes rebornAttack{0%,56%{opacity:0;transform:translateX(-50%) scale(.8)}65%{opacity:1;transform:translateX(6%) scale(1.08)}74%{opacity:1;transform:translateX(-2%) scale(1.02)}80%,100%{opacity:0}}@keyframes rebornHero{0%,73%{opacity:0;filter:brightness(0)}85%{opacity:1;filter:brightness(1.2)}100%{opacity:1;filter:none}}

/* Source: impel.css */
.impel-result{padding:25px 18px;text-align:center;max-width:600px;margin:auto;background:radial-gradient(ellipse at 50% 0,#422735,#071522 70%);border:1px solid #c7a669;border-radius:16px}.impel-result h1{font:900 43px Georgia;color:#ffe9ad;text-shadow:0 0 22px #c7944d}.impel-result h2{font:800 24px Georgia;color:#e4d3ad}.impel-result p{font-size:12px;line-height:1.7;color:#c1d3df}.impel-result button{min-height:48px;padding:12px 18px;background:linear-gradient(120deg,#b78c46,#efd496);border:1px solid #f5dc9c;border-radius:10px;margin:9px 4px;color:#101b27;font-weight:800}.impel-reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.impel-reward-grid>div{padding:15px 5px;border:1px solid #b99a5f;border-radius:12px;background:#0a1b2c;display:grid;gap:9px;font-size:25px;color:#ffe4a1}.impel-reward-grid b{font-size:22px}.impel-reward-grid small{font-size:9px;line-height:1.5}.impel-unlocked{position:relative;display:grid;justify-items:center;padding:18px;border:1px solid #edcb81;border-radius:14px;background:radial-gradient(ellipse,#75573566,#071724)}.impel-unlocked>img{width:100%;height:330px;object-fit:contain}.impel-unlocked b{font-size:17px;color:#ffdf99}.impel-unlocked strong,.edition-seal{font-size:10px;letter-spacing:1.3px;color:#ffe0a2;background:linear-gradient(120deg,#4e3618,#a27d40,#322313);padding:5px 9px;border:1px solid #e9cc82;border-radius:6px}.edition-seal{position:absolute;left:7px;bottom:30px;z-index:8;font-size:7px;pointer-events:none;animation:editionGleam 4s ease-in-out infinite}.live-card>.edition-seal{top:14px;bottom:auto;left:50%;transform:translateX(-50%);font-size:10px}.character-sheet .edition-detail{font-size:9px;color:#f6d99a;text-align:center}.impel-recovered{color:#8de8be!important}.impel-unlock{position:relative;min-height:calc(100dvh - 12px)}.impel-unlock .recruit-card-stage .impel-unlocked{position:absolute;inset:10% 8% 18%;border:0}.impel-unlock .impel-unlocked>img{height:75%}.impel-unlock .recruit-reveal-next{z-index:20}.impel-unlock .rare-reveal{z-index:30}@keyframes editionGleam{50%{filter:brightness(1.25);box-shadow:0 0 12px #ebbd6522}}@media(prefers-reduced-motion:reduce){.edition-seal{animation:none}}.app-paused .edition-seal{animation-play-state:paused}
.portrait{position:relative}.portrait-edition{position:absolute;left:4%;right:4%;bottom:0;font:800 6px system-ui;letter-spacing:.6px;text-align:center;background:#6f5128;color:#ffe2a2;border-radius:3px;padding:2px;z-index:3}.view-impelpreview #top,.view-impelpreview #nav{display:none}.view-impelpreview #main{padding:0}.impel-event{background:linear-gradient(120deg,#271b2d,#102438)!important;border-color:#d7b675!important}
.rare-emblem .rare-edition{display:block;font:800 12px system-ui;letter-spacing:3px;color:#ffe9ad}.impel-result .impel-unlocked strong{margin:10px}.view-impel #main{padding-bottom:20px}.impel-screen button:active:not(:disabled){scale:.98;filter:brightness(1.12)}
/* The descent: compact account bar, architectural tower and illustrated cell doors. */
body.view-impel #top,body.view-impel #vignette,body.view-impel #world,body.view-impelentry #top,body.view-impelentry #vignette,body.view-impelentry #world{display:none}body.view-impel #game,body.view-impelentry #game{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}body.view-impel #main,body.view-impelentry #main{flex:1;min-height:0;overflow:hidden;padding:0!important}.impel-screen{height:100%;display:flex;flex-direction:column;isolation:isolate;position:relative;color:#e9edf3;background:#071321}.impel-screen:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#030c16a6,#030c16ed 70%),var(--prison-art) center/cover}.impel-account{display:flex;gap:7px;align-items:center;flex:none;min-height:60px;padding:calc(7px + env(safe-area-inset-top,0px)) 10px 7px;background:linear-gradient(115deg,#163d5a,#06182d);border-bottom:1px solid #caa56877;box-shadow:0 5px 20px #0006;z-index:2}.impel-account button{min-height:36px;padding:0 7px;border:1px solid #d2b47788;border-radius:7px;background:linear-gradient(#193c55,#071a30);color:#fbe0a2;white-space:nowrap;font-size:10px;font-weight:750}.impel-account .impel-back{width:33px;min-height:40px;font:30px Georgia;padding:0}.impel-account>img{width:34px;height:39px;object-fit:cover;border:1px solid #e3c586;border-radius:7px}.impel-account>span{flex:1;min-width:0;display:grid;gap:4px}.impel-account b{font-size:9px;letter-spacing:.4px}.impel-account small{font-size:8px;color:#b0c6d8}.impel-account i{font-style:normal;font-size:14px}.impel-account button:last-child i{color:#88e7ff}.impel-scroll{overflow:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0 12px calc(28px + env(safe-area-inset-bottom,0px));scrollbar-width:thin;scrollbar-color:#b6985a #071321}.impel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;min-height:145px;margin:0 -12px;padding:17px 20px 12px;background:linear-gradient(90deg,#040d18e8,#07162b44),var(--prison-art) 50% 30%/cover;border-bottom:1px solid #cda96055;overflow:hidden}.impel-heading>div:first-child{z-index:1}.impel-heading small{font-size:7px;letter-spacing:1.8px;color:#b8c9d5}.impel-heading h1{font:900 clamp(28px,8vw,42px)/1 Georgia,serif;letter-spacing:-1px;color:#ffe5a7;margin:10px 0;text-shadow:0 3px 1px #261b0f,0 5px 20px #000}.impel-heading p{font-size:8px;letter-spacing:2px;color:#ded6bf;margin:0;display:flex;align-items:center;gap:12px}.impel-heading p>span{letter-spacing:0;border:1px solid #d7b57466;padding:3px 7px;border-radius:4px;color:#ffe5a7}.impel-tower{position:relative;flex:0 0 76px;display:grid;gap:3px;padding:9px 3px 5px;perspective:160px;filter:drop-shadow(0 3px 8px #000);transform:rotate(-4deg)}.impel-tower:before{content:'';position:absolute;inset:0 -2px;border:2px solid #9c8353;clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);background:linear-gradient(90deg,#06101b,#405060,#091420);z-index:-1}.impel-tower i{display:flex;height:16px;align-items:center;gap:5px;padding:2px 7px;background:linear-gradient(90deg,#102331,#293442,#09121b);border-block:1px solid #7e6c4e;position:relative}.impel-tower b{font:700 8px Georgia;color:#9dacae}.impel-tower i>span{flex:1;height:7px;background:repeating-linear-gradient(90deg,#01070b 0 4px,#42505b 4px 6px);border-bottom:1px solid #876c44}.impel-tower .current{background:linear-gradient(90deg,#6b3f29,#322539);box-shadow:0 0 15px var(--tier-color);border-color:#f1d08a}.impel-tower .current b{color:#ffe2a0}.impel-tower .current>span{background:repeating-linear-gradient(90deg,var(--tier-color) 0 4px,#443b32 4px 6px)}.impel-tower .cleared b{color:#8fd5b7}.impel-overview{display:flex;align-items:center;gap:8px;padding:11px 0}.impel-overview>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.impel-overview svg{width:20px;height:20px;color:#86dfff}.impel-overview b{font-size:12px;color:#f8df9c}.impel-overview b small{font-size:9px;color:#a4b8c6}.impel-overview em{display:none}.impel-overview>progress{flex:1;width:30px}.impel-overview>b{font-size:6px;letter-spacing:.5px;color:#bdc7cb}.impel-screen progress{appearance:none;border:0;border-radius:3px;height:4px;overflow:hidden;background:#152b3b;accent-color:#dfb968}.impel-screen progress::-webkit-progress-bar{background:#152b3b}.impel-screen progress::-webkit-progress-value{background:linear-gradient(90deg,#9b773a,#f5d88c)}.impel-zones{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding-bottom:12px;border-bottom:1px solid #c8a26444}.impel-zones button{position:relative;min-height:46px;border:1px solid #9e875c77;border-radius:7px;background:linear-gradient(#193144,#081b2c);color:#d0c6ab;padding:5px 0;display:grid;gap:3px;box-shadow:inset 0 0 0 2px #03122099}.impel-zones b{font:800 16px Georgia}.impel-zones span{font-size:7px;color:#9fb6c7}.impel-zones .active{border-color:#ffe3a1;color:#ffe9af;background:linear-gradient(120deg,#6a4625,#b18746);box-shadow:inset 0 0 0 2px #f2d69822,0 0 10px #d7aa3833}.impel-zones .active span{color:#fff0c8}.impel-zones i{position:absolute;right:3px;top:1px;color:#8ce1b0;font-size:8px;font-style:normal}.impel-zone-title{display:flex;gap:10px;align-items:center;padding:16px 3px 10px}.impel-zone-title small{font-size:7px;letter-spacing:1.2px;color:#c9ab73}.impel-zone-title h2{font:800 clamp(20px,6vw,28px)/1.15 Georgia,serif;color:#ffe7b3;margin:5px 0}.impel-zone-title p{font-size:9px;line-height:1.5;color:#b4c6d6;margin:0}.impel-zone-mark{flex:0 0 41px;height:49px;background:linear-gradient(#2d3440,#101a29);border:1px solid #bb965c;border-radius:18px 18px 6px 6px;display:grid;place-items:center;box-shadow:inset 0 0 0 3px #05111c}.impel-zone-mark svg{width:28px;height:28px;color:#dfbe7b}.impel-health{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;margin:10px 0 16px;padding:10px 12px;background:linear-gradient(110deg,#0e293be8,#071827ee);border:1px solid #7a8c9566;border-radius:8px}.impel-health>span{font-size:7px;letter-spacing:.5px;color:#c5d4df}.impel-health progress{width:100%;height:6px;accent-color:#76d7a8}.impel-health progress::-webkit-progress-value{background:linear-gradient(90deg,#197a68,#8ae2a8)}.impel-health>b{font-size:10px;color:#a7f0ca}.impel-health small{grid-column:1/-1;font-size:7px;color:#91adbf;line-height:1.4}.impel-route-label{display:flex;justify-content:space-between;padding:0 5px 10px;color:#d9bd82;font-size:7px;letter-spacing:1.5px}.impel-route-label small{font-size:7px;color:#7c9aad}.impel-doors{position:relative;display:grid;gap:20px;padding:0 0 4px;margin:0 0 28px}.impel-doors:before{content:'';position:absolute;left:23px;top:25px;bottom:20px;width:4px;border-inline:1px solid #b5915a66;background:repeating-linear-gradient(0deg,#473e30 0 4px,#0b1725 4px 10px);z-index:0}.impel-door{position:relative;isolation:isolate;display:flex;align-items:center;gap:9px;text-align:left;padding:14px 9px 13px 5px;min-height:137px;border:1px solid #a28c65;border-radius:13px;background:linear-gradient(90deg,#06121df5 2%,#0b2030f2 52%,#092033aa),var(--door-art) center 50%/cover;color:#f6e4b7;box-shadow:inset 0 0 0 3px #04111c,0 6px 18px #0007;overflow:hidden}.impel-door:before{content:'';position:absolute;inset:5px;border:1px solid #d0b67933;border-radius:9px;z-index:-1;background:repeating-linear-gradient(90deg,transparent 0 35px,#c4c7d008 35px 37px,transparent 37px 70px)}.impel-door:after{content:'';position:absolute;right:0;top:0;width:20px;height:100%;background:repeating-linear-gradient(0deg,#4c4232 0 6px,transparent 6px 54px);border-left:1px solid #aa8d4d44;opacity:.4;z-index:-1}.impel-door-number{min-width:36px;flex:0 0 36px;display:grid;justify-items:center;gap:7px;font:800 27px Georgia;color:#d8bd82}.impel-door-number small{font:700 6px system-ui;letter-spacing:.7px}.impel-door-number i{font:12px system-ui;color:#6a8b9c;font-style:normal}.impel-door-number svg{width:14px;height:14px}.impel-door-portrait{position:relative;flex:0 0 64px;height:86px;align-self:center;border:1px solid #c4aa71;border-radius:25px 25px 6px 6px;overflow:hidden;background:#07111c;box-shadow:0 0 0 3px #0b1521,0 0 0 4px #8a765344}.impel-door-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:drop-shadow(0 3px 4px #000)}.impel-door:disabled .impel-door-portrait i{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 12px,#142430aa 12px 15px,#9ca6b544 15px 16px)}.impel-door>div{flex:1;min-width:0;display:grid;gap:7px;padding-right:10px}.impel-door>div>b{font:800 18px/1.1 Georgia,serif;text-shadow:0 2px 4px #000}.impel-door>div>small{font-size:8px;color:#abc2d4}.impel-door>div>small strong{color:#e9d49f;font-size:9px}.impel-door .impel-floor-state{color:#d4b779;font-size:6px;letter-spacing:.6px}.impel-door-loot{display:flex;gap:9px;font-size:8px;color:#d9e2e9;flex-wrap:wrap}.impel-door-loot i{font-style:normal}.impel-door-loot i:first-child{color:#8bdcfa}.impel-door-loot i:nth-child(2){color:#d4b2ee}.impel-door-loot i:last-child{color:#e4c17d}.impel-door em{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-style:normal;color:#e1c580;line-height:1}.impel-door em span{font:750 6px system-ui;letter-spacing:1px;color:#c0cbd3}.impel-door-arrow{position:absolute;right:7px;top:46%;font:25px Georgia;color:#edcb87}.impel-door-arrow svg{width:16px;height:16px;color:#849bad}.impel-door:disabled{opacity:.68;filter:saturate(.65)}.impel-door.is-current{border:1px solid #ffdb86;box-shadow:0 0 0 1px #efbd5380,inset 0 0 0 3px #3e3525,0 0 20px #f2bc4522}.impel-door.is-current .impel-floor-state{color:#ffe5a0}.impel-door.is-clear .impel-door-number i{color:#9be0b5}.impel-door.is-boss{border-color:#dc7772;background:linear-gradient(90deg,#210e1df2,#391a26b8),var(--door-art) center/cover}.impel-door.is-boss .impel-floor-state{color:#ff9f8c}.impel-door.has-edition{padding-bottom:28px;border-color:#e1c77e;box-shadow:0 0 16px #c0a84a22,inset 0 0 0 3px #342e22}.impel-door-edition{position:absolute;bottom:0;left:0;right:0;min-height:18px;background:linear-gradient(90deg,#48331b,#b18b46,#44301b);text-align:center;color:#fff1c6;font-size:6px;letter-spacing:2px;padding:4px}.impel-prizes-heading{padding-top:5px;text-align:center}.impel-prizes-heading>small{font-size:7px;letter-spacing:2px;color:#c2a367}.impel-prizes-title{font:800 24px Georgia;color:#ffe5a4;margin:9px 0}.impel-prizes-heading p{font-size:9px;color:#9eb7ca;margin-bottom:15px}.impel-prizes{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.impel-prizes button{min-width:0;padding:8px 2px;border:1px solid #a48a59;border-radius:8px;background:linear-gradient(#29313f,#091725);color:#ead39f}.impel-prizes img{width:100%;height:90px;object-fit:contain}.silhouette{filter:brightness(.08);opacity:.9}.impel-prizes strong{display:block;font-size:6px}.impel-prizes span{display:block;font-size:7px;margin-top:6px}.impel-secret{width:100%;display:flex;align-items:center;gap:10px;text-align:left;margin:20px 0;padding:15px 12px;background:linear-gradient(100deg,#361e3eeb,#11263bea);border:1px solid #c393b3;border-radius:10px;color:#edd3e3}.impel-secret>svg{width:30px;height:30px;flex-shrink:0}.impel-secret>div{display:grid;gap:8px;flex:1}.impel-secret b{font-size:9px;letter-spacing:.4px}.impel-secret span{font-size:9px;line-height:1.4;color:#c9afc9}.impel-secret>i{font:24px Georgia}.impel-secret:disabled{opacity:.55}.impel-rules{font-size:9px;color:#8ba8bd;line-height:1.7;text-align:center}.impel-warning{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:1px solid #b9796466;border-radius:8px;background:#2e1c22dd}.impel-warning>span{font-size:9px;flex:1;min-width:140px;color:#d8b8ac}.impel-warning>button,.impel-resume,.impel-receipt{min-height:36px;border:1px solid #bc9a60;border-radius:6px;background:linear-gradient(#28455b,#0c2438);color:#f3d99e;padding:8px 10px;font-size:8px;font-weight:800}.impel-resume{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px}.impel-resume span{font-size:6px;letter-spacing:1px}.impel-resume b{font-size:11px}.impel-receipt{width:100%;display:flex;justify-content:space-between;text-align:left}.impel-screen button:focus-visible,.impel-descent button:focus-visible{outline:2px solid #fff0bc;outline-offset:3px}.impel-scroll>.impel-doors>.impel-door{animation:impelDoorIn .35s ease both}.impel-scroll>.impel-doors>.impel-door:nth-child(2){animation-delay:30ms}.impel-scroll>.impel-doors>.impel-door:nth-child(3){animation-delay:60ms}@keyframes impelDoorIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Full-screen gate opening and camera descent, followed by the original battle engine. */
.impel-descent{height:100%;position:relative;isolation:isolate;overflow:hidden;background:#01050b;color:#ffe4a3;--entry-time:3.2s}.impel-descent.boss-entry{--entry-time:4s}.impel-entry-tunnel{position:absolute;inset:-10%;background:linear-gradient(#020816bb,#06132455,#000b),var(--prison-art) center/cover;animation:impelTunnel var(--entry-time) cubic-bezier(.2,.5,.3,1) both;perspective:600px}.impel-entry-tunnel i{position:absolute;inset:4%;border:18px solid #091321bb;box-shadow:inset 0 0 0 2px #8d795344,0 0 0 1px #8d795333;transform:translateZ(-100px)}.impel-entry-tunnel i:nth-child(2){inset:12%;border-width:12px}.impel-entry-tunnel i:nth-child(3){inset:22%;border-width:8px}.impel-entry-tunnel i:nth-child(4){inset:32%;border-width:6px}.impel-entry-gate{position:absolute;top:0;bottom:0;width:50.5%;z-index:3;background:repeating-linear-gradient(90deg,#060f1b 0 12px,#66717b 12px 14px,#27323d 14px 18px,#07101bda 18px 42px),linear-gradient(#172433,#010710);border:3px solid #a68d5c;box-shadow:inset 0 0 0 7px #091523,0 0 40px #000;animation:impelGate var(--entry-time) cubic-bezier(.7,0,.3,1) both}.impel-entry-gate:before,.impel-entry-gate:after{content:'';position:absolute;left:0;right:0;height:17px;background:linear-gradient(#5e5a51,#16212d,#625746);border-block:1px solid #b19c6a66;box-shadow:0 5px 10px #0007}.impel-entry-gate:before{top:33%}.impel-entry-gate:after{bottom:25%}.impel-entry-gate.left{left:0;transform-origin:left;--gate-x:-105%}.impel-entry-gate.right{right:0;--gate-x:105%;transform-origin:right}.impel-entry-chain{position:absolute;z-index:4;left:50%;top:44%;width:60px;height:70px;display:grid;place-items:center;border:2px solid #cdb276;border-radius:10px;background:linear-gradient(#63533a,#1b2530);box-shadow:0 0 25px #e4bb4c44;transform:translate(-50%,-50%);animation:impelLatch var(--entry-time) ease both}.impel-entry-chain svg{width:42px;height:42px}.impel-entry-copy{position:absolute;inset:12% 15px 16%;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;pointer-events:none;text-shadow:0 3px 9px #000;animation:impelEntryCopy var(--entry-time) ease both}.impel-entry-copy>small{text-transform:uppercase;font-size:10px;letter-spacing:3px;color:#d4bd94}.impel-entry-copy>strong{font:900 80px/1 Georgia;letter-spacing:-3px;color:#ffe8ae;margin-top:7px}.impel-entry-copy>span{font-size:8px;letter-spacing:2px;border-top:1px solid #b7a16c66;padding-top:8px}.impel-entry-copy>h2{margin:auto 0 8px;font:900 clamp(30px,9vw,45px)/1.1 Georgia;color:#ffe8b1;max-width:95%}.impel-entry-copy>p{font-size:10px;color:#b5c9d8}.impel-entry-destination{position:absolute;inset:20% 8% 20%;animation:impelEnemyArrival var(--entry-time) cubic-bezier(.2,.7,.3,1) both;display:flex;align-items:center;justify-content:center}.impel-entry-destination>img{height:100%;width:100%;object-fit:contain;filter:drop-shadow(0 12px 8px #000b);position:relative;z-index:1}.impel-entry-aura{position:absolute;inset:8% -20%;background:radial-gradient(ellipse,var(--prison-color),transparent 65%);opacity:.4;filter:blur(15px)}.impel-entry-controls{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:14px;right:14px;display:flex;justify-content:space-between;gap:10px;z-index:6}.impel-entry-controls>button{min-height:44px;font-size:8px;letter-spacing:.5px;border:1px solid #baa17188;border-radius:7px;padding:10px 12px;color:#f6e1b5;background:#071729db}.impel-entry-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#725132,#ffe5a2);transform-origin:left;z-index:7;animation:impelEntryProgress var(--entry-time) linear both}.impel-descent.boss-entry .impel-entry-copy>span{color:#ffaea0}.impel-descent.is-paused *{animation-play-state:paused!important}.impel-descent.reduced *{animation:none!important}.impel-descent.reduced .impel-entry-gate,.impel-descent.reduced .impel-entry-chain{display:none}.impel-descent.reduced .impel-entry-copy{opacity:1}.impel-descent.reduced .impel-entry-destination{opacity:1}
@keyframes impelGate{0%,15%{transform:translateX(0)}45%,100%{transform:translateX(var(--gate-x))}}@keyframes impelLatch{0%,8%{filter:brightness(1);opacity:1}15%{filter:brightness(2);transform:translate(-50%,-50%) rotate(-8deg)}26%,100%{opacity:0;transform:translate(-50%,30%) rotate(18deg)}}@keyframes impelTunnel{0%,18%{transform:scale(1.2) translateY(-4%);filter:brightness(.3)}60%{transform:scale(1.65) translateY(4%);filter:brightness(.7)}100%{transform:scale(1.8) translateY(6%);filter:brightness(.85)}}@keyframes impelEntryCopy{0%,20%{opacity:0;transform:translateY(-15px)}48%,100%{opacity:1;transform:none}}@keyframes impelEnemyArrival{0%,45%{opacity:0;transform:translateY(25px) scale(.8)}75%,100%{opacity:1;transform:none}}@keyframes impelEntryProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:350px){.impel-account{gap:5px;padding-inline:8px}.impel-account>img{width:28px;height:34px}.impel-account b{font-size:7px}.impel-account small{font-size:7px}.impel-account button{font-size:8px;padding-inline:5px}.impel-heading{padding-inline:15px}.impel-heading h1{font-size:28px}.impel-tower{flex-basis:64px}.impel-door{gap:7px}.impel-door-portrait{flex-basis:51px;height:74px}.impel-door>div>b{font-size:16px}.impel-door-loot{gap:6px;font-size:7px}.impel-door .impel-floor-state{font-size:5.5px}.impel-door em span{font-size:5px}}
@media(prefers-reduced-motion:reduce){.impel-scroll>.impel-doors>.impel-door,.impel-descent *{animation:none!important}.impel-descent .impel-entry-gate,.impel-descent .impel-entry-chain{display:none}}
.view-impel #main:has(>.impel-result),.view-impel #main:has(>.impel-unlock){overflow:auto;padding:12px!important}.app-paused .impel-descent *{animation-play-state:paused!important}

/* Source: elemental.css */
/* One lightweight SVG; clockwise arrows exactly match the combat rules. */
.combat-type-badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;min-width:25px;padding:3px 5px;border:1px solid var(--type);border-radius:5px;color:var(--type);font:850 8px/1.1 system-ui;letter-spacing:.2px;background:color-mix(in srgb,var(--type) 13%,#061220);text-shadow:0 1px 2px #000;white-space:nowrap}.card .collection-type{position:absolute;right:6px;top:31px;z-index:8;font-size:8px;min-width:25px;box-shadow:0 2px 6px #0007}.portrait>.portrait-type{position:absolute;left:1px;bottom:2px;right:auto;z-index:4;min-width:19px;padding:2px 3px;font-size:6px}.portrait:has(.portrait-edition)>.portrait-type{bottom:12px}.live-card>.card-type{padding:6px 10px;font-size:11px}.potential-screen>header>.combat-type-badge{margin:5px 0}.battle .fighter>b>.combat-type-badge{font-size:6px;min-width:19px;padding:2px 3px}.battle .enemyhud small>.combat-type-badge{font-size:7px;min-width:23px;padding:2px 3px}.battle .fighter.enemy-target .medallion:after{content:'ALVO';position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);padding:2px 5px;border:1px solid #dcb36b88;border-radius:4px;background:#1b1c2a;color:#ffe3a2;font-size:5px;letter-spacing:.7px;z-index:5}.battle .medallion{position:relative}
.battle .battle-top{right:calc(clamp(104px,28vw,116px) + 16px);align-items:flex-start}.battle .enemyhud{min-width:0}.battle .enemyhud .row{display:flex;flex-wrap:wrap;gap:3px}.battle .enemyhud .row>b{font-size:12px;line-height:1.2;overflow-wrap:anywhere}.battle .enemyhud .row>span{font-size:9px}.battle .enemyhud small{font-size:8px;display:block;margin-top:4px}.battle .enemyhud .bar{height:10px}.battle .battle-menubtn{position:absolute;top:67px;left:0;min-height:32px;padding:5px 9px;font-size:9px;background:#071d31e8;border:1px solid #d3be7e77;border-radius:6px}.battle .turn-phase{top:calc(114px + env(safe-area-inset-top,0px));left:10px;right:calc(clamp(104px,28vw,116px) + 16px);font-size:7px;letter-spacing:.4px;min-height:20px}.battle .battlelog{top:auto;bottom:calc(190px + env(safe-area-inset-bottom,0px));pointer-events:none;font-size:10px}.battle .elemental-hud{position:absolute;right:8px;top:calc(6px + env(safe-area-inset-top,0px));width:clamp(104px,28vw,116px);z-index:8;display:grid;gap:4px;pointer-events:auto}.elemental-hud>button{display:grid;justify-items:center;width:100%;min-height:0;padding:3px 3px 5px;background:linear-gradient(150deg,#03070df2,#071523eb);border:1px solid #a28d6366;border-radius:11px;box-shadow:0 3px 10px #0008;color:#eee2bc}.elemental-hud>button:disabled{opacity:1;cursor:default}.elemental-hud>button>small{font:700 5px system-ui;letter-spacing:.5px;color:#c8c7b8}.elemental-cycle{display:block;width:100%;height:auto;overflow:visible}.type-edge{stroke:#bfc4ca;stroke-width:2;fill:none;stroke-linecap:round}.type-edge.lit{stroke:#fff2b4;stroke-width:3}.type-node>circle{fill:color-mix(in srgb,var(--node) 17%,#01050a);stroke:var(--node);stroke-width:2.5}.type-node>text{fill:var(--node);font:850 14px system-ui;letter-spacing:.1px}.type-node>.type-player-ring{fill:none;stroke:#fff9de;stroke-width:1.5}.type-enemy-mark{stroke:#fff9de;stroke-width:2.5;stroke-linecap:round}.color-matchup{display:block;text-align:center;padding:5px 3px;border:1px solid #8ba9ba66;border-radius:5px;font:800 7px/1.3 system-ui;color:#d0dee5;background:#081c2ee8;white-space:nowrap}.color-matchup.advantage{color:#b8f5c7;border-color:#83ce8d88;background:#0a2928e8}.color-matchup.disadvantage{color:#ffd0c3;border-color:#dd8d7488;background:#34202be8}.elemental-panel{max-width:410px;text-align:center;margin:auto;color:#d0dce5}.elemental-panel>small{font-size:8px;letter-spacing:2px;color:#bda06c}.elemental-panel>h2{font:800 27px Georgia;color:#ffe2a1;margin:12px}.elemental-panel>.elemental-cycle{max-width:290px;margin:16px auto}.elemental-panel>p{font-size:11px;line-height:1.7;margin:12px 0}.elemental-versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:9px;margin-block:12px}.elemental-versus>p{margin:0;display:grid;justify-items:center;gap:7px;min-width:0}.elemental-versus b{font-size:12px;color:#f4e1b6}.elemental-versus small{font-size:7px;color:#a5bac9}.elemental-versus>span{font:700 12px Georgia;color:#b4a57f}.elemental-panel>.color-matchup{font-size:11px;padding:10px}.elemental-panel>ul{display:grid;gap:6px;list-style:none;text-align:left;padding:10px 18px;background:#061726;border:1px solid #8f805555;border-radius:8px;font-size:10px}.elemental-panel>ul>li{display:flex;gap:14px;align-items:center;justify-content:center}.elemental-panel .elemental-key{font-size:9px;color:#a9c0d1}.elemental-hud button:focus-visible{outline:2px solid #fff1bb;outline-offset:3px}@media(max-width:350px){.battle .enemy-badge{width:36px;height:40px}.battle .battle-top{gap:5px}.battle .enemyhud .row>b{font-size:10px}.battle .enemyhud small{font-size:7px}.battle .enemyhud .row>span{font-size:8px}.battle .elemental-hud{right:5px}.battle .fighter>b>.combat-type-badge{font-size:5px;min-width:17px}.battle .fighter b{font-size:10px}}@media(max-height:640px){.battle .turn-phase{top:calc(114px + env(safe-area-inset-top,0px))}.battle .battlelog{display:none}}
.type-node.is-enemy>circle:first-child{stroke-width:3.5;fill:color-mix(in srgb,var(--node) 25%,#01050a)}.type-node.is-player>circle:first-child{stroke-width:3}
.impel-prizes .combat-type-badge{font-size:6px;padding:2px 4px;margin-top:5px}.impel-door>div>b>.combat-type-badge{font-size:6px;padding:2px 4px}.impel-entry-copy .combat-type-badge{margin-right:5px}

/* Source: synergy.css */
/* Family crests and premium six-card strategy room. */
.family-emblem{display:inline-block;width:28px;height:30px;flex:none;color:#ecd198;filter:drop-shadow(0 2px 2px #0007)}.family-crest{fill:#0b2338;stroke:#b99a62;stroke-width:1.4}.card-family-strip{display:flex;align-items:center;justify-content:center;gap:4px;pointer-events:none}.card-family-strip small{font:750 8px system-ui;color:#ffe6ac}.card>.card-family-strip{position:absolute;left:3px;right:3px;bottom:43px;z-index:7;padding:2px;background:linear-gradient(90deg,transparent,#061523e8,transparent)}.card>.card-family-strip .family-emblem{width:20px;height:22px}.card .rarity{left:auto!important;right:8px}.card .collection-type{left:6px;right:auto;top:7px}.live-card .card-rarity{left:auto;right:14px;top:10px;font-size:34px}.live-card .card-type{left:12px;top:15px;transform:none}.live-card .card-vertical-name{top:72px}.card-family-button{position:absolute;left:12px;bottom:84px;z-index:7;background:#071626c9;border:1px solid #b59b6755;border-radius:7px;padding:4px 7px;min-height:37px}.card-family-button .family-emblem{width:25px;height:27px}.live-card>.edition-seal{top:53px;font-size:8px}
.synergy-screen{padding:6px 0 25px;max-width:760px;margin:auto;color:#cfdfeb}.synergy-heading{padding:22px 15px 15px;border:1px solid #c1a56b88;border-radius:14px;background:linear-gradient(100deg,#082139f0,#123d50c9),url('assets/history/baratie.webp') center/cover;box-shadow:0 8px 20px #0004}.synergy-heading>small{font-size:7px;letter-spacing:2px;color:#d2bb85}.synergy-heading h1{font:800 31px Georgia;color:#ffe7b3;margin:9px 0 18px}.synergy-heading>div:first-of-type{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.synergy-heading>div>button:first-child{grid-column:1;text-align:left;background:none;border:0;padding:0;color:#eee0c1;font-weight:700;font-size:12px}.synergy-heading>div>span{grid-column:1;font-size:8px;color:#9dbbce}.synergy-heading>div>span>b{font-size:18px;color:#ffe7ac;margin-left:8px}.synergy-heading .synergy-index{grid-column:2;grid-row:1/3;border:1px solid #d3b577;border-radius:12px;background:radial-gradient(ellipse at top,#d8bb6544,#041b2a);color:#ffe2a0;padding:7px 10px;min-width:77px}.synergy-index>b{font:900 33px Georgia;display:block}.synergy-index>small{font-size:5.5px;letter-spacing:.7px}.team-colors{display:flex;align-items:center;gap:7px;margin-top:15px;padding-top:12px;border-top:1px solid #a5895666}.team-colors>span{display:grid;place-items:center;min-width:30px;min-height:25px;border:1px solid #71879644;border-radius:5px;background:#041624;color:#687d8c;font:800 8px system-ui}.team-colors>span.present{border-color:var(--type);color:var(--type)}.team-colors>small{font-size:6px;color:#9db0bd;margin-left:auto}
.synergy-six{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0 10px}.synergy-member{min-width:0;border:1px solid #bda16b88;border-radius:9px;overflow:hidden;background:linear-gradient(#1a384c,#061726);box-shadow:0 4px 10px #0005;animation:synergyMemberIn .25s ease both}.synergy-member>button{width:100%;padding:6px 5px;background:none;border:0;color:#f3e5c3;text-align:center;min-height:225px;display:flex;flex-direction:column;align-items:center;gap:6px}.synergy-member>button>small{font-size:6px;letter-spacing:.6px;color:#bba575}.synergy-member-art{position:relative;width:100%;height:104px;border:1px solid #c5a97466;border-radius:6px;overflow:hidden;background:#102739}.synergy-member-art>img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}.synergy-member-art>.combat-type-badge{position:absolute;top:4px;left:3px;font-size:6px;min-width:20px;padding:2px 3px}.synergy-member-art>span:last-child{position:absolute;bottom:0;left:0;right:0;padding:4px 2px;font-size:6px;background:#04131de0;color:#f9e0a0}.synergy-member b{font:800 12px/1.2 Georgia;min-height:28px;display:grid;align-items:center}.synergy-member em{font:7px/1.3 system-ui;color:#a7c0d2;min-height:18px}.synergy-member .card-family-strip{margin-top:auto;gap:3px}.synergy-member .family-emblem{width:21px;height:23px}.synergy-member .card-family-strip small{font-size:6px}.synergy-member>nav{display:flex;align-items:center;border-top:1px solid #b1965b44;min-height:33px;background:#071522}.synergy-member>nav button{min-height:32px;padding:2px 7px;border:0;background:none;color:#d4b679;font-size:6px}.synergy-member>nav button:first-child,.synergy-member>nav button:last-child{font:20px Georgia;min-width:25px;flex:1}.synergy-member button:disabled{opacity:.25}.synergy-note{font-size:9px;line-height:1.6;color:#91adbf;margin:10px 3px 20px}
.synergy-active-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.synergy-active-heading h2,.synergy-optimize h2{font:800 21px Georgia;color:#ffe4a8}.synergy-active-heading h2 span{font:9px system-ui;color:#aabac7}.synergy-active-heading>button,.synergy-link button{font-size:7px;letter-spacing:.6px;color:#e4c783;background:none;border:0;padding:9px 0}.synergy-active{display:grid;gap:7px}.synergy-active>button{display:flex;gap:10px;align-items:center;text-align:left;min-height:66px;padding:10px 12px;border:1px solid #af965b77;border-radius:9px;background:linear-gradient(100deg,#152e41,#091c2e);color:#ddc997}.synergy-active>button>span{display:grid;gap:5px;flex:1}.synergy-active b{font-size:11px;color:#f0dbab}.synergy-active small{font-size:7px;color:#a3bdcf}.synergy-active em{font:8px/1.4 system-ui;color:#b9d7c6}.synergy-active>p{font-size:11px}.cross-mark{flex:0 0 28px!important;font:28px Georgia}.synergy-link{display:grid;gap:7px;padding:14px;margin:10px 0;border:1px solid #b193c188;border-radius:9px;background:linear-gradient(120deg,#2c233a,#091d30)}.synergy-link>span{font-size:6px;letter-spacing:1px;color:#d1b5d6}.synergy-link>b{font:800 16px Georgia;color:#e4d0ee}.synergy-link>small{font-size:9px;color:#adc6d2}.synergy-link>button{justify-self:end;padding:0}.synergy-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px 8px;border:1px solid #6e8a9c55;border-radius:9px;background:#071d30}.synergy-summary>span{font-size:8px;color:#a2b5c0}.synergy-summary b{display:block;font-size:10px;color:#e6d8b8;margin-top:7px}.synergy-summary i{font-style:normal;color:#9de0bf;white-space:nowrap;display:block;margin-top:4px}.synergy-summary>small{grid-column:1/-1;font-size:7px;color:#7d9bb0;margin-top:5px}.synergy-warnings{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 20px}.synergy-warnings>span{font-size:8px;color:#d7b997;background:#251d2366;border:1px solid #b1936455;border-radius:5px;padding:5px 7px}
.synergy-optimize{padding:15px;border:1px solid #caa86988;border-radius:12px;background:linear-gradient(130deg,#133347,#071a2b)}.synergy-optimize h2{margin:0 0 13px}.synergy-optimize label{display:grid;gap:7px;font-size:9px}.synergy-optimize select,.family-filter-fields select,.family-filter-fields input{min-height:38px;padding:8px;border:1px solid #8ba3b15c;border-radius:6px;background:#0c2437;color:#d1e0e9;font-size:10px;width:100%}.synergy-optimize>small{display:block;font-size:8px;line-height:1.5;color:#c7b58f;margin:8px 0 12px}.synergy-optimize>p{font-size:8px;color:#9db7ca;line-height:1.5}.synergy-saves{margin:15px 0;border:1px solid #ab955e77;border-radius:10px;padding:12px;background:#0c2234}.synergy-saves>summary{font-size:12px;color:#efdbab;cursor:pointer;min-height:27px}.synergy-saves>div{display:flex;gap:7px;align-items:center;padding:12px 0;border-top:1px solid #8d805a44}.synergy-saves>div>span{display:grid;gap:6px;flex:1;min-width:0}.synergy-saves b{font-size:10px}.synergy-saves small{font-size:7px;line-height:1.5;color:#8faabd}.synergy-saves button{padding:6px 4px;min-height:36px;border:1px solid #ad99625c;border-radius:5px;background:#122b3d;color:#d0bd8f;font-size:6px}.synergy-saves button:first-child{font-size:17px;border:0;background:none}
.family-details>small{font-size:8px;letter-spacing:.8px;color:#bca16b}.family-details>h3{font:800 23px Georgia;color:#f2d9a0}.family-details>div{display:flex;align-items:center;gap:12px;padding:10px;border-bottom:1px solid #8395a433}.family-details>div>span{display:grid;gap:6px}.family-details b{font-size:12px}.family-details small{font-size:9px;color:#a0bccd}.family-details p,.synergy-picker p,.synergy-comparison p,.family-catalogue p{font-size:11px;line-height:1.6;color:#a6c0d3}.synergy-picker>button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;margin:7px 0;border:1px solid #b49a645c;border-radius:7px;background:#10293d;color:#e1d2ab;min-height:45px}.synergy-picker button>span{display:grid;gap:6px;flex:1}.synergy-picker b{font-size:12px}.synergy-picker small{font-size:9px;line-height:1.5;color:#9fbbcf}.synergy-picker button[aria-pressed=true]{border-color:#f2d382;background:linear-gradient(120deg,#51412d,#163449)}.synergy-picker i{font-style:normal;font-size:17px;color:#e2c786}.synergy-comparison table{width:100%;border-collapse:collapse;font-size:9px;margin:15px 0}.synergy-comparison td,.synergy-comparison th{padding:9px 4px;border-bottom:1px solid #87999c33;text-align:right}.synergy-comparison th:first-child{text-align:left;color:#b2c8d6}.synergy-comparison .team-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.synergy-comparison .team-strip>span{min-width:0;position:relative}.synergy-comparison .team-strip img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid #bda067;border-radius:5px}.synergy-comparison .team-strip .combat-type-badge{font-size:6px;padding:2px;display:block}.synergy-comparison>small{font-size:7px;color:#a9b4bd}.family-catalogue details{margin:12px 0;padding:10px;border:1px solid #a58d5c77;border-radius:8px;background:#0d2437}.family-catalogue summary{min-height:28px;font-size:12px;color:#f3dba6}.family-catalogue article{display:flex;gap:10px;padding:15px 0;border-top:1px solid #a8915e33}.family-catalogue article>div{flex:1}.family-catalogue article b{font-size:12px;color:#d7c69c}.family-catalogue article small{font-size:9px;line-height:1.8;color:#b6cbd7}.family-catalogue article p{font-size:9px}.family-collection-filters{margin:12px 0;padding:12px;border:1px solid #a9905c66;border-radius:9px;background:#0b2337}.family-collection-filters summary{font-size:9px;letter-spacing:.5px;color:#d6bb81;min-height:25px}.family-filter-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.family-filter-fields>input[type=search]{grid-column:1/-1}.family-filter-fields label{display:grid;gap:6px;font-size:9px;color:#9db8cb}.family-filter-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.family-filter-chips>button{display:flex;align-items:center;gap:5px;font-size:8px;color:#e7d5a9;background:#182f40;border:1px solid #a78e5c88;border-radius:7px;padding:4px 7px}.family-filter-chips .family-emblem{width:19px;height:21px}.synergy-screen button:focus-visible,.card-family-button:focus-visible{outline:2px solid #f6df99;outline-offset:2px}@keyframes synergyMemberIn{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.synergy-member{animation:none}}@media(max-width:350px){.synergy-six{gap:5px}.synergy-member>button{min-height:205px;padding-inline:3px}.synergy-member-art{height:90px}.synergy-member .family-emblem{width:17px;height:19px}.synergy-member>nav button{padding-inline:3px;font-size:5px}.synergy-member>nav button:first-child,.synergy-member>nav button:last-child{min-width:20px}.synergy-member b{font-size:11px}.team-colors{gap:4px}.team-colors>span{min-width:26px}.synergy-heading .synergy-index{min-width:66px}.family-filter-fields{grid-template-columns:1fr}}
.recruit-card-name>.card-family-strip{margin:8px 0}.recruit-card-name .family-emblem{width:24px;height:26px}.battle .battle-plan>.battle-synergy-link{pointer-events:auto;width:100%;font-size:6px;min-height:25px;padding:3px;margin-bottom:6px;background:#122a3cd9;border:1px solid #b49b6355;border-radius:4px;color:#d2be8f}

/* Source: bosses.css */
.legend-hub,.legend-result{max-width:920px;margin:auto;padding:12px 14px calc(30px + env(safe-area-inset-bottom,0px));color:#efe6d2}.legend-heading{text-align:center;padding:16px 0 22px;background:radial-gradient(ellipse at 50% 20%,#46435480,transparent 70%)}.legend-heading>small{letter-spacing:3px;font-size:10px;color:#d8bd7f}.legend-heading h1{font-family:Georgia,serif;font-size:clamp(35px,9vw,58px);line-height:.95;color:#f2d795;margin:16px 0}.legend-heading p{font-size:12px;color:#aebfd0}.legend-account{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:11px;color:#f7dda5}.legend-grid{display:grid;gap:12px;margin-top:16px}.legend-card{position:relative;isolation:isolate;display:flex;min-height:235px;overflow:hidden;border:1px solid color-mix(in srgb,var(--boss-tone) 55%,transparent);border-radius:18px;background:radial-gradient(ellipse at 10% 40%,color-mix(in srgb,var(--boss-tone) 35%,#101b30),#081a2b 75%);box-shadow:0 12px 25px #0004}.legend-card>img{width:42%;object-fit:contain;align-self:stretch;padding:12px 0;filter:drop-shadow(0 6px 15px #0008)}.legend-card.locked>img{filter:brightness(.55) saturate(.65);opacity:.85}.legend-card-copy{position:relative;flex:1;padding:18px 12px 16px 0;display:flex;flex-direction:column;gap:7px}.legend-card-copy h2{font-family:Georgia,serif;color:#fff0c5;font-size:25px;margin:0}.legend-card-copy p{font-size:11px;margin:0;color:#c1cbd5}.legend-card-copy>small{font-size:9px;color:var(--boss-tone)}.legend-card-copy strong{font-size:12px;color:#f2d795}.legend-card-copy label{font-size:10px}.legend-card-copy progress,.legend-score progress{display:block;height:5px;width:100%;margin-top:6px;accent-color:#e9c875}.legend-card button{margin-top:auto;padding:10px 5px;font-size:10px;min-height:40px}.legend-card button:disabled{opacity:.45;cursor:default}.legend-history{margin-top:26px}.legend-history button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid #dbc18c33;background:transparent;color:#dedbd2;text-align:left;font-size:11px}.legend-history span{font-size:10px;color:#abc0d2}.legend-confirm-team{display:flex;gap:4px;margin:15px 0}.legend-confirm-team img{width:calc((100% - 20px)/6);aspect-ratio:1;object-fit:contain;border:1px solid #d5bc7d55;border-radius:8px;background:#10263d}.legend-login{display:block;text-align:center}.legend-result{text-align:center;padding-top:30px}.legend-result h1{font-family:Georgia,serif;color:#f7d893}.legend-result-score{font-size:clamp(42px,12vw,72px);font-weight:800;color:#fff2bd;text-shadow:0 0 25px #deb45a66}.legend-result-score small{display:block;font-size:10px;letter-spacing:3px}.legend-record{display:block;font-size:14px;letter-spacing:1px;color:#ffdd73;animation:legendRecord 1.2s ease-out 2}.legend-prize{padding:20px 14px;border:1px solid #dfc27788;background:linear-gradient(145deg,#8a673a44,#10243d);border-radius:16px;margin:22px 0}.legend-prize p{font-size:11px;color:#c4d2df}.legend-contributions>div{display:flex;align-items:center;gap:8px;border-bottom:1px solid #ffffff15;padding:6px;text-align:left;font-size:11px}.legend-contributions img{width:34px;height:34px;object-fit:contain}.legend-contributions b{margin-left:auto}.legend-score{display:grid;gap:2px;margin-top:6px}.legend-score>b{font-size:19px;color:#ffe4a0}.legend-score small,.legend-score span{font-size:8px;letter-spacing:.2px}.legend-crew{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:0 0 4px}.legend-crew>div{display:grid;justify-items:center;grid-template-columns:1fr;gap:1px;background:#091c2dcc;border-radius:6px;border:1px solid #eed59b33}.legend-crew img{height:22px;width:24px;object-fit:contain}.legend-crew progress{width:90%;height:4px;accent-color:#75d8a0}.legend-crew small{font-size:7px}.legend-crew .defeated{filter:grayscale(1);opacity:.4}.legend-mode .enemyhud>.bar{display:none}.legend-mode .battle .fighter:disabled{opacity:1}.legend-mode .battle-plan{top:calc(150px + env(safe-area-inset-top,0px));max-width:180px}.legend-mode .battle-plan span{display:block!important;font-size:9px;line-height:1.3}.legend-mode .turn-phase{top:calc(125px + env(safe-area-inset-top,0px))}.legend-cinema{pointer-events:auto;position:fixed;inset:0;z-index:1000;background:#041321;overflow:hidden}.legend-cinema canvas{width:100%;height:100%;display:block}.legend-cinema button{position:absolute;right:14px;top:calc(16px + env(safe-area-inset-top,0px));background:#08192ddd;color:#ffe8b2;border:1px solid #e7d2a3;border-radius:8px;padding:12px}.legend-cinema-caption{position:absolute;bottom:calc(35px + env(safe-area-inset-bottom,0px));left:15px;right:15px;text-align:center;color:#fff0c4;text-shadow:0 2px 8px #000;font:700 27px Georgia}.legend-cinema-caption small{display:block;font:10px Arial;letter-spacing:3px;margin-bottom:7px}@keyframes legendRecord{0%{transform:scale(.85);opacity:.2;filter:brightness(2)}70%{transform:scale(1.07);opacity:1}100%{transform:scale(1)}}@media(min-width:700px){.legend-grid{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.legend-record{animation:none}}@media(max-height:680px){.legend-crew img{height:16px}.legend-crew small{font-size:6px}}

/* Source: captain-menu.css */
.captain-page{max-width:760px;margin:auto;padding-bottom:25px}.captain-hero{position:relative;isolation:isolate;overflow:hidden;padding:26px 22px 24px;border:1px solid #b99b5d55;border-radius:15px;background:linear-gradient(115deg,#071929ee,#102d41e8),url('assets/history/reverse.webp') center/cover;color:#e8d6b0}.captain-hero-chart{position:absolute;z-index:-1;width:240px;height:240px;right:-75px;top:-80px;border:1px solid #c8aa6533;border-radius:50%;box-shadow:0 0 0 28px #c8aa6508,0 0 0 29px #c8aa6522,0 0 0 64px #c8aa6505,0 0 0 65px #c8aa6518}.captain-hero-chart:after{content:'';position:absolute;inset:20px;background:repeating-conic-gradient(from 0deg,#d9bd7044 0deg 1deg,transparent 1deg 30deg);border-radius:50%;mask-image:radial-gradient(transparent 58%,#000 60%)}.captain-hero>small{display:block;max-width:85%;font:9px/1.5 Arial;letter-spacing:2px;color:#d6b778}.captain-hero h1{font:700 clamp(28px,8vw,42px)/1.1 Georgia,serif;color:#fff0c6;margin:12px 0 10px;max-width:88%;overflow-wrap:anywhere}.captain-hero>p{font-size:12px;line-height:1.6;color:#b6c8d5;max-width:85%;margin:0}.captain-hero-sigil{position:absolute;right:18px;top:22px;width:30px;height:30px;color:#d3b77e}.captain-hero svg,.captain-link svg,.captain-tile svg,.captain-save-state svg,.captain-save-note svg{width:100%;height:100%}.captain-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:14px 0 20px;padding:14px 0;border-block:1px solid #b9a16a33}.captain-summary span{display:grid;gap:5px;text-align:center;font-size:8px;letter-spacing:1px;color:#94adbf;border-right:1px solid #b9a16a33}.captain-summary span:last-child{border:0}.captain-summary b{font:23px Georgia;color:#efdab0}.captain-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.captain-tile{position:relative;isolation:isolate;overflow:hidden;min-height:155px;display:flex;align-items:flex-start;flex-direction:column;padding:17px 13px;text-align:left;border:1px solid #c8aa5d66;border-radius:11px;background:#102a40;color:#efdfba}.captain-tile:before{content:'';position:absolute;inset:0;z-index:-2;background:var(--tile-art) center/cover;opacity:.35;transition:transform .25s}.captain-tile:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(130deg,#071b3090,#071728e8)}.captain-tile>span{width:29px;height:29px;color:#e1c788;margin-bottom:18px}.captain-tile>b{font:700 19px Georgia}.captain-tile>small{font-size:9px;line-height:1.4;color:#b4c4d0;margin-top:6px;padding-right:6px}.captain-tile>i{position:absolute;right:12px;top:20px;font:25px Georgia;color:#ccb376}.captain-tile:active:before{transform:scale(1.06)}.captain-link{display:flex;align-items:center;gap:13px;width:100%;padding:15px 12px;margin-top:9px;text-align:left;background:linear-gradient(110deg,#153349bb,#0b2032e8);color:#e9dfc7;border:1px solid #bc9d5b44;border-radius:9px;min-height:66px}.captain-link>span:first-child{width:28px;height:28px;flex:none;color:#cdb47d}.captain-link>span:nth-child(2){flex:1;min-width:0}.captain-link b{display:block;font:700 16px Georgia;overflow-wrap:anywhere}.captain-link small{display:block;color:#99b1c3;font-size:10px;line-height:1.5;margin-top:4px}.captain-link>i{font:24px Georgia;color:#d9bd80}.captain-foot{margin-top:24px;text-align:center;font-size:9px;letter-spacing:1px;color:#c4ae7b}.captain-foot b{display:block;margin-top:5px;font-size:10px}.captain-foot p{font-size:9px;letter-spacing:0;line-height:1.6;color:#829dac}.captain-tabs{display:flex;gap:5px;margin:17px 0;padding:4px;border-radius:10px;background:#051522;border:1px solid #9e8a5744}.captain-tabs button{flex:1;min-width:0;padding:12px 3px;min-height:44px;background:transparent;border:1px solid transparent;border-radius:7px;color:#a7bdcc;font-size:11px}.captain-tabs button[aria-pressed=true]{color:#f7e5bb;background:#233b4b;border-color:#d7b76e88}.captain-panel{padding:20px 17px;border:1px solid #c1a26244;border-radius:13px;background:linear-gradient(140deg,#153247c9,#081d30eb)}.captain-panel>h2{font:700 24px Georgia;color:#f1deb0;margin:0 0 8px}.captain-panel>p{font-size:11px;color:#9db3c5;line-height:1.7}.captain-control{position:relative;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;margin:0;border-bottom:1px solid #bba36326;color:#e2e7e9}.captain-control>span{flex:1;min-width:0}.captain-control b{display:block;font-size:12px;font-weight:500;line-height:1.4}.captain-control small{display:block;font-size:10px;line-height:1.5;margin-top:5px;color:#8da8bd}.captain-control.range{flex-wrap:wrap}.captain-control.range input{width:100%;accent-color:#e6c579;height:24px;margin-top:5px}.captain-control select{max-width:52%;min-height:44px;padding:8px;background:#081c2d;color:#eedbb4;border:1px solid #bfa15f77;border-radius:7px;font-size:12px}.captain-control input[type=checkbox]{position:absolute;right:0;width:46px;height:30px;opacity:0;z-index:2;cursor:pointer}.captain-switch{position:relative;width:43px;height:25px;border-radius:20px;border:1px solid #7d95a4;background:#061422;flex:none}.captain-switch:before{content:'';position:absolute;width:17px;height:17px;top:3px;left:3px;background:#8196a4;border-radius:50%;transition:.15s}.captain-control input:checked+.captain-switch{background:#be9b50;border-color:#e9d196}.captain-control input:checked+.captain-switch:before{left:21px;background:#fff2cb}.captain-control input:focus-visible+.captain-switch{outline:2px solid #f3e0aa;outline-offset:4px}.captain-details{margin-top:17px;border:1px solid #ba9e5d44;border-radius:8px;padding:14px;font-size:11px;color:#adbfcb}.captain-details summary{min-height:30px;color:#d8c28e;cursor:pointer}.captain-details p{font-size:10px;line-height:1.7}.captain-hint{font-size:10px!important;line-height:1.7!important;color:#9db2c1!important;margin-top:16px!important}.captain-import{display:block;cursor:pointer;position:relative;box-sizing:border-box;padding:15px 10px;min-height:48px;text-align:center;color:#efd5a0;border:1px dashed #cdb57899;border-radius:9px;font-size:11px;letter-spacing:1px;margin-top:14px}.captain-save-state{display:flex;gap:13px;align-items:center;background:#061c2ba8;padding:14px 12px;border:1px solid #a18e5d44;border-radius:9px;margin:17px 0}.captain-save-state>svg{width:30px;height:30px;flex:none;color:#e3c682}.captain-save-state b{display:block;font-size:12px;color:#f3d999}.captain-save-state small{display:block;font-size:10px;color:#9cb4c6;margin-top:4px}dialog.captain-modal{padding:0;overflow-y:auto;overflow-x:hidden;max-height:calc(100dvh - 32px);width:calc(100% - 24px);max-width:480px;border-radius:17px;border-color:#c4ab6c88;background:#081d2e;scrollbar-width:thin}dialog.captain-modal #modalContent{position:relative}dialog.captain-modal .close{position:absolute;z-index:4;right:11px;top:11px;width:36px;height:36px;display:grid;place-items:center;float:none;border:1px solid #d7bb7f88;border-radius:50%;background:#071a2ded;color:#f0dfba;font:23px/1 Arial;padding:0;margin:0}.captain-dialog .captain-hero{border:0;border-bottom:1px solid #cfaf6566;border-radius:0;padding:28px 22px 25px}.captain-dialog .captain-hero-sigil{display:none}.captain-dialog .captain-hero>small{max-width:82%;font-size:8px;letter-spacing:1.7px}.captain-dialog .captain-hero h1{font-size:31px;padding-right:8px}.captain-dialog-body{padding:15px 18px 24px}.captain-empty{text-align:center;padding:24px 6px;color:#b5c8d6}.captain-empty>svg{width:46px;height:46px;color:#cab27d;margin:0 auto 13px}.captain-empty h3{font:700 22px/1.2 Georgia;color:#efddba;margin-bottom:9px}.captain-empty p{font-size:12px;line-height:1.7;max-width:300px;margin:auto}.captain-save-slot{border:1px solid #b2985c44;background:linear-gradient(130deg,#183447,#0b2133);border-radius:10px;padding:16px 13px;margin-bottom:12px}.captain-save-slot.current{border-color:#e3c47c99}.captain-save-slot>small{display:block;letter-spacing:1.4px;font-size:9px;color:#d6bb83}.captain-save-slot h3{font:700 23px Georgia;color:#fae8c2;margin:10px 0 6px}.captain-save-slot h3 span{font:11px Arial;display:inline-block;margin-left:12px;color:#c0cfdb}.captain-save-slot p{font-size:11px;color:#9bb3c7;line-height:1.7;margin:0}.captain-save-slot button{position:static;display:block;margin-top:14px;min-height:44px;width:100%;line-height:1.4}.captain-save-note{display:flex;gap:12px;padding:15px 10px;margin-top:12px;border-block:1px solid #b6a16b33}.captain-save-note svg{width:24px;height:24px;flex:none;color:#cbb27a}.captain-save-note p{font-size:11px;line-height:1.7;color:#9eb6c7;margin:0}.captain-message>small{display:block;letter-spacing:1px;font-size:9px;color:#d2bd87;padding:12px 0}.captain-message-crew{display:flex;gap:6px}.captain-message-crew img{width:calc((100% - 30px)/6);aspect-ratio:1;object-fit:contain;background:#112c40;border:1px solid #d9b97155;border-radius:7px}.captain-modal .promotion-screen{padding:0}.captain-modal .promotion-screen>.captain-dialog-body>p{font-size:12px;color:#abc0ce;line-height:1.7}.captain-modal .promotion-screen label{margin-top:18px}.captain-modal .promotion-screen #promotionStatus{font-size:11px;border-color:#c2a36744;padding:14px}.captain-modal .promotion-screen input{box-sizing:border-box;min-height:52px}.captain-modal .promotion-screen button{min-height:48px}.view-more #main,.view-settings #main{padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}@media(min-width:650px){.captain-grid{grid-template-columns:repeat(4,1fr)}}@media(prefers-reduced-motion:reduce){.captain-tile:before,.captain-switch:before{transition:none}}
/* Static settings layout: categories and buttons paginate; the page never scrolls. */
body.view-settings{height:100dvh;overflow:hidden}body.view-settings #game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}body.view-settings #top{flex:none;padding-top:calc(8px + env(safe-area-inset-top,0px));padding-bottom:6px}body.view-settings #nav{display:none}body.view-settings #main{flex:1;min-height:0;padding:0 14px calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow:hidden}body.view-settings #main>.pagehead{flex:none;margin:0;padding:3px 0 5px;min-height:35px}body.view-settings #main>.pagehead h2{font-size:13px;color:#b9c8d3}body.view-settings #main>.pagehead .back{width:32px;height:32px;min-height:32px;padding:0;font-size:24px}.captain-settings-fixed{width:100%;flex:1;min-height:0;padding-bottom:0;display:flex;flex-direction:column;gap:8px}.captain-settings-fixed .captain-hero{flex:none;padding:13px 16px;border-radius:12px}.captain-settings-fixed .captain-hero h1{font-size:29px;margin:6px 0}.captain-settings-fixed .captain-hero>small{font-size:8px}.captain-settings-fixed .captain-hero>p{font-size:10px;line-height:1.4}.captain-settings-fixed .captain-hero-sigil{width:25px;height:25px;right:15px;top:16px}.captain-settings-fixed .captain-tabs{flex:none;margin:0}.captain-settings-fixed .captain-tabs button{min-height:40px;padding:9px 2px;font-size:11px}.captain-settings-fixed>.captain-panel{flex:1;min-height:0;padding:16px 15px;display:flex;flex-direction:column;overflow:hidden}.captain-settings-fixed .captain-panel>h2{font-size:24px;margin-bottom:6px}.captain-settings-fixed .captain-panel>p{font-size:10px;line-height:1.4;margin:0 0 7px}.captain-settings-fixed .settings-options{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-evenly}.captain-settings-fixed .captain-control{padding:9px 0;flex:none;min-height:44px}.captain-settings-fixed .captain-control.range{row-gap:4px}.captain-settings-fixed .captain-control.range input{margin:0;min-height:28px;height:28px}.captain-settings-fixed .captain-control small{font-size:10px;margin-top:3px}.captain-settings-fixed .captain-control select{min-height:40px}.captain-settings-fixed .captain-link{margin-top:5px;min-height:56px;padding:9px 10px}.captain-settings-fixed .captain-link small{font-size:9px;margin-top:3px}.captain-settings-fixed .captain-link b{font-size:15px}.captain-settings-fixed .captain-save-state{margin:0 0 4px;padding:10px}.captain-settings-fixed .captain-import{margin-top:8px;min-height:44px;padding:13px 10px}.captain-settings-fixed .captain-hint{margin-top:6px!important;font-size:9px!important;line-height:1.4!important}.settings-fixed-footer{flex:none}.settings-fixed-footer>p{font-size:9px;line-height:1.4;text-align:center;color:#9bb2c4;margin:6px 0 0}.settings-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-pagination button{min-height:40px;padding:7px 10px;background:#122e41;border:1px solid #b69a6266;border-radius:7px;color:#ead49e;font-size:10px}.settings-pagination button:disabled{opacity:.35}.settings-pagination span{font-size:10px;color:#c4b48e}.captain-settings-fixed *{animation:none!important}.voyage-launch [data-action="voyageteam"]{min-height:44px;padding:10px;margin:4px 0 8px;border:1px solid #e0bf78;background:#0b263cde;color:#f3db9e;font-size:11px;letter-spacing:1px}.voyage-launch [data-action="voyageteam"]+.adventure-button{margin-top:0}@media(max-height:680px){.captain-settings-fixed{gap:5px}.captain-settings-fixed .captain-hero{padding:9px 13px}.captain-settings-fixed .captain-hero h1{font-size:25px;margin:4px 0}.captain-settings-fixed .captain-hero>p{display:none}.captain-settings-fixed>.captain-panel{padding:10px 12px}.captain-settings-fixed .captain-panel>h2{font-size:21px}.captain-settings-fixed .captain-control{padding:6px 0}.captain-settings-fixed .captain-control small{font-size:9px}.captain-settings-fixed .captain-link{min-height:48px;padding:6px 9px}.captain-settings-fixed .captain-tabs button{min-height:36px}.settings-fixed-footer>p{font-size:8px}.captain-settings-fixed .captain-panel>p{font-size:9px}}@media(max-height:520px){.captain-settings-fixed .captain-hero{display:none}.captain-settings-fixed .captain-control small{display:none}}

.pirate-experience{margin:12px 0 18px;padding:16px;border:1px solid #c8a56466;border-radius:14px;background:#10293deb;color:#f7dfaa}.pirate-experience>div{display:flex;justify-content:space-between;gap:12px;font-size:12px}.pirate-experience progress{display:block;width:100%;height:10px;margin:12px 0;accent-color:#e3bc70}.pirate-experience p{margin:0;font-size:11px;line-height:1.5;color:#bfd1dc}

/* Source: impel3.css */
/* Impel Down 3.0: one stable shell, one scrolling battle list. */
.impel3{--metal:#dec183;--blue:#071625;overflow:hidden}.impel3:before{background:linear-gradient(180deg,#030c17aa,#04111dd9 55%,#030d18ed),var(--prison-art) center/cover;opacity:1}.impel3 .impel-account{min-height:56px;gap:6px;padding:calc(6px + env(safe-area-inset-top,0px)) 8px 6px;background:linear-gradient(100deg,#071523ed,#112b3bed);border-bottom:1px solid #c7a76b99;box-shadow:0 4px 15px #0008}.impel3 .impel-account>img{width:33px;height:39px;border-radius:5px;object-fit:cover}.impel3 .impel-account>span{gap:5px}.impel3 .impel-account b{font-size:9px;letter-spacing:.15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impel3 .impel-account small{font-size:8px;line-height:1.3;color:#c1ced9;white-space:nowrap}.impel3 .impel-account button{padding:0 6px;font-size:10px;min-height:38px;border-radius:5px;background:linear-gradient(#172c3a,#061422);border:1px solid #c7a56699}.impel3 .impel-account .impel-back{width:31px;padding:0;font-size:29px;flex:none}.impel3 .impel-account i{font-size:14px;color:#efc766}.impel3 .impel-account button:last-child i{color:#7be2ff}.impel3-fixed{flex:none;position:relative;background:linear-gradient(#04101a00,#051422d9)}.impel3-hero{position:relative;isolation:isolate;height:151px;padding:13px 13px 9px;overflow:hidden;background:linear-gradient(90deg,#020b1670,#06142105),var(--prison-art) center 30%/cover;border-bottom:1px solid #caa76066}.impel3-hero:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,#03101cf2,transparent 75%),linear-gradient(90deg,#04111c22,#040c1466)}.impel3-brand{position:relative;z-index:2;width:100%;text-align:left}.impel3-brand h1{display:inline-block;margin:0;font:900 clamp(31px,9.6vw,48px)/1 Georgia,serif;letter-spacing:-1.8px;color:#e9e7de;background:linear-gradient(#fffef3 0,#b9ced7 29%,#fff9df 46%,#879ca8 52%,#e5e6da 75%,#aeb9bb 95%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(1px 2px 0 #6c1b20) drop-shadow(0 2px 2px #000);transform:skewY(-2deg);text-shadow:none}.impel3-brand>small{display:block;margin:7px 0 0 5px;font:700 9px Georgia;letter-spacing:3.4px;color:#e5ded1;text-shadow:0 1px 4px #000}.impel3-zone-guardian{position:absolute;right:-13px;top:12px;width:42%;height:190px;object-fit:contain;object-position:50% 10%;z-index:0;filter:drop-shadow(0 0 10px #d74d3466);mask-image:linear-gradient(#000 70%,transparent 96%);-webkit-mask-image:linear-gradient(#000 70%,transparent 96%);pointer-events:none}.impel3-zone-copy{position:absolute;left:13px;bottom:11px;max-width:68%;z-index:2}.impel3-zone-copy>small{display:inline-block;font:700 10px Georgia;letter-spacing:1px;background:linear-gradient(90deg,#8f1c1cdd,#500b0b77);padding:3px 24px 3px 5px;border-block:1px solid #c77d3277;color:#ffe9bd}.impel3-zone-copy h2{font:700 clamp(16px,4.5vw,22px)/1.05 Georgia;color:#ffe0a1;text-transform:uppercase;text-shadow:0 2px 5px #000;margin:5px 0}.impel3-zone-copy p{font:10px/1.4 Georgia;color:#d0dbe2;max-width:205px;margin:0;text-shadow:0 1px 4px #000}.impel3-total{position:absolute;right:10px;bottom:10px;font-size:7px;letter-spacing:.5px;padding:4px 5px;border:1px solid #c1a26155;background:#081420dd;color:#d1c6a9;z-index:2}.impel3-torches{position:absolute;inset:0;z-index:-1;pointer-events:none}.impel3-torches i{position:absolute;right:10%;top:30%;width:50px;height:85px;opacity:.35;background:radial-gradient(ellipse,#fff6b5 0%,#ff7f1bcc 15%,#ef310166 30%,transparent 65%);mix-blend-mode:screen;animation:impel3Torch 3.4s ease-in-out infinite alternate}.impel3-torches i+ i{left:9%;right:auto;top:49%;width:30px;height:55px;animation-delay:-1.8s}.impel3 .impel-zones{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;margin:0;padding:8px 10px 7px;border-block:0;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;background:#03101c88;flex:none}.impel3 .impel-zones::-webkit-scrollbar{display:none}.impel3 .impel-zones button{flex:1 0 52px;position:relative;display:grid;align-content:center;justify-items:center;gap:4px;min-height:48px;min-width:52px;padding:6px 3px;border:1px solid #5283a888;border-radius:5px;background:linear-gradient(#153a54bb,#041525ee);color:#a3c8e2;scroll-snap-align:center;transition:border-color .2s,background .2s}.impel3 .impel-zones button>b{font:700 10px Georgia;letter-spacing:0}.impel3 .impel-zones button>span{font-size:8px;color:#a5bfd1}.impel3 .impel-zones button>i{position:absolute;right:3px;bottom:4px;font:9px Arial;color:#9bb7c9}.impel3 .impel-zones button>i svg{width:10px;height:12px;display:block}.impel3 .impel-zones button.active{border-color:#ffe2a0;color:#fff0c7;background:linear-gradient(#8e5b1fbb,#34290ce8);box-shadow:inset 0 0 13px #f7ba4144,0 0 10px #ffce6944}.impel3 .impel-zones button.active>span{color:#f0d7a6}.impel3 .impel-zones .zone-locked:not(.active){background:linear-gradient(#0e293cbb,#061321ee);color:#6f8a9d;border-color:#36566c}.impel3 .impel-zones .zone-locked:not(.active)>span{color:#708b9d}.impel3-status{display:flex;align-items:center;gap:7px;padding:0 11px 7px;border-bottom:1px solid #997e4644;min-height:29px;color:#b8cddd}.impel3 .impel-health{flex:1;display:flex;align-items:center;gap:5px;border:0;padding:0;margin:0;background:transparent;min-width:0}.impel3 .impel-health>span{font-size:7px;letter-spacing:0;white-space:nowrap;color:#cfb884}.impel3 .impel-health>progress{width:36px;flex:1;min-width:20px;height:4px}.impel3 .impel-health>b{font-size:9px;line-height:1;color:#e9d7ac}.impel3-checkpoint{font-size:7px;white-space:nowrap;color:#95adc0}.impel3-checkpoint i{margin:0 3px;font-style:normal;color:#d5bb7e}.impel3-status>button{height:25px;min-width:25px;font-size:17px;border:0;background:transparent;color:#d3ba80;padding:0}.impel3 .impel-resume,.impel3 .impel-receipt,.impel3 .impel-warning{margin:0;padding:7px 12px;min-height:34px;font-size:10px;border:0;border-bottom:1px solid #a88c4e55;border-radius:0}.impel3 .impel-resume span{font-size:8px}.impel3 .impel-resume b{font-size:11px}.impel3 .impel-warning{display:flex;justify-content:space-between;align-items:center}.impel3 .impel-warning button{font-size:10px;padding:7px 10px}.impel3 .impel-scroll{padding:0 10px 10px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#9d895a #061522;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;contain:layout paint}.impel3 .impel-route-label{display:flex;justify-content:space-between;margin:0;padding:9px 1px 7px;font-size:8px;letter-spacing:1px;color:#bfa778}.impel3 .impel-route-label small{font-size:8px;color:#819fb5}.impel3 .impel-doors{display:grid;gap:7px;margin:0;padding:0}.impel3 .impel-scroll>.impel-doors>.impel-door{position:relative;display:grid;grid-template-columns:27px 56px minmax(0,1fr) 73px;align-items:center;gap:5px;min-height:78px;height:auto;overflow:hidden;margin:0;padding:5px 6px 5px 5px;border:1px solid #a68c54bb;border-radius:5px;background:linear-gradient(100deg,#061320f2,#0b2031d9 60%,#06121fe8);color:#e8e4d5;text-align:left;isolation:isolate;box-shadow:0 3px 9px #0005;animation:none}.impel3 .impel-door:before,.impel3 .impel-door:after{display:none}.impel3 .impel-door-number{position:relative;inset:auto;display:grid;justify-items:center;align-content:center;color:#f0d393;font:700 22px/1 Georgia;text-shadow:0 2px 2px #000;padding:0;border:0;background:none;width:auto;height:auto}.impel3 .impel-door-number small{font:7px/1 Arial;letter-spacing:.4px;margin-bottom:4px;color:#d6c18c}.impel3 .impel-door-portrait{position:relative;inset:auto;width:56px;height:65px;min-width:0;display:block;margin:0;overflow:hidden;border:0;border-inline:1px solid #ae975a55;background:radial-gradient(ellipse at 50% 30%,#3e53655e,#071626 90%);mask-image:none;-webkit-mask-image:none;transform:none}.impel3 .impel-door-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 24%;display:block;opacity:1;filter:none;transform:none;mask-image:none;-webkit-mask-image:none}.impel3-fight-copy{position:relative;display:grid;align-content:center;gap:4px;min-width:0;z-index:2;padding:0}.impel3 .impel-floor-state{font:6px/1.1 Arial;letter-spacing:.35px;color:#a8b9c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin:0}.impel3-enemy-name{font:700 13px/1.05 Georgia;color:#f4e6c4;display:flex;flex-wrap:wrap;align-items:center;gap:3px;overflow-wrap:anywhere}.impel3-enemy-name .combat-type-badge{font-size:7px;padding:1px 3px;min-width:0}.impel3-recommended{font-size:7px;line-height:1.2;color:#819eb4}.impel3 .impel-door-loot{display:flex;gap:5px;flex-wrap:nowrap;line-height:1;white-space:nowrap;margin:0}.impel3 .impel-door-loot i{font:8px/1 Arial;color:#d8bd7f;background:none;border:0;padding:0}.impel3 .impel-door-loot i:first-child{color:#81dfff}.impel3 .impel-door-loot i:nth-child(2){color:#cdb0f0}.impel3-stars{position:absolute;right:-77px;bottom:-1px;display:flex;justify-content:center;width:73px;gap:2px;font:11px/1 Georgia;letter-spacing:0;color:#9c8554}.impel3-stars i{font-style:normal}.impel3-stars .earned{color:#ffe0a0;text-shadow:0 0 5px #d7a04655}.impel3-fight-action{width:73px;align-self:center;justify-self:end;display:flex;gap:3px;align-items:center;justify-content:center;min-height:31px;margin-bottom:13px;border-radius:4px;border:1px solid #ffe8b1;background:linear-gradient(#ffe9a1,#e1b95d 65%,#c98f35);box-shadow:inset 0 1px 2px #fff8,0 2px 5px #0007;color:#151b23;font-size:12px;text-shadow:none}.impel3-fight-action>b{font:800 9px/1 Arial;color:inherit}.impel3-fight-action svg{width:14px;height:17px}.impel3 .impel-door:disabled{opacity:1;filter:none;cursor:default}.impel3 .is-locked .impel-door-portrait{filter:brightness(.6) saturate(.6)}.impel3 .impel-door:disabled .impel3-fight-action{border-color:#36536b;background:#0d2234aa;color:#6f8a9e;box-shadow:none;min-height:32px;flex-direction:column;gap:2px}.impel3 .impel-door:disabled .impel3-fight-action>b{font-size:7px}.impel3 .impel-door.is-clear{border-color:#ad965cbb}.impel3 .impel-door.three-stars{border-color:#e1bd6d}.impel3 .impel-door.is-current{border-color:#f8d58d;box-shadow:0 0 9px #ddaa472b,inset 2px 0 #efd280}.impel3 .impel-scroll>.impel-doors>.impel-door.is-boss{grid-template-columns:34px 78px minmax(0,1fr) 82px;min-height:113px;padding:8px 7px;border-color:#ed9c58;background:radial-gradient(ellipse at 40% 100%,#b8382444,transparent 70%),linear-gradient(100deg,#4f0b16ef,#2c0c1bdf 65%,#120d1cf5);box-shadow:0 0 8px #d53b2855,inset 0 0 10px #a12d1e55}.impel3 .is-boss .impel-door-number{font-size:27px;color:#ffe1ab}.impel3 .is-boss .impel-door-number small{font-size:8px;color:#ff9a75}.impel3 .is-boss .impel-door-portrait{width:78px;height:102px;background:none;border:0;overflow:visible;filter:drop-shadow(0 0 7px #ec392a55)}.impel3 .is-boss .impel-door-portrait img{object-fit:contain;object-position:center;transform:scale(1.12);mask-image:linear-gradient(#000 82%,transparent);-webkit-mask-image:linear-gradient(#000 82%,transparent)}.impel3 .is-boss .impel3-enemy-name{font-size:18px}.impel3 .is-boss .impel-floor-state{color:#ffa57e;font-size:7px}.impel3 .is-boss .impel3-fight-action{width:82px;min-height:39px;border-color:#ffd9a2;background:linear-gradient(#ffbd77,#f87341 50%,#bb2b20);box-shadow:0 0 10px #ed4a2f55,inset 0 1px #ffecd388;color:#260f0d}.impel3 .is-boss .impel3-fight-action>b{font-size:10px}.impel3 .is-boss .impel3-stars{width:82px;right:-88px;bottom:-8px;font-size:13px}.impel3 .is-boss .impel-door-edition{position:absolute;bottom:4px;left:8px;top:auto;right:auto;font-size:6px;line-height:1;background:none;padding:0;border:0;color:#efbe8d}.impel3 .is-boss:not(:disabled) .impel3-fight-action{animation:impel3BossLight 4s ease-in-out infinite}.impel3 .impel3-rewards{border:1px solid #a88f5155;border-radius:5px;margin:14px 0 8px;background:#081a2cd9}.impel3-rewards summary{padding:14px 10px;font-size:9px;letter-spacing:.7px;color:#ddc48b;cursor:pointer}.impel3-rewards summary span{float:right}.impel3 .impel-prizes{padding:5px 8px;display:flex;overflow-x:auto;gap:7px}.impel3 .impel-prizes button{flex:0 0 95px;min-width:95px}.impel3 .impel-secret{margin:8px 0;min-height:55px;padding:9px;border-radius:5px;gap:9px}.impel3 .impel-secret>svg{width:25px;flex:none}.impel3 .impel-secret>span{flex:1;text-align:left}.impel3 .impel-secret b{font-size:9px;display:block}.impel3 .impel-secret small{display:block;font-size:8px;margin-top:4px;color:#8da6b8}.impel3-manual{text-align:center;font-size:8px;color:#8aa3b6;margin:15px 0 6px}.impel3-bottom{flex:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:7px 6px calc(7px + env(safe-area-inset-bottom,0px));background:linear-gradient(#081827,#030c15);border-top:1px solid #c3a265aa;box-shadow:0 -5px 16px #020811aa;z-index:3}.impel3-bottom>button{min-width:0;min-height:51px;padding:4px 2px;display:grid;justify-items:center;align-content:center;gap:4px;color:#d4bc81;border:1px solid #977c474d;border-radius:4px;background:linear-gradient(#1d2731aa,#0c1420aa)}.impel3-bottom svg{width:25px;height:25px}.impel3-bottom span{font:700 7px/1.2 Arial;white-space:nowrap}.impel3-bottom button[aria-current]{border-color:#56cfff;color:#8be4ff;box-shadow:inset 0 0 9px #3fb9ff25,0 0 7px #3fb9ff33;background:#07283b}.impel3 .impel-door:active:not(:disabled){transform:translateY(1px);scale:.995;filter:brightness(1.08)}.impel3-quiet .impel3-torches i,.impel3-quiet .is-boss .impel3-fight-action{animation:none!important}@keyframes impel3Torch{from{opacity:.3;transform:scale(.9,1)}to{opacity:.52;transform:scale(1.1,.92)}}@keyframes impel3BossLight{0%,100%{filter:brightness(1)}50%{filter:brightness(1.1)}}@media(max-width:355px){.impel3 .impel-account{gap:4px;padding-inline:5px}.impel3 .impel-account b{font-size:8px}.impel3 .impel-account small{font-size:7px}.impel3 .impel-account button{font-size:9px;padding-inline:4px}.impel3 .impel-scroll{padding-inline:7px}.impel3 .impel-scroll>.impel-doors>.impel-door{grid-template-columns:24px 47px minmax(0,1fr) 65px;gap:4px}.impel3 .impel-door-portrait{width:47px}.impel3-fight-action{width:65px}.impel3-fight-action>b{font-size:8px}.impel3-stars{right:-69px;width:65px}.impel3 .impel-scroll>.impel-doors>.impel-door.is-boss{grid-template-columns:29px 62px minmax(0,1fr) 73px}.impel3 .is-boss .impel-door-portrait{width:62px}.impel3 .is-boss .impel3-fight-action{width:73px}.impel3 .is-boss .impel3-stars{right:-77px;width:73px}.impel3 .is-boss .impel3-enemy-name{font-size:16px}.impel3-checkpoint{font-size:6px}.impel3 .impel-health>span{font-size:6px}}@media(max-height:650px){.impel3-hero{height:126px;padding-top:9px}.impel3-brand h1{font-size:34px}.impel3-brand>small{margin-top:5px;font-size:8px}.impel3-zone-copy p{display:none}.impel3-zone-copy{bottom:9px}.impel3-zone-guardian{height:160px;top:0}.impel3 .impel-zones{padding-top:5px;padding-bottom:5px}.impel3 .impel-zones button{min-height:43px}.impel3 .impel-account{min-height:50px}.impel3-bottom>button{min-height:45px}.impel3-bottom svg{width:21px;height:21px}.impel3-bottom{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}}@media(prefers-reduced-motion:reduce){.impel3 *,.impel3 *:before,.impel3 *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.impel3-hero{animation:impel3ZoneIn .24s ease-out both}.impel3-quiet .impel3-hero{animation:none}@keyframes impel3ZoneIn{from{opacity:.65}to{opacity:1}}@media(prefers-reduced-motion:reduce){.impel3-hero{animation:none!important}}

/* Source: island-art.css */
/* Material palette matches the navy/gold menus; water no longer competes with islands. */
.arrival-island-diorama{position:absolute;left:4%;bottom:-5%;width:92%;height:110%;object-fit:contain;filter:drop-shadow(0 9px 6px #00263c55)}

/* Source: combat-classic.css */
/* Composição anterior à 0.46, com acesso permanente à equipa e controlos atuais. */
.battle .battle-foot{display:flex;align-items:center;justify-content:space-between;gap:3px;flex-wrap:wrap}
.battle .battle-foot button{font-size:9px;padding-inline:4px;min-height:32px}
.combat5-lineup>div{display:flex;align-items:center;gap:12px;padding:9px;border-bottom:1px solid #bfa46922}
.combat5-lineup img{width:42px;height:46px;object-fit:contain}
.combat5-lineup b{display:block;font-size:13px;color:#e7d7b4}
.combat5-lineup small{display:block;font-size:9px;color:#90aec5;margin-top:6px}
.battle-cinema-active #main{visibility:hidden}
.battle-cinema-active #fx,.battle #fx .legend-cinema{pointer-events:auto}
/* Ajustes sobre a base em perspetiva; nenhum índice ou regra do tabuleiro muda. */
.battle .elemental-hud{display:none}
.battle .battle-top{position:absolute;top:calc(8px + env(safe-area-inset-top,0px));left:10px;right:10px;display:flex;align-items:center;gap:7px;z-index:4}
.battle .enemy-badge{flex:none;width:38px;height:43px}
.battle .enemyhud{flex:1;min-width:0;padding:6px 8px;background:#091f32e6;border-radius:7px}
.battle .enemyhud .row>b{font-size:12px}.battle .enemyhud .row>span{font-size:9px}
.battle .battle-menubtn{position:static;min-height:44px;min-width:44px;padding:5px;font-size:10px}
.battle .battle-plan{top:calc(72px + env(safe-area-inset-top,0px));left:10px;right:10px;width:auto;max-width:none;display:flex;align-items:center;gap:8px;padding:4px 7px;min-height:32px;background:#092337dc;border:1px solid #c2a86a55;pointer-events:auto}
.battle .battle-plan>span,.battle .battle-plan>small{display:none}
.battle .battle-plan>.battle-synergy-link{width:auto;flex:none;margin:0;min-height:28px;font-size:8px;padding:4px}
.battle .intent-detail{flex:1;min-height:28px;text-align:left;font-size:11px;color:#f5dfac;background:none;border:0;padding:3px}
.battle .turn-phase{top:calc(111px + env(safe-area-inset-top,0px));left:10px;right:10px;font-size:9px;text-align:left;background:#061c2b99;pointer-events:none}
.battle .rotation{padding-inline:12px;gap:14px}
.battle .battle-foot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}
.battle .battle-foot button{min-height:36px;font-size:9px;padding:3px}
.battle .battle-foot [data-action="leave"]{grid-column:1/-1;justify-self:end;color:#d6a6a0;min-height:30px;padding-inline:12px}
@media(max-height:680px){.battle .medallion{width:40px;height:40px}.battle .fighter small{font-size:8px}.battle .battle-foot button{min-height:30px}.battle .battle-foot [data-action="leave"]{min-height:26px}}
/* Área de combate: corredor livre à esquerda, profundidade legível à direita. */
.battle .battle-top{gap:6px}
.battle .enemyhud{padding:5px 7px}
.battle .enemyhud>.row{margin-bottom:2px}
.battle .enemyhud>.bar{height:6px}
.battle .enemyhud>small{font-size:10px;margin-top:3px}
.battle .battle-plan{top:calc(65px + env(safe-area-inset-top,0px));display:grid;grid-template-columns:auto 1fr auto;gap:6px;min-height:32px;padding:3px 6px}
.battle .battle-plan>.preparation-progress{display:block;grid-column:3;grid-row:1;font-size:8px;color:#a9c1d0;white-space:nowrap}
.battle .intent-detail{grid-column:2;grid-row:1;min-width:0;font-size:10px}
.battle .battle-plan>.battle-synergy-link{grid-column:1;grid-row:1;font-size:8px}
.battle .turn-phase{display:none}
/* Orbs8: geometry remains logical-index independent, with three visible depth planes. */
@media(max-height:680px){}
@media(prefers-reduced-motion:reduce){}
@media(max-height:680px){.battle .battle-plan{top:calc(61px + env(safe-area-inset-top,0px))}}

/* Motion stays inside each stable touch target; only five foreground sparks. */
@media(prefers-reduced-motion:reduce){}

/* Wide reference fan: foreground left sphere sits above the ally, not across its face. */
@media(max-height:680px){}

/* Source: voyage-shared.css */
/* Shared departure, account and reward styling; no legacy navigation UI. */
.adventure-button{display:block;width:100%;min-height:44px;margin:8px 0;padding:11px 12px;border:1px solid #d2b573;border-radius:8px;background:linear-gradient(#1a4d76,#092642);color:#fff0c5;font-size:11px;font-weight:800;letter-spacing:.5px;box-shadow:inset 0 1px #c6eaff33,0 3px 10px #0005;transition:filter .13s,transform .13s}.adventure-button:active{filter:brightness(1.25);transform:scale(.98)}.battle-panel>.adventure-button{background:linear-gradient(#bb3438,#6d1525);border-color:#ffc68f}.adventure-rewards{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:10px 0}.adventure-rewards>div{border:1px solid #d4b579;border-radius:6px;padding:8px 5px;min-width:62px;max-width:95px;background:linear-gradient(#234959aa,#041427);animation:adventurePanel .35s ease}.adventure-rewards b,.adventure-rewards strong,.adventure-rewards small{display:block}.adventure-rewards b{font-size:23px;color:#f7ce73;margin-bottom:6px}.adventure-rewards strong{font-size:14px}.adventure-rewards small{font-size:8px;color:#d6dfdf;margin-top:4px}.adventure-chest{position:relative;width:100px;height:60px;margin:30px auto 15px;background:linear-gradient(90deg,#9a5724,#d9aa4a,#6c351c);border:4px solid #efc366;border-radius:7px;box-shadow:0 0 35px #ffc75077;animation:adventureTreasure .6s ease}.adventure-chest i{position:absolute;left:-4px;right:-4px;top:-27px;height:30px;background:#b27829;border:4px solid #efc366;border-radius:15px 15px 3px 3px;transform-origin:bottom;animation:adventureLid .8s ease forwards}.adventure-chest span{font-size:29px;color:#fff6b6}.voyage-vitals .adventure-button{grid-column:2;grid-row:1 / 3;min-height:44px;padding:4px;margin:0;font-size:15px}.voyage-event-fx .adventure-chest{width:65px;height:42px;position:absolute;left:70px;top:95px;margin:0}
.voyage-launch{position:absolute;inset:0;z-index:8;overflow:hidden;background:#071b30;isolation:isolate;text-align:center;display:flex;flex-direction:column;justify-content:space-between;animation:adventurePanel .25s ease}.voyage-launch-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 32%;z-index:-3}.voyage-launch-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(#03172a99,transparent 25%,#06192b22 40%,#041326e8 70%,#020e1c 100%)}.voyage-launch>header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 14px;color:#ffe2a2;text-shadow:0 2px 4px #000}.voyage-launch>header>.adventure-button{width:auto;margin:0;min-height:40px;padding:9px 12px;background:#071c32b8;border-color:#e5c986}.voyage-launch>header>span{font:800 16px Georgia,serif;letter-spacing:1px;text-align:right;line-height:1.2}.voyage-launch>header b{font-size:10px;letter-spacing:2px}.voyage-launch-content{padding:18px 23px calc(20px + env(safe-area-inset-bottom,0px));text-shadow:0 2px 3px #000}.voyage-launch-kicker{font-size:9px;letter-spacing:2px;color:#f4cf80;display:block}.voyage-launch-arc{margin:12px 0 5px;font-size:12px;color:#e6e8db}.voyage-launch h1{font:800 clamp(25px,7vw,36px)/1.1 Georgia,serif;color:#fff0c0;margin:8px 0 15px;text-wrap:balance;text-shadow:0 3px 4px #00101d,0 0 16px #9e783433}.voyage-launch-details{display:flex;align-items:center;justify-content:center;gap:12px;color:#d2e9ec;font-size:10px}.voyage-launch-details>span{padding:7px 11px;background:#051d31a8;border:1px solid #d8bb7955;border-radius:5px;max-width:68%}.voyage-launch-details b{color:#ffe6a7}.voyage-launch-team{display:flex;justify-content:center;gap:6px;margin:17px 0}.voyage-launch-team img{width:39px;height:43px;object-fit:cover;border:1px solid #d8b976;border-radius:6px;box-shadow:0 3px 6px #0006}.voyage-launch-content>.adventure-button{min-height:51px;margin:12px 0 10px;background:linear-gradient(#ffedb3,#d9a94f 60%,#9b6b2c);border:2px solid #ffe6a6;box-shadow:inset 0 0 0 2px #bb8639,0 4px 12px #0006;color:#291e14;font-size:15px;letter-spacing:2px;font-weight:900;text-shadow:none}.voyage-launch-save{font-size:9px;color:#b9cdd8;letter-spacing:.3px}.voyage-launch-content:before{content:'';display:block;width:80px;height:1px;background:linear-gradient(90deg,transparent,#e1b96f,transparent);margin:0 auto 16px}@media(max-height:700px){.voyage-launch-content{padding:10px 17px 15px}}@media(max-height:700px){.voyage-launch h1{font-size:25px;margin:5px 0 10px}}@media(max-height:700px){.voyage-launch-team{margin:10px 0}}@media(max-height:700px){.voyage-launch-team img{width:33px;height:36px}}@media(max-height:700px){.voyage-launch-arc{margin:6px 0 3px}}@media(max-height:700px){.voyage-launch-content:before{margin-bottom:10px}}@media(max-height:700px){.voyage-launch-content>.adventure-button{min-height:44px;margin-top:7px}}.voyage-overview .voyage-event-fx .adventure-chest{left:35px;top:70px;width:55px;height:35px}.voyage-account{display:flex;align-items:center;gap:6px;color:#fff0c4;min-height:45px}.voyage-account>button{flex:none;width:34px;height:38px;border:1px solid #d6b66c;border-radius:7px;background:linear-gradient(#153d57,#04192b);color:#ffe0a0;font-size:20px}.voyage-account .account-face{width:35px;height:39px;object-fit:cover;border:1px solid #e8c47c;border-radius:6px}.voyage-account .account-name{min-width:0;flex:1}.account-name b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-name small{font-size:9px;color:#b9d6df}.voyage-account .sea-money{font-size:10px;white-space:nowrap;color:#fff6d8}.sea-money i{color:#edc865;font-style:normal}.sea-money.gems i{color:#65dcff}.cinema-progress .adventure-button{width:auto;min-height:38px;margin:15px auto 0;background:#062a43cf;border-color:#e2c37b;font-size:10px}.arrival-content>.adventure-button:first-of-type{background:linear-gradient(#ffe49c,#dca84a);color:#15202d;font-size:14px;min-height:46px}.arrival-content>.adventure-button:last-child{font-size:9px;min-height:32px;margin-bottom:0}.voyage-account .account-name b{font-size:9px}.voyage-account>button{border-color:#a9c09b99}.voyage-account{gap:8px}
/* Source: departure.css */
/* Departure composition: scenic top, illustrated story, six cards, two real actions. */
.departure-premium{display:block!important;text-align:left;animation:none!important}.departure-premium .departure-scenery{object-position:center top;z-index:-3}.departure-veil{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#001b3630,transparent 35%,#00172b22 65%,#001529aa)}.departure-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:7px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.departure-sky{position:relative;flex:1 0 135px;min-height:135px;max-height:210px;align-content:start}.departure-logo{display:flex;align-items:center;width:63%;min-height:70px;transform:rotate(-2deg);padding:4px 8px;color:#092b47;position:relative;background:linear-gradient(115deg,#b2813d,#f3d493 15%,#e5bc75 65%,#aa7836);border:1px solid #68451c;box-shadow:0 4px 0 #2e251b,0 7px 12px #001b42aa;border-radius:3px 7px 3px 9px}.departure-logo:before{content:'';position:absolute;inset:4px;border:1px dashed #855e2b88;pointer-events:none}.departure-logo svg{width:55px;height:60px;flex:none;z-index:1}.departure-logo>span{font:900 clamp(21px,5.8vw,33px)/.92 Georgia,serif;letter-spacing:-1.4px;text-shadow:0 1px #fff4c1;white-space:nowrap;position:relative}.departure-logo small{display:block;font:800 clamp(9px,2.6vw,15px)/1.4 Georgia,serif;letter-spacing:2px;color:#2b1f16;text-align:center;padding-top:4px}.departure-saga{margin-top:13px;width:max-content;max-width:70%;padding:5px 16px;color:#ffe9b3;border-block:1px solid #d5b66f;background:linear-gradient(90deg,#06233c00,#06233cfa 13%,#06233cf2 85%,#06233c00);font:700 14px Georgia;text-align:center;text-shadow:0 1px 3px #000}.departure-chapter-dots{display:flex;align-items:center;gap:0;margin:10px 20px 0;width:41%;height:12px}.departure-chapter-dots span{width:9px;height:9px;flex:none;border-radius:50%;border:1px solid #d2c69c;background:#10354c;box-shadow:inset 0 0 4px #000,0 1px 3px #000;position:relative}.departure-chapter-dots span+span{margin-left:25px}.departure-chapter-dots span+span:before{content:'';height:2px;width:25px;background:#a4bbca;position:absolute;right:8px;top:3px}.departure-chapter-dots .current{background:#ffe397;border-color:#fff3bb;box-shadow:0 0 8px #ffe7a2}.departure-chapter-dots .complete{background:#70d8c3}.departure-chapter-dots small{font-size:8px;color:#e7cf90;margin-left:5px}.departure-chapter{font-size:9px;color:#ffdf9a;letter-spacing:1.5px;margin:8px 0 0 19px;text-shadow:0 2px 3px #001124}.departure-chapter b{margin:0 5px}.departure-title{display:flex;align-items:center;flex:none;gap:6px;position:relative;min-height:55px;margin:0 -8px;background:linear-gradient(95deg,transparent,#001d49e8 18%,#002b50d9 80%,transparent);filter:drop-shadow(0 3px 3px #00193388)}.departure-title>div{min-width:0;flex:1;text-align:center}.departure-title h1{font:italic 800 clamp(27px,7.7vw,43px)/1.04 Georgia,serif;color:#e9faff;margin:4px 0;text-shadow:0 2px 0 #145382,0 4px 2px #00152e;text-wrap:balance;letter-spacing:-1px}.departure-title small{display:block;color:#d5e7f1;font-size:9px;letter-spacing:1px;padding-bottom:5px}.departure-title>button{flex:none;width:26px;height:44px;min-height:44px;border:0;background:none;color:#ffe4a0;font:700 47px/1 Georgia;padding:0;text-shadow:0 3px 4px #00162f}.departure-title>button:disabled{opacity:.3}.departure-story-frame{position:relative;flex:none;isolation:isolate;border:1px solid #ddbf7c;border-radius:12px;background:linear-gradient(120deg,#03162ff0,#0c2c42f5 57%,#0c2342a8);box-shadow:inset 0 0 0 3px #80643c55,0 4px 9px #00142b88;margin-top:3px;min-height:192px;overflow:hidden}.departure-story-frame:after{content:'';position:absolute;inset:5px;border:1px solid #ac8c4855;border-radius:8px;pointer-events:none;z-index:3}.departure-story-copy{position:relative;z-index:2;width:62%;padding:12px 9px 10px 15px;box-sizing:border-box;text-shadow:0 1px 3px #001322}.departure-story-copy .campaign-prologue{margin:0;padding:0;border:0;background:none;box-shadow:none}.departure-story-copy .campaign-prologue>small{font-size:7px;line-height:1.4;letter-spacing:1.3px;color:#e2c48c}.departure-story-copy .campaign-prologue>p{font:12px/1.5 Georgia,serif;margin:9px 0 10px;color:#edf1ed}.departure-story-copy .campaign-dialogue{min-height:58px;padding:6px;gap:8px;border:1px solid #c6a46866;background:#09243dd9;border-radius:7px;position:relative;width:104%;box-sizing:border-box}.departure-story-copy .campaign-dialogue>img{width:45px;height:58px;object-fit:cover;object-position:top;animation:none}.departure-story-copy .campaign-dialogue strong{font:700 12px Georgia;color:#ffe3a1}.departure-story-copy .campaign-dialogue p{font:italic 11px/1.4 Georgia;margin:4px 0 0}.departure-story-copy .campaign-objective{font-size:9px;line-height:1.4}.departure-hero{position:absolute;right:-14%;bottom:-7%;width:64%;height:112%;object-fit:contain;object-position:50% 100%;z-index:1;pointer-events:none;filter:drop-shadow(-6px 1px 8px #011427bb)}.departure-facts{display:flex;align-items:stretch;justify-content:space-between;gap:5px;min-height:30px;flex:none}.departure-facts>span,.departure-facts>button{background:#072138ed;border:1px solid #c7a465;border-radius:5px;color:#f4e5c4;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 7px;font-size:9px;line-height:1.1;min-height:32px;box-sizing:border-box;text-align:center}.departure-facts>span:nth-child(2){flex:1;min-width:0}.departure-facts>button{min-height:44px;flex:none;padding-inline:6px}.departure-facts>button b{color:#efd58e;font-size:8px}.departure-route{position:relative;display:flex;align-items:center;justify-content:space-between;height:47px;flex:none;margin:-2px 12px -3px}.departure-route>svg{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible}.departure-route path{stroke:#f7e5aa;stroke-width:2;stroke-dasharray:5 5;fill:none;filter:drop-shadow(0 2px 2px #001324)}.departure-route>img{width:16%;height:52px;object-fit:contain;filter:drop-shadow(0 2px 4px #001a36)}.departure-team-panel{flex:none;padding:9px 10px;border:1px solid #d7b772;border-radius:10px;background:linear-gradient(130deg,#041a2ef5,#09253ef5);box-shadow:inset 0 0 0 2px #80643c44,0 3px 6px #00132688}.departure-team-heading{display:flex;align-items:center;justify-content:space-between;color:#f3d89d;font-size:9px;letter-spacing:1.2px;padding:0 3px 7px}.departure-team-heading b{font-size:9px;letter-spacing:1px}.departure-team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.departure-team>button{height:58px;position:relative;padding:0;min-height:44px;border:1px solid #f5d58b;border-radius:7px;background:#0b2b43;box-shadow:inset 0 0 0 2px #c29a56;overflow:visible}.departure-team img{width:100%;height:100%;object-fit:cover;border-radius:6px}.departure-team small{position:absolute;right:-3px;bottom:-4px;min-width:20px;padding:3px 2px;border:1px solid var(--type);border-radius:4px;background:#07192e;color:var(--type);font-size:7px;font-weight:900;box-shadow:0 2px 2px #000}.departure-edit{display:flex;align-items:center;justify-content:center;gap:10px;min-height:43px;margin-top:12px;width:100%;border:1px solid #ead69b;box-shadow:inset 0 0 0 2px #285b79,0 2px 3px #0008;border-radius:6px;color:#fce9bd;background:linear-gradient(#0c4971,#072742);font-size:19px}.departure-edit>span{font-size:11px;font-weight:900;letter-spacing:1px}.departure-sail{position:relative;flex:none;min-height:58px;width:100%;border:2px solid #ffebb3;border-radius:9px;background:linear-gradient(110deg,#bc8127,#ffd765 20%,#edb636 75%,#c48b2e);box-shadow:inset 0 0 0 2px #b3812a,inset 0 0 0 5px #ffdf7b,0 3px 7px #00182b88;color:#201807;font-size:24px;font-weight:1000;letter-spacing:2px;text-shadow:0 1px #ffe7a0}.departure-sail>span{font-size:29px;margin-right:14px}.departure-sail>b{margin-left:12px}.departure-manual{flex:none;margin:3px 0 0;color:#dce7eb;text-align:center;font-size:8px;line-height:1.5;text-shadow:0 1px 3px #001326}.departure-premium button:not(:disabled):active{filter:brightness(1.13);transform:translateY(1px)}
body.view-adventure .voyage-account{background:linear-gradient(100deg,#092a3df5,#10354bd9);border-bottom:1px solid #bba06399;gap:6px}body.view-adventure .voyage-account .account-face{border-radius:50%;border:2px solid #e3c17c;box-shadow:0 0 0 2px #65523688;object-fit:cover}body.view-adventure .voyage-account .account-name{min-width:0}body.view-adventure .voyage-account .account-name b{font:700 10px Georgia;color:#f8e4b2}body.view-adventure .voyage-account .account-name small{font-size:8px}body.view-adventure .account-name progress{display:block;width:85%;height:4px;margin-top:3px;accent-color:#38cdf4}body.view-adventure .voyage-account .sea-money{padding:5px 6px;border:1px solid #b69a5e;border-radius:15px;background:#02172bd9;font-size:10px;white-space:nowrap}
@media(min-height:900px){.departure-sky{min-height:170px}.departure-story-copy .campaign-prologue>p{font-size:13px}.departure-team>button{height:66px}.departure-route{height:58px}.departure-route>img{height:63px}.departure-edit{min-height:47px}.departure-sail{min-height:62px}}
@media(max-height:740px){.departure-scroll{gap:5px;padding:7px 10px}.departure-sky{flex-basis:102px;min-height:102px}.departure-logo{min-height:51px;padding:3px 6px}.departure-logo svg{width:40px;height:43px}.departure-logo>span{font-size:25px}.departure-logo small{font-size:9px}.departure-saga{margin-top:8px;font-size:12px;padding-block:3px}.departure-chapter-dots{margin-top:5px}.departure-chapter{font-size:8px;margin-top:5px}.departure-title{min-height:47px}.departure-title h1{font-size:27px}.departure-story-copy{padding:10px 8px 9px 12px}.departure-story-copy .campaign-prologue>p{font-size:11px;line-height:1.4;margin:7px 0}.departure-story-copy .campaign-dialogue>img{height:44px;width:35px}.departure-story-copy .campaign-dialogue p{font-size:10px}.departure-story-frame{min-height:170px}.departure-team>button{height:49px}.departure-edit{min-height:42px;margin-top:9px}.departure-team-panel{padding:7px 8px}.departure-route{height:36px}.departure-route>img{height:43px}.departure-sail{min-height:50px;font-size:22px}.departure-facts>button{min-height:44px}}
@media(max-width:360px){.departure-scroll{padding-inline:9px}.departure-logo{width:68%}.departure-logo>span{font-size:25px}.departure-team{gap:4px}.departure-team>button{height:49px}.departure-story-copy{width:74%}.departure-facts>span,.departure-facts>button{font-size:8px;padding-inline:4px}.departure-edit>span{font-size:10px}.departure-title h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.departure-premium *{animation:none!important;transition:none!important}}

.departure-story-copy .campaign-dialogue>img{height:60px;width:51px;object-fit:cover;object-position:top}.departure-facts>span:nth-child(2){font-size:10px}.departure-premium .departure-team-panel{border-color:#e3c482}

body.view-adventure .voyage-account button.sea-money{min-height:32px;height:32px;width:auto;min-width:0;display:flex;align-items:center;gap:4px;border-radius:15px;font-size:10px;padding:4px 5px}body.view-adventure .sea-money>b{border-radius:50%;background:#ebc671;color:#102236;font-size:13px;width:15px;height:15px;line-height:15px;text-align:center}body.view-adventure .sea-money>i{font-style:normal}
/* Reserve a separate right-hand illustration lane: text never sits on a fist or costume. */
.departure-story-copy{width:59%}.departure-hero{right:-10%;bottom:0;width:48%;height:100%;object-fit:cover;object-position:left top}.departure-story-copy .campaign-dialogue{width:105%}
@media(max-height:850px){.departure-sky{flex-basis:105px;min-height:105px}.departure-logo{min-height:54px}.departure-logo svg{height:47px;width:43px}.departure-logo>span{font-size:26px}.departure-logo small{font-size:10px}.departure-saga{margin-top:8px;padding-block:4px;font-size:12px}.departure-chapter-dots{margin-top:6px}.departure-chapter{margin-top:6px}.departure-title{min-height:47px}.departure-title h1{font-size:29px}.departure-story-copy .campaign-prologue>p{font-size:12px;line-height:1.45}.departure-route{height:36px}.departure-route>img{height:43px}.departure-team>button{height:53px}.departure-edit{min-height:43px}.departure-sail{min-height:53px;font-size:23px}}
.departure-hero{right:0;bottom:0;width:40%;height:100%;object-fit:contain;object-position:center bottom}
@media(max-height:850px){.departure-scroll{gap:5px}.departure-sky{min-height:88px;flex-basis:88px}.departure-logo{min-height:44px;height:48px;box-sizing:border-box}.departure-logo svg{height:40px;width:37px}.departure-logo>span{font-size:24px}.departure-logo small{font-size:8px;padding-top:2px}.departure-saga{position:absolute;left:0;top:53px;margin:0;padding:2px 12px;font-size:12px}.departure-chapter-dots{position:absolute;left:15px;bottom:0;margin:0}.departure-chapter{position:absolute;left:122px;bottom:0;margin:0;font-size:8px;letter-spacing:.6px}.departure-team-panel{padding:7px 8px}.departure-team-heading{padding-bottom:5px;font-size:8px}.departure-team>button{height:44px;min-height:44px}.departure-edit{min-height:44px;margin-top:8px}.departure-route{margin-block:0}}
/* Static viewport composition. Only the optional reading dialog may scroll. */
.departure-premium{container-type:size;container-name:departure;overflow:hidden!important;animation:none!important}
.departure-premium .departure-scroll{display:grid;grid-template-rows:80px 48px minmax(0,1fr) 36px 34px 120px 50px 14px;gap:5px;padding:8px 12px;overflow:hidden!important;height:100%;min-height:0;box-sizing:border-box;overscroll-behavior:none}
.departure-premium .departure-sky{height:80px;min-height:0;max-height:none;position:relative}
.departure-premium .departure-logo{min-height:0;height:43px;width:65%;box-sizing:border-box;padding:2px 6px}
.departure-premium .departure-logo svg{height:36px;width:34px}
.departure-premium .departure-logo>span{font-size:24px}.departure-premium .departure-logo small{font-size:8px;padding-top:2px}
.departure-premium .departure-saga{position:absolute;top:48px;left:0;margin:0;padding:2px 10px;font-size:12px}
.departure-premium .departure-chapter-dots{position:absolute;left:12px;bottom:0;margin:0;height:10px}
.departure-premium .departure-chapter{position:absolute;left:122px;bottom:0;margin:0;font-size:8px;letter-spacing:.5px}
.departure-premium .departure-title{min-height:0;height:48px;margin-inline:-7px;overflow:hidden}.departure-premium .departure-title h1{font-size:27px;line-height:1.02;margin:2px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.departure-premium .departure-title small{font-size:9px;padding-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.departure-premium .departure-story-frame{min-height:0;height:100%;margin:0;overflow:hidden}
.departure-premium .departure-story-copy{height:100%;width:62%;padding:10px 8px 8px 12px;display:flex;flex-direction:column;min-height:0}
.departure-premium .campaign-prologue{min-height:0;flex:1;overflow:hidden;display:flex;flex-direction:column;gap:6px}
.departure-premium .campaign-prologue>small{font-size:7px;letter-spacing:.8px;flex:none}
.departure-premium .campaign-prologue>p{font-size:12px;line-height:1.4;margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;flex:0 1 auto;min-height:0}
.departure-premium .campaign-dialogue{width:100%;height:47px;min-height:47px;flex:none;padding:4px 5px;gap:6px}
.departure-premium .campaign-dialogue>img{height:39px;width:35px}.departure-premium .campaign-dialogue strong{font-size:11px}
.departure-premium .campaign-dialogue p{font-size:10px;line-height:1.3;margin-top:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.departure-premium .campaign-objective{display:none}
.departure-read-story{position:relative;flex:none;height:30px;min-height:30px;border:1px solid #c9ac6f77;border-radius:5px;background:#102e42;color:#f5d994;font-size:8px;font-weight:800;letter-spacing:.5px;text-align:left;padding:4px 7px;margin-top:6px}
.departure-premium .departure-hero{right:0;bottom:0;width:38%;height:100%;object-fit:contain;object-position:center bottom}
.departure-premium .departure-facts{height:36px;min-height:0;gap:4px}.departure-premium .departure-facts>span,.departure-premium .departure-facts>button{height:36px;min-height:36px;font-size:9px;padding:3px 5px;overflow:hidden}.departure-premium .departure-facts>span:nth-child(2){font-size:9px}
.departure-premium .departure-route{height:34px;margin:0 10px}.departure-premium .departure-route>img{height:38px}
.departure-premium .departure-team-panel{min-height:0;height:120px;padding:6px 8px;box-sizing:border-box;display:grid;grid-template-rows:13px 44px 42px;gap:4px}
.departure-premium .departure-team-heading{padding:0;font-size:8px}.departure-premium .departure-team{gap:5px}
.departure-premium .departure-team>button{height:44px;min-height:44px}.departure-premium .departure-team small{font-size:7px;bottom:-2px;padding:2px}
.departure-premium .departure-edit{height:42px;min-height:42px;margin:0;gap:6px}.departure-premium .departure-edit>span{font-size:10px;letter-spacing:.6px}
.departure-premium .departure-sail{height:50px;min-height:50px;font-size:23px}.departure-premium .departure-sail>span{font-size:24px}
.departure-premium .departure-manual{margin:0;font-size:8px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.departure-premium *{animation:none!important;scroll-behavior:auto!important}
@container departure (min-height:780px){.departure-premium .departure-scroll{grid-template-rows:130px 54px minmax(0,1fr) 40px 46px 138px 58px 16px;gap:7px;padding:10px 14px}.departure-premium .departure-sky{height:130px}.departure-premium .departure-logo{height:64px}.departure-premium .departure-logo svg{height:52px;width:47px}.departure-premium .departure-logo>span{font-size:30px}.departure-premium .departure-logo small{font-size:11px}.departure-premium .departure-saga{top:76px;font-size:15px}.departure-premium .departure-title{height:54px}.departure-premium .departure-title h1{font-size:34px}.departure-premium .campaign-prologue>p{-webkit-line-clamp:6;font-size:13px}.departure-premium .campaign-dialogue{height:58px;min-height:58px}.departure-premium .campaign-dialogue>img{height:50px;width:43px}.departure-premium .campaign-dialogue p{font-size:11px}.departure-premium .departure-team-panel{height:138px;grid-template-rows:15px 54px 45px;gap:5px;padding:6px 8px}.departure-premium .departure-team>button{height:54px}.departure-premium .departure-edit{height:45px}.departure-premium .departure-facts>span,.departure-premium .departure-facts>button{height:40px;min-height:40px}.departure-premium .departure-route,.departure-premium .departure-route>img{height:46px}.departure-premium .departure-sail{height:58px}}
@container departure (max-height:590px){.departure-premium .departure-scroll{grid-template-rows:64px 42px minmax(0,1fr) 32px 20px 112px 46px 12px;gap:4px;padding:6px 9px}.departure-premium .departure-sky{height:64px}.departure-premium .departure-logo{height:37px}.departure-premium .departure-logo svg{height:31px;width:29px}.departure-premium .departure-logo>span{font-size:21px}.departure-premium .departure-logo small{font-size:7px}.departure-premium .departure-saga{top:40px;font-size:10px;padding:1px 8px}.departure-premium .departure-chapter-dots span{width:7px;height:7px}.departure-premium .departure-title,.departure-premium .departure-title h1{height:auto;min-height:0;font-size:24px}.departure-premium .departure-story-copy{padding:7px 7px 6px 10px}.departure-premium .campaign-prologue{gap:4px}.departure-premium .campaign-prologue>p{-webkit-line-clamp:3;font-size:11px}.departure-premium .campaign-dialogue{height:39px;min-height:39px}.departure-premium .campaign-dialogue>img{height:31px;width:28px}.departure-premium .campaign-dialogue strong{font-size:10px}.departure-premium .campaign-dialogue p{font-size:9px;-webkit-line-clamp:1}.departure-premium .departure-read-story{height:27px;min-height:27px;font-size:7px;margin-top:4px}.departure-premium .departure-facts>span,.departure-premium .departure-facts>button{height:32px;min-height:32px;font-size:8px}.departure-premium .departure-route{height:20px}.departure-premium .departure-route>img{height:27px}.departure-premium .departure-team-panel{height:112px;grid-template-rows:12px 40px 40px;gap:4px;padding:5px 7px}.departure-premium .departure-team>button{height:40px;min-height:40px}.departure-premium .departure-edit{height:40px;min-height:40px}.departure-premium .departure-edit>span{font-size:9px}.departure-premium .departure-sail{height:46px;min-height:46px;font-size:21px}.departure-premium .departure-manual{font-size:7px;line-height:12px}}
@container departure (max-height:490px){.departure-premium .departure-scroll{grid-template-rows:52px 38px minmax(0,1fr) 30px 0px 106px 44px 12px;gap:3px;padding:5px 8px}.departure-premium .departure-sky{height:52px}.departure-premium .departure-logo{display:none}.departure-premium .departure-saga{top:1px}.departure-premium .departure-route{visibility:hidden;height:0}.departure-premium .campaign-dialogue{display:none}.departure-premium .campaign-prologue>p{-webkit-line-clamp:2}.departure-premium .departure-team-panel{height:106px;grid-template-rows:12px 38px 38px;gap:3px}.departure-premium .departure-team>button{height:38px;min-height:38px}.departure-premium .departure-edit{height:38px;min-height:38px}.departure-premium .departure-facts>span,.departure-premium .departure-facts>button{height:30px;min-height:30px}.departure-premium .departure-sail{height:44px;min-height:44px}}

/* Source: completion.css */
/* Standalone static result: the sea chart and its navigation dock are not rendered. */
.voyage-completion{position:absolute;inset:0;isolation:isolate;container-type:size;container-name:completion;overflow:hidden;background:linear-gradient(#021329d9,#041b30ec),var(--completion-scene) center/cover;color:#e6eced}
.completion-card{height:100%;min-height:0;display:grid;grid-template-rows:64px minmax(50px,1fr) 68px 74px 30px 94px 14px;gap:7px;padding:14px 16px calc(12px + env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 25%,#c79d4538,transparent 60%)}
.completion-card:before{content:'';position:absolute;inset:7px;border:1px solid #d7b46b;border-radius:15px;box-shadow:inset 0 0 0 3px #aa83442d;pointer-events:none}
.completion-heading{min-height:0;text-align:center;overflow:hidden}.completion-heading>small{font-size:8px;letter-spacing:1.7px;color:#c9b179}.completion-heading h1{font:800 27px/1.08 Georgia,serif;color:#ffe6a1;text-shadow:0 3px 4px #000;margin:5px 0;letter-spacing:.3px;white-space:nowrap}.completion-heading>p{font-size:10px;color:#bacdda;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.completion-portrait{position:relative;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.completion-laurel{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font:180px Georgia;color:#e6bc4720;transform:scaleX(1.3)}.completion-actor{position:relative;display:block;min-height:0;max-width:75%;height:calc(100% - 34px);max-height:225px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 10px #0009);animation:none!important}.completion-stars{position:relative;flex:none;height:34px;line-height:34px;font-size:30px;letter-spacing:7px;color:#536675;font-weight:400;text-align:center;padding-left:7px}.completion-stars>span{color:#ffd371;text-shadow:0 2px 1px #674417,0 0 12px #e3ac4138}
.completion-epilogue{min-height:0;padding:9px 12px;border:1px solid #bda3727a;border-radius:8px;background:#0b2638e6;overflow:hidden}.completion-epilogue>small{font-size:8px;letter-spacing:1.2px;color:#d7bc80}.completion-epilogue>p{font-size:12px;line-height:1.45;margin:5px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#deebf0}
.completion-rewards{min-height:0;display:flex;justify-content:center;gap:7px;padding:0 5px;overflow:hidden}.completion-rewards>article{min-width:0;flex:1;max-width:100px;border:1px solid #c4a569;border-radius:8px;background:linear-gradient(#183a4c,#0a2034);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;padding:4px}.completion-rewards article>span{font-size:20px;font-weight:900;line-height:22px;color:#ebcf87}.completion-rewards article>strong{font-size:14px;line-height:16px;color:#f4eee0}.completion-rewards article>small{font-size:8px;line-height:10px;text-align:center;color:#a9c0cc;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.completion-rewards>p{font-size:11px;color:#b3c8d5;text-align:center;align-self:center}
.completion-details{min-height:30px;height:30px;background:#102c40;border:1px solid #b49a6255;border-radius:5px;color:#dbca9c;font-size:8px;font-weight:800;letter-spacing:.5px;padding:4px}
.completion-actions{min-height:0;display:grid;grid-template-rows:48px 40px;gap:6px}.completion-actions>button{width:100%;margin:0;min-height:0;border-radius:7px;font-size:12px;font-weight:900;letter-spacing:1px;padding:6px}.completion-next{border:2px solid #ffe5a1;color:#291e0b;background:linear-gradient(#ffe19b,#d2a046);box-shadow:inset 0 0 0 2px #b17c32,0 3px 7px #0005}.completion-back{border:1px solid #8da2ae66;background:#0a243a;color:#bdd0db;font-size:9px!important}.completion-actions>button:active,.completion-details:active{filter:brightness(1.1)}
.completion-manual{margin:0;text-align:center;color:#9eb6c5;font-size:8px;line-height:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.voyage-completion *{animation:none!important;transition:none!important}
@container completion (max-height:590px){.completion-card{grid-template-rows:48px minmax(45px,1fr) 53px 58px 27px 84px 12px;gap:5px;padding:10px 13px}.completion-heading h1{font-size:23px;margin:4px 0}.completion-heading>small{font-size:7px}.completion-heading>p{font-size:9px}.completion-stars{font-size:25px;height:29px;line-height:29px}.completion-actor{height:calc(100% - 29px)}.completion-epilogue{padding:6px 9px}.completion-epilogue>small{font-size:7px}.completion-epilogue>p{font-size:11px;line-height:1.35;margin-top:3px}.completion-rewards{gap:5px}.completion-rewards article>span{font-size:17px;line-height:17px}.completion-rewards article>strong{font-size:12px;line-height:13px}.completion-rewards article>small{font-size:7px;line-height:9px}.completion-rewards>article{gap:2px}.completion-details{height:27px;min-height:27px;font-size:7px}.completion-actions{grid-template-rows:44px 36px;gap:4px}.completion-actions>button{font-size:11px}.completion-manual{font-size:7px;line-height:12px}}
@container completion (max-height:470px){.completion-card{grid-template-rows:42px minmax(40px,1fr) 42px 50px 25px 78px 10px;gap:4px;padding:8px 11px}.completion-heading h1{font-size:21px}.completion-heading>p{display:none}.completion-epilogue>p{-webkit-line-clamp:1}.completion-details{height:25px;min-height:25px}.completion-actions{grid-template-rows:42px 32px}.completion-manual{font-size:6px;line-height:10px}.completion-stars{font-size:23px}.completion-rewards article>span{font-size:15px;line-height:15px}}
.completion-card{padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
/* Explicit text rows prevent inherited header line-height from clipping the phase name. */
.completion-heading{display:grid;grid-template-rows:12px 30px 14px;gap:2px;align-content:start}.completion-heading>small{line-height:12px}.completion-heading h1{margin:0;line-height:30px}.completion-heading>p{margin:0;line-height:14px}
@container completion (max-height:590px){.completion-heading{grid-template-rows:10px 25px 11px;gap:1px}.completion-heading>small{line-height:10px}.completion-heading h1{margin:0;line-height:25px}.completion-heading>p{line-height:11px}}
@container completion (max-height:470px){.completion-heading{grid-template-rows:9px 24px;gap:2px}.completion-heading>small{line-height:9px}.completion-heading h1{line-height:24px}}

/* Source: test-guest.css */
.entry-actions .entry-test-guest{border-color:#e6cb8a;background:linear-gradient(120deg,#123b56,#142739);padding:8px 10px;min-height:52px}.entry-test-guest span{display:block;font-weight:800;color:#fff0bc}.entry-test-guest small{display:block;font-size:10px;letter-spacing:.2px;color:#b9d8e6;margin-top:3px}@media(max-height:740px){.entry-screen{padding:18px 22px max(12px,env(safe-area-inset-bottom))}.entry-actions{gap:6px;padding-top:12px}.entry-actions button{min-height:40px}.entry-actions .entry-test-guest{min-height:48px}.entry-footer{margin-top:10px}.entry-logo h1{font-size:32px}.entry-logo h1 strong{font-size:18px}}

/* Source: legends-ui.css */
/* Lendas do Mar 4.0 — collection-only scene; no gameplay selectors. */
.view-collection #game{background:#03132d;isolation:isolate}
.view-collection #game:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,transparent 290px,#02122b99 580px,#020d20 1100px),url('assets/legends-moon-v4.webp') center top / 100% auto no-repeat;pointer-events:none}
.view-collection #world,.view-collection #vignette{display:none}
.view-collection #top{padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 0;background:linear-gradient(#020b1ad9,transparent);min-height:100px}
.legends-account{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:9px;align-items:start}
.legends-profile{display:flex;gap:6px;align-items:center;text-align:left;padding:0;background:transparent;min-width:0}
.legends-profile img{width:clamp(45px,12vw,60px);height:clamp(45px,12vw,60px);border:2px solid #e1bd70;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #082345,0 4px 15px #0009}
.legends-profile>span{min-width:0;flex:1}.legends-profile b{display:block;font:800 clamp(9px,2.5vw,12px)/1.3 system-ui;color:#ffedbd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legends-profile small{display:block;font:9px/1.6 system-ui;color:#e2e9f0;white-space:nowrap}.legends-profile progress{display:block;width:100%;height:7px;border:1px solid #000;border-radius:8px;overflow:hidden;background:#020c19;margin-top:3px;appearance:none}.legends-profile progress::-webkit-progress-bar{background:#020c19}.legends-profile progress::-webkit-progress-value{background:linear-gradient(#9ff6ff,#059bd7);border-radius:6px}.legends-profile progress::-moz-progress-bar{background:#40d5ff}
.legends-wallet{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding-top:6px}.legends-wallet button{display:flex;align-items:center;gap:4px;min-height:30px;min-width:0;border:1px solid #b99250;border-radius:12px;background:linear-gradient(#102744,#020c19);box-shadow:inset 0 1px #fff4,0 2px 6px #000b;padding:3px;font-size:10px}.legends-wallet b{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legends-wallet i{font-style:normal;font-size:17px}.legends-wallet em{display:grid;place-items:center;font:900 14px system-ui;background:linear-gradient(#fff1be,#cb9442);color:#10243c;border-radius:50%;width:18px;height:18px;flex:none}
.legends-tools{display:flex;justify-content:flex-end;gap:8px;margin:4px 1px 0;height:38px}.legends-tools button{width:36px;height:36px;border:1px solid #bfa26b;border-radius:7px;background:linear-gradient(145deg,#203a53ed,#030d1df5);color:#f6d68e;box-shadow:inset 0 1px #fff4,0 3px 8px #000b;display:grid;place-items:center}.legends-tools svg{width:23px;height:23px}
.view-collection #main{padding:0 12px calc(108px + env(safe-area-inset-bottom,0px));min-height:100dvh}.legends-hero{position:relative;min-height:265px;padding-top:1px;display:flex;flex-direction:column;justify-content:flex-end;animation:legends-arrive .4s ease-out both}
.legends-brand{position:absolute;left:7px;top:-30px;text-align:center;text-shadow:0 3px 0 #020f26,0 0 9px #007cce;transform:rotate(-4deg);pointer-events:none}.legends-brand>span{font:900 clamp(24px,7.5vw,36px)/.95 Georgia,serif;color:#a6e8ff;-webkit-text-stroke:.4px #02244a;letter-spacing:-1.5px}.legends-brand small{display:block;font:900 11px Georgia;letter-spacing:2px;color:#f7d27c;margin-top:5px}
.legends-hero h1{position:relative;align-self:flex-start;margin:0 0 22px 7px;font:bold italic clamp(42px,13.5vw,65px)/.87 Georgia,serif;letter-spacing:-2.5px;color:#fff;transform:rotate(-7deg);text-shadow:0 0 8px #278ce5,3px 4px 0 #06245f;z-index:1}.legends-hero h1 span{padding-left:42px}.legends-hero h1:after{content:'';position:absolute;left:-7px;bottom:-10px;width:108%;height:9px;background:linear-gradient(90deg,transparent,#e41431 12%,#fa283a 72%,transparent);clip-path:polygon(0 65%,100% 0,91% 37%,99% 47%,3% 100%,15% 64%);z-index:-1}
.legends-intro{margin:0 -12px;padding:10px 23px 12px;background:linear-gradient(transparent,#02112ce8);font:12px/1.55 system-ui;text-shadow:0 2px 5px #000}.legends-intro p{color:#e5f1ff}
.view-collection .filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 0 10px}.view-collection .filters select,.view-collection .filters button{min-width:0;min-height:38px;width:100%;padding:7px 5px;border:1px solid #c4a365;border-radius:6px;background:linear-gradient(145deg,#17324de8,#030c1bf5);box-shadow:inset 0 1px #ffffff30,0 3px 6px #0009;color:#f7ecd5;font:600 10px/1.2 system-ui;transition:border-color .15s,background .15s}.view-collection .filters select{padding-right:0}.view-collection .filters button{grid-column:span 2;font-size:12px;min-height:39px}.view-collection .filters .selected{background:linear-gradient(135deg,#662029,#1f1224);border-color:#ffcb84;box-shadow:inset 0 0 10px #e2153866,0 0 7px #e2153844}.view-collection .filters [data-action="favfilter"]:before{content:'★';color:#f5cf67;margin-right:8px;font-size:17px}.view-collection .filters [data-action="favfilter"]{font-size:0}.view-collection .filters [data-action="favfilter"]:after{content:'Favoritas';font-size:12px}
.view-collection .family-collection-filters{margin:0 0 10px;padding:0;border:1px solid #c2a16a;border-radius:7px;background:linear-gradient(105deg,#0e2139ee,#2d2c27de,#051224f5);box-shadow:inset 0 0 0 2px #07182c,0 4px 10px #0009;overflow:hidden}.view-collection .family-collection-filters>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;min-height:47px;padding:7px 9px}.view-collection .family-collection-filters>summary::-webkit-details-marker{display:none}.legends-family-icon{color:#f5d48c;display:grid;place-items:center}.legends-family-icon svg{width:30px;height:30px}.view-collection .family-collection-filters>summary b{font:800 11px/1.2 system-ui;color:#ffebbb;flex:1}.view-collection .family-collection-filters>summary small{font:9px/1.2 system-ui;color:#dbcfb0;white-space:nowrap}.legends-family-chevron{font:36px/.8 Georgia;color:#f1ca78;transition:transform .2s}.family-collection-filters[open] .legends-family-chevron{transform:rotate(90deg)}.view-collection .family-filter-fields,.view-collection .family-filter-chips{padding:8px}.view-collection .family-filter-fields{animation:legends-arrive .2s ease-out}.view-collection .family-filter-fields input,.view-collection .family-filter-fields select{min-height:40px;font-size:12px}.legends-result-count{font:10px system-ui;color:#a6c2dc;margin:10px 1px 9px}
.legends-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 9px;align-items:stretch}.legend-card{--frame:#a8b8c8;position:relative;isolation:isolate;min-width:0;aspect-ratio:.65;border:1px solid var(--frame);border-radius:7px;overflow:hidden;padding:0;background:#051428;text-align:left;box-shadow:inset 0 0 0 2px #08172b,0 0 5px color-mix(in srgb,var(--type) 65%,transparent),0 4px 9px #0008;content-visibility:auto;contain-intrinsic-size:auto 150px;transition:filter .15s,transform .15s}.legend-card:after{content:'';position:absolute;inset:2px;border:1px solid color-mix(in srgb,var(--type) 45%,transparent);border-radius:5px;pointer-events:none}.legend-card[data-rarity="SR"]{--frame:#b7cfe0}.legend-card[data-rarity="SSR"]{--frame:#e9bf5d}.legend-card[data-rarity="UR"],.legend-card[data-rarity="TUR"]{--frame:#ffe6a2;box-shadow:0 0 6px var(--type),inset 0 0 0 2px #b77e28,0 4px 12px #000}.legend-card[data-rarity="LR"]{--frame:#ffe9af;background:linear-gradient(135deg,#a36df5,#163045,#9d682c);box-shadow:0 0 8px color-mix(in srgb,var(--type) 70%,transparent),inset 0 0 0 2px #cda050,0 5px 12px #000}.legend-card:active{filter:brightness(1.35);transform:scale(.96)}.legend-card:focus-visible{outline:2px solid #ffedab;outline-offset:3px}.legend-card.is-unowned{filter:saturate(.4);opacity:.7}
.legend-portrait{position:absolute;left:2px;top:2px;width:calc(100% - 4px);height:77%;object-fit:cover;object-position:50% 30%;border-radius:5px;z-index:-1}.legend-card:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 26%,#03132633 48%,#031022f5 77%,#020c1c);pointer-events:none}.legend-type{position:absolute;left:3px;top:3px;z-index:2;font-size:8px;padding:3px;min-width:23px;background:color-mix(in srgb,var(--type) 60%,#031020);color:white;border-color:#ffffffaa;box-shadow:0 1px 4px #000}.legend-rarity{position:absolute;top:1px;right:4px;color:#fff0bf;font:900 italic clamp(16px,4.8vw,23px)/1.1 Georgia;text-shadow:1px 2px 0 #7d1326,-1px -1px 0 #7d1326,0 0 4px #000;z-index:2}.legend-card[data-rarity="LR"] .legend-rarity{color:#ffe09a;text-shadow:1px 2px #7c4810,0 0 5px #f58b35}.legend-edition{position:absolute;top:27px;right:3px;left:3px;text-align:center;font:800 6px system-ui;letter-spacing:.5px;color:#ffe09d;background:#35234adb;padding:2px;border-block:1px solid #d4b365;z-index:2}.legend-markers{position:absolute;left:4px;right:3px;bottom:46px;display:flex;justify-content:space-between;align-items:center}.legend-favorite{font:20px/1 Georgia;color:#fff1c5;text-shadow:0 1px 3px #000}.legend-favorite.is-favorite{color:#ffd665}.legend-role{max-width:70%;overflow:hidden}.legend-role .card-family-strip{gap:1px}.legend-role .family-emblem{width:13px;height:17px}.legend-role .card-family-strip small{font-size:6px}.legend-caption{position:absolute;bottom:5px;left:5px;right:5px;display:flex;flex-direction:column;gap:2px}.legend-caption strong{font:800 10px/1.15 system-ui;color:white;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.15px}.legend-caption>small{font:9px/1.2 system-ui;color:#d5e8fa}.legend-xp{display:block;height:4px;background:#030a18;border:1px solid #244568;border-radius:3px;overflow:hidden}.legend-xp i{display:block;height:100%;background:linear-gradient(90deg,#008cf8,#80efff);box-shadow:0 0 5px #36ccff}.legend-power{font:6px/1 system-ui;color:#acc9df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#nav.legends-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:6px 8px calc(7px + env(safe-area-inset-bottom,0px));border:1px solid #b39b6899;border-radius:12px 12px 0 0;background:linear-gradient(#102b45f5,#020b1cfb);box-shadow:0 -5px 20px #010816;backdrop-filter:none;min-height:72px}#nav.legends-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:54px;min-width:0;padding:4px 0;border:1px solid transparent;border-radius:8px;color:#b9cce1;background:none;font:9px/1.1 system-ui}#nav.legends-nav button svg{width:26px;height:26px;filter:drop-shadow(0 2px 2px #000)}#nav.legends-nav button.active{border-color:#e8c17b;color:#ffe4a1;background:radial-gradient(ellipse at 50% 100%,#94551766,#3e2b1988 60%,#151626);box-shadow:inset 0 0 9px #d99b3e55,0 0 6px #d99b3e44}#nav.legends-nav button.active:before{display:none}
@keyframes legends-arrive{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:440px){.legends-hero{min-height:310px}.legend-caption strong{font-size:11px}.legend-markers{bottom:49px}.legend-role .family-emblem{width:16px;height:19px}.legend-caption>small{font-size:10px}.legend-power{font-size:8px}#nav.legends-nav button{font-size:10px}}
@media(max-width:350px){.legends-account{grid-template-columns:1fr}.legends-wallet{position:absolute;right:12px;top:65px;width:150px}.legends-tools{justify-content:flex-start;margin-top:10px}.legends-hero{min-height:250px}.legends-grid{gap:8px 6px}.legend-caption strong{font-size:9px}.legend-caption>small{font-size:8px}.legend-power{font-size:6px}.legend-role .family-emblem{width:11px}.view-collection .family-collection-filters>summary b{font-size:10px}.legends-brand{top:0}}
@media(prefers-reduced-motion:reduce){.legends-hero,.view-collection .family-filter-fields{animation:none}.legend-card,.legends-family-chevron,.view-collection .filters>*{transition:none}}
@media(prefers-reduced-motion:no-preference){.legend-card:nth-child(-n+8){animation:legends-arrive .3s ease-out both}.legend-card:nth-child(2n){animation-delay:.03s}.legend-card:nth-child(3n){animation-delay:.06s}}
.view-collection #main{background:transparent}
.view-collection #game:before{background-position:center top,center clamp(-95px,-16vw,-55px)}

/* Source: events-moonlight.css */
/* Moonlight 5.0: scoped Events composition; existing mode rules are untouched. */
:is(.view-events,.view-localevents) #game{background:#020e22;isolation:isolate}
:is(.view-events,.view-localevents) #game:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#020b1a10,transparent 180px,#020b2077 480px,#020c20ed 980px),url('assets/events-moonlight/harbour.webp') center top/100% auto no-repeat}
:is(.view-events,.view-localevents) #world,:is(.view-events,.view-localevents) #vignette{display:none}
:is(.view-events,.view-localevents) #top{padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 0;background:linear-gradient(#020a17e8,#03132b44,transparent);position:relative;z-index:2}
:is(.view-events,.view-localevents) .legends-account{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
:is(.view-events,.view-localevents) .legends-profile{padding:3px 5px 3px 0;border:1px solid #c3a45c77;border-radius:36px 8px 14px 36px;background:linear-gradient(110deg,#0b3155bb,#031023cc);box-shadow:inset 0 1px #d8f6ff22,0 3px 8px #0008}
:is(.view-events,.view-localevents) .legends-profile img{width:47px;height:47px;flex:none;box-shadow:0 0 0 2px #051b32,0 0 10px #d8ac6444}
:is(.view-events,.view-localevents) .legends-profile b{font-size:10px;letter-spacing:.1px}
:is(.view-events,.view-localevents) .legends-profile small{font-size:8px;line-height:1.9}
:is(.view-events,.view-localevents) .legends-wallet{padding-top:5px}
:is(.view-events,.view-localevents) .legends-wallet button{min-height:35px;border-color:#d2ad65;border-radius:12px;font-size:11px}
:is(.view-events,.view-localevents) .legends-tools{margin:5px 1px 0;gap:9px;height:42px}
:is(.view-events,.view-localevents) .legends-tools button{width:40px;height:40px;background:linear-gradient(140deg,#173a56f0,#020915);border-color:#d2ae6a;box-shadow:inset 0 1px 3px #fff3,0 3px 9px #000a}
:is(.view-events,.view-localevents) #main{background:transparent;padding:0 12px calc(105px + env(safe-area-inset-bottom,0px));min-height:100dvh}
.moon-events-hero{height:145px;position:relative;display:flex;align-items:flex-end;padding:0 0 16px;isolation:isolate}
.moon-title-plaque{position:relative;width:max-content;max-width:88%;padding:9px 15px 8px 10px;transform:rotate(-5deg);border-block:1px solid #809bacaa;background:repeating-linear-gradient(0deg,#081a2ae8 0 6px,#10293cee 7px 10px,#061625eb 11px 12px);box-shadow:0 4px 8px #000a,inset 0 0 0 3px #041120aa;clip-path:polygon(3% 0,100% 5%,97% 17%,100% 36%,97% 57%,100% 82%,96% 100%,0 95%,3% 77%,0 55%,3% 36%,0 17%)}
.moon-title-plaque:before{content:'';position:absolute;left:6%;right:3%;top:58%;height:3px;background:linear-gradient(90deg,transparent,#e53143,transparent);transform:rotate(-3deg)}
.moon-title-plaque h1{position:relative;font:900 italic clamp(42px,13.5vw,65px)/.95 Georgia,serif;letter-spacing:-2.5px;color:#f0fcff;text-shadow:-1px 0 #b3f2ff,2px 3px #063263,0 0 12px #209ae9;transform:skewX(-7deg);margin:0;padding:1px 5px 7px}
.moon-title-plaque p{position:relative;font:750 clamp(7px,2vw,10px)/1.4 system-ui;letter-spacing:.5px;color:#eff4e8;border-top:1px solid #e3c27d66;padding:4px 3px 0;text-shadow:0 1px 3px black}
.moon-glimmer{position:absolute;right:12%;top:2%;width:24%;height:35%;border-radius:50%;background:radial-gradient(ellipse,#d9faff44,transparent 68%);pointer-events:none;z-index:-1;animation:moon-breathe 9s ease-in-out infinite}
.moon-lantern{position:absolute;right:3%;bottom:40%;color:#ffe3a0;font-size:16px;text-shadow:0 0 8px #ffc260,0 0 20px #e47d20;transform-origin:50% -20px;animation:moon-lantern-sway 7s ease-in-out infinite;pointer-events:none}
.moon-main-cards,.moon-extra-cards{display:grid;gap:12px}
.moon-event-card{--edge:#b9cbd1;--warm:#d6b16f;position:relative;isolation:isolate;overflow:hidden;min-height:178px;border:1px solid var(--edge);border-radius:10px 5px 12px 6px;background:#041328;box-shadow:inset 0 0 0 3px #08192c,inset 0 0 0 4px #b49a5d66,0 5px 12px #000a;cursor:pointer}
.moon-event-card:after{content:'';position:absolute;inset:4px;border:1px solid color-mix(in srgb,var(--edge) 48%,transparent);border-radius:5px;pointer-events:none;z-index:1}
.moon-card-art{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:66% 50%;opacity:.96}
.moon-card-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#03162cf5 0%,#041d34df 40%,#04172a55 73%,#01091611),linear-gradient(0deg,#020b1b7a,transparent 45%)}
.moon-card-copy{position:relative;padding:12px 14px 11px;display:flex;flex-direction:column;align-items:flex-start;z-index:2;min-height:inherit}
.moon-eyebrow{font:650 clamp(8px,2.2vw,11px)/1.35 system-ui;letter-spacing:.3px;color:#ffedc0;text-shadow:0 1px 3px #000;max-width:100%}
.moon-card-copy h2{font:800 clamp(25px,7.5vw,36px)/1.1 Georgia,serif;letter-spacing:-.7px;color:#f0faff;text-shadow:0 2px 5px #000,0 0 7px #3bbdff55;margin:4px 0 6px}
.moon-card-copy>p{font:12px/1.4 system-ui;color:#f4f6f7;max-width:74%;margin:0 0 9px;text-shadow:0 1px 3px #000}
.moon-event-action{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-height:42px;width:min(88%,315px);margin-top:auto;padding:8px 11px;border:1px solid #d6eaf2;border-radius:8px 5px 9px 5px;color:#fff0bd;background:linear-gradient(#15668c,#053553 48%,#021d35 53%,#084b72);box-shadow:inset 0 0 0 2px #76cafa44,inset 0 2px #e8f9ff55,0 0 7px #27c7ff66,0 3px 6px #000a;font:800 10px/1.25 system-ui;text-align:left;text-shadow:0 1px 2px #000;transition:filter .15s,transform .15s,box-shadow .15s}
.moon-event-action svg{width:22px;height:22px;color:#d9effb;flex:none;filter:drop-shadow(0 0 3px #5ccaff88)}
.moon-event-action>span{flex:1}.moon-event-action>b{font:24px/1 Georgia;font-weight:400;color:#ffe5aa}
.moon-event-action:active{transform:scale(.97);filter:brightness(1.22)}.moon-event-action:focus-visible{outline:2px solid #fff0b5;outline-offset:4px}
.moon-corner{position:absolute;color:#d3b779;width:25px;height:25px;z-index:3;pointer-events:none;filter:drop-shadow(0 1px 1px #000)}
.moon-corner.tl{left:0;top:0}.moon-corner.tr{right:0;top:0;transform:rotate(90deg)}.moon-corner.bl{left:0;bottom:0;transform:rotate(-90deg)}.moon-corner.br{right:0;bottom:0;transform:rotate(180deg)}
.moon-bosses{--edge:#bfa27c;background:#180b19}.moon-bosses .moon-card-shade{background:linear-gradient(90deg,#100b19f5,#220a14e8 42%,#21081844 78%,#16081544)}
.moon-bosses .moon-card-copy h2{font-size:clamp(23px,6.2vw,31px);color:#ffdf88;text-shadow:0 2px #4a100f,0 0 10px #d83219;margin-bottom:6px}
.moon-bosses .moon-event-action{border-color:#ffd69b;background:linear-gradient(#691a1f,#3d080e 48%,#220409 52%,#570e17);box-shadow:inset 0 0 0 2px #d6973d55,inset 0 2px #ffe9ae55,0 0 8px #db381a88,0 3px 7px #000b}
.moon-bosses .moon-event-action svg{color:#f9dfa3;filter:none}.moon-event-status{font:7px/1.4 system-ui;color:#f6d2a1;letter-spacing:.4px;margin:0 0 7px;max-width:80%}
.moon-tropical{--edge:#b0d5dc;min-height:155px;background:#70c2e4}.moon-tropical .moon-card-shade{background:linear-gradient(90deg,#c7eaffed,#c8e8ece8 30%,#c8e5e4aa 56%,transparent 87%)}
.moon-tropical .moon-card-art{object-position:center 55%}.moon-tropical .moon-card-copy h2{color:#08264b;text-shadow:0 1px 2px #ffffff88;font-size:clamp(24px,6.8vw,32px)}
.moon-tropical .moon-card-copy>p{color:#061c34;text-shadow:none;max-width:74%;font-weight:550;font-size:11px;line-height:1.4}.moon-tropical .moon-eyebrow{color:#173a54;text-shadow:none;font-size:8px}.moon-card-meta{font:650 7px/1.4 system-ui;letter-spacing:.3px;color:#153c55;margin:-3px 0 8px}
.moon-tropical .moon-event-action{width:min(82%,290px)}.moon-tropical .moon-event-status{color:#153c55}
.moon-section-title{display:flex;align-items:center;gap:12px;margin:25px 5px 15px;color:#efd398}.moon-section-title span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#a18b58)}.moon-section-title span:last-child{transform:rotate(180deg)}.moon-section-title h2{font:italic 23px Georgia;white-space:nowrap;text-shadow:0 2px #000}
.moon-extra-cards .moon-event-card{min-height:180px}.moon-impel .moon-card-shade{background:linear-gradient(90deg,#061323fa,#0e1723e8 43%,#0b19284a 85%)}.moon-impel .moon-card-copy h2{color:#ffe3a5;font-size:28px}.moon-expedition .moon-card-copy h2{font-size:27px;max-width:90%}.moon-extra-cards .moon-card-copy>p{max-width:90%;font-size:11px}.moon-extra-cards .moon-event-status{color:#d9d7ba;font-size:9px}
.moon-save-note{font:9px/1.5 system-ui;color:#a1b8cd;text-align:center;padding:16px 6px 0}.moon-back-home{min-height:44px;width:100%;padding:10px;margin:10px 0 0;border:1px solid #bda46966;border-radius:6px;background:#07182dd9;color:#ead299;font:700 10px system-ui;letter-spacing:.7px}
#nav.events-nav{position:fixed;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;left:50%;transform:translateX(-50%);bottom:0;width:min(500px,100vw);min-height:74px;padding:6px 9px calc(7px + env(safe-area-inset-bottom,0px));border:1px solid #bda16e88;border-radius:11px 11px 0 0;background:linear-gradient(#102f47f7,#020b1bf9);backdrop-filter:none;box-shadow:0 -4px 15px #0008;z-index:7}
#nav.events-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:58px;min-width:0;background:transparent;color:#a8c5da;border:1px solid transparent;border-radius:8px;padding:4px 1px;font:9px/1.15 system-ui;position:relative}
#nav.events-nav button svg{width:25px;height:25px;filter:drop-shadow(0 2px 2px #000)}#nav.events-nav button.active{color:#ffe9a6;border-color:#ffe0a0;background:radial-gradient(ellipse at 50% 100%,#8f611e99,#35250f99 65%,#061224);box-shadow:inset 0 0 9px #d59c3977,0 0 8px #dfa53877}#nav.events-nav button.active svg{color:#ffd67f;filter:drop-shadow(0 0 5px #ffae2f)}#nav.events-nav button.active:before{display:none}
.moon-local-heading{display:flex;align-items:center;gap:10px;min-height:100px;margin:0 -2px}.moon-local-heading>button{width:40px;height:44px;background:#071b2fe0;border:1px solid #b8a16e;border-radius:7px;color:#f3d49b;font:30px Georgia}.moon-local-heading small{font:8px system-ui;letter-spacing:1.5px;color:#d4bd89}.moon-local-heading h1{font:italic 33px/1.05 Georgia;letter-spacing:-1px;margin:6px 0;color:#e9f6ff;text-shadow:0 2px #051b32}.moon-local-intro{font:12px/1.5 system-ui;color:#b7cfdf;margin:0 3px 17px}.moon-local-events .moon-card-copy>p{max-width:90%}
@keyframes moon-card-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes moon-breathe{0%,100%{opacity:.25;transform:scale(.98)}50%{opacity:.7;transform:scale(1.03)}}
@keyframes moon-lantern-sway{0%,100%{transform:rotate(-2deg);opacity:.75}50%{transform:rotate(2deg);opacity:1}}
@media(prefers-reduced-motion:no-preference){.moon-main-cards>.moon-event-card{animation:moon-card-in .35s ease-out both}.moon-main-cards>.moon-event-card:nth-child(2){animation-delay:.04s}.moon-main-cards>.moon-event-card:nth-child(3){animation-delay:.08s}}
@media(min-width:440px){.moon-events-hero{height:170px}.moon-event-card{min-height:205px}.moon-card-copy{padding:15px 19px}.moon-card-copy>p{font-size:13px;max-width:73%;margin-bottom:12px}.moon-eyebrow{font-size:11px}.moon-event-action{font-size:12px;min-height:45px}.moon-event-status{font-size:8px}.moon-tropical{min-height:175px}.moon-tropical .moon-card-copy>p{font-size:12px}.moon-corner{width:28px;height:28px}.moon-main-cards,.moon-extra-cards{gap:15px}.moon-extra-cards .moon-card-copy>p{font-size:12px}#nav.events-nav button{font-size:10px}}
@media(max-width:350px){:is(.view-events,.view-localevents) .legends-profile img{width:39px;height:39px}:is(.view-events,.view-localevents) .legends-profile b{font-size:8px}:is(.view-events,.view-localevents) .legends-profile small{font-size:7px}:is(.view-events,.view-localevents) .legends-wallet button{font-size:9px;gap:2px}:is(.view-events,.view-localevents) .legends-wallet i{font-size:14px}:is(.view-events,.view-localevents) .legends-wallet em{width:15px;height:15px;font-size:12px}.moon-card-copy>p{max-width:85%;font-size:11px}.moon-event-action{width:94%;font-size:9px}.moon-bosses .moon-card-copy h2{font-size:22px}.moon-event-status{max-width:95%;font-size:7px}#nav.events-nav{gap:1px;padding-inline:5px}#nav.events-nav button{font-size:8px}}
@media(prefers-reduced-motion:reduce){.moonlight-events *{animation:none!important;transition:none!important}}
.moon-events-hero:after{content:'';position:absolute;right:-12px;bottom:0;width:38%;height:100%;z-index:-1;background:url('assets/events-moonlight/harbour.webp') right 74%/230px auto no-repeat;mask-image:linear-gradient(90deg,transparent,#000 40%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);pointer-events:none}
:is(.view-events,.view-localevents) .legends-profile b{font-size:11px}:is(.view-events,.view-localevents) .legends-profile small{font-size:9px}.moon-event-status{font-size:9px}.moon-card-meta{font-size:8px}.moon-event-action{min-height:44px;font-size:11px}
@media(max-width:350px){:is(.view-events,.view-localevents) .legends-profile b{font-size:9px}:is(.view-events,.view-localevents) .legends-profile small{font-size:7px}.moon-event-action{font-size:10px}}

/* Source: accounts.css */
.account-screen{box-sizing:border-box;min-height:100%;width:100%;color:#f5edd6;padding:clamp(12px,4vw,24px);padding-bottom:max(16px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 85% 0%,#1a5877 0%,transparent 60%),linear-gradient(150deg,#0d2940,#04111f);display:flex;flex-direction:column;justify-content:center;gap:18px;font-family:system-ui,sans-serif}.account-brand{display:flex;align-items:center;justify-content:center;gap:14px;letter-spacing:.16em;font-family:Georgia,serif}.account-brand>span{font-size:42px;color:#edcd78}.account-brand p{margin:0;line-height:1.6}.account-brand b{font-size:12px}.account-panel{box-sizing:border-box;width:100%;max-width:460px;margin:auto;border:1px solid #c4a466;border-radius:20px;padding:clamp(16px,5vw,26px);background:linear-gradient(145deg,#102b40eb,#061624f5);box-shadow:inset 0 0 0 4px #162f42,0 12px 36px #0005}.account-panel h1{font:700 clamp(25px,7vw,36px)/1.12 Georgia,serif;color:#f9e4a6;margin:10px 0 14px}.account-panel p{line-height:1.5;font-size:14px}.account-panel .account-eyebrow{font-size:10px;letter-spacing:.14em;color:#d5b97d;margin:0}.account-content{display:grid;gap:10px}.account-button{box-sizing:border-box;min-height:46px;width:100%;border:1px solid #bd9e5e;border-radius:9px;padding:11px 12px;color:#f5e6bd;background:linear-gradient(#173e58,#0c263b);font:700 13px/1.3 system-ui;letter-spacing:.04em;touch-action:manipulation;cursor:pointer}.account-button.account-primary{color:#14202a;background:linear-gradient(#ffedb7,#e3b759 60%,#ba8531);border-color:#ffe8a2;box-shadow:inset 0 0 0 2px #f7db91}.account-button:active{transform:translateY(1px)}.account-button:focus-visible,.account-input input:focus-visible{outline:3px solid #8bd9ff;outline-offset:2px}.account-button:disabled{opacity:.65;cursor:wait}.account-panel>.account-button{margin-top:14px}.account-content fieldset{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}.account-field{display:grid;gap:6px;font-size:13px;color:#e9ddbf}.account-input{display:flex;background:#031423;border:1px solid #55778b;border-radius:8px;overflow:hidden;min-height:46px}.account-input input{box-sizing:border-box;min-width:0;width:100%;padding:10px;border:0;border-radius:0;background:transparent;color:#fff;font:16px system-ui}.account-input button{flex:none;border:0;border-left:1px solid #426275;padding:0 10px;background:#12334b;color:#e7d4a2;min-width:64px;min-height:44px;font:12px system-ui}.account-panel .account-hint{font-size:11px;color:#acbdc6;line-height:1.45;margin:10px 0 0}.account-status{font-size:13px;line-height:1.4;margin:0 0 10px;color:#f1d48b}.account-status:empty{display:none}.account-status[role=alert]{color:#ffb9b2}.account-email{overflow-wrap:anywhere}.account-choice{border:1px solid #637480;border-radius:12px;padding:14px;margin:12px 0;background:#0d2a3d}.account-choice h2{font:700 19px Georgia,serif;margin:0 0 8px}.account-choice p{margin:6px 0}.account-choice .account-button{margin-top:10px}@media(max-height:650px){.account-screen{justify-content:flex-start;gap:8px}.account-brand{display:none}.account-panel{padding:15px}.account-panel h1{font-size:25px}.account-content fieldset{gap:8px}}@media(prefers-reduced-motion:reduce){.account-button:active{transform:none}}
.account-layer{box-sizing:border-box;padding:0;border:1px solid #bd9e5e;border-radius:0;background:#061624;color:#f5edd6;width:min(100vw,540px);height:100dvh;max-width:100vw;max-height:100dvh;margin:0 auto;overflow-y:auto;overscroll-behavior:contain}.account-layer::backdrop{background:#03111fe8}.account-runtime-root{min-height:100%;display:flex}.account-runtime-root>.account-screen{flex:1}.account-layer .account-screen{padding-top:max(16px,env(safe-area-inset-top))}
/* Account presentation: existing forms, actions and authentication are preserved. */
.account-layer{border:0;background:#173a4b}.account-layer .account-screen{min-height:100dvh;gap:18px;justify-content:flex-start;align-items:center;padding:calc(24svh + env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));background:linear-gradient(180deg,transparent 15%,#0b264633 36%,#51351955 75%,#22190fd9),url('assets/new-adventure-v6.webp') center top/cover no-repeat;color:#432b18;isolation:isolate}
.account-layer .account-brand{display:flex;position:relative;flex:none;margin:0;gap:9px;padding:8px 17px;border:1px solid #ddb871;border-radius:7px;background:linear-gradient(#102c43f0,#061524ed);box-shadow:0 3px 10px #0008,inset 0 1px #fff3;color:#fff2c7;text-align:center;text-shadow:0 2px #000}.account-layer .account-brand>span{font-size:32px;line-height:1;color:#f6ce7c}.account-layer .account-brand p{font:900 clamp(24px,7vw,34px)/1 Georgia,serif;letter-spacing:-.8px}.account-layer .account-brand b{font:800 12px/1.8 Georgia,serif;letter-spacing:2px;color:#f9da8c}
.account-layer .account-panel{position:relative;flex:none;max-width:440px;margin:0 auto;padding:25px 22px 19px;border:2px solid #92703c;border-radius:14px 7px 15px 8px;background:radial-gradient(ellipse at 0 25%,#b3814166,transparent 32%),radial-gradient(ellipse at 100% 80%,#9b6a3555,transparent 35%),repeating-linear-gradient(10deg,#9c743518 0 1px,transparent 1px 6px),linear-gradient(110deg,#e6bd78,#ffe6ae 40%,#f0cf8c 80%,#c99a55);box-shadow:inset 0 0 0 3px #ffe5ad,inset 0 0 0 5px #b58a4b,inset 0 0 22px #83572d66,0 8px 24px #13202b99;color:#432b18}
.account-layer .account-panel:before,.account-layer .account-panel:after{content:'';position:absolute;top:11px;bottom:11px;width:12px;z-index:-1;background:linear-gradient(90deg,#8d602e,#f3d292,#a87939);border:1px solid #8e652e;border-radius:50%;box-shadow:0 3px 5px #58361a66;pointer-events:none}.account-layer .account-panel:before{left:-7px}.account-layer .account-panel:after{right:-7px;transform:scaleX(-1)}
.account-layer .account-panel h1{font:800 clamp(27px,7.5vw,35px)/1.12 Georgia,serif;text-align:center;color:#402512;letter-spacing:-.6px;text-shadow:0 1px #fff1bf;margin:10px 0 15px}.account-layer .account-panel .account-eyebrow{text-align:center;font:750 9px/1.5 system-ui;letter-spacing:1.3px;color:#785322}.account-layer .account-panel p{color:#543a24;font-size:14px;line-height:1.55}.account-layer .account-content>p{margin:0 0 7px;text-align:center}.account-layer .account-panel .account-hint{color:#6b5138;font-size:11px;line-height:1.5;text-align:center}.account-layer .account-field{color:#54371e;font-weight:650}.account-layer .account-input{border-color:#9f7c49;box-shadow:inset 0 1px 4px #0004}.account-layer .account-input input{color:#fff6df}.account-layer .account-input button{color:#ffe4a4;border-color:#a28453;background:#17394f}
.account-layer .account-button{min-height:52px;height:auto;border:1px solid #86642f;border-radius:8px 5px 8px 5px;background:linear-gradient(#244b61,#112d42 48%,#092235 52%,#15394f);color:#fff0c6;box-shadow:inset 0 0 0 1px #f1d19255,inset 0 1px #fff3,0 3px 6px #80572f55;font-size:12px;line-height:1.4;letter-spacing:.4px;overflow-wrap:anywhere;padding:12px}.account-layer .account-button.account-primary{background:linear-gradient(#fff0b4,#edc367 48%,#daa242 52%,#f1cb73);color:#38250e;border-color:#947036;box-shadow:inset 0 0 0 1px #fff1b4,0 0 9px #ffdc8255,0 3px 6px #80572f55}.account-layer [data-account-action=guest]{background:repeating-linear-gradient(0deg,#51321c,#51321c 5px,#452a17 6px,#392312 8px);color:#fff1cf}.account-layer .account-button:focus-visible,.account-layer .account-input input:focus-visible{outline:3px solid #2a809e;outline-offset:3px}.account-layer .account-panel .account-status{color:#594021;background:#fff5ce99;border-left:3px solid #947138;padding:8px 10px;border-radius:3px}.account-layer .account-panel .account-status:empty{display:none}.account-layer .account-panel .account-status[role=alert]{color:#8a231d;border-color:#a2342c;background:#fff2d5}
.account-layer .account-choice{background:#f8e2af88;border-color:#af8b51;color:#50351e}.account-layer .account-choice h2{color:#402512}.account-layer .account-email{color:#50351e}
.account-layer .account-screen:not([data-account-mode=welcome]){padding-top:calc(12svh + env(safe-area-inset-top,0px))}.account-layer .account-screen[data-account-mode=profile]{padding-top:calc(6svh + env(safe-area-inset-top,0px))}.account-layer .account-screen:not([data-account-mode=welcome]) .account-brand{padding-block:6px}.account-layer .account-screen:not([data-account-mode=welcome]) .account-brand p{font-size:25px}
@media(max-height:700px){.account-layer .account-screen{padding-top:calc(16svh + env(safe-area-inset-top,0px));gap:13px;padding-bottom:calc(15px + env(safe-area-inset-bottom,0px))}.account-layer .account-screen:not([data-account-mode=welcome]){padding-top:calc(6svh + env(safe-area-inset-top,0px))}.account-layer .account-brand{display:flex;padding:6px 13px}.account-layer .account-brand p{font-size:26px}.account-layer .account-panel{padding:22px 18px 17px}.account-layer .account-panel h1{font-size:28px}.account-layer .account-button{min-height:48px}}
@media(max-width:350px){.account-layer .account-screen{padding-inline:13px}.account-layer .account-panel{padding-inline:17px}.account-layer .account-panel h1{font-size:26px}.account-layer .account-panel p{font-size:13px}.account-layer .account-button{font-size:11px}}
@media(prefers-reduced-motion:no-preference){.account-layer .account-panel{animation:account-paper-in .18s ease-out both}}@keyframes account-paper-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.account-layer .account-panel{animation:none}.account-layer .account-button:active{transform:none}}

/* Source: language-screen.css */
.language-dialog{border:0;padding:0;position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border-radius:0;overflow:auto;background:#a67536;color:#28180c;overscroll-behavior:contain}.language-dialog::backdrop{background:#021322}.language-screen{min-height:100%;box-sizing:border-box;padding:calc(24svh + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(transparent 15%,#8a502000 26%,#6e401511 60%),url('assets/language-v6.webp') center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.language-brand{margin:0 auto 14px;text-align:center;filter:drop-shadow(0 3px 3px #000);line-height:1}.language-brand>span{display:block;font:900 clamp(37px,12vw,58px)/1 Georgia,serif;letter-spacing:-2px;color:#20b7ec;-webkit-text-stroke:1px #062b46;text-shadow:0 2px #fff,2px 4px #001a30}.language-brand>b{display:block;color:#ffdd82;background:#251508e8;padding:6px 12px;font:900 19px Georgia;border-block:2px solid #d0a34e;letter-spacing:1px}.language-panel{width:100%;max-width:440px;padding:14px 9px;box-sizing:border-box;border:2px solid #b58737;border-radius:9px;background:linear-gradient(#ffe1a4ee,#d7a95aee);box-shadow:inset 0 0 0 2px #f6d693,inset 0 0 24px #8d5819,0 4px 15px #0009}.language-panel h1{font:900 clamp(21px,6vw,30px)/1.1 Georgia,serif;text-align:center;margin:0 0 6px}.language-panel>p{text-align:center;font:15px/1.35 Georgia,serif;margin:0 0 14px}.language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px}.language-grid button{display:flex;align-items:center;gap:8px;text-align:start;min-height:72px;min-width:0;padding:10px 7px;border:2px solid #947024;border-radius:8px;background:linear-gradient(125deg,#ffedbf,#edbf72 67%,#e3b563);box-shadow:inset 0 0 0 2px #ffe2a6,0 3px 5px #7c4d27;color:#291b10;cursor:pointer}.language-grid button:focus-visible{outline:3px solid #0067ad;outline-offset:2px}.language-grid button[aria-current]{border-color:#047cb6;box-shadow:0 0 0 2px #7bd3ed}.language-grid button>span:last-child{min-width:0}.language-grid b{display:block;font:800 clamp(16px,4.6vw,22px)/1.15 Georgia,serif;overflow-wrap:anywhere}.language-grid small{display:block;font:12px/1.2 Georgia,serif;margin-top:4px;overflow-wrap:anywhere}.language-flag{font:35px/1 system-ui;flex:none}.language-panel .language-notice{font:11px/1.4 system-ui;margin:14px 2px 0}.language-return{display:block;width:100%;min-height:44px;margin:10px 0 0;background:#142d40;color:#ffe4a2;border:1px solid #957135;border-radius:6px}.language-panel [data-language-status]{font:12px/1.4 system-ui;margin:8px 0 0}html[lang=ja] :is(button,h1,h2,h3){font-family:system-ui,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;line-break:strict;word-break:normal}html:not([lang=pt-PT]) .moon-card-copy h2{overflow-wrap:anywhere}html:not([lang=pt-PT]) .moon-event-action{min-height:48px;height:auto}html:not([lang=pt-PT]) #nav button span{overflow-wrap:anywhere}html:not([lang=pt-PT]) .moon-card-copy>p{max-width:90%}@media(max-width:350px){.language-screen{padding-inline:8px}.language-grid{gap:7px}.language-flag{font-size:28px}.language-grid button{gap:5px}.language-grid small{font-size:11px}.language-brand{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){.language-grid button{animation:none;transition:none}}

/* Static full-viewport language entry. Short screens may scroll for accessibility. */
.language-dialog,.language-screen,.language-screen *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.language-screen{background-attachment:scroll}.language-grid button:active{transform:none;filter:none}.language-grid button:hover{transform:none}
@media(max-height:740px){.language-screen{padding-top:calc(12svh + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.language-brand{margin-bottom:9px}.language-brand>span{font-size:36px}.language-brand>b{font-size:16px;padding:4px 10px}.language-grid button{min-height:64px}.language-panel{padding:11px 9px}.language-panel h1{font-size:22px}.language-panel>p{font-size:13px;margin-bottom:10px}}

body:has(.language-dialog[open]){overflow:hidden;overscroll-behavior:none}

/* Source: new-adventure.css */
/* Static navy/gold confirmation, matching the other menu surfaces. */
#modal.new-adventure-modal{position:fixed;inset:0;margin:0 auto;padding:0;width:min(100vw,560px);max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;overflow:hidden;color:var(--ui-text);background:linear-gradient(#071827b8,#071827ed 65%),url('assets/recruit/ocean.webp') center/cover no-repeat;color-scheme:dark}
#modal.new-adventure-modal::backdrop{background:#04101bea}
#modal.new-adventure-modal #modalContent{height:100%;box-sizing:border-box;overflow:auto;padding:max(20px,env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;justify-content:safe center}
#modal.new-adventure-modal #modalContent>.close{display:none}
.new-adventure-dialog{width:100%;max-width:420px;margin:auto;flex:none;container-type:inline-size}
.new-voyage-parchment{position:relative;padding:58px 22px 24px;border:1px solid var(--ui-line);border-radius:var(--ui-card-radius);background:var(--ui-panel);box-shadow:0 15px 45px #0006}
.new-voyage-parchment h2{font:700 clamp(25px,7cqw,32px)/1.15 Georgia,serif;color:var(--ui-gold-light);margin:0 0 16px;text-align:center;text-wrap:balance}
.new-voyage-parchment>p:not(.new-voyage-export-status){font:14px/1.6 Arial,sans-serif;color:var(--ui-muted);text-align:center;margin:0 0 18px;text-wrap:pretty}
.new-voyage-actions{display:grid;gap:10px}
.new-voyage-button{position:relative;display:grid;grid-template-columns:24px 1fr 24px;align-items:center;gap:8px;width:100%;min-height:48px;padding:12px;font:700 12px/1.35 Arial,sans-serif;cursor:pointer;touch-action:manipulation;text-align:center}
.new-voyage-button svg{width:22px;height:22px;filter:none}
.new-voyage-button span{min-width:0;overflow-wrap:anywhere;text-wrap:balance}
.new-voyage-button:before,.new-voyage-button:after{display:none}
.new-voyage-dismiss{position:absolute;top:12px;right:12px;width:36px;height:36px;padding:0;display:grid;place-items:center;border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-button);color:var(--ui-gold-light);font:26px/1 Arial;cursor:pointer}
.new-voyage-parchment .new-voyage-unsaved{padding:10px;border:1px solid #d78b8655;border-radius:10px;background:#582a3233;color:#f0b9b1;font-size:13px}
.new-voyage-export-status{margin:12px 0 0;font:12px/1.5 Arial;color:var(--ui-muted);text-align:center}
.new-voyage-export-status:empty{display:none}
.new-adventure-dialog,.new-adventure-dialog *{animation:none!important;transition:none!important}
@media(max-height:550px){.new-voyage-parchment{padding:48px 16px 16px}.new-voyage-actions{gap:7px}.new-voyage-parchment h2{font-size:24px}.new-voyage-parchment>p:not(.new-voyage-export-status){margin-bottom:12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.new-adventure-dialog{animation:none}}

/* Source: combat-premium.css */
/* Premium 8: presentation only; centres remain shared with chain SVG and real buttons. */
.battle .battle-dock{padding:8px 10px calc(4px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#041b2edb 36%,#041524f5);border-top:0}
.battle .rotation{position:relative;gap:13px;padding:3px 9px 5px;align-items:end}
.battle .rotation:before{content:'›  ›';position:absolute;left:29%;right:29%;top:31%;display:flex;justify-content:space-between;white-space:pre;color:#ffe29a;font-size:22px;letter-spacing:3vw;pointer-events:none}
.battle .fighter{position:relative;min-width:0;padding:5px 3px 6px;background:linear-gradient(150deg,#183f5266,#06192988);border:1px solid #bca47038;border-radius:12px;transition:border-color .2s,background .2s}
.battle .fighter.current{border-color:#ffe5a7;background:linear-gradient(150deg,#956d393f,#082638cc);box-shadow:inset 0 0 12px #ffe0a71f}
.battle .medallion{width:clamp(54px,16vw,77px);height:clamp(54px,16vw,77px);margin:auto;border:3px solid #c8aa73;box-shadow:0 0 0 2px #052335,0 0 0 3px var(--type),0 3px 8px #0007;overflow:visible}
.battle .medallion .portrait{border-radius:50%;overflow:hidden}
.battle .fighter[data-rarity="UR"] .medallion{border-color:#f8e5aa}
.battle .fighter[data-rarity="LR"] .medallion{border-color:#fdf0a2;box-shadow:0 0 0 2px #6ec9df,0 0 0 4px #d4a4dc,0 3px 8px #0007}
.battle .fighter.current .medallion{outline:1px solid #fff2be;outline-offset:4px}
.battle .fighter b{font-size:11px;line-height:1.2;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.battle .combat-attack{display:block;font-size:clamp(19px,5.6vw,27px);font-weight:900;color:#fff8cf;line-height:1.1;font-variant-numeric:tabular-nums;text-shadow:0 2px 2px #000;margin:3px 0}
.battle .energy-meter{height:5px;margin:5px 5px 4px;border:1px solid #a1d8df66;background:#02101e;border-radius:4px;overflow:hidden}
.battle .energy-meter i{background:linear-gradient(90deg,var(--type),#fff4b7);transition:width .25s}
.battle .fighter small{font-size:9px;line-height:1.3}
.battle .crew-hp{padding:4px 2px}.battle .crew-hp .row{gap:7px}.battle .crew-hp .bar{height:9px;border:1px solid #acfff1;border-radius:2px;transform:skew(-9deg);flex:1}.battle .crew-hp small{font-size:10px;font-variant-numeric:tabular-nums}.battle .crew-hp.warning .bar i{background:linear-gradient(90deg,#d88b22,#ffe99c)}.battle .crew-hp.critical .bar i{background:linear-gradient(90deg,#c22c53,#ff9282)}
.battle .battle-foot{display:grid;grid-template-columns:1.4fr .7fr 1fr 1.4fr;gap:3px;margin-top:4px}.battle .battle-foot button{min-height:44px;font-size:10px;border-radius:6px;border:1px solid #b9ab7240;background:#082335a6}.battle .battle-foot [data-action="help"],.battle .battle-foot [data-action="leave"]{display:none}
@media(max-height:680px){.battle .medallion{width:48px;height:48px}.battle .fighter b{font-size:10px}.battle .combat-attack{font-size:19px}.battle .battle-dock{padding-top:4px}}
@media(prefers-reduced-motion:reduce){}

/* 0.70.4: reserve the left battle lane for the active actor. */
.battle .rotation{gap:10px;padding:3px 8px;align-items:center}
.battle .fighter{padding:4px 3px;min-height:0}
.battle .medallion{width:44px;height:44px;border-width:2px}
.battle .fighter b{margin-top:4px;font-size:10px}
.battle .combat-attack{font-size:19px;margin:2px 0}
.battle .energy-meter{margin:3px 5px;height:4px}
.battle .fighter small{font-size:8px;margin-top:2px}
.battle .rotation:before{display:none}
.battle .crew-hp{margin:4px 2px!important}
@media(max-height:680px){
 .battle .medallion{width:36px;height:36px}
 .battle .combat-attack{font-size:17px}
 .battle .battle-dock{padding-top:3px}
}

/* Source: grand-entrance.css */
.grand-entrance{position:fixed;inset:0;z-index:2147483000;box-sizing:border-box;height:100dvh;width:100%;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#17396a,#030d25 70%);isolation:isolate;opacity:1;transition:opacity .24s ease-out}
.grand-entrance-scene{position:relative;width:min(100%,calc((100svh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * .5625));aspect-ratio:9/16;isolation:isolate;overflow:hidden}
.grand-entrance-art{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:entrance-reveal 1s ease-out both}
.entrance-sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.entrance-start{position:absolute;left:13.5%;top:70.2%;width:73%;height:6.5%;z-index:3;margin:0;padding:0 3px;min-height:44px;box-sizing:border-box;border:0;border-radius:7%;display:grid;place-items:center;background:transparent;color:#211107;text-align:center;font:900 clamp(13px,4.4vw,23px)/1.05 Georgia,serif;text-shadow:0 1px #fff0b8;cursor:pointer;touch-action:manipulation}
.entrance-start span{display:grid;place-items:center;box-sizing:border-box;width:86%;height:70%;padding:1px 2px;overflow-wrap:anywhere;max-width:100%;background:linear-gradient(100deg,#ecc581,#ffdf9a 20%,#ffedbc 50%,#ffda93 80%,#e8bc74);box-shadow:0 0 5px 2px #f6ce8e}.entrance-start:focus-visible{outline:3px solid #fff5c4;outline-offset:7px}.entrance-start:active span{background:#ffe7ac}
.entrance-status{position:absolute;top:78%;left:12%;right:12%;z-index:4;margin:0;padding:4px 7px;border-radius:5px;color:white;background:#061a36dd;text-align:center;font:12px/1.35 system-ui}.entrance-status:empty{display:none}
.entrance-ambient{position:absolute;inset:0;pointer-events:none;z-index:1}.entrance-aura{position:absolute;opacity:0;background:radial-gradient(ellipse,var(--light),transparent 69%);animation:entrance-aura 7s 1s ease-in-out infinite;will-change:opacity,transform}.gear-five{--light:#e9faff;left:34%;top:1%;width:32%;height:15%;animation-duration:9s}.zoro{--light:#59ed90;left:0;top:42%;width:27%;height:13%;animation-delay:1.8s}.sanji{--light:#ffc75a;right:0;top:42%;width:24%;height:18%;animation-delay:2.4s}.shanks{--light:#ff7162;left:0;top:3%;width:24%;height:18%;animation-delay:3s}.kaido{--light:#ad79ff;right:0;top:0;width:24%;height:17%;animation-delay:3.7s}
.entrance-ocean{position:absolute;left:0;right:0;top:91%;height:7%;opacity:.08;background:repeating-linear-gradient(173deg,transparent 0 8px,#d1f4ff88 9px,transparent 10px 18px);animation:entrance-water 8s 1s ease-in-out infinite}.entrance-logo-shine{position:absolute;left:20%;top:49%;width:60%;height:15%;background:linear-gradient(110deg,transparent 42%,#fff2b4 49%,transparent 56%);opacity:0;animation:entrance-logo-glow 10s 1s ease-in-out infinite;clip-path:polygon(0 5%,100% 5%,100% 95%,0 95%)}
.entrance-mote{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff3b7;opacity:0;animation:entrance-mote-rise 7s 1.2s ease-in-out infinite}.mote-0{left:39%;top:9%}.mote-1{left:62%;top:13%;animation-delay:3s}.mote-2{left:6%;top:43%;background:#a0ffc8;animation-delay:2s}.mote-3{right:5%;top:50%;background:#ffd295;animation-delay:4s}.mote-4{left:9%;top:17%;background:#ffa69c;animation-delay:3.5s}.mote-5{right:7%;top:10%;background:#d3afff;animation-delay:5s}.mote-6{left:25%;top:63%;animation-delay:6s}.mote-7{right:24%;top:64%;animation-delay:2.7s}
.grand-entrance.entrance-leaving{opacity:0;pointer-events:none}.entrance-leaving *{animation-play-state:paused!important}.entrance-paused *{animation-play-state:paused!important}.entrance-open,.entrance-open body{overflow:hidden;overscroll-behavior:none}
@keyframes entrance-reveal{from{opacity:0}to{opacity:1}}@keyframes entrance-aura{0%,100%{opacity:.025;transform:translateY(0)}50%{opacity:.13;transform:translateY(-2px)}}@keyframes entrance-water{0%,100%{opacity:.06;transform:translateX(0)}50%{opacity:.14;transform:translateX(2px)}}@keyframes entrance-mote-rise{0%,100%{opacity:0;transform:translateY(3px)}40%{opacity:.6}80%{opacity:0;transform:translateY(-13px)}}@keyframes entrance-logo-glow{0%,13%,100%{opacity:0}5%{opacity:.12}}@keyframes entrance-button-glow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
html[lang=ja] .entrance-start{font-family:system-ui,'Hiragino Kaku Gothic ProN',sans-serif;font-size:clamp(12px,3.9vw,21px)}html[lang=fr] .entrance-start,html[lang=de] .entrance-start{font-size:clamp(12px,3.5vw,20px)}
@media(max-height:650px){.entrance-start{font-size:13px;min-height:44px}.entrance-status{font-size:10px}}
@media(prefers-reduced-motion:reduce){.grand-entrance,.grand-entrance *{animation:none!important;transition:none!important}.entrance-ambient{display:none}.grand-entrance-art{opacity:1}}

.entrance-game-loading{position:fixed;inset:0;z-index:2147482999;display:grid;place-items:center;background:#06162b;color:#f6deb0;text-align:center;font:16px/1.5 system-ui;padding:30px;box-sizing:border-box}

/* Video is fetched only by the opening lifecycle; the real translated button stays above it. */
.grand-entrance-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:1;opacity:0}
.entrance-video-active .grand-entrance-video{opacity:1}
.entrance-video-active .entrance-ambient{display:none}
@media(prefers-reduced-motion:reduce){.grand-entrance-video{display:none}}

.entrance-video-play{position:absolute;z-index:5;top:83%;left:22%;width:56%;min-height:44px;border:1px solid #edcf85;border-radius:8px;background:#071d33e8;color:#fff0b8;font:700 12px/1.3 system-ui;padding:8px;touch-action:manipulation}
.entrance-video-play[hidden]{display:none}

.entrance-video-requested .grand-entrance-video{display:block}

/* Keep the painted title and live labels at source resolution above the 360p film. */
.entrance-video-active .grand-entrance-art{z-index:2;animation:none;-webkit-mask-image:linear-gradient(transparent 45%,#000 49%,#000 81%,transparent 86%);mask-image:linear-gradient(transparent 45%,#000 49%,#000 81%,transparent 86%);pointer-events:none}
.entrance-start,.entrance-start span,.entrance-video-play{filter:none;transform:none;animation:none;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
.entrance-start{border-radius:0}
.entrance-start span{box-shadow:none}

/* Source: combat-definitive.css */
/* Definitive 10 — Phase 2. Independent scene, orb targets and real roster controls. */
.battle #main{min-height:0;height:100dvh}
.battle .battle-dock{left:8px;right:8px;bottom:0;padding:6px 4px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#02191ce8 50%,#03121df5)}
.battle .definitive-rotation{display:grid;grid-template-columns:minmax(0,1fr) 17px minmax(0,1fr) 17px minmax(0,1fr);align-items:center;gap:0;padding:5px 7px 0}
.battle .definitive-rotation:before{display:none}
.battle .definitive-rotation .fighter,.battle .definitive-rotation .fighter.current{display:flex;flex-direction:column;align-items:center;position:relative;padding:0 0 2px;background:none;border:0;box-shadow:none;border-radius:0;min-width:0;min-height:44px}
.battle .definitive-rotation .medallion{position:relative;width:clamp(69px,23vw,110px);height:clamp(69px,23vw,110px);border:3px solid var(--type);border-radius:50%;margin:0!important;transform:none;background:#062337;box-shadow:0 0 0 2px #021117,0 0 0 5px var(--type),0 0 12px color-mix(in srgb,var(--type),transparent 25%);outline:none}
.battle .combat-face{position:absolute;inset:3%;width:94%;height:94%;object-fit:cover;border-radius:50%;background:#062337}
.battle .energy-segments{position:absolute;inset:-8px;border-radius:50%;background:repeating-conic-gradient(from -95deg,transparent 0 4deg,#021417 4deg 8deg,transparent 8deg 42deg);border:3px solid transparent;pointer-events:none}
.battle .fighter.current .medallion:after{content:'';position:absolute;inset:-7px;border-radius:50%;border:2px solid #fff7b0;box-shadow:0 0 9px var(--type);pointer-events:none}
.battle .combat-affinity{position:absolute;right:-6px;bottom:0;transform:rotate(-8deg);filter:drop-shadow(0 1px 2px #000)}
.battle .combat-affinity .combat-type-badge{font-size:10px;padding:4px;min-width:28px;border:1px solid #fff9}
.battle .combat-position{position:absolute;top:-6px;right:-5px;min-width:22px;height:22px;display:grid;place-items:center;border:1px solid #7eeaff;background:#032b43;border-radius:5px;font-size:10px;color:#c0ffff}
.battle .special-mark{position:absolute;top:-14px;left:0;font-size:27px;color:#fff7b1;text-shadow:0 0 7px var(--type)}
.battle .definitive-rotation .combat-attack{position:relative;z-index:1;margin:0;line-height:1;font-size:clamp(24px,7vw,34px);color:#fff;font-style:italic;-webkit-text-stroke:1px #06111a;text-shadow:2px 2px #000,0 0 4px #000}
.battle .fighter-name{font-size:9px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#dfeaf1;line-height:1.2;margin-top:3px}
.battle .definitive-rotation .energy-meter{height:3px;width:65%;margin:3px 0 0;background:#041626;border:1px solid #ffffff40}
.battle .definitive-rotation .fighter small{font-size:8px;line-height:1.1;margin-top:2px}
.battle .rotation-arrow{font-size:19px;line-height:1;color:#c3ffb3;text-shadow:0 0 4px #1f4,0 0 8px #3f7;align-self:center;justify-self:center;padding-bottom:25px;pointer-events:none}
.battle .crew-hp{margin:3px 0!important;padding:4px 2px}
.battle .crew-hp .row{gap:6px}.battle .crew-hp .row>b{font-style:italic;color:#ffd445;font-size:17px;line-height:1}
.battle .crew-hp .bar{height:12px;border:1px solid #ebfff2;transform:skew(-18deg);background:#09232c;border-radius:0;box-shadow:0 0 0 2px #0c4a40}
.battle .crew-hp .bar i{background:linear-gradient(90deg,#eaff42,#ffe446 50%,#ff941a);transition:width .35s ease}
.battle .crew-hp small{font-size:10px;color:#edf9ff}
.battle .battle-foot{grid-template-columns:1.25fr .65fr 1fr 1.2fr;gap:5px;margin-top:5px}
.battle .battle-foot button{min-height:40px;font-size:10px;padding:4px;border:1px solid #638699;border-radius:7px;background:linear-gradient(#0c304a,#041a2c);white-space:normal}
.battle .elemental-hud{display:block;position:absolute;top:14%;right:8px;width:64px;z-index:4}
.battle .elemental-hud button{padding:0;min-height:64px;background:#051a3199;border-radius:10px}
.battle .elemental-hud .elemental-cycle{width:64px;height:61px}
.battle .elemental-hud small,.battle .elemental-hud .color-matchup{display:none}
.battle .battle-plan{right:10px}.battle .preparation-progress{font-size:8px}
@media(max-height:700px){
 .battle .definitive-rotation .medallion{width:clamp(60px,20vw,88px);height:clamp(60px,20vw,88px)}
 .battle .definitive-rotation .combat-attack{font-size:25px}
 .battle .fighter-name{font-size:8px}
 .battle .battle-foot button{min-height:36px}
 .battle .elemental-hud{top:18%;width:50px}.battle .elemental-hud .elemental-cycle{width:50px;height:48px}
}

.battle .battle-foot [data-action="help"]{display:block}
/* Reset legacy target badges on the medallion pseudo-element. */
.battle .definitive-rotation .fighter.current .medallion{transform:none;outline:none}
.battle .definitive-rotation .medallion:after{content:none;background:none;transform:none}
.battle .definitive-rotation .fighter.current .medallion:after{content:'';position:absolute;inset:-7px;width:auto;height:auto;padding:0;transform:none;background:none;border:2px solid #fff7b0;border-radius:50%;box-shadow:0 0 9px var(--type)}
.battle .energy-segments{mask-image:radial-gradient(circle,transparent 0 63%,#000 64%);-webkit-mask-image:radial-gradient(circle,transparent 0 63%,#000 64%)}
.battle .enemy-badge{width:54px;height:58px}.battle .enemyhud .row>b{font-size:15px}.battle .enemyhud>small{font-size:12px}.battle .enemyhud .row>span{font-size:10px}
/* Reference correction 10.1 — full-screen measured coordinates, no right-hand pile. */
.battle .battle-dock{position:absolute;left:6px;right:6px;bottom:0;height:28%;padding:0;background:linear-gradient(transparent,#02101dcf 42%,#021724f5)}
.battle .definitive-rotation{position:absolute;left:0;right:0;top:5px;padding:0 7px;grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr) 13px minmax(0,1fr);align-items:start}
.battle .definitive-rotation .medallion{width:clamp(76px,23vw,112px);height:clamp(76px,23vw,112px);border:0;box-shadow:none;background:#03131b;overflow:visible}
.battle .definitive-rotation .fighter.current .medallion:after{content:none}
.battle .combat-face{inset:6%;width:88%;height:88%}
.battle .energy-segments{display:none}
.battle .crew-frame{position:absolute;inset:-14%;width:128%;height:128%;color:var(--type);z-index:2;pointer-events:none;filter:drop-shadow(0 0 3px var(--type));overflow:visible}
.battle .fighter.current .crew-frame{color:#ff5332;filter:drop-shadow(0 0 4px #ffbc22)}
.battle .combat-affinity{z-index:3;right:-2px;bottom:0;transform:rotate(-45deg)}
.battle .combat-affinity .combat-type-badge{transform:rotate(45deg);border-radius:0;font-size:9px}
.battle .combat-position{z-index:4;top:-5px;right:-2px;min-width:24px;height:24px;border:2px solid #51ddff;background:#072334}
.battle .definitive-rotation .combat-attack{font-size:clamp(26px,7.7vw,38px);margin-top:3px;line-height:1}
.battle .fighter-name,.battle .definitive-rotation .fighter small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.battle .definitive-rotation .energy-meter{position:absolute;top:0;left:9%;width:82%;height:2px;margin:0;border:0;opacity:.9}
.battle .rotation-arrow{padding:0;align-self:center;font-size:26px;color:#e3ffd4;text-shadow:0 0 3px #3f3,0 0 7px #2f4}
.battle .crew-hp{position:absolute;bottom:70px;left:4px;right:4px;padding:0;margin:0!important}
.battle .crew-hp .bar{height:15px;border:2px solid #e6faf0;transform:skew(-22deg);box-shadow:0 2px #030d13,0 0 0 2px #0c584b;background:#09252c}
.battle .crew-hp .bar i{background:repeating-linear-gradient(110deg,transparent 0 13%,#041615 13% 14%,transparent 14% 15%),linear-gradient(90deg,#ffff4c,#ffdb18 55%,#ff761e);border-bottom:2px solid #d5ff7a}
.battle .crew-hp .row{flex-wrap:nowrap}.battle .crew-hp .row>b{font-size:18px;color:#ffd126}.battle .crew-hp small{font-size:10px;white-space:nowrap}
.battle .battle-foot{position:absolute;bottom:calc(8px + env(safe-area-inset-bottom,0px));left:3px;right:3px;margin:0;gap:6px}
.battle .battle-foot button{min-height:38px;padding:4px;font-size:10px;border-color:#7d9db4}
.battle .enemy-badge{width:58px;height:60px}.battle .enemyhud{padding:5px 7px}.battle .enemyhud .row>b{font-size:15px}.battle .enemyhud>.bar{height:9px;border:1px solid #fff9;background:#12233a;transform:skew(-8deg)}
.battle .enemyhud>small{font-size:12px}.battle .battle-plan{top:calc(70px + env(safe-area-inset-top,0px));background:none;border:0;grid-template-columns:auto 1fr auto;padding:0}
.battle .battle-synergy-link,.battle .intent-detail{background:#06223be6!important;border:1px solid #9cb9a955!important;border-radius:5px!important;padding:5px!important}
.battle .battle-plan>.preparation-progress{padding:7px;background:#061e34dc;border-radius:5px}
.battle .elemental-hud{top:14%;width:66px}.battle .elemental-hud .elemental-cycle{width:66px;height:63px}
@media(max-height:700px){.battle .battle-dock{height:29%}.battle .definitive-rotation .medallion{width:clamp(66px,21vw,90px);height:clamp(66px,21vw,90px)}.battle .crew-hp{bottom:59px}.battle .battle-foot button{min-height:36px}.battle .elemental-hud{top:18%}}
.battle .combat-face-atlas{border-radius:50%;background-image:url('assets/combat/reference/portraits.webp');background-size:300% 100%;background-repeat:no-repeat}

/* Source: perfect-chain.css */
/* Perfect Chain — fixed minimal crew strip, full arena, deliberate on-demand actions. */
body.battle .pc-battle{display:grid;grid-template-rows:54px minmax(100px,1fr) 58px 66px;gap:5px;height:100%;min-height:0;padding:calc(6px + env(safe-area-inset-top,0px)) 8px calc(5px + env(safe-area-inset-bottom,0px));background:linear-gradient(#061b30,transparent 21%,transparent 85%,#061b30)}
body.battle:has(.pc-battle) #world{position:absolute;top:var(--pc-stage-top,60px)!important;height:var(--pc-stage-height,70dvh)!important}
body.battle .pc-battle .battle-top{grid-row:1;position:relative;inset:auto;gap:6px}.pc-battle .enemy-badge{width:43px;height:43px;border-radius:50%}.pc-battle .enemyhud{padding:5px 7px}.pc-battle .enemyhud .bar{height:5px}.pc-battle .enemyhud b{font-size:13px}.pc-battle .enemyhud .row{margin:0 0 4px;font-size:10px}.pc-combo{color:#ffe39b;margin-left:5px}.pc-battle .battle-menubtn{border-radius:10px;min-height:40px}
.pc-intent{display:block;background:transparent;text-align:left;color:#d9e5ec;padding:3px 0 0;margin:0;min-height:16px;font-size:9px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.battle .pc-battle .battle-stage{grid-row:2;position:relative;inset:auto;height:auto!important;min-height:0;overflow:hidden}.pc-status{position:absolute;top:calc(66px + env(safe-area-inset-top,0px));left:10px;right:10px;font-size:10px;text-align:center;color:#fff0c9;text-shadow:0 1px 4px #000;background:#04192e88;border-radius:12px;padding:4px 7px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-boss-score{position:absolute;top:calc(95px + env(safe-area-inset-top,0px));left:12px;max-width:190px;background:#051c31b8;border-radius:8px;padding:4px;pointer-events:none}.pc-boss-score .legend-score{font-size:9px;margin:0;padding:0}.pc-boss-score .legend-score b{font-size:15px}.pc-boss-score progress{height:3px}.pc-support{position:absolute;top:100px;right:12px;font-size:9px;color:#ffe39b}
.pc-crew-strip{grid-row:4;display:flex;position:relative;align-items:center;justify-content:space-evenly;gap:7px;padding:3px 5px 13px;border-top:1px solid #c9ad6f88;background:#051d31ed;border-radius:10px 10px 0 0;min-height:0;z-index:4}
.pc-crew{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:44px;padding:0;background:transparent;border:0;text-align:left}.pc-crew:disabled{opacity:1}.pc-mini-portrait{display:block;position:relative;flex:none;width:38px;height:38px;border-radius:50%;border:1px solid #ccb36c;box-shadow:0 1px 3px #000;overflow:visible}.pc-mini-portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}.pc-mini-portrait i{position:absolute;bottom:-3px;right:-3px;font-style:normal;border-radius:50%;font-size:11px;background:#0d3444;color:#ffe39b;padding:2px}.pc-crew.current .pc-mini-portrait{border:2px solid #ffe8a6;box-shadow:0 0 6px #ffe09b88}.pc-member-info{display:grid;gap:2px;min-width:0;max-width:65px}.pc-member-info b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-member-info small{font-size:8px;color:#bfd3df;white-space:nowrap}.pc-mini-energy{width:100%;height:4px;min-width:24px;border:1px solid #5a9da8;border-radius:4px;background:#061a2b;overflow:hidden}.pc-mini-energy i{display:block;height:100%;background:linear-gradient(90deg,#40c6c4,#f2d471)}
.pc-total-hp{position:absolute;bottom:2px;left:6px;right:6px;height:8px;background:#092c3b;border:1px solid #6b9888;border-radius:5px;overflow:hidden}.pc-total-hp>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#2ab78e,#60e4bd)}.pc-total-hp small{position:absolute;inset:0;text-align:center;font-size:7px;line-height:7px;color:#fff;text-shadow:0 1px 2px #000}
.pc-control-zone{position:absolute;left:10px;right:10px;bottom:calc(144px + env(safe-area-inset-bottom,0px));height:86px;z-index:7;pointer-events:none}.pc-timing-slot{height:100%;display:none}.timing-active .pc-timing-slot{display:block}.pc-timing{position:absolute;inset:0;display:block;pointer-events:auto}.pc-timing>div{width:100%;height:100%;padding:6px 9px;border:1px solid #d4bd7b;border-radius:12px;background:#06263bef;box-shadow:0 3px 14px #0007;display:grid;grid-template-columns:1fr auto;grid-template-rows:22px 12px minmax(28px,1fr);gap:2px 6px}.pc-timing h2{display:none}.pc-timing-track{grid-column:1/3;position:relative;height:18px;margin:0 3px;border:1px solid #d5e5ec;border-radius:5px;background:linear-gradient(90deg,#8b2439 0 28%,#71b355 28% 43%,#ffcf35 43% 57%,#71b355 57% 72%,#8b2439 72%)}.pc-timing-track.wide{background:linear-gradient(90deg,#8b2439 0 28%,#71b355 28% 34%,#ffcf35 34% 66%,#71b355 66% 72%,#8b2439 72%)}.pc-timing-cursor{position:absolute;left:0;top:-4px;bottom:-4px;width:3px;margin-left:-1px;background:#fff;box-shadow:0 0 5px #fff;will-change:transform}.pc-timing p{grid-column:1/3;margin:0;font-size:8px;line-height:12px;text-align:center}.pc-timing button{width:100%;min-height:30px;height:100%;margin:0;padding:3px 12px;font-size:11px;border:1px solid #d5bc7e;border-radius:7px;background:#d8b56a;color:#092233;font-weight:bold;touch-action:manipulation}.pc-timing [data-timing-cancel]{width:auto;font-size:9px;background:#0c3045;color:#e5edf0}
.pc-menu-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}.pc-command{width:100%;aspect-ratio:1;min-height:0;max-width:76px;border-radius:50%;padding:5px 2px;border:1px solid var(--command);background:radial-gradient(circle at 50% 20%,#1b4053,#051d2f);color:#f8efd9;box-shadow:0 0 5px var(--command)}.pc-command span{display:block;font-size:24px;line-height:1.2}.pc-command b{display:block;font-size:8px;margin-top:4px}.pc-attack{--command:#f87561}.pc-technique{--command:#64d8bd}.pc-defend{--command:#60c4ef}.pc-item{--command:#e9d68b}
.pc-option{display:block;width:100%;text-align:left;margin-top:10px;padding:13px;border:1px solid #baad7e88;border-radius:9px;background:#0c2a40;color:#fff3d3;min-height:56px}.pc-option b,.pc-option span{display:block}.pc-option span{font-size:11px;color:#b7d3df;margin-top:5px}.pc-fallback{position:absolute;inset:0;background:url('assets/arenas/harbour-deck0600.webp') center/cover}.pc-fallback img{position:absolute;bottom:12%;left:8%;width:30%;max-height:50%;object-fit:contain}.pc-fallback img+img{left:auto;right:8%;bottom:32%;width:25%}
@media(max-height:560px){body.battle .pc-battle{grid-template-rows:46px minmax(70px,1fr) 52px 58px;gap:3px}.pc-mini-portrait{width:32px;height:32px}.pc-status{top:56px}.pc-control-zone{bottom:128px;height:82px}}
@media(prefers-reduced-motion:reduce){.pc-battle *{animation:none!important;transition:none!important}}
.pc-total-hp.critical>i{background:#df655d}.pc-total-hp.warning>i{background:#d6aa45}.pc-support img{width:20px;height:20px;object-fit:cover;border-radius:50%;vertical-align:middle}

/* Explicit compact actions stay visible above the fixed crew strip. */
.pc-action-bar{grid-row:3;display:flex;align-items:center;justify-content:space-evenly;gap:7px;padding:3px 4px;min-height:0;z-index:5;background:linear-gradient(transparent,#051d31b0);border-radius:12px}
.pc-action-bar .pc-command{width:48px;height:48px;max-width:none;flex:none;aspect-ratio:1;border-radius:50%;padding:4px 2px;touch-action:manipulation}
.pc-action-bar .pc-command span{font-size:19px;line-height:20px}.pc-action-bar .pc-command b{font-size:7px;line-height:10px;margin-top:2px}.pc-action-bar .pc-command:disabled{opacity:.5}
@media(max-height:560px){.pc-action-bar .pc-command{width:44px;height:44px}.pc-action-bar .pc-command span{font-size:17px;line-height:18px}}

/* Source: grand-voyage.css */
/* Navigation owns its layout: the HUD and bottom stack never cover each other. */
.grand-voyage{position:fixed;inset:0;margin:auto;width:min(500px,100vw);height:100dvh;overflow:hidden;background:#175b83;color:#fff5de;isolation:isolate;font-family:Arial,Helvetica,sans-serif}
.grand-voyage *{box-sizing:border-box}
.grand-voyage canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.gv-hud{position:absolute;top:env(safe-area-inset-top);left:0;right:0;display:grid;grid-template-columns:1fr auto;gap:5px 8px;padding:10px 12px;background:linear-gradient(#071f34ee,#09283b9c,transparent)}
.gv-heading{min-width:0;align-self:center}
.gv-heading small{font-size:9px;letter-spacing:1px;color:#efd292}
.gv-heading h1{font:700 19px/1.15 Georgia;margin:4px 0;letter-spacing:0}
.gv-heading>span{font-size:10px;color:#c1e5ed}
.gv-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px;align-items:center;justify-content:end;font-size:10px}
.gv-stats span{text-align:center;background:#08283caa;border-radius:5px;padding:4px}
.gv-stats button{min-height:44px;padding:4px 8px;border:1px solid #c8ab6477;border-radius:7px;background:#0a2d43d9;color:#ffe3a2;font-size:10px}
.gv-destination{grid-column:1/-1;font-size:10px;text-shadow:0 2px 3px #001629}
.gv-destination progress{display:block;width:100%;height:5px;margin-top:5px;accent-color:#f4c55e}
.gv-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:6px;max-height:52%;padding:0 10px env(safe-area-inset-bottom);background:linear-gradient(transparent,#071e30b0)}
.gv-crew{display:flex;justify-content:center;gap:6px;flex:none}
.gv-crew span{width:29px;height:33px;border:1px solid #dfbd76;border-radius:5px;background:#0d3049;overflow:hidden;box-shadow:0 2px 5px #00162e66}
.gv-crew img{width:100%;height:100%;object-fit:cover}.gv-reserve{opacity:.6}
.gv-event{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;padding:10px 12px;border:1px solid #cfb57a;border-radius:10px;background:linear-gradient(130deg,#092137f2,#0e3447ed);box-shadow:0 3px 10px #00132455}
.gv-event small{flex:none;font-size:10px;color:#edcb81;letter-spacing:.8px}
.gv-event h2{flex:none;font:700 19px/1.15 Georgia;margin:4px 0}
.gv-event p{min-height:0;overflow:auto;overscroll-behavior:contain;font-size:12px;line-height:1.35;margin:4px 0 8px}
.gv-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:none}
.gv-actions>button:last-child:nth-child(3){grid-column:1/-1}
.gv-event button{min-height:44px;flex:none;border:1px solid #e3bf70;border-radius:7px;background:linear-gradient(#c09345,#edcf84);color:#172335;font-size:11px;font-weight:800;line-height:1.2;white-space:normal;padding:8px}
.gv-event .gv-primary{width:100%;font-size:13px}
.gv-event.gv-quiet{align-self:center;max-width:100%;padding:6px 12px;background:#092137c9;border-color:#cfb57a55;box-shadow:none}
.gv-quiet p{font-size:11px;margin:0}.gv-quiet button{margin-top:4px}
.gv-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;min-height:48px;background:#081e31e6;border-radius:8px;padding:2px 4px}
.gv-footer button{min-height:44px;background:transparent;color:#ffe8ad;font-size:10px;padding:5px 8px}
.gv-footer small{font-size:9px;line-height:1.2;color:#c1d9e3;max-width:42%}
.view-adventure:has(.grand-voyage) #top,.view-adventure:has(.grand-voyage) #nav{display:none}.view-adventure:has(.grand-voyage) #main{padding:0}
@media(max-height:600px){.gv-bottom{max-height:56%}.gv-crew span{width:25px;height:28px}.gv-event{padding:6px 10px}.gv-event h2{font-size:16px}.gv-event p{font-size:11px}.gv-heading h1{font-size:17px}}

/* Scope is deliberately limited to Romance Dawn. */
.romance-dawn .rd-wave-result{animation:rd-wave-notice 1.05s ease-out both}@keyframes rd-wave-notice{0%,62%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.romance-dawn .rd-wave-result{transform:none}}
.romance-dawn .gv-hud{padding:10px 14px;grid-template-columns:1fr 44px;background:linear-gradient(#071f34dd,transparent)}
.romance-dawn .gv-heading small{font-size:9px}.romance-dawn .gv-heading h1{font-size:18px;text-shadow:0 2px 8px #082134}
.romance-dawn .gv-stats{display:block}.romance-dawn .gv-stats button{width:44px;min-height:44px;font-size:19px}
.romance-dawn .gv-bottom{max-height:43%;padding-bottom:env(safe-area-inset-bottom)}
.romance-dawn .gv-event{animation:rd-reveal .22s ease-out}.romance-dawn .gv-event p{font-size:12px}
.romance-dawn .gv-footer{opacity:.88;justify-content:space-around;min-height:48px}.romance-dawn .gv-footer button{font-size:10px;flex:1;padding:5px}
.romance-dawn .gv-quiet{opacity:0;animation:rd-receipt 3s ease-out forwards;pointer-events:none}
@keyframes rd-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes rd-receipt{0%,75%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.romance-dawn .gv-event{animation:none}.romance-dawn .gv-quiet{opacity:1}}

.romance-dawn .gv-footer{align-self:flex-end;min-width:95px;background:transparent}.romance-dawn .gv-hud{padding-top:8px}.romance-dawn .gv-destination{font-size:9px}.romance-dawn .gv-bottom:empty{background:none}
.romance-dawn .rd-alert-head{display:flex;gap:10px;align-items:center}.romance-dawn .rd-alert-head img{width:48px;height:54px;object-fit:cover;border:2px solid #efc86e;border-radius:8px}.romance-dawn .rd-alert-head small{font-weight:800;letter-spacing:1.2px}.romance-dawn .rd-crew-warning{padding:7px 0;border-top:1px solid #e6c87c44;margin-top:8px;font-size:14px;line-height:1.4}.romance-dawn .gv-event:has(.rd-alert-head){border-width:2px;box-shadow:0 0 24px #efc86e44;animation:rd-reveal .35s ease-out}
.romance-dawn .gv-quiet:has(.rd-result){width:min(100%,370px);padding:0;border:0;background:none;animation:rd-receipt 4.5s ease-out forwards}.rd-result{padding:14px 16px;border:2px solid #f3d475;border-radius:12px;background:linear-gradient(120deg,#123d43f5,#08273af5);box-shadow:0 0 30px #f3d47544}.rd-result.rd-loss{border-color:#ff896e;background:linear-gradient(120deg,#572833f5,#172d42f5);box-shadow:0 0 30px #ff705044}.rd-result.rd-neutral{border-color:#87cfe7}.romance-dawn .rd-result h2{font-size:16px;margin:5px 0 10px}.rd-result-values{display:flex;gap:10px;flex-wrap:wrap}.rd-result-values span{flex:1;font-size:10px;font-weight:800;letter-spacing:.5px}.rd-result-values strong{display:block;font-size:30px;line-height:1.2;color:#ffe59c;animation:rd-value .35s ease-out}.rd-loss .rd-result-values strong{color:#ffad97}.romance-dawn .rd-result p{font-size:11px;margin-top:10px;color:#d4e7eb}@keyframes rd-value{from{transform:scale(.75);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.romance-dawn .gv-event:has(.rd-alert-head),.rd-result-values strong{animation:none}}

/* Grand Voyage 14 is confined to the first arc. Existing arc layouts are untouched. */
.gv14 .gv14-top{position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;padding:10px 12px 18px;background:linear-gradient(#061c36e8,#0d395776,transparent);pointer-events:none}
.gv14-top button{pointer-events:auto}.gv14-resources{display:flex;justify-content:flex-end;gap:6px;margin-bottom:12px;font-size:10px;font-weight:800;color:#ffedba;font-variant-numeric:tabular-nums}
.gv14-resources span{padding:5px 8px;border:1px solid #cfb27077;border-radius:14px;background:#092139db;box-shadow:0 2px 4px #00152d55}
.gv14-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.gv14-title small{font-size:8px;letter-spacing:1px;color:#f4d887}.gv14-title h1{font:700 21px/1.12 Georgia,serif;margin:5px 0;color:#fff5d7;text-shadow:0 2px 5px #061b31}.gv14-title button{flex-shrink:0;width:44px;min-height:44px;border-radius:12px;padding:5px;font-size:20px;background:#092c46db;color:#ffdf94;border:1px solid #cfb270}
.gv14-progress{max-width:82%;margin-top:7px;font-size:9px;color:#ecf9ff}.gv14-progress progress{display:block;width:100%;height:5px;margin-top:5px;accent-color:#f5c85e}.gv14-progress progress::-webkit-progress-bar{background:#112b43;border-radius:5px}.gv14-progress progress::-webkit-progress-value{background:#f5c85e;border-radius:5px}
.gv14-tools{position:absolute;right:9px;top:calc(env(safe-area-inset-top,0px) + 155px);display:flex;flex-direction:column;gap:9px;width:44px}.gv14-tools button{padding:4px 0;min-height:44px;background:#092c46df;border:1px solid #d4b977;border-radius:12px;color:#ffe8ac;box-shadow:0 3px 9px #001a3c44;display:flex;align-items:center;flex-direction:column;gap:2px}.gv14-tools b{font-size:18px;line-height:20px}.gv14-tools small{font-size:8px}.gv14-tools button:first-child{background:#092c46c9}.gv14-map-art{width:32px;height:22px;background:#1e9aca url('assets/romance-dawn/coast-14.webp') center/cover;border-radius:50%;border:1px solid #ffdc83}
.gv14-auto{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);left:12px;color:#e9f9ff;font-size:8px;font-weight:bold;letter-spacing:1.1px;padding:5px 8px;border-radius:14px;background:#072c46a3;pointer-events:none}.gv14-auto span{display:inline-block;font-size:13px;vertical-align:middle}.gv14:has(.gv-event) .gv14-auto{display:none}
.gv14 .gv-bottom{padding:0 10px calc(env(safe-area-inset-bottom,0px) + 12px);max-height:36%;background:none;gap:6px}.gv14 .gv-event{padding:11px 14px;background:linear-gradient(130deg,#071c31f5,#0a3450f5);border:1px solid #edcf84;border-radius:13px;box-shadow:0 6px 24px #001a3c66}.gv14 .gv-event small{font-size:8px;letter-spacing:.7px;color:#ffda85}.gv14 .gv-event h2{font:700 20px/1.1 Georgia,serif;margin:5px 0 7px}.gv14 .gv-event p{font-size:11px;line-height:1.4;margin:6px 0 9px;color:#edf7ff}.gv14 .gv-actions{display:flex;gap:8px}.gv14 .gv-actions button,.gv14-arrival button{flex:1;min-height:44px;border-radius:10px;padding:8px 4px;font-size:11px;font-weight:800;border:1px solid #d8b366;background:linear-gradient(#ecca7b,#bb8e3c);color:#12263b}.gv14 .gv-actions button:last-child{background:linear-gradient(#176396,#0a416d);border-color:#79c8f2;color:#f1faff}.gv14 .gv14-consequence{display:block;margin-top:7px;font-size:8px;color:#bad9e8;letter-spacing:0}
.gv14 .gv14-choice{animation:gv14-choice .45s ease-out both}.gv14 .gv-quiet:has(.rd-result){background:none;border:0;padding:0;animation:gv14-receipt 4.5s both}.gv14 .rd-result h2{font-size:17px}.gv14 .rd-result-values strong{font-size:26px}.gv14-panel-coast{width:100%;max-height:180px;object-fit:contain;background:linear-gradient(#319ee1,#8fdcf1);border-radius:12px}.gv14-arrival{text-align:center;animation:gv14-choice .4s ease-out both}.gv14 .gv-footer{align-self:flex-end;margin:0;min-height:30px}.gv14 .gv-footer button{min-height:32px;font-size:9px;background:#062c46c9}
@keyframes gv14-choice{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes gv14-receipt{0%,18%{opacity:0;transform:translateY(8px)}28%,83%{opacity:1;transform:translateY(0)}100%{opacity:0}}
@media(max-height:620px){.gv14-resources{margin-bottom:6px}.gv14-title h1{font-size:17px}.gv14-tools{top:130px;gap:5px}.gv14 .gv-bottom{max-height:42%}.gv14 .gv-event{padding:8px 11px}.gv14 .gv-event p{font-size:10px}.gv14 .gv-event h2{font-size:17px}.gv14 .gv14-consequence{font-size:7px}}
@media(prefers-reduced-motion:reduce){.gv14 .gv14-choice,.gv14 .gv-quiet:has(.rd-result),.gv14-arrival{animation:none}}

/* Source: voyage-cinema-demo.css */
.cinema-demo{position:fixed;inset:0;z-index:1000;isolation:isolate;overflow:hidden;background:#092a45;color:#fff5e0;font-family:Arial,Helvetica,sans-serif}.cinema-demo *{box-sizing:border-box}.cinema-demo [hidden]{display:none!important}.cinema-canvas,.cinema-shade{position:absolute;inset:0;width:100%;height:100%}.cinema-shade{pointer-events:none;background:linear-gradient(#04172bba,transparent 24%,transparent 65%,#04172be6)}.cinema-header{position:absolute;top:env(safe-area-inset-top);left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 6px}.cinema-header small{font-size:9px;letter-spacing:1.6px;color:#f0d59f}.cinema-header h1{font:600 23px/1.15 Georgia;margin:6px 0;text-shadow:0 2px 12px #061628}.cinema-demo button{border:1px solid #d8bc7a88;border-radius:9px;background:#0c293cce;color:#fff2d5;min-height:44px;padding:9px 12px;font:600 12px/1.25 Arial;cursor:pointer}.cinema-header>button{font-size:27px;min-width:44px;padding:0}.cinema-route{position:absolute;top:calc(91px + env(safe-area-inset-top));left:18px;right:18px;font-size:11px;letter-spacing:.3px;text-shadow:0 1px 6px #061628}.cinema-route progress{display:block;width:100%;height:3px;margin-top:8px;accent-color:#ecd095}.cinema-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;gap:8px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));max-height:46%}.cinema-panel{min-height:0;flex:0 1 auto;display:flex;flex-direction:column;padding:14px;border:1px solid #e0c58c99;border-radius:14px;background:linear-gradient(145deg,#0b2438ed,#103346ed);box-shadow:0 8px 24px #03172755;backdrop-filter:blur(8px)}.cinema-panel small{font-size:10px;letter-spacing:1px;color:#eaca88}.cinema-panel h2{font:600 19px/1.2 Georgia;margin:5px 0 10px}.cinema-panel p{font-size:13px;line-height:1.45;overflow:auto;min-height:0;margin:3px 0 9px}.cinema-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:none}.cinema-actions button:first-child{background:linear-gradient(120deg,#bf9658,#efd9a3);color:#132c3d;border-color:#f5dca5}.cinema-controls{display:flex;gap:6px;flex:none;justify-content:center}.cinema-controls button{font-size:10px;padding:8px;background:#082237a8;flex:1}.cinema-controls button[aria-pressed=true]{border-color:#f8dda0;background:#254458}.cinema-roster{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:8px;background:#082237e6;border-radius:10px}.cinema-roster span{min-width:0;text-align:center}.cinema-roster img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}.cinema-roster small{display:block;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cinema-launch{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:12px 0;padding:14px 16px!important;text-align:left;border:1px solid #d0b17488!important;background:linear-gradient(120deg,#173b50,#10253a)!important;color:#ffe9bd!important;border-radius:12px!important;min-height:62px}.cinema-launch strong{font:600 17px Georgia}.cinema-launch small{display:block;font-size:10px;margin-top:4px;color:#bfdae4}.cinema-launch>b{font-size:23px}@media(max-height:620px){.cinema-header{padding-top:8px}.cinema-header h1{font-size:20px}.cinema-route{top:calc(75px + env(safe-area-inset-top))}.cinema-panel{padding:10px}.cinema-panel h2{font-size:16px}.cinema-bottom{max-height:49%;padding-bottom:calc(6px + env(safe-area-inset-bottom))}}

/* Source: coliseum.css */
body.view-coliseum #main{padding:0!important;overflow:hidden!important;height:100%;min-height:0}
body.view-coliseum #game{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body.view-coliseum #nav{display:none}body.view-coliseum #top{flex:none}
.col-shell{height:100%;min-height:0;display:flex;flex-direction:column;background:linear-gradient(#07182799,#071827f5),url('assets/coliseum/arena.webp') center/cover;color:#f5eddb}
.col-heading{display:flex;align-items:center;gap:10px;padding:16px 14px;border-bottom:1px solid #c8a56466;background:#10293deb;flex:none}
.col-heading>button{width:36px;height:40px;border:1px solid #c9ac6a66;background:#17394e;border-radius:10px;color:#f7dfaa;font-size:26px}.col-heading>div{flex:1}.col-heading small{font-size:8px;letter-spacing:1px;color:#d9b771}.col-heading h1{font:700 25px/1.1 Georgia;margin:5px 0;color:#f7dfaa}.col-heading>span{font-size:12px;white-space:nowrap}.col-heading p{font-size:10px;color:#b9ced8;margin:5px 0}
.col-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px;scrollbar-width:thin}.col-shell>footer{padding:8px;font-size:9px;text-align:center;color:#a5bac6;background:#071827;flex:none}.col-hero{min-height:205px;padding:26px 20px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid #d3af7666;border-radius:14px;background:linear-gradient(transparent,#201c18ed),url('assets/coliseum/arena.webp') center 25%/cover}.col-hero>span{font-size:9px;letter-spacing:1.5px;color:#f0ce8a}.col-hero h2{font:700 32px Georgia;color:#ffe3a3;margin:10px 0}.col-hero p{font-size:12px;color:#f2dfbc}
.col-records{display:grid;grid-template-columns:repeat(3,1fr);padding:18px 0;text-align:center}.col-records span{font-size:8px;color:#b9c6ca;border-right:1px solid #cbb06c55}.col-records span:last-child{border:0}.col-records b{display:block;font:24px Georgia;color:#f1ce86;margin-bottom:5px}.col-menu{display:grid;grid-template-columns:1fr 1fr;gap:10px}.col-body button.primary,.col-body button.secondary{width:100%;min-height:46px;margin:5px 0;padding:12px;line-height:1.4;font-size:11px;touch-action:manipulation}.col-menu button{min-height:85px!important;text-align:left}.col-menu b,.col-menu small{display:block}.col-menu small{color:#aebfc7;font-size:10px;font-weight:400;margin-top:6px}.col-panel{padding:16px;border:1px solid #d1ac6555;border-radius:14px;background:linear-gradient(140deg,#213344ed,#102231f5);margin:10px 0}.col-panel h2{font:700 21px Georgia;color:#f0d69d;margin:0 0 9px}.col-body p{font-size:12px;line-height:1.6}.col-panel>small{color:#d7b776;font-size:9px;letter-spacing:1px}.col-blocks{display:grid;grid-template-columns:1fr 1fr;gap:10px}.col-blocks .col-panel{padding:12px}.col-difficulty{display:flex;align-items:center;justify-content:space-between;font-size:12px}.col-difficulty select{min-height:44px;max-width:65%;padding:8px;border-radius:10px;background:#102b40;color:#f5eddb;border:1px solid #d2b57766}.col-muted{color:#a8beca;font-size:10px!important}.col-warning{color:#ffb29f}.col-card{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #c8a56433}.col-card>img{width:56px;height:66px;object-fit:cover;border:1px solid #c5a265;border-radius:9px}.col-card>div{flex:1;min-width:0}.col-card b{font-size:13px}.col-card small{display:block;font-size:9px;color:#b7c9d0;line-height:1.5}.col-card p{font-size:10px;margin:4px 0}.col-opponent{display:flex;align-items:center;gap:14px}.col-opponent img{width:75px;height:110px;object-fit:contain}.col-opponent small{font-size:10px;color:#b9c9d2}.col-result{text-align:center;padding:25px 8px}.col-result>span{font-size:50px}.col-result h2{font:700 30px Georgia;color:#f7dca2;margin:12px 0}.col-reward{display:flex;gap:8px;flex-wrap:wrap}.col-reward>span{padding:9px;border:1px solid #c8a56455;border-radius:10px;background:#071827;color:#f7dca2;font-size:12px}.col-shop-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #c8a56444}.col-shop-item>div{flex:1}.col-shop-item b{font-size:13px}.col-shop-item small{display:block;color:#a5bdcb;font-size:9px;margin-top:5px}.col-shop-item>button{width:85px!important}.col-record-list>div{display:flex;justify-content:space-between;gap:10px;padding:17px 4px;border-bottom:1px solid #c8a56444;font-size:13px}.col-record-list b{color:#f3d495}.col-map-entry{margin:14px 0;border:1px solid #d1b47477;background:linear-gradient(100deg,#583123,#102b40);border-radius:14px;padding:15px;color:#f4d89e}.col-map-entry button{min-height:44px;width:100%;margin-top:8px}
@media(min-width:650px){.col-body{padding:20px max(20px,calc((100% - 740px)/2))}.col-team{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}}

/* Source: grand-summon.css */
/* Grand Summon: authored images and lightweight layers, never a claimed video. */
.grand-summon:is(.phase-sailing,.phase-chest,.phase-opening)>.recruit-ocean,.grand-summon:is(.phase-sailing,.phase-chest,.phase-opening)>:is(.recruit-atmosphere,.recruit-lightning,.recruit-particles){display:none}
.gs-discovery,.gs-deck-scene{position:absolute;inset:0;overflow:hidden;--gs-progress:0;--gs-lift:0;--gs-approach:0;--gs-bob:0;--gs-roll:0;--gs-hue:#ffd376}
.gs-sea-plate,.gs-deck-plate{position:absolute;inset:0;background:#07517d url('assets/recruit/grand-summon/ocean-anime-v12.webp') center/cover;transition:opacity .35s;pointer-events:none}.gs-sea-plate{transform:scale(calc(1.02 + var(--gs-progress)*.035))}.gs-deck-plate{background-image:url('assets/recruit/grand-summon/deck-anime-v12.webp');opacity:0}.gs-deck-scene>.gs-deck-plate,.gs-discovery[data-shot=hoist]>.gs-deck-plate,.gs-discovery[data-shot=landing]>.gs-deck-plate{opacity:1}
.gs-ship{position:absolute;left:4%;top:24%;width:94%;height:52%;transform:translate(calc(var(--gs-approach)*-8%),calc(var(--gs-bob)*1px)) rotate(calc(var(--gs-roll)*.4deg)) scale(calc(1 - var(--gs-approach)*.08));transition:opacity .35s}.gs-ship>img{position:relative;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 8px #00304799)}.gs-wake{position:absolute;left:18%;top:69%;width:64%;height:42%;background:radial-gradient(ellipse at 50% 0,#e9ffffbb,transparent 65%);transform:rotate(-18deg);opacity:.75}.gs-horizon-glow{position:absolute;left:72%;top:37%;width:8px;height:8px;opacity:0;border-radius:50%;background:#fff8c5;box-shadow:0 0 20px 9px #ffde85,0 0 65px 20px #ffc96788;transition:opacity .45s}.gs-discovery[data-shot=discovery] .gs-horizon-glow,.gs-discovery[data-shot=approach] .gs-horizon-glow{opacity:1}
.gs-haul{position:absolute;left:50%;top:52%;width:min(90vw,460px);aspect-ratio:1;transform:translate(calc(-50% + (1 - var(--gs-approach))*30%),calc(-50% + (1 - var(--gs-lift))*30% + var(--gs-bob)*1px)) scale(calc(.24 + var(--gs-approach)*.3 + var(--gs-lift)*.46)) rotate(calc((1 - var(--gs-lift))*var(--gs-roll)*1deg));opacity:0;filter:drop-shadow(0 10px 8px #052c4699);transition:opacity .3s;z-index:4}.gs-discovery[data-shot=approach] .gs-haul,.gs-discovery[data-shot=hoist] .gs-haul,.gs-discovery[data-shot=landing] .gs-haul{opacity:1}.gs-chest-sprite{position:absolute;inset:0;background:url('assets/recruit/chest-atlas.webp') left center/200% 100% no-repeat}.gs-ropes{position:absolute;inset:-40% -12% 0;width:124%;height:140%;overflow:visible;opacity:0}.gs-ropes path{stroke:#d6b982;stroke-width:1.3;fill:none;stroke-linecap:round}.gs-ropes path+path{stroke:#6f4d2b;stroke-width:.45;stroke-dasharray:1.2 1}.gs-discovery[data-shot=hoist] .gs-ropes{opacity:1}.gs-discovery[data-shot=landing] .gs-ropes{opacity:.7;transform:rotate(3deg);transform-origin:50% 0;transition:transform .4s}.gs-water-drips{position:absolute;left:10%;right:10%;top:74%;height:25%;opacity:0;background:repeating-linear-gradient(90deg,transparent 0 19px,#bcefffaa 20px 22px,transparent 23px 45px);mask-image:linear-gradient(#000,transparent);transform:translateY(calc(var(--gs-progress)*22%))}.gs-discovery[data-shot=hoist] .gs-water-drips{opacity:calc(1 - var(--gs-lift))}.gs-landing-dust{position:absolute;inset:75% -15% 0;background:radial-gradient(ellipse,#f5dca888,transparent 65%);opacity:0}.gs-discovery[data-shot=landing] .gs-landing-dust{opacity:.55;transform:scale(1.3)}.gs-sea-foam{position:absolute;inset:65% -10% -10%;background:repeating-radial-gradient(ellipse at 30% 50%,transparent 0 32px,#c5fcff33 34px 35px,transparent 38px 80px);opacity:.4;pointer-events:none}.gs-discovery[data-shot=hoist] .gs-sea-foam,.gs-discovery[data-shot=landing] .gs-sea-foam,.gs-discovery[data-shot=hoist] .gs-ship,.gs-discovery[data-shot=landing] .gs-ship,.gs-discovery[data-shot=landing] .gs-horizon-glow{opacity:0}
.gs-crew{position:absolute;left:4%;top:37%;height:31%;width:50%;z-index:3;opacity:0;transition:opacity .3s;pointer-events:none}.gs-crew>img{position:absolute;height:100%;width:75%;object-fit:contain;left:calc(var(--crew-index)*40%);filter:drop-shadow(0 5px 5px #0008);transform:rotate(calc((1 - var(--gs-lift))*-4deg));opacity:.9}.gs-discovery[data-shot=hoist] .gs-crew{opacity:1}.gs-caption{position:absolute;left:12%;right:12%;bottom:calc(11% + env(safe-area-inset-bottom,0px));padding:12px 14px;margin:0;border:1px solid #f5d68a55;border-radius:12px;background:#071d30de;font:700 14px/1.5 Georgia;color:#fff0c2;text-align:center;z-index:8;text-shadow:0 2px 3px #000}
.grand-summon .recruit-treasure-anchor{top:52%;width:min(90vw,460px);height:min(90vw,460px)}.grand-summon .recruit-treasure-anchor .recruit-treasure{animation:none;filter:drop-shadow(0 12px 12px #0a172ba8)}.grand-summon .recruit-treasure>.recruit-lock-target{pointer-events:auto;cursor:pointer;left:29%;top:52%;width:20%;height:24%;min-height:44px;min-width:44px;border:1px solid transparent!important;border-radius:50%;padding:0;background:transparent!important;z-index:9}.grand-summon .recruit-lock-target:focus-visible{outline:2px solid #fff0b0;outline-offset:3px}.grand-summon .recruit-key{left:69%;top:7%;width:48%;z-index:12;transform:translate(-50%,-50%);animation:none!important}.grand-summon .recruit-key:active:not(:disabled){transform:translate(-50%,-50%)}.grand-summon .recruit-key>img{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none;filter:drop-shadow(0 0 8px #ffd16b88)}.grand-summon .recruit-key>svg{display:none}.grand-summon .recruit-key small{font-size:8px;top:83%;line-height:1.5;letter-spacing:.6px}.grand-summon .recruit-key.is-selected{filter:drop-shadow(0 0 15px #ffe7a8)}.grand-summon .recruit-lock-target.is-selected{border-color:#fff0a6!important;box-shadow:0 0 22px #ffdb79!important}.grand-summon .recruit-scene-caption{bottom:calc(8% + env(safe-area-inset-bottom,0px));left:7%;right:7%;padding:10px;background:linear-gradient(transparent,#071729bd);border-radius:10px}.grand-summon .recruit-scene-caption h1{font-size:clamp(25px,7vw,35px);line-height:1.1;margin:8px 0}.grand-summon .recruit-scene-caption p{font-size:11px;line-height:1.5;max-width:330px;margin:auto}
.gs-cabin-shade{position:absolute;inset:0;background:linear-gradient(#03182711,#04112622 50%,#06142599);pointer-events:none}.gs-energy-column{position:absolute;left:17%;right:17%;top:-10%;bottom:37%;background:linear-gradient(90deg,transparent,#ffe1a877,#fff0be,#ffe1a877,transparent);filter:blur(3px);opacity:0;transform-origin:50% 100%;pointer-events:none}.gs-energy-rings{position:absolute;inset:18% -10% 20%;border:2px solid #ffe4a9;border-radius:50%;box-shadow:0 0 50px #ffce7a77,inset 0 0 45px #ffce7a55;opacity:0;pointer-events:none}.gs-sparks{position:absolute;inset:0;pointer-events:none;opacity:0}.gs-sparks i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff3b4;left:calc(12% + var(--i)*8%);top:calc(20% + var(--i)*4%);box-shadow:0 0 8px #ffd68a;transform:translateY(calc(var(--gs-progress)*-35px))}.gs-silhouette{position:absolute;left:13%;top:15%;width:74%;height:58%;object-fit:contain;filter:brightness(0) drop-shadow(0 0 13px #ffd677);opacity:0;z-index:7;pointer-events:none}
.grand-summon.phase-opening .recruit-key{left:39%;top:65%;opacity:0}.grand-summon.phase-opening .recruit-key>img{transform:rotateX(70deg);transition:none}.grand-summon.phase-opening .recruit-treasure-anchor .recruit-treasure.is-opening{animation:none!important}.grand-summon.phase-opening .recruit-chest-art.closed,.grand-summon.phase-opening .recruit-chest-art.opened,.grand-summon.phase-opening .recruit-lock-target,.grand-summon.phase-opening .recruit-emerging-cards i{animation:none!important;transition:opacity .35s,transform .35s}.grand-summon.phase-opening .recruit-emerging-cards{display:none}.grand-summon.phase-opening .recruit-chest-art.closed{opacity:1}.grand-summon.phase-opening .recruit-chest-art.opened{opacity:0;transform:translateY(-2px)}.gs-deck-scene[data-shot=opening] .recruit-chest-art.closed,.gs-deck-scene[data-shot=energy] .recruit-chest-art.closed,.gs-deck-scene[data-shot=silhouette] .recruit-chest-art.closed{opacity:0}.gs-deck-scene[data-shot=opening] .recruit-chest-art.opened,.gs-deck-scene[data-shot=energy] .recruit-chest-art.opened,.gs-deck-scene[data-shot=silhouette] .recruit-chest-art.opened{opacity:1;transform:none}.gs-deck-scene[data-shot=unlock] .recruit-key{opacity:1}.gs-deck-scene[data-shot=unlock] .recruit-key>img{transform:rotateX(calc(var(--gs-progress)*260deg))}.gs-deck-scene[data-shot=opening] .gs-energy-column{opacity:.35}.gs-deck-scene[data-shot=energy] .gs-energy-column,.gs-deck-scene[data-shot=silhouette] .gs-energy-column{opacity:.8}.gs-deck-scene[data-shot=energy] .gs-energy-rings{opacity:.3;transform:scale(1.2)}.gs-deck-scene[data-shot=silhouette] .gs-silhouette{opacity:.8}.gs-deck-scene:is([data-shot=energy],[data-shot=silhouette]) .gs-sparks{opacity:.8}.grand-summon[data-rarity=UR] .gs-energy-column{background:linear-gradient(90deg,transparent,#a968eab3,#ffe9c0,#a968eab3,transparent)}.grand-summon[data-rarity=UR] .gs-energy-rings{border-color:#c68bff;box-shadow:0 0 60px #b37df677}.grand-summon[data-rarity=LR].phase-opening .gs-sea-plate,.grand-summon[data-rarity=LR].phase-opening .gs-deck-plate{filter:brightness(.62) saturate(1.2)}.grand-summon[data-rarity=LR] .gs-energy-column{left:5%;right:5%;filter:blur(1px);box-shadow:0 0 90px #ffd07855}.grand-summon[data-rarity=LR] .gs-energy-rings{border-width:3px;box-shadow:0 0 80px #ffce7aaa,inset 0 0 70px #ffce7a55}
.gs-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;z-index:6;pointer-events:none}.gs-film-active .gs-film{opacity:1}.gs-film-active>:is(.gs-ship,.gs-haul,.gs-crew,.gs-sea-foam,.recruit-treasure-anchor,.gs-energy-column,.gs-energy-rings,.gs-silhouette,.gs-sparks){visibility:hidden}.gs-static .gs-sea-plate{transform:none}.gs-static .gs-haul{transform:translate(-50%,-50%) scale(.9);transition:none}.gs-static .gs-ship{transform:none}.gs-static .gs-crew>img{transform:none}.gs-static :is(.gs-sparks,.gs-water-drips,.gs-sea-foam,.gs-energy-rings){display:none}.gs-static .gs-energy-column{opacity:.3!important}.app-paused .grand-summon *{animation-play-state:paused!important}
@media(max-height:650px){.grand-summon .recruit-treasure-anchor{top:49%;width:min(70vw,340px);height:min(70vw,340px)}.grand-summon .recruit-scene-caption{bottom:7%}.grand-summon .recruit-scene-caption h1{font-size:25px}.gs-caption{bottom:9%;font-size:12px}.grand-summon .recruit-key{top:4%}}
@media(prefers-reduced-motion:reduce){.grand-summon *{animation:none!important;transition:none!important}.gs-sea-plate,.gs-ship,.gs-crew>img{transform:none!important}.gs-sparks,.gs-water-drips,.gs-sea-foam,.gs-energy-rings{display:none!important}.grand-summon .gs-energy-column{opacity:.25!important}.grand-summon.phase-opening .recruit-chest-art.closed{opacity:0!important}.grand-summon.phase-opening .recruit-chest-art.opened{opacity:1!important}.gs-silhouette{filter:brightness(0)} }

.grand-summon .recruit-key.gs-key-failed>img{display:none}.grand-summon .recruit-key.gs-key-failed>svg{display:block}.grand-summon.phase-opening .recruit-key{transform:translate(-4%,-50%)}

.gs-energy-ship{position:absolute;left:12%;top:25%;width:76%;height:49%;object-fit:contain;opacity:0;pointer-events:none;z-index:2;transition:opacity .35s,transform .4s;transform:scale(.9)}.gs-deck-scene[data-shot=energy] .gs-energy-ship{opacity:1;transform:scale(1)}.gs-deck-scene[data-shot=silhouette] .gs-energy-ship{opacity:.25;transform:scale(.88)}.gs-deck-scene:is([data-shot=energy],[data-shot=silhouette])>.gs-deck-plate{opacity:0}.gs-deck-scene:is([data-shot=energy],[data-shot=silhouette]) .recruit-treasure-anchor{opacity:0;pointer-events:none;transition:opacity .35s}.gs-energy-arcs{position:absolute;inset:8% 4% 10%;width:92%;height:82%;opacity:0;pointer-events:none;z-index:5}.gs-energy-arcs path{fill:none;stroke:#d8b1ff;stroke-width:2;stroke-linejoin:round}.grand-summon[data-rarity=UR] [data-shot=energy] .gs-energy-arcs{opacity:.65}.grand-summon[data-rarity=LR] [data-shot=energy] .gs-energy-arcs{opacity:.65}.grand-summon[data-rarity=LR] .gs-energy-arcs path{stroke:#ffe5a6}.gs-static .gs-energy-ship{transform:none!important}.gs-static .gs-energy-arcs{display:none}.gs-film-active>.gs-energy-ship,.gs-film-active>.gs-energy-arcs{visibility:hidden}@media(prefers-reduced-motion:reduce){.gs-energy-arcs{display:none!important}.gs-energy-ship{transform:none!important}}
/* 1.1: one chest footprint from the winch to the live key scene. */
.grand-summon{--gs-chest-size:min(54vw,270px);--gs-chest-top:62%}
.grand-summon .gs-haul,.grand-summon .recruit-treasure-anchor{width:var(--gs-chest-size);height:var(--gs-chest-size);aspect-ratio:1}
.grand-summon .recruit-treasure-anchor{top:var(--gs-chest-top);transform:translate(-50%,-50%)}
.grand-summon .gs-haul{left:calc(var(--pose-chestX,50)*1%);top:calc(var(--pose-chestY,50)*1%);transform:translate(-50%,-50%) rotate(calc(var(--pose-chestRoll,0)*1deg));transition:opacity .25s;filter:none;will-change:left,top,transform}
.grand-summon .gs-chest-sprite{filter:drop-shadow(0 8px 6px #10233370)}
.grand-summon .gs-discovery>.gs-deck-plate{opacity:var(--pose-deck,0);transition:none}.grand-summon .gs-discovery>.gs-sea-plate{opacity:var(--pose-sea,1);transform:none;transition:none}
.grand-summon .gs-discovery .gs-ship{transform:translateX(calc(var(--pose-shipX,0)*1%));opacity:var(--pose-sea,1);transition:none}
.grand-summon .gs-discovery .gs-ropes{opacity:var(--pose-rope,0);transform:none;transition:none}
.grand-summon .gs-discovery .gs-water-drips{opacity:calc(var(--pose-rope,0)*.6);height:30%;background:repeating-linear-gradient(90deg,transparent 0 27px,#dcfbff99 28px 29px,transparent 30px 59px);transform:translateY(calc(var(--gs-progress)*40%))}
.grand-summon .gs-discovery .gs-landing-dust{opacity:calc(var(--pose-land,0)*.4);transform:scale(calc(1 + var(--pose-land,0)*.3))}
.grand-summon .gs-discovery .gs-crew{left:0;top:42%;width:40%;height:36%;z-index:3;opacity:var(--pose-deck,0);transition:none}
.grand-summon .gs-crew>.gs-hauler{left:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:rotate(calc(var(--pose-crewPull,0)*1deg));transform-origin:50% 95%;filter:none;opacity:1}
.grand-summon.phase-opening .recruit-key{left:calc(var(--pose-keyX,69)*1%);top:calc(var(--pose-keyY,7)*1%);transform:translate(-10%,-50%);opacity:1;transition:none}
.grand-summon.phase-opening .recruit-key>img{transform:rotateX(calc(var(--pose-keyTurn,0)*1deg));transition:none}.grand-summon.phase-opening .gs-deck-scene:not([data-shot=unlock]) .recruit-key{opacity:0;transition:opacity .18s}
.grand-summon .gs-silhouette{filter:brightness(0);transition:opacity .3s}.grand-summon .gs-energy-column{filter:none!important;box-shadow:none!important}.grand-summon .gs-energy-rings{box-shadow:0 0 25px #ffd78055!important}.grand-summon.phase-opening .recruit-treasure-anchor .recruit-treasure{filter:none}
.gs-recovery{padding:70px 22px 35px;text-align:center;align-items:center;justify-content:center;gap:16px;background:linear-gradient(#173a55,#071827)}.gs-recovery h1{font:700 28px Georgia;color:#ffe0a1}.gs-recovery>img{width:75%;height:50%;object-fit:contain}.gs-recovery>button{min-height:48px;padding:12px 20px;border:1px solid #e6c581;border-radius:10px;background:#d5ae69;color:#092336;font-weight:700}.gs-recovery p{font-size:12px;line-height:1.6}
@media(max-height:650px){.grand-summon{--gs-chest-size:min(52vw,250px)}.grand-summon .recruit-treasure-anchor{top:var(--gs-chest-top)}}
@media(prefers-reduced-motion:reduce){.grand-summon .gs-haul{will-change:auto;left:50%;top:62%;transform:translate(-50%,-50%)}.grand-summon .gs-crew>.gs-hauler{transform:none}.grand-summon .gs-discovery .gs-ship{transform:none}}

/* 1.2: wide anime establishing shot; ship starts at 30% of the previous footprint. */
.grand-summon .gs-discovery .gs-ship{left:calc(var(--pose-shipX,12)*1%);top:42%;width:28.2%;height:15.6%;transform:translateY(calc(var(--pose-shipBob,0)*1px)) rotate(calc(var(--pose-shipRoll,0)*1deg));will-change:left,transform;transition:none}
.grand-summon .gs-ship>img{filter:drop-shadow(0 4px 2px #07395655)}
.grand-summon .gs-wake{left:4%;top:75%;width:88%;height:28%;background:radial-gradient(ellipse at 50% 0,#e5ffffb3,transparent 68%);transform:rotate(-12deg)}
.grand-summon .gs-energy-ship{left:27%;top:30%;width:46%;height:32%}
.grand-summon .gs-sea-foam{opacity:.17}
@media(prefers-reduced-motion:reduce){.grand-summon .gs-discovery .gs-ship{will-change:auto}}

.grand-summon .gs-discovery>.gs-sea-plate{transform:scale(1.025) translateY(calc(var(--gs-progress)*-.6%))}
@media(prefers-reduced-motion:reduce){.grand-summon .gs-discovery>.gs-sea-plate{transform:none}}

/* 1.3 — automatic crew action; shared small anime chest. */
.grand-summon{--gs-chest-size:min(36vw,180px);--gs-chest-top:65%}
.grand-summon .gs-haul{transform:translate(-50%,-50%) scale(var(--pose-chestScale,.32)) rotate(calc(var(--pose-chestRoll,0)*1deg))}
.grand-summon .gs-chest-sprite,.grand-summon .recruit-chest-art{background-image:url('assets/recruit/grand-summon/chest-anime-v13.webp');background-size:200% 100%;background-repeat:no-repeat}
.grand-summon .recruit-chest-art.closed{background-position:0 50%}.grand-summon .recruit-chest-art.opened{background-position:100% 50%}
.grand-summon .gs-action-crew{position:absolute;inset:0;opacity:var(--pose-deck,1);z-index:5;pointer-events:none}
.gs-actor{position:absolute;left:1%;top:34%;width:32%;height:46%;transform:rotate(calc(var(--pose-crewPull,0)*1deg));transform-origin:50% 96%}
.gs-actor>i{display:block;width:100%;height:100%;background-image:url('assets/recruit/grand-summon/luffy-actions-v13.webp');background-repeat:no-repeat;background-size:300% 100%;background-position:0 50%}
.gs-actor.actor-1{left:auto;right:1%}.gs-actor.actor-1>i{background-image:url('assets/recruit/grand-summon/zoro-actions-v13.webp')}
.gs-discovery:is([data-shot=hoist],[data-shot=landing]) .gs-actor>i{background-position:50% 50%}
.gs-open-crew .gs-actor>i{background-position:100% 50%}.gs-open-crew .gs-actor{top:35%;height:45%}
.grand-summon .gs-discovery[data-shot=reach] .gs-haul{opacity:1}
.gs-cast-rope{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#e6be72;stroke-width:3;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;opacity:0;z-index:6;pointer-events:none}
.gs-discovery[data-shot=reach] .gs-cast-rope{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .7s ease-out,opacity .2s}
.gs-auto-opening .recruit-treasure-anchor{z-index:4}
.grand-summon.phase-opening .gs-auto-opening .recruit-chest-art.opened{opacity:var(--pose-lid,0)!important;transform:none}
.grand-summon.phase-opening .gs-auto-opening .recruit-chest-art.closed{opacity:calc(1 - var(--pose-lid,0))!important}
.gs-auto-opening .gs-energy-column{left:26%;right:26%;top:15%;bottom:25%;z-index:6;background:linear-gradient(90deg,transparent,#ffd25b88,#fff0b9,#ffd25b88,transparent)!important}
.gs-auto-opening .gs-energy-rings{inset:35% 12% 20%;z-index:7;border-color:#ffdc79!important}
.gs-auto-opening .gs-sparks{z-index:7}.gs-auto-opening .gs-silhouette{z-index:8}
.grand-summon .gs-deck-scene.gs-auto-opening>.gs-deck-plate{opacity:1!important}.grand-summon .gs-deck-scene.gs-auto-opening .recruit-treasure-anchor{opacity:1!important}
.grand-summon .gs-sea-foam{animation:gsOceanRoll 2.4s ease-in-out infinite alternate;opacity:.3}
.gs-ship .gs-wake{animation:gsWakeTrail 1s ease-out infinite}
@keyframes gsOceanRoll{from{transform:translate(-2%,1%) scale(1.02)}to{transform:translate(2%,-1%) scale(1.07)}}
@keyframes gsWakeTrail{from{opacity:.75;scale:.8}to{opacity:.2;scale:1.15}}
@media(max-height:650px){.grand-summon{--gs-chest-size:min(34vw,165px)}}
@media(prefers-reduced-motion:reduce){.grand-summon .gs-haul{transform:translate(-50%,-50%);top:65%}.gs-actor{transform:none}.grand-summon .gs-sea-foam,.gs-ship .gs-wake{animation:none}.gs-cast-rope{transition:none!important}}
/* 1.4 — single-clock direction, continuous framing and rarity-specific crescendo. */
.grand-summon{--gs-accent:#8fe9ff;--gs-ink:#083450}
.grand-summon[data-rarity=SSR]{--gs-accent:#ffd477}
.grand-summon[data-rarity=UR]{--gs-accent:#cd9bff;--gs-ink:#291744}
.grand-summon[data-rarity=LR]{--gs-accent:#ffe2a0;--gs-ink:#34200b}
.grand-summon .gs-discovery .gs-ship{top:37%;width:44%;height:25%;transform:translate(-12%,calc(var(--pose-shipBob,0)*1px)) rotate(calc(var(--pose-shipRoll,0)*1deg))}
.grand-summon .gs-discovery>.gs-sea-plate{transform:scale(1.035) translateY(calc(var(--pose-seaShift,0)*1%))}
.grand-summon .gs-haul{will-change:transform;transition:none;opacity:clamp(0,calc(var(--pose-approach,0)*5),1);transform:translate(-50%,-50%) scale(var(--pose-chestScale,.32)) rotate(calc(var(--pose-chestRoll,0)*1deg))}
.grand-summon .gs-discovery[data-shot=reach] .gs-haul{opacity:1}
.grand-summon .gs-ropes,.grand-summon .gs-cast-rope{transition:none}
.grand-summon .gs-discovery .gs-cast-rope{stroke-dashoffset:calc(600 - var(--pose-crewReach,0)*600);opacity:calc(var(--pose-crewReach,0)*(1 - var(--pose-lift,0)))}
.grand-summon .gs-action-crew{opacity:var(--pose-deck,1)}
.grand-summon .gs-actor{transform:translateY(calc(var(--pose-crewPull,0)*.5px)) rotate(calc(var(--pose-crewPull,0)*1deg));transform-origin:50% 85%}
.grand-summon .gs-actor.actor-1{transform:translateY(calc(var(--pose-crewPull,0)*-.4px)) rotate(calc(var(--pose-crewPull,0)*-.65deg))}
.grand-summon .gs-sea-foam{animation:none;transform:translate(calc(var(--pose-seaShift,0)*2%),calc(var(--pose-seaShift,0)*-1%));opacity:calc(var(--pose-sea,1)*.3)}
.grand-summon .gs-ship .gs-wake{animation:none;opacity:.65;transform:scale(calc(1 + var(--pose-seaShift,0)*.12)) rotate(-12deg)}
.gs-cinema-shade{position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(#020a1caa,transparent 28%,transparent 63%,#020a1cd9);opacity:calc(.25 + var(--pose-curtain,0))}
.gs-reveal-flash{position:absolute;inset:0;z-index:12;pointer-events:none;background:radial-gradient(ellipse at 50% 49%,#fffef0,var(--gs-accent) 40%,transparent 77%);opacity:calc(var(--pose-flash,0)*.72)}
.grand-summon .gs-deck-scene.gs-auto-opening>.gs-deck-plate{transform:scale(calc(1 + var(--pose-charge,0)*.035)) translateY(calc(var(--pose-tension,0)*.6px));filter:brightness(calc(1 - var(--pose-charge,0)*.45));transition:none}
.grand-summon.phase-opening .gs-deck-scene.gs-auto-opening .recruit-treasure-anchor{opacity:calc(1 - var(--pose-reveal,0))!important;transform:translate(-50%,-50%) translateX(calc(var(--pose-tension,0)*1.5px)) scale(calc(1 + var(--pose-charge,0)*.08));transition:none}
.grand-summon.phase-opening .recruit-chest-art{transition:none!important}
.grand-summon .gs-auto-opening .gs-action-crew{opacity:calc(1 - var(--pose-release,0)*.85);transform:translateY(calc(var(--pose-release,0)*2%));transition:none}
.grand-summon .gs-auto-opening .gs-energy-column{opacity:var(--pose-aura,0)!important;transform:scaleX(calc(.12 + var(--pose-charge,0)*.88)) scaleY(calc(.3 + var(--pose-charge,0)*.7));background:linear-gradient(90deg,transparent,var(--gs-accent),#fff8dd,var(--gs-accent),transparent)!important;transition:none}
.grand-summon .gs-auto-opening .gs-energy-rings{opacity:calc(var(--pose-ring,0)*(1 - var(--pose-reveal,0))*.7)!important;transform:scale(calc(.35 + var(--pose-ring,0)*1.5)) rotateX(60deg);border-color:var(--gs-accent)!important;transition:none}
.grand-summon .gs-auto-opening .gs-energy-arcs{opacity:0;transform:rotate(calc(var(--pose-ring,0)*70deg)) scale(calc(.6 + var(--pose-ring,0)*.6));transition:none}
.grand-summon:is([data-rarity=UR],[data-rarity=LR]) .gs-auto-opening .gs-energy-arcs{opacity:calc(var(--pose-aura,0)*.65)}
.grand-summon .gs-auto-opening .gs-energy-arcs path{stroke:var(--gs-accent);stroke-dasharray:950;stroke-dashoffset:calc(950 - var(--pose-charge,0)*950)}
.grand-summon[data-rarity=LR] .gs-energy-arcs{transform:rotate(calc(var(--pose-ring,0)*-95deg)) scale(calc(.8 + var(--pose-ring,0)*.5))}
.grand-summon .gs-auto-opening .gs-silhouette{opacity:var(--pose-reveal,0)!important;transform:translateY(calc((1 - var(--pose-reveal,0))*12%)) scale(calc(.84 + var(--pose-reveal,0)*.16));filter:brightness(calc(var(--pose-reveal,0)*.48));transition:none}
.grand-summon .gs-auto-opening .gs-sparks{opacity:var(--pose-aura,0)!important;transition:none}
.grand-summon .gs-auto-opening .gs-sparks i{background:var(--gs-accent);box-shadow:none;transform:translate(calc((var(--i) - 4.5)*var(--pose-release,0)*5px),calc(var(--pose-charge,0)*-95px))}
.grand-summon .gs-caption,.grand-summon .recruit-scene-caption{z-index:13}
.grand-summon .gs-static :is(.gs-energy-arcs,.gs-reveal-flash){display:none}
@media(prefers-reduced-motion:reduce){.grand-summon .gs-reveal-flash{display:none}.grand-summon .gs-auto-opening :is(.gs-silhouette,.recruit-treasure-anchor){transform:translate(-0%,0%)!important}.grand-summon .gs-auto-opening .recruit-treasure-anchor{transform:translate(-50%,-50%)!important}}

/* Legendary Summon 3: rarity-faithful accents and composited motion. */
.grand-summon[data-rarity=R]{--gs-accent:#5bbaff;--gs-hue:#5bbaff}
.grand-summon[data-rarity=SR]{--gs-accent:#c28cff;--gs-hue:#c28cff}
.grand-summon[data-rarity=SSR]{--gs-accent:#ffd263;--gs-hue:#ffd263}
.grand-summon[data-rarity=UR]{--gs-accent:#ff595f;--gs-hue:#ff595f;--gs-ink:#360d20}
.grand-summon[data-rarity=LR]{--gs-accent:#fff0b2;--gs-hue:#fff0b2}
.grand-summon .gs-discovery,.grand-summon .gs-deck-scene{--gs-hue:var(--gs-accent)}
.grand-summon .gs-sparks i{background:var(--gs-accent);box-shadow:0 0 8px var(--gs-accent)}
.grand-summon[data-rarity=R] .gs-sparks i:nth-child(n+5),.recruit-reduced .gs-sparks i:nth-child(n+4){display:none}
.grand-summon .gs-ship>img{animation:legendarySail 1.8s ease-in-out infinite;transform-origin:50% 70%}
.grand-summon .gs-wake{animation:legendaryWake 1.3s ease-out infinite}
.grand-summon:is([data-rarity=UR],[data-rarity=LR]) .gs-cinema-shade{background:#040519;opacity:calc(var(--pose-charge,0)*.7)}
.grand-summon:is([data-rarity=UR],[data-rarity=LR]) .gs-deck-scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 46%,var(--gs-accent) 49%,#fff 50%,transparent 52%);opacity:calc(var(--pose-flash,0)*.65);transform:scale(1.2)}
.grand-summon .recruit-card-stage{perspective:800px}
.grand-summon .recruit-revealed-actor{animation:legendaryCardIn .65s cubic-bezier(.2,.8,.2,1) both}
.grand-summon:is([data-rarity=UR],[data-rarity=LR]) .recruit-card-halo{border:1px solid var(--gs-accent);border-radius:42%;animation:legendaryHalo 4s linear infinite}
.grand-summon .recruit-chest-art{filter:none}
.app-paused .grand-summon *{animation-play-state:paused!important}
@keyframes legendarySail{50%{transform:translateY(-5px) rotate(.8deg)}}
@keyframes legendaryWake{from{opacity:.8;scale:.85}to{opacity:.15;scale:1.15}}
@keyframes legendaryCardIn{from{opacity:0;transform:translateY(30px) scale(.85) rotateY(-12deg)}to{opacity:1;transform:none}}
@keyframes legendaryHalo{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.grand-summon *{animation:none!important;transition:none!important}}
.recruit-reduced .gs-ship>img,.recruit-reduced .gs-wake,.recruit-reduced .recruit-card-halo{animation:none}

.wanted-summon{background:radial-gradient(ellipse at 50% 40%,#62421f,#1d140f 65%,#090909);display:flex;flex-direction:column;align-items:center;padding:calc(70px + env(safe-area-inset-top)) 12px calc(20px + env(safe-area-inset-bottom));overflow:hidden;color:#ffe0a0}
.wanted-title{font-size:14px;letter-spacing:2px;text-align:center}.wanted-grid{display:grid;grid-template-columns:minmax(0,1fr);width:min(78vw,330px);margin:auto;gap:12px}.wanted-item{position:relative;aspect-ratio:2/3;--glow:#56baff}.wanted-item[data-rarity=SR]{--glow:#c381ff}.wanted-item[data-rarity=SSR]{--glow:#ffcc42}.wanted-item[data-rarity=UR]{--glow:#ff3939}.wanted-item[data-rarity=LR]{--glow:#fff1a1}.wanted-paper,.wanted-card{position:absolute;inset:0;border-radius:7px}.wanted-paper{display:flex;flex-direction:column;align-items:center;justify-content:space-around;background:linear-gradient(110deg,#a56d2b,#f2cf88 45%,#bc8b46);border:5px double #533210;color:#34200f;animation:wantedPaper var(--duration) var(--delay) both;box-shadow:0 0 20px var(--glow)}.wanted-paper strong{font:bold 35px Georgia}.wanted-paper span{font-size:70px}.wanted-paper b{font-size:60px}.wanted-card{opacity:0;animation:wantedCard var(--duration) var(--delay) both;text-align:center}.wanted-card>.card{height:85%;width:100%;margin:0}.wanted-card>strong,.wanted-card>small{display:block;font-size:12px}.wanted-card img{object-fit:cover}.wanted-footer{min-height:55px;text-align:center}.wanted-footer button{min-height:48px;padding:12px 25px}.wanted-multi .wanted-grid{width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.wanted-multi .wanted-paper strong{font-size:12px}.wanted-multi .wanted-paper span,.wanted-multi .wanted-paper b{font-size:20px}.wanted-multi .wanted-paper small{font-size:5px}.wanted-multi .wanted-card>strong{font-size:7px}.wanted-multi .wanted-card>small{font-size:7px}.wanted-multi .wanted-card .card{min-width:0}.wanted-done .wanted-card{opacity:1;animation:none}.wanted-done .wanted-paper{display:none}.wanted-summon .wanted-card canvas{display:none}
@keyframes wantedPaper{0%{opacity:0;transform:translateY(-30px) rotate(-6deg) scale(.9,.15)}15%,35%{opacity:1;transform:none}65%{opacity:1;transform:scale(1.04)}80%,100%{opacity:0;transform:scale(1.1)}}
@keyframes wantedCard{0%,65%{opacity:0;transform:scale(.94)}80%{opacity:1;transform:scale(1.05)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wanted-paper{display:none}.wanted-card{opacity:1;animation:none}}

.wanted-summon:not(.wanted-done) .wanted-card{visibility:hidden}.wanted-paper:before,.wanted-paper:after{content:'';position:absolute;left:-7%;width:114%;height:22px;border-radius:50% / 35%;background:linear-gradient(#5f3515,#f5d599 35%,#be8744 70%,#68401f);box-shadow:0 3px 5px #0006}.wanted-paper:before{top:-11px}.wanted-paper:after{bottom:-11px}.wanted-summon:not(.wanted-done) .wanted-paper{animation:wantedUnroll var(--wanted-time,2s) ease-out both}.wanted-flash{position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(ellipse,#fff 25%,#fff3bd 60%,#ffcf69);opacity:0;animation:wantedScreenFlash var(--wanted-time,2s) ease-in both}.wanted-done .wanted-flash{display:none}.wanted-done:not(.wanted-multi) .wanted-card{animation:wantedArrival .35s ease-out both}
@keyframes wantedUnroll{0%{opacity:0;transform:translateY(-45px) rotate(-12deg) scale(.9,.08)}18%,30%{opacity:1;transform:rotate(-5deg) scale(1,.08)}62%{opacity:1;transform:none}85%,100%{opacity:1;transform:scale(1.04)}}
@keyframes wantedScreenFlash{0%,68%{opacity:0}88%,100%{opacity:1}}
@keyframes wantedArrival{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wanted-flash{animation:none}.wanted-summon:not(.wanted-done) .wanted-paper{animation:none;transform:none}}

/* Eyecatch: the poster sweeps in on the wind, then settles facing the viewer. */
.wanted-summon:not(.wanted-done) .wanted-paper{animation:wantedEyecatch var(--wanted-time,2s) cubic-bezier(.22,.7,.22,1) both;transform-origin:center}
.wanted-summon:not(.wanted-done) .wanted-paper:before,.wanted-summon:not(.wanted-done) .wanted-paper:after{display:none}
@keyframes wantedEyecatch{0%{opacity:0;transform:translate(-115vw,-55vh) rotate(-48deg) scale(.34,.65)}18%{opacity:1;transform:translate(-36vw,-20vh) rotate(22deg) scale(.7,.88)}36%{transform:translate(18vw,-7vh) rotate(-13deg) scale(.94,1)}52%{transform:translate(-5vw,2vh) rotate(5deg) scale(1.02,.98)}68%,84%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){.wanted-summon:not(.wanted-done) .wanted-paper{animation:none;opacity:1;transform:none}}

/* Wanted polish: aged paper, wind ripple, full illustration and readable labels. */
.wanted-summon{height:100%;min-height:0;box-sizing:border-box;background:radial-gradient(ellipse at 50% 40%,#66451f 0,#24170e 62%,#0b0908 100%)}
.wanted-summon .wanted-grid{width:min(76vw,340px);min-height:0;margin:auto;flex-shrink:1}
.wanted-summon .wanted-item{max-height:calc(100dvh - 235px);min-height:0}
.wanted-summon .wanted-paper{border-radius:2px;background:repeating-linear-gradient(13deg,#44240608 0 1px,transparent 1px 7px),radial-gradient(ellipse,#f3dba2 10%,#d7ae68 65%,#8b592d 100%);border:8px double #79502c;box-shadow:0 9px 20px #0007;outline:1px solid #d6ae6a;clip-path:polygon(2% 0,22% 1%,24% 0,57% 1%,80% 0,98% 2%,100% 32%,99% 60%,100% 99%,76% 98%,53% 100%,24% 99%,1% 100%,0 68%,1% 35%)}
.wanted-paper strong{font:900 clamp(30px,10vw,48px) Georgia,serif;letter-spacing:-2px;border-bottom:2px solid #79502c;width:90%;text-align:center}
.wanted-paper .wanted-silhouette{font-size:100px;color:#382b22;transform:rotate(-8deg);text-shadow:4px 3px #382b2233}
.wanted-paper>b{position:absolute;top:47%;color:#e9ca8a;font:700 65px Georgia}
.wanted-paper>small{font:700 15px Georgia;letter-spacing:1px;border-top:2px solid #79502c;padding-top:10px}
.wanted-art{position:absolute;inset:0 0 64px;display:block;width:100%;padding:0;overflow:hidden;border:2px solid var(--glow);border-radius:10px;background:#211c1a;box-shadow:0 0 14px color-mix(in srgb,var(--glow) 40%,transparent)}
.wanted-art img{display:block;width:100%;height:100%;object-fit:contain;opacity:1;visibility:visible}
.wanted-rank{position:absolute;top:8px;left:8px;font:bold 24px Georgia;color:var(--glow);text-shadow:1px 2px 3px #000;background:#111b;padding:3px 8px;border-radius:5px}
.wanted-card>strong{position:absolute;bottom:32px;width:100%;font-size:clamp(16px,4.8vw,22px);line-height:1.12;color:#fff3d8;text-shadow:0 2px 3px #000}
.wanted-card>small{position:absolute;bottom:8px;width:100%;font-size:12px;color:#f3d291;line-height:1.2}
.wanted-done:not(.wanted-multi) .wanted-card{animation:wantedArrival .32s ease-out both}
.wanted-multi .wanted-grid{width:100%;gap:16px 6px}.wanted-multi .wanted-item{aspect-ratio: .52;max-height:35dvh}.wanted-multi .wanted-art{bottom:42px;border-width:1px}.wanted-multi .wanted-rank{font-size:12px;top:3px;left:3px;padding:1px 3px}.wanted-multi .wanted-card>strong{font-size:9px;bottom:20px;line-height:1.1}.wanted-multi .wanted-card>small{font-size:8px;bottom:0;line-height:1.1}.wanted-multi .wanted-art img{object-fit:cover}
.wanted-summon[data-rarity=R]{--wanted-flash:#bde5ff}.wanted-summon[data-rarity=SR]{--wanted-flash:#edcfff}.wanted-summon[data-rarity=SSR]{--wanted-flash:#ffe8a3}.wanted-summon[data-rarity=UR]{--wanted-flash:#ffb3a4}.wanted-summon[data-rarity=LR]{--wanted-flash:#fff1ab}
.wanted-flash{position:fixed;background:radial-gradient(ellipse,#fff 25%,var(--wanted-flash,#fff0c4) 75%);z-index:100;animation-name:wantedFinalFlash}
@keyframes wantedFinalFlash{0%,72%{opacity:0}85%{opacity:.35}94%,100%{opacity:1}}
@keyframes wantedEyecatch{0%{opacity:0;transform:translate(-110vw,-45vh) rotate(-36deg) skewY(9deg) scale(.45)}18%{opacity:1;transform:translate(-28vw,-12vh) rotate(18deg) skewY(-7deg) scale(.8)}36%{transform:translate(12vw,-3vh) rotate(-10deg) skewY(5deg) scale(.97)}52%{transform:translate(-3vw,1vh) rotate(3deg) skewY(-2deg)}64%,88%{opacity:1;transform:none}100%{opacity:1;transform:scale(1.03)}}
@media(prefers-reduced-motion:reduce){.wanted-flash{display:none}.wanted-done:not(.wanted-multi) .wanted-card{animation:none}}
/* Grand Wave: 48 distinct illustrated crest/curl/foam frames, shared by all rarities. */
.grand-wave{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;box-sizing:border-box;padding:calc(74px + env(safe-area-inset-top,0px)) 14px calc(20px + env(safe-area-inset-bottom,0px));overflow:hidden;background:#04182d;color:#f4ecda;--gw-color:#79ceff;--gw-time:2500ms;isolation:isolate}
.grand-wave[data-rarity=SR]{--gw-color:#d9a3ff}.grand-wave[data-rarity=SSR]{--gw-color:#ffd975}.grand-wave[data-rarity=UR]{--gw-color:#ff6464}.grand-wave[data-rarity=LR]{--gw-color:#ffe99c}
.gw-ocean{position:absolute;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(#05162d 0%,#163b59 27%,#7ce2ec 34%,#127ba4 36%,#064679 70%,#031c38)}
.gw-clouds{position:absolute;inset:0;background:radial-gradient(ellipse 40% 5% at 16% 16%,#4a7c98 45%,transparent 50%),radial-gradient(ellipse 35% 4% at 82% 24%,#4e8caa 45%,transparent 50%);opacity:.5}
.gw-horizon{position:absolute;inset:34% 0 0;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0 22px,#5fcee733 24px 26px,transparent 28px 65px);animation:gwSurface var(--gw-time) linear both}
.gw-light{position:absolute;left:32%;top:60%;width:36%;height:15%;border-radius:50%;background:radial-gradient(ellipse,var(--gw-color),transparent 70%);animation:gwGlow var(--gw-time) ease-out both}
.gw-wave{position:absolute;inset:0;background-image:url('assets/recruit/grand-wave/wave-atlas.webp');background-size:800% 600%;animation:gwFrames var(--gw-time) steps(1,end) both}
.gw-splash{position:absolute;inset:-10%;background:radial-gradient(ellipse at 18% 60%,#e9ffff 0 10%,transparent 40%),radial-gradient(ellipse at 82% 55%,#dcfaff 0 15%,transparent 45%);animation:gwSplash var(--gw-time) both;opacity:0}
.gw-flash{position:absolute;inset:0;background:radial-gradient(ellipse,#fff 10%,var(--gw-color) 80%);animation:gwFlash var(--gw-time) both;opacity:0}
.gw-haki{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--gw-color);stroke-width:4;opacity:0;display:none;animation:gwHaki var(--gw-time) both}.grand-wave:is([data-rarity=UR],[data-rarity=LR]) .gw-haki{display:block}.grand-wave[data-rarity=LR] .gw-haki{stroke-width:6;paint-order:stroke;filter:drop-shadow(3px 3px #120d22)}
.gw-title{position:relative;font-size:13px;letter-spacing:3px;text-align:center;margin:8px 0;color:#e4faff;text-shadow:0 2px 3px #001a30}.gw-cards{position:relative;width:min(78vw,340px);margin:auto;display:grid;grid-template-columns:1fr;gap:12px;max-height:calc(100dvh - 240px)}.gw-item{position:relative;aspect-ratio:2/3;--glow:#70c7ff;min-width:0}.gw-item[data-rarity=SR]{--glow:#c997ff}.gw-item[data-rarity=SSR]{--glow:#ffd66c}.gw-item[data-rarity=UR]{--glow:#ff6868}.gw-item[data-rarity=LR]{--glow:#fff0ab}.gw-face{position:absolute;inset:0;opacity:0;animation:gwReveal .42s var(--gw-delay) cubic-bezier(.2,.8,.2,1) both}.gw-art{position:absolute;inset:0 0 65px;width:100%;padding:0;background:#061c2a;border:2px solid var(--glow);border-radius:10px;overflow:hidden;box-shadow:0 0 16px #0006}.gw-art img{width:100%;height:100%;object-fit:contain;display:block}.gw-art>b{position:absolute;top:8px;left:8px;background:#07111fcc;border-radius:6px;padding:3px 8px;font:bold 25px Georgia;color:var(--glow)}.gw-face>strong{position:absolute;bottom:33px;width:100%;text-align:center;font-size:clamp(16px,4.8vw,22px);line-height:1.1}.gw-face>small{position:absolute;bottom:8px;width:100%;text-align:center;font-size:12px;color:#e8d7a8}.gw-back{position:absolute;inset:0 0 65px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #a5b9c3;border-radius:10px;background:repeating-linear-gradient(35deg,#0c2c42 0 8px,#10344a 8px 10px);font-size:65px;opacity:0;animation:gwBack .4s calc(var(--gw-delay) - 180ms) both}.gw-back span{font-size:9px;letter-spacing:2px}.gw-footer{min-height:54px;text-align:center;font-size:11px;color:#b9d5e4;z-index:3}.gw-footer button{min-height:48px;padding:12px 24px}.gw-footer small{display:block;margin-top:6px}.gw-multi .gw-cards{width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 6px}.gw-multi .gw-item{aspect-ratio:.53}.gw-multi .gw-art{bottom:42px;border-width:1px}.gw-multi .gw-art img{object-fit:cover}.gw-multi .gw-art>b{font-size:12px;left:3px;top:3px;padding:1px 3px}.gw-multi .gw-face>strong{font-size:9px;bottom:20px}.gw-multi .gw-face>small{font-size:8px;bottom:0}.gw-multi .gw-back{bottom:42px;font-size:25px}.gw-multi .gw-back span{font-size:5px}.gw-done .gw-face{animation:none;opacity:1}.gw-done .gw-back{display:none}.gw-done .gw-ocean{opacity:.4}.gw-done .gw-ocean>div,.gw-done .gw-haki{display:none}.gw-loading *,.gw-paused *,.app-paused .grand-wave *{animation-play-state:paused!important}
@keyframes gwSurface{to{transform:translateX(3%) translateY(-15px)}}@keyframes gwGlow{0%{opacity:0;transform:scale(.2)}40%{opacity:.9;transform:scale(2)}80%,100%{opacity:0}}@keyframes gwSplash{0%,52%{opacity:0}65%{opacity:1}100%{opacity:0;transform:scale(1.7)}}@keyframes gwFlash{0%,56%{opacity:0}65%{opacity:.85}76%,100%{opacity:0}}@keyframes gwHaki{0%,25%,43%,54%,70%,100%{opacity:0}28%,46%,57%{opacity:.8}}@keyframes gwReveal{from{opacity:0;transform:translateY(25px) scale(.88)}75%{opacity:1;transform:scale(1.025)}to{opacity:1;transform:none}}@keyframes gwBack{0%{opacity:0;transform:translateY(15px)}35%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.grand-wave *{animation:none!important}.gw-face{opacity:1}.gw-back,.gw-wave,.gw-haki,.gw-flash,.gw-splash{display:none}}
@keyframes gwFrames{0.0000%{background-position:0.00000% 0.00000%}2.1277%{background-position:14.28571% 0.00000%}4.2553%{background-position:28.57143% 0.00000%}6.3830%{background-position:42.85714% 0.00000%}8.5106%{background-position:57.14286% 0.00000%}10.6383%{background-position:71.42857% 0.00000%}12.7660%{background-position:85.71429% 0.00000%}14.8936%{background-position:100.00000% 0.00000%}17.0213%{background-position:0.00000% 20.00000%}19.1489%{background-position:14.28571% 20.00000%}21.2766%{background-position:28.57143% 20.00000%}23.4043%{background-position:42.85714% 20.00000%}25.5319%{background-position:57.14286% 20.00000%}27.6596%{background-position:71.42857% 20.00000%}29.7872%{background-position:85.71429% 20.00000%}31.9149%{background-position:100.00000% 20.00000%}34.0426%{background-position:0.00000% 40.00000%}36.1702%{background-position:14.28571% 40.00000%}38.2979%{background-position:28.57143% 40.00000%}40.4255%{background-position:42.85714% 40.00000%}42.5532%{background-position:57.14286% 40.00000%}44.6809%{background-position:71.42857% 40.00000%}46.8085%{background-position:85.71429% 40.00000%}48.9362%{background-position:100.00000% 40.00000%}51.0638%{background-position:0.00000% 60.00000%}53.1915%{background-position:14.28571% 60.00000%}55.3191%{background-position:28.57143% 60.00000%}57.4468%{background-position:42.85714% 60.00000%}59.5745%{background-position:57.14286% 60.00000%}61.7021%{background-position:71.42857% 60.00000%}63.8298%{background-position:85.71429% 60.00000%}65.9574%{background-position:100.00000% 60.00000%}68.0851%{background-position:0.00000% 80.00000%}70.2128%{background-position:14.28571% 80.00000%}72.3404%{background-position:28.57143% 80.00000%}74.4681%{background-position:42.85714% 80.00000%}76.5957%{background-position:57.14286% 80.00000%}78.7234%{background-position:71.42857% 80.00000%}80.8511%{background-position:85.71429% 80.00000%}82.9787%{background-position:100.00000% 80.00000%}85.1064%{background-position:0.00000% 100.00000%}87.2340%{background-position:14.28571% 100.00000%}89.3617%{background-position:28.57143% 100.00000%}91.4894%{background-position:42.85714% 100.00000%}93.6170%{background-position:57.14286% 100.00000%}95.7447%{background-position:71.42857% 100.00000%}97.8723%{background-position:85.71429% 100.00000%}100.0000%{background-position:100.00000% 100.00000%}}/* Grand Wave 2.5D: painted keyframes, optical-flow inbetweens, depth layers. */
.grand-wave{perspective:900px;background:#041326;padding-left:8px;padding-right:8px}
.grand-wave:not(.gw-done) .gw-cards{visibility:hidden;pointer-events:none}
.grand-wave .gw-ocean{z-index:0;background:#06172e;transform-style:preserve-3d;animation:gwCamera25 5s ease-in-out both}
.grand-wave .gw-wave{background-image:url('assets/recruit/grand-wave/wave-cinema-v4.webp');background-size:800% 800%;animation:gwPainted25 5s steps(1,end) both;transform:translateZ(0);will-change:background-position}
.grand-wave .gw-horizon,.grand-wave .gw-clouds{display:none}
.grand-wave .gw-title,.grand-wave .recruit-cinema-controls,.grand-wave .gw-footer{z-index:5}
.grand-wave .gw-light{top:65%;opacity:.55;animation:gwSuspense25 5s ease-out both;mix-blend-mode:screen}
.grand-wave .gw-splash{background:radial-gradient(ellipse at 15% 30%,#dcfaff99 0 1%,transparent 2%),radial-gradient(ellipse at 75% 60%,#e8ffff99 0 2%,transparent 3%),radial-gradient(ellipse at 45% 80%,#fff9 0 1%,transparent 2%);background-size:180px 210px;animation:gwSpray25 5s ease-in both;transform-origin:50% 60%}
.grand-wave .gw-flash{animation:gwFlash25 5s both}
.grand-wave .gw-haki{animation-duration:5s}
.grand-wave.gw-done .gw-ocean{opacity:.55;animation:none;background:radial-gradient(ellipse at 50% 45%,#194a67,#040e1f 80%)}
.grand-wave.gw-full-reveal{padding-top:calc(56px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.gw-full-reveal .gw-title{display:none}
.gw-full-reveal .gw-cards{width:100%;height:calc(100dvh - 165px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:none;margin:0;flex:1;min-height:0}
.gw-full-reveal .gw-item{height:100%;aspect-ratio:auto}
.gw-full-reveal .gw-art{inset:0 0 72px;border-radius:8px;box-shadow:0 0 24px color-mix(in srgb,var(--glow) 35%,transparent)}
.gw-full-reveal .gw-art img{width:100%;height:100%;object-fit:contain}
.gw-full-reveal .gw-face{animation:gwFullscreen25 .65s cubic-bezier(.18,.8,.2,1) both}
.gw-full-reveal .gw-face>strong{font-size:clamp(20px,5vw,27px);bottom:37px}
.gw-full-reveal .gw-face>small{font-size:13px;bottom:12px}
.gw-full-reveal .gw-footer{flex-shrink:0;min-height:56px;width:100%;margin-top:8px}
.gw-full-reveal .gw-footer button{width:min(90%,360px);min-height:48px}
.gw-full-reveal .gw-art:after{content:'';position:absolute;inset:0;border-radius:inherit;border:2px solid var(--glow);pointer-events:none;animation:gwRim25 .9s ease-out both}
@keyframes gwCamera25{0%,25%{transform:translateY(0) rotateX(0)}55%{transform:translateY(-5px) rotateX(1deg)}68%{transform:translate(2px,2px) rotateZ(.2deg)}72%{transform:translate(-2px,-1px)}80%,100%{transform:none}}
@keyframes gwSuspense25{0%{opacity:0;transform:scale(.3)}28%{opacity:.75;transform:scale(1)}45%{opacity:.2;transform:scale(1.8)}70%,100%{opacity:0}}
@keyframes gwSpray25{0%,58%{opacity:0;transform:translateZ(-80px)}68%{opacity:.7;transform:translateZ(100px)}85%,100%{opacity:0;transform:translateZ(250px) translateY(40px)}}
@keyframes gwFlash25{0%,67%{opacity:0}72%{opacity:.6}78%,100%{opacity:0}}
@keyframes gwFullscreen25{0%{opacity:0;transform:translateY(14px) scale(.94)}60%{opacity:1;transform:scale(1.015)}100%{opacity:1;transform:none}}
@keyframes gwRim25{0%{opacity:0}40%{opacity:1;box-shadow:inset 0 0 18px var(--glow)}100%{opacity:.4;box-shadow:none}}
@media(prefers-reduced-motion:reduce){.grand-wave .gw-ocean,.grand-wave .gw-wave,.gw-full-reveal .gw-face,.gw-full-reveal .gw-art:after{animation:none!important}.grand-wave .gw-splash,.grand-wave .gw-flash{display:none}}
.gw-wave-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translateZ(0)}.grand-wave .gw-wave{display:none}.gw-film-failed .gw-wave{display:block}.gw-done .gw-wave-film{display:none}.grand-wave .gw-ocean .gw-splash{opacity:.4}
@media(prefers-reduced-motion:reduce){.gw-wave-film{display:none}}

@keyframes gwPainted25{0.0000%{background-position:0.0000% 0.0000%}1.6949%{background-position:14.2857% 0.0000%}3.3898%{background-position:28.5714% 0.0000%}5.0847%{background-position:42.8571% 0.0000%}6.7797%{background-position:57.1429% 0.0000%}8.4746%{background-position:71.4286% 0.0000%}10.1695%{background-position:85.7143% 0.0000%}11.8644%{background-position:100.0000% 0.0000%}13.5593%{background-position:0.0000% 14.2857%}15.2542%{background-position:14.2857% 14.2857%}16.9492%{background-position:28.5714% 14.2857%}18.6441%{background-position:42.8571% 14.2857%}20.3390%{background-position:57.1429% 14.2857%}22.0339%{background-position:71.4286% 14.2857%}23.7288%{background-position:85.7143% 14.2857%}25.4237%{background-position:100.0000% 14.2857%}27.1186%{background-position:0.0000% 28.5714%}28.8136%{background-position:14.2857% 28.5714%}30.5085%{background-position:28.5714% 28.5714%}32.2034%{background-position:42.8571% 28.5714%}33.8983%{background-position:57.1429% 28.5714%}35.5932%{background-position:71.4286% 28.5714%}37.2881%{background-position:85.7143% 28.5714%}38.9831%{background-position:100.0000% 28.5714%}40.6780%{background-position:0.0000% 42.8571%}42.3729%{background-position:14.2857% 42.8571%}44.0678%{background-position:28.5714% 42.8571%}45.7627%{background-position:42.8571% 42.8571%}47.4576%{background-position:57.1429% 42.8571%}49.1525%{background-position:71.4286% 42.8571%}50.8475%{background-position:85.7143% 42.8571%}52.5424%{background-position:100.0000% 42.8571%}54.2373%{background-position:0.0000% 57.1429%}55.9322%{background-position:14.2857% 57.1429%}57.6271%{background-position:28.5714% 57.1429%}59.3220%{background-position:42.8571% 57.1429%}61.0169%{background-position:57.1429% 57.1429%}62.7119%{background-position:71.4286% 57.1429%}64.4068%{background-position:85.7143% 57.1429%}66.1017%{background-position:100.0000% 57.1429%}67.7966%{background-position:0.0000% 71.4286%}69.4915%{background-position:14.2857% 71.4286%}71.1864%{background-position:28.5714% 71.4286%}72.8814%{background-position:42.8571% 71.4286%}74.5763%{background-position:57.1429% 71.4286%}76.2712%{background-position:71.4286% 71.4286%}77.9661%{background-position:85.7143% 71.4286%}79.6610%{background-position:100.0000% 71.4286%}81.3559%{background-position:0.0000% 85.7143%}83.0508%{background-position:14.2857% 85.7143%}84.7458%{background-position:28.5714% 85.7143%}86.4407%{background-position:42.8571% 85.7143%}88.1356%{background-position:57.1429% 85.7143%}89.8305%{background-position:71.4286% 85.7143%}91.5254%{background-position:85.7143% 85.7143%}93.2203%{background-position:100.0000% 85.7143%}94.9153%{background-position:0.0000% 100.0000%}96.6102%{background-position:14.2857% 100.0000%}98.3051%{background-position:28.5714% 100.0000%}100.0000%{background-position:42.8571% 100.0000%}}
.gw-film-failed .gw-wave-film{display:none}
/* Impact flows into shadowed art and reveal; no return to the calm ocean. */
.grand-wave:not(.gw-done) .gw-cards{visibility:visible;pointer-events:none;z-index:3}
.grand-wave:not(.gw-done) .gw-back{display:none}
.grand-wave:not(.gw-done) .gw-face{animation:gwImpactCard 5s linear both}
.grand-wave:not(.gw-done) .gw-art img{animation:gwShadowReveal 5s linear both}
.grand-wave:not(.gw-done) .gw-face>strong,.grand-wave:not(.gw-done) .gw-face>small,.grand-wave:not(.gw-done) .gw-art>b{animation:gwImpactLabels 5s both}
.grand-wave .gw-wave-film{animation:gwFilmExit 5s linear both}
.grand-wave .gw-splash{background:radial-gradient(ellipse at 18% 40%,#e7ffff 0 12%,transparent 55%),radial-gradient(ellipse at 82% 55%,#ccefff 0 15%,transparent 60%);animation:gwFoamHandoff 5s linear both}
.grand-wave .gw-flash{animation:gwImpactFlash 5s linear both}
.grand-wave.gw-full-reveal.gw-done .gw-face{animation:gwFinalSettle .22s ease-out both}
@keyframes gwFilmExit{0%,76%{opacity:1}93%,100%{opacity:0}}
@keyframes gwFoamHandoff{0%,65%{opacity:0;transform:none}73%{opacity:.96;transform:scale(1.04)}82%{opacity:.7;transform:scale(1.08)}96%,100%{opacity:0;transform:scale(1.25)}}
@keyframes gwImpactFlash{0%,67%{opacity:0}71%{opacity:.7}77%,100%{opacity:0}}
@keyframes gwImpactCard{0%,81%{opacity:0;transform:translateY(22px) scale(.96)}87%{opacity:.75;transform:translateY(5px) scale(.985)}94%,100%{opacity:1;transform:none}}
@keyframes gwShadowReveal{0%,85%{filter:brightness(.08) saturate(0)}93%{filter:brightness(.6) saturate(.6)}100%{filter:none}}
@keyframes gwImpactLabels{0%,93%{opacity:0}100%{opacity:1}}
@keyframes gwFinalSettle{from{opacity:1;transform:scale(.995)}to{opacity:1;transform:none}}
.gw-loading *, .gw-paused *, .app-paused .grand-wave *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.grand-wave:not(.gw-done) .gw-cards{visibility:hidden}.grand-wave .gw-splash,.grand-wave .gw-flash{display:none}.grand-wave.gw-full-reveal .gw-face{animation:none}}

/* Source: menu-system.css */
/* Grand Battle menu language. Deliberately scoped away from the approved battle HUD.
   Illustration, card rarity/type colours and per-mode scenery remain authored assets. */
body:not(.view-battle):not(.battle){
 --ui-ink:#071827;--ui-surface:#102b40;--ui-raised:#1c3c53;
 --ui-text:#f5eddb;--ui-muted:#adc1cf;--ui-gold:#e5c17d;--ui-gold-light:#f7dfaa;
 --ui-line:#d2b57766;--ui-line-soft:#8ca9bd40;--ui-blue:#83d8f2;--ui-danger:#f0a39c;
 --ui-radius:10px;--ui-card-radius:14px;--ui-shadow:inset 0 1px #ffffff0d,0 3px 9px #0004;
 --ui-button:linear-gradient(145deg,#1c3c53,#0d2438);
 --ui-primary:linear-gradient(115deg,#c69a57,#f0d49a 55%,#d5ae69);
 --ui-panel:linear-gradient(145deg,#153248f5,#0b2033fa);
 --gold:var(--ui-gold);--muted:var(--ui-muted);--line:var(--ui-line-soft);
 font-family:Arial,Helvetica,sans-serif;color:var(--ui-text);
}
/* One secondary action: navy, a fine gold edge, the same corner and weight. */
body:not(.view-battle):not(.battle) #game :is(.secondary,.entry-premium,.grand-home-resume,.market-item>button,.market-source-list button,.market-inline-link button,.market-confirm>button,.premium-info button,.premium-shop-hero button,.paid-grid button,.recruit-pulls button,.recruit-reveal-next button,.recruit-summary footer button,.history-chapter-footer button,.history-utilities button,.moon-back-home,.moon-local-heading>button,.impel3-status>button,.completion-actions>button,.gv-event button,.gv-footer button,.captain-import){
 border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-button);
 color:var(--ui-text);box-shadow:var(--ui-shadow);font-family:Arial,Helvetica,sans-serif;
 font-weight:700;letter-spacing:.25px;min-height:44px;text-shadow:none;
}
/* Gold is reserved for the principal action; position and wording keep their meaning. */
body:not(.view-battle):not(.battle) #game :is(.primary,.recruit-ten,.completion-next,.market-confirm>button:not(.market-cancel),.gv-event button:first-of-type){
 border:1px solid var(--ui-gold-light);border-radius:var(--ui-radius);background:var(--ui-primary);
 color:#15283a;box-shadow:var(--ui-shadow);font-family:Arial,Helvetica,sans-serif;
 font-weight:800;letter-spacing:.25px;min-height:44px;text-shadow:none;
}
/* The same return affordance in the cabin, collection, shop, history and recruitment. */
body:not(.view-battle):not(.battle) #game :is(.back,.back-account,.recruit-back,.market-back,.history-back,.history-menu-button,.impel-back){
 width:42px;height:42px;min-width:42px;min-height:42px;border:1px solid var(--ui-line);
 border-radius:var(--ui-radius);background:var(--ui-button);color:var(--ui-gold-light);
 box-shadow:var(--ui-shadow);padding:0;flex-shrink:0;font-family:Arial,Helvetica,sans-serif;
}
/* Shared tabs retain their own grids/scrolling and semantic rarity/type swatches. */
body:not(.view-battle):not(.battle) #game :is(.captain-tabs button,.history-tracks button,.history-saga-tabs button,.recruit-category-tabs button,.market-tabs button,.impel-zones button,.filters button,.filters select,.settings-pagination button){
 border-color:var(--ui-line-soft);border-radius:var(--ui-radius);color:var(--ui-muted);
 background:#0d263a;font-family:Arial,Helvetica,sans-serif;font-weight:700;
}
body:not(.view-battle):not(.battle) #game :is(.captain-tabs button[aria-pressed=true],.history-tracks button[aria-current=page],.history-saga-tabs button[aria-current=page],.recruit-category-tabs button[aria-pressed=true],.market-tabs button[aria-current=page],.impel-zones button.active,.filters button.selected,.settings-pagination button[aria-current]){
 color:var(--ui-gold-light);border-color:var(--ui-gold);background:linear-gradient(#29465a,#203345);
 box-shadow:inset 0 -2px var(--ui-gold);
}
/* Lower navigation is a single family across illustrated menus. */
body:not(.view-battle):not(.battle) :is(#nav,.home-bottom,.impel3-bottom){background:linear-gradient(#102b40f5,#071827fc);border-top-color:var(--ui-line);}
body:not(.view-battle):not(.battle) :is(#nav,.home-bottom,.impel3-bottom)>button{color:var(--ui-muted);font-family:Arial,Helvetica,sans-serif;font-weight:700;}
body:not(.view-battle):not(.battle) :is(#nav,.home-bottom,.impel3-bottom)>button:is(.active,[aria-current=page],[aria-current=true]){color:var(--ui-gold-light);border-color:var(--ui-gold);}
/* Plain panels share a material. Illustrated hero tiles keep their own artwork. */
body:not(.view-battle):not(.battle) #game :is(.panel,.market-item,.market-source-list>article,.captain-link,.potential-material,.legend-history){background:var(--ui-panel);border-color:var(--ui-line-soft);border-radius:var(--ui-card-radius);box-shadow:var(--ui-shadow);}
body:not(.view-battle):not(.battle) #game :is(.captain-hero,.captain-tile,.legend-card,.market-gem-banner,.history-chapter,.completion-card,.moon-local-heading){border-color:var(--ui-line);border-radius:var(--ui-card-radius);}
body:not(.view-battle):not(.battle) #game :is(.market-header,.history-top,.recruit-header,.impel3 .impel-account){background:linear-gradient(115deg,#15364eeb,#071827f5);border-bottom-color:var(--ui-line);}
body:not(.view-battle):not(.battle) #game :is(.pagehead h2,.market-header h1,.captain-hero h1,.legend-heading h2,.completion-heading h1){font-family:Georgia,'Times New Roman',serif;color:var(--ui-gold-light);}
body:not(.view-battle):not(.battle) #game :is(.market-item-copy p,.captain-tile>small,.captain-link small,.captain-hint,.muted){color:var(--ui-muted);}
/* Currency materials match while gems remain recognisably blue. */
body:not(.view-battle):not(.battle) #game :is(.grand-currency,.legends-wallet button,.history-wallet>span,.market-wallet span){border-color:var(--ui-line);background:var(--ui-button);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);}
body:not(.view-battle):not(.battle) #game :is(.coin,.history-coins){color:var(--ui-gold);}
body:not(.view-battle):not(.battle) #game :is(.gem,.history-gems,.market-wallet span+span){color:var(--ui-blue);}
/* Dialogs and account forms use the same controls; cinematic parchment stays intact. */
body:not(.view-battle):not(.battle) #modal:not(.new-adventure-modal):not(.character-dialog){background:var(--ui-panel);border-color:var(--ui-line);border-radius:var(--ui-card-radius);color:var(--ui-text);}
body:not(.view-battle):not(.battle) :is(.account-button,.account-layer .account-button){border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-button);color:var(--ui-text);font:700 13px/1.3 Arial,Helvetica,sans-serif;min-height:44px;box-shadow:var(--ui-shadow);}
body:not(.view-battle):not(.battle) :is(.account-button.account-primary,.account-layer .account-button.account-primary){background:var(--ui-primary);color:#15283a;border-color:var(--ui-gold-light);}
body:not(.view-battle):not(.battle) #game :is(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select){border-color:var(--ui-line-soft);border-radius:var(--ui-radius);background:#071827;color:var(--ui-text);}
body:not(.view-battle):not(.battle) :is(.account-input,.account-layer .account-input){border-color:var(--ui-line-soft);border-radius:var(--ui-radius);background:#071827;}
body:not(.view-battle):not(.battle) :is(.account-input input,.account-layer .account-input input){background:transparent;color:var(--ui-text);font-size:16px;}
body:not(.view-battle):not(.battle) :is(.account-input button,.account-layer .account-input button){background:var(--ui-button);border-color:var(--ui-line-soft);color:var(--ui-gold-light);}
body:not(.view-battle):not(.battle) #modal:not(.new-adventure-modal) .close{min-width:36px;min-height:36px;color:var(--ui-gold-light);border:1px solid var(--ui-line-soft);border-radius:var(--ui-radius);background:var(--ui-button);}
/* Shared feedback is lightweight; disabled and destructive actions remain distinct. */
body:not(.view-battle):not(.battle) :is(button,input,select,a):focus-visible{outline:2px solid var(--ui-gold-light);outline-offset:3px;}
body:not(.view-battle):not(.battle) #game :is(.primary,.secondary,.back,.market-back,.recruit-back,.captain-link,.captain-tile){transition:filter .14s ease,border-color .14s ease;}
body:not(.view-battle):not(.battle) #game :is(button.danger,button.destructive){background:linear-gradient(#582a32,#321e2a);border-color:#d78b8677;color:#ffe2de;}
@media(hover:hover){body:not(.view-battle):not(.battle) #game :is(.primary,.secondary,.back,.market-back,.recruit-back,.captain-link,.captain-tile):hover:not(:disabled){filter:brightness(1.1);border-color:var(--ui-gold);}}
@media(prefers-reduced-motion:reduce){body:not(.view-battle):not(.battle) #game :is(.primary,.secondary,.back,.market-back,.recruit-back,.captain-link,.captain-tile){transition:none;}}
/* The smaller utility controls use the same material without enlarging the HUD. */
body:not(.view-battle):not(.battle) #game :is(.round,.legends-tools button,.grand-home-tools .round){width:36px;height:36px;min-height:36px;border-radius:var(--ui-radius);border:1px solid var(--ui-line);background:var(--ui-button);color:var(--ui-gold-light);box-shadow:var(--ui-shadow);}
body:not(.view-battle):not(.battle) #game :is(.grand-profile,.legends-profile){border:1px solid var(--ui-line-soft);border-radius:var(--ui-radius);background:linear-gradient(110deg,#0b243bd9,#07182788);}
body:not(.view-battle):not(.battle) #game :is(.home-journey,.home-impel-access,.grand-home .grand-home-content .home-feature-rail>.home-feature){border-color:var(--ui-line);border-radius:var(--ui-radius);}
body:not(.view-battle):not(.battle) #game :is(.departure-edit,.departure-read-story,.impel-resume,.impel-receipt,.new-voyage-button){border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-button);color:var(--ui-text);box-shadow:var(--ui-shadow);font-family:Arial,Helvetica,sans-serif;}
body:not(.view-battle):not(.battle) #game :is(.departure-sail,.moon-event-action){border:1px solid var(--ui-gold-light);border-radius:var(--ui-radius);background:var(--ui-primary);color:#15283a;box-shadow:var(--ui-shadow);font-family:Arial,Helvetica,sans-serif;}
body:not(.view-battle):not(.battle) :is(.language-grid button,.language-return){border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-button);color:var(--ui-text);box-shadow:var(--ui-shadow);}
body:not(.view-battle):not(.battle) .language-grid button[aria-current]{border-color:var(--ui-gold-light);background:var(--ui-primary);color:#15283a;box-shadow:0 0 0 2px #e5c17d55;}
html[lang=ja] body:not(.view-battle):not(.battle) #game :is(button,h1,h2,h3){font-family:system-ui,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;}
body:not(.view-battle):not(.battle) #game :is(.pagehead h2,.market-header h1,.captain-hero h1,.legend-heading h2,.completion-heading h1){letter-spacing:-.3px;line-height:1.15;}
body:not(.view-battle):not(.battle) #game :is(.moon-event-action,.departure-sail){text-shadow:none;font-weight:800;}
body:not(.view-battle):not(.battle) #game .moon-event-action>:is(svg,b){color:inherit;filter:none;}
body:not(.view-battle):not(.battle) #game .new-voyage-create:not([data-confirm-discard]){background:var(--ui-primary);color:#15283a;border-color:var(--ui-gold-light);}
body:not(.view-battle):not(.battle) #game .new-voyage-create[data-confirm-discard]{background:linear-gradient(#582a32,#321e2a);border-color:#d78b8677;color:#ffe2de;}

/* Static menu chrome; card canvases, narrative sequences, reveals and the sea engine
   retain their own animation lifecycles. No full-screen animated crossfades. */
body:not(.view-battle):not(.battle) #game :is(.entry-art:after,.legendary-home,.corner-tile,.market-hero:after,.market-content,.market-item,.history-hero>img,.history-arc-card,.campaign-dialogue>img,.synergy-member,.legend-record,.impel3-torches i,.impel3 .is-boss:not(:disabled) .impel3-fight-action,.impel3-hero,.legends-hero,.family-filter-fields,.legend-card,.moon-glimmer,.moon-lantern,.moon-main-cards>.moon-event-card){animation:none!important;will-change:auto;}
body:not(.view-battle):not(.battle) #game :is(.legend-card,.history-arc-card,.captain-tile,.market-item):hover{translate:0 0;transform:none;}
body:not(.view-battle):not(.battle) #nav{backdrop-filter:none;-webkit-backdrop-filter:none;}
/* Keep the account header stationary; long lists scroll inside the available space.
   Dedicated home, shop, recruitment, story, prison and voyage shells already do this. */
body:is(.view-more,.view-settings,.view-missions,.view-inventory,.view-achievements,.view-team,.view-collection,.view-events,.view-localevents,.view-legendhub,.view-legendresult):not(.view-battle):not(.battle) #game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
body:is(.view-more,.view-settings,.view-missions,.view-inventory,.view-achievements,.view-team,.view-collection,.view-events,.view-localevents,.view-legendhub,.view-legendresult):not(.view-battle):not(.battle) #top{flex:none;}
body:is(.view-more,.view-settings,.view-missions,.view-inventory,.view-achievements,.view-team,.view-collection,.view-events,.view-localevents,.view-legendhub,.view-legendresult):not(.view-battle):not(.battle) #main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-behavior:auto;}

/* Entry utilities share the navy/gold menu material, including modal content. */
body.view-entry #game .entry-actions button{display:flex;align-items:center;justify-content:center;text-align:center}
#modal.captain-modal:has(.captain-load){overflow:hidden}
#modal.captain-modal:has(.captain-load) #modalContent{height:min(720px,calc(100dvh - 32px));overflow:hidden}
.captain-load{height:100%;display:flex;flex-direction:column;min-height:0}
.captain-load .captain-hero{flex:none;padding:22px 20px 18px;background:linear-gradient(120deg,#15364e,#071827)}
.captain-load .captain-hero-chart{display:none}
.captain-load .captain-hero h1{font-size:28px;margin:8px 0}
.captain-load .captain-dialog-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px;scrollbar-width:thin}
.captain-load .captain-save-slot{padding:13px 14px;margin-bottom:10px;border-radius:var(--ui-card-radius);border-color:var(--ui-line-soft);background:var(--ui-panel);box-shadow:var(--ui-shadow)}
.captain-load .captain-save-slot h3{font-size:23px;margin:8px 0 5px}
.captain-load .captain-save-slot button{margin-top:10px;min-height:44px;font-size:11px}
.captain-load .captain-save-slot>small{font-size:9px;letter-spacing:1px}
.captain-load .captain-link b{font:700 13px Arial,sans-serif}

/* Source: advertising.css */

/* Reserved menu flow only: ads never overlay game controls. */
.gb-menu-ad{position:relative;clear:both;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;max-width:100%;margin:10px auto;padding:4px 0 10px;overflow:hidden;flex-shrink:0}.gb-menu-ad small{font:9px/14px sans-serif;letter-spacing:1px;color:#aab8c5}.gb-menu-ad>div{min-height:50px;max-width:100%}

/* Legendary Cards 15 presentation */
.legendary-cinema-stage{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;z-index:81!important;pointer-events:none}
.legendary-cinema{position:fixed;inset:0;z-index:82;pointer-events:none;box-shadow:inset 0 9vh 0 #060811e6,inset 0 -9vh 0 #060811e6;animation:legendary-arrival .3s ease-out}
.legendary-cinema-title{position:absolute;left:6%;right:6%;bottom:11%;display:grid;gap:.35rem;color:#fff;text-shadow:0 2px 12px #000}
.legendary-cinema-title small{letter-spacing:.15em;color:#ffe7ad;font-size:.7rem}.legendary-cinema-title strong{font-size:clamp(1.2rem,5.4vw,2rem);font-style:italic}
.legendary-cinema>button{pointer-events:auto;position:absolute;right:5%;top:calc(env(safe-area-inset-top) + 20px);background:#111b;color:#fff;border:1px solid #fff6;border-radius:24px;padding:10px 18px;font-size:.72rem}
.legendary-cinema-active .battle-controls{visibility:hidden}
@keyframes legendary-arrival{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.legendary-cinema{animation:none}}

/* Legendary actor sequences 15.1: a short cut-in precedes the actual moving poses. */
.legendary-cinema-cutin{position:absolute;inset:10% 0;width:100%;height:80%;object-fit:contain;opacity:0;animation:legendary-cutin .72s ease-out forwards;pointer-events:none}
.legendary-cinema[data-rarity="LR"] .legendary-cinema-title{border-left:3px solid #ffe6a5;padding-left:14px}
@keyframes legendary-cutin{0%{opacity:0;transform:translateX(-8%)}18%,66%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(4%)}}
@media(prefers-reduced-motion:reduce){.legendary-cinema-cutin{display:none;animation:none}}
