@font-face{font-family:TGS;src:url(tgs.woff2) format("woff2");font-weight:900;font-display:swap;unicode-range:U+2E80-9FFF,U+3000-30FF,U+FF00-FFEF}
@font-face{font-family:TGT;src:url(tgt.woff2) format("woff2");font-weight:900;font-display:swap;unicode-range:U+2E80-9FFF,U+3000-30FF,U+FF00-FFEF}
@font-face{font-family:BC;src:url(bc.woff2) format("woff2");font-weight:700 900;font-display:swap}
@font-face{font-family:BR;src:url(br.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:BR;src:url(bs.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:BM;src:url(bm.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --board:#0e0f11;--flap:#1c1d21;--flap2:#27282d;--line:#2e2f35;
  --white:#f5f5f0;--dim:#adafb4;
  --sign:#ffc81f;--ink:#131313;--ink2:#40370f;
  --floor:#e9ebe8;--paper:#fff;
  --go:#46e08f;--late:#ffb52e;--stop:#ff7361;
  --red:#c8201a;--blue:#229ed9;
  --disp:BC,TGS,"PingFang SC","Microsoft YaHei",sans-serif;
  --body:BR,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --mono:BM,ui-monospace,Consolas,monospace;
  --g:clamp(16px,4vw,48px);--sec:clamp(56px,8vw,112px);--e:max(var(--g),calc((100% - 1240px)/2));
}
:root:lang(zh-Hant){--disp:BC,TGT,"PingFang TC","Microsoft JhengHei",sans-serif;--body:BR,-apple-system,"PingFang TC","Microsoft JhengHei","Noto Sans CJK TC",sans-serif}
:root:lang(vi),:root:lang(en){--disp:BC,"PingFang SC","Microsoft YaHei",sans-serif}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:76px;scrollbar-color:var(--sign) var(--board)}
body{margin:0;background:var(--board);color:var(--white);font:400 17px/1.7 var(--body);line-break:strict}
h1,h2,h3{font-family:var(--disp);font-weight:900;line-height:1.2;margin:0;text-wrap:balance}
:lang(vi) h1,:lang(vi) h2,:lang(vi) h3,:lang(en) h1,:lang(en) h2,:lang(en) h3{font-weight:700}
h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
p{margin:0}
a{color:inherit;text-underline-offset:.2em}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:var(--sign);color:var(--ink)}
.sign ::selection{background:var(--ink);color:var(--sign)}
:focus-visible{outline:3px solid var(--sign);outline-offset:2px;border-radius:2px}
.top :focus-visible,.sign :focus-visible,.floor :focus-visible,.crumb :focus-visible{outline-color:var(--ink)}
.ic{width:1em;height:1em;fill:currentColor;flex:none}
.in{max-width:1240px;margin:0 auto}
.mono,.code{font-family:var(--mono);font-weight:700}
.note{font-size:.9rem;margin-top:18px;opacity:.75}
.skip{position:absolute;left:-999px;background:var(--ink);color:var(--sign);padding:8px 14px;z-index:30}
.skip:focus{left:8px;top:8px}

/* biển vàng trên cùng */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:4px 24px;min-height:60px;padding:6px var(--e);background:var(--sign);color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.35)}
.brand{display:inline-flex;align-items:center;gap:8px;font-size:1.5rem;font-weight:900;text-decoration:none;font-family:var(--disp)}
.brand .ic{transform:rotate(45deg);font-size:1.15em}
.nav,.sw{display:flex;gap:18px}
.nav a,.sw a{text-decoration:none;font-weight:600;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover,.sw a:hover,.nav a[aria-current],.sw a[aria-current]{border-color:var(--ink)}
.sw{margin-left:auto;gap:12px;font-size:.92rem}
.mini{background:var(--ink);color:var(--sign);padding:7px 14px;border-radius:5px;text-decoration:none;font-weight:600;white-space:nowrap}
.mini:hover{background:#000}

/* nút hỏi AI nổi góc phải: nền đen viền vàng để nổi trên cả ba loại nền */
.kf{position:fixed;right:var(--g);bottom:20px;z-index:15;display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--sign);border:2px solid var(--sign);border-radius:6px;padding:8px 12px;font:900 1.15rem/1.2 var(--disp);text-decoration:none;box-shadow:0 4px 14px rgb(0 0 0/.45)}
:lang(vi) .kf,:lang(en) .kf{font-weight:700}
.kf:hover{background:#000}
.kf:focus-visible{outline-offset:3px;box-shadow:0 0 0 3px var(--ink)}
.kf .mono{background:var(--sign);color:var(--ink);font-size:.68rem;line-height:1;padding:3px 4px;border-radius:2px}

/* ô lật chữ */
.c{position:relative;display:block;background:linear-gradient(var(--flap2),var(--flap) 49%,#141518 51%,var(--flap));color:var(--white);text-align:center;border-radius:.07em;font-family:var(--disp);font-weight:900;line-height:var(--h);height:var(--h);box-shadow:0 1px 2px rgba(0,0,0,.7);perspective:4em}
:lang(vi) .c,:lang(en) .c{font-weight:700}
.c b{font-weight:inherit;display:block}
.c::after{content:"";position:absolute;left:0;right:0;top:50%;height:max(1px,.018em);margin-top:-.009em;background:#000;z-index:3}
.c.on>b{visibility:hidden}
.c i{position:absolute;left:0;right:0;overflow:hidden;font-style:normal;background:var(--flap);backface-visibility:hidden}
.c i::before{content:attr(data-ch);display:block;height:var(--h);line-height:var(--h)}
.c .t,.c .ft{top:0;height:50%;border-radius:.07em .07em 0 0;background:var(--flap2)}
.c .b,.c .fb{bottom:0;height:50%;border-radius:0 0 .07em .07em}
.c .b::before,.c .fb::before{margin-top:calc(var(--h)/-2)}
.c .ft{transform-origin:50% 100%;z-index:2}
.c .fb{transform-origin:50% 0;z-index:2;transform:rotateX(90deg)}
.fl{display:inline-flex;gap:2px}

.board{background:var(--board);padding:var(--sec) var(--g)}
.board:first-child{padding-top:clamp(18px,3vw,36px);padding-bottom:clamp(30px,4vw,48px)}
.big{--n:8;--k:.76;container-type:inline-size;display:grid;grid-template-columns:1fr 1fr;gap:clamp(6px,1.6vw,20px);margin:0 0 clamp(14px,2vw,24px)}
.big.l{--n:16;--k:1.2}
.w{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:clamp(3px,.45vw,6px)}
.big .c{--h:1.2em;font-size:calc(100cqw/var(--n)*var(--k))}
.big .w+.w .c{color:var(--sign)}

.fids caption{caption-side:top;text-align:left}
.cap{display:flex;justify-content:space-between;align-items:center;color:var(--sign);font:900 1.1rem/1 var(--disp);padding-bottom:10px}
.cap .c{--h:1.6em;width:1.05em;font-size:.95rem;font-family:var(--mono);color:var(--sign)}
.fids thead th{text-align:left;font-size:.8rem;font-weight:600;color:var(--dim);padding:4px 10px 6px 0;border-bottom:1px solid var(--line)}
.fids thead th:last-child{text-align:right;padding-right:0}
.fids td,.fids tbody th{padding:6px 10px 6px 0;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left;font-weight:400}
.fids .code{color:var(--dim);font-size:.9rem;width:9%}
.fids .rem{color:var(--white)}
.fids .st{padding-right:0;text-align:right;white-space:nowrap}
.fids .st .fl{vertical-align:middle}
.fids .fl .c{--h:1.72em;width:1.5em;font-size:clamp(1rem,1.5vw,1.25rem)}
.fids .fl .c.l{width:1.02em}
.fids .c::after,.cap .c::after{height:1px;margin-top:-.5px;background:rgba(0,0,0,.72)}
.stop .st .c{color:var(--stop)}
.late .st .c{color:var(--late)}
.go .st .c{color:var(--go)}
tr.go th .c{color:var(--sign)}
tr.go .rem{color:var(--sign);font-weight:600}
.lamp{display:none}
tr.go .lamp{display:inline-block;width:.6em;height:.6em;border-radius:50%;background:var(--go);margin-right:10px;vertical-align:middle}

div.go{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;margin-top:clamp(16px,2vw,24px)}
div.go p{max-width:34em;color:var(--white)}
.acts{display:flex;align-items:center;gap:20px;flex:none}
.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;background:var(--sign);color:var(--ink);border:0;border-radius:6px;padding:14px 20px;font:900 1.25rem/1.25 var(--disp);text-decoration:none;cursor:pointer;transition:background .15s}
:lang(vi) .cta,:lang(en) .cta{font-weight:700;font-size:1.35rem}
.cta .ic{transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.cta:hover{background:#ffd74f}
.cta:hover .ic{transform:translateX(5px)}
.cta:active{transform:translateY(1px)}
.cta.dark{background:var(--ink);color:var(--sign)}
.cta.dark:hover{background:#000}
.ghost{color:var(--white);white-space:nowrap}
.ghost:hover{color:var(--sign)}

/* biển vàng */
.sign{background:var(--sign);color:var(--ink);padding:var(--sec) var(--g)}
.sign a{color:var(--ink)}
.sq{display:inline-grid;place-items:center;width:64px;height:64px;background:var(--sign);color:var(--ink);border-radius:8px;font-size:40px;flex:none}
.fact .in{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,56px);align-items:start}
.big-sq{background:var(--ink);color:var(--sign);width:clamp(72px,11vw,150px);height:clamp(72px,11vw,150px);font-size:clamp(46px,7vw,96px);border-radius:12px}
.up{transform:rotate(45deg)}
.fact h2{font-size:clamp(2.1rem,5.6vw,4.7rem);line-height:1.16;max-width:15em}
.fact .src{margin-top:18px;font-weight:600;color:var(--ink2)}
.fact p+p{margin-top:12px;max-width:40em}

/* bảng so sánh */
.routes h2{margin-bottom:clamp(20px,3vw,36px)}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:16px 20px 16px 0;border-bottom:1px solid var(--line);font-weight:400}
.cmp thead th{color:var(--sign);font-weight:600;font-size:.9rem;padding-top:0}
.cmp tbody th{font:900 1.5rem/1.3 var(--disp);width:17%}
:lang(vi) .cmp tbody th,:lang(en) .cmp tbody th{font-weight:700}
.cmp tr.hot td,.cmp tr.hot th{color:var(--sign)}

/* sàn nhà ga */
.floor{background:var(--floor);color:var(--ink);padding:var(--sec) var(--g)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:clamp(24px,3vw,40px);position:relative;counter-reset:s}
.steps::before{content:"";position:absolute;left:0;right:0;top:29px;height:6px;background:var(--ink)}
.steps::after{content:"";position:absolute;right:-2px;top:20px;border:12px solid transparent;border-left:18px solid var(--ink);border-right:0}
.steps li{position:relative;counter-increment:s}
.steps h3{font-size:1.6rem;margin:14px 0 6px}
.steps h3::before{content:counter(s) " ";font-family:var(--mono);font-weight:700;font-size:.9em;margin-right:.2em}
.steps .sq{box-shadow:0 0 0 8px var(--floor)}

.ticket{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,5vw,72px);align-items:center;margin-top:var(--sec)}
.tk-copy p{margin-top:12px}
.pass{display:grid;grid-template-columns:1fr 104px;background:var(--paper);border-radius:14px;box-shadow:0 22px 44px -22px rgba(0,0,0,.45);-webkit-mask:radial-gradient(circle 11px at calc(100% - 104px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 11px at calc(100% - 104px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;mask:radial-gradient(circle 11px at calc(100% - 104px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 11px at calc(100% - 104px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.pm{padding:0 20px 20px;min-width:0}
.ph{display:flex;align-items:center;gap:10px;margin:0 -20px;padding:12px 20px;background:var(--blue);color:var(--ink);border-radius:14px 0 0;font-size:1.15rem;font-weight:900}
.ph .mono{margin-left:auto;font-size:1rem}
.pf{display:grid;grid-template-columns:repeat(3,auto);gap:12px 22px;padding:16px 0 18px;justify-content:space-between}
.pf span{display:block;font-size:.78rem;color:#5b5e63}
.pf b{font-weight:600;font-size:1rem}
.pf b.mono{font-size:.88rem;font-weight:700}
.dest{grid-column:1/-1}
.dest input{width:100%;border:0;border-bottom:3px solid var(--ink);background:none;font:600 clamp(1.6rem,3.4vw,2.4rem)/1.3 var(--body);color:var(--ink);padding:2px 0 4px;border-radius:0;caret-color:var(--blue);outline:0}
.dest input::placeholder{color:#5b5e63}
.dest input:focus{border-color:var(--blue);box-shadow:0 3px 0 var(--blue)}
.pass .cta{width:100%;font-size:1.1rem}
.ps{min-height:1.5em;margin-top:8px;font-size:.92rem;font-weight:600;color:var(--ink)}
.stub{border-left:2px dashed #b9bcc0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px 12px;color:var(--ink)}
.bar{width:64px;flex:1;min-height:150px;fill:var(--ink);transform:none}
.stub .mono{font-size:.8rem}

.gates h2{margin-bottom:clamp(20px,3vw,32px)}
.gate{display:grid;grid-template-columns:62px minmax(0,1.1fr) minmax(0,1.3fr) auto 24px;gap:16px;align-items:center;padding:13px 10px 13px 0;border-top:2px solid var(--ink);text-decoration:none;transition:background .12s,color .12s}
.gate:last-child{border-bottom:2px solid var(--ink)}
.gate .code{background:var(--ink);color:var(--sign);text-align:center;padding:5px 0;border-radius:4px}
.gate .n{font:900 clamp(1.25rem,2.1vw,1.7rem)/1.25 var(--disp)}
:lang(vi) .gate .n,:lang(en) .gate .n{font-weight:700}
.gate .p{font-family:var(--mono);font-weight:700;font-size:.92rem;white-space:nowrap}
.gate .ic{font-size:22px}
.gate:hover{background:var(--ink);color:var(--sign)}
.gate:hover .code{background:var(--sign);color:var(--ink)}
.more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:600}

.rules .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,5vw,72px);align-items:center}
.rules p{margin-top:12px}
.ban{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;text-align:center;font-weight:600}
.no{position:relative;display:grid;place-items:center;width:clamp(68px,8vw,96px);aspect-ratio:1;margin:0 auto 8px;border:6px solid var(--red);border-radius:50%;font-size:clamp(34px,4.2vw,48px);color:var(--ink);background:var(--paper)}
.no::after{content:"";position:absolute;left:50%;top:50%;width:112%;height:6px;background:var(--red);transform:translate(-50%,-50%) rotate(-45deg)}

.desk .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(20px,5vw,72px);align-items:start}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:14px 0;font:900 1.2rem/1.4 var(--disp)}
:lang(vi) .faq summary,:lang(en) .faq summary{font-weight:700;font-size:1.3rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;margin-top:.45em;border-right:3px solid var(--sign);border-bottom:3px solid var(--sign);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq p{padding:0 0 16px;color:var(--white);max-width:44em}

.end .in{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,5vw,64px);align-items:center}
.huge{font-size:clamp(110px,24vw,300px)}
.end h2{font-size:clamp(2.6rem,7vw,5.6rem)}
.end p{margin:10px 0 22px;font-size:1.15rem}

.foot{background:var(--board);color:var(--dim);padding:28px var(--e) 88px;font-size:.9rem}
.foot p{margin:0 0 4px}
.foot a{color:var(--white)}

/* trang phụ */
.band{padding-top:clamp(32px,5vw,64px);padding-bottom:clamp(32px,5vw,64px)}
.band h1{font-size:clamp(2.2rem,5.4vw,4.4rem);max-width:17em}
.band p{margin-top:12px;max-width:40em;font-size:1.1rem}
.crumb{background:var(--sign);color:var(--ink);padding:14px var(--e) 0;font-size:.92rem}
.crumb+.band{padding-top:14px}
.fares{display:grid}
.fare{display:grid;grid-template-columns:62px minmax(0,1fr) 300px;gap:18px;align-items:center;padding:16px 0;border-top:1px solid var(--line);scroll-margin-top:84px}
.fare:last-child{border-bottom:1px solid var(--line)}
.fare:target{background:var(--flap)}
.fare .code{background:var(--sign);color:var(--ink);text-align:center;padding:5px 0;border-radius:4px}
.fare h2{font-size:clamp(1.3rem,2.2vw,1.7rem)}
.fare p{font-size:.95rem;margin-top:4px;color:var(--dim)}
.price{justify-self:end;text-align:right}
.price .fl{justify-content:flex-end}
.price .c{--h:1.6em;width:1.3em;font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--sign)}
.price .c.l{width:.86em}
.free .price .c{color:var(--go)}
.price small{display:block;font:700 .82rem/1.4 var(--mono);color:var(--white);margin-top:6px}
.paybox .in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.paybox ol{margin-top:12px;list-style:decimal;padding-left:1.3em;max-width:40em}
.gdl{display:grid}
.gdl h2{margin-bottom:16px;font-size:1.7rem}
.gd{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;border-top:1px solid var(--line);text-decoration:none}
.gd:last-child{border-bottom:1px solid var(--line)}
.gd .code{color:var(--dim);font-size:.9rem}
.gd .n{font:900 clamp(1.2rem,2.3vw,1.7rem)/1.35 var(--disp)}
.gd .r{display:inline-flex;align-items:center;gap:8px;color:var(--sign);font-weight:600}
.gd:hover .n{color:var(--sign)}
.paper{background:var(--paper)}
.prose{max-width:40em;margin:0 auto;font-size:1.06rem}
.prose>*+*{margin-top:1em}
.prose .date{font-size:.9rem;color:#55585d}
.prose h2{font-size:1.7rem;margin-top:1.9em}
.prose ol{list-style:decimal;padding-left:1.4em}
.prose ul{list-style:square;padding-left:1.3em}
.prose li+li{margin-top:.45em}
.prose a{color:#0b6fa4}
.prose a:hover{color:var(--ink)}
.prose code{font-family:var(--mono);font-size:.92em;background:var(--floor);padding:1px 5px;border-radius:3px}
.prose blockquote{margin:1.2em 0;padding:14px 18px;background:var(--floor);border-radius:10px}
.prose .cta{margin-top:1.8em;color:var(--ink)}
.nf{text-align:center;min-height:70vh}
.nf .big{--n:3;max-width:420px;margin:24px auto;grid-template-columns:1fr}
.nf p{margin:10px 0 22px}

@media (max-width:1040px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .steps::before,.steps::after{display:none}
  .ticket,.rules .in{grid-template-columns:1fr}
  .gate{grid-template-columns:54px minmax(0,1fr) auto 22px}
  .gate .d{grid-column:2/-1;grid-row:2;font-size:.92rem;margin-top:-8px}
}
@media (max-width:720px){
  body{font-size:16px}
  .kf{right:12px;bottom:12px;padding:6px 10px;font-size:1rem}
  .top{display:grid;grid-template-columns:1fr auto;gap:2px 14px}
  .brand{font-size:1.3rem}
  .mini{order:2;padding:6px 12px}
  .nav{order:3;gap:14px}
  .sw{order:4;gap:10px;margin:0}
  .big{--n:4;grid-template-columns:1fr}
  .big.l{--n:8}
  .fids thead{display:none}
  .fids,.fids tbody{display:block}
  .fids caption{display:block}
  .fids tr{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;padding:7px 0;border-bottom:1px solid var(--line)}
  .fids td,.fids tbody th{padding:0;border:0}
  .fids .code{display:none}
  .fids .st{margin-left:auto}
  .fids .rem{order:3;width:100%;font-size:.86rem;line-height:1.5;color:var(--dim);margin-top:2px}
  .fids .fl .c{font-size:1rem}
  .fids .fl{gap:1px}
  div.go{flex-direction:column;align-items:stretch}
  .acts{flex-direction:column;align-items:stretch;gap:10px}
  .ghost{text-align:center}
  .cta{width:100%}
  .fact .in{grid-template-columns:1fr}
  .cmp thead{display:none}
  .cmp,.cmp tbody,.cmp tr,.cmp th,.cmp td{display:block;width:100%}
  .cmp tr{padding:14px 0;border-bottom:1px solid var(--line)}
  .cmp th,.cmp td{border:0;padding:3px 0}
  .cmp td::before{content:attr(data-k);display:block;font-size:.78rem;color:var(--dim)}
  .cmp tr.hot td::before{color:var(--sign)}
  .steps{grid-template-columns:1fr;gap:18px}
  .steps li{display:grid;grid-template-columns:64px 1fr;gap:0 14px}
  .steps .sq{grid-row:1/3}
  .steps h3{margin:0 0 2px}
  .pass{grid-template-columns:1fr 64px;-webkit-mask:radial-gradient(circle 9px at calc(100% - 64px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 64px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;mask:radial-gradient(circle 9px at calc(100% - 64px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 64px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
  .pm{padding:0 14px 14px}
  .ph{margin:0 -14px;padding:10px 14px}
  .pf{grid-template-columns:auto auto;justify-content:start}
  .stub{padding:12px 6px}
  .bar{width:38px}
  .stub .mono{display:none}
  .gate{grid-template-columns:48px minmax(0,1fr) 20px;gap:2px 12px;padding:12px 0}
  .gate .n{grid-column:2}
  .gate .d{grid-column:2;grid-row:2;margin:0}
  .gate .p{grid-column:2;grid-row:3}
  .gate .ic{grid-column:3;grid-row:1/4}
  .gate .code{grid-row:1/4;align-self:start}
  .pass .cta{font-size:1rem;padding:12px 14px}
  .ban{grid-template-columns:repeat(3,1fr);gap:16px 8px}
  .desk .in{grid-template-columns:1fr}
  .end .in{grid-template-columns:1fr}
  .huge{font-size:96px}
  .fare{grid-template-columns:48px minmax(0,1fr);gap:8px 12px}
  .price{grid-column:2;justify-self:start;text-align:left}
  .price .fl{justify-content:flex-start}
  .gd{grid-template-columns:minmax(0,1fr) auto}
  .gd .code{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
