/* v6 additions */
.rail{position:absolute;left:10px;top:122px;z-index:6;display:flex;flex-direction:column;gap:3px;align-items:center;width:58px}
.rail .rc{display:flex;align-items:center;gap:1px;height:26px;min-width:44px;padding:0 6px;border-radius:13px;background:rgba(246,226,170,.88);border:1px solid #3a2410;box-shadow:0 1px 3px rgba(0,0,0,.4);font:bold 14px Georgia,serif;color:#7a1710}
.rail .rc .ic{width:14px;height:14px;color:#4a2a10}.rail .rc.t0{background:rgba(160,205,205,.88);color:#173c42}.rail .rc.t3,.rail .rc.t4{background:rgba(232,165,138,.9)}
.intent .net{position:absolute;right:-14px;bottom:-4px;background:#2a1608;color:#f6e2a2;border:1px solid #c9a24a;border-radius:9px;font:bold 11px Georgia,serif;padding:0 5px;white-space:nowrap}
.intent .net.ok{background:#1d4a3a;color:#cdeedd}
.traits{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}
.trc{display:inline-flex;align-items:center;gap:2px;font:12px 'IM Fell English SC',serif;color:#f3e3b8;background:#4a2a14;border:1px solid #c9a24a;border-radius:10px;padding:1px 7px 1px 4px;min-height:22px}
.trc .ic{width:13px;height:13px}.trc.t-fire{background:#7a2012}.trc.t-runs{background:#1f4a5e}.trc.t-grapple{background:#5a3a14}
.orders{display:flex;gap:4px}
.ord{position:relative;margin:0;min-width:46px;min-height:44px;padding:2px 4px 1px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border-radius:10px;font-size:11px;line-height:1.05;border-width:2px}
.ord .ic{width:18px;height:18px}.ord span{font-family:'IM Fell English SC',serif;font-size:11px}
.ord.ready{background:linear-gradient(#e2bd5e,#a77c26);color:#2a1a0e;border-color:#5a3e14;animation:ordpulse 1.6s ease-in-out infinite}
.ord.cd,.ord.used{opacity:.55;filter:grayscale(.5)}
.ord i{position:absolute;right:-3px;top:-4px;background:#2a1608;color:#f6e2a2;border:1px solid #c9a24a;border-radius:9px;min-width:17px;height:17px;font:bold 11px/15px Georgia,serif;text-align:center;font-style:normal}
@keyframes ordpulse{50%{box-shadow:0 0 10px rgba(255,210,100,.9)}}
.deckchip{background:rgba(90,40,12,.8)}
.dnow{font-size:13px;line-height:1.2;color:#1f4a3a}.dnow small{color:#5a4a30;font-size:11.5px}
#endturn.ready{animation:ordpulse 1.2s ease-in-out infinite}
#endturn.counting{background:linear-gradient(90deg,#e2bd5e,#a77c26);box-shadow:0 0 12px rgba(255,210,100,.8)}
.undo{margin:0 2px;min-width:46px;min-height:44px;padding:0 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;line-height:1}.undo small{font-size:10px;font-family:'IM Fell English SC',serif}
#app[data-screen=combat] .actions{grid-template-columns:60px 1fr 52px 60px;gap:6px}
#app[data-screen=combat] .actions>button.undo{min-height:46px;height:46px;font-size:20px;padding:0}
.rail{flex-direction:row;left:6px;top:127px;width:auto;gap:3px}
.rail .rc{min-width:40px;padding:0 5px}
.hud .ofc,.ofc{width:19px;height:19px}.offs{gap:2px}
.node em{font-size:11.5px}
/* settings */
.setl .seg{display:flex;flex-direction:column;gap:6px;margin:6px 0}.setl .seg>span{font-size:14px;color:var(--cream)}
.setl .seg>div{display:flex;gap:6px}.setl .seg button{flex:1;min-height:44px;margin:0}.setl .seg button.on{background:linear-gradient(#e8c76a,#b8862c);color:#2a1606;font-weight:700}
.setl .rng{display:flex;flex-direction:column;gap:2px;margin:8px 0;color:var(--cream);font-size:14px}.setl .rng input{width:100%;height:36px;accent-color:#e8c76a}
.sw small{display:block;font-size:11.5px;opacity:.75;font-weight:400}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#1a0f06;border:1px solid #e8c76a;color:#f1e1b8;padding:10px 16px;border-radius:6px;z-index:99;font-size:14px}
/* title / cap select / nassau / end */
.tagl{text-align:center;font-style:italic;opacity:.9;margin:6px 8px}
.docts{margin:8px 0;padding:8px;background:rgba(0,0,0,.28);border:1px solid #6b4a1e;border-radius:6px}.docts b{color:#e8c76a;font-size:14px}
.docts>div{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.docts .doc{min-height:44px;padding:4px 10px;font-size:13px;flex:1 1 30%}.docts .doc.on{background:linear-gradient(#e8c76a,#b8862c);color:#2a1606;font-weight:700}.docts small{opacity:.8}
.rankbox{margin:8px 0;padding:8px 10px;background:rgba(0,0,0,.3);border:1px solid #6b4a1e;border-radius:6px;color:var(--cream)}.rankbox b{color:#e8c76a}
.rbar{height:10px;border-radius:5px;background:#1a0f06;border:1px solid #6b4a1e;margin:6px 0;overflow:hidden}.rbar i{display:block;height:100%;background:linear-gradient(#f0cf75,#b8862c)}
.unl{margin:6px 0 0 16px;padding:0;font-size:13px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}.stats div{background:rgba(0,0,0,.3);border:1px solid #6b4a1e;border-radius:6px;text-align:center;padding:6px 2px}.stats b{display:block;font-size:20px;color:#e8c76a}.stats small{font-size:11px;opacity:.8}
.bld h3 small{opacity:.7}.lt{width:100%;border-collapse:collapse;font-size:14px;margin:6px 0}.lt td,.lt th{padding:3px 6px;border-bottom:1px solid #4a3216;text-align:left}
/* safe areas, text size, colour-blind palette */
body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
html.ts1 .card .ds,html.ts1 .detail,html.ts1 .scr p,html.ts1 .msg,html.ts1 .choices small,html.ts1 .lg,html.ts1 .sm,html.ts1 .dnow,html.ts1 #log,html.ts1 .evopt{font-size:calc(1em + 1.5px)}
html.ts2 .card .ds,html.ts2 .detail,html.ts2 .scr p,html.ts2 .msg,html.ts2 .choices small,html.ts2 .lg,html.ts2 .sm,html.ts2 .dnow,html.ts2 #log,html.ts2 .evopt{font-size:calc(1em + 3px)}
html.ts1 .gb span,html.ts1 .ord span,html.ts1 .node em{font-size:12.5px}html.ts2 .gb span,html.ts2 .ord span,html.ts2 .node em{font-size:14px}
html.cb .gb i{background:#D55E00!important}
html.cb .g-hull .gb i{background:repeating-linear-gradient(45deg,#E69F00 0 5px,#b87c00 5px 8px)!important}
html.cb .g-crew .gb i{background:radial-gradient(circle,#0b4d75 1.2px,transparent 1.6px) 0 0/6px 6px,#56B4E9!important}
html.cb .g-hp .gb i{background:#D55E00!important}
html.cb .net{outline:2px solid #0072B2}
html.cb .node.avail{box-shadow:0 0 0 3px #56B4E9}
/* FX layer */
#fxl{position:fixed;inset:0;pointer-events:none;z-index:45;overflow:hidden}
.fxe{position:absolute;pointer-events:none}
.fxe.ball{width:9px;height:9px;margin:-4px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#777,#111);box-shadow:0 0 6px 2px rgba(255,200,90,.6);animation:ballf .34s cubic-bezier(.35,0,.9,.6) forwards}
@keyframes ballf{from{transform:translate(0,0) scale(.8)}50%{transform:translate(calc(var(--dx)*.5),calc(var(--dy)*.5 - 28px)) scale(1.1)}to{transform:translate(var(--dx),var(--dy)) scale(.7)}}
.fxe.puff{width:26px;height:26px;margin:-13px;border-radius:50%;background:radial-gradient(circle,rgba(235,230,215,.85),rgba(150,140,125,.35) 60%,transparent 72%);animation:puff .55s ease-out forwards}
@keyframes puff{from{transform:scale(.3);opacity:.95}to{transform:scale(2.1) translateY(-10px);opacity:0}}
.fxe.flash{width:20px;height:20px;margin:-10px;border-radius:50%;background:radial-gradient(circle,#fff6c0,#ffb030 55%,transparent 70%);animation:flash .18s ease-out forwards}
@keyframes flash{from{transform:scale(.4);opacity:1}to{transform:scale(1.8);opacity:0}}
.fxe.spark{width:5px;height:5px;margin:-2px;border-radius:50%;background:#ffd36a;box-shadow:0 0 5px #ff9a20;animation:sparkf .5s ease-out forwards}
.fxe.spark.red{background:#ff6a4a;box-shadow:0 0 5px #d02010}.fxe.spark.gold{background:#fff0a0;width:6px;height:6px}
@keyframes sparkf{to{transform:translate(var(--dx),var(--dy));opacity:0}}
.fxe.xslash{width:64px;height:64px;margin:-32px;animation:xs .4s ease-out forwards}.xslash svg{width:100%;height:100%;overflow:visible}.xslash path{stroke:#fff6d8;stroke-width:3.5;stroke-linecap:round;fill:none;filter:drop-shadow(0 0 4px #ffb030);stroke-dasharray:50;animation:xsd .22s ease-out forwards}
@keyframes xs{from{transform:scale(.6) rotate(-8deg);opacity:1}to{transform:scale(1.15) rotate(6deg);opacity:0}}@keyframes xsd{from{stroke-dashoffset:50}to{stroke-dashoffset:0}}
.fxe.reticle{width:54px;height:54px;margin:-27px;border:3px solid #ff5a3a;border-radius:50%;box-shadow:0 0 12px #ff5a3a,inset 0 0 8px #ff5a3a;animation:ret .6s ease-out forwards}
@keyframes ret{from{transform:scale(2.2);opacity:0}30%{opacity:1}to{transform:scale(.6);opacity:0}}
.fxe.splash{width:8px;height:8px;margin:-4px;border-radius:50%;background:#bfe6f0;box-shadow:0 0 4px #fff;animation:spl .9s ease-out forwards}
@keyframes spl{40%{transform:translate(var(--dx),var(--dy))}to{transform:translate(calc(var(--dx)*1.3),calc(var(--dy) + 70px));opacity:0}}
.fxe.windln{width:90px;height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(240,255,255,.8),transparent);animation:wln .9s ease-in forwards}
@keyframes wln{to{transform:translateX(560px);opacity:0}}
.fxe.hook{font-size:22px;margin:-11px;animation:hk .55s ease-in forwards}@keyframes hk{to{transform:translate(var(--dx),var(--dy)) rotate(280deg);opacity:.2}}
.fxe.runner{width:14px;height:20px;margin:-10px;animation:run .7s ease-in-out forwards}.runner svg{width:100%;height:100%;fill:none;stroke:#1a0f06;stroke-width:1.6;stroke-linecap:round}.runner circle{fill:#1a0f06}.runner .bl{stroke:#e8d6a8}
@keyframes run{to{transform:translate(var(--dx),var(--dy));opacity:.1}}
.fxe.orderglow{width:90px;height:90px;margin:-45px;border-radius:50%;background:radial-gradient(circle,rgba(255,220,120,.7),transparent 70%);animation:flash .7s ease-out forwards}
.fxe.shieldglint{width:46px;height:46px;margin:-23px;border-radius:50%;border:3px solid #9fd8e8;box-shadow:0 0 10px #9fd8e8;animation:flash .5s ease-out forwards}
.bigtxt{position:absolute;left:0;right:0;top:34%;text-align:center;font:38px 'Pirata One',serif;color:#ffe9a8;letter-spacing:2px;text-shadow:0 3px 0 #3a1608,0 0 18px rgba(255,150,40,.8);animation:bt 1s cubic-bezier(.2,.9,.2,1) forwards}
.bigtxt.crit{color:#ff8a5a;font-size:44px}.bigtxt.sunk{color:#cfe9f2;font-size:46px}.bigtxt.board{font-size:34px}.bigtxt.duel{font-size:30px;color:#e8c76a}.bigtxt.order{font-size:30px;top:27%}
@keyframes bt{0%{transform:scale(.4) rotate(-3deg);opacity:0}18%{transform:scale(1.15);opacity:1}30%{transform:scale(1)}80%{opacity:1}100%{transform:translateY(-26px);opacity:0}}
.eart.sinking{animation:sink 1.1s ease-in forwards!important}@keyframes sink{to{transform:translateY(60px) rotate(16deg);opacity:0;filter:blur(2px)}}
.myship.recoil,.eart.recoil{animation:recoil .22s ease-out}@keyframes recoil{30%{transform:translateX(-4px) scale(1.02)}}
#app.shake{animation:shk1 .3s linear}#app.shake2{animation:shk2 .42s linear}#app.shake3{animation:shk3 .52s linear}
@keyframes shk1{20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,0)}}
@keyframes shk2{15%{transform:translate(-5px,2px)}30%{transform:translate(5px,-2px)}45%{transform:translate(-4px,1px)}60%{transform:translate(3px,-1px)}}
@keyframes shk3{10%{transform:translate(-8px,3px) rotate(-.4deg)}25%{transform:translate(8px,-3px) rotate(.4deg)}40%{transform:translate(-6px,2px)}55%{transform:translate(5px,-2px)}70%{transform:translate(-3px,1px)}}
/* cinematic cards */
.cine{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;justify-content:center;background:rgba(10,5,2,.94);animation:cin .35s ease-out;cursor:pointer}
.cine.out{opacity:0;transition:opacity .3s}.cine.still{animation:none}
.cine .cimg{height:44%;background-size:cover;background-position:center 30%;border-top:3px solid #c9a24a;border-bottom:3px solid #c9a24a;filter:saturate(1.1) contrast(1.05);animation:kb 6s ease-out forwards}
.cine .cimg.dark{background:radial-gradient(circle at 50% 60%,#4a1208,#0a0402 70%)}.cine .cimg.rays{box-shadow:inset 0 0 90px #ffd36a}
.cine .ct{padding:18px 26px;text-align:center;color:#e8d6a8}.cine .ct i{display:block;font:14px 'IM Fell English SC',serif;letter-spacing:4px;color:#c9a24a;font-style:normal}
.cine .ct b{display:block;font:40px/1.05 'Pirata One',serif;color:#f4d98a;margin:6px 0 10px;text-shadow:0 3px 0 #3a1608}.cine .ct p{font-size:16px;line-height:1.35;margin:0}
.cine .skip{text-align:center;color:#8a7a5a;font-size:12px;letter-spacing:2px;margin-top:6px}
.cine.boss .cimg{height:50%}.cine.death .ct b{color:#d85a4a}
@keyframes cin{from{opacity:0}}@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.coach{position:fixed;left:10px;right:10px;bottom:90px;z-index:60;background:#f1e2bd;color:#2a1a0c;border:2px solid #8a6a24;border-radius:8px;padding:10px 12px;box-shadow:0 6px 18px rgba(0,0,0,.6);font-size:14px;line-height:1.3}.coach b{font:20px 'Pirata One',serif}.coach p{margin:4px 0 8px}.coach button{min-height:44px;margin-right:8px}.coach button.off{background:none;border:1px solid #8a6a24;color:#5a4a30}
