:root{--bg-primary:#faf7f2;--bg-accent:#f0ebe3;--bg-dark:#16213e;--text-primary:#1a1a2e;--text-secondary:#6b6b7b;--text-light:#f5f0e8;--accent-yellow:#f4b942;--accent-coral:#e07a5f;--accent-blue:#3d5a80;--font-heading:"Playfair Display", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:6rem;--space-2xl:10rem;--radius-sm:8px;--radius-md:16px;--radius-lg:24px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-primary);font-weight:400;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.1}.section-container{max-width:1100px;padding:0 var(--space-md);margin:0 auto}.section-label{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--accent-coral);margin-bottom:var(--space-sm);font-size:.8rem;font-weight:600}.section-title{color:var(--text-primary);margin-bottom:var(--space-sm);font-size:clamp(2.5rem,5vw,4rem)}.section-subtitle{color:var(--text-secondary);max-width:600px;font-size:clamp(1rem,2vw,1.25rem);font-weight:300}.hero{text-align:center;background:linear-gradient(180deg, #fde8d0 0%, #f9d4b0 20%, #fae5c8 50%, var(--bg-primary) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-content{z-index:2;padding:var(--space-md);position:relative}.hero-eyebrow{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-coral);margin-bottom:var(--space-sm);font-size:clamp(.85rem,1.5vw,1.1rem);font-weight:500}.hero-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:var(--space-sm);font-size:clamp(4rem,12vw,10rem)}.hero-subtitle{font-family:var(--font-heading);color:var(--text-secondary);font-size:clamp(1.2rem,2.5vw,1.8rem);font-style:italic;font-weight:400}.scroll-indicator{bottom:var(--space-lg);align-items:center;gap:var(--space-xs);color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase;z-index:2;flex-direction:column;font-size:.75rem;font-weight:500;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-arrow{animation:2s infinite bounce}.skyline{z-index:1;opacity:.12;position:absolute;bottom:0;left:0;right:0}.skyline svg{width:100%;height:auto}.flight-section{padding:var(--space-2xl) 0 var(--space-xl);background-color:var(--bg-primary);position:relative}.flight-path-wrapper{width:100%;margin:var(--space-lg) 0;position:relative}.flight-path-svg{width:100%;height:auto}.boarding-pass{max-width:700px;margin:var(--space-lg) auto 0}.boarding-pass-inner{gap:var(--space-md);border:2px solid var(--bg-accent);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:relative;box-shadow:0 4px 24px #1a1a2e0f}.boarding-pass-inner:before{content:"";background:linear-gradient(90deg, var(--accent-yellow), var(--accent-coral));border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:4px;position:absolute;top:0;left:0;right:0}.bp-section{flex-direction:column;gap:4px;display:flex}.bp-from{text-align:left}.bp-to{text-align:right}.bp-divider{color:var(--accent-yellow);align-items:center}.bp-label{letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:600}.bp-code{font-family:var(--font-heading);color:var(--text-primary);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:700}.bp-city{color:var(--text-secondary);font-size:.85rem;font-weight:300}.bp-date{font-family:var(--font-body);color:var(--accent-coral);letter-spacing:.1em;margin-top:4px;font-size:.75rem;font-weight:600}.bp-details{gap:var(--space-lg);padding-top:var(--space-sm);margin-top:var(--space-sm);border-top:1px dashed var(--bg-accent);grid-column:1/-1;display:flex}.bp-detail{flex-direction:column;gap:2px;display:flex}.bp-value{color:var(--text-primary);font-size:.9rem;font-weight:500}.hotel-section{padding:var(--space-xl) 0;background-color:var(--bg-accent)}.hotel-card{max-width:550px;margin:var(--space-lg) auto 0;border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;background:#fff;position:relative;overflow:hidden;box-shadow:0 8px 40px #1a1a2e14}.hotel-card:before{content:"";background:linear-gradient(90deg, var(--accent-blue), var(--accent-coral));height:5px;position:absolute;top:0;left:0;right:0}.hotel-icon{margin-bottom:var(--space-sm);font-size:3rem}.hotel-name{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:clamp(1.5rem,3vw,2rem)}.hotel-tagline{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.95rem;font-style:italic}.hotel-details{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.hotel-detail{padding:var(--space-sm);background:var(--bg-primary);border-radius:var(--radius-sm);flex-direction:column;gap:2px;display:flex}.hotel-detail-label{letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:600}.hotel-detail-value{color:var(--text-primary);font-size:.95rem;font-weight:500}.hotel-note{color:var(--text-secondary);font-size:.85rem;font-style:italic}.itinerary-intro{padding:var(--space-2xl) 0 var(--space-lg);text-align:center;background-color:var(--bg-primary)}.itinerary-intro .section-subtitle{margin:0 auto}.day-section{padding:var(--space-xl) 0;position:relative}.day-section:nth-child(2n){background-color:var(--bg-accent)}.day-header{align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.day-number{font-family:var(--font-heading);color:var(--accent-yellow);opacity:.3;font-size:clamp(4rem,10vw,7rem);font-weight:700;line-height:1}.day-info{flex:1}.day-title{color:var(--text-primary);margin-bottom:4px;font-size:clamp(1.5rem,3vw,2.2rem)}.day-date{color:var(--text-secondary);font-size:.9rem;font-weight:400}.timeline{padding-left:var(--space-lg);position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--accent-yellow), var(--accent-coral));border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-item{padding-bottom:var(--space-md);padding-left:var(--space-sm);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";left:calc(-1 * var(--space-lg) + 2px);background:var(--accent-yellow);border:3px solid var(--bg-primary);width:12px;height:12px;box-shadow:0 0 0 2px var(--accent-yellow);border-radius:50%;position:absolute;top:8px}.day-section:nth-child(2n) .timeline-item:before{border-color:var(--bg-accent)}.timeline-time{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-coral);margin-bottom:4px;font-size:.75rem;font-weight:600}.timeline-content h4{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:4px;font-size:1.2rem}.timeline-content p{color:var(--text-secondary);max-width:550px;font-size:.95rem;line-height:1.5}.food-section{padding:var(--space-2xl) 0;background:linear-gradient(180deg, var(--bg-primary) 0%, #fdf5eb 50%, var(--bg-primary) 100%)}.food-section .section-title,.food-section .section-subtitle{text-align:center}.food-section .section-subtitle{margin:0 auto var(--space-xl)}.food-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.food-card{border-radius:var(--radius-md);padding:var(--space-md);background:#fff;border:1px solid #f0ebe3cc;transition:transform .3s,box-shadow .3s;box-shadow:0 2px 16px #1a1a2e0f}.food-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #1a1a2e1a}.food-card--discover{border-style:dashed;border-color:var(--accent-yellow);background:#f4b9420a}.food-emoji{margin-bottom:var(--space-sm);font-size:2.5rem}.food-name{color:var(--text-primary);margin-bottom:2px;font-size:1.15rem}.food-type{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-coral);margin-bottom:var(--space-xs);font-size:.75rem;font-weight:600}.food-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.sights-section{padding:var(--space-xl) 0 var(--space-2xl);background-color:var(--bg-accent)}.sights-section .section-title,.sights-section .section-subtitle{text-align:center}.sights-section .section-subtitle{margin:0 auto var(--space-xl)}.sights-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.sight-card{border-radius:var(--radius-md);padding:var(--space-lg) var(--space-md);text-align:center;background:#fff;border:1px solid #f0ebe3cc;transition:transform .3s,box-shadow .3s;box-shadow:0 2px 16px #1a1a2e0f}.sight-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #1a1a2e1a}.sight-emoji{margin-bottom:var(--space-sm);font-size:3rem}.sight-name{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:1.25rem}.sight-desc{color:var(--text-secondary);max-width:320px;margin:0 auto;font-size:.9rem;line-height:1.5}.flexible-section{padding:var(--space-xl) 0;background-color:var(--bg-primary)}.flexible-card{text-align:center;max-width:650px;padding:var(--space-xl) var(--space-lg);border-radius:var(--radius-lg);background:#fff;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 8px 40px #1a1a2e0f}.flexible-card:before{content:"";background:linear-gradient(90deg, var(--accent-yellow), var(--accent-coral), var(--accent-blue));height:4px;position:absolute;top:0;left:0;right:0}.flexible-icon{margin-bottom:var(--space-sm);font-size:2.5rem}.flexible-title{color:var(--text-primary);margin-bottom:var(--space-md);font-size:clamp(1.5rem,3vw,2rem)}.flexible-text{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:1.05rem;line-height:1.7}.flexible-signature{margin-top:var(--space-md);font-family:var(--font-heading);color:var(--accent-coral);font-size:1.2rem;font-style:italic}.footer{background-color:var(--bg-dark);color:var(--text-light);padding:var(--space-2xl) 0 var(--space-lg);text-align:center;position:relative;overflow:hidden}.footer-content{z-index:2;position:relative}.footer-title{font-family:var(--font-heading);color:var(--text-light);margin-bottom:var(--space-xs);font-size:clamp(2rem,5vw,3.5rem);font-weight:700}.footer-dates{color:var(--accent-yellow);letter-spacing:.15em;margin-bottom:var(--space-sm);font-size:1rem;font-weight:300}.footer-tagline{font-family:var(--font-heading);color:#f5f0e880;font-size:1.1rem;font-style:italic}.footer-skyline{z-index:1;position:absolute;bottom:0;left:0;right:0}.footer-skyline svg{width:100%;height:auto}@media (width<=768px){.hero-title{font-size:clamp(3rem,15vw,5rem)}.boarding-pass-inner{text-align:center;gap:var(--space-sm);padding:var(--space-md);grid-template-columns:1fr}.bp-from,.bp-to{text-align:center}.bp-details{gap:var(--space-sm);flex-direction:column;align-items:center}.day-header{gap:var(--space-xs);flex-direction:column}.day-number{font-size:3.5rem}.timeline{padding-left:var(--space-md)}.timeline:before{left:5px}.timeline-item:before{left:calc(-1 * var(--space-md) + 0px);width:10px;height:10px}.food-grid,.sights-grid{grid-template-columns:1fr}.flexible-card{padding:var(--space-lg) var(--space-md)}.section-container{padding:0 var(--space-sm)}}@media (width>=769px) and (width<=1200px){.food-grid,.sights-grid{grid-template-columns:repeat(2,1fr)}}.animate-on-scroll{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(40px)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(8px)}60%{transform:translateY(4px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.food-card,.sight-card,.parallax-slow{will-change:transform}@media (prefers-reduced-motion:reduce){.animate-on-scroll{opacity:1;transition:none;transform:none}.scroll-arrow{animation:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
