/* Shipboard action effects. Fixed-cost CSS/DOM; no map pixels or remote media. */
.tt-fx-cover{position:fixed;inset:0;z-index:11050;display:grid;place-items:center;pointer-events:none;color:#c9faff;background:rgba(2,9,18,.79);opacity:0;transition:opacity .16s ease;font:14px/1.5 system-ui,sans-serif}
.tt-fx-cover.tt-fx-visible{opacity:1}
.tt-fx-panel{position:relative;width:min(450px,calc(100vw - 38px));min-height:260px;box-sizing:border-box;padding:25px 25px 18px;overflow:hidden;border:1px solid #3b7e8e;border-radius:12px;background:linear-gradient(150deg,rgba(13,38,57,.96),rgba(5,16,30,.98));box-shadow:0 0 70px rgba(30,161,185,.2),inset 0 0 50px rgba(29,81,99,.2);text-align:center}
.tt-fx-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#89cdd9}
.tt-fx-signal{height:6px;width:6px;border-radius:50%;background:#88fbdc;box-shadow:0 0 12px #88fbdc;animation:tt-fx-blink 1s steps(2) infinite}
.tt-fx-scene{position:relative;height:144px;margin:14px auto 3px;isolation:isolate}
.tt-fx-orbit,.tt-fx-orbit::before,.tt-fx-orbit::after{position:absolute;top:50%;left:50%;width:126px;height:126px;box-sizing:border-box;border:2px solid rgba(86,219,222,.6);border-radius:50%;transform:translate(-50%,-50%) rotate(0);animation:tt-fx-spin 2.2s linear infinite}
.tt-fx-orbit::before,.tt-fx-orbit::after{content:'';width:92px;height:92px;border-color:rgba(118,231,236,.43);border-style:dashed;animation-direction:reverse}
.tt-fx-orbit::after{width:64px;height:64px;border-style:solid;border-color:rgba(129,245,218,.5);animation-duration:1.8s}
.tt-fx-center{position:absolute;top:50%;left:50%;width:56px;height:64px;transform:translate(-50%,-50%);clip-path:polygon(50% 0,75% 35%,88% 78%,50% 100%,12% 78%,25% 35%);background:linear-gradient(90deg,#237fa1,#a2f6f1 50%,#1b628a);box-shadow:inset 0 0 14px #a0fbff;animation:tt-fx-breathe 1.1s ease-in-out infinite alternate}
.tt-fx-line{position:absolute;left:8%;right:8%;top:51%;height:1px;background:linear-gradient(90deg,transparent,#50e7ed,transparent);animation:tt-fx-scan 1.6s ease-in-out infinite}
.tt-fx-line:last-child{transform:rotate(90deg)}
.tt-fx-title{margin:0;font-size:20px;font-weight:750;letter-spacing:.05em;color:#f0feff}
.tt-fx-detail{margin:6px 0 0;color:#a7cfda;font-size:12px;letter-spacing:.03em}
.tt-fx-track{height:3px;margin-top:17px;overflow:hidden;border-radius:3px;background:#193c4d}
.tt-fx-track::before{content:'';display:block;width:35%;height:100%;background:linear-gradient(90deg,transparent,#7afbe1,transparent);animation:tt-fx-track 1.2s linear infinite}
.tt-fx-cover[data-type="magic"]{--tt-fx-glow:#b18af9}
.tt-fx-cover[data-type="magic"] .tt-fx-panel{border-color:#785aaa;box-shadow:0 0 65px rgba(118,65,198,.26)}
.tt-fx-cover[data-type="magic"] .tt-fx-orbit{border-color:#af8efa}
.tt-fx-cover[data-type="magic"] .tt-fx-center{clip-path:polygon(50% 0,80% 25%,100% 60%,70% 100%,25% 93%,0 45%);background:radial-gradient(circle at 40% 35%,#efe2ff,#994bd6 60%,#401c84)}
.tt-fx-cover[data-type="fleet"] .tt-fx-orbit{border-style:dotted;border-color:#f08878}
.tt-fx-cover[data-type="fleet"] .tt-fx-center{clip-path:polygon(50% 0,58% 38%,100% 50%,58% 62%,50% 100%,42% 62%,0 50%,42% 38%);background:#e88576}
.tt-fx-cover[data-type="construction"] .tt-fx-center{clip-path:polygon(20% 35%,50% 12%,80% 35%,80% 90%,20% 90%);background:linear-gradient(135deg,#4d9cc6,#f6c675)}
.tt-fx-cover[data-type="research"] .tt-fx-orbit{border-style:dashed}
.tt-fx-cover[data-type="research"] .tt-fx-center{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#8ce9c7}
.tt-fx-cover[data-type="resource"] .tt-fx-center{clip-path:polygon(35% 5%,67% 10%,92% 35%,72% 95%,20% 95%,5% 35%);background:linear-gradient(140deg,#ffda9d,#b66d29)}
.tt-fx-cover[data-type="loading"] .tt-fx-center{clip-path:circle(49% at 50% 50%);background:radial-gradient(circle,#b9ecff 0 8%,#2c91c0 9% 22%,#102f52 23% 45%,#7cd6e4 46% 52%,#173e63 53%)}
@keyframes tt-fx-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes tt-fx-breathe{to{filter:brightness(1.55);transform:translate(-50%,-50%) scale(1.1)}}
@keyframes tt-fx-scan{0%,100%{opacity:.15}50%{opacity:.95}}
@keyframes tt-fx-track{from{transform:translateX(-130%)}to{transform:translateX(400%)}}
@keyframes tt-fx-blink{50%{opacity:.2}}
.tt-animation-settings{max-width:650px;margin:18px 0 25px;padding:18px;border:1px solid #3c6071;border-radius:10px;background:#101f2c;color:#ecfaff}
.tt-animation-settings label{display:flex;align-items:center;gap:9px;font-weight:700}
.tt-animation-settings p{color:#afcbd7}
.tt-animation-settings button{cursor:pointer;padding:9px 14px;color:#ecfffc;background:#174e5d;border:1px solid #4b9b9a;border-radius:6px}
@media(prefers-reduced-motion:reduce){.tt-fx-cover,.tt-fx-orbit,.tt-fx-orbit::before,.tt-fx-orbit::after,.tt-fx-center,.tt-fx-line,.tt-fx-track::before,.tt-fx-signal{animation:none!important;transition:none!important}}

/* Cached source artwork, loaded only on the matching action. */
.tt-fx-panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-position:center;background-size:cover;opacity:.14;filter:saturate(.65)}
.tt-fx-panel > *{position:relative;z-index:1}
.tt-fx-cover[data-type="ship"] .tt-fx-panel::before{background-image:url('../../images/Tutorial/buildships.jpg')}
.tt-fx-cover[data-type="magic"] .tt-fx-panel::before{background-image:url('../../images/magicExplosion.jpg');opacity:.19}
.tt-fx-cover[data-type="fleet"] .tt-fx-panel::before{background-image:url('../../images/Tutorial/tilefleets.jpg')}
.tt-fx-cover[data-type="construction"] .tt-fx-panel::before{background-image:url('../../images/Tutorial/buildscreen.jpg')}
.tt-fx-cover[data-type="research"] .tt-fx-panel::before{background-image:url('../../images/controlresearch.jpg')}
