/* Preserve natural image ratios when intrinsic dimensions reserve layout space. */
:where(img[width][height]){height:auto;}
/* New campaign sections; all rules are scoped to avoid existing tab layouts. */
.hero-carousel {position:relative;overflow:hidden;--swiper-theme-color:#0f67e1;}
.hero-carousel .swiper-slide> a,.hero-carousel picture,.hero-carousel picture img{display:block;}
.hero-carousel .banner-top{align-self:start;}
.hero-prev,.hero-next{position:absolute;top:50%;z-index:3;border:0;border-radius:50%;width:44px;height:44px;background:#fbf2e9d9;color:#0f67e1;font-size:34px;line-height:1;}
.hero-prev{left:24px}.hero-next{right:24px}
.hero-pagination{position:absolute;bottom:16px!important;z-index:3;text-align:center;}

.section-subtitle{display:block;font-size:28px;color:#0f67e1;margin-top:8px;}
.extended-trading{margin:28px auto 120px;scroll-margin-top:90px;}
.extended-trading .section-text-heading{margin-bottom:12px;}
.extended-subtitle{font-size:28px;font-weight:700;color:#0f67e1;text-align:center;margin-bottom:32px;}
.extended-subtitle-time{color:#ba2922;}
.mobile-subtitle{display:none;}
.trading-benefits{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px;}
.trading-benefits picture,.trading-benefits img{display:block;}
.trading-ticket{position:relative;background:#fbf2e9;padding:30px 63px 46px;margin-top:12px;}
.trading-ticket:before,.trading-ticket:after{content:"";position:absolute;left:0;right:0;height:12px;background:radial-gradient(circle at 12px 0,#f1d9be 6px,transparent 6.5px) 0 0/24px 12px repeat-x;}
.trading-ticket:before{top:0}.trading-ticket:after{bottom:0;transform:rotate(180deg);}
.trading-grid{position:relative;display:grid;grid-template-columns:292fr 391fr 391fr;grid-template-rows:90px repeat(3,111px);}
.trading-grid:before,.trading-grid:after{content:"";position:absolute;width:56px;height:56px;border-radius:50%;background:#f1d9be;top:63px;}
.trading-grid:before{left:-91px}.trading-grid:after{right:-91px}
.label-session,.label-us,.label-tw{display:flex;align-items:flex-start;justify-content:center;padding-bottom:25px;border-bottom:2px solid #8b8884;}
.label-us,.label-tw{border-left:2px dashed #b1b1b1;}
.label-session img,.label-us img,.label-tw img{width:292px!important;max-width:100%;height:auto;}
.label-session{grid-column:1;grid-row:1}.label-us{grid-column:2;grid-row:1}.label-tw{grid-column:3;grid-row:1}
.session-cell,.us-cell,.tw-cell{display:flex;align-items:center;justify-content:center;gap:18px;font-size:20px;line-height:1.35;position:relative;}
.session-cell{grid-column:1;padding-left:100px;flex-direction:column;gap:8px;}
.session-cell>span{font-size:16px;letter-spacing:4px;}
.us-cell{grid-column:2;border-left:2px dashed #b1b1b1;}
.tw-cell{grid-column:3;border-left:2px dashed #b1b1b1;}
.session-0{grid-row:2;border-bottom:2px dashed #b1b1b1;}.session-1{grid-row:3;background:#f8e0da;border-bottom:2px dashed #b1b1b1;}.session-2{grid-row:4;}
.session-cell.session-1 strong{color:#ba2922;}
.time-icon{width:68px!important;height:68px;flex-shrink:0;}
.time-range{font-family:Arial,sans-serif;white-space:nowrap;}
.time-separator{padding:0 3px;}
.season-times{white-space:nowrap;}
.trading-table-wrap .season-summer{color:#ff4d00;}
.trading-table-wrap .season-winter{color:#006bff;}
.all-day{position:absolute;z-index:1;left:0;top:106px;bottom:0;width:90px;background:linear-gradient(#abd9ff,#84aae1 60%,#f4d8ad);color:white;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;letter-spacing:5px;}
.trading-notice{display:flex;align-items:flex-start;gap:4px;padding:16px 24px;}
.trading-notice>img{width:24px!important;height:24px;flex-shrink:0;}.trading-notice p{font-size:16px;line-height:1.4!important;}
.trading-details{text-align:center;margin:0 auto 60px;}.trading-details .trading-note-link{display:inline-flex;align-items:center;gap:12px;color:#0f67e1;font-size:24px;font-weight:700;padding:8px 0;border-bottom:1px solid #0f67e1;cursor:pointer;list-style:none;}.trading-details .trading-note-link::-webkit-details-marker{display:none;}.trading-details .trading-note-link svg{flex-shrink:0;}.trading-details[open] summary svg{transform:rotate(90deg);}.trading-details-body{margin:20px auto 0;padding:24px;text-align:left;background:#fbf2e9;font-size:16px;line-height:1.6;}
.iphone-promo{position:relative;display:grid;grid-template-columns:50.83% 49.17%;align-items:center;min-height:424px;isolation:isolate;}
.iphone-art{position:relative;display:block;z-index:2;}.iphone-art img{display:block;}
.iphone-card{position:relative;margin-left:-31%;width:131%;min-height:390px;display:flex;align-items:center;justify-content:flex-end;}
.iphone-card-bg{position:absolute;inset:0;width:100%!important;height:100%;object-fit:fill;z-index:-1;}
.iphone-copy{width:66%;margin-right:8%;display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center;padding:32px 0;}
.iphone-title{width:292px!important;max-width:80%;height:auto;}.iphone-copy p{width:100%;font-size:32px;font-weight:700;padding:24px 0;border-block:2px dashed #b1b1b1;white-space:nowrap;}.iphone-copy mark{padding:0;background:linear-gradient(transparent 60%,#f3ff4e 60%);}.iphone-cta{display:inline-block;padding:12px 48px;background:#ba2922;color:#fbf2e9;border-radius:8px;font-size:24px;font-weight:700;text-decoration:none;}.iphone-cta:hover{color:#f3ff4e;}
.iphone-promo.animate-ready .iphone-card{opacity:0;transform:translateX(-45%);transition:transform .85s cubic-bezier(.2,.7,.2,1),opacity .65s;}.iphone-promo.animate-ready.is-visible .iphone-card{opacity:1;transform:translateX(0);}
@media(min-width:768px) and (max-width:1100px){.trading-ticket{padding-inline:24px}.session-cell,.us-cell,.tw-cell{font-size:16px;gap:4px}.time-icon{width:45px!important;height:45px}.session-cell{padding-left:65px}.all-day{width:55px}.iphone-copy p{font-size:24px}.iphone-copy{gap:18px}}
@media(max-width:767px){
.hero-prev,.hero-next{width:30px;height:30px;font-size:24px;}.hero-prev{left:8px}.hero-next{right:8px}.hero-pagination{bottom:10px!important}
.section-subtitle{font-size:22px;}
.extended-trading{margin:32px auto 60px;}.extended-trading .section-text-heading{margin-bottom:8px;}.extended-subtitle{font-size:22px;margin-bottom:20px;}.desktop-subtitle{display:none;}.mobile-subtitle{display:inline;}.trading-benefits{grid-template-columns:1fr;gap:16px;margin-bottom:24px;}
.trading-ticket{padding:29px 27px 34px;margin-top:0;}.trading-grid{grid-template-columns:44px repeat(3,minmax(0,1fr));grid-template-rows:46px 132px 178px 250px;}
.trading-grid:before,.trading-grid:after{top:54px;width:36px;height:36px;}.trading-grid:before{left:-45px}.trading-grid:after{right:-36px}
.all-day{position:relative;grid-column:2/5;grid-row:1;left:auto;top:auto;bottom:auto;width:auto;height:39px;writing-mode:horizontal-tb;letter-spacing:0;font-size:18px;background:linear-gradient(90deg,#abd9ff,#84aae1 60%,#f4d8ad);margin-left:10px;}
.label-session,.label-us,.label-tw{grid-column:1;align-items:center;padding:0 10px 0 0;border-bottom:2px dashed #b1b1b1;border-left:0;border-right:2px solid #8b8884;}.label-session{grid-row:1/3;}.label-us{grid-row:3;}.label-tw{grid-row:4;border-bottom:0;}
.label-session img,.label-us img,.label-tw img{width:28px!important;max-width:none;height:auto;}
.session-cell,.us-cell,.tw-cell{padding:0;gap:0;font-size:16px;flex-direction:column;text-align:center;border-left:0;border-bottom:2px dashed #b1b1b1;}.session-cell{grid-row:2;}.us-cell{grid-row:3;}.tw-cell{grid-row:4;border-bottom:0;}.session-0{grid-column:2;}.session-1{grid-column:3;border-inline:2px dashed #b1b1b1;background:#f8e0da;}.session-2{grid-column:4;}.session-cell>span{font-size:14px;letter-spacing:2px;margin-top:10px;}.time-icon{width:52px!important;height:52px;}.time-range{display:flex;flex-direction:column;line-height:1.2;}.time-separator{padding:0;}.season-times{white-space:normal;}.season-times>div+div{margin-top:24px;}.season{display:block;margin-bottom:12px;}.trading-notice{padding:16px 20px;}.trading-notice p{font-size:14px;}.trading-notice>img{width:16px!important;height:20px;}.trading-details{margin-bottom:32px;}.trading-details .trading-note-link{font-size:20px;gap:6px;}.trading-details-body{padding:16px;font-size:14px;}
.iphone-promo{display:flex;flex-direction:column;min-height:0;}.iphone-card{order:0;margin:0;width:94%;min-height:300px;background:#fbf2e9;}.iphone-card-bg{display:none;}.iphone-copy{width:90%;margin:auto;gap:20px;padding:20px 0 32px;}.iphone-title{width:216px!important;}.iphone-copy p{font-size:20px;padding:16px 0;}.iphone-cta{width:207px;padding:10px;font-size:20px;}.iphone-art{order:1;margin-top:-10px;width:calc(100% + 8px);}.iphone-promo.animate-ready .iphone-card{transform:translateX(-15%);}
}
@media(prefers-reduced-motion:reduce){.iphone-promo.animate-ready .iphone-card{opacity:1;transform:none;transition:none;}}

.trading-note-link{text-decoration:none;}

@media(max-width:767px){.extended-trading .trading-ticket{padding-inline:16px}.extended-trading .trading-grid:before{left:-34px}.extended-trading .trading-grid:after{right:-34px}.trading-details .trading-note-link{font-size:clamp(14px,4.4vw,20px)}.extended-trading .section-text-heading{font-size:clamp(20px,6vw,28px)}}
@media(max-width:767px){.iphone-art{width:100%}.iphone-card{background:transparent url('../img/extended/iphone-card-mb.png') center/100% 100% no-repeat;}}
@media(max-width:360px){.session-cell>span{font-size:12px;letter-spacing:1px}.session-cell,.us-cell,.tw-cell{font-size:14px}.time-icon{width:44px!important;height:44px}.iphone-copy p{font-size:18px}}

/* Keep the rounded outline on text only, without changing the blue stars. */
/* Reuse the page's existing ticket edge artwork. */
.trading-ticket:before{height:28.3px;background:#f1d9be url('../img/ct1-card-bg-top.svg') center/100% 100% no-repeat;}
.trading-ticket:after{height:24.2px;background:#f1d9be url('../img/ct1-card-bg-bottom.svg') center/100% 100% no-repeat;transform:none;}
@media(max-width:767px){.trading-ticket:before{height:17.1px;background-image:url('../img/ct1-card-bg-top-mb.svg')}.trading-ticket:after{height:17.1px;background-image:url('../img/ct1-card-bg-bottom-mb.svg')}}

/* Match the original KV height and keep controls below both slides. */
.hero-stage{aspect-ratio:2100/820;width:100%;overflow:hidden;}
.hero-stage .swiper-wrapper,.hero-stage .swiper-slide{height:100%;}
.hero-carousel .banner-top{margin-top:0!important;}
.hero-stage .swiper-slide>a,.hero-stage picture{height:100%;}
.hero-stage .swiper-slide>a img{height:100%;object-fit:cover;object-position:center bottom;}
.hero-stage .banner-top>section{height:100%;}
.hero-stage .banner-top>section img.pc:not(.absolute):not(.tw-absolute){height:100%;object-fit:cover;object-position:center bottom;}
.hero-controls{position:relative;min-height:44px;display:flex;align-items:center;justify-content:center;}
.hero-controls .hero-pagination{position:static;width:auto;line-height:1;}
.hero-prev,.hero-next{width:44px;height:54px;background:transparent;border-radius:0;padding:8px 12px;transform:translateY(-50%);}
.hero-prev img,.hero-next img{width:20px!important;height:38px;display:block;}
.hero-carousel .liberty{animation:none;}
.hero-carousel .swiper-slide-active .liberty{animation:slide-in-right .9s cubic-bezier(.2,.8,.2,1) both;}
@media(max-width:590px){.hero-stage{aspect-ratio:786/990}.hero-stage .banner-top>section img.mb-block:not(.absolute):not(.tw-absolute){height:100%;object-fit:cover;object-position:center bottom;}.hero-prev,.hero-next{width:36px;height:48px;padding:8px 10px;}.hero-prev img,.hero-next img{width:16px!important;height:30.4px;}.hero-controls{min-height:36px;}}
@media(prefers-reduced-motion:reduce){.hero-carousel .swiper-slide-active .liberty{animation:none;}}
/* Table alignment and separate, rounded dashes follow the Figma grid. */
.trading-ticket{isolation:isolate;}
.trading-postmark{position:absolute;width:28%!important;max-width:400px;right:-18%;bottom:-23%;z-index:-1;pointer-events:none;}
@media(min-width:768px){
 .trading-grid{grid-template-columns:341.5fr 391fr 341.5fr;}
 .label-session,.label-us,.label-tw{position:relative;align-items:center;padding-bottom:0;border-left:0;}
 .label-session{justify-content:flex-start}.label-tw{justify-content:flex-end}
 .label-session picture,.label-tw picture{width:85.505%}.label-us picture{width:74.68%}
 .label-session img,.label-us img,.label-tw img{width:100%!important;}
 .us-cell,.tw-cell{border-left:0;}
 .session-0,.session-1{border-bottom:0;}
 .label-us:before,.label-tw:before,.us-cell:before,.tw-cell:before{content:"";position:absolute;left:0;top:8px;bottom:17px;width:2px;background:url('../img/extended/table-line-vertical.svg') center/2px 100% no-repeat;}
 .us-cell:before,.tw-cell:before{top:17px;bottom:18px;}
 .session-cell.session-0:after,.session-cell.session-1:after{content:"";position:absolute;z-index:2;left:90px;bottom:-1px;width:calc((100% * 1074 / 341.5) - 90px);height:2px;background:url('../img/extended/table-line-horizontal.svg') center/100% 2px no-repeat;}
 .session-cell{padding-left:110px;}
 .tw-cell{gap:14px;}
 .session-1{background:none;}
 .session-cell.session-1{background:#f8e0da;}
 .session-cell.session-1:before{content:"";position:absolute;left:0;right:calc(-100% * (391 + 341.5) / 341.5 - 63px);top:8px;bottom:8px;background:#f8e0da;z-index:-1;}
}
@media(max-width:767px){.trading-postmark{display:none;}}
@media(min-width:768px) and (max-width:1100px){.session-cell{padding-left:65px}.session-cell.session-0:after,.session-cell.session-1:after{left:55px;width:calc((100% * 1074 / 341.5) - 55px)}}
.hero-carousel .train{animation:none;}
.hero-carousel .swiper-slide-active .train{animation:slide-in-left .9s cubic-bezier(.2,.8,.2,1) both;}
@media(prefers-reduced-motion:reduce){.hero-carousel .swiper-slide-active .train{animation:none;}}
.trading-table-wrap{position:relative;isolation:isolate;clip-path:inset(-100% calc((100vw - 100%)/-2) -100%);}
.trading-table-wrap .trading-ticket{z-index:1;}
.trading-table-wrap .trading-postmark{z-index:0;}
.trading-table-wrap .trading-postmark{top:65%;bottom:auto;}
@media(min-width:768px){.label-us:before,.label-tw:before,.us-cell:before,.tw-cell:before{left:-38px;top:50%;bottom:auto;width:76px;height:2px;transform:translateY(-50%) rotate(90deg);background-size:100% 2px;}}
@keyframes hero-train-rise{from{transform:translateY(110%);opacity:0}60%{transform:translateY(-12px);opacity:1}80%{transform:translateY(6px);opacity:1}to{transform:translateY(0);opacity:1}}
.hero-carousel .swiper-slide-active .train{animation:hero-train-rise .9s cubic-bezier(.2,.8,.2,1) both;}
@media(prefers-reduced-motion:reduce){.hero-carousel .swiper-slide-active .train{animation:none;}}

/* One stationary curve masks every slide, including animated foregrounds. */
.hero-stage{-webkit-mask-image:url('../img/extended/banner-mask.svg');mask-image:url('../img/extended/banner-mask.svg');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;}
@media(max-width:590px){.hero-stage{-webkit-mask-image:none;mask-image:none}}

/* Geometry uses the actual card width: desktop 1200px, mobile 361px. */
.trading-table-wrap{container-type:inline-size;--table-unit:0.083333333cqw;}
.trading-table-wrap .trading-ticket{--edge-top:calc(28.3 * var(--table-unit));--edge-bottom:calc(24.2 * var(--table-unit));padding:calc(30 * var(--table-unit)) calc(63 * var(--table-unit)) calc(12 * var(--table-unit));background:linear-gradient(to bottom,transparent var(--edge-top),#fbf2e9 var(--edge-top),#fbf2e9 calc(100% - var(--edge-bottom)),transparent calc(100% - var(--edge-bottom)));}
.trading-table-wrap .trading-ticket:before,.trading-table-wrap .trading-ticket:after{left:0;right:0;width:100%;border:0;transform:none;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;z-index:2;pointer-events:none;}
.trading-table-wrap .trading-ticket:before{top:0;height:calc(var(--edge-top) + 1px);background-image:url('../img/ct1-card-bg-top.png');}
.trading-table-wrap .trading-ticket:after{bottom:0;height:calc(var(--edge-bottom) + 1px);background-image:url('../img/ct1-card-bg-bottom.png');}
.trading-table-wrap .trading-ticket .trading-grid{grid-template-columns:341.5fr 391fr 341.5fr;grid-template-rows:calc(106 * var(--table-unit)) repeat(3,calc(111 * var(--table-unit)));isolation:isolate;}
.trading-table-wrap .trading-grid:before,.trading-table-wrap .trading-grid:after{width:calc(28 * var(--table-unit));height:calc(28 * var(--table-unit));top:calc(76 * var(--table-unit));z-index:3;}
.trading-table-wrap .trading-grid:before{left:calc(-77 * var(--table-unit));}.trading-table-wrap .trading-grid:after{right:calc(-77 * var(--table-unit));}
.trading-table-wrap .trading-grid>.label-session,.trading-table-wrap .trading-grid>.label-us,.trading-table-wrap .trading-grid>.label-tw{border:0;border-bottom:calc(2 * var(--table-unit)) solid #8b8884;height:calc(90 * var(--table-unit));padding:0;align-items:center;position:relative;}
.trading-table-wrap .label-session picture,.trading-table-wrap .label-tw picture{width:85.505%;}.trading-table-wrap .label-us picture{width:74.68%;}
.trading-table-wrap .label-session img,.trading-table-wrap .label-us img,.trading-table-wrap .label-tw img{width:100%!important;height:auto;}
.trading-table-wrap .trading-grid>.session-cell,.trading-table-wrap .trading-grid>.us-cell,.trading-table-wrap .trading-grid>.tw-cell{border:0;background:none;font-size:calc(20 * var(--table-unit));gap:calc(18 * var(--table-unit));z-index:1;}
.trading-table-wrap .trading-grid>.session-cell{padding-left:calc(110 * var(--table-unit));gap:calc(12 * var(--table-unit));}
.trading-table-wrap .session-cell>span{font-size:calc(16 * var(--table-unit));letter-spacing:calc(4 * var(--table-unit));}
.trading-table-wrap .time-icon{width:calc(68 * var(--table-unit))!important;height:calc(68 * var(--table-unit));}
.trading-table-wrap .regular-strip{grid-column:1/4;grid-row:3;z-index:0;margin:calc(8 * var(--table-unit)) calc(-63 * var(--table-unit)) calc(8 * var(--table-unit)) calc(90 * var(--table-unit));background:#f8e0da;}
.trading-table-wrap .session-cell.session-1:before{display:none;}
.trading-table-wrap .all-day{top:calc(106 * var(--table-unit));width:calc(90 * var(--table-unit));font-size:calc(22 * var(--table-unit));letter-spacing:calc(5 * var(--table-unit));}
.trading-table-wrap .label-us:before,.trading-table-wrap .label-tw:before,.trading-table-wrap .us-cell:before,.trading-table-wrap .tw-cell:before{display:block;left:calc(-38 * var(--table-unit));top:50%;bottom:auto;width:calc(76 * var(--table-unit));height:calc(2 * var(--table-unit));background-size:100% 100%;transform:translateY(-50%) rotate(90deg);}
.trading-table-wrap .session-cell.session-0:after,.trading-table-wrap .session-cell.session-1:after{left:calc(105 * var(--table-unit));bottom:0;height:calc(2 * var(--table-unit));width:calc((100% * 1074 / 341.5) - 105 * var(--table-unit));background-size:100% 100%;}
@media(max-width:767px){
 .trading-table-wrap{--table-unit:0.27700831cqw;}
 .trading-table-wrap .trading-ticket{--edge-top:calc(17.1 * var(--table-unit));--edge-bottom:calc(17.1 * var(--table-unit));padding:calc(29 * var(--table-unit)) calc(27 * var(--table-unit)) calc(34 * var(--table-unit));}
 .trading-table-wrap .trading-ticket:before{background-image:url('../img/ct1-card-bg-top-mb.png')}.trading-table-wrap .trading-ticket:after{background-image:url('../img/ct1-card-bg-bottom-mb.png')}
 .trading-table-wrap .trading-ticket .trading-grid{grid-template-columns:calc(44 * var(--table-unit)) repeat(3,minmax(0,1fr));grid-template-rows:calc(46 * var(--table-unit)) calc(132 * var(--table-unit)) calc(178 * var(--table-unit)) calc(250 * var(--table-unit));}
 .trading-table-wrap .trading-grid:before,.trading-table-wrap .trading-grid:after{top:calc(54 * var(--table-unit));width:calc(36 * var(--table-unit));height:calc(36 * var(--table-unit));}
 .trading-table-wrap .trading-grid:before{left:calc(-45 * var(--table-unit))}.trading-table-wrap .trading-grid:after{right:calc(-45 * var(--table-unit))}
 .trading-table-wrap .trading-grid>.label-session,.trading-table-wrap .trading-grid>.label-us,.trading-table-wrap .trading-grid>.label-tw{height:auto;justify-content:center;border:0;border-right:calc(2 * var(--table-unit)) solid #8b8884;padding-right:calc(10 * var(--table-unit));}
 .trading-table-wrap .label-session picture,.trading-table-wrap .label-us picture,.trading-table-wrap .label-tw picture{width:calc(28 * var(--table-unit));}
 .trading-table-wrap .label-session img,.trading-table-wrap .label-us img,.trading-table-wrap .label-tw img{max-width:100%;}
 .trading-table-wrap .label-us:before,.trading-table-wrap .label-tw:before,.trading-table-wrap .us-cell:before,.trading-table-wrap .tw-cell:before{display:none;}
 .trading-table-wrap .trading-grid>.session-cell,.trading-table-wrap .trading-grid>.us-cell,.trading-table-wrap .trading-grid>.tw-cell{font-size:calc(16 * var(--table-unit));padding:0;gap:0;}
 .trading-table-wrap .session-cell>span{font-size:calc(14 * var(--table-unit));letter-spacing:calc(2 * var(--table-unit));margin-top:calc(10 * var(--table-unit));}
 .trading-table-wrap .time-icon{width:calc(52.52 * var(--table-unit))!important;height:calc(52.52 * var(--table-unit));}
 .trading-table-wrap .all-day{top:auto;width:auto;left:auto;bottom:auto;height:calc(39 * var(--table-unit));font-size:calc(18 * var(--table-unit));letter-spacing:0;margin-left:calc(10 * var(--table-unit));}
 .trading-table-wrap .regular-strip{grid-column:3;grid-row:2/5;margin:0 calc(8 * var(--table-unit));}
 .trading-table-wrap .session-cell.session-0:after,.trading-table-wrap .session-cell.session-1:after{display:none;}
 .trading-table-wrap .session-cell.session-1:before,.trading-table-wrap .us-cell.session-1:before,.trading-table-wrap .tw-cell.session-1:before,.trading-table-wrap .session-cell.session-1:after,.trading-table-wrap .us-cell.session-1:after,.trading-table-wrap .tw-cell.session-1:after{display:block;content:"";position:absolute;top:calc(7 * var(--table-unit));bottom:calc(7 * var(--table-unit));left:0;width:calc(2 * var(--table-unit));height:auto;right:auto;background:repeating-linear-gradient(to bottom,#b0b0b0 0 calc(6 * var(--table-unit)),transparent calc(6 * var(--table-unit)) calc(12 * var(--table-unit)));transform:none;z-index:2;}
 .trading-table-wrap .session-cell.session-1:after,.trading-table-wrap .us-cell.session-1:after,.trading-table-wrap .tw-cell.session-1:after{left:auto;right:0;}
 .trading-table-wrap .label-session:after,.trading-table-wrap .label-us:after{content:"";position:absolute;left:0;right:calc(11 * var(--table-unit));bottom:0;height:calc(2 * var(--table-unit));background:url('../img/extended/table-line-horizontal.svg') left/ calc(969 * var(--table-unit)) 100% no-repeat;}
 .trading-table-wrap .session-cell.session-0:after,.trading-table-wrap .us-cell.session-0:after{display:block;content:"";position:absolute;left:calc(10 * var(--table-unit));bottom:0;width:calc(100% * 3 - 10 * var(--table-unit));height:calc(2 * var(--table-unit));background:url('../img/extended/table-line-horizontal.svg') left/calc(969 * var(--table-unit)) 100% no-repeat;}
 .trading-table-wrap .season-times>div+div{margin-top:calc(27 * var(--table-unit));}.trading-table-wrap .season{margin-bottom:calc(15 * var(--table-unit));}
}

.table-mobile-lines{display:none;}
@media(max-width:767px){
 .trading-table-wrap .trading-ticket .trading-grid{grid-template-columns:calc(44 * var(--table-unit)) calc(86 * var(--table-unit)) calc(93 * var(--table-unit)) minmax(0,1fr);}
 .trading-table-wrap .table-mobile-lines{display:block;position:absolute;inset:0;width:100%!important;height:100%;z-index:3;pointer-events:none;}
 .trading-table-wrap .trading-grid>.label-session,.trading-table-wrap .trading-grid>.label-us,.trading-table-wrap .trading-grid>.label-tw{border-right:0;}
 .trading-table-wrap .trading-grid>.label-session{padding-bottom:calc(7 * var(--table-unit));}
 .trading-table-wrap .regular-strip{margin-left:calc(8 * var(--table-unit));margin-right:calc(6 * var(--table-unit));}
 .trading-table-wrap .all-day{margin-left:calc(11 * var(--table-unit));}
 .trading-table-wrap .trading-grid>.label-session:after,.trading-table-wrap .trading-grid>.label-us:after,.trading-table-wrap .trading-grid>.session-cell:before,.trading-table-wrap .trading-grid>.session-cell:after,.trading-table-wrap .trading-grid>.us-cell:before,.trading-table-wrap .trading-grid>.us-cell:after,.trading-table-wrap .trading-grid>.tw-cell:before,.trading-table-wrap .trading-grid>.tw-cell:after{display:none!important;}
 .trading-table-wrap .trading-ticket:before,.trading-table-wrap .trading-ticket:after{box-sizing:border-box;max-width:none!important;min-width:100%;left:0!important;right:0!important;margin:0!important;}
}

/* Draw the strip and line segments together; independent of extra HTML layers. */
.trading-table-wrap .regular-strip,.trading-table-wrap .table-mobile-lines{display:none!important;}
.trading-table-wrap .trading-ticket .trading-grid{background:url('../img/extended/table-desktop-lines.svg') 0 0/100% 100% no-repeat;}
.trading-table-wrap .trading-grid>.label-session,.trading-table-wrap .trading-grid>.label-us,.trading-table-wrap .trading-grid>.label-tw{border:0!important;}
.trading-table-wrap .trading-grid>.label-session:before,.trading-table-wrap .trading-grid>.label-session:after,.trading-table-wrap .trading-grid>.label-us:before,.trading-table-wrap .trading-grid>.label-us:after,.trading-table-wrap .trading-grid>.label-tw:before,.trading-table-wrap .trading-grid>.label-tw:after,.trading-table-wrap .trading-grid>.session-cell:before,.trading-table-wrap .trading-grid>.session-cell:after,.trading-table-wrap .trading-grid>.us-cell:before,.trading-table-wrap .trading-grid>.us-cell:after,.trading-table-wrap .trading-grid>.tw-cell:before,.trading-table-wrap .trading-grid>.tw-cell:after{display:none!important;}
.trading-table-wrap .trading-grid:before,.trading-table-wrap .trading-grid:after{width:calc(20 * var(--table-unit));height:calc(20 * var(--table-unit));}
.trading-table-wrap .trading-grid:before{left:calc(-73 * var(--table-unit))}.trading-table-wrap .trading-grid:after{right:calc(-73 * var(--table-unit))}
@media(max-width:767px){.trading-table-wrap .trading-ticket .trading-grid{background-image:url('../img/extended/table-mobile-lines.svg')}.trading-table-wrap .trading-grid:before,.trading-table-wrap .trading-grid:after{width:calc(18 * var(--table-unit));height:calc(18 * var(--table-unit))}.trading-table-wrap .trading-grid:before{left:calc(-36 * var(--table-unit))}.trading-table-wrap .trading-grid:after{right:calc(-36 * var(--table-unit))}}

/* Mobile content gutters: halve the space around the original 10-column layout. */
@media (max-width: 767px) {
  #main-content .site-container { max-width: 100%; }
  #main-content .layout-row > .layout-col-10.tw-mx-auto,
  #main-content section > .layout-col-10.tw-mx-auto {
    width: 91.666667%;
  }
  #main-content .layout-row > .layout-col-12.layout-col-sm-10.tw-mx-auto {
    width: 100%;
  }
}

/* Allow breathing room in the Taiwan-time row and join edge art seamlessly. */
.trading-table-wrap .trading-ticket:before,.trading-table-wrap .trading-ticket:after{left:-1px!important;right:-1px!important;width:calc(100% + 2px)!important;min-width:0;}
@media(max-width:767px){.trading-table-wrap .trading-ticket .trading-grid{grid-template-rows:calc(46 * var(--table-unit)) calc(132 * var(--table-unit)) calc(178 * var(--table-unit)) calc(286 * var(--table-unit))}}

@media (max-width: 767px) {
  #main-content section > yu-swiper-carousel.nct-1 {
    width: 91.666667%;
    max-width: none !important;
    padding-left: 0;
    padding-right: 0;
  }
  #main-content .feature-content yu-swiper-carousel.nct-1 {
    padding-left: 8px;
    padding-right: 8px;
  }
}

/* The content card springs out from behind the foreground artwork. */
@keyframes iphone-card-slide-right {
  0% { opacity: 0; transform: translateX(-45%); }
  65% { opacity: 1; transform: translateX(2.5%); }
  83% { transform: translateX(-1%); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes iphone-card-slide-up {
  0% { opacity: 0; transform: translateY(25%); }
  65% { opacity: 1; transform: translateY(-12px); }
  83% { transform: translateY(5px); }
  100% { opacity: 1; transform: translateY(0); }
}
.iphone-promo.animate-ready .iphone-card { transition: none; }
.iphone-promo.animate-ready.is-visible .iphone-card {
  animation: iphone-card-slide-right 1s cubic-bezier(.22,.7,.3,1) both;
}
@media (max-width: 767px) {
  .iphone-copy { padding-bottom: 72px; }
  .iphone-art { margin-top: -36px; }
  .iphone-promo.animate-ready .iphone-card { transform: translateY(25%); }
  .iphone-promo.animate-ready.is-visible .iphone-card {
    animation-name: iphone-card-slide-up;
  }
}
@media (prefers-reduced-motion: reduce) {
  .iphone-promo.animate-ready .iphone-card,
  .iphone-promo.animate-ready.is-visible .iphone-card {
    opacity: 1; transform: none; animation: none; transition: none;
  }
}

/* Shared mobile ticket edge, with the wider scallops from the design. */
@media (max-width: 767px) {
  .trading-table-wrap .trading-ticket:before {
    background-image: url('../img/extended/card-top-mobile.svg');
  }
  .iphone-card {
    container-type: inline-size;
    background: none;
    isolation: isolate;
  }
  .iphone-card:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(4.634147cqw + 1px);
    z-index: -1;
    background: url('../img/extended/card-top-mobile.svg') center / 100% 100% no-repeat;
    pointer-events: none;
  }
}

@media (max-width: 767px) {
  .iphone-card:after {
    content: "";
    position: absolute;
    inset: 4.634147cqw 0 0;
    background: #fbf2e9;
    z-index: -1;
    pointer-events: none;
  }
}

/* First slide: a 1920 × 750 canvas with independent animation layers. */
.extended-banner { position: relative; overflow: hidden; }
.extended-banner-desktop { position: relative; width: 100% !important; height: 100%; }
.hero-stage .extended-banner-desktop img {
  position: absolute; display: block; height: auto !important; object-fit: contain;
}
.hero-stage .extended-banner-desktop .extended-banner-bg {
  inset: 0; width: 100% !important; height: 100% !important; object-fit: cover;
}
.hero-stage .extended-banner-desktop > .extended-banner-title {
  width: 43.19% !important; left: 28.405%; top: 10%; z-index: 2;
}
.hero-stage .extended-banner-desktop .extended-banner-left {
  width: 20.22% !important; left: 7.5%; top: 21%; z-index: 1;
}
.hero-stage .extended-banner-desktop .extended-banner-right {
  width: 16.97% !important; right: 9%; top: 4%; z-index: 1;
}
.hero-carousel .extended-banner-mobile { display: none; }
@media (max-width: 590px) {
  .extended-banner-desktop { display: none; }
  .hero-carousel .extended-banner-mobile { display: block; }
}

@media (max-width: 590px) {
  .hero-carousel .extended-banner-mobile { position: relative; width: 100% !important; height: 100%; }
  .hero-stage .extended-banner-mobile img { position: absolute; display: block; height: auto !important; object-fit: contain; }
  .hero-stage .extended-banner-mobile .extended-banner-bg { inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; object-position: center bottom; }
  .hero-stage .extended-banner-mobile > .extended-banner-title { width: 92% !important; left: 4%; top: 6%; z-index: 2; }
  .hero-stage .extended-banner-mobile .extended-banner-mobile-person { width: 42% !important; left: 30%; right: auto; top: 46%; z-index: 1; }
}

@media (max-width: 590px) {
  .hero-stage {
    -webkit-mask-image: url('../img/extended/banner-mask-mobile.svg');
    mask-image: url('../img/extended/banner-mask-mobile.svg');
  }
}

/* Scale and floating use separate properties so they run together smoothly. */
@keyframes extended-character-pop {
  from { opacity: 0; scale: .12; }
  60% { opacity: 1; scale: 1.12; }
  80% { opacity: 1; scale: .94; }
  to { opacity: 1; scale: 1; }
}
@keyframes extended-character-sway {
  0%, 100% { rotate: 0deg; }
  50% { rotate: -2deg; }
}
.extended-banner-person { transform-origin: center center; }
.hero-carousel .extended-banner-slide .extended-banner-person {
  opacity: 0;
  scale: .12;
  transform: none;
  animation: none;
}
.hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-person {
  animation: extended-character-pop .9s cubic-bezier(.2,.8,.2,1) both,
             float-up 4s ease-in-out infinite,
             extended-character-sway 4s ease-in-out infinite;
}
 .hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-right {
  animation-name: extended-character-pop, float-down, extended-character-sway;
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel .extended-banner-slide .extended-banner-person,
  .hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-person {
    opacity: 1;
    scale: 1;
    rotate: 0deg;
    transform: none;
    animation: none;
  }
}

/* Benefits: exported ticket, copy, and looping SVG artwork on separate layers. */
.trading-benefit { position: relative; aspect-ratio: 1172 / 330; overflow: hidden; }
.trading-benefit > img { position: absolute; display: block; height: auto; }
.trading-benefit > .benefit-background { inset: 0; width: 100%; height: 100%; }
.trading-benefit > .benefit-copy { z-index: 1; top: 50%; transform: translateY(-50%); }
.trading-benefit-news > .benefit-copy { width: 33.45% !important; left: 8.6%; }
.trading-benefit-flex > .benefit-copy { width: 26.11% !important; right: 12%; }
.trading-benefit > .benefit-character { z-index: 1; bottom: 0; }
.trading-benefit-news > .benefit-character { width: 29% !important; right: 10.5%; }
.trading-benefit-flex > .benefit-character { width: 38.3% !important; left: 6%; }
@media (max-width: 767px) {
  .trading-benefit > .benefit-copy { top: 55%; }
  .trading-benefit-news > .benefit-copy { width: 34% !important; left: 9%; }
  .trading-benefit-flex > .benefit-copy { width: 27.5% !important; left: 12%; right: auto; }
  .trading-benefit-news > .benefit-character { width: 29.5% !important; right: 11%; }
  .trading-benefit-flex > .benefit-character { width: 40.17% !important; left: auto; right: 7%; }
}


/* Two image halves open outwards around the title's central fold. */
.extended-banner-title {
  position: absolute;
  aspect-ratio: 2764 / 1388;
  perspective: 1200px;
}
.banner-title-half {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  background-image: url('../img/extended/banner-title.png?v=20261030-5pm');
  background-size: 200% 100%;
  background-repeat: no-repeat;
  backface-visibility: hidden;
}
.banner-title-half-left { left: 0; background-position: left center; transform-origin: right center; }
.banner-title-half-right { right: 0; background-position: right center; transform-origin: left center; }
@keyframes title-fold-left {
  from { transform: rotateY(-88deg); filter: brightness(.65); }
  to { transform: rotateY(0); filter: brightness(1); }
}
@keyframes title-fold-right {
  from { transform: rotateY(88deg); filter: brightness(.65); }
  to { transform: rotateY(0); filter: brightness(1); }
}
@keyframes title-fold-fade {
  from { opacity: 0; }
  35% { opacity: 1; }
  to { opacity: 1; }
}
.hero-carousel .extended-banner-slide .extended-banner-title { opacity: 0; }
.hero-carousel .extended-banner-slide .banner-title-half-left { transform: rotateY(-88deg); }
.hero-carousel .extended-banner-slide .banner-title-half-right { transform: rotateY(88deg); }
.hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-title {
  animation: title-fold-fade 1.15s cubic-bezier(.22,.7,.25,1) .1s both;
}
.hero-carousel .extended-banner-slide.swiper-slide-active .banner-title-half-left {
  animation: title-fold-left 1.15s cubic-bezier(.22,.7,.25,1) .1s both;
}
.hero-carousel .extended-banner-slide.swiper-slide-active .banner-title-half-right {
  animation: title-fold-right 1.15s cubic-bezier(.22,.7,.25,1) .1s both;
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel .extended-banner-slide .extended-banner-title,
  .hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-title {
    opacity: 1; translate: none; animation: none;
  }
  .hero-carousel .extended-banner-slide .banner-title-half,
  .hero-carousel .extended-banner-slide.swiper-slide-active .banner-title-half {
    transform: none; filter: none; animation: none;
  }
}

/* Pulse the first title after unfolding, without moving its layout position. */
@keyframes extended-title-heartbeat {
  0%, 100% { scale: 1; }
  50% { scale: var(--banner-title-heartbeat-scale, .96); }
}
.hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-title {
  transform-origin: center center;
  animation: title-fold-fade 1.15s cubic-bezier(.22,.7,.25,1) .1s both,
             extended-title-heartbeat 5s ease-in-out 1.25s infinite;
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel .extended-banner-slide.swiper-slide-active .extended-banner-title {
    animation: none;
    opacity: 1;
    scale: 1;
  }
  .hero-carousel .banner-top .animate-pop-in {
    animation: none;
    transform: translate(-50%, -66%) scale(1);
    opacity: 1;
  }
}

/* Use the same gentle heartbeat range for both mobile banner titles. */
@media (max-width: 767px) {
  .hero-carousel .extended-banner-title,
  .hero-carousel .banner-top .animate-pop-in {
    --banner-title-heartbeat-scale: .98;
  }
}

/* Follow dragging directly; ease the snap to the next banner. */
.hero-stage > .swiper-wrapper {
  transition-timing-function: cubic-bezier(.22, .61, .36, 1);
}
.hero-stage .swiper-slide img { -webkit-user-drag: none; user-select: none; }

/* Persistent title state plays the entrance once on desktop and mobile. */
  .hero-carousel .hero-stage .extended-banner-slide .extended-banner-title {
    animation: none;
    opacity: 0;
    transform-origin: center center;
  }
  .hero-carousel .hero-stage .extended-banner-slide .banner-title-half {
    animation: none;
  }
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-entered .extended-banner-title {
    animation: title-fold-fade 1.15s cubic-bezier(.22,.7,.25,1) .1s both,
               extended-title-heartbeat 5s ease-in-out 1.25s infinite;
  }
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-entered .banner-title-half-left {
    animation: title-fold-left 1.15s cubic-bezier(.22,.7,.25,1) .1s both;
  }
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-entered .banner-title-half-right {
    animation: title-fold-right 1.15s cubic-bezier(.22,.7,.25,1) .1s both;
  }
  .hero-carousel .banner-top .animate-pop-in {
    animation: none;
    opacity: 0;
  }
  .hero-carousel .banner-top.banner-title-entered .animate-pop-in {
    animation: popScale .6s ease-out 1s both,
               heartbeat 5s ease-in-out 1.6s infinite;
  }
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-complete .extended-banner-title {
    opacity: 1;
    animation: extended-title-heartbeat 5s ease-in-out infinite;
  }
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-complete .banner-title-half {
    animation: none;
    transform: none;
    filter: none;
  }
  .hero-carousel .banner-top.banner-title-complete .animate-pop-in {
    opacity: 1;
    animation: heartbeat 5s ease-in-out infinite;
  }
@media (prefers-reduced-motion: reduce) {
  .hero-carousel .hero-stage .extended-banner-slide .extended-banner-title,
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-entered .extended-banner-title,
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-complete .extended-banner-title,
  .hero-carousel .hero-stage .extended-banner-slide .banner-title-half,
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-entered .banner-title-half,
  .hero-carousel .hero-stage .extended-banner-slide.banner-title-complete .banner-title-half,
  .hero-carousel .banner-top .animate-pop-in,
  .hero-carousel .banner-top.banner-title-entered .animate-pop-in,
  .hero-carousel .banner-top.banner-title-complete .animate-pop-in {
    animation: none;
    opacity: 1;
    scale: 1;
  }
}

/* Mobile ticket cutouts follow the larger corner radius in the design. */
@media (max-width: 767px) {
  .extended-trading .section-text-heading { font-size: clamp(20px, 6.6vw, 34px); }
  .extended-trading .heading-label { -webkit-text-stroke: 10px #fbf2e9; }
  .extended-subtitle { font-size: clamp(18px, 5.4vw, 26px); }
  .trading-benefits { width: 100%; margin-inline: auto; gap: 4.1vw; }
  .trading-benefit { background: url('../img/extended/benefit-card-mobile.svg') center / 100% 100% no-repeat; }
  .trading-benefit > .benefit-background { display: none; }
}

/* Mobile promo spacing follows the compact composition in the design. */
@media (max-width: 767px) {
  .iphone-copy { gap: 14px; padding: 27px 0 56px; }
  .iphone-title { width: 232px !important; }
  .iphone-copy p { padding: 12px 0; border-block: 1.5px dashed #b1b1b1; }
  .iphone-cta { width: 60%; min-width: 190px; max-width: 216px; margin-top: 6px; }
}

@media (max-width: 767px) {
  .trading-table-wrap .trading-ticket:before,
  .trading-table-wrap .trading-ticket:after {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
  }
  .trading-notice > img {
    width: 20px !important;
    height: 20px;
    aspect-ratio: 1;
    object-fit: contain;
  }
  .trading-details .trading-note-link {
    padding-bottom: 2px;
    line-height: 1.3;
  }
}

@media (max-width: 767px) {
  .trading-details .trading-note-link svg {
    width: .6em;
    height: 1em;
    flex: 0 0 .6em;
    align-self: center;
    overflow: visible;
  }
}

.trading-details .trading-note-link { align-items: center; line-height: 1; padding-bottom: 0; }
.trading-details .trading-note-link svg { width: .6em; height: 1em; flex: 0 0 .6em; align-self: center; transform: translateY(.05em); }
.iphone-postmark { display: none; }
@media (min-width: 768px) {
  .iphone-promo { container-type: inline-size; min-height: 0; }
  .iphone-card { min-height: 0; height: 32.4cqw; }
  .iphone-copy { gap: 1.9cqw; padding: 0; }
  .iphone-title { width: 22.5cqw !important; }
  .iphone-copy p { margin: 0; font-size: 3cqw; line-height: 1.4; padding: 1.7cqw 0; border-width: 1.5px; }
  .iphone-cta { width: 14cqw; padding: .9cqw 0; line-height: 1.4; }
  .iphone-postmark { display: block; position: absolute; width: 34% !important; height: auto; left: -30%; top: 75%; z-index: -1; pointer-events: none; }
}

@media (min-width: 768px) {
  .trading-table-wrap .trading-postmark {
    width: 28vw !important;
    max-width: none;
    left: 100%;
    right: auto;
    top: 70%;
    bottom: auto;
  }
  .iphone-postmark {
    width: 25vw !important;
    max-width: none;
    left: auto;
    right: 100%;
    top: 70%;
  }
}

/* Center the rear card on the orange frame, excluding the protruding phone. */
@media (min-width: 768px) {
  .iphone-card { top: 2.5cqw; }
}
.trading-details .trading-note-link { padding-bottom: .22em; }

/* Give the FAQ heading breathing room below the preceding desktop section. */
@media (min-width: 768px) {
  .ct5 { padding-top: 64px; }
}

#main-content > .ct4 { padding-top: 96px; }
#main-content > .ct5 { margin-top: 0 !important; padding-top: 96px; }
@media (max-width: 767px) {
  #main-content > .ct4 { padding-top: 64px; }
  #main-content > .ct5 { padding-top: 80px; }
}

/* Keep the supplied lettering images, with independently sized SVG stars. */
.trading-table-wrap .table-title-star { position: absolute; width: calc(28 * var(--table-unit)); height: calc(28 * var(--table-unit)); top: 50%; transform: translateY(-50%); pointer-events: none; }
.trading-table-wrap .table-title-star-first { left: 7%; }
.trading-table-wrap .table-title-star-last { right: 7%; }
@media (min-width: 768px) {
  .trading-table-wrap .label-session picture { width: 60%; }
  .trading-table-wrap .label-us picture img,
  .trading-table-wrap .label-tw picture img { clip-path: inset(0 20%); }
}
@media (max-width: 767px) {
  .trading-table-wrap .label-session picture,
  .trading-table-wrap .label-us picture,
  .trading-table-wrap .label-tw picture { position: relative; }
  .trading-table-wrap .label-session picture img,
  .trading-table-wrap .label-us picture img,
  .trading-table-wrap .label-tw picture img { clip-path: inset(16.6667% 0 18.0556%); }
  .trading-table-wrap .table-title-star { width: calc(14 * var(--table-unit)); height: calc(14 * var(--table-unit)); left: calc(17 * var(--table-unit)); right: auto; transform: translateX(-50%); }
  .trading-table-wrap .table-title-star-first { top: calc(50% - 69.5 * var(--table-unit)); }
  .trading-table-wrap .table-title-star-last { top: calc(50% + 55.5 * var(--table-unit)); }
}

@media (min-width: 768px) {
  .trading-table-wrap .label-session picture,
  .trading-table-wrap .label-us picture,
  .trading-table-wrap .label-tw picture { width: calc(174 * var(--table-unit)); }
  .trading-table-wrap .label-session picture img,
  .trading-table-wrap .label-us picture img,
  .trading-table-wrap .label-tw picture img { width: 100% !important; height: auto; clip-path: none; object-fit: contain; }
  .trading-table-wrap .table-title-star-first { left: calc(50% - 128 * var(--table-unit)); }
  .trading-table-wrap .table-title-star-last { left: calc(50% + 100 * var(--table-unit)); right: auto; }
  .trading-table-wrap .trading-ticket { padding-bottom: calc(30 * var(--table-unit)); }
  .trading-table-wrap .trading-ticket .trading-grid { grid-template-rows: calc(88 * var(--table-unit)) repeat(3, calc(111 * var(--table-unit))); }
  .trading-table-wrap .regular-strip { display: block !important; }
  .trading-table-wrap .trading-grid > .session-cell { padding-left: calc(90 * var(--table-unit)); gap: calc(3 * var(--table-unit)); line-height: 1.4; }
  .trading-table-wrap .session-cell > span { margin-top: 0; line-height: 1.4; }
  .trading-table-wrap .season-times { line-height: 1.35; }
}
@media (min-width: 768px) {
  .trading-table-wrap .trading-grid > .label-session,
  .trading-table-wrap .trading-grid > .label-us,
  .trading-table-wrap .trading-grid > .label-tw { justify-content: center; }
  .trading-table-wrap .label-session picture { transform: translateX(calc(-24 * var(--table-unit))); }
  .trading-table-wrap .label-tw picture { transform: translateX(calc(24 * var(--table-unit))); }
  .trading-table-wrap .label-session .table-title-star-first { left: calc(50% - 152 * var(--table-unit)); }
  .trading-table-wrap .label-session .table-title-star-last { left: calc(50% + 76 * var(--table-unit)); }
  .trading-table-wrap .label-tw .table-title-star-first { left: calc(50% - 104 * var(--table-unit)); }
  .trading-table-wrap .label-tw .table-title-star-last { left: calc(50% + 124 * var(--table-unit)); }
}

@media (max-width: 767px) {
  .trading-table-wrap .label-session picture img,
  .trading-table-wrap .label-us picture img,
  .trading-table-wrap .label-tw picture img {
    clip-path: none;
    width: 100% !important;
    height: auto;
    object-fit: contain;
  }
}

/* Match the mobile design without the general 18px information minimum. */
@media (max-width: 767px) {
  #extended-trading .trading-table-wrap .trading-ticket .trading-grid {
    grid-template-rows: calc(46 * var(--table-unit)) calc(132 * var(--table-unit)) calc(178 * var(--table-unit)) calc(250 * var(--table-unit));
  }
  #extended-trading .trading-table-wrap .trading-grid > .session-cell,
  #extended-trading .trading-table-wrap .trading-grid > .us-cell,
  #extended-trading .trading-table-wrap .trading-grid > .tw-cell {
    font-size: calc(16 * var(--table-unit));
    line-height: 1.35;
  }
  #extended-trading .trading-table-wrap .session-cell > span {
    font-size: calc(14 * var(--table-unit));
    margin-top: calc(4 * var(--table-unit));
    line-height: 1.4;
  }
  #extended-trading .trading-table-wrap .time-range { line-height: 1.2; }
  #extended-trading .trading-table-wrap .time-separator { transform: rotate(90deg); }
}
@media (max-width: 767px) {
  #extended-trading .trading-table-wrap .season { margin-bottom: calc(8 * var(--table-unit)); }
  #extended-trading .trading-table-wrap .season-times > div + div { margin-top: calc(22 * var(--table-unit)); }
}

@media (max-width: 767px) {
  #extended-trading .trading-table-wrap .trading-ticket .trading-grid {
    grid-template-rows: calc(46 * var(--table-unit)) calc(132 * var(--table-unit)) calc(178 * var(--table-unit)) calc(268 * var(--table-unit));
  }
  #extended-trading .trading-table-wrap .trading-grid > .tw-cell {
    padding: 0;
    justify-content: center;
  }
}

/* Center Taiwan time text after removing the decorative icons. */
#extended-trading .trading-table-wrap .trading-grid > .tw-cell {
  align-items: center;
  justify-content: center;
  gap: 0;
}
#extended-trading .trading-table-wrap .tw-cell .season-times {
  text-align: center;
  margin: 0;
}
@media (min-width: 768px) {
  /* Match the Taiwan heading's existing 24-unit horizontal offset. */
  #extended-trading .trading-table-wrap .tw-cell .season-times {
    transform: translateX(calc(24 * var(--table-unit)));
  }
}

/* Shared text CTA typography and hover treatment. */
.all-btn a,
.iphone-cta {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: .03rem;
}
.all-btn a h3 {
  font-size: inherit;
  font-weight: inherit;
}
.all-btn a:hover,
.iphone-cta:hover {
  background-color: #8C1A15;
  color: #ffffff;
}
.all-btn a:hover h3 { color: inherit; }
@media (max-width: 767px) {
  .all-btn a,
  .iphone-cta { font-size: 20px; }
}

/* Match mobile content columns to the background SVG coordinate system. */
@media (max-width: 767px) {
  #extended-trading .trading-table-wrap .trading-ticket .trading-grid {
    grid-template-columns: 14.4262295% 28.1967213% 30.4918033% 26.8852459%;
  }
}

/* Keep each tab label on its intended two lines. */
#pills-ct3-tab .nav-link h4 { white-space: nowrap; }
@media (max-width: 1080px) {
  #pills-ct3-tab .nav-link { padding-inline: .5rem; }
}

/* Decorative postmarks may extend beyond their sections, but not the viewport. */
#main-content {
  overflow-x: clip;
}

/* Shared carousel controls: yellow circles, blue arrows and blue dots. */
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 58px auto 58px minmax(0, 1fr);
  align-items: center;
  column-gap: 28px;
  row-gap: 18px;
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper > .swiper {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
  min-width: 0;
}
#main-content :is(.swiper-button-prev, .swiper-button-next, .investment-prev, .investment-next) {
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 50%;
  background-color: #f3ff4e;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5 16h22M17 6l10 10-10 10' fill='none' stroke='%230f67e1' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 52% 52%;
  background-position: center;
  background-repeat: no-repeat;
  color: #0f67e1;
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper > :is(.swiper-button-prev, .swiper-button-next) {
  position: static;
  inset: auto;
  margin: 0;
  grid-row: 2;
  justify-self: center;
  transform: none;
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper > .swiper-button-prev {
  grid-column: 2;
  transform: rotate(180deg);
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper > .swiper-button-next { grid-column: 4; }
#main-content :is(.swiper-button-prev, .swiper-button-next)::after { content: none; }
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper > .swiper-pagination {
  position: static !important;
  inset: auto !important;
  margin: 0;
  width: auto;
  height: auto;
  transform: none;
  grid-column: 3;
  grid-row: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) .swiper-pagination-bullet,
#main-content .investment-dots button {
  width: 9px;
  height: 9px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #83b9ff;
  opacity: 1;
}
#main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) .swiper-pagination-bullet-active,
#main-content .investment-dots button.is-active { background: #0f67e1; }
#main-content .investment-controls { gap: 28px; }
#main-content .investment-dots { gap: 10px; }
#main-content .investment-controls :is(.investment-prev, .investment-next) { padding: 0; }
#main-content .investment-prev { transform: rotate(180deg); }
#main-content .investment-controls svg { display: none; }
@media (max-width: 767px) {
  #main-content :is(.swiper-button-prev, .swiper-button-next, .investment-prev, .investment-next) { width: 48px; height: 48px; }
  #main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper {
    grid-template-columns: minmax(0, 1fr) 48px auto 48px minmax(0, 1fr);
  }
}

@media (max-width: 360px) {
  #main-content :is(yu-swiper-carousel, yu-swiper-carousel2, yu-swiper-carousel-pills) #step-swiper { column-gap: 18px; }
}

/* Center complete tab rows; let narrow screens scroll the row horizontally. */
#main-content .tab-scroll {
  display: block !important;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
#main-content .tab-scroll::-webkit-scrollbar { display: none; }
#main-content :is(#pills-ct3-tab, #pills-ct4-tab) {
  width: 100%;
  min-width: 0;
  height: auto;
  flex-wrap: nowrap;
  justify-content: flex-start !important;
  gap: 10px;
  margin: 0 !important;
}
#main-content :is(#pills-ct3-tab, #pills-ct4-tab) .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0 !important;
  padding-inline: .5rem !important;
}
#main-content :is(#pills-ct3-tab, #pills-ct4-tab) .nav-link h4 {
  width: auto;
  flex: 0 0 auto;
  margin: 0;
  text-align: center;
  white-space: nowrap;
}
#main-content :is(#pills-ct3-tab, #pills-ct4-tab) .nav-link:first-child {
  margin-left: auto !important;
}
#main-content :is(#pills-ct3-tab, #pills-ct4-tab) .nav-link:last-child {
  margin-right: auto !important;
}

/* Fit all four topic tabs evenly at small tablet widths. */
@media (min-width: 591px) and (max-width: 767px) {
  #main-content #pills-ct3-tab .nav-link {
    flex: 1 0 0;
    width: auto;
    min-width: 0;
    padding: .5rem;
  }
}

/* Match the same container and ten-column content width used above. */
@media (min-width: 768px) {
  .investment-width .investment-cards { width: 100%; max-width: none; }
}
@media (max-width: 767px) {
  .investment-width,
  .investment-width > .layout-row,
  .investment-width > .layout-row > .layout-col-12 { display: contents; }
}

/* Draw desktop separators above the regular-session highlight. */
.trading-table-wrap .table-desktop-lines { display: none; }
@media (min-width: 768px) {
  .trading-table-wrap .table-desktop-lines {
    display: block;
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100%;
    z-index: 3;
    pointer-events: none;
  }
  .trading-table-wrap .trading-ticket .trading-grid { background-image: none; }
}

/* Shared hover for text links, including FAQ links and arrow links. */
a.text-link-bright {
  color: #0F67E1;
  transition: color 180ms ease, border-color 180ms ease;
}
a.text-link-bright:hover,
a.text-link-bright:focus-visible { color: #398CFF; border-color: currentColor; }
.investment-ticket-row .investment-highlight { color: #BA2922; }
a.text-link-bright.investment-look-link { color: #BA2922; }
a.text-link-bright.investment-look-link:hover,
a.text-link-bright.investment-look-link:focus-visible { color: #DE453C; }
.trading-details a.text-link-bright:hover,
.trading-details a.text-link-bright:focus-visible { color: #398CFF; border-color: currentColor; }
@media (prefers-reduced-motion: reduce) {
  a.text-link-bright { transition: none; }
}

/* FAQ numbers follow the question order independently in each category. */
#pills-tabContent .accordion { counter-reset: faq-question; }
#pills-tabContent .accordion-item { counter-increment: faq-question; }
#pills-tabContent .accordion-button {
  color: #fff;
  gap: 20px;
  line-height: 1.45;
  padding: 18px 28px;
}
#pills-tabContent .accordion-button::before {
  content: "Q" counter(faq-question);
  flex: 0 0 42px;
  color: #f3ff4e;
  font-weight: 700;
}
#pills-tabContent .accordion-button::after {
  content: "+";
  color: #f3ff4e;
  background: none;
  width: 20px;
  height: auto;
  font-size: 28px;
  line-height: 1;
  text-align: center;
  transform: none;
}
#pills-tabContent .accordion-button:not(.collapsed)::after { content: "−"; }
#pills-tabContent .accordion-body {
  background: #fbf2e9;
  border: 2px dashed #0f67e1;
  border-top: 0;
  padding: 24px 60px;
  color: #1b1b1b;
  font-size: 18px;
  line-height: 1.6;
}
.faq-answer-heading { display: flex; gap: 12px; color: #0f67e1; font-weight: 700; }
#pills-tabContent .accordion-body p { font-size: inherit; line-height: 1.6 !important; }
.faq-trading-notes { color: #777; margin: 16px 0; }
.faq-trading-notes ol { margin: 0; padding-left: 1.5em; }
#pills-tabContent .faq-risk { color: #df211a; margin: 16px 0 0; }
/* Trading sessions with an all-day brace below the timeline. */
.faq-timeline { position: relative; width: min(100%, 620px); padding: 32px 22px 0; margin: 28px 0; }
.faq-timeline-bars { position: relative; display: grid; grid-template-columns: 24% 52% 24%; }
.faq-timeline-bars > span { border-radius: 30px; color: white; text-align: center; font-weight: 700; line-height: 1.4; padding-block: 4px; }
.faq-session-pre { background: linear-gradient(90deg,#f5a66e,#a2b9e3); }
.faq-session-regular { background: linear-gradient(90deg,#a2bfee,#6695dd); }
.faq-session-post { background: linear-gradient(90deg,#9bd1ff,#fae4ad); }
.faq-time-guide { position: absolute; top: -8px; bottom: -8px; border-left: 1px dashed #aaa; }
.guide-start { left: 0; }.guide-regular { left: 24%; }.guide-post { left: 76%; }.guide-end { right: 0; }
.faq-timeline-times { position: absolute; inset: 0 22px auto; height: 28px; font-size: 16px; font-weight: 600; }
.faq-timeline-times span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.faq-timeline-times span:nth-child(1) { left: 0; }.faq-timeline-times span:nth-child(2) { left: 24%; }.faq-timeline-times span:nth-child(3) { left: 76%; }.faq-timeline-times span:nth-child(4) { left: 100%; }
.faq-timeline-all { margin-top: 14px; color: #80b7ff; text-align: center; font-weight: 700; line-height: 1.4; }
.faq-timeline-brace { display: block; width: 100%; height: 16px; margin-bottom: 4px; overflow: visible; }
.faq-timeline-brace path { fill: none; stroke: currentColor; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linecap: round; }
@media (max-width: 767px) {
  #pills-tabContent .accordion-button { padding: 12px 20px; gap: 12px; }
  #pills-tabContent .accordion-button::before { flex-basis: 32px; }
  #pills-tabContent .accordion-body { padding: calc(28px * 2 / 3); }
  .faq-season-note { display: block; }
  .faq-timeline { padding-inline: 24px; margin: 20px 0 28px; width: 100%; }
  .faq-timeline-bars > span { padding-block: 5px; }
  .faq-timeline-times { inset-inline: 24px; font-size: 14px; }
}

/* Keep the FAQ anchor below the fixed navigation on direct visits. */
#headingExtendedTradingFaq { scroll-margin-top: 120px; }

/* Banner pagination fills over the same fifteen-second autoplay interval. */
.hero-controls .hero-pagination .swiper-pagination-bullet {
  position: relative;
  width: 36px;
  height: 8px;
  margin: 0 5px;
  border-radius: 999px;
  background: #c8baa5;
  opacity: 1;
  overflow: hidden;
}
.hero-controls .hero-pagination .swiper-pagination-bullet .hero-progress-fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #0f67e1;
  transform: scaleX(0);
  transform-origin: left;
}
.hero-controls .hero-pagination .swiper-pagination-bullet-active .hero-progress-fill {
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .hero-controls .hero-pagination .swiper-pagination-bullet-active .hero-progress-fill { transform: scaleX(1); }
}

.hero-controls .hero-pagination .swiper-pagination-bullet.is-complete .hero-progress-fill {
  transform: scaleX(1);
}

/* Artwork sources are selected by media before a network request is issued. */
.hero-carousel .hero-artwork{display:contents;}

@media(max-width:1600px){.banner-title-half{background-image:image-set(url("../img/extended/banner-title-691.png") 1x,url("../img/extended/banner-title-1382.png") 2x);}}

/* The fixed texture is rendered at viewport size, never at its original 3840px width. */
body.campaign-texture::before{background-image:image-set(url('../img/txrbg-1536.png') 1x,url('../img/txrbg-2560.png') 2x);}
@media(max-width:767px){body.campaign-texture::before{background-image:url('../img/txrbg-1536.png');}}
@media(max-width:480px){body.campaign-texture::before{background-image:url('../img/txrbg-768.png');}}
