/* Departure hall: a flat, matte Solari board. The retro lives in the motion, not in glossy flaps (docs/design/travel.md). */
@font-face{font-family:"Fred Flap";src:url("./fonts/barlow-semi-condensed-500.woff2") format("woff2");font-weight:500;font-display:swap}
[data-module="travel"] .tv{--film:#efe9dc;--dim:#857e72;--faint:#4e4a43;--line:#ffffff12;--flap:#1f1c19;--blank:#161412;--night:#100e0c;--yellow:#f2c318;--mono:var(--font-mono);--face:"Fred Flap","Barlow Semi Condensed","DIN Condensed","Arial Narrow",sans-serif;--ease:cubic-bezier(.22,.75,.2,1);position:relative;max-width:1400px;margin:10px auto 0;padding-bottom:60px;color:var(--film);-webkit-font-smoothing:antialiased}
[data-module="travel"] .tv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Flaps: one matte colour, a 1px split, 2px between cells. */
[data-module="travel"] .tv-w{display:inline-flex;gap:2px;vertical-align:top}
[data-module="travel"] .tv-xl{--cw:clamp(26px,3.2vw,50px);--ch:calc(var(--cw) * 1.68)}
[data-module="travel"] .tv-l{--cw:clamp(22px,2.5vw,40px);--ch:calc(var(--cw) * 1.65)}
[data-module="travel"] .tv-m{--cw:clamp(22px,1.8vw,28px);--ch:calc(var(--cw) * 1.64)}
[data-module="travel"] .tv-f{position:relative;width:var(--cw);height:var(--ch);perspective:calc(var(--ch) * 5);flex:none}
[data-module="travel"] .tv-h{position:absolute;left:0;right:0;height:calc(50% - .5px);overflow:hidden;background:var(--flap);backface-visibility:hidden;transition:background-color .2s}
[data-module="travel"] .tv-h.is-blank{background:var(--blank)}
[data-module="travel"] .tv-t{top:0;transform-origin:50% calc(100% + .5px)}
[data-module="travel"] .tv-b{bottom:0;transform-origin:50% -.5px}
[data-module="travel"] .tv-leaf{z-index:1}
[data-module="travel"] .tv-h i{display:block;height:var(--ch);font:500 calc(var(--ch) * .83)/var(--ch) var(--face);font-style:normal;text-align:center;color:var(--film)}
[data-module="travel"] .tv-b i{margin-top:calc(var(--ch) / -2 - .5px)}

/* Title, the ARR/DEP switch, the clock. */
[data-module="travel"] .tv-top{display:grid;grid-template-columns:auto auto 1fr auto;grid-template-areas:"title switch . clock" "meta meta . place";align-items:center;column-gap:34px;row-gap:16px;padding-bottom:26px;border-bottom:1px solid var(--line)}
[data-module="travel"] .tv-title{grid-area:title;cursor:pointer}
[data-module="travel"] .tv-clock{grid-area:clock;justify-self:end;align-self:end}
[data-module="travel"] .tv-meta,[data-module="travel"] .tv-place{margin:0;font:500 12px var(--mono);letter-spacing:.28em;color:var(--dim)}
[data-module="travel"] .tv-meta{grid-area:meta}[data-module="travel"] .tv-place{grid-area:place;text-align:right}
[data-module="travel"] .tv-meta b{color:var(--film);font-weight:500}
[data-module="travel"] .tv-switch{grid-area:switch;display:grid;gap:12px;padding:8px 10px;margin:-8px -10px;background:none;border:0;color:var(--dim);font:500 11px var(--mono);letter-spacing:.24em;cursor:pointer;min-height:44px}
[data-module="travel"] .tv-switch span{display:flex;align-items:center;gap:10px;transition:color .25s}
[data-module="travel"] .tv-switch i{width:7px;height:7px;border-radius:50%;background:#34312c;transition:background .25s,box-shadow .25s}
[data-module="travel"] .tv[data-mode="arr"] [data-mode="arr"],[data-module="travel"] .tv[data-mode="dep"] [data-mode="dep"]{color:var(--film)}
[data-module="travel"] .tv[data-mode="arr"] [data-mode="arr"] i,[data-module="travel"] .tv[data-mode="dep"] [data-mode="dep"] i{background:var(--film);box-shadow:0 0 8px #efe9dc66}
[data-module="travel"] .tv-switch:hover span{color:var(--film)}

/* Rows. */
[data-module="travel"] .tv-head,[data-module="travel"] .tv-row{display:grid;grid-template-columns:190px auto 1fr 64px 76px 56px 170px;grid-template-areas:"info dest . pax days mark status";column-gap:26px;align-items:center}
[data-module="travel"] .tv-head{padding:18px 0 4px;font:500 10px var(--mono);letter-spacing:.3em;color:var(--faint)}
[data-module="travel"] .tv-head span:nth-child(2){grid-area:dest}[data-module="travel"] .tv-head span:nth-child(3){grid-area:pax;text-align:right}[data-module="travel"] .tv-head span:nth-child(4){grid-area:days;text-align:right}[data-module="travel"] .tv-head span:nth-child(5){grid-area:mark;text-align:center}[data-module="travel"] .tv-head span:nth-child(6){grid-area:status;text-align:right}
[data-module="travel"] .tv-rows{list-style:none;margin:0;padding:0}
[data-module="travel"] .tv-item{border-bottom:1px solid var(--line);transition:opacity .35s}
[data-module="travel"] .tv-row{width:100%;padding:16px 0;background:none;border:0;color:inherit;text-align:left;cursor:pointer;font:inherit}
[data-module="travel"] .tv-info{grid-area:info;font:500 12px/1.9 var(--mono);letter-spacing:.2em;color:var(--dim)}
[data-module="travel"] .tv-info b{display:block;color:var(--film);font-weight:500}
[data-module="travel"] .tv-dest{grid-area:dest}
[data-module="travel"] .tv-days{grid-area:days;text-align:right;font:500 12px var(--mono);letter-spacing:.2em;color:var(--dim)}
[data-module="travel"] .tv-days b{font-size:15px;font-weight:500;color:var(--film)}
[data-module="travel"] .tv-status{grid-area:status;display:flex;align-items:center;justify-content:flex-end;gap:12px;font:500 12px var(--mono);letter-spacing:.3em;color:var(--dim)}
[data-module="travel"] .tv-status i{width:7px;height:7px;border-radius:50%;background:#48443d}
[data-module="travel"] .tv-row.is-live .tv-status{color:var(--yellow)}
[data-module="travel"] .tv-row.is-live .tv-status i{background:var(--yellow);box-shadow:0 0 10px #f2c31866}
[data-module="travel"] .tv-info,[data-module="travel"] .tv-days,[data-module="travel"] .tv-status{animation:tv-in .5s var(--in,0ms) both}
@keyframes tv-in{from{opacity:0}}
[data-module="travel"] .tv-row:hover .tv-info{color:var(--film)}
[data-module="travel"] .tv.is-open .tv-item:not(.is-sel){opacity:.28}
[data-module="travel"] .tv.is-open .tv-item:not(.is-sel):hover{opacity:.6}
[data-module="travel"] .tv-empty{padding:16px 0 16px 222px}
[data-module="travel"] .tv-foot{margin:36px 0 0;font:500 11px var(--mono);letter-spacing:.32em;color:var(--faint)}

/* The boarding pass: the only warm paper in the dark hall, and the page's one brick-red touch (✈). */
[data-module="travel"] .tv-print{overflow:hidden}
[data-module="travel"] .tv-slot{height:3px;margin-left:222px;background:#050403;border-radius:2px;box-shadow:0 1px #ffffff10}
[data-module="travel"] .tv-pass{position:relative;display:grid;grid-template-columns:230px 1fr 170px;min-height:230px;margin:0 20px 24px 238px;background:linear-gradient(170deg,#f6f2e8,#ebe7da);color:#3f463e;box-shadow:0 18px 30px #0008,0 2px 3px #0006}
[data-module="travel"] .tv-photo{position:relative;overflow:hidden;background:#2c312d}
[data-module="travel"] .tv-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
[data-module="travel"] .tv-sky{position:absolute;inset:0;display:grid;place-items:end start;padding:14px 16px;background:linear-gradient(180deg,var(--a) 0%,var(--b) 52%,var(--c) 53%,var(--c) 100%)}
[data-module="travel"] .tv-sky b{font:500 64px/1 var(--face);letter-spacing:.04em;color:#ffffff1f}
[data-module="travel"] .tv-main{display:flex;flex-direction:column;gap:12px;padding:24px 30px;min-width:0}
[data-module="travel"] .tv-air{display:flex;justify-content:space-between;gap:12px;font:500 10px var(--mono);letter-spacing:.3em;color:#8e978c}
[data-module="travel"] .tv-route{font:500 34px/1 var(--face);letter-spacing:.06em;color:#2e342d}
[data-module="travel"] .tv-route span{margin:0 16px;font-size:24px;vertical-align:4px;color:var(--accent,#b34934)}
[data-module="travel"] .tv-to{margin:-6px 0 0;font:500 10px var(--mono);letter-spacing:.3em;color:#8e978c}
[data-module="travel"] .tv-fields{display:flex;flex-wrap:wrap;gap:12px 34px;font:500 9px var(--mono);letter-spacing:.24em;color:#8e978c}
[data-module="travel"] .tv-fields b{display:block;margin-top:5px;font-size:13px;font-weight:500;letter-spacing:.12em;color:#3f463e}
[data-module="travel"] .tv-line{margin:auto 0 0;padding-top:6px;font:300 16px/1.6 var(--font-literary);color:#4b5549}
[data-module="travel"] .tv-stub{display:flex;flex-direction:column;gap:8px;padding:24px 22px;border-left:1.5px dashed #c9c6b8;font:500 9px var(--mono);letter-spacing:.24em;color:#8e978c}
[data-module="travel"] .tv-stub b{font:500 26px/1 var(--face);letter-spacing:.06em;color:#2e342d;margin-bottom:6px}
[data-module="travel"] .tv-bars{display:block;margin-top:auto;height:44px;background:repeating-linear-gradient(90deg,#3f463e 0 2px,transparent 2px 4px,#3f463e 4px 5px,transparent 5px 9px,#3f463e 9px 12px,transparent 12px 14px)}


/* The stats strip: four readouts on flaps between the title and the table. */
[data-module="travel"] .tv-band{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
[data-module="travel"] .tv-cell{display:flex;flex-direction:column;gap:10px;padding:18px 0 20px 24px;border-left:1px solid var(--line)}
[data-module="travel"] .tv-cell:first-child{padding-left:0;border-left:0}
[data-module="travel"] .tv-cell span{font:500 10px var(--font-mono);letter-spacing:.3em;color:var(--faint)}
[data-module="travel"] .tv-pax{grid-area:pax;text-align:right;font:500 12px var(--font-mono);letter-spacing:.2em;color:var(--dim)}
[data-module="travel"] .tv-pax b{font-size:15px;font-weight:500;color:var(--film)}
[data-module="travel"] .tv-mark{grid-area:mark;text-align:center}
[data-module="travel"] .tv-mark i{font:600 9px var(--font-mono);font-style:normal;letter-spacing:.2em;padding:3px 5px 2px 7px;border:1px solid #efe9dc66;border-radius:2px;color:var(--film)}
[data-module="travel"] .tv-info,[data-module="travel"] .tv-pax,[data-module="travel"] .tv-mark{animation:tv-in .5s var(--in,0ms) both}
@media (max-width:900px){
  [data-module="travel"] .tv-head,[data-module="travel"] .tv-row{grid-template-columns:150px auto 1fr 140px;grid-template-areas:"info dest . status";column-gap:20px}
  [data-module="travel"] :is(.tv-days,.tv-pax,.tv-mark),[data-module="travel"] .tv-head span:is(:nth-child(3),:nth-child(4),:nth-child(5)){display:none}
  [data-module="travel"] .tv-slot,[data-module="travel"] .tv-empty{margin-left:0;padding-left:0}
  [data-module="travel"] .tv-pass{margin:0 0 22px 16px}
}
@media (max-width:700px){
  [data-module="travel"] .tv{margin-top:0}
  [data-module="travel"] .tv-top{grid-template-columns:1fr auto;grid-template-areas:"title title" "switch clock" "meta meta";column-gap:14px;row-gap:14px}
  [data-module="travel"] .tv-place{display:none}
  [data-module="travel"] .tv-switch{display:flex;gap:18px}
  [data-module="travel"] .tv-meta,[data-module="travel"] .tv-place{font-size:10px;letter-spacing:.2em}
  [data-module="travel"] .tv-head{display:none}
  [data-module="travel"] .tv-band{display:none}
  [data-module="travel"] .tv-row{grid-template-columns:1fr auto;grid-template-areas:"info status" "dest dest";row-gap:10px;padding:14px 0}
  [data-module="travel"] .tv-info{display:flex;gap:14px;font-size:10px;line-height:1.4}
  [data-module="travel"] .tv-status{font-size:10px;letter-spacing:.2em;gap:8px}
  [data-module="travel"] .tv-m{--cw:calc((min(100vw, 700px) - 44px - 22px) / 12)}
  [data-module="travel"] .tv-xl{--cw:calc((min(100vw, 700px) - 44px - 18px) / 10)}
  [data-module="travel"] .tv-l{--cw:22px}
  [data-module="travel"] .tv-pass{grid-template-columns:1fr;margin:0 0 20px}
  [data-module="travel"] .tv-photo{height:150px}
  [data-module="travel"] .tv-main{padding:20px 20px 16px}
  [data-module="travel"] .tv-route{font-size:30px}
  [data-module="travel"] .tv-stub{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:6px 12px;border-left:0;border-top:1.5px dashed #c9c6b8;padding:14px 20px 18px}
  [data-module="travel"] .tv-stub b{font-size:20px;margin:0 8px 0 0}
  [data-module="travel"] .tv-bars{flex-basis:100%;height:28px;margin-top:6px}
}
@media (prefers-reduced-motion:reduce){[data-module="travel"] .tv-info,[data-module="travel"] .tv-days,[data-module="travel"] .tv-status{animation:none}}
[data-module="travel"] .tv-log{align-self:flex-start;margin-top:4px;padding-bottom:2px;border-bottom:1px solid #c9c6b8;font:500 10px var(--font-mono);letter-spacing:.24em;color:#3f463e;text-decoration:none;transition:border-color .2s}
[data-module="travel"] .tv-log:hover{border-color:#3f463e}
