PageSourceSearch

https://www.destination.com/_next/static/chunks/0-gu0limuxrs8.js?dpl=dpl_BE6PZXSLuAvwoppedG3KExR8q2XQ

js destination.com collected 2026-10-03 21:38:57 UTC 68,196 bytes, 820 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,213473,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(657688);function i({imageSrc:e,imageAlt:a,eyebrow:n,headline:s,lead:o,rail:l,featCap:c,scrollHint:p,children:d}){return(0,t.jsxs)("section",{className:"cinematic-hero",children:[(0,t.jsx)("div",{className:"hero-bg",children:(0,t.jsx)(r.default,{src:e,alt:a,fill:!0,priority:!0,sizes:"100vw",placeholder:"blur",blurDataURL:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0IDMiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzI1MjQyMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzBCMEUxMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHdpZHRoPSI0IiBoZWlnaHQ9IjMiIGZpbGw9InVybCgjZykiLz48L3N2Zz4=",style:{objectFit:"cover"}})}),l&&(0,t.jsxs)("div",{className:"hero-rail",children:[(0,t.jsx)("span",{children:l.top}),(0,t.jsx)("span",{className:"rail-line"}),l.middle&&(0,t.jsx)("span",{children:l.middle}),l.vertical&&(0,t.jsx)("span",{className:"rail-vert",children:l.vertical})]}),c&&(0,t.jsxs)("div",{className:"feat-cap",children:[(0,t.jsx)("div",{className:"feat-cap-eyebrow",children:c.eyebrow}),(0,t.jsxs)("div",{className:"feat-cap-place",children:[c.placePrefix,c.placeEmphasis&&(0,t.jsx)("em",{children:c.placeEmphasis}),c.placeSuffix]}),(0,t.jsx)("div",{className:"feat-cap-sub",children:c.sub})]}),p&&(0,t.jsx)("div",{className:"hero-scroll",children:p}),(0,t.jsxs)("div",{className:"hero-content",children:[n&&(0,t.jsx)("div",{className:"hero-eyebrow",children:n}),(0,t.jsxs)("h1",{className:"hero-h1",children:[s.prefix,s.emphasis&&(0,t.jsx)("em",{children:s.emphasis}),s.suffix&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("br",{}),s.suffix]})]}),o&&(0,t.jsx)("p",{className:"hero-lead",children:o})]}),d&&(0,t.jsx)("div",{className:"hero-float",children:d}),(0,t.jsx)("style",{children:`
2        .cinematic-hero {
3          position: relative;
4          height: 100vh;
5          min-height: 780px;
6          overflow: hidden;
7          color: #fff;
8        }
9        .hero-bg { position: absolute; inset: 0; z-index: 0; }
10        .hero-bg img {
11          width: 100%; height: 100%; object-fit: cover;
12          filter: saturate(1.05) contrast(1.02);
13          animation: kenburn 24s ease-in-out infinite alternate;
14        }
15        .hero-bg::after {
16          content: ""; position: absolute; inset: 0;
17          background: linear-gradient(180deg,
18            rgba(11,14,18,.55) 0%,
19            rgba(11,14,18,.1) 35%,
20            rgba(11,14,18,.15) 60%,
21            rgba(11,14,18,.82) 100%);
22          z-index: 1;
23        }
24        @keyframes kenburn {
25          0% { transform: scale(1.05) translate(0,0); }
26          100% { transform: scale(1.12) translate(-1%,-1%); }
27        }
28
29        .hero-rail {
30          position: absolute; top: 170px; left: 40px; z-index: 3;
31          display: flex; flex-direction: column; gap: 18px;
32          font-family: var(--font-sans);
33          font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
34          font-weight: 600; color: rgba(255,255,255,.8);
35        }
36        .hero-rail .rail-line { width: 40px; height: 1px; background: rgba(255,255,255,.5); }
37        .hero-rail .rail-vert {
38          writing-mode: vertical-rl; transform: rotate(180deg);
39          font-size: 10px; letter-spacing: .3em; margin-top: 12px;
40        }
41
42        .feat-cap {
43          position: absolute; top: 170px; right: 64px; z-index: 3;
44          text-align: right; max-width: 340px;
45        }
46        .feat-cap-eyebrow {
47          font-family: var(--font-sans);
48          font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
49          font-weight: 600; color: rgba(255,255,255,.75); margin-bottom: 6px;
50        }
51        .feat-cap-place {
52          font-family: var(--font-serif);
53          font-size: 22px; font-weight: 400; margin-bottom: 4px;
54          text-wrap: balance;
55        }
56        .feat-cap-place em { font-style: italic; color: var(--peach); }
57        .feat-cap-sub {
58          font-size: 12px; color: rgba(255,255,255,.7); line-height: 1.5;
59          text-wrap: pretty;
60        }
61
62        .hero-scroll {
63          position: absolute; bottom: 36px; right: 36px;
64          z-index: 3;
65          font-family: var(--font-sans);
66          font-size: 10px; letter-spacing: .26em; text-transform: uppercase;
67          font-weight: 600; color: rgba(255,255,255,.85);
68          display: flex; align-items: center; gap: 12px;
69          opacity: 0;
70          animation: scroll-cue-in .6s ease-out .4s forwards, scroll-cue-pulse 2.4s ease-in-out 1.2s infinite;
71        }
72        .hero-scroll::after {
73          content: ""; width: 18px; height: 1px;
74          background: rgba(255,255,255,.7);
75        }
76        @keyframes scroll-cue-in { to { opacity: 1; } }
77        @keyframes scroll-cue-pulse {
78          0%, 100% { transform: translateY(0); }
79          50%      { transform: translateY(3px); }
80        }
81
82        .hero-content {
83          /* Anchor the editorial column to the BOTTOM of the hero so it
84             stacks: clean photo + masthead at top, copy + planner at bottom.
85             Earlier we vertical-centered this block, but the headline at
86             clamp(64–160px) over 2–3 lines is taller than the available
87             space — center-justify pushed the eyebrow back up into the
88             nav row, which read as a formatting bug. flex-end keeps the
89             eyebrow well below nav regardless of how the headline wraps. */
90          position: absolute; top: 180px; bottom: 260px; right: 0;
91          z-index: 2;
92          display: flex; flex-direction: column; justify-content: flex-end;
93          padding: 0 36px; max-width: var(--max);
94          left: 50%; transform: translateX(-50%);
95        }
96        .hero-eyebrow {
97          font-family: var(--font-sans);
98          font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600;
99          color: rgba(255,255,255,.85);
100          display: inline-flex; align-items: center; gap: 12px; margin-bottom: 40px;
101        }
102        .hero-eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--accent); }
103        .hero-h1 {
104          font-family: var(--font-serif);
105          font-weight: 300;
106          font-size: clamp(25px, 8vw, 140px);
107          line-height: .92; letter-spacing: -.03em;
108          margin: 0 0 36px; max-width: 14ch;
109          text-wrap: balance;
110        }
111        .hero-h1 em { font-style: italic; font-weight: 400; color: var(--peach); }
112        .hero-lead {
113          font-family: var(--font-sans);
114          font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.85);
115          max-width: 46ch; margin: 0 0 16px; font-weight: 300;
116        }
117
118        .hero-float {
119          position: absolute; left: 36px; right: 36px; bottom: 36px; z-index: 4;
120        }
121
122        @media (max-width: 1400px) {
123          .feat-cap { max-width: 260px; right: 48px; }
124          .feat-cap-place { font-size: 20px; }
125        }
126        @media (max-width: 1400px) {
127          .feat-cap { max-width: 260px; right: 48px; }
128          .feat-cap-place { font-size: 20px; }
129        }
130        @media (max-width: 1100px) {
131          .hero-rail, .hero-scroll, .feat-cap { display: none; }
132          .cinematic-hero { min-height: 640px; }
133        }
134
135        /* Phones: stack the hero in a clean centered column that mirrors the
136           desktop editorial rhythm — eyebrow → headline → lead → planner —
137           with consistent 24px gutters so nothing visually drifts. */
138        @media (max-width: 767px) {
139          .cinematic-hero { height: auto; min-height: 620px; }
140          .hero-content {
141            position: relative;
142            top: auto; bottom: auto;
143            padding: 140px 24px 32px;
144            transform: none; left: auto;
145            text-align: center;
146            align-items: center;
147          }
148          .hero-eyebrow {
149            font-size: 10px; letter-spacing: .24em;
150            margin-bottom: 24px;
151            justify-content: center;
152          }
153          .hero-eyebrow::before { width: 24px; }
154          .hero-float {
155            position: relative;
156            left: auto; right: auto; bottom: auto;
157            padding: 0 24px 32px;
158          }
159          .hero-h1 {
160            font-size: clamp(27px, 11vw, 72px);
161            margin: 0 auto 24px;
162            max-width: 14ch;
163          }
164          .hero-lead {
165            font-size: 15px;
166            margin: 0 auto;
167            max-width: 38ch;
168          }
169        }
170      `})]})}var n=e.i(618566),s=e.i(949181),o=e.i(270098);let l=[{key:"ai",label:"Plan with AI",icon:"✦",hint:"Trip planner + booking, merged · Live rates via Expedia Group"},{key:"stays",label:"Stays",hint:"Live rates via Expedia Group · Free cancellation on most stays"},{key:"flights",label:"Flights",hint:"Live fares across every major airline · Non-stop and connecting"},{key:"journeys",label:"Journeys",hint:"Community itineraries · Day-by-day plans from travellers who've been"},{key:"experiences",label:"Experiences",hint:"Tours, tickets, day trips · Book ahead, skip the queue"}],c=[{value:"1",label:"1 adult"},{value:"2",label:"2 adults"},{value:"3",label:"3 adults"},{value:"4",label:"4 adults"},{value:"5",label:"5 adults"},{value:"6",label:"6 adults"}],p=[{value:"",label:"No limit"},{value:"800",label:"Under $1,000"},{value:"2000",label:"$1k – $3k"},{value:"4000",label:"$3k – $5k"},{value:"6000",label:"$5k+"}];function d(){return new Date().toISOString().slice(0,10)}function f(e,t){let a=Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10)));return Math.max(0,Math.round((Date.UTC(Number(t.slice(0,4)),Number(t.slice(5,7))-1,Number(t.slice(8,10)))-a)/864e5))}function h(){let e=(0,n.useRouter)(),[r,i]=(0,a.useState)("ai"),[h,x]=(0,a.useState)(""),[u,b]=(0,a.useState)(""),[y,v]=(0,a.useState)(""),[w,k]=(0,a.useState)("2"),[j,N]=(0,a.useState)(""),[S,z]=(0,a.useState)(null),C=(0,a.useMemo)(()=>{switch(r){case"ai":return{showDates:!0,showTravelers:!0,showBudget:!0,cta:"Plan →",destPlaceholder:"Tokyo, Bali, Paris…"};case"stays":return{showDates:!0,showTravelers:!0,showBudget:!1,cta:"Find stays →",destPlaceholder:"City, region or landmark"};case"flights":return{showDates:!0,showTravelers:!0,showBudget:!1,cta:"Search flights →",destPlaceholder:"Where are you flying to?"};case"journeys":return{showDates:!1,showTravelers:!1,showBudget:!1,cta:"Browse journeys →",destPlaceholder:"A place, or a feeling…"};case"experiences":return{showDates:!0,showTravelers:!0,showBudget:!1,cta:"Find experiences →",destPlaceholder:"Where to?"}}},[r]),F=l.find(e=>e.key===r)?.hint??"";return(0,t.jsxs)("form",{className:"hero-planner",onSubmit:t=>{if(t.preventDefault(),z(null),!h.trim()&&"journeys"!==r)return void z("Enter a destination to continue.");let a=u,i=y;if(a&&i&&i<a&&([a,i]=[i,a]),"ai"===r){let t=new URLSearchParams;if(t.set("d",h.trim()),a&&t.set("from",a),i&&t.set("to",i),a&&i){let e=Math.max(1,Math.min(14,f(a,i)));t.set("n",String(e))}let r={destination:h.trim()};a&&i&&(r.nights=Math.max(1,Math.min(14,f(a,i)))),a&&(r.checkin=a),i&&(r.checkout=i);let n=Number(w);if(Number.isFinite(n)&&n>0&&(r.adults=n),j){let e=Number(j);Number.isFinite(e)&&e>0&&(r.budgetTargetUsd=e)}t.set("prefill",encodeURIComponent(JSON.stringify(r))),e.push(`/plan?${t.toString()}`);return}if("flights"===r){let t=new URLSearchParams;t.set("to",h.trim()),a&&t.set("depart",a),i&&t.set("return",i),w&&"1"!==w&&t.set("pax",w),e.push(`/flights?${t.toString()}`);return}if("stays"===r){let e=(0,o.hotelSearchUrl)({destination:h.trim(),checkin:a||void 0,checkout:i||void 0,adults:w?Number(w):void 0},`hero-stays-${m(h.trim())}`);window.open(e,"_blank","noopener,noreferrer");return}if("experiences"===r){let e=(0,o.activitiesSearchUrl)(h.trim(),`hero-experiences-${m(h.trim())}`);window.open(e,"_blank","noopener,noreferrer");return}if("journeys"===r){let t=h.trim();e.push(t?`/community/itineraries?q=${encodeURIComponent(t)}`:"/community/itineraries");return}},"aria-label":"Start a trip plan",children:[(0,t.jsx)("div",{className:"planner-top",role:"tablist","aria-label":"What are you planning",children:l.map(e=>(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":r===e.key,className:`p-tab ${r===e.key?"on":""}`,onClick:()=>{i(e.key),z(null)},children:[e.icon&&(0,t.jsx)("span",{className:"ic",children:e.icon}),e.label]},e.key))}),(0,t.jsxs)("div",{className:`planner-grid tab-${r}`,children:[(0,t.jsxs)("label",{className:"pf pf-dest",children:[(0,t.jsx)("span",{className:"l",children:"flights"===r?"Flying to":"Going to"}),(0,t.jsx)(s.DestinationInput,{value:h,onChange:e=>x(e),placeholder:C.destPlaceholder,inputStyle:g})]}),C.showDates&&(0,t.jsxs)("label",{className:"pf pf-dates",children:[(0,t.jsx)("span",{className:"l",children:"Dates"}),(0,t.jsxs)("div",{className:"date-pair",children:[(0,t.jsx)("input",{type:"date",className:"inp date-inp","aria-label":"stays"===r?"Check-in":"Depart",value:u,min:d(),onChange:e=>{b(e.target.value),y&&e.target.value&&y<e.target.value&&v("")}}
170),(0,t.jsx)("span",{className:"date-sep","aria-hidden":!0,children:"→"}),(0,t.jsx)("input",{type:"date",className:"inp date-inp","aria-label":"stays"===r?"Check-out":"Return",value:y,min:u||d(),onChange:e=>v(e.target.value)})]})]}),C.showTravelers&&(0,t.jsxs)("label",{className:"pf pf-travelers",children:[(0,t.jsx)("span",{className:"l",children:"stays"===r?"Guests":"Travelers"}),(0,t.jsx)("select",{className:"inp select-inp",value:w,onChange:e=>k(e.target.value),children:c.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]}),C.showBudget&&(0,t.jsxs)("label",{className:"pf pf-budget",children:[(0,t.jsx)("span",{className:"l",children:"Budget"}),(0,t.jsx)("select",{className:"inp select-inp",value:j,onChange:e=>N(e.target.value),children:p.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,t.jsxs)("button",{type:"submit",className:"p-go",children:[C.cta.replace(" →",""),(0,t.jsx)("span",{className:"arr",children:"→"})]})]}),S&&(0,t.jsx)("div",{className:"planner-error",role:"alert",children:S}),(0,t.jsx)("div",{className:"planner-foot",children:"ai"===r?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"ai",children:"Trip planner + booking, merged"}),(0,t.jsx)("span",{className:"sep",children:"·"}),(0,t.jsx)("span",{children:"Live rates via Expedia Group"}),(0,t.jsx)("span",{className:"sep",children:"·"}),(0,t.jsx)("span",{children:"Free cancellation on most stays"})]}):(0,t.jsx)("span",{className:"hint",children:F})}),(0,t.jsx)("style",{children:`
171        .hero-planner {
172          background: rgba(255,255,255,0.96);
173          backdrop-filter: blur(14px);
174          -webkit-backdrop-filter: blur(14px);
175          border: 1px solid rgba(255,255,255,0.4);
176          border-radius: 16px;
177          padding: 16px;
178          box-shadow: var(--shadow-hero);
179          width: 100%;
180          max-width: 880px;
181          min-width: 0;
182        }
183        .planner-top {
184          display: flex; gap: 4px; margin-bottom: 10px; padding: 0 4px;
185          overflow-x: auto;
186          scrollbar-width: none;
187          mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent 100%);
188          -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent 100%);
189        }
190        .planner-top::-webkit-scrollbar { display: none; }
191        .p-tab {
192          font-family: var(--font-sans);
193          font-size: 11.5px; letter-spacing: .08em; font-weight: 600;
194          color: var(--muted);
195          padding: 7px 14px; border-radius: 999px;
196          border: none;
197          background: transparent;
198          cursor: pointer;
199          display: inline-flex; align-items: center; gap: 6px;
200          white-space: nowrap;
201          transition: background .15s, color .15s;
202        }
203        .p-tab:hover { background: var(--soft); color: var(--ink); }
204        .p-tab.on { background: var(--ink); color: #fff; }
205        .p-tab.on:hover { background: var(--ink); color: #fff; }
206        .p-tab .ic { font-size: 13px; }
207
208        .planner-grid {
209          display: grid;
210          /* Default (ai) layout — 4 fields + button. tab-* overrides below. */
211          grid-template-columns: 1.3fr 1fr 1fr 1fr auto;
212          align-items: stretch;
213          border: 1px solid var(--line);
214          border-radius: 12px;
215          /* overflow is 'visible' (not 'hidden') so the destination
216             autocomplete dropdown can escape the grid's rounded box.
217             With overflow:hidden the dropdown was clipped and users
218             couldn't pick a Mapbox suggestion. */
219          overflow: visible;
220          background: #fff;
221        }
222        /* Cap the visual radius on the first/last cells so hover
223           backgrounds don't poke past the rounded corners now that the
224           grid itself no longer clips. */
225        .planner-grid > .pf:first-child { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
226        .planner-grid > .p-go { border-top-right-radius: 12px; border-bottom-right-radius: 12px; }
227        /* Tab-specific column layouts. Grid tracks are auto-derived from
228           the visible .pf cells + the Plan CTA, but we still pin ratios so
229           the destination gets more room than the shorter selects. */
230        .planner-grid.tab-stays       { grid-template-columns: 1.4fr 1.3fr 1fr auto; }
231        .planner-grid.tab-flights     { grid-template-columns: 1.4fr 1.3fr 1fr auto; }
232        .planner-grid.tab-experiences { grid-template-columns: 1.4fr 1.3fr 1fr auto; }
233        .planner-grid.tab-journeys    { grid-template-columns: 1fr auto; }
234        .pf {
235          padding: 14px 20px;
236          border-right: 1px solid var(--line);
237          display: flex; flex-direction: column; gap: 4px;
238          transition: background .15s;
239          cursor: text;
240          min-width: 0;
241        }
242        .pf:hover { background: var(--soft); }
243        .pf:last-of-type { border-right: none; }
244        .pf .l {
245          font-family: var(--font-sans);
246          font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase;
247          color: var(--muted); font-weight: 700;
248        }
249        .pf .inp {
250          font-family: var(--font-sans);
251          font-size: 14px; font-weight: 500; color: var(--ink);
252          border: none; outline: none; background: transparent;
253          width: 100%; padding: 0;
254        }
255        .pf .inp::placeholder { color: var(--muted); font-weight: 400; }
256
257        .date-pair {
258          display: flex;
259          align-items: center;
260          gap: 4px;
261          width: 100%;
262        }
263        .date-pair .date-inp {
264          font-size: 13px;
265          min-width: 0;
266          flex: 1;
267          color-scheme: light;
268          cursor: pointer;
269        }
270        .date-sep {
271          color: var(--muted);
272          font-size: 12px;
273          flex-shrink: 0;
274        }
275        .select-inp {
276          cursor: pointer;
277          appearance: none;
278          -webkit-appearance: none;
279          -moz-appearance: none;
280          background: transparent;
281          background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%235d606a' d='M0 0h10L5 6z'/></svg>");
282          background-repeat: no-repeat;
283          background-position: right 0 center;
284          padding-right: 14px !important;
285        }
286
287        .p-go {
288          background: var(--ink); color: #fff;
289          padding: 0 26px; border: none; cursor: pointer;
290          font-family: var(--font-sans);
291          font-size: 13px; font-weight: 600; letter-spacing: .02em;
292          display: flex; align-items: center; gap: 8px;
293          transition: background .2s;
294          white-space: nowrap;
295        }
296        .p-go:hover { background: var(--accent); }
297        .p-go .arr { transition: transform .2s; margin-left: 6px; }
298        .p-go:hover .arr { transform: translateX(3px); }
299
300        .planner-error {
301          margin-top: 10px;
302          padding: 8px 14px;
303          background: rgba(212, 100, 60, 0.10);
304          border: 1px solid rgba(212, 100, 60, 0.35);
305          border-radius: 8px;
306          font-family: var(--font-sans);
307          font-size: 12.5px;
308          color: #8a3d18;
309        }
310
311        .planner-foot {
312          display: flex; gap: 20px;
313          margin-top: 10px; padding: 0 4px;
314          font-family: var(--font-sans);
315          font-size: 11px; color: var(--muted); font-weight: 500;
316          letter-spacing: .02em;
317          flex-wrap: wrap;
318        }
319        .planner-foot .ai {
320          color: var(--accent); font-weight: 600;
321          display: inline-flex; align-items: center; gap: 6px;
322        }
323        .planner-foot .ai::before { content: "✦"; }
324        .planner-foot .sep { color: var(--line); }
325        .planner-foot .hint { color: var(--muted); }
326
327        @media (max-width: 1000px) {
328          .planner-grid,
329          .planner-grid.tab-stays,
330          .planner-grid.tab-flights,
331          .planner-grid.tab-experiences,
332          .planner-grid.tab-journeys {
333            grid-template-columns: 1fr;
334          }
335          .pf { border-right: none; border-bottom: 1px solid var(--line); }
336          .p-go { padding: 16px; justify-content: center; }
337        }
338
339        /* Mobile-only refinements (≤768px).
340             - 16px input font defeats iOS Safari's auto-zoom on focus.
341             - 56px Plan button matches the mobile-optimization brief
342               \xa72.2 tap-target spec.
343             - Stacked date-pair prevents cramped horizontal layout. */
344        @media (max-width: 768px) {
345          .pf .inp { font-size: 16px; }
346          .p-go { min-height: 56px; }
347          .date-pair { flex-direction: column; align-items: stretch; gap: 6px; }
348          .date-sep { display: none; }
349        }
350      `})]})}function m(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}let g={fontFamily:"var(--font-sans)",fontSize:14,fontWeight:500,color:"var(--ink)",border:"none",outline:"none",background:"transparent",width:"100%",padding:0};var x=e.i(522016);function u({thumbs:e,activeKey:a,onSelect:i}){return(0,t.jsxs)("div",{className:"feat-thumbs",children:[e.map(e=>{let n=e.key===a,s={className:`ft ${n?"on":""}`,"aria-label":`${e.label}${n?" — open":" — preview"}`},o=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{src:e.thumbSrc,alt:e.label,fill:!0,sizes:"90px",style:{objectFit:"cover"}}),(0,t.jsx)("div",{className:"lab",children:e.label})]});return n?(0,t.jsx)(x.default,{href:e.href,...s,children:o},e.key):(0,t.jsx)("button",{type:"button",onClick:()=>i(e.key),...s,children:o},e.key)}),(0,t.jsx)("style",{children:`
351        .feat-thumbs {
352          display: grid;
353          grid-template-columns: repeat(3, 90px);
354          gap: 8px;
355        }
356        .ft {
357          position: relative;
358          aspect-ratio: 3/4;
359          border-radius: 10px;
360          overflow: hidden;
361          cursor: pointer;
362          border: 2px solid transparent;
363          transition: transform .2s, border-color .2s;
364          background: none;
365          padding: 0;
366          text-decoration: none;
367          color: inherit;
368        }
369        .ft.on { border-color: #fff; }
370        .ft:hover { transform: translateY(-2px); }
371        .ft img { width: 100%; height: 100%; object-fit: cover; }
372        .ft .lab {
373          position: absolute;
374          bottom: 6px; left: 6px; right: 6px;
375          color: #fff;
376          font-family: var(--font-sans);
377          font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase;
378          font-weight: 600;
379          text-shadow: 0 1px 3px rgba(0,0,0,.5);
380          text-align: left;
381          z-index: 2;
382        }
383        .ft::after {
384          content: "";
385          position: absolute; inset: 0;
386          background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.6));
387          z-index: 1;
388        }
389
390        @media (max-width: 1100px) {
391          .feat-thumbs { display: none; }
392        }
393      `})]})}let b="Vol. 04",y=[{key:"amalfi",label:"Amalfi",thumbSrc:"https://images.unsplash.com/photo-1533106418989-88406c7cc8ca?w=300&auto=format&fit=crop",heroSrc:"https://images.unsplash.com/photo-1533106418989-88406c7cc8ca?w=2200&auto=format&fit=crop",href:"/destinations/italy"},{key:"marrakech",label:"Marrakech",thumbSrc:"https://images.unsplash.com/photo-1548013146-72479768bada?w=300&auto=format&fit=crop",heroSrc:"https://images.unsplash.com/photo-1548013146-72479768bada?w=2200&auto=format&fit=crop",href:"/destinations/morocco"}];e.s(["HomepageHero",0,function({coverStory:e}){let r=e.cover?.image??e.image,n=e=>/([?&])w=\d+/.test(r)?r.replace(/([?&])w=\d+/,`$1w=${e}`):`${r}${r.includes("?")?"&":"?"}w=${e}`,s=e.slug,o=[{key:s,label:e.country,thumbSrc:n(300),heroSrc:n(2200),href:`/guides/${e.slug}`},...y],[l,c]=(0,a.useState)(s),p=o.find(e=>e.key===l)??o[0],d=p.key===s,f=e.cover?.title,m=d&&e.cover?.imageAlt?e.cover.imageAlt:`${p.label} — ${b} cover`;return(0,t.jsxs)(i,{imageSrc:p.heroSrc,imageAlt:m,eyebrow:"We watch the trips you care about",headline:{prefix:"Know the moment a trip is ",emphasis:"worth",suffix:"booking."},lead:"From your airport, to your places, on your dates — we watch fares and stays, tell you when to book, and how to pay less for it.",rail:{top:b,middle:"April · 2026",vertical:"The Quiet Issue"},featCap:{eyebrow:"Now showing",placePrefix:d&&f?f.prefix:"The ",placeEmphasis:d&&f?f.emp
393hasis:p.label,placeSuffix:d&&f?f.suffix:"",sub:d?`${b} cover \xb7 ${e.readTime} \xb7 ${e.cover?.region??e.country}`:`Featured in ${b} — the ${p.label} chapter.`},scrollHint:"Scroll to explore",children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr auto",gap:20,alignItems:"end"},className:"hero-float-grid",children:[(0,t.jsx)(h,{}),(0,t.jsx)(u,{thumbs:o,activeKey:l,onSelect:c})]}),(0,t.jsx)("style",{children:`
394        @media (max-width: 1100px) {
395          .hero-float-grid { grid-template-columns: 1fr !important; }
396        }
397      `})]})}],213473)},955256,e=>{"use strict";var t=e.i(843476),a=e.i(522016),r=e.i(271645),i=e.i(462946),n=e.i(985284),s=e.i(851661);let o=[{id:"all",label:"All"},{id:"music",label:"Concerts"},{id:"sports",label:"Sports"},{id:"arts",label:"Theatre"},{id:"family",label:"Family"}];function l({event:e}){let r=p(e.startDate),i=[e.venueName,e.city].filter(Boolean).join(" · ");return(0,t.jsxs)(a.default,{href:`/tickets/event/${e.id}`,style:{position:"relative",display:"block",borderRadius:20,overflow:"hidden",aspectRatio:"4 / 5",minHeight:480,textDecoration:"none",color:"#fff",background:e.imageUrl?`linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.82) 100%), url(${e.imageUrl}) center/cover`:"linear-gradient(135deg, #6a4a2a, #3b2416)",transition:"transform .35s ease, box-shadow .35s ease"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-3px)",e.currentTarget.style.boxShadow="0 30px 60px -30px rgba(0,0,0,.6)"},onMouseLeave:e=>{e.currentTarget.style.transform="",e.currentTarget.style.boxShadow=""},children:[(0,t.jsxs)("div",{style:{position:"absolute",top:22,left:22,display:"flex",gap:8,alignItems:"center",fontFamily:"var(--sans)",fontSize:10,fontWeight:700,letterSpacing:"0.22em",textTransform:"uppercase",color:"#fff"},children:[(0,t.jsx)("span",{style:{padding:"4px 10px",borderRadius:999,background:"rgba(255,106,61,.92)"},children:"Featured"}),e.segment&&(0,t.jsx)("span",{style:{padding:"4px 10px",borderRadius:999,background:"rgba(0,0,0,.48)"},children:e.segment})]}),(0,t.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,padding:"36px 32px"},children:[(0,t.jsx)("div",{style:{fontFamily:"var(--sans)",fontSize:11,fontWeight:700,letterSpacing:"0.18em",textTransform:"uppercase",color:"#ff9c78",marginBottom:10},children:r}),(0,t.jsx)("h3",{style:{fontFamily:"var(--serif)",fontSize:"clamp(28px, 3.4vw, 42px)",lineHeight:1.05,fontWeight:300,letterSpacing:"-0.015em",margin:"0 0 10px"},children:e.name}),i&&(0,t.jsx)("p",{style:{fontFamily:"var(--sans)",fontSize:14,color:"rgba(255,255,255,.85)",margin:0,marginBottom:18},children:i}),(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:10,padding:"12px 22px",borderRadius:999,background:"#fbf4e8",color:"#0e0904",fontFamily:"var(--sans)",fontSize:12,fontWeight:700,letterSpacing:"0.12em",textTransform:"uppercase"},children:[null!=e.priceFrom?`From ${function(e,t){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t||"USD",maximumFractionDigits:0}).format(e)}catch{return`$${Math.round(e)}`}}(e.priceFrom,e.currency)} \xb7 `:"","Get tickets →"]})]})]})}function c({event:e}){let r=p(e.startDate);return(0,t.jsxs)(a.default,{href:`/tickets/event/${e.id}`,style:{position:"relative",display:"block",borderRadius:14,overflow:"hidden",aspectRatio:"1 / 1.15",textDecoration:"none",color:"#fff",background:e.imageUrl?`linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.85) 100%), url(${e.imageUrl}) center/cover`:"linear-gradient(135deg, #6a4a2a, #3b2416)",transition:"transform .25s ease"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-2px)"},onMouseLeave:e=>{e.currentTarget.style.transform=""},children:[e.segment&&(0,t.jsx)("span",{style:{position:"absolute",top:12,left:12,padding:"3px 8px",borderRadius:999,background:"rgba(0,0,0,.55)",fontFamily:"var(--sans)",fontSize:9,fontWeight:700,letterSpacing:"0.18em",textTransform:"uppercase"},children:e.segment}),(0,t.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,padding:"18px 18px 16px"},children:[(0,t.jsx)("div",{style:{fontFamily:"var(--sans)",fontSize:10,fontWeight:700,letterSpacing:"0.18em",textTransform:"uppercase",color:"#ff9c78",marginBottom:6},children:r}),(0,t.jsx)("h3",{style:{fontFamily:"var(--serif)",fontSize:17,lineHeight:1.15,fontWeight:400,letterSpacing:"-0.005em",margin:0,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},children:e.name})]})]})}function p(e){let t=new Date(e+"T00:00:00");return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}).toUpperCase()}e.s(["HotTicketsNearYou",0,function(){let{status:e,data:p}=(0,i.useNearYou)(),[d,f]=(0,r.useState)("all");
397if("ready"!==e||!p)return null;let h=("all"===d?p.hotTickets:p.byCategory?.[d]??[]).slice(0,5);if(p.hotTickets.length<4)return null;let m=p.context.city||p.context.airport.city,g=s.TICKETS_CITY_CATALOG.find(e=>e.city.toLowerCase()===(m??"").toLowerCase())??null,[x,...u]=h;return(0,t.jsxs)("section",{style:{position:"relative",padding:"88px 24px",background:"linear-gradient(180deg, #1a1208 0%, #0e0904 100%)",color:"#f3ece0",animation:"hotTicketsFadeIn 0.6s ease",overflow:"hidden"},children:[(0,t.jsx)("style",{children:`
398        @keyframes hotTicketsFadeIn {
399          from { opacity: 0; transform: translateY(8px); }
400          to { opacity: 1; transform: translateY(0); }
401        }
402        @keyframes marqueePulse {
403          0%, 100% { opacity: 1; }
404          50% { opacity: .45; }
405        }
406      `}),(0,t.jsx)("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,pointerEvents:"none",background:"radial-gradient(ellipse at 20% 20%, rgba(192,82,42,.18), transparent 55%), radial-gradient(ellipse at 80% 80%, rgba(255,200,140,.08), transparent 50%)"}}),(0,t.jsxs)("div",{style:{position:"relative",maxWidth:1280,margin:"0 auto"},children:[(0,t.jsxs)("header",{style:{marginBottom:40,display:"flex",alignItems:"flex-end",justifyContent:"space-between",gap:16,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[(0,t.jsx)("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:999,background:"#ff6a3d",boxShadow:"0 0 0 4px rgba(255,106,61,.2)",animation:"marqueePulse 2s ease-in-out infinite"}}),(0,t.jsxs)("span",{style:{fontFamily:"var(--sans)",fontSize:10,fontWeight:700,letterSpacing:"0.3em",textTransform:"uppercase",color:"#f3ece0"},children:["Box office · Live · ",m]})]}),(0,t.jsx)("h2",{style:{fontFamily:"var(--serif)",fontSize:"clamp(24px, 5vw, 60px)",lineHeight:1.02,fontWeight:300,letterSpacing:"-0.02em",margin:0,maxWidth:720,color:"#fbf4e8"},children:"Tonight's biggest rooms, all within reach."}),(0,t.jsx)("p",{style:{fontFamily:"var(--serif)",fontSize:17,fontWeight:300,fontStyle:"italic",color:"rgba(243,236,224,.7)",marginTop:14,maxWidth:560},children:"Curated from every venue on Ticketmaster within 50 miles of your pin — sorted by what's selling fastest."})]}),(0,t.jsx)("a",{href:"/tickets",style:{fontFamily:"var(--sans)",fontSize:12,fontWeight:600,letterSpacing:"0.14em",textTransform:"uppercase",color:"#f3ece0",textDecoration:"none",padding:"12px 22px",border:"1px solid rgba(243,236,224,.35)",borderRadius:999},children:"Enter the marquee →"})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:32,paddingBottom:18,borderBottom:"1px solid rgba(243,236,224,.12)"},children:[o.map(e=>{let a=d===e.id,r="all"===e.id?p.hotTickets.length:p.byCategory?.[e.id]?.length??0;return(0,t.jsxs)("button",{onClick:()=>f(e.id),disabled:0===r,style:{fontFamily:"var(--sans)",fontSize:12,fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",padding:"9px 16px",borderRadius:999,border:`1px solid ${a?"#ff9c78":"rgba(243,236,224,.25)"}`,background:a?"#ff9c78":"transparent",color:a?"#1a1208":0===r?"rgba(243,236,224,.3)":"#f3ece0",cursor:0===r?"not-allowed":"pointer",transition:"all .15s"},children:[e.label,r>0&&(0,t.jsx)("span",{style:{marginLeft:8,opacity:a?.65:.55,fontSize:11},children:r})]},e.id)}),g&&(0,t.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8,flexWrap:"wrap"},children:[(0,t.jsx)(a.default,{href:`/tickets/${g.slug}/tonight`,style:{fontFamily:"var(--sans)",fontSize:12,fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",padding:"9px 16px",borderRadius:999,border:"1px solid rgba(243,236,224,.4)",background:"rgba(255,255,255,.06)",color:"#f3ece0",textDecoration:"none"},children:"Tonight →"}),(0,t.jsx)(a.default,{href:`/tickets/${g.slug}/this-weekend`,style:{fontFamily:"var(--sans)",fontSize:12,fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",padding:"9px 16px",borderRadius:999,border:"1px solid rgba(243,236,224,.4)",background:"rgba(255,255,255,.06)",color:"#f3ece0",textDecoration:"none"},children:"This weekend →"})]})]}),x?(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1.3fr) minmax(0, 1fr)",gap:24},children:[(0,t.jsx)(l,{event:x}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16},children:u.map(e=>(0,t.jsx)(c,{event:e},e.id))})]}):(0,t.jsxs)("div",{style:{padding:"48px 32px",textAlign:"center",border:"1px dashed rgba(243,236,224,.25)",borderRadius:18,color:"rgba(243,236,224,.7)",fontFamily:"var(--serif)",fontStyle:"italic",fontSize:17},children:["Nothing loud in that category near ",m," right now. Try another tab — or jump to",(0,t.jsxs)(a.default,{href:g?`/tickets/${g.slug}`:"/tickets",style:{color:"#ff9c78",marginLeft:6,textDecoration:"underline"},children:["all ",m," tickets"]}),"."]}),(0,t.jsx)("div",{style:{marginTop:22,display:"flex",justifyContent:"flex-end"},children:(0,t.jsx)("span",{style:{color:"rgba(243,236,224,.55)"},children:(0,t.jsx)(n.EditorialLabel,{type:"affiliate"})})})]}),(0,t.jsx)("style",{children:`
407        @media (max-width: 820px) {
408          section :where(div[style*="grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr)"]) {
409            grid-template-columns: 1fr !important;
410          }
411        }
412      `})]})}])},10151,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(618566),i=e.i(985651);e.s(["FlightRouteSearch",0,function(){let e=(0,r.useRouter)(),[n,s]=(0,a.useState)("JFK"),[o,l]=(0,a.useState)(""),[c,p]=(0,a.useState)(!1),d=(0,a.useRef)(null),f=(0,a.useRef)(null),h=(0,a.useMemo)(()=>(0,i.allRoutes)(),[]),m=(0,a.useMemo)(()=>h.filter(e=>e.origin===n).map(e=>e.destination).sort((e,t)=>
412e.localeCompare(t)),[h,n]),g=(0,a.useMemo)(()=>{let e=o.trim().toLowerCase();return e?m.filter(t=>t.toLowerCase().includes(e)).slice(0,8):m.slice(0,8)},[m,o]);function x(t){let a=i.AIRPORTS.find(e=>e.code===n);if(!a)return;let r=t.toLowerCase().replace(/\([^)]*\)/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");e.push(`/deals/flights/${a.slug}/${r}`)}(0,a.useEffect)(()=>{let e=e=>{f.current&&!f.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let u=i.AIRPORTS.find(e=>e.code===n);return(0,t.jsx)("section",{style:{background:"var(--ink, #0B0E12)",padding:"48px 24px",color:"#fff"},children:(0,t.jsxs)("div",{style:{maxWidth:1100,margin:"0 auto",display:"grid",gridTemplateColumns:"minmax(0, 1.2fr) minmax(0, 2fr)",gap:40,alignItems:"center"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{fontFamily:"var(--sans)",fontSize:11,fontWeight:700,letterSpacing:"0.22em",textTransform:"uppercase",color:"var(--gold, #D4AF37)",display:"block",marginBottom:12},children:"Find your route"}),(0,t.jsx)("h2",{style:{fontFamily:"var(--serif)",fontSize:"clamp(26px, 3.2vw, 40px)",lineHeight:1.1,color:"#fff",fontWeight:300,margin:"0 0 10px"},children:"Any airport, anywhere."}),(0,t.jsx)("p",{style:{fontFamily:"var(--sans)",fontSize:14,color:"rgba(255,255,255,0.7)",margin:0,lineHeight:1.6},children:"Pick your home airport and a dream destination — we’ll pull live fares across 100+ booking sites."})]}),(0,t.jsxs)("form",{ref:f,onSubmit:function(e){e.preventDefault();let t=m.find(e=>e.toLowerCase()===o.trim().toLowerCase());t?x(t):g.length>0&&x(g[0])},style:{display:"grid",gridTemplateColumns:"minmax(0, 160px) minmax(0, 1fr) auto",gap:10,alignItems:"stretch"},children:[(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsx)("select",{value:n,onChange:e=>s(e.target.value),style:{width:"100%",height:"100%",padding:"14px 36px 14px 16px",background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.18)",borderRadius:10,color:"#fff",fontFamily:"var(--sans)",fontSize:14,fontWeight:600,outline:"none",appearance:"none",cursor:"pointer"},children:i.AIRPORTS.map(e=>(0,t.jsxs)("option",{value:e.code,style:{background:"#0B0E12",color:"#fff"},children:[e.city," (",e.code,")"]},e.code))}),(0,t.jsx)("span",{style:{position:"absolute",right:14,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",color:"rgba(255,255,255,0.6)",fontSize:12},children:"▾"})]}),(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsx)("input",{ref:d,type:"text",placeholder:`Where from ${u?.city||""}?`,value:o,onChange:e=>{l(e.target.value),p(!0)},onFocus:()=>p(!0),style:{width:"100%",padding:"14px 18px",background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.18)",borderRadius:10,color:"#fff",fontFamily:"var(--sans)",fontSize:15,outline:"none"}}),c&&g.length>0&&(0,t.jsx)("ul",{style:{position:"absolute",top:"calc(100% + 6px)",left:0,right:0,listStyle:"none",margin:0,padding:6,background:"#151A21",border:"1px solid rgba(255,255,255,0.12)",borderRadius:10,boxShadow:"0 14px 40px rgba(0,0,0,0.45)",zIndex:30,maxHeight:320,overflowY:"auto"},children:g.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)("button",{type:"button",onClick:()=>x(e),style:{width:"100%",textAlign:"left",background:"transparent",border:"none",padding:"10px 12px",color:"#fff",fontFamily:"var(--sans)",fontSize:14,cursor:"pointer",borderRadius:6},onMouseEnter:e=>e.currentTarget.style.background="rgba(255,255,255,0.08)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:(0,t.jsxs)("span",{style:{fontWeight:600},children:[n," → ",e]})})},e))})]}),(0,t.jsx)("button",{type:"submit",style:{padding:"14px 28px",background:"var(--accent, #C0522A)",color:"#fff",border:"none",borderRadius:10,fontFamily:"var(--sans)",fontSize:14,fontWeight:700,cursor:"pointer",whiteSpace:"nowrap"},children:"Find deals →"})]})]})})}])},715847,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(462946);function i({event:e}){let a=new Date(e.startDate+"T00:00:00").toLocaleDateString(void 0,{month:"short",day:"numeric"});return(0,t.jsxs)("a",{href:e.bookUrl,target:"_blank",rel:"sponsored nofollow noopener",style:{display:"inline-flex",alignItems:"stretch",gap:10,padding:6,paddingRight:14,background:"#fff",border:"1px solid var(--border, #e7e2da)",borderRadius:12,textDecoration:"none",fontFamily:"var(--sans)",fontSize:13,color:"var(--text, #111)",maxWidth:280},children:[(0,t.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,width:44,height:44,borderRadius:8,background:e.imageUrl?`url(${e.imageUrl}) center/cover`:"linear-gradient(135deg, #6a4a2a, #3b2416)"}}),(0,t.jsxs)("span",{style:{display:"flex",flexDirection:"column",justifyContent:"center",minWidth:0},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--sans)",fontSize:10,fontWeight:700,letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--accent, #C0522A)"},children:a}),(0,t.jsx)("span",{style:{fontWeight:600,maxWidth:200,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]})]})}let n={display:"inline-flex",alignItems:"baseline",gap:8,padding:"10px 14px",background:"#fff",border:"1px solid var(--border, #e7e2da)",borderRadius:10,textDecoration:"none",fontFamily:"var(--sans)",fontSize:13,color:"var(--text, #111)"},s={fontFamily:"var(--serif)",fontWeight:500,color:"var(--accent, #C0522A)",fontSize:16};e.s(["NearYouStrip",0,function(){let{status:e,data:o}=(0,r.useNearYou)(),[l,c]=(0,a.useState)("flights");if("ready"!==e||!o)return null;let{context:p,flights:d,events:f}=o;if(!d.length&&!f.length)return null;let h=p.city||p.airport.city,m=f.slice(0,6);return(0,t.jsxs)("section",{style:{background:"var(--cream, #faf8f5)",borderTop:"1px solid var(--border, #e7e2da)",borderBottom:"1px solid var(--border, #e7e2da)",padding:"22px 24px",animation:"nearYouFadeIn 0.5s ease"},children:[(0,t.jsx)("style",{children:`
413        @keyframes nearYouFadeIn {
414          from { opacity: 0; transform: translateY(4px); }
415          to { opacity: 1; transform: translateY(0); }
416        }
417      `}),(0,t.jsxs)("div",{style:{maxWidth:1200,margin:"0 auto",display:"flex",alignItems:"center",justifyContent:"space-between",gap:24,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsxs)("div",{style:{fontFamily:"var(--sans)",fontSize:11,fontWeight:700,letterSpacing:"0.18em",textTransform:"uppercase",color:"var(--accent, #C0522A)",marginBottom:4},children:["Near you · ",h]}),(0,t.jsx)("div",{style:{fontFamily:"var(--serif)",fontSize:18,color:"var(--text, #111)"},children:"flights"===l?`Live fares from ${p.airport.fullName}`:"What's on within 50 miles tonight"})]}),(0,t.jsx)("div",{role:"tablist","aria-label":"Near you categories",style:{display:"inline-flex",gap:4,background:"#fff",border:"1px solid var(--border, #e7e2da)",borderRadius:999,padding:3},children:["flights","events"].map(e=>{let a=l===e,r="flights"===e?0===d.length:0===f.length;return(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":a,disabled:r,onClick:()=>c(e),style:{border:0,padding:"8px 16px",borderRadius:999,background:a?"var(--accent, #C0522A)":"transparent",color:a?"#fff":"var(--text, #111)",cursor:r?"not-allowed":"pointer",opacity:r?.4:1,fontFamily:"var(--sans)",fontSize:12,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase"},children:"flights"===e?"Flights":"Tonight"},e)})}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center",width:"100%"},children:["flights"===l&&d.slice(0,6).map(e=>(0,t.jsxs)("a",{href:e.bookUrl,target:"_blank",rel:"sponsored nofollow noopener",style:n,children:[(0,t.jsxs)("span",{style:{fontWeight:600},children:[e.origin," → ",e.destinationCity||e.destination]}),(0,t.jsxs)("span",{style:s,children:["$",e.price]})]},`${e.origin}-${e.destination}-${e.departureAt}`)),"events"===l&&m.map(e=>(0,t.jsx)(i,{event:e},e.id)),(0,t.jsx)("a",{href:"/discover/near-you",style:{fontFamily:"var(--sans)",fontSize:12,fontWeight:600,color:"var(--accent, #C0522A)",textDecoration:"none",padding:"10px 6px"},children:"See everything near you →"})]})]})]})}])},155268,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(522016),i=e.i(443994),n=e.i(817270),s=e.i(665513),o=e.i(204722);let l=[{key:"dest",index:"01",legend:"Where are you headed?",options:[{value:"domestic",label:"Domestic",sub:"Within your home country"},{value:"international",label:"International",sub:"Passport required"},{value:"not-sure",label:"Not sure yet",sub:"Still deciding"}]},{key:"freq",index:"02",legend:"How often do you fly?",options:[{value:"few",label:"1–3 trips a year",sub:"Occasional flyer"},{value:"many",label:"5+ trips a year",sub:"Frequent flyer"}]},{key:"fee",index:"03",legend:"Annual fee, if the perks pay back?",options:[{value:"ok",label:"Yes, if the math works",
417sub:"Perks over price"},{value:"no",label:"No, keep it fee-free",sub:"Simplicity first"}]}],c={travel:74,premium:66,airline:62,hotel:58,"cash-back":54,"no-annual-fee":50,business:42,"0-intro-apr":34,"balance-transfer":30},p={domestic:{airline:14,"cash-back":6},international:{premium:16,hotel:6},"not-sure":{travel:8}},d={few:{"no-annual-fee":10,"cash-back":6},many:{premium:14,airline:10,hotel:6}},f={ok:{premium:16,airline:6,hotel:4},no:{"no-annual-fee":30,"cash-back":12,premium:-20,airline:-16,hotel:-10,travel:-8,business:-6}},h={travel:"Flexible points, the safest lane if you don’t know your next carrier.",premium:"Lounge access and credits pay back at 5+ flights a year.",airline:"Rewards compound fastest when you fly one carrier often.",hotel:"Free-night certificates if you stick with one brand.","cash-back":"Straightforward rewards on the spend you already do.","no-annual-fee":"Keeps the math simple — no perks to justify.",business:"A separate line for business spend and employee cards.","0-intro-apr":"A no-interest window to pay down a planned expense.","balance-transfer":"Consolidates a balance onto a 0% intro window."};function m(e){return l.reduce((t,a)=>t+ +!!e[a.key],0)}var g=e.i(565961);let x="home",u="dc_wallet_picker",b=new Set(["domestic","international","not-sure"]),y=new Set(["few","many"]),v=new Set(["ok","no"]);function w(){return()=>{}}function k(){try{return window.sessionStorage.getItem(u)||""}catch{return""}}function j(){return""}function N(e){try{window.sessionStorage.setItem(u,JSON.stringify(e))}catch{}}e.s(["CardPicksSection",0,function(){let e=(0,a.useSyncExternalStore)(w,k,j),u=(0,a.useMemo)(()=>(function(e){if(!e)return{};try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return{};let a={};return b.has(t.dest)&&(a.dest=t.dest),y.has(t.freq)&&(a.freq=t.freq),v.has(t.fee)&&(a.fee=t.fee),a}catch{return{}}})(e),[e]),[S,z]=(0,a.useState)(null),C=S??u,F=m(C),T=m(C)===l.length,A=(0,a.useMemo)(()=>o.CARD_CATEGORY_SLUGS.map(e=>{let t=c[e];return C.dest&&(t+=p[C.dest][e]??0),C.freq&&(t+=d[C.freq][e]??0),C.fee&&(t+=f[C.fee][e]??0),{slug:e,score:t=Math.round(Math.min(98,Math.max(22,t)))}}).sort((e,t)=>t.score-e.score),[C]).slice(0,3),E=(0,a.useMemo)(()=>{let e,t,a;return e=C.dest?"international"===C.dest?"int":"domestic"===C.dest?"dom":"nsr":"x",t=C.freq?"many"===C.freq?"many":"few":"x",a=C.fee?"ok"===C.fee?"ok":"no":"x",`${e}-${t}-${a}`},[C]);function D(e,t){let a={...C,[e]:C[e]===t?void 0:t};z(a),N(a),(0,g.trackEvent)("wallet_picker_answer",{surface:x,question:e,value:t})}let I=A.length>0?`Picks re-ranked. Top match: ${o.CARD_CATEGORY_LABELS[A[0].slug]}.`:"";return(0,o.isCardRatingsEnabledClient)()?(0,t.jsxs)("section",{className:"cps","aria-labelledby":"cps-heading",children:[(0,t.jsx)("div",{className:"cps-backdrop","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"cps-container",children:[(0,t.jsxs)("div",{className:"cps-eyebrow-row",children:[(0,t.jsx)("span",{className:"cps-eyebrow-rule","aria-hidden":"true"}),(0,t.jsx)("span",{className:"cps-eyebrow",children:"The money side of this trip"}),(0,t.jsx)("span",{className:"cps-eyebrow-accent","aria-hidden":"true"})]}),(0,t.jsxs)("div",{className:"cps-split-header",children:[(0,t.jsx)("div",{className:"cps-split-left",children:(0,t.jsxs)("h2",{id:"cps-heading",children:["The right ",(0,t.jsx)("em",{children:"lane"})," for this trip."]})}),(0,t.jsxs)("div",{className:"cps-split-right",children:[(0,t.jsx)("p",{className:"cps-intro",children:"Two categories, matched to how you actually travel — never a specific card, just the lane that fits. Answer any question below and the picks re-rank instantly."}),(0,t.jsxs)("div",{className:"cps-stats",children:[(0,t.jsxs)("div",{className:"cps-stat",children:[(0,t.jsxs)("span",{className:"cps-stat-figure",children:[F,"/3"]}),(0,t.jsx)("span",{className:"cps-stat-caption",children:"Answered so far"})]}),(0,t.jsxs)("div",{className:"cps-stat",children:[(0,t.jsx)("span",{className:"cps-stat-figure",children:(0,o.liveCategoryCountClient)()}),(0,t.jsx)("span",{className:"cps-stat-caption",children:"Categories live now"})]}),(0,t.jsxs)("div",{className:"cps-stat",children:[(0,t.jsx)("span",{className:"cps-stat-figure",children:"0"}),(0,t.jsx)("span",{className:"cps-stat-caption",children:"Cards named on this page"})]})]})]})]}),(0,t.jsx)("div",{className:"cps-top-disclosure",children:(0,t.jsx)(n.CardRatingsDisclosure,{position:"top"})}),(0,t.jsxs)("div",{className:"cps-body",children:[(0,t.jsxs)("div",{className:"cps-picker",children:[(0,t.jsxs)("div",{className:"cps-picker-head",children:[(0,t.jsx)("span",{className:"cps-picker-title",children:"Wallet picker"}),(0,t.jsxs)("span",{className:"cps-picker-count",children:[F,"/3"]})]}),(0,t.jsx)("div",{className:"cps-progress-track","aria-hidden":"true",children:(0,t.jsx)("div",{className:"cps-progress-fill",style:{width:`${Math.round(F/3*100)}%`}})}),l.map(e=>(0,t.jsxs)("fieldset",{className:"cps-question",children:[(0,t.jsxs)("legend",{className:"cps-question-legend",children:[(0,t.jsx)("span",{className:"cps-question-index",children:e.index}),e.legend]}),(0,t.jsx)("div",{role:"radiogroup","aria-label":e.legend,className:"cps-options",children:e.options.map(a=>{let r=C[e.key]===a.value;return(0,t.jsxs)("button",{type:"button",role:"radio","aria-checked":r,className:`cps-chip${r?" cps-chip--selected":""}`,onClick:()=>D(e.key,a.value),onKeyDown:t=>{if("ArrowRight"!==t.key&&"ArrowDown"!==t.key&&"ArrowLeft"!==t.key&&"ArrowUp"!==t.key)return;t.preventDefault();let r="ArrowRight"===t.key||"ArrowDown"===t.key?1:-1,i=(e.options.findIndex(e=>e.value===a.value)+r+e.options.length)%e.options.length,n=e.options[i],s=t.currentTarget.parentElement,o=s?.querySelectorAll("button")[i];o?.focus(),D(e.key,n.value)},children:[(0,t.jsx)("span",{className:"cps-chip-label",children:a.label}),a.sub&&(0,t.jsx)("span",{className:"cps-chip-sub",children:a.sub})]},a.value)})})]},e.key)),(0,t.jsxs)("div",{className:"cps-picker-footer",children:[(0,t.jsx)("span",{className:"cps-helper",children:T?"Locked in. Your top match is highlighted.":"Every answer re-ranks the picks. No email, no credit check."}),F>0&&(0,t.jsx)("button",{type:"button",className:"cps-reset",onClick:function(){z({}),N({}),(0,g.trackEvent)("wallet_picker_reset",{surface:x})},children:"RESET"})]})]}),(0,t.jsxs)("div",{className:"cps-picks",children:[(0,t.jsxs)("div",{className:"cps-picks-head",children:[(0,t.jsx)("span",{className:"cps-picks-title",children:F>0?"Your matches":"Editors' picks"}),(0,t.jsx)("span",{className:"cps-picks-caption",children:"Ranked by fit"})]}),(0,t.jsx)("div",{"aria-live":"polite",className:"cps-sr-only",children:I}),(0,t.jsx)("ul",{className:"cps-list",children:A.map((e,a)=>{let r=a+1,n=1===r&&F>0,l=e.slug,c=o.CARD_CATEGORY_LABELS[l];return(0,t.jsxs)("li",{className:`cps-card${n?" cps-card--top":""}`,children:[(0,t.jsxs)("div",{className:"cps-card-title-row",children:[(0,t.jsx)("span",{className:"cps-card-tile","aria-hidden":"true",children:c.charAt(0)}),(0,t.jsx)("span",{className:"cps-card-rank",children:String(r).padStart(2,"0")}),(0,t.jsx)("h3",{className:"cps-card-name",children:c}),(0,t.jsx)("span",{className:`cps-badge${n?" cps-badge--top":""}`,children:n?"Top match":"Editorial pick"})]}),(0,t.jsx)("p",{className:"cps-card-blurb",children:s.CATEGORY_FIT_COPY[l]}),(0,t.jsx)("div",{className:"cps-metrics",children:(0,t.jsxs)("div",{className:"cps-metric",children:[(0,t.jsxs)("span",{className:"cps-metric-figure",children:[e.score,"%"]}),(0,t.jsx)("span",{className:"cps-metric-caption",children:"Fit"}),(0,t.jsx)("span",{className:"cps-metric-bar",style:{width:`${e.score}%`,background:n?"var(--accent)":"var(--line)"}})]})}),(0,t.jsxs)("div",{className:"cps-card-footer",children:[(0,t.jsx)("span",{className:"cps-why",children:h[l]}),(0,t.jsx)(i.CardCategoryCta,{category:l,placement:`home-card-picks-${E}-${l}-r${r}`,label:`See picks — ${c}`,disabled:!(0,o.isCategoryLiveClient)(l)})]})]},l)})})]})]}),(0,t.jsxs)("div",{className:"cps-footer",children:[(0,t.jsx)("span",{className:"cps-footer-copy",children:"We may earn a commission through CardRatings — opinions are our own."}),(0,t.jsx)(r.default,{href:"/points-and-miles/value",className:"cps-how-we-pick",children:"HOW WE PICK →"})]})]}),(0,t.jsx)("style",{children:`
418        .cps {
419          position: relative;
420          padding: clamp(32px, 5vw, 88px) clamp(18px, 5vw, 56px);
421          background: var(--bg, #FBFAF6);
422          border-top: 1px solid var(--line, #E8E4DA);
423          border-bottom: 1px solid var(--line, #E8E4DA);
424        }
425        /* No overflow:hidden on .cps itself — .cps-picker below is
426           position:sticky, and a hidden-overflow ancestor breaks sticky
427           positioning in most browsers. .cps-backdrop clips to its own
428           bounds (inset:0 + explicit height) instead. */
429        /* Decorative only — a faded desk-with-card photo behind the header,
430           never behind the picks list or any CTA text. Heavy fade + the
431           page background gradient on top keeps every row's contrast and
432           the disclosure text unaffected either theme. */
433        .cps-backdrop {
434          position: absolute;
435          inset: 0;
436          height: clamp(220px, 30vw, 420px);
437          background-image:
438            linear-gradient(180deg, rgba(251,250,246,0.72) 0%, rgba(251,250,246,0.94) 70%, var(--bg, #FBFAF6) 100%),
439            url('/home/cards/wallet-desk.jpg');
440          background-size: cover;
441          background-position: center 30%;
442          opacity: 0.55;
443          pointer-events: none;
444        }
445        @media (prefers-color-scheme: dark) {
446          .cps-backdrop {
447            background-image:
448              linear-gradient(180deg, rgba(11,14,18,0.75) 0%, rgba(11,14,18,0.95) 70%, var(--bg, #0B0E12) 100%),
449              url('/home/cards/wallet-desk.jpg');
450            opacity: 0.35;
451          }
452        }
453        [data-theme='dark'] .cps-backdrop {
454          background-image:
455            linear-gradient(180deg, rgba(11,14,18,0.75) 0%, rgba(11,14,18,0.95) 70%, var(--bg, #0B0E12) 100%),
456            url('/home/cards/wallet-desk.jpg');
457          opacity: 0.35;
458        }
459        .cps-container { position: relative; max-width: 1180px; margin: 0 auto; }
460
461        .cps-eyebrow-row { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
462        .cps-eyebrow-rule { width: 22px; height: 1px; background: var(--accent, #AD4F24); flex-shrink: 0; }
463        .cps-eyebrow {
464          font-family: var(--font-mono);
465          font-size: 11px;
466          font-weight: 600;
467          letter-spacing: 0.18em;
468          text-transform: uppercase;
469          color: var(--accent, #AD4F24);
470        }
471        /* Small decorative corner accent — a boarding-pass photo, faded and
472           clipped to a soft rounded tile. Purely atmospheric (aria-hidden,
473           no alt text, not a per-category card-art tile), hidden below
474           tablet width where there's no room for it to read as anything
475           but clutter. */
476        .cps-eyebrow-accent {
477          width: 46px;
478          height: 30px;
479          border-radius: 6px;
480          background-image:
481            linear-gradient(180deg, rgba(251,250,246,0) 0%, rgba(251,250,246,0.35) 100%),
482            url('/home/cards/boarding-pass.jpg');
483          background-size: cover;
484          background-position: center;
485          opacity: 0.7;
486          flex-shrink: 0;
487          margin-left: auto;
488        }
489        @media (max-width: 767px) {
490          .cps-eyebrow-accent { display: none; }
491        }
492
493        .cps-split-header {
494          display: grid;
495          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
496          align-items: end;
497          gap: 32px;
498          padding-bottom: 24px;
499          margin-bottom: 32px;
500          border-bottom: 1px solid var(--ink, #0B0E12);
501        }
502        .cps-split-left h2 {
503          font-family: var(--font-serif);
504          font-weight: 500;
505          font-size: clamp(30px, 4.4vw, 54px);
506          line-height: 1.02;
507          letter-spacing: -0.025em;
508          text-wrap: balance;
509          margin: 0;
510          color: var(--ink, #0B0E12);
511        }
512        .cps-split-left h2 em { font-style: italic; color: var(--accent, #AD4F24); }
513        .cps-intro {
514          font-family: var(--font-serif);
515          font-size: 16.5px;
516          line-height: 1.6;
517          color: var(--ink-2, #2c2f36);
518          max-width: 46ch;
519          margin: 0 0 20px;
520        }
521        .cps-stats { display: flex; gap: 24px; flex-wrap: wrap; }
522        .cps-stat { display: flex; flex-direction: column; gap: 4px; }
523        .cps-stat-figure {
524          font-family: var(--font-mono);
525          font-size: 20px;
526          font-variant-numeric: tabular-nums;
527          color: var(--ink, #0B0E12);
528        }
529        .cps-stat-caption {
530          font-family: var(--font-mono);
531          font-size: 10px;
532          letter-spacing: 0.08em;
533          text-transform: uppercase;
534          color: var(--text-dim, #9A8C82);
535        }
536
537        .cps-top-disclosure { margin-bottom: 28px; }
538
539        .cps-body {
540          display: grid;
541          grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
542          align-items: start;
543          gap: 32px;
544        }
545
546        .cps-picker {
547          position: sticky;
548          top: 24px;
549          background: var(--paper, #fff);
550          border: 1px solid var(--line, #E8E4DA);
551          border-radius: var(--r-lg, 14px);
552          padding: 24px 24px 20px;
553          overflow: hidden;
554        }
555        .cps-picker::before {
556          content: '';
557          display: block;
558          height: 2px;
559          margin: -24px -24px 20px;
560          background: linear-gradient(90deg, var(--accent, #AD4F24), var(--peach, #F5CDB3), transparent);
561        }
562        .cps-picker-head {
563          display: flex;
564          justify-content: space-between;
565          align-items: center;
566          margin-bottom: 10px;
567        }
568        .cps-picker-title {
569          font-family: var(--font-mono);
570          font-size: 11px;
571          font-weight: 700;
572          letter-spacing: 0.14em;
573          text-transform: uppercase;
574          color: var(--ink, #0B0E12);
575        }
576        .cps-picker-count {
577          font-family: var(--font-mono);
578          font-size: 11px;
579          font-variant-numeric: tabular-nums;
580          color: var(--text-dim, #9A8C82);
581        }
582        .cps-progress-track {
583          height: 2px;
584          background: var(--line, #E8E4DA);
585          border-radius: 1px;
586          overflow: hidden;
587          margin-bottom: 24px;
588        }
589        .cps-progress-fill {
590          height: 100%;
591          background: linear-gradient(90deg, var(--accent, #AD4F24), var(--peach, #F5CDB3));
592        }
593        @media (prefers-reduced-motion: no-preference) {
594          .cps-progress-fill { transition: width 420ms cubic-bezier(0.16, 1, 0.3, 1); }
595        }
596
597        .cps-question { border: 0; padding: 0; margin: 0 0 22px; }
598        .cps-question-legend {
599          display: flex;
600          align-items: baseline;
601          gap: 10px;
602          font-family: var(--font-serif);
603          font-size: 21px;
604          line-height: 1.25;
605          font-weight: 500;
606          color: var(--ink, #0B0E12);
607          margin-bottom: 12px;
608          padding: 0;
609        }
610        .cps-question-index {
611          font-family: var(--font-mono);
612          font-size: 11px;
613          color: var(--text-dim, #9A8C82);
614        }
615        .cps-options { display: flex; flex-wrap: wrap; gap: 8px; }
616        .cps-chip {
617          all: unset;
618          box-sizing: border-box;
619          display: flex;
620          flex-direction: column;
621          gap: 2px;
622          min-height: 44px;
623          padding: 10px 14px;
624          background: var(--paper, #fff);
625          border: 1px solid var(--line, #E8E4DA);
626          border-radius: var(--r-sm, 6px);
627          cursor: pointer;
628        }
629        @media (prefers-reduced-motion: no-preference) {
630          .cps-chip { transition: background 180ms, color 180ms, border-color 180ms; }
631        }
632        .cps-chip-label { font-family: var(--font-sans); font-size: 14.5px; font-weight: 600; color: inherit; }
633        .cps-chip-sub { font-family: var(--font-sans); font-size: 11.5px; opacity: 0.68; }
634        .cps-chip--selected {
635          background: var(--ink, #0B0E12);
636          color: #fff;
637          border-color: var(--ink, #0B0E12);
638          box-shadow: 0 3px 10px rgba(11, 14, 18, 0.18);
639        }
640
641        .cps-picker-footer {
642          display: flex;
643          justify-content: space-between;
644          align-items: center;
645          gap: 12px;
646          padding-top: 14px;
647          border-top: 1px solid var(--line, #E8E4DA);
648        }
649        .cps-helper { font-family: var(--font-sans); font-size: 12.5px; color: var(--text-dim, #9A8C82); }
650        .cps-reset {
651          all: unset;
652          cursor: pointer;
653          font-family: var(--font-mono);
654          font-size: 11px;
655          font-weight: 700;
656          letter-spacing: 0.1em;
657          color: var(--ink, #0B0E12);
658          border-bottom: 1px solid var(--accent, #AD4F24);
659          padding-bottom: 1px;
660          min-height: 44px;
661          display: inline-flex;
662          align-items: center;
663        }
664
665        .cps-picks-head {
666          display: flex;
667          justify-content: space-between;
668          align-items: baseline;
669          margin-bottom: 16px;
670        }
671        .cps-picks-title {
672          font-family: var(--font-mono);
673          font-size: 11px;
674          font-weight: 700;
675          letter-spacing: 0.14em;
676          text-transform: uppercase;
677          color: var(--ink, #0B0E12);
678        }
679        .cps-picks-caption { font-family: var(--font-sans); font-size: 12px; color: var(--text-dim, #9A8C82); }
680
681        .cps-sr-only {
682          position: absolute;
683          width: 1px; height: 1px;
684          padding: 0; margin: -1px;
685          overflow: hidden;
686          clip: rect(0, 0, 0, 0);
687          white-space: nowrap;
688          border: 0;
689        }
690
691        .cps-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
692        .cps-card {
693          background: var(--paper, #fff);
694          border: 1px solid var(--line, #E8E4DA);
695          border-radius: var(--r-md, 10px);
696          padding: 20px 22px;
697          box-shadow: var(--shadow, 0 4px 24px rgba(26,23,20,0.08));
698        }
699        @media (prefers-reduced-motion: no-preference) {
700          .cps-card { transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 240ms; }
701          .cps-card:hover { transform: translateY(-2px); }
702        }
703        .cps-card--top {
704          border-color: var(--accent, #AD4F24);
705          box-shadow: 0 8px 26px rgba(173, 79, 36, 0.18);
706        }
707
708        .cps-card-title-row { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
709        .cps-card-tile {
710          width: 38px; height: 38px;
711          flex-shrink: 0;
712          display: flex; align-items: center; justify-content: center;
713          border-radius: 8px;
714          background: linear-gradient(135deg, var(--accent, #AD4F24), rgba(11,14,18,0.78));
715          color: #fff;
716          font-family: var(--font-serif);
717          font-size: 16px;
718          box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
719        }
720        .cps-card-rank { font-family: var(--font-mono); font-size: 11px; color: var(--text-dim, #9A8C82); }
721        .cps-card-name {
722          font-family: var(--font-serif);
723          font-size: 22px;
724          font-weight: 500;
725          color: var(--ink, #0B0E12);
726          margin: 0;
727          flex: 1;
728        }
729        .cps-badge {
730          font-family: var(--font-mono);
731          font-size: 10px;
732          font-weight: 700;
733          letter-spacing: 0.06em;
734          text-transform: uppercase;
735          padding: 4px 10px;
736          border-radius: 999px;
737          background: var(--soft, #F2EEE3);
738          color: var(--ink-2, #2c2f36);
739        }
740        .cps-badge--top { background: rgba(173, 79, 36, 0.12); color: var(--accent, #AD4F24); }
741
742        .cps-card-blurb {
743          font-family: var(--font-sans);
744          font-size: 14.5px;
745          line-height: 1.5;
746          color: var(--text-dim, #9A8C82);
747          max-width: 58ch;
748          margin: 0 0 14px;
749        }
750
751        .cps-metrics {
752          display: grid;
753          grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
754          gap: 12px;
755          padding: 12px 0;
756          border-top: 1px solid var(--line, #E8E4DA);
757          border-bottom: 1px solid var(--line, #E8E4DA);
758          margin-bottom: 14px;
759        }
760        .cps-metric { position: relative; padding-bottom: 6px; }
761        .cps-metric-figure {
762          display: block;
763          font-family: var(--font-mono);
764          font-size: 15px;
765          font-variant-numeric: tabular-nums;
766          color: var(--ink, #0B0E12);
767        }
768        .cps-metric-caption {
769          display: block;
770          font-family: var(--font-mono);
771          font-size: 10px;
772          letter-spacing: 0.08em;
773          text-transform: uppercase;
774          color: var(--text-dim, #9A8C82);
775          margin-top: 2px;
776        }
777        .cps-metric-bar {
778          position: absolute;
779          left: 0; bottom: 0;
780          height: 3px;
781          border-radius: 2px;
782        }
783        @media (prefers-reduced-motion: no-preference) {
784          .cps-metric-bar { transition: width 360ms cubic-bezier(0.16, 1, 0.3, 1); }
785        }
786
787        .cps-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
788        .cps-why { font-family: var(--font-sans); font-size: 13px; color: var(--ink-2, #2c2f36); max-width: 40ch; }
789
790        .cps-footer {
791          margin-top: 32px;
792          padding-top: 16px;
793          border-top: 1px solid var(--line, #E8E4DA);
794          display: flex;
795          justify-content: space-between;
796          align-items: baseline;
797          gap: 16px;
798          flex-wrap: wrap;
799        }
800        .cps-footer-copy { font-family: var(--font-sans); font-size: 12.5px; line-height: 1.6; color: var(--text-dim, #9A8C82); max-width: 76ch; }
801        .cps-how-we-pick {
802          font-family: var(--font-mono);
803          font-size: 11px;
804          font-weight: 700;
805          letter-spacing: 0.1em;
806          color: var(--ink, #0B0E12);
807          text-decoration: none;
808          border-bottom: 1px solid var(--accent, #AD4F24);
809          white-space: nowrap;
810        }
811
812        @media (max-width: 1023px) {
813          .cps-picker { position: static; top: auto; }
814        }
815        @media (max-width: 767px) {
816          .cps-options { flex-direction: column; }
817          .cps-chip { width: 100%; }
818          .cps-metrics { grid-template-columns: repeat(2, 1fr); }
819        }
820      `})]}):null}],155268)}
820,617706,e=>{"use strict";var t=e.i(271645);e.s(["ScrollRevealInit",0,function(){return(0,t.useEffect)(()=>{let e=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&e.target.classList.add("visible")})},{threshold:.12});return document.querySelectorAll(".reveal, .reveal-left, .reveal-right").forEach(t=>{e.observe(t)}),()=>e.disconnect()},[]),null}])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.