:root{--ink:#111014;--muted:#64616b;--line:#e6e4eb;--purple:#6825eb;--purple-dark:#4d16bd;--lilac:#f3effc;--soft:#f5f4f7;--night:#090713;--serif:Iowan Old Style,Baskerville,"Times New Roman",serif;color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:#fff}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased;background:#fff}html{scroll-behavior:smooth;scroll-padding-top:24px}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #9c6bff;outline-offset:4px}
.page-width{width:min(1180px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;top:-100px;left:16px;z-index:99;padding:14px;background:#fff}.skip:focus{top:12px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wordmark{font-size:1.2rem;font-weight:450;letter-spacing:.19em;text-decoration:none}.site-header{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:26px;border-bottom:1px solid var(--line)}.site-header nav{display:flex;gap:30px;align-self:stretch}.site-header nav a{display:flex;align-items:center;font-size:.9375rem;text-decoration:none;border-bottom:2px solid transparent;padding:0 4px}.site-header nav a[aria-current]{border-color:var(--purple);color:var(--purple)}.account-link{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:99px;text-decoration:none;font-size:.875rem;font-weight:600}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.15em;color:var(--muted);line-height:1.5;margin:0 0 13px}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}h1 em,h2 em{color:var(--purple);font-weight:400}

/* Hero */
.flights-hero{padding:72px 0 38px;max-width:820px}.flights-hero h1{font-size:clamp(3.2rem,7vw,6rem);line-height:.94;letter-spacing:-.055em;margin-bottom:26px}.intro{color:var(--muted);font-size:1.12rem;line-height:1.65;max-width:600px;margin:0}

/* Search */
.search-mode{display:inline-grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}.search-mode button{min-width:148px;padding:10px 18px;border:0;border-radius:14px;background:transparent;text-align:left;transition:background .2s,box-shadow .2s}.search-mode button span,.search-mode button small{display:block}.search-mode button span{font-size:.9rem;font-weight:700}.search-mode button small{margin-top:2px;color:var(--muted);font-size:.7rem}.search-mode button[aria-pressed=true]{background:#fff;box-shadow:0 4px 16px rgba(26,17,40,.08)}.search-mode button[aria-pressed=true] span{color:var(--purple)}
.search-card{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) auto minmax(0,1.25fr) minmax(0,.9fr) minmax(0,1.8fr) auto;align-items:stretch;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:0 28px 70px rgba(26,17,40,.09);padding:10px}
.search-card.mode-both{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,.72fr) minmax(0,1.7fr) minmax(0,1.9fr) auto}
.field{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:14px 20px;border-radius:18px;transition:background .2s}.field:hover,.field:focus-within{background:var(--soft)}.field+.field,.swap+.field{border-left:1px solid var(--line)}.field:focus-within+.field,.field:hover+.field{border-color:transparent}
.field label,.field-label{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field input,.field select{width:100%;border:0;background:transparent;padding:0;font-size:1.08rem;font-weight:600;outline:none;min-height:30px;text-overflow:ellipsis}.field select{appearance:none;-webkit-appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2364616b' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right center;padding-right:20px}.field input::placeholder{color:#aaa6b2;font-weight:500}
.field input[type=date]{cursor:pointer}.field input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.field small{display:block;min-height:1.2em;margin-top:4px;color:var(--muted);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.multi-field{justify-content:flex-start}.selection-chips{display:flex;gap:6px;flex-wrap:wrap;align-content:center;min-height:30px}.selection-chips button{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 9px 0 11px;border:1px solid #d9d3e5;border-radius:99px;background:var(--lilac);color:var(--purple-dark);font-size:.72rem;font-weight:700;white-space:nowrap;transition:background .18s,border-color .18s,color .18s,opacity .18s}.selection-chips button i{font-style:normal;font-size:1rem;font-weight:400;line-height:1;opacity:.65}.selection-chips button:hover{border-color:var(--purple)}.selection-chips button[aria-pressed=false]{background:#fff;color:var(--muted);border-style:dashed;opacity:.62}.selection-chips button[aria-pressed=false] i{font-size:0}.selection-chips button[aria-pressed=false] i:after{content:"+";font-size:1rem}.multi-field small{margin-top:7px}
.swap{align-self:center;z-index:2;width:40px;height:40px;margin:0 -20px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:1rem;display:grid;place-items:center;transition:transform .3s,border-color .2s;box-shadow:0 4px 14px rgba(26,17,40,.06)}.swap:hover{border-color:var(--purple);color:var(--purple);transform:rotate(180deg)}.swap+.field{padding-left:32px}
.search-button{align-self:stretch;margin-left:8px;border:0;border-radius:18px;background:var(--purple);color:#fff;padding:0 30px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-weight:650;font-size:.98rem;min-height:64px;transition:background .2s}.search-button:hover{background:var(--purple-dark)}.search-button:disabled{cursor:wait;opacity:.75}
.airport-options{position:absolute;z-index:20;top:calc(100% + 12px);left:0;width:min(380px,90vw);list-style:none;margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px rgba(26,17,40,.16)}.airport-options li{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;cursor:pointer}.airport-options li[aria-selected=true]{background:var(--lilac)}.airport-options b{font-size:.85rem;letter-spacing:.06em;color:var(--purple)}.airport-options span{font-weight:600;font-size:.92rem;min-width:0}.airport-options small{display:block;color:var(--muted);font-weight:400;font-size:.76rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-message{min-height:1.4em;margin:14px 6px 0;color:#b3261e;font-size:.85rem}

/* Results */
.results{padding:26px 0 90px}.results:empty{padding:0 0 60px}
.results-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding-bottom:26px;scroll-margin-top:24px}.results-heading h2{font-size:clamp(2.4rem,4.6vw,3.8rem);letter-spacing:-.045em;line-height:1}.results-heading h2 span{color:#b8b3c2;font-family:Inter,-apple-system,sans-serif;font-size:.6em;vertical-align:.18em;margin:0 .1em}.results-heading>div>p:last-child{margin:12px 0 0;color:var(--muted)}
.request-details{flex-shrink:0;border:1px solid var(--line);border-radius:16px;font-size:.82rem;max-width:340px}.request-details summary{list-style:none;cursor:pointer;padding:12px 16px;font-weight:600;display:flex;align-items:center;gap:10px}.request-details summary::-webkit-details-marker{display:none}.request-details summary:before{content:"";width:8px;height:8px;border-radius:50%;background:#38a16b;box-shadow:0 0 0 4px #e6f5ed}.request-details summary:after{content:"+";margin-left:auto;color:var(--muted);font-size:1.1rem}.request-details[open] summary:after{content:"–"}.request-details dl{margin:0;padding:4px 16px 14px;display:grid;gap:8px}.request-details dl div{display:grid;grid-template-columns:92px 1fr;gap:10px}.request-details dt{color:var(--muted)}.request-details dd{margin:0;font-weight:550}
.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:var(--night);color:#fff;border-radius:22px;overflow:hidden;position:relative}.summary-strip:after{content:"";position:absolute;inset:auto -10% -140% auto;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(104,37,235,.55),transparent 65%);pointer-events:none}.summary-strip>div{padding:26px 30px;position:relative;z-index:1}.summary-strip>div+div{border-left:1px solid #2b2837}.summary-strip span{display:block;text-transform:uppercase;letter-spacing:.13em;color:#9d98a9;font-size:.66rem;font-weight:700;margin-bottom:12px}.summary-strip strong{font-family:var(--serif);font-weight:400;font-size:2.3rem;line-height:1}.summary-strip small{font-family:Inter,-apple-system,sans-serif;font-size:.8rem;color:#b9b4c6}
.cabin-filter{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0 18px}.cabin-filter button{min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:.86rem;font-weight:550;transition:all .2s}.cabin-filter button:hover{border-color:#aaa4b4}.cabin-filter button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.flight-list{display:grid;gap:16px}

/* Flight card */
.flight-card{border:1px solid var(--line);border-radius:24px;background:#fff;padding:26px 30px 8px;transition:box-shadow .25s,border-color .25s,transform .25s;animation:rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--delay,0ms)}.flight-card:hover{border-color:#d9d2e8;box-shadow:0 22px 54px rgba(26,17,40,.09);transform:translateY(-2px)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.flight-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.carrier{display:flex;align-items:center;gap:13px;min-width:0}.carrier>div{min-width:0}.carrier>div>strong,.carrier>div>span{display:block}.carrier strong{font-size:.95rem}.carrier>div>span{color:var(--muted);font-size:.78rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carrier-mark{width:42px;height:42px;flex-shrink:0;border-radius:13px;display:grid;place-items:center;background:var(--soft);color:var(--ink);font-weight:800;font-size:.8rem;letter-spacing:.04em}.carrier-VA{background:#d20b69;color:#fff}.carrier-NZ{background:#111;color:#fff}.carrier-QR{background:#5c0632;color:#fff}.carrier-EY{background:#bd8b13;color:#fff}.carrier-SQ{background:#1d3c78;color:#fff}.carrier-DL{background:#c01933;color:#fff}.carrier-UA{background:#0b3ba7;color:#fff}.carrier-AC{background:#e31837;color:#fff}.carrier-HA{background:#5a2d82;color:#fff}.carrier-VS{background:#9a0f36;color:#fff}.carrier-NH{background:#133b8c;color:#fff}
.stops{flex-shrink:0;padding:7px 11px;border-radius:99px;background:#fff4e5;color:#8a5a00;font-size:.72rem;font-weight:650}.stops.nonstop{background:#eaf7f0;color:#217a4e}
.route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;padding:26px 0 24px}.end strong{display:block;font-family:var(--serif);font-weight:400;font-size:2.7rem;letter-spacing:-.03em;line-height:1}.end sup{font-family:Inter,-apple-system,sans-serif;font-size:.8rem;color:var(--purple);font-weight:700;margin-left:3px;vertical-align:1.3em}.end b{display:inline-block;margin-top:10px;font-size:.82rem;letter-spacing:.1em}.end span{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.end.arrive{text-align:right}
.path{display:grid;gap:9px;text-align:center;color:var(--muted);font-size:.76rem}.path-duration{font-weight:650;color:var(--ink)}.path-line{position:relative;height:18px;display:flex;align-items:center;justify-content:space-evenly}.path-line:before{content:"";position:absolute;left:0;right:12px;top:50%;border-top:1.5px dashed #cdc6da}.path-line:after{content:"";position:absolute;left:-4px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;border:1.5px solid var(--purple);background:#fff}.path-line i{position:relative;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid #f0a52a}.path-line svg{position:absolute;right:-6px;top:50%;width:20px;height:20px;margin-top:-10px;fill:var(--purple);transform:rotate(90deg)}
.fares{list-style:none;margin:0;padding:18px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;border-top:1px solid var(--line)}
.fare{position:relative;display:grid;gap:3px;padding:14px 16px;border-radius:16px;background:var(--soft);overflow:hidden}.fare:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:#b7b1c3}.fare-cabin{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.fare strong{font-family:var(--serif);font-weight:400;font-size:1.65rem;line-height:1.15}.fare strong small{font-family:Inter,-apple-system,sans-serif;font-size:.74rem;color:var(--muted)}.fare-tax{font-size:.78rem;color:var(--muted)}.fare-seats{justify-self:start;margin-top:6px;padding:3px 8px;border-radius:99px;background:#fff;font-size:.68rem;font-weight:650;color:var(--muted)}.fare-seats.scarce{background:#fff1ee;color:#b3401e}
.fare-premium{background:#f1f6ff}.fare-premium:before{background:#3b73d9}.fare-business{background:var(--lilac)}.fare-business:before{background:var(--purple)}.fare-first{background:#16121f;color:#fff}.fare-first:before{background:#d9b25c}.fare-first .fare-cabin,.fare-first .fare-tax,.fare-first strong small{color:#bdb6cc}.fare-first .fare-seats{background:#2c2638;color:#e0dae9}
.flight-details{border-top:1px solid var(--line)}.flight-details summary{list-style:none;cursor:pointer;padding:14px 0;font-size:.82rem;font-weight:600;color:var(--purple);display:flex;align-items:center;gap:8px}.flight-details summary::-webkit-details-marker{display:none}.flight-details summary:after{content:"";width:7px;height:7px;border-right:1.6px solid;border-bottom:1.6px solid;transform:rotate(45deg) translateY(-2px);transition:transform .2s}.flight-details[open] summary:after{transform:rotate(225deg) translate(-2px,0)}
.cash-context{display:flex;align-items:baseline;gap:12px;margin:28px 0 16px;padding:0 2px;color:var(--muted);font-size:.88rem}.cash-context strong{color:var(--ink)}.cash-fare{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.cash-fare>div{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 10px}.cash-fare span,.cash-fare small{color:var(--muted);font-size:.74rem}.cash-fare strong{grid-row:2;font-family:var(--serif);font-size:2rem;font-weight:400}.cash-fare small{grid-row:2;align-self:end;padding-bottom:4px}.test-fare{padding:7px 10px;border-radius:99px;background:var(--lilac);color:var(--purple)!important;font-weight:700}
.segments{list-style:none;margin:0 0 18px;padding:0}.segment{display:grid;grid-template-columns:54px 14px 1fr;gap:14px;padding:6px 0}.segment-times{display:grid;gap:26px;font-size:.88rem;text-align:right}.segment-times span{color:var(--muted)}.segment-times sup{color:var(--purple);font-weight:700;font-size:.65rem}.segment-line{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:5px 0}.segment-line:before{content:"";position:absolute;top:10px;bottom:10px;border-left:1.5px solid #cdc6da}.segment-line i{position:relative;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--purple);background:#fff}.segment-body p{margin:0;font-size:.9rem;line-height:1.4}.segment-body b{letter-spacing:.05em}.segment-meta{color:var(--muted);font-size:.78rem!important;margin-top:18px!important}
.layover{margin:6px 0 6px 82px;padding:9px 14px;border-radius:12px;background:#fff8ec;color:#8a5a00;font-size:.78rem;font-weight:550}

/* States */
.loading-line{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.92rem;margin:4px 0 22px}.pulse{width:10px;height:10px;border-radius:50%;background:var(--purple);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(104,37,235,.4)}50%{box-shadow:0 0 0 9px rgba(104,37,235,0)}}
.skeleton{display:grid;gap:18px;padding:30px;animation:none}.skeleton:hover{transform:none;box-shadow:none}.skeleton i{height:16px;border-radius:8px;background:linear-gradient(90deg,var(--soft) 25%,#ebe8f0 50%,var(--soft) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton i:nth-child(1){width:34%}.skeleton i:nth-child(2){height:48px;border-radius:12px}.skeleton i:nth-child(3){width:58%}@keyframes shimmer{to{background-position:-200% 0}}
.notice,.empty-state{padding:40px;border-radius:24px;background:var(--lilac);margin-top:4px}.notice.error{background:#fbf6f4}.notice h3,.empty-state h3{font-size:2rem;letter-spacing:-.02em;margin-bottom:12px}.notice p,.empty-state p{color:var(--muted);line-height:1.6;max-width:620px;margin:0 0 22px}.empty-state{margin-top:22px}
.notice-action{display:inline-flex;align-items:center;gap:20px;min-height:50px;padding:0 24px;border:0;border-radius:99px;background:var(--purple);color:#fff;text-decoration:none;font-weight:650;font-size:.9rem}.notice-action:hover{background:var(--purple-dark)}
.nearby-dates{display:flex;gap:8px;flex-wrap:wrap}.nearby-dates button{min-height:44px;padding:0 18px;border:1px solid #d9cdf5;border-radius:99px;background:#fff;font-weight:600;font-size:.86rem}.nearby-dates button:hover{border-color:var(--purple);color:var(--purple)}
.results-note{margin:26px 0 0;color:var(--muted);font-size:.78rem;line-height:1.6;max-width:760px}
.combined-heading{padding-bottom:22px}.comparison-strip{margin-bottom:48px}.combined-results{display:grid;gap:64px}.result-group{min-width:0}.result-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.result-group-head .eyebrow{margin-bottom:8px}.result-group-head h3{font-size:clamp(2rem,3.4vw,3rem);letter-spacing:-.035em;line-height:1}.result-group-head>span{flex-shrink:0;color:var(--muted);font-size:.82rem}.result-group>.summary-strip{margin-bottom:24px}.result-group>.source-line{margin-bottom:18px}.provider-notice{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px 12px;padding:24px;border-radius:18px;background:#fbf6f4;color:var(--muted);font-size:.88rem}.provider-notice strong{color:var(--ink)}.provider-notice span:not(.pulse),.provider-notice a{grid-column:2}.provider-notice a{justify-self:start;color:var(--purple);font-weight:650;text-decoration:none}.provider-notice a:hover{text-decoration:underline;text-underline-offset:3px}.provider-notice.pending{background:var(--lilac)}.provider-notice.pending .pulse{grid-row:1/3}
footer{border-top:1px solid var(--line);min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted);font-size:.8rem;line-height:1.5}footer .wordmark{color:var(--ink)}footer p{margin:0}
[hidden]{display:none!important}

@media(max-width:1180px){.search-card,.search-card.mode-both{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);row-gap:6px}.search-card>.field:nth-of-type(3){border-left:0}.search-card>[data-points-field]{grid-column:1/3;border-left:0}.search-card>[data-cash-field]{grid-column:3/4;border-left:1px solid var(--line)}.search-button{grid-column:1/-1;margin:4px 0 0}}
@media(max-width:820px){.page-width{width:min(100% - 38px,720px)}.site-header{min-height:78px}.site-header nav{gap:20px}.site-header nav a:first-child{display:none}.results-heading{display:block}.request-details{margin-top:20px;max-width:none}.route{gap:16px}.end strong{font-size:2.2rem}}
@media(max-width:620px){.page-width{width:calc(100% - 32px)}.site-header{gap:12px}.wordmark{font-size:1rem}.site-header nav{gap:14px}.site-header nav a{font-size:.82rem}.site-header nav a:nth-child(n+4){display:none}.account-link{padding:0 14px;min-height:40px;font-size:.8rem}
  .flights-hero{padding:44px 0 26px}.flights-hero h1{font-size:3.1rem}.intro{font-size:1rem}
  .search-mode{display:grid}.search-mode button{min-width:0}.search-card{grid-template-columns:1fr;padding:8px;border-radius:22px}.search-card .field{border-left:0!important;padding:12px 16px}.search-card>.field+.field,.search-card>.swap+.field{border-top:1px solid var(--line);border-radius:0}.search-card>[data-points-field],.search-card>[data-cash-field]{grid-column:auto}.swap{position:absolute;right:22px;top:56px;margin:0;transform:rotate(90deg)}.swap:hover{transform:rotate(270deg)}.search-button{margin-top:6px;min-height:56px}.airport-options{width:100%}
  .summary-strip{grid-template-columns:1fr 1fr}.summary-strip>div{padding:20px}.summary-strip>div:nth-child(odd){border-left:0}.summary-strip>div:nth-child(n+3){border-top:1px solid #2b2837}.summary-strip strong{font-size:1.8rem}
  .flight-card{padding:20px 18px 4px;border-radius:20px}.stops{font-size:.66rem;padding:6px 9px}.route{grid-template-columns:auto 1fr auto;gap:10px;padding:22px 0 20px}.end strong{font-size:1.75rem}.path-date{display:none}.fares{grid-template-columns:1fr 1fr}.fare{padding:12px}.fare strong{font-size:1.35rem}
  .cash-context{display:grid;gap:4px}.cash-fare{align-items:flex-end}.cash-fare strong{font-size:1.7rem}.notice,.empty-state{padding:26px}.notice h3,.empty-state h3{font-size:1.6rem}.layover{margin-left:0}
  .comparison-strip{margin-bottom:38px}.combined-results{gap:48px}.result-group-head{align-items:flex-start}.result-group-head h3{font-size:2rem}
  footer{display:grid;grid-template-columns:1fr auto;padding:24px 0}footer p{grid-column:1/-1;grid-row:2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.flight-card{animation:none;transition:none}.flight-card:hover{transform:none}.swap,.swap:hover{transition:none}.skeleton i,.pulse{animation:none}}

/* Cache source and nearby dates */
.source-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:.84rem}.source-dot{width:8px;height:8px;border-radius:50%;background:#38a16b;box-shadow:0 0 0 4px #e6f5ed}.source-dot.saved{background:#b58a1b;box-shadow:0 0 0 4px #fbf1dc}.source-line button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:.8rem;font-weight:600;color:var(--ink)}.source-line button:hover{border-color:var(--purple);color:var(--purple)}
.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0 0 18px}.date-strip button{display:grid;gap:4px;justify-items:center;padding:12px 6px;border:1px solid var(--line);border-radius:16px;background:#fff;transition:border-color .2s,background .2s}.date-strip button:hover{border-color:#aaa4b4}.date-strip span{font-size:.72rem;color:var(--muted);white-space:nowrap}.date-strip strong{font-family:var(--serif);font-weight:400;font-size:1.15rem;white-space:nowrap}.date-strip strong.catalogue-state{font-family:Inter,-apple-system,sans-serif;font-size:.78rem;line-height:1.3;white-space:normal;text-align:center}.date-strip strong small{font-family:Inter,-apple-system,sans-serif;font-size:.66rem;color:var(--muted)}.date-strip button.low{background:#eaf7f0;border-color:#bfe3cf}.date-strip button.low strong{color:#217a4e}.date-strip button[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}.date-strip button[aria-current] span,.date-strip button[aria-current] small{color:#c9c4d3}.date-strip button[aria-current] strong{color:#fff}
.explore-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:var(--purple);font-weight:600;font-size:.95rem;text-decoration:none}.explore-link:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:620px){.date-strip{grid-template-columns:repeat(7,minmax(74px,1fr));overflow-x:auto;margin-inline:-16px;padding:2px 16px 6px;scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}}

/* Explore */
.explore-hero{padding-bottom:28px}
.explore-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.explore-filter button{min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:.86rem;font-weight:550}.explore-filter button:hover{border-color:#aaa4b4}.explore-filter button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.explore-routes{display:grid;gap:18px}
.route-card{border:1px solid var(--line);border-radius:24px;padding:28px 30px;background:#fff;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}
.route-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.route-top h2{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.035em;line-height:1.05}.route-top h2 span{color:#b8b3c2;font-family:Inter,-apple-system,sans-serif;font-size:.6em;vertical-align:.18em}.route-top p{margin:8px 0 0;color:var(--muted);font-size:.84rem}.route-count{flex-shrink:0;text-align:right}.route-count strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.8rem;color:var(--ink)}
.best-seats{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.best-seats .fare{padding:0}.best-seats a{display:grid;gap:3px;padding:14px 16px;text-decoration:none;color:inherit;border-radius:16px;transition:box-shadow .2s}.best-seats a:hover{box-shadow:inset 0 0 0 1.5px var(--purple)}
.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 14px;font-size:.74rem;color:var(--muted)}.cal-legend span{display:inline-flex;align-items:center;gap:6px}.cal-legend span:before{content:"";width:12px;height:12px;border-radius:4px;background:var(--soft)}.cal-legend .great:before{background:#d6f0e1}.cal-legend .good:before{background:var(--lilac)}.cal-legend .high:before{background:#f1eff4}.cal-legend .none:before{background:repeating-linear-gradient(135deg,#eeeaf2 0 3px,#fff 3px 6px)}.cal-legend .unknown:before{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.cal-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px 28px}
.cal-month h4{margin:0 0 8px;font-family:Inter,-apple-system,sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cal-week,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-week span{text-align:center;font-size:.64rem;color:#a39fad;padding-bottom:2px}
.cal-day{aspect-ratio:1/1.05;border-radius:9px;display:grid;align-content:center;justify-items:center;gap:1px;text-decoration:none;color:var(--ink);font-size:.72rem;min-width:0;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}.cal-day b{font-weight:600;font-size:.7rem}.cal-day small{font-size:.62rem;color:var(--muted);white-space:nowrap}
.cal-day.blank{box-shadow:none;background:none}.cal-day.past{box-shadow:none;background:none;color:#cfcbd6}
.cal-day.great{background:#d6f0e1;box-shadow:none}.cal-day.great small{color:#1f6e46;font-weight:700}.cal-day.good{background:var(--lilac);box-shadow:none}.cal-day.good small{color:var(--purple-dark);font-weight:600}.cal-day.high{background:#f1eff4;box-shadow:none}.cal-day.none{background:repeating-linear-gradient(135deg,#eeeaf2 0 3px,#fff 3px 6px);box-shadow:none;color:#a39fad}
a.cal-day:hover{outline:2px solid var(--purple);outline-offset:-1px}
.more-months{margin-top:18px;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:.84rem;font-weight:600}.more-months:hover{border-color:var(--purple);color:var(--purple)}
.route-empty{padding:22px;border-radius:18px;background:var(--lilac)}.route-empty p{margin:0 0 12px;color:var(--muted);line-height:1.6}.route-empty a{color:var(--purple);font-weight:600;text-decoration:none}
@media(max-width:620px){.route-card{padding:20px 18px;border-radius:20px}.route-top{display:block}.route-count{text-align:left;margin-top:12px}.route-count strong{display:inline;font-size:1.3rem;margin-right:6px}.best-seats{grid-template-columns:1fr 1fr}.cal-months{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.route-card{animation:none}}
.history-download{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:26px 0 0;padding:18px 20px;border:1px solid var(--line);border-radius:16px;font-size:.84rem;color:var(--muted)}.history-download a{color:var(--purple);font-weight:650;text-decoration:none}.history-download a:hover{text-decoration:underline;text-underline-offset:3px}
.refresh-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:-6px 0 20px;color:var(--muted);font-size:.82rem}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:99px;font-weight:650;font-size:.74rem;background:var(--soft);color:var(--ink)}.status-pill span{width:7px;height:7px;border-radius:50%;background:currentColor}.status-pill.ok{background:#eaf7f0;color:#217a4e}.status-pill.warn{background:#fff4e5;color:#8a5a00}.status-pill.bad{background:#fdecea;color:#b3261e}.status-pill.wait{background:var(--lilac);color:var(--purple-dark)}
.cal-day.aged{opacity:.5}.cal-day.aged:hover{opacity:1}.cal-legend .aged:before{background:#d6f0e1;opacity:.5}
.carrier-QF{background:#e40000;color:#fff}.carrier-JL{background:#cc0000;color:#fff}.carrier-EK{background:#c60c30;color:#fff}.carrier-BA{background:#075aaa;color:#fff}.carrier-CX{background:#006564;color:#fff}.carrier-AA{background:#0078d2;color:#fff}.carrier-JQ{background:#ff5115;color:#fff}.carrier-FJ{background:#0e4b6b;color:#fff}.carrier-AY{background:#0b1560;color:#fff}
