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.