/* One ticket container replaces application chrome; artwork keeps its own frame. */
.tf-ticket{--stub:11.3%;--tray:96px;--edge:#347fba;position:relative;width:100%;overflow:hidden;border:0;background:transparent;isolation:isolate;touch-action:pan-y;margin:0 0 14px;border-radius:7px}
.tf-slide{position:relative;display:block;box-sizing:border-box;padding:3% 2.5% 3% 12%;width:100%;transform:translateX(0);transition:transform 200ms ease;background:transparent;z-index:1}
.tf-open .tf-slide{transform:translateX(calc(-1 * var(--tray)))}
.tf-tray{visibility:hidden;position:absolute;inset:0 0 0 auto;width:var(--tray);display:grid;grid-template-rows:1fr 1fr minmax(44px,.65fr);gap:4px;padding:4px 3px;background:#061b2b;z-index:0}
.tf-open .tf-tray{visibility:visible}
.tf-tray button{margin:0;padding:4px 1px;border:1px solid #7aa6b3;border-radius:7px;font:14px/1.05 HomeComic,Impact,sans-serif;color:#fff8e6;min-height:44px;cursor:pointer;overflow-wrap:anywhere}
.tf-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:inset 0 1px 2px #ffffff99,inset 0 -3px 3px #0007}
.tf-action>span{font:18px/1 system-ui}.tf-action b{font-weight:400}.tf-action small{font:10px/1.1 system-ui}
.tf-social{background:linear-gradient(145deg,#5de4ff,#087ec1);border-color:#b5f5ff!important}.tf-action.tf-battle{background:linear-gradient(145deg,#f33235,#7f1221);border-color:#ffdc64!important}
.tf-tray button:disabled{filter:grayscale(.6);opacity:.45;cursor:default}.tf-details{background:#061724}.tf-details span{font:18px system-ui}
.tf-menu{position:absolute;left:0;top:3px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#fff5dc;text-shadow:0 1px #061723;font:bold 18px/1 system-ui;z-index:8;cursor:pointer}
.tf-standard .tf-menu,.tf-teamup .tf-menu,.tf-bandwagon .tf-menu{color:#083044;text-shadow:0 1px #fff8}
.tf-menu::before{content:"";position:absolute;inset:9px 8px;background:#091b2877;border:1px solid #c6e1d899;border-radius:50%;z-index:-1}.tf-standard .tf-menu::before,.tf-teamup .tf-menu::before,.tf-bandwagon .tf-menu::before{background:#fff8dcbb}
.tf-art{position:relative;min-width:0;width:100%;border:0;overflow:visible;background:transparent}
.tf-art>article.cc-card,.tf-art>article.bc5-card{margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;min-height:0!important;max-height:none!important;height:auto!important;width:100%;background:transparent;overflow:visible}
.tf-art .ml-scene,.tf-art .tu-scene,.tf-art .bw-scene,.tf-art .bc5-scene{display:block;width:100%;height:auto;position:relative}
.tf-art .cc-mortal-fidelity{aspect-ratio:400/255.867}.tf-art .cc-teamup-fidelity{aspect-ratio:1536/844}.tf-art .cc-bandwagon-fidelity{aspect-ratio:1742/864}
.tf-standard .tf-stub{display:none}.tf-standard .tf-art{border:0;flex-basis:100%;overflow:visible}.tf-standard .cc-standard-ticket{aspect-ratio:1792/896;min-height:0!important}
.tf-ticket .cc-card-controls,.tf-ticket .cc-details,.tf-ticket .cc-actions,.tf-ticket .bw-roundup-open{display:none!important}
.tf-sticker{position:absolute;pointer-events:none;object-fit:contain;z-index:5;filter:drop-shadow(0 1px 1px #0007)}
.tf-standard .tf-outcome{width:38%;height:27%;right:3%;top:1%}
.tf-mortal .tf-outcome{width:47%;height:51%;right:-1%;top:28%}
.tf-teamup .tf-outcome{width:53%;height:35%;left:24%;top:9%}
.tf-bandwagon .tf-outcome{width:42%;height:78%;left:auto;right:-1%;top:18%}
.tf-fighter{width:49%;height:36%;top:49%}.tf-fighter-0{left:0}.tf-fighter-1{right:0}
.tf-eye{position:absolute;transform:translate(-50%,-50%) rotate(-7deg);font:900 clamp(12px,3.7vw,22px)/1 system-ui;color:#ee262c;-webkit-text-stroke:1px #400d11;z-index:6;pointer-events:none}
.tf-neutral{position:absolute;right:9%;top:60%;font:16px HomeComic,Impact,sans-serif;padding:3px 8px;background:#283846;color:#fff4dc;border:1px solid #b8cbd0;z-index:5}
.tf-dialog{position:fixed;top:auto;bottom:12px;left:0;right:0;width:min(92vw,460px);max-height:72dvh;margin:0 auto;padding:24px 20px;background:#fff5db;color:#142b3a;border:2px solid #adc8d3;border-radius:15px;box-shadow:0 8px 50px #0008;overflow:auto;font:16px/1.4 system-ui}
.tf-dialog::backdrop{background:#020d20bb}.tf-dialog h2{font:600 14px/1.4 system-ui;padding-right:28px;margin:0 0 18px}.tf-dialog dl{margin:0}.tf-dialog dl>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid #172b3b20}.tf-dialog dt{overflow-wrap:anywhere}.tf-dialog dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.tf-dialog .positive{color:#176732}.tf-dialog .negative{color:#a42b32}.tf-close{position:absolute;right:10px;top:7px;width:44px;height:44px;border:0;background:none;color:#142b3a;font:25px system-ui}
.tf-ticket button:focus-visible{outline:3px solid #ffe169;outline-offset:-3px}
@media(prefers-reduced-motion:reduce){.tf-slide{transition:none}}
.tf-eye{width:5%;height:8%;object-fit:contain;border:0}

.tf-action-icon{width:20px;height:20px;flex:none;vertical-align:middle}.tf-standard .tf-art{background:transparent}

/* One continuous authored underlay, including the stub and all four rails. */
.tf-slide{background-size:100% 100%;background-repeat:no-repeat;background-color:transparent}
.tf-stub{display:none}
.tf-standard .tf-slide{padding:0;background-image:none}
.tf-mortal .tf-slide{padding-top:5%;padding-bottom:4%;background-image:url('assets/ticket-family/frame-mortal-v2.webp')}
.tf-battle .tf-slide{background-image:url('assets/ticket-family/frame-battle-v2.webp')}
.tf-teamup .tf-slide{padding:5% 3.5% 5% 13%;background-image:url('assets/ticket-family/frame-teamup-v2.webp')}
.tf-bandwagon .tf-slide{padding:2.6% 2.5% 2.6% 11%;background-image:url('assets/ticket-family/frame-bandwagon-v2.webp')}
.tf-menu{top:4%;left:.5%}
.tf-winged-puppies{pointer-events:none;clip-path:polygon(0 47%,26% 47%,26% 100%,0 100%,0 47%,100% 47%,74% 47%,74% 100%,100% 100%,100% 47%)}
.tf-settlement-cloud{position:absolute;left:19.5%;top:7.5%;width:62%;height:41%;z-index:4;background:url('assets/ticket-family/teamup-outcome-cloud-v2.webp') center/100% 100% no-repeat;pointer-events:none}
.tf-standard [data-tf-under-stamp]{visibility:hidden}
body[data-review-step="1"] .tf-settlement-cloud,body[data-review-step="2"] .tf-settlement-cloud,body[data-review-step="3"] .tf-settlement-cloud,body[data-review-step="1"] .tf-winged-puppies,body[data-review-step="2"] .tf-winged-puppies,body[data-review-step="3"] .tf-winged-puppies{display:none}
body[data-review-step="1"] [data-tf-under-stamp],body[data-review-step="2"] [data-tf-under-stamp],body[data-review-step="3"] [data-tf-under-stamp]{visibility:visible}

/* Remove only the baked outer backing around the original illustrated silhouette. */
.tf-battle-shell-trim{clip-path:polygon(4% 19%,5% 17%,8% 15%,15% 15%,18.8% 10%,21% 11%,23% 15%,30% 16%,30% 13%,37% 12%,40% 8.5%,42% 8.5%,44% 11%,47% 12%,52% 9%,54% 11%,57% 9%,58% 11%,59% 8%,62% 8%,64% 12%,68% 12%,70% 16%,78% 15%,80% 10%,82% 11%,85% 15%,91% 14%,94% 15%,96% 17%,97% 34%,98.5% 38%,98.8% 41%,98% 45%,99.5% 48%,100% 51%,99% 55%,98% 58%,98.5% 83%,97% 89%,95% 93%,73% 90%,71% 94%,67% 96%,33% 96%,30% 94%,28% 90%,8% 94%,5% 93%,3% 89%,1.5% 85%,2.5% 57%,.5% 53%,.5% 48%,2% 45%,1.5% 41%,2% 39%,3% 37%)}
.tf-bandwagon .bw-shell{clip-path:polygon(0 15%,2% 11%,7% 11%,9% 9%,13% 10%,16% 6%,18% 3%,20% 3%,20% 6%,27% 5%,35% 6%,47% 9%,64% 8%,67% 5%,70% 10%,95% 10%,98% 11%,100% 15%,100% 91%,97% 94%,3% 94%,0 91%)}
.tf-bandwagon .tf-slide{padding-bottom:3.5%}

/* Approved raised sticker buttons; retain native actions and disabled semantics. */
.tf-tray{gap:6px;padding:5px;background:#071a27}
.tf-tray .tf-action{min-height:44px;min-width:0;border:1px solid;border-radius:9px;padding:3px 1px;gap:0;box-shadow:inset 0 2px 1px #ffffff66,inset 0 -4px 1px #0006,0 2px 3px #0009}
.tf-tray .tf-social{background:linear-gradient(155deg,#55c6ed 0%,#187aaa 48%,#103e65 100%);border-color:#8ed9ef!important}
.tf-tray .tf-action.tf-battle{background:linear-gradient(155deg,#f15850 0%,#b52032 48%,#581324 100%);border-color:#ffb06d!important}
.tf-tray .tf-giddy-up{background:linear-gradient(155deg,#efcc7d 0%,#b98236 48%,#674021 100%);border-color:#f8dc9a!important}
.tf-action .tf-button-sticker{display:block;width:78px;max-width:100%;height:48px;min-height:0;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 1px #0008)}
.tf-action b{font-size:11px;line-height:1;color:#fff6dc;text-shadow:0 1px 2px #062a42}
.tf-tray .tf-details{border:1px solid #587a8d;background:linear-gradient(#214154,#0d2536);box-shadow:inset 0 1px #7ea2b544,inset 0 -3px #0006;border-radius:9px}
.tf-tray button:disabled{opacity:.45;filter:grayscale(.65)}
.tf-tray button:not(:disabled):active{box-shadow:inset 0 3px 4px #0007;transform:translateY(1px)}
/* Compact Bandwagon art at 320px: preserve full 44px targets inside its height. */
@media(max-width:360px){.tf-tray{gap:2px;padding:2px}.tf-action .tf-button-sticker{height:34px}.tf-action b{font-size:10px}}
/* Optical centering: the authored Battle SVG includes extra blank canvas above.
   Move the complete art/data/sticker group, keeping frame size and anchors intact. */
.tf-battle .tf-art{transform:translateY(-5%)}
