:root{--bg:#eef3fa;--surface:#fff;--surface-2:#f6f9fd;--ink:#0d2033;--ink-2:#54687f;--ink-3:#8b9bb0;--brand:#1552d6;--brand-ink:#fff;--brand-soft:#e4ecfd;--accent:#0fa47f;--warn:#c86a00;--line:#dbe4f0;--radius:16px;--radius-sm:10px;--pad:20px;--shadow:0 1px 2px rgba(13,32,51,.05),0 8px 24px rgba(13,32,51,.08);--shadow-sm:0 1px 3px rgba(13,32,51,.07);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;--font-display:var(--font);--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--h1-size:30px;--h1-weight:750;--h1-spacing:-0.022em;--h1-lh:1.12;--btn-radius:12px;--border-w:1px;--seat-radius:8px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1520;--surface:#16202e;--surface-2:#1b2736;--ink:#f2f6fb;--ink-2:#a7b6c9;--ink-3:#7286a0;--brand:#5b8dfa;--brand-ink:#08111d;--brand-soft:#1c2c4a;--line:#26344a;--warn:#f0a640;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.45);--shadow-sm:0 1px 3px rgba(0,0,0,.35);color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}.app,body{background:var(--bg);min-height:100svh}.app{width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column}.viewport{flex:1 1}.screen{padding:0 var(--pad) 40px;animation:fade .22s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}h1{font-family:var(--font-display);font-size:var(--h1-size);font-weight:var(--h1-weight);letter-spacing:var(--h1-spacing);line-height:var(--h1-lh);margin:0 0 10px;color:var(--ink)}h2{font-size:15px;font-weight:700;margin:0 0 8px;letter-spacing:-.01em}p{margin:0 0 14px;font-size:14.5px}.lead,p{line-height:1.55;color:var(--ink-2)}.lead{font-size:15.5px}.eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--brand);margin:0 0 10px}.small{font-size:12px;line-height:1.5;color:var(--ink-3)}a{color:var(--brand)}.btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px 16px;border-radius:var(--btn-radius);border:var(--border-w) solid transparent;font-family:var(--font);font-size:15px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;transition:transform .08s ease,filter .15s ease;letter-spacing:-.005em}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent;font-weight:600;font-size:13.5px;padding:11px}.btn-row{display:flex;flex-direction:column;gap:10px}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.choice{width:100%;text-align:left;background:var(--surface);border:var(--border-w) solid var(--line);border-radius:var(--radius);padding:15px 16px;cursor:pointer;display:flex;gap:13px;align-items:center;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .08s;font-family:var(--font);margin-bottom:10px;text-decoration:none;color:var(--ink)}.choice:hover{border-color:var(--brand)}.choice:active{transform:scale(.99)}.choice .ic{width:42px;height:42px;flex:none;border-radius:var(--seat-radius);background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;font-family:var(--font-mono)}.choice .t{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px;letter-spacing:-.01em}.choice .s{display:block;font-size:12.5px;color:var(--ink-3);line-height:1.4}.choice .arw{margin-left:auto;color:var(--ink-3);font-size:17px}.card{background:var(--surface);border:var(--border-w) solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);margin-bottom:14px}.card-flat{background:var(--surface-2);box-shadow:none}.steps{list-style:none;padding:0;margin:0 0 18px}.steps li{display:flex;gap:13px;padding:11px 0;border-bottom:1px solid var(--line)}.steps li:last-child{border-bottom:0}.steps .n{width:24px;height:24px;flex:none;border-radius:99px;background:var(--brand-soft);color:var(--brand);font:800 12px var(--font-mono);display:flex;align-items:center;justify-content:center}.steps .st{display:block;font-size:14px;font-weight:700;margin-bottom:2px}.steps .ss{display:block;font-size:12.5px;color:var(--ink-3);line-height:1.45}.trust{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;list-style:none}.pill{font-size:11px;padding:6px 10px;border-radius:99px;background:var(--surface);border:1px solid var(--line)}.f,.pill{font-weight:700;color:var(--ink-2)}.f{display:block;font-size:12px;margin:0 0 6px;letter-spacing:.01em}.input{width:100%;padding:14px;font-family:var(--font-mono);font-size:16px;font-weight:600;border:var(--border-w) solid var(--line);border-radius:var(--btn-radius);background:var(--surface);color:var(--ink);outline:none;text-transform:uppercase}.input::placeholder{color:var(--ink-3);font-weight:400;text-transform:none}.input:focus{border-color:var(--brand)}.input[aria-invalid=true]{border-color:var(--warn)}.input-text{font-family:var(--font);text-transform:none;font-weight:500}.field{margin-bottom:14px}.two{display:flex;gap:10px}.two>*{flex:1 1}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{flex:1 1;min-width:88px;padding:13px 8px;border:var(--border-w) solid var(--line);border-radius:var(--btn-radius);background:var(--surface);color:var(--ink-2);font:700 13px var(--font);cursor:pointer;text-align:center;transition:all .12s}.chip.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.hint{font-size:12px;color:var(--ink-3);line-height:1.45}.error,.hint{margin-top:7px}.error{font-size:12.5px;color:var(--warn);font-weight:700}.humancheck.on{margin:2px 0 12px}.humancheck .hint{margin:0 0 12px}.detect{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:700;margin-top:9px}.pass{background:var(--surface);border:var(--border-w) solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:16px;position:relative}.pass-top{padding:16px 16px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.pass-route{font:800 19px var(--font-mono);letter-spacing:.02em;color:var(--ink)}.pass-meta{font-size:11.5px;color:var(--ink-3);margin-top:3px;font-weight:600}.pass-carrier{font:800 11px var(--font-mono);padding:5px 8px;border-radius:5px;background:var(--brand-soft);color:var(--brand);letter-spacing:.05em}.perf{height:0;border-top:2px dashed var(--line);position:relative;margin:0 14px}.perf:after,.perf:before{content:"";position:absolute;top:-11px;width:20px;height:20px;border-radius:99px;background:var(--bg)}.perf:before{left:-24px}.perf:after{right:-24px}.swap{display:flex;align-items:stretch;padding:16px}.swap .seatbox{flex:1 1;text-align:center}.swap .lab{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}.swap .num{font:800 34px/1 var(--font-mono);color:var(--ink);letter-spacing:-.02em}.swap .typ{font-size:11.5px;font-weight:700;color:var(--ink-2);margin-top:5px}.swap .mid{display:flex;align-items:center;justify-content:center;width:44px;flex:none;font-size:22px;font-weight:700}.swap .mid,.theirs .num{color:var(--brand)}.callout{border-left:3px solid var(--brand);background:var(--surface-2);padding:13px 14px;border-radius:var(--radius-sm);margin-bottom:14px}.callout .ct{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:4px}.callout .cs{font-size:13px;color:var(--ink-2);line-height:1.5}.callout.wait{border-left-color:var(--ink-3)}.yours{margin-bottom:18px}.yours .f{margin-bottom:6px}.yours .rows{margin-bottom:0}.yours a.row{color:inherit;text-decoration:none}.yours a.row:focus-visible,.yours a.row:hover{background:var(--surface-2)}.yours .row .v{display:flex;flex-direction:column;gap:3px;flex:1 1;min-width:0}.yours .row .state{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--brand)}.yours .row .arw{margin-left:auto;color:var(--ink-3);font-size:18px;line-height:1}.gate-swatch{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:132px;border:0;border-radius:var(--radius-sm);padding:16px;cursor:pointer;font-family:var(--font);-webkit-tap-highlight-color:transparent}.gate-swatch .gate-code{font-family:var(--font-mono);font-size:56px;font-weight:800;letter-spacing:.12em;line-height:1.1;margin:4px 0}.gate-swatch .gate-hint{font-size:12px;opacity:.8}.gate-swatch.big{position:fixed;inset:0;z-index:1000;border-radius:0;min-height:100vh;min-height:100dvh}.gate-swatch.big .gate-code{font-size:min(38vw,200px);letter-spacing:.1em}.gate-swatch.big .gate-hint{font-size:15px;margin-top:24px}.banner{border-radius:var(--radius);padding:15px;margin-bottom:14px;text-align:center;border:var(--border-w) solid var(--line);background:var(--surface)}.banner.ok{background:var(--brand-soft);border-color:transparent}.banner .bt{font-size:17px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}.banner .bs{font-size:13px;color:var(--ink-2);margin-top:5px;line-height:1.5}.pool{display:flex;align-items:center;gap:10px;margin-bottom:14px}.pool .bar{flex:1 1;height:7px;border-radius:99px;background:var(--line);overflow:hidden}.pool .fill{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .8s ease}.pool .cnt{font:800 12px var(--font-mono);color:var(--ink-2);white-space:nowrap}.searching{text-align:center;padding:44px 0 30px}.radar{width:96px;height:96px;margin:0 auto 22px;border-radius:99px;position:relative;border:2px solid var(--line);display:flex;align-items:center;justify-content:center}.radar:after{content:"";position:absolute;inset:-2px;border-radius:99px;border:2px solid transparent;border-top:2px solid var(--brand);animation:spin 1.05s linear infinite}.radar span{font:800 13px var(--font-mono);color:var(--brand)}@keyframes spin{to{transform:rotate(1turn)}}.rows{border:var(--border-w) solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:14px;background:var(--surface)}.row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);font-size:13.5px}.row:last-child{border-bottom:0}.row .k{font:700 13px var(--font-mono);color:var(--ink);width:56px;flex:none}.row .v{color:var(--ink-2);font-size:12.5px;line-height:1.4}.row .tag{margin-left:auto;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}.toggle{display:flex;align-items:center;gap:12px;padding:13px 0;width:100%;background:none;border:0;border-top:1px solid var(--line);font-family:var(--font);color:var(--ink);text-align:left;cursor:pointer}.toggle:first-child{border-top:0}.toggle .tt{display:block;font-size:13.5px;font-weight:700}.toggle .ts{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;font-weight:400}.toggle .txt{flex:1 1}.sw{width:44px;height:26px;background:var(--line);position:relative;flex:none;transition:background .18s}.sw,.sw:after{border-radius:99px}.sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;transition:transform .18s;box-shadow:0 1px 3px rgba(0,0,0,.25)}.sw.on{background:var(--brand)}.sw.on:after{transform:translateX(18px)}.nav{gap:10px;padding:14px var(--pad) 8px;flex:none}.back,.nav{display:flex;align-items:center}.back{background:none;border:0;font:700 13.5px var(--font);color:var(--ink-2);cursor:pointer;padding:6px 4px;gap:6px}.back,.brand{text-decoration:none}.brand{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:850;font-size:15.5px;letter-spacing:-.02em;color:var(--ink);margin-left:auto;margin-right:auto;padding-right:34px}.brand .mark{width:24px;height:24px;flex:none;border-radius:6px}.brand .dot{color:var(--brand)}.langpick{position:absolute;right:var(--pad);z-index:20}.langpick>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:3px;padding:6px 2px 6px 6px;font:700 11.5px var(--font);color:var(--ink-3);letter-spacing:.06em;border-radius:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.langpick>summary::-webkit-details-marker{display:none}.langpick>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.langpick .caret{font-size:9px;transition:transform .15s}.langpick[open] .caret{transform:rotate(180deg)}.langpick-menu{position:absolute;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:2px;gap:2px;width:min(300px,calc(100vw - 2 * var(--pad)));max-height:min(70vh,460px);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.langpick-menu a{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none}.langpick-menu a:focus-visible,.langpick-menu a:hover{background:var(--brand-soft)}.langpick-menu a[aria-current]{color:var(--brand);background:var(--brand-soft)}.langpick-menu .code{font:700 10.5px var(--font);letter-spacing:.06em;color:var(--ink-3);min-width:18px}.navwrap{position:relative;display:flex;align-items:center}.foot{border-top:1px solid var(--line);margin-top:22px;padding-top:14px}.foot a{font-size:11.5px;text-decoration:none;margin-right:12px;font-weight:600}.foot a,.foot p{color:var(--ink-3)}.foot p{font-size:11px;margin-top:9px}.divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--ink-3);font-size:11.5px;font-weight:700}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.spacer{height:8px}.hero-vis{gap:6px;margin:4px 0 18px;padding:16px;background:var(--surface);border-radius:var(--radius);border:var(--border-w) solid var(--line);box-shadow:var(--shadow-sm)}.hero-vis,.seat{display:flex;justify-content:center}.seat{width:38px;height:42px;border-radius:var(--seat-radius) var(--seat-radius) 4px 4px;background:var(--surface-2);border:var(--border-w) solid var(--line);align-items:center;font:700 12px var(--font-mono);color:var(--ink-3);position:relative}.seat.you{background:var(--brand);color:var(--brand-ink)}.seat.target,.seat.you{border-color:var(--brand)}.seat.target{color:var(--brand);border-style:dashed}.seat.partner{background:var(--brand-soft);border-color:var(--brand-soft);color:var(--brand)}.swapmap{position:relative;display:grid;grid-template-columns:20px repeat(3,38px) 18px;grid-template-rows:14px 42px 26px 42px;grid-gap:6px;gap:6px}.swapmap .lbl{display:flex;align-items:center;justify-content:center;font:700 10.5px var(--font-mono);color:var(--ink-3)}.swapmap .skip{grid-column:span 3}.swapmap .seat{font-size:11px}.aisle{width:14px}.swapmap .aisle{width:auto;grid-row:span 3;background:var(--bg);border-radius:4px}.swaparrow{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.swaparrow .line{fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round}.swaparrow .head{fill:var(--brand)}.caption{text-align:center;font-size:11.5px;color:var(--ink-3);margin:-12px 0 18px}.copybox{display:flex;align-items:center;gap:8px;padding:11px 12px;background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius-sm);font:600 12px var(--font-mono);color:var(--ink-2);margin-bottom:12px;overflow:hidden;white-space:nowrap}.copybox span{overflow:hidden;text-overflow:ellipsis}.copybox button{margin-left:auto;border:0;background:var(--brand);color:var(--brand-ink);font:700 11px var(--font);padding:6px 10px;border-radius:5px;cursor:pointer;flex:none}.warnbox{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--warn);padding:11px 13px;border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-bottom:14px}.route-opt{display:flex;align-items:center;gap:10px;padding:12px 13px;border:var(--border-w) solid var(--line);border-radius:var(--btn-radius);margin-bottom:8px;cursor:pointer;background:var(--surface);font-size:13.5px;font-weight:700;width:100%;color:var(--ink);font-family:var(--font);text-align:left}.route-opt.on{border-color:var(--brand);background:var(--brand-soft)}.route-opt .rc{font:700 11px var(--font-mono);color:var(--ink-3);margin-left:auto}.prose{padding:8px var(--pad) 48px}.prose h1{font-size:24px;margin-bottom:16px}.prose h2{font-size:16px;margin:26px 0 8px}.prose li,.prose p{font-size:14px;line-height:1.6;color:var(--ink-2)}.prose ul{padding-left:20px}.prose address{font-style:normal;font-size:14px;line-height:1.7;color:var(--ink-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}