/* Thai-Tex: the departure hall. Two red-white-and-blue flags, a marigold for the signs. */
@font-face{font-family:"Besley";src:url(fonts/besley-latin-wght-normal.woff2) format("woff2");font-weight:400 900;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/public-sans-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/public-sans-latin-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlow-condensed-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --ink:#0e1238;--paper:#ffffff;
  --c1:#ffc72c;   /* marigold: signs */
  --c2:#1b2f8f;   /* flag blue */
  --c3:#9fd8ff;   /* Texas sky */
  --c4:#e4002b;   /* flag red */
  --c5:#a4e8bd;   /* pasture */
  --c6:#ffb7a3;   /* dusk */
  --on-c2:#ffffff;--focus:#e4002b;
  --display:"Besley",Clarendon,"Bookman Old Style",Georgia,serif;
  --text:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --cond:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --num:normal;--dw:800;--track:-.022em;--bw:3px;--rad:22px;--rad-s:14px;--shx:6px;--sh:6px 6px 0 var(--ink);--sh-l:10px 10px 0 var(--ink);--wrap:1200px;
}

/* Kit 2 — the shared build under every new site (13 Nov 2026).
   Each site sets its own tokens (palette, three type roles, shape) in theme.css and adds its own signature pieces.
   The shared grammar: ink outlines, hard offset shadows, color-blocked bands, cards that carry a small working picture. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:18px;line-height:1.58;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration-thickness:.09em;text-underline-offset:.2em}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:4px solid var(--focus,var(--c2));outline-offset:3px}
.wrap{max-width:var(--wrap,1180px);margin:0 auto;padding:0 28px}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:var(--paper);padding:8px 12px;z-index:50}
h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.02;letter-spacing:var(--track,-.02em);font-weight:var(--dw,800)}
h1{font-size:clamp(2.7rem,7vw,5.6rem)}
h2{font-size:clamp(2rem,4.6vw,3.6rem);margin-bottom:.45em}
h3{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.1}
h4{font-family:var(--text);font-size:1.05rem;font-weight:800;letter-spacing:0;line-height:1.3}
p{margin:0 0 1em;max-width:64ch}
.lede{font-size:clamp(1.12rem,1.7vw,1.36rem);line-height:1.48;max-width:54ch}
.small{font-size:.86rem}
sup.ref{font-size:.62em;line-height:0;margin-left:.1em;font-family:var(--text);font-weight:800;letter-spacing:0}
sup.ref a{text-decoration:none;padding:0 .12em;opacity:.75}
sup.ref a:hover{opacity:1;text-decoration:underline}

/* masthead */
.mast{position:sticky;top:0;z-index:40;background:var(--mast,var(--paper));border-bottom:var(--bw) solid var(--ink)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:10px 26px;flex-wrap:wrap;padding-top:12px;padding-bottom:11px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--display);font-weight:var(--dw,800);font-size:26px;line-height:1;text-decoration:none;letter-spacing:var(--track,-.02em)}
.brand svg,.brand img{height:30px;width:auto;flex:none}
.mast nav{display:flex;gap:4px 6px;flex-wrap:wrap;align-items:center}
.mast nav a{font-weight:700;font-size:15.5px;text-decoration:none;padding:7px 12px;border-radius:999px;border:2px solid transparent}
.mast nav a:hover{border-color:var(--ink)}
.mast nav a[aria-current=page]{background:var(--ink);color:var(--paper)}
.mast nav a.cta{background:var(--c1);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}

/* buttons, pills, stickers */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--text);font-weight:800;font-size:1.02rem;line-height:1.1;text-decoration:none;color:var(--ink);background:var(--c1);border:var(--bw) solid var(--ink);border-radius:var(--rad-s,14px);padding:.82em 1.25em;box-shadow:var(--sh);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.btn:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--shx) + 2px) calc(var(--shx) + 2px) 0 var(--ink)}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.alt{background:var(--paper)}
.btn.dark{background:var(--ink);color:var(--paper)}
.pill{display:inline-flex;align-items:center;gap:.45em;font-weight:800;font-size:.86rem;line-height:1;background:var(--paper);border:2.5px solid var(--ink);border-radius:999px;padding:.5em .9em;box-shadow:3px 3px 0 var(--ink)}
.pill i{width:.62em;height:.62em;border-radius:50%;background:var(--c2);display:inline-block}
.sticker{position:relative;display:grid;place-items:center;width:var(--sz,150px);aspect-ratio:1;border-radius:50%;background:var(--c1);border:var(--bw) solid var(--ink);box-shadow:var(--sh);transform:rotate(var(--rot,-8deg));text-align:center;font-family:var(--display);font-weight:var(--dw,800);line-height:.95;padding:14px}
.sticker b{display:block;font-size:calc(var(--sz,150px) * .26);letter-spacing:-.03em}
.sticker span{display:block;font-family:var(--text);font-weight:800;font-size:calc(var(--sz,150px) * .092);line-height:1.15;margin-top:.3em}
.sticker svg.ring{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);animation:spin 26s linear infinite}
.sticker svg.ring text{font-family:var(--text);font-weight:800;font-size:9.4px;letter-spacing:.14em;fill:currentColor}
@keyframes spin{to{transform:rotate(360deg)}}

/* bands */
.band{padding:clamp(54px,8vw,104px) 0;position:relative}
.band.tight{padding:clamp(34px,5vw,60px) 0}
.band.k{background:var(--ink);color:var(--paper)}
.band.c1{background:var(--c1)}.band.c2{background:var(--c2)}.band.c3{background:var(--c3)}.band.c4{background:var(--c4)}.band.c5{background:var(--c5)}.band.c6{background:var(--c6)}
.band.line{border-top:var(--bw) solid var(--ink);border-bottom:var(--bw) solid var(--ink)}
.band.k a{color:inherit}
.on-dark{color:var(--paper)}
.head{display:grid;gap:14px;margin-bottom:clamp(26px,4vw,46px);max-width:900px}
.head .pill{justify-self:start}
.head p{font-size:1.14rem;max-width:58ch;margin:0}

/* marquee */
.marquee{overflow:hidden;background:var(--ink);color:var(--c1);border-top:var(--bw) solid var(--ink);border-bottom:var(--bw) solid var(--ink);padding:16px 0}
.marquee .track{display:flex;gap:0;width:max-content;animation:mq var(--mq,36s) linear infinite}
.marquee span{font-family:var(--display);font-weight:var(--dw,800);font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1;white-space:nowrap;padding:0 .55em;letter-spacing:var(--track,-.02em)}
.marquee span::after{content:"";display:inline-block;width:.42em;height:.42em;background:var(--c4);transform:rotate(45deg);margin-left:1.1em;vertical-align:.12em}
@keyframes mq{to{transform:translateX(-50%)}}

/* grids and cards */
.grid{display:grid;gap:clamp(16px,2.2vw,26px)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}
.card{position:relative;background:var(--paper);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh);padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:12px;min-width:0}
.card.c1{background:var(--c1)}.card.c2{background:var(--c2)}.card.c3{background:var(--c3)}.card.c4{background:var(--c4)}.card.c5{background:var(--c5)}.card.c6{background:var(--c6)}.card.k{background:var(--ink);color:var(--paper)}
.card.c2,.card.c2 h3,.band.c2,.band.c2 h2{color:var(--on-c2,var(--paper))}
.card p{margin:0;font-size:1rem;max-width:none}
.card .tag{display:flex;align-items:center;gap:10px;font-weight:800;font-size:.9rem}
.card .tag b{display:grid;place-items:center;width:2.3em;height:2.3em;border:2.5px solid currentColor;border-radius:50%;font-size:.86rem}
.card .vig{margin-top:auto;padding-top:8px}
a.card{text-decoration:none;transition:transform .14s ease,box-shadow .14s ease}
a.card:hover{transform:translate(-3px,-3px);box-shadow:calc(var(--shx) + 3px) calc(var(--shx) + 3px) 0 var(--ink)}
.card .go{font-weight:800;text-decoration:underline;text-decoration-thickness:.1em;text-underline-offset:.2em;margin-top:6px}
.chip{display:inline-block;background:var(--paper);color:var(--ink);border:2.5px solid var(--ink);border-radius:12px;padding:.45em .7em;font-weight:700;font-size:.86rem;line-height:1.25;box-shadow:3px 3px 0 var(--ink)}

/* steps on a dotted road: only for real sequences */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:22px;counter-reset:st}
.steps li{counter-increment:st;position:relative;padding-top:78px}
.steps li::before{content:counter(st);position:absolute;top:0;left:0;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:var(--bw) solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-family:var(--display);font-weight:var(--dw,800);font-size:1.5rem;background:var(--c1);color:var(--ink)}
.steps li:nth-child(4n+2)::before{background:var(--c3)}.steps li:nth-child(4n+3)::before{background:var(--c4)}.steps li:nth-child(4n+4)::before{background:var(--c5)}
.steps li::after{content:"";position:absolute;top:29px;left:70px;right:-14px;border-top:3px dotted currentColor;opacity:.75}
.steps li:last-child::after{display:none}
.steps h3{font-size:1.28rem;margin-bottom:.35em}
.steps p{font-size:.98rem;margin:0}
@media(max-width:900px){.steps{grid-template-columns:minmax(0,1fr);gap:26px}.steps li{padding:2px 0 0 78px;min-height:60px}.steps li::after{top:66px;left:28px;right:auto;bottom:-22px;border-top:0;border-left:3px dotted currentColor}}

/* tools: the working pieces */
.tool{background:var(--paper);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l,10px 10px 0 var(--ink));padding:clamp(20px,3vw,36px);display:grid;gap:22px}
.tool.split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:clamp(22px,3.4vw,44px)}
@media(max-width:860px){.tool.split{grid-template-columns:minmax(0,1fr)}}
.tool fieldset{border:0;margin:0 0 18px;padding:0;min-width:0}
.tool legend,.tool label.lb{display:block;font-weight:800;font-size:1rem;margin-bottom:9px;padding:0}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg span{display:block;border:2.5px solid var(--ink);border-radius:12px;padding:.55em .9em;font-weight:700;font-size:.97rem;line-height:1.2;background:var(--paper);transition:transform .1s ease}
.seg input:checked + span{background:var(--ink);color:var(--paper);box-shadow:3px 3px 0 var(--c4)}
.seg input:focus-visible + span{outline:4px solid var(--focus,var(--c2));outline-offset:2px}
.tool input[type=range]{width:100%;accent-color:var(--ink);height:28px}
.tool input[type=number],.tool input[type=date],.tool select{font:inherit;font-weight:700;border:2.5px solid var(--ink);border-radius:12px;padding:.55em .7em;background:var(--paper);color:var(--ink);max-width:100%}
.out{background:var(--c1);border:var(--bw) solid var(--ink);border-radius:calc(var(--rad) - 6px);padding:clamp(18px,2.4vw,28px);min-width:0}
.out .big{font-family:var(--display);font-weight:var(--dw,800);font-size:clamp(2.4rem,6vw,4.4rem);line-height:.95;letter-spacing:-.03em;font-variant-numeric:var(--num,tabular-nums);overflow-wrap:anywhere}
.out .unit{font-weight:800;font-size:1.02rem;margin-top:.3em}
.out p{font-size:.98rem;margin:.7em 0 0}
.out ul{margin:.6em 0 0;padding-left:1.1em;font-size:.98rem}
.out li{margin:.25em 0}

/* numbers */
.stats{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:0;border:var(--bw) solid var(--ink);border-radius:var(--rad);overflow:hidden;box-shadow:var(--sh);background:var(--paper);color:var(--ink)}
.stats div{padding:clamp(18px,2.4vw,30px);border-left:var(--bw) solid var(--ink)}
.stats div:first-child{border-left:0}
.stats b{display:block;font-family:var(--display);font-weight:var(--dw,800);font-size:clamp(2.2rem,5vw,4rem);line-height:.95;letter-spacing:-.03em;font-variant-numeric:var(--num,tabular-nums)}
.stats span{display:block;font-weight:700;font-size:.96rem;line-height:1.3;margin-top:.5em}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats div:nth-child(odd){border-left:0}.stats div:nth-child(n+3){border-top:var(--bw) solid var(--ink)}}

/* tables */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh);background:var(--paper);color:var(--ink)}
table.t{border-collapse:collapse;width:100%;min-width:540px;font-variant-numeric:tabular-nums}
.t caption{text-align:left;font-variant-numeric:var(--num,tabular-nums);font-family:var(--display);font-weight:var(--dw,800);font-size:1.3rem;padding:18px 20px 12px;letter-spacing:-.01em}
.t th,.t td{text-align:left;vertical-align:top;padding:13px 20px;border-top:2px solid var(--ink);font-size:1rem;line-height:1.4}
.t thead th{font-size:.84rem;font-weight:800;background:var(--ink);color:var(--paper);border-top:0}
.t tbody th{font-weight:800}
.t td.n,.t th.n{text-align:right;white-space:nowrap}
.t tr.hot td,.t tr.hot th{background:var(--c1)}

/* split: words beside a picture */
.split2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4.5vw,64px);align-items:center}
.split2.top{align-items:start}
@media(max-width:860px){.split2{grid-template-columns:minmax(0,1fr)}}
.frame{border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l,10px 10px 0 var(--ink));overflow:hidden;background:var(--ink);margin:0;position:relative}
.frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:var(--ar,4/3)}
.frame figcaption{position:absolute;left:12px;bottom:12px;background:var(--paper);color:var(--ink);border:2.5px solid var(--ink);border-radius:10px;font-weight:700;font-size:.82rem;padding:.35em .7em}
.prints{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:clamp(12px,2vw,24px);align-items:center}
.prints figure{margin:0;background:#fff;color:#111;border:var(--bw) solid var(--ink);padding:10px 10px 0;box-shadow:var(--sh);transform:rotate(var(--r,-2deg));transition:transform .2s ease}
.prints figure:nth-child(even){--r:2.2deg}.prints figure:nth-child(3n){--r:-1deg}
.prints figure:hover{transform:rotate(0) scale(1.03);z-index:2}
.prints img{width:100%;aspect-ratio:1/1;object-fit:cover}
.prints figcaption{font-weight:700;font-size:.84rem;padding:9px 2px 11px;line-height:1.25}
@media(max-width:820px){.prints{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* notes, faq */
.note{border:var(--bw) solid var(--ink);border-radius:var(--rad-s,14px);background:var(--c1);color:var(--ink);padding:16px 20px;box-shadow:4px 4px 0 var(--ink);max-width:70ch}
.note p{margin:0;max-width:none}
.note.warn{background:var(--c4);color:var(--on-c4,#fff)}
.faq{display:grid;gap:14px;max-width:900px}
.faq details{background:var(--paper);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--rad-s,14px);box-shadow:4px 4px 0 var(--ink)}
.faq summary{cursor:pointer;list-style:none;font-weight:800;font-size:1.1rem;padding:16px 54px 16px 20px;position:relative;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-52%);font-family:var(--display);font-size:1.8rem;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq details > div{padding:0 20px 18px}
.faq details p{margin:0 0 .7em;max-width:none}
ul.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
ul.ticks li{position:relative;padding-left:2em;max-width:62ch}
ul.ticks li::before{content:"";position:absolute;left:0;top:.2em;width:1.2em;height:1.2em;border-radius:50%;background:var(--ink)}
ul.ticks li::after{content:"";position:absolute;left:.37em;top:.48em;width:.46em;height:.25em;border-left:2.5px solid var(--paper);border-bottom:2.5px solid var(--paper);transform:rotate(-45deg)}
.k ul.ticks li::before{background:var(--c1)}.k ul.ticks li::after{border-color:var(--ink)}

/* sources */
.srcs{list-style:none;margin:0 0 34px;padding:0;max-width:92ch}
.srcs li{display:grid;grid-template-columns:2.8em 1fr;gap:0 6px;padding:10px 0;border-top:2px solid var(--ink);font-size:.97rem;line-height:1.45}
.srcs li:target{background:var(--c1)}
.srcs .num{font-weight:800;font-variant-numeric:tabular-nums}
.srcs a{overflow-wrap:anywhere}

/* foot */
.foot{background:var(--ink);color:var(--paper);padding:54px 0 40px;font-size:.98rem}
.foot .wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:26px 60px}
.foot p{margin:0 0 .6em;max-width:56ch;opacity:.9}
.foot nav{display:grid;gap:8px;align-content:start;justify-items:start}
.foot nav a{font-weight:700}
.foot .brand{color:var(--paper);margin-bottom:14px}
@media(max-width:760px){.foot .wrap{grid-template-columns:minmax(0,1fr)}}

/* arrive once */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.marquee .track,.sticker svg.ring{animation:none}html{scroll-behavior:auto}.btn,.card{transition:none}}
@media(max-width:520px){body{font-size:17px}.wrap{padding:0 18px}.brand{font-size:22px}.mast nav a{padding:6px 9px;font-size:14.5px}}

/* Thai-Tex: the departure hall. Site pieces on top of Kit 2. */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mast{--mast:var(--paper)}
.cond{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.band .wrap > p{font-size:1.08rem}
.center{text-align:center}
h2 + .lede{margin-top:-.2em}

/* ---------- home hero */
.hero{background:var(--c1);border-bottom:var(--bw) solid var(--ink);padding:clamp(34px,5vw,72px) 0 clamp(86px,9vw,128px);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;right:-12vw;top:-30vw;width:74vw;aspect-ratio:1;border-radius:50%;border:var(--bw) dashed rgba(14,18,56,.28);pointer-events:none}
.hero::after{content:"";position:absolute;right:2vw;top:-16vw;width:46vw;aspect-ratio:1;border-radius:50%;border:var(--bw) dashed rgba(14,18,56,.2);pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.96fr);gap:clamp(28px,4.4vw,66px);align-items:center}
.hero h1{font-size:clamp(2.9rem,6.5vw,5.8rem);margin:18px 0 0}
.hero .lede{margin:22px 0 28px}
.btns{display:flex;flex-wrap:wrap;gap:14px}
@media(max-width:940px){.hero .wrap{grid-template-columns:minmax(0,1fr)}}

/* the board */
.board{container-type:inline-size;background:var(--ink);color:#fff;border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:11px 11px 0 var(--c4);padding:clamp(14px,2vw,22px);transform:rotate(1.4deg)}
.board-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c1);font-size:clamp(1.15rem,2.1vw,1.7rem);line-height:1;margin-bottom:12px}
.board-top span:last-child{color:#fff;font-size:.72em;text-align:right}
.board-top b{color:var(--c1);font-weight:700}
.board-head,#flaps li{display:grid;grid-template-columns:repeat(9,minmax(0,1fr)) .55fr repeat(15,minmax(0,1fr)) .55fr repeat(6,minmax(0,1fr));gap:2px}
.board-head{font-size:clamp(.6rem,1.05vw,.74rem);font-weight:700;color:#b9c1f2;margin-bottom:6px;white-space:nowrap}
.board-head span:nth-child(1){grid-column:1 / span 9}
.board-head span:nth-child(2){grid-column:11 / span 15}
.board-head span:nth-child(3){grid-column:27 / span 6;text-align:right}
#flaps{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.fl{display:grid;place-items:center;aspect-ratio:.64;background:#1e2670;border-radius:3px;font-family:var(--cond);font-weight:700;font-size:3.2vw;font-size:4.2cqw;line-height:1;color:#fff;position:relative;overflow:hidden;font-style:normal}
.fl::after{content:"";position:absolute;left:0;right:0;top:calc(50% - .5px);height:1px;background:rgba(5,8,34,.7)}
#flaps li:last-child .fl{color:var(--c1)}
.fl.go{animation:flap .15s ease-in}
@keyframes flap{0%{transform:scaleY(1)}50%{transform:scaleY(.06)}100%{transform:scaleY(1)}}
.board-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:.84rem;font-weight:700;color:#c9cff5}
.board-ctl[hidden]{display:none}
.board-ctl button{font:inherit;font-weight:800;color:#fff;background:transparent;border:2px solid #fff;border-radius:999px;padding:.32em .85em;cursor:pointer}
.board-ctl button[aria-pressed=true]{background:var(--c1);color:var(--ink);border-color:var(--c1)}
.board-foot{font-size:.8rem;line-height:1.4;color:#c9cff5;margin:12px 0 0;max-width:none}
.board-foot a{color:#fff}
@media(max-width:940px){.board{transform:none;box-shadow:7px 7px 0 var(--c4)}.fl{font-size:3.4vw;font-size:4.2cqw}}

/* the two ends, with their clocks */
.pair{position:relative;display:grid;grid-template-columns:1fr 1fr;border-bottom:var(--bw) solid var(--ink);background:var(--ink)}
.pair figure{margin:0;position:relative;overflow:hidden}
.pair figure + figure{border-left:var(--bw) solid var(--ink)}
.pair img{width:100%;height:clamp(300px,37vw,540px);object-fit:cover}
.pair figcaption{position:absolute;left:clamp(12px,2vw,26px);bottom:clamp(12px,2vw,26px);display:grid;gap:1px;background:var(--paper);border:var(--bw) solid var(--ink);border-radius:var(--rad-s);padding:9px 15px 8px;box-shadow:5px 5px 0 var(--ink);line-height:1.15}
.pair figure.th figcaption{left:auto;right:clamp(12px,2vw,26px);text-align:right}
.pair figcaption b{font-size:.92rem;font-weight:800}
.pair .clock{font-family:var(--cond);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.1rem);text-transform:uppercase;letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.pair svg.arc{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pair svg.tall{display:none}
.pair .casing{fill:none;stroke:#fff;stroke-width:11;stroke-linecap:round}
.pair .route{fill:none;stroke:var(--c4);stroke-width:5;stroke-linecap:round;stroke-dasharray:2 13}
.pair circle{fill:#fff;stroke:var(--ink);stroke-width:3}
.pair .jet{fill:#fff;stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round}
.pair .sticker{position:absolute;left:calc(50% - var(--sz) / 2);top:calc(var(--sz) / -2);--sz:clamp(128px,13vw,176px);--rot:-9deg;z-index:3}
@media(max-width:700px){.pair{grid-template-columns:1fr}.pair figure + figure{border-left:0;border-top:var(--bw) solid var(--ink)}.pair img{height:250px}.pair svg.wide{display:none}.pair svg.tall{display:block}
  .pair .sticker{left:auto;right:24px;top:calc(var(--sz) / -1.6)}.pair figure.th figcaption{right:auto;left:12px;text-align:left}}

/* ---------- boarding-pass cards */
.passes{align-items:stretch}
a.pass{display:block;text-decoration:none;color:var(--ink);filter:drop-shadow(var(--shx) var(--shx) 0 var(--ink));transition:transform .14s ease,filter .14s ease;min-width:0}
a.pass:hover{transform:translate(-3px,-3px);filter:drop-shadow(9px 9px 0 var(--ink))}
.pass-in{--stub:92px;--py:calc(100% - var(--stub) - 1.5px);height:100%;display:flex;flex-direction:column;background:var(--paper);border:var(--bw) solid var(--ink);border-radius:var(--rad);
  -webkit-mask:radial-gradient(circle 11px at 0 var(--py),#0000 10.5px,#000 11px) left / 51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--py),#0000 10.5px,#000 11px) right / 51% 100% no-repeat;
  mask:radial-gradient(circle 11px at 0 var(--py),#0000 10.5px,#000 11px) left / 51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--py),#0000 10.5px,#000 11px) right / 51% 100% no-repeat}
.pass.c1 .pass-in{background:var(--c1)}.pass.c3 .pass-in{background:var(--c3)}.pass.c5 .pass-in{background:var(--c5)}.pass.c6 .pass-in{background:var(--c6)}
.pass-body{flex:1;display:flex;flex-direction:column;gap:11px;padding:22px 22px 18px}
.pass-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pass-top svg{width:42px;height:42px;fill:var(--ink)}
.pass-top .cond{font-size:1.02rem;border:2.5px solid var(--ink);border-radius:8px;padding:.18em .55em;background:var(--paper)}
.pass h3{font-size:clamp(1.5rem,2.2vw,1.95rem)}
.pass p{margin:0;font-size:1rem;max-width:none}
.pass .vig{margin-top:auto;padding-top:10px}
.pass-stub{position:relative;height:var(--stub);box-sizing:border-box;border-top:var(--bw) dashed var(--ink);padding:0 22px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.pass-stub::before,.pass-stub::after{content:"";position:absolute;top:-14.5px;width:26px;height:26px;border-radius:50%;border:var(--bw) solid var(--ink)}
.pass-stub::before{left:-16px}.pass-stub::after{right:-16px}
.pass-stub .cond{font-size:1.08rem;line-height:1.1}
.pass-stub .go{font-weight:800;text-decoration:underline;text-decoration-thickness:.1em;text-underline-offset:.2em;font-size:.98rem}
/* small pictures inside the passes */
.v-route{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:6px 6px;background:var(--paper);border:2.5px solid var(--ink);border-radius:12px;padding:10px 12px}
.v-route b{font-family:var(--cond);font-size:1.3rem;line-height:1}
.v-route i{height:0;border-top:3px dotted var(--ink)}
.v-route span{grid-column:span 5;font-weight:700;font-size:.84rem;line-height:1.2}
.v-route span + span{margin-top:-4px}
.minical{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:var(--paper);border:2.5px solid var(--ink);border-radius:12px;padding:9px}
.minical i{aspect-ratio:1.5;border-radius:3px;background:var(--c3);border:1.5px solid var(--ink)}
.minical i.rail{background:var(--c1)}.minical i.port{background:var(--c4)}.minical i.home{background:var(--ink)}
.v-check{list-style:none;margin:0;padding:10px 12px;display:grid;gap:6px;background:var(--paper);border:2.5px solid var(--ink);border-radius:12px;font-weight:700;font-size:.9rem}
.v-check li{display:flex;align-items:center;gap:8px}
.v-check li::before{content:"";flex:none;width:1.05em;height:1.05em;border:2.5px solid var(--ink);border-radius:4px;background:var(--paper)}
.v-check li.ok::before{background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.4l2.4 2.4 4.7-5.2' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") center/80% no-repeat}
.v-race{display:grid;gap:7px;background:var(--paper);border:2.5px solid var(--ink);border-radius:12px;padding:10px 12px;font-weight:700;font-size:.86rem}
.v-race span{display:block;height:14px;border:2.5px solid var(--ink);border-radius:999px;background:var(--c2);margin-top:3px}
.v-race div:last-child span{width:24%;background:var(--c4)}

/* ---------- the map */
.hubmap{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(18px,2.6vw,34px);align-items:start}
@media(max-width:980px){.hubmap{grid-template-columns:minmax(0,1fr)}}
.mapframe{border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l);background:#0e1238;overflow:hidden;position:relative}
.pmap{width:100%;height:auto}
.pmap .rim{fill:var(--c3)}
.pmap .grat{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:1}
.pmap .land{fill:#fffdf2;stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}
.pmap .direct{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-dasharray:1 8;stroke-linecap:round}
.pmap .arc{fill:none;stroke-width:4;stroke-linecap:round;transition:opacity .25s ease,stroke-width .25s ease}
.pmap .arc.west{stroke:var(--c2)}.pmap .arc.east{stroke:var(--c4)}
.pmap .arc.on2{stroke-dasharray:3 8}
.pmap .city circle{fill:var(--c1);stroke:var(--ink);stroke-width:3}
.pmap .city text,.pmap .pole text{font-family:var(--text);font-weight:800;font-size:17px;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.pmap .city[data-code=DFW] circle,.pmap .city[data-code=IAH] circle,.pmap .city[data-code=BKK] circle{fill:#fff;r:10px}
.pmap .pole path{stroke:var(--ink);stroke-width:2.5}
.pmap .pole text{font-size:13px;font-weight:700}
.pmap .city{transition:opacity .25s ease}
.pmap[data-sel] .arc,.pmap[data-sel] .city{opacity:.13}
.pmap[data-sel] .arc.sel{opacity:1;stroke-width:6}
.pmap[data-sel] .city.sel{opacity:1}
.pmap .plane{fill:#fff;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}
.maplegend{position:absolute;left:14px;bottom:12px;display:flex;flex-wrap:wrap;gap:8px}
.maplegend .chip{font-size:.78rem;box-shadow:2px 2px 0 var(--ink);display:inline-flex;align-items:center;gap:7px}
.maplegend i{width:22px;height:0;border-top:4px solid var(--c2)}
.maplegend .e i{border-color:var(--c4)}.maplegend .d i{border-top:3px dotted var(--ink)}
#hubpick{border:0;margin:0 0 16px;padding:0}
#hubpick label.east input:checked + span{box-shadow:3px 3px 0 var(--c1)}
.band.c2 #hubpick span{border-color:#fff;background:transparent;color:#fff}
.band.c2 #hubpick input:checked + span{background:var(--c1);color:var(--ink);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.hub{background:var(--paper);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh);padding:clamp(18px,2.2vw,26px)}
.hub + .hub{margin-top:16px}
.js .hub + .hub{margin-top:0}
.hub h3{margin-bottom:.5em}
.hub.west h3::before,.hub.east h3::before{content:"";display:inline-block;width:.62em;height:.62em;border-radius:50%;background:var(--c2);border:2.5px solid var(--ink);margin-right:.4em;vertical-align:.08em}
.hub.east h3::before{background:var(--c4)}
.hub dl{margin:0}
.hub dt{font-weight:800;font-size:.9rem;margin-top:.7em}
.hub dd{margin:0;font-size:1rem}
.hub p{margin:.7em 0 0;font-size:1rem;max-width:none}
.hub .perk{background:var(--c1);border:2.5px solid var(--ink);border-radius:12px;padding:10px 13px;margin-top:14px}

/* ---------- passport stamps */
.page-pp{background:#fffdf2;border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l);padding:clamp(20px,3.4vw,44px);
  background-image:repeating-linear-gradient(0deg,rgba(27,47,143,.07) 0 1px,transparent 1px 28px)}
.stamps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,40px)}
@media(max-width:860px){.stamps{grid-template-columns:minmax(0,1fr)}}
.stamps li{display:grid;gap:16px;align-content:start}
.stamps p{margin:0;font-size:1rem;max-width:none}
.stamp{justify-self:start;color:var(--c4);border:3px solid currentColor;border-radius:14px;padding:10px 16px 9px;box-shadow:inset 0 0 0 3px #fffdf2,inset 0 0 0 5px currentColor;transform:rotate(var(--r,-4deg));font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;line-height:1.05;text-align:center;opacity:.92}
.stamp b{display:block;font-size:1.9rem}
.stamp span{display:block;font-size:1rem;margin-top:3px}
.stamp.blue{color:var(--c2);--r:3deg;border-radius:50%;padding:22px 20px}
.stamp.green{color:#0a7a4b;--r:-2deg}

/* ---------- inner page heroes */
.phero{border-bottom:var(--bw) solid var(--ink);padding:clamp(34px,5vw,70px) 0 clamp(40px,6vw,80px);position:relative;overflow:hidden}
.phero.c3{background:var(--c3)}.phero.c5{background:var(--c5)}.phero.c6{background:var(--c6)}.phero.c2{background:var(--c2);color:#fff}
.phero .wrap{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(26px,4.4vw,64px);align-items:center}
.phero h1{font-size:clamp(2.6rem,5.6vw,4.9rem)}
.phero .lede{margin:20px 0 0}
.phero .pill{margin-bottom:18px}
.phero-art{position:relative;min-width:0}
@media(max-width:940px){.phero .wrap{grid-template-columns:minmax(0,1fr)}}

/* the ticket (fly) */
.ticket{display:grid;grid-template-columns:minmax(0,1fr) 118px;background:var(--paper);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l);transform:rotate(-1.6deg);overflow:hidden}
.tk-main{padding:clamp(16px,2.2vw,26px);display:grid;gap:16px;min-width:0}
.tk-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.05rem;border-bottom:var(--bw) solid var(--ink);padding-bottom:10px}
.tk-head span:last-child{background:var(--c4);color:#fff;padding:.1em .5em;border-radius:6px}
.tk-route{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:8px}
.tk-route b{display:block;font-family:var(--cond);font-size:clamp(2rem,4.4vw,3.5rem);line-height:.9}
.tk-route span{display:block;font-size:.76rem;font-weight:700;line-height:1.2;margin-top:4px}
.tk-route i{height:0;border-top:3px dotted var(--ink);position:relative}
.tk-route i::after{content:"";position:absolute;right:-2px;top:-7.5px;border-left:10px solid var(--ink);border-top:6px solid transparent;border-bottom:6px solid transparent}
.tk-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.tk-facts div{background:var(--c1);border:2.5px solid var(--ink);border-radius:12px;padding:8px 10px}
.tk-facts dt{font-size:.74rem;font-weight:800}
.tk-facts dd{margin:0;font-family:var(--cond);font-weight:700;font-size:clamp(1.2rem,2.2vw,1.7rem);line-height:1.05;text-transform:uppercase}
.tk-stub{border-left:var(--bw) dashed var(--ink);background:var(--c3);padding:16px 12px;display:grid;gap:10px;align-content:space-between;justify-items:center;text-align:center}
.tk-stub .cond{font-size:1.5rem;line-height:.95}
.barcode{width:100%;height:74px;background:repeating-linear-gradient(90deg,var(--ink) 0 3px,transparent 3px 5px,var(--ink) 5px 6px,transparent 6px 10px,var(--ink) 10px 14px,transparent 14px 16px,var(--ink) 16px 17px,transparent 17px 21px)}
.tk-note{font-size:.9rem;margin:22px 0 0;max-width:none}
@media(max-width:520px){.ticket{grid-template-columns:minmax(0,1fr)}.tk-stub{border-left:0;border-top:var(--bw) dashed var(--ink);grid-template-columns:auto 1fr;align-items:center}.barcode{height:44px}}

/* luggage tags */
.tags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.6vw,34px);padding-top:26px}
@media(max-width:860px){.tags{grid-template-columns:minmax(0,1fr);max-width:420px}}
.ltag{filter:drop-shadow(var(--shx) var(--shx) 0 var(--ink));transform:rotate(var(--r,-2deg));transform-origin:50% 0;transition:transform .25s ease;position:relative}
.ltag:nth-child(2){--r:1.5deg}.ltag:nth-child(3){--r:-1deg}
.ltag:hover{transform:rotate(0)}
.ltag::before{content:"";position:absolute;left:50%;top:-30px;width:3px;height:52px;background:var(--ink);transform:rotate(8deg);transform-origin:50% 100%;z-index:2;border-radius:2px}
.ltag-edge{background:var(--ink);padding:var(--bw);clip-path:polygon(24% 0,76% 0,100% 13%,100% 100%,0 100%,0 13%);height:100%}
.ltag-body{height:100%;background:var(--paper);clip-path:polygon(24.3% 0,75.7% 0,100% 13.2%,100% 100%,0 100%,0 13.2%);padding:74px 22px 24px;display:grid;gap:10px;align-content:start;position:relative}
.ltag-body::before{content:"";position:absolute;left:calc(50% - 13px);top:22px;width:26px;height:26px;border-radius:50%;background:var(--c1);border:var(--bw) solid var(--ink)}
.ltag:nth-child(1) .ltag-body{background:var(--c5)}.ltag:nth-child(2) .ltag-body{background:var(--c6)}.ltag:nth-child(3) .ltag-body{background:var(--c3)}
.ltag .code{font-family:var(--cond);font-weight:700;font-size:4.4rem;line-height:.82;letter-spacing:.02em}
.ltag h3{font-size:1.35rem}
.ltag p{margin:0;font-size:1rem;max-width:none}
.ltag .cond{font-size:.98rem;border-top:var(--bw) dashed var(--ink);padding-top:10px;margin-top:4px;text-transform:none;font-family:var(--text);letter-spacing:0;font-weight:700;font-size:.9rem}

/* ---------- the slow road */
.smapframe{border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l);overflow:hidden;background:var(--c3)}
.smap{width:100%;height:auto}
.smap .sea{fill:var(--c3)}
.smap .land{fill:#fffdf2;stroke:var(--ink);stroke-width:1;stroke-linejoin:round}
.smap .ship{fill:none;stroke:var(--c2);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.smap.draw .ship{stroke-dashoffset:1}
.smap.draw.in .ship{stroke-dashoffset:0;transition:stroke-dashoffset 2s ease-in}
.smap.draw.in .ship + .ship{transition-delay:1.9s;transition-duration:3.2s}
.smap .rail{fill:none;stroke:var(--c4);stroke-width:5;stroke-dasharray:2 9;stroke-linecap:round}
.smap .city circle{fill:var(--c1);stroke:var(--ink);stroke-width:3}
.smap .city text{font-family:var(--text);font-weight:800;font-size:17px;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.keys{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}
.keys .chip{display:inline-flex;align-items:center;gap:8px}
.keys i{width:1em;height:1em;border-radius:4px;border:2px solid var(--ink);background:var(--c3)}
.keys .rail i{background:var(--c1)}.keys .port i{background:var(--c4)}.keys .home i{background:var(--ink)}
.calwrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
@media(max-width:900px){.calwrap{grid-template-columns:minmax(0,1fr)}}
.cal{list-style:none;margin:0;padding:clamp(10px,1.4vw,16px);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,.7vw,8px);background:var(--paper);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l)}
.cal .wd{font-size:.76rem;font-weight:800;text-align:center;padding:2px 0 4px}
.cal li:not(.wd){position:relative;aspect-ratio:1.12;border:2.5px solid var(--ink);border-radius:10px;background:var(--c3);display:grid;place-items:center;font-family:var(--cond);font-weight:700;font-size:clamp(1.1rem,2.2vw,1.7rem);cursor:pointer;transition:transform .1s ease}
.cal li.rail{background:var(--c1)}.cal li.port{background:var(--c4);color:#fff}.cal li.home{background:var(--ink);color:#fff}
.cal li[data-m]::before{content:attr(data-m);position:absolute;left:5px;top:3px;font-family:var(--text);font-size:.6rem;font-weight:800;line-height:1}
.cal li:not(.wd):hover,.cal li.on{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink);z-index:1}
.calout{position:sticky;top:96px}
.calout .big{font-size:clamp(1.9rem,3.6vw,2.9rem)}

/* ---------- tools on the dog page */
.plan{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.plan li{display:grid;grid-template-columns:minmax(118px,auto) 1fr;gap:4px 14px;align-items:baseline;background:var(--paper);border:2.5px solid var(--ink);border-radius:12px;padding:10px 13px;font-size:.98rem}
.plan li b{font-family:var(--cond);font-weight:700;font-size:1.25rem;text-transform:uppercase;letter-spacing:.02em;line-height:1.05}
.plan li.late{background:var(--c4);color:#fff}
@media(max-width:520px){.plan li{grid-template-columns:1fr}}
.case[hidden]{display:none}
.scale{display:grid;gap:14px;justify-items:center}
.dial{width:min(100%,360px);height:auto}
.dial .face{fill:var(--paper);stroke:var(--ink);stroke-width:5}
.dial .ok{fill:none;stroke:var(--c5);stroke-width:22}
.dial .mid{fill:none;stroke:var(--c1);stroke-width:22}
.dial .no{fill:none;stroke:var(--c4);stroke-width:22}
.dial .needle{stroke:var(--ink);stroke-width:6;stroke-linecap:round;transform-origin:180px 180px;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
.dial .hubdot{fill:var(--ink)}
.dial text{font-family:var(--cond);font-weight:700;font-size:20px;fill:var(--ink);text-anchor:middle}

/* ---------- freight */
.ctr{width:100%;height:auto}
.ctr-sh{fill:var(--ink)}
.ctr-box{fill:var(--c4);stroke:var(--ink);stroke-width:5;stroke-linejoin:round}
.ctr-ribs path{stroke:var(--ink);stroke-width:4;opacity:.38}
.ctr-door{stroke:var(--ink);stroke-width:5}
.ctr-bar{stroke:var(--ink);stroke-width:4;opacity:.7}
.ctr-plate{fill:var(--paper);stroke:var(--ink);stroke-width:4}
.ctr-t1{font-family:var(--cond);font-weight:700;font-size:23px;letter-spacing:.05em;fill:var(--ink)}
.ctr-t2{font-family:var(--cond);font-weight:700;font-size:23px;letter-spacing:.05em;fill:#fff}
.ctr .top .ctr-box{fill:var(--c1)}.ctr .top .ctr-t2{fill:var(--ink)}
.race{display:grid;gap:16px;background:var(--paper);border:var(--bw) solid var(--ink);border-radius:var(--rad);box-shadow:var(--sh-l);padding:clamp(18px,2.6vw,32px)}
.race h3{font-size:1.2rem}
.race-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:6px 18px;align-items:center}
.race-row .lab{font-weight:800;line-height:1.25}
.race-row .lab small{display:block;font-weight:600;font-size:.84rem}
.lane{position:relative;height:54px;border:2.5px solid var(--ink);border-radius:12px;background:repeating-linear-gradient(90deg,transparent 0 calc(100% / 6 - 2px),rgba(14,18,56,.22) calc(100% / 6 - 2px) calc(100% / 6))}
.lane span{position:absolute;top:5px;height:18px;border:2.5px solid var(--ink);border-radius:999px;background:var(--paper);left:calc(var(--a) / 60 * 100%);width:calc((var(--b) - var(--a)) / 60 * 100%);transform-origin:0 50%}
.lane span + span{top:27px;background:var(--c2)}
.race-row.air .lane span + span{background:var(--c4)}
.rv .lane span{transform:scaleX(0)}
.rv.in .lane span{transform:none;transition:transform 1s cubic-bezier(.2,.7,.2,1) .3s}
.race-axis{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:0 18px;font-size:.78rem;font-weight:800}
.race-axis div{display:flex;justify-content:space-between}
.race .keys{margin:0}
.race .keys .p2p i{background:var(--paper)}.race .keys .d2d i{background:var(--c2)}
@media(max-width:620px){.race-row,.race-axis{grid-template-columns:1fr}.race-axis div:first-child{display:none}}
.boxes{display:grid;gap:12px;margin-top:6px}
.boxrow{display:grid;grid-template-columns:118px 1fr 54px;gap:10px;align-items:center;font-weight:800;font-size:.92rem}
.boxbar{height:30px;border:2.5px solid var(--ink);border-radius:8px;background:var(--paper);overflow:hidden;position:relative;background-image:repeating-linear-gradient(90deg,transparent 0 13px,rgba(14,18,56,.16) 13px 15px)}
.boxbar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--c4);border-right:2.5px solid var(--ink);transition:width .35s ease}
.boxrow.over .boxbar i{background:var(--ink)}
.pile{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:700}
.pile input{width:5.2em}
.verdict{display:inline-block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.5rem;line-height:1;border:var(--bw) solid var(--ink);border-radius:10px;padding:.3em .6em;background:var(--c5);transform:rotate(-2deg)}
.verdict.no{background:var(--c4);color:#fff}

/* shared small things */
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3.4vw,48px)}
@media(max-width:820px){.cols2{grid-template-columns:minmax(0,1fr)}}
.stack{display:grid;gap:clamp(18px,2.4vw,28px)}
.mt{margin-top:clamp(22px,3.2vw,40px)}
.frame.wide img{aspect-ratio:21/9}
ul.plain{margin:0;padding-left:1.15em;display:grid;gap:.55em;max-width:64ch}
.card h3 + p{margin-top:-2px}
.t caption sup{font-family:var(--text)}
.band.k .note{box-shadow:4px 4px 0 var(--c4)}
.band.c2 .head p,.band.c2 .wrap > p{color:#fff}
.band.c2 .stats,.band.c2 .tool,.band.c2 .card{color:var(--ink)}
.foot .brand svg{border-radius:2px}
@media(prefers-reduced-motion:reduce){.fl.go{animation:none}.smap.draw .ship{stroke-dashoffset:0}.rv .lane span{transform:none}.ltag,.ticket,.board{transition:none}}

html{overflow-x:clip}

@media(max-width:700px){
  .maplegend{position:static;padding:10px 12px 12px}
  .pmap .city text{font-size:26px;stroke-width:7px}
  .pmap .city circle{r:11px}
  .pmap .pole text{display:none}
  .pmap .arc{stroke-width:5.5}
  .smap .city text{font-size:30px;stroke-width:7px}
  .smap .city circle{r:11px}
}
.band.c2 .tk-note,.phero.c2 .tk-note{color:#fff}
