.r8{--font-mono:var(--font-jetbrains,ui-monospace,"JetBrains Mono","SFMono-Regular",Menlo,monospace);--radius-md:0.625rem;--radius-pill:9999px;--radius-2xl:1rem;--r8-ease:cubic-bezier(0.4,0,0.2,1)}.r8 .swap-comparison{margin:32px 0 0}.r8 .swap-hotels{grid-template-columns:1fr auto 1fr;gap:24px;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent)}.r8 .sw-hotel,.r8 .swap-hotels{display:grid;align-items:stretch}.r8 .sw-hotel{grid-template-columns:120px 1fr;gap:16px;padding:14px;border:1px solid color-mix(in srgb,hsl(var(--border)) 90%,transparent);border-radius:var(--radius-md);background:hsl(var(--card));min-width:0}.r8 .sw-hotel.preferred{border-color:color-mix(in srgb,hsl(var(--accent)) 55%,hsl(var(--border)));background:color-mix(in srgb,hsl(var(--accent)) 5%,hsl(var(--card)))}.r8 .sw-hotel .thumb{aspect-ratio:1;border-radius:var(--radius);background-size:cover;background-position:50%;width:100%}.r8 .sw-hotel .info{display:flex;flex-direction:column;gap:2px;justify-content:center;min-width:0}.r8 .sw-hotel .kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--muted-foreground));font-weight:600;margin:0}.r8 .sw-hotel.preferred .kicker{color:hsl(var(--accent))}.r8 .sw-hotel h4{font-family:var(--font-heading);font-weight:700;font-size:18px;letter-spacing:-.015em;margin:4px 0;color:hsl(var(--foreground));line-height:1.15;text-wrap:pretty}.r8 .sw-hotel .meta{font-size:12.5px;color:hsl(var(--muted-foreground));margin:0 0 8px;line-height:1.4}.r8 .sw-hotel .price{font-family:var(--font-heading);font-weight:700;font-size:18px;color:hsl(var(--foreground));letter-spacing:-.01em}.r8 .sw-hotel .price small{font-family:var(--font-body);font-weight:400;font-size:13px;color:hsl(var(--muted-foreground));letter-spacing:0;margin-left:2px}.r8 .sw-anchor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:0 4px;min-width:78px}.r8 .sw-anchor .line{flex:1;width:1px;min-height:28px;background:linear-gradient(to bottom,transparent,color-mix(in srgb,hsl(var(--accent)) 50%,transparent),transparent)}.r8 .sw-anchor .amount{font-family:var(--font-heading);font-weight:700;font-size:24px;color:hsl(var(--accent));letter-spacing:-.02em;line-height:1}.r8 .sw-anchor .label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--accent));font-weight:600;white-space:nowrap}.r8 .beats-list{display:flex;flex-direction:column}.r8 .beats-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:hsl(var(--accent));font-weight:600;margin:0 0 6px}.r8 .beats-headline{font-family:var(--font-heading);font-weight:700;font-size:clamp(24px,2.8vw,32px);letter-spacing:-.02em;line-height:1.15;color:hsl(var(--foreground));margin:0 0 10px;text-wrap:pretty;max-width:28ch}.r8 .beats-headline em{font-style:italic;font-weight:400}.r8 .beats-sub{font-family:var(--font-heading);font-style:italic;font-size:16px;line-height:1.5;color:hsl(var(--muted-foreground));margin:0 0 8px;max-width:62ch}.r8 .beat-block{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:36px;align-items:center;padding:26px 0;border-top:1px solid color-mix(in srgb,hsl(var(--border)) 60%,transparent);position:relative;opacity:0;transform:translateY(8px);transition:opacity .54s var(--r8-ease),transform .6s var(--r8-ease)}.r8 .beat-block.in-view{opacity:1;transform:translateY(0)}.r8 .beat-block:first-of-type{border-top:0;padding-top:18px}.r8 [data-focus-mode=on] .beat-block.in-view{opacity:.32;transition:opacity .48s var(--r8-ease)}.r8 [data-focus-mode=on] .beat-block.in-view.focused{opacity:1}.r8 [data-focus-mode=on] .beat-block:before{content:"";position:absolute;left:-18px;top:26px;bottom:26px;width:2px;background:hsl(var(--accent));border-radius:2px;opacity:0;transform:scaleY(.4);transform-origin:center;transition:opacity .36s var(--r8-ease),transform .48s var(--r8-ease)}.r8 [data-focus-mode=on] .beat-block.focused:before{opacity:.85;transform:scaleY(1)}.r8 .beat-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.r8 .beat-num{font-size:10.5px;letter-spacing:.22em;color:hsl(var(--muted-foreground))}.r8 .beat-label,.r8 .beat-num{font-family:var(--font-mono);font-weight:600}.r8 .beat-label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--foreground))}.r8 .beat-take{font-family:var(--font-heading);font-weight:700;font-size:clamp(22px,2.4vw,28px);letter-spacing:-.015em;line-height:1.15;color:hsl(var(--foreground));margin:0 0 8px;text-wrap:pretty}.r8 .beat-take em{font-style:italic;font-weight:400}.r8 .beat-take .num{font-feature-settings:"tnum"}.r8 .beat-take .num.win{color:hsl(var(--accent))}.r8 .beat-sub,.r8 .beat-take .num.lose{color:hsl(var(--muted-foreground))}.r8 .beat-sub{font-family:var(--font-heading);font-style:italic;font-size:14.5px;line-height:1.5;margin:0;max-width:50ch}.r8 .beat-visual{min-width:0}.r8 .dbar{display:grid;grid-template-columns:72px 1fr 70px;gap:14px;align-items:center;padding:7px 0}.r8 .dbar .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--muted-foreground));font-weight:600}.r8 .dbar.win .lbl{color:hsl(var(--accent))}.r8 .dbar .track{height:10px;background:color-mix(in srgb,hsl(var(--muted-foreground)) 12%,transparent);border-radius:5px;overflow:hidden}.r8 .dbar .fill{display:block;height:100%;background:color-mix(in srgb,hsl(var(--muted-foreground)) 55%,transparent);border-radius:5px;transform-origin:left center;transform:scaleX(0);transition:transform .9s .12s var(--r8-ease)}.r8 .dbar.win .fill{background:hsl(var(--accent))}.r8 .beat-block.in-view .dbar .fill{transform:scaleX(var(--w,1))}.r8 .dbar .val{font-family:var(--font-mono);font-size:12px;color:hsl(var(--foreground));font-weight:600;text-align:right;letter-spacing:.02em}.r8 .nbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.r8 .nbox{padding:16px 18px;border:1px solid color-mix(in srgb,hsl(var(--border)) 90%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,#000 4%,hsl(var(--card)));display:flex;flex-direction:column;gap:6px}.r8 .nbox.win{background:color-mix(in srgb,hsl(var(--accent)) 7%,hsl(var(--card)));border-color:color-mix(in srgb,hsl(var(--accent)) 45%,hsl(var(--border)))}.r8 .nbox .ntime{font-family:var(--font-heading);font-weight:700;font-size:26px;letter-spacing:-.015em;color:hsl(var(--foreground))}.r8 .nbox .nlabel{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.r8 .nbox .nstate{margin-top:6px;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:hsl(var(--muted-foreground))}.r8 .nbox.win .nstate{color:hsl(var(--accent))}.r8 .nbox .nstate:before{content:"";width:9px;height:9px;border-radius:50%;background:hsl(var(--muted-foreground));opacity:.55}.r8 .nbox.win .nstate:before{background:hsl(var(--accent));opacity:1;box-shadow:0 0 0 4px color-mix(in srgb,hsl(var(--accent)) 22%,transparent)}.r8 .beat-block.in-view .nbox.win .nstate:before{animation:r8-nbox-pulse 2.4s ease-in-out .2s infinite}@keyframes r8-nbox-pulse{0%,to{box-shadow:0 0 0 4px color-mix(in srgb,hsl(var(--accent)) 22%,transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb,hsl(var(--accent)) 8%,transparent)}}.r8 .route-row{display:grid;grid-template-columns:72px 1fr 110px;gap:14px;align-items:center;padding:9px 0}.r8 .route-row .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--muted-foreground));font-weight:600}.r8 .route-row.win .lbl{color:hsl(var(--accent))}.r8 .route-row svg{width:100%;height:36px;display:block;overflow:visible}.r8 .route-row .path{fill:none;stroke:color-mix(in srgb,hsl(var(--muted-foreground)) 55%,transparent);stroke-width:2;stroke-linecap:round;stroke-dasharray:var(--len,400);stroke-dashoffset:var(--len,400);transition:stroke-dashoffset calc(var(--len, 400) * 2.6ms) linear}.r8 .route-row.win .path{stroke:hsl(var(--accent))}.r8 .beat-block.in-view .route-row .path{stroke-dashoffset:0}.r8 .route-row .endpoint{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:hsl(var(--foreground));letter-spacing:.02em;opacity:0;transform:translateX(-4px);transition:opacity .26s var(--r8-ease),transform .26s var(--r8-ease);transition-delay:calc(var(--len, 400) * 2.6ms - 60ms)}.r8 .route-row.win .endpoint{color:hsl(var(--accent))}.r8 .beat-block.in-view .route-row .endpoint{opacity:1;transform:translateX(0)}.r8 .prestige{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:4px 0}.r8 .prestige .key-circle{width:96px;height:96px;border-radius:50%;border:2px solid color-mix(in srgb,hsl(var(--accent)) 60%,transparent);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,hsl(var(--accent)) 4%,hsl(var(--card)));position:relative;flex-shrink:0}.r8 .prestige .key-circle:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px dashed color-mix(in srgb,hsl(var(--accent)) 40%,transparent);opacity:0;transform:scale(.85);transition:opacity .6s .24s,transform .6s cubic-bezier(.34,1.56,.64,1) .24s}.r8 .beat-block.in-view .prestige .key-circle:after{opacity:1;transform:scale(1)}.r8 .prestige .key-circle svg{width:40px;height:40px;color:hsl(var(--accent));stroke-width:1.6}.r8 .prestige .stat-block{display:flex;flex-direction:column;gap:4px}.r8 .prestige .stat{font-family:var(--font-heading);font-weight:700;font-size:44px;letter-spacing:-.02em;line-height:1;color:hsl(var(--accent));font-feature-settings:"tnum"}.r8 .prestige .stat small{font-family:var(--font-body);font-weight:500;font-size:16px;color:hsl(var(--muted-foreground));letter-spacing:0;margin-left:2px}.r8 .prestige .stat-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--muted-foreground));font-weight:600;margin-top:2px}.r8 .room-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.r8 .room-tile{padding:14px 16px;border:1px solid color-mix(in srgb,hsl(var(--border)) 90%,transparent);border-radius:var(--radius-md);background:hsl(var(--card));display:flex;flex-direction:column;gap:4px;min-height:96px;justify-content:center}.r8 .room-tile.win{background:color-mix(in srgb,hsl(var(--accent)) 6%,hsl(var(--card)));border-color:color-mix(in srgb,hsl(var(--accent)) 45%,hsl(var(--border)))}.r8 .room-tile .rtype{font-family:var(--font-heading);font-weight:700;font-size:22px;letter-spacing:-.015em;line-height:1.05;color:hsl(var(--foreground))}.r8 .room-tile.win .rtype{font-style:italic;color:hsl(var(--accent));font-weight:700}.r8 .room-tile .rsub{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--muted-foreground));font-weight:600}.r8 .swap-bridge{display:flex;align-items:center;gap:16px;margin:40px 0 32px;padding:16px 20px;border-radius:0 var(--radius) var(--radius) 0;background:color-mix(in srgb,hsl(var(--accent)) 4%,transparent);border-left:2px solid hsl(var(--accent))}.r8 .swap-bridge svg{width:18px;height:18px;color:hsl(var(--accent));flex-shrink:0}.r8 .swap-bridge p{margin:0;font-family:var(--font-heading);font-style:italic;font-size:17px;line-height:1.4;color:hsl(var(--foreground))}.r8 .swap-bridge strong{font-family:var(--font-body);font-weight:600;font-style:normal}@media (max-width:980px){.r8 .beat-block{grid-template-columns:1fr;gap:18px}}@media (max-width:800px){.r8 .swap-hotels{grid-template-columns:1fr;gap:14px}.r8 .sw-anchor{flex-direction:row;min-width:0;padding:6px 0}.r8 .sw-anchor .line{width:auto;height:1px;flex:1;min-height:0;min-width:28px;background:linear-gradient(to right,transparent,color-mix(in srgb,hsl(var(--accent)) 50%,transparent),transparent)}.r8 .prestige{grid-template-columns:1fr}}@keyframes r8-day-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.r8 .itin-day-panel{animation:r8-day-fade .38s var(--r8-ease)}@media (prefers-reduced-motion:reduce){.r8 .beat-block,.r8 .dbar .fill,.r8 .itin-day-panel,.r8 .prestige .key-circle:after,.r8 .route-row .endpoint,.r8 .route-row .path,.r8 [data-focus-mode=on] .beat-block.in-view{transition:none!important;animation:none!important;opacity:1!important;transform:none!important}}