:root{--paper: #faf7ee;--paper-deep: #f0e6d2;--ink: #172431;--muted: #65717b;--vermilion: #b12d1d;--indigo: #243f69;--moss: #65724f;--gold: #bb8a35;--page-gutter: 64px;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif: "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif;color:var(--ink);background:var(--paper);font:17px/1.5 var(--sans);font-synthesis:none;letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:var(--paper);scroll-behavior:smooth}body{margin:0;min-width:320px}*{box-sizing:border-box}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}#root{min-height:100svh}@media(max-width:1080px){:root{--page-gutter: 34px}}@media(max-width:760px){:root{--page-gutter: 20px;font-size:16px}}.site-shell{min-height:100svh;overflow-x:clip;position:relative}.site-shell:before{background-image:linear-gradient(rgba(40,35,31,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(40,35,31,.03) 1px,transparent 1px);background-size:42px 42px;content:"";inset:0;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.48),transparent 62%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.48),transparent 62%);pointer-events:none;position:fixed;z-index:-1}.site-header{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#faf7eed1;border-bottom:1px solid rgba(30,46,61,.12);display:flex;height:74px;justify-content:space-between;left:0;padding:0 38px;position:fixed;right:0;top:0;z-index:20}.brand,.site-header nav,.hero-actions,.primary-action,.ghost-action,.maps-link,.route-strip,.rail-stop,.destination-card-copy button,.closing-panel a{align-items:center;display:inline-flex}.brand{color:var(--ink);gap:11px;text-decoration:none}.brand span{background:var(--vermilion);border-radius:50%;color:var(--paper);display:grid;font-family:var(--serif);font-size:19px;height:36px;place-items:center;width:36px}.brand strong{font-size:15px;font-weight:700}.site-header nav{gap:7px}.site-header nav a{border-radius:999px;color:var(--muted);font-size:14px;font-weight:650;padding:9px 13px;text-decoration:none;transition:background .18s ease,color .18s ease}.site-header nav a:hover,.site-header nav a:focus-visible{background:#b12d1d1a;color:var(--ink)}.hero-section{align-items:center;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(420px,1.08fr);min-height:93svh;overflow:hidden;padding:104px var(--page-gutter) 46px;position:relative}.hero-section:after{background:radial-gradient(circle at 58% 26%,rgba(177,45,29,.12),transparent 12%),linear-gradient(115deg,transparent 0 62%,rgba(30,46,61,.08) 62% 63%,transparent 63%);content:"";inset:74px 0 0;pointer-events:none;position:absolute;z-index:-1}.hero-copy{max-width:650px;position:relative;z-index:2}.date-line{color:var(--vermilion);font-size:14px;font-weight:800;margin:0 0 18px;text-transform:uppercase}.hero-copy h1{color:var(--ink);font-family:var(--serif);font-size:70px;font-weight:650;line-height:.97;margin:0;max-width:680px}.hero-lead{color:var(--muted);font-size:19px;line-height:1.58;margin:22px 0 0;max-width:575px}.hero-actions{gap:13px;margin-top:26px}.travel-pulse{background:#fffdf8c2;border:1px solid rgba(30,46,61,.13);border-radius:8px;box-shadow:0 18px 44px #1e2e3d17;display:grid;gap:18px;grid-template-columns:minmax(0,.9fr) minmax(230px,.8fr);margin-top:22px;max-width:620px;padding:16px}.pulse-main>span,.pulse-details span{color:var(--muted);font-size:13px;font-weight:800}.pulse-main>span{color:var(--vermilion);text-transform:uppercase}.pulse-main strong{color:var(--ink);display:block;font-family:var(--serif);font-size:33px;font-weight:620;line-height:1.04;margin-top:7px}.pulse-main p{color:var(--muted);font-size:14px;line-height:1.52;margin:10px 0 0}.pulse-details{display:grid;gap:10px}.pulse-details>div:not(.pulse-progress){align-items:flex-start;display:flex;gap:9px}.pulse-details svg{color:var(--vermilion);flex:0 0 auto;margin-top:1px}.pulse-progress{background:#1e2e3d1a;border-radius:999px;height:8px;margin-top:5px;overflow:hidden;width:100%}.pulse-progress span{background:linear-gradient(90deg,var(--vermilion),var(--gold));border-radius:inherit;display:block;height:100%;transition:width .6s ease}.primary-action,.ghost-action,.destination-card-copy button,.closing-panel a{border:0;border-radius:999px;cursor:pointer;font:750 15px/1 var(--sans);gap:9px;min-height:46px;padding:0 19px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary-action{background:var(--ink);box-shadow:0 16px 36px #141b2133;color:var(--paper)}.ghost-action{background:#ffffff9e;border:1px solid rgba(30,46,61,.14);color:var(--ink)}.primary-action:hover,.ghost-action:hover,.destination-card-copy button:hover,.closing-panel a:hover{transform:translateY(-2px)}.maps-link{border-radius:999px;font:850 12px/1 var(--sans);gap:7px;min-height:36px;padding:0 12px;text-decoration:none;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.maps-link:hover,.maps-link:focus-visible{transform:translateY(-1px)}.hero-image-wrap{align-self:stretch;border-radius:30px 0 0 30px;box-shadow:0 36px 80px #1e2e3d33;min-height:560px;overflow:hidden;position:relative;transform-origin:center}.hero-image-wrap:after{background:linear-gradient(to left,transparent 48%,rgba(250,247,238,.1));content:"";inset:0;pointer-events:none;position:absolute}.hero-image{height:100%;object-fit:cover;object-position:center;width:100%}.route-strip{background:#faf7eee6;border:1px solid rgba(30,46,61,.13);border-radius:999px;bottom:28px;box-shadow:0 20px 46px #1e2e3d24;color:var(--ink);gap:11px;max-width:min(540px,calc(50vw - 86px));padding:13px 18px;position:absolute;right:var(--page-gutter);z-index:3}.route-strip span{font-size:14px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-pad{padding:98px var(--page-gutter)}.section-heading{margin:0 auto 42px;max-width:760px;text-align:center}.section-heading h2,.closing-panel h2,.modal-copy h2{color:var(--ink);font-family:var(--serif);font-size:52px;font-weight:620;line-height:1.05;margin:0}.section-heading p:not(.date-line),.closing-panel p{color:var(--muted);font-size:18px;line-height:1.68;margin:20px auto 0;max-width:690px}.journey-section{background:linear-gradient(180deg,#faf7ee00,#f3eee1)}.cost-legend,.cost-pills,.filter-row{align-items:center;display:flex;flex-wrap:wrap}.cost-legend{gap:10px;justify-content:center;margin:-12px auto 44px;max-width:760px}.cost-pills{gap:7px}.cost-pills.compact{margin-top:11px}.cost-pill{background:#fffdf8bf;border:1px solid rgba(30,46,61,.12);border-radius:999px;color:var(--ink);display:inline-flex;font-size:12px;font-weight:800;line-height:1;padding:8px 10px;white-space:nowrap}.cost-pill.paidConfirmed{background:#65724f24;border-color:#65724f42}.cost-pill.paid{background:#bb8a3526;border-color:#bb8a354d}.cost-pill.shopping{background:#b12d1d1a;border-color:#b12d1d38}.rail-map{display:grid;gap:0;grid-template-columns:repeat(5,minmax(0,1fr));margin:0 auto;max-width:1180px;position:relative}.rail-map:before{background:linear-gradient(90deg,var(--vermilion),var(--indigo));content:"";height:3px;left:8%;position:absolute;right:8%;top:38px}.rail-stop{background:transparent;border:0;color:var(--ink);flex-direction:column;gap:8px;min-height:210px;padding:0 11px;position:relative;text-align:center}.rail-stop:before{background:var(--paper);border:3px solid var(--vermilion);border-radius:50%;box-shadow:0 0 0 8px #b12d1d14;content:"";height:18px;margin-bottom:18px;width:18px;z-index:2}.stop-number{color:var(--vermilion);font-size:12px;font-weight:850}.stop-city{font-family:var(--serif);font-size:26px;font-weight:650;line-height:1}.stop-dates,.day-city,.destination-card-copy span,.modal-copy>span{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.rail-stop p{color:var(--muted);font-size:14px;line-height:1.48;margin:8px 0 0;max-width:210px}.weather-section{background:linear-gradient(180deg,#f3eee1,#fbf8ef);border-top:1px solid rgba(30,46,61,.08)}.weather-layout{display:grid;gap:22px;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr)}.current-weather-card,.trip-forecast-card{border-radius:8px;box-shadow:0 18px 46px #1e2e3d14}.current-weather-card{background:linear-gradient(145deg,#1e2e3df5,#121e2afa),var(--ink);color:var(--paper);display:grid;gap:22px;padding:28px}.weather-card-head,.forecast-head,.weather-facts,.trip-forecast-day div{align-items:center;display:flex}.weather-card-head{gap:12px}.weather-card-head svg{color:#f5d097}.weather-card-head span,.forecast-head span,.weather-facts span,.trip-forecast-day>span{color:#faf7ee9e;display:block;font-size:12px;font-weight:850;text-transform:uppercase}.weather-card-head strong,.forecast-head strong{display:block;font-size:15px;font-weight:850;margin-top:4px}.weather-now{display:grid;gap:4px}.weather-now>span{font-size:42px;line-height:1}.weather-now strong{font-family:var(--serif);font-size:76px;font-weight:620;letter-spacing:0;line-height:.94}.weather-now p{color:#faf7eeb8;font-size:17px;margin:0}.weather-facts{border-top:1px solid rgba(250,247,238,.14);display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:18px}.weather-facts div{background:#faf7ee12;border:1px solid rgba(250,247,238,.11);border-radius:8px;display:grid;gap:5px;padding:12px}.weather-facts svg{color:#f5d097}.weather-facts span{color:#faf7ee94;font-size:11px}.weather-facts strong{font-size:18px;line-height:1}.trip-forecast-card{background:#fffdf8;border:1px solid rgba(30,46,61,.12);padding:28px}.forecast-head{border-bottom:1px solid rgba(30,46,61,.1);justify-content:space-between;margin-bottom:18px;padding-bottom:18px}.forecast-head span{color:var(--vermilion)}.forecast-head strong{color:var(--ink);font-family:var(--serif);font-size:28px;font-weight:620;line-height:1.05;margin:0}.trip-forecast-list,.forecast-placeholder-days{display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.trip-forecast-day{background:#1e2e3d0a;border:1px solid rgba(30,46,61,.09);border-radius:8px;min-width:0;padding:13px}.trip-forecast-day>span{color:var(--vermilion);font-size:11px}.trip-forecast-day>strong{color:var(--ink);display:block;font-size:14px;line-height:1.25;margin-top:5px}.trip-forecast-day div{gap:6px;margin-top:12px}.trip-forecast-day div>span{font-size:20px}.trip-forecast-day p,.trip-forecast-day small,.forecast-pending p{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.trip-forecast-day small{display:block;font-weight:800;margin-top:10px}.forecast-pending{align-items:flex-start;display:grid;gap:18px;grid-template-columns:34px minmax(0,1fr)}.forecast-pending>svg{color:var(--vermilion)}.forecast-placeholder-days{grid-column:1 / -1}.forecast-placeholder-days span{background:#1e2e3d0a;border:1px solid rgba(30,46,61,.09);border-radius:8px;color:var(--ink);display:grid;font-size:13px;font-weight:900;gap:4px;min-width:0;padding:10px}.forecast-placeholder-days small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.weather-loading{background:#fffdf8;border:1px solid rgba(30,46,61,.12);border-radius:8px;color:var(--muted);font-weight:800;padding:24px}.currency-section{background:linear-gradient(180deg,#fbf8ef,#fffdf8);border-top:1px solid rgba(30,46,61,.08)}.currency-layout{display:grid;gap:22px;grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr)}.currency-converter-card,.currency-rates-card{background:#fffdf8;border:1px solid rgba(30,46,61,.12);border-radius:8px;box-shadow:0 18px 46px #1e2e3d14;padding:28px}.currency-rates-card{background:linear-gradient(145deg,#65724f1c,#bb8a3517),#fffdf8}.currency-card-head,.currency-rate-head,.currency-rate-list article div{align-items:center;display:flex}.currency-card-head{gap:12px}.currency-card-head svg{color:var(--vermilion)}.currency-card-head span,.currency-rate-head span,.currency-result-grid span,.currency-rate-list span,.currency-field span{color:var(--vermilion);display:block;font-size:12px;font-weight:850;text-transform:uppercase}.currency-card-head strong,.currency-rate-head strong{color:var(--ink);display:block;font-family:var(--serif);font-size:27px;font-weight:620;line-height:1.08;margin-top:4px}.currency-controls{display:grid;gap:12px;grid-template-columns:minmax(0,1.1fr) minmax(160px,.9fr);margin:24px 0 14px}.currency-field{display:grid;gap:8px}.currency-field input,.currency-field select{background:#faf7eea8;border:1px solid rgba(30,46,61,.14);border-radius:8px;color:var(--ink);font:800 17px/1 var(--sans);min-height:50px;padding:0 14px;width:100%}.currency-field input{font-family:var(--serif);font-size:28px;font-weight:650}.currency-field input:focus,.currency-field select:focus{border-color:#bb8a35cc;outline:2px solid rgba(187,138,53,.24)}.quick-currency-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.quick-currency-row button,.currency-rate-head button{align-items:center;border:1px solid rgba(30,46,61,.14);border-radius:999px;cursor:pointer;display:inline-flex;font:850 12px/1 var(--sans);gap:7px;justify-content:center;min-height:38px;padding:0 12px;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.quick-currency-row button{background:#1e2e3d0a;color:var(--ink)}.quick-currency-row button:hover,.quick-currency-row button:focus-visible,.quick-currency-row button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.currency-result-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.currency-result-grid article{background:#1e2e3d0a;border:1px solid rgba(30,46,61,.09);border-radius:8px;min-width:0;padding:14px}.currency-result-grid article.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.currency-result-grid article.active span,.currency-result-grid article.active small{color:#faf7eead}.currency-result-grid strong{color:inherit;display:block;font-family:var(--serif);font-size:25px;font-weight:650;line-height:1.04;margin-top:8px;overflow-wrap:anywhere}.currency-result-grid small{color:var(--muted);display:block;font-size:12px;font-weight:800;margin-top:7px}.currency-rate-head{border-bottom:1px solid rgba(30,46,61,.1);gap:16px;justify-content:space-between;margin-bottom:18px;padding-bottom:18px}.currency-rate-head button{background:var(--ink);border-color:var(--ink);color:var(--paper);flex:0 0 auto}.currency-rate-head button:disabled{cursor:wait;opacity:.62}.currency-rate-list{display:grid;gap:10px}.currency-rate-list article{background:#fffdf8a8;border:1px solid rgba(30,46,61,.09);border-radius:8px;padding:14px}.currency-rate-list article div{color:var(--ink);flex-wrap:wrap;gap:8px;margin-top:8px}.currency-rate-list strong,.currency-rate-list em{font-family:var(--serif);font-size:24px;font-style:normal;font-weight:650;line-height:1.06}.currency-rate-list svg{color:var(--vermilion)}.currency-source{color:var(--muted);font-size:13px;line-height:1.45;margin:18px 0 0}.currency-source.loading{color:var(--gold);font-weight:800}.currency-source.fallback{color:var(--vermilion);font-weight:800}.currency-source a{color:var(--ink);font-weight:900}.timeline-section{background:var(--ink);color:var(--paper)}.timeline-section .section-heading h2,.timeline-section .date-line,.day-card h3{color:var(--paper)}.timeline-section .section-heading{margin-left:0;text-align:left}.day-list{border-top:1px solid rgba(250,247,238,.18)}.day-card{border-bottom:1px solid rgba(250,247,238,.18);display:grid;gap:34px;grid-template-columns:132px minmax(0,1fr);padding:34px 0;position:relative}.day-card.today{background:linear-gradient(90deg,rgba(177,45,29,.18),transparent 62%);margin-inline:calc(var(--page-gutter) * -.24);padding-inline:calc(var(--page-gutter) * .24)}.day-card.past{opacity:.68}.day-card.special{background:linear-gradient(90deg,rgba(187,138,53,.2),rgba(177,45,29,.08) 44%,transparent 82%);margin-inline:calc(var(--page-gutter) * -.24);padding-inline:calc(var(--page-gutter) * .24)}.day-date{padding-top:8px}.day-date span{color:var(--vermilion);display:block;font-size:13px;font-weight:850;margin-bottom:8px;text-transform:uppercase}.day-date strong{color:#faf7ee4d;font-family:var(--serif);font-size:52px;line-height:1}.day-badge{border-radius:999px;display:inline-flex;font-size:11px;font-style:normal;font-weight:900;margin-top:15px;padding:7px 9px;text-transform:uppercase}.day-badge.today{background:var(--vermilion);color:var(--paper)}.day-badge.past{background:#faf7ee1f;color:#faf7eea8}.day-badge.future{background:#bb8a352e;color:#f5d097}.day-card h3{font-family:var(--serif);font-size:34px;font-weight:620;line-height:1.1;margin:8px 0 10px}.day-heading-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.day-heading-row h3{margin-right:auto}.day-map-link{background:#faf7ee14;border:1px solid rgba(250,247,238,.16);color:#f5d097;flex:0 0 auto}.day-map-link:hover,.day-map-link:focus-visible{background:#f5d09726;border-color:#f5d09757;color:var(--paper)}.day-card.special .day-date strong{color:#f5d097}.day-base,.day-note{align-items:center;color:#faf7eeb3;display:flex;font-size:15px;gap:8px;line-height:1.5;margin:0 0 8px}.day-note{color:#faf7ee9e;display:block}.day-special{align-items:flex-start;background:#faf7ee14;border:1px solid rgba(245,208,151,.34);border-radius:8px;color:var(--paper);display:flex;gap:10px;margin-top:14px;max-width:620px;padding:13px 14px}.day-special.milestone{background:linear-gradient(135deg,#f5d09736,#b12d1d29 54%,#faf7ee12);border-color:#f5d0978f;box-shadow:0 18px 44px #b12d1d1f;gap:14px;max-width:760px;padding:16px}.day-special svg{color:#f5d097;flex:0 0 auto;margin-top:2px}.day-special-number{align-items:center;background:#f5d097;border:1px solid rgba(255,253,248,.44);border-radius:50%;color:var(--ink);display:inline-flex;flex:0 0 auto;font-family:var(--serif);font-size:34px;font-weight:720;height:66px;justify-content:center;line-height:1;width:66px}.day-special strong,.day-special span,.day-special em{display:block}.day-special em{color:#f5d097;font-size:11px;font-style:normal;font-weight:900;letter-spacing:.04em;margin-bottom:5px;text-transform:uppercase}.day-special strong{font-size:13px;font-weight:900;margin-bottom:4px;text-transform:uppercase}.day-special.milestone strong{font-size:18px}.day-special span{color:#faf7eeb3;font-size:14px;line-height:1.45}.day-special.milestone span{color:#faf7eec7;font-size:15px}.day-special.milestone .day-special-number{align-items:center;color:var(--ink);display:inline-flex;font-size:34px;justify-content:center;line-height:1}.transport-panel{background:#faf7ee0e;border:1px solid rgba(250,247,238,.13);border-radius:8px;margin-top:16px;max-width:930px;overflow:hidden}.transport-panel summary{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;list-style:none;padding:14px 16px}.transport-panel summary::-webkit-details-marker{display:none}.transport-summary-main,.transport-option-head{align-items:center;display:flex}.transport-summary-main{gap:10px;min-width:0}.transport-summary-main svg{color:#f5d097;flex:0 0 auto}.transport-summary-main span,.transport-option-head span,.transport-tips strong{color:#faf7ee8f;display:block;font-size:11px;font-weight:900;text-transform:uppercase}.transport-summary-main strong{color:var(--paper);display:block;font-size:15px;line-height:1.3;margin-top:2px}.transport-chevron{color:#faf7eea3;flex:0 0 auto;transition:transform .18s ease}.transport-panel[open] .transport-chevron{transform:rotate(90deg)}.transport-content{border-top:1px solid rgba(250,247,238,.1);display:grid;gap:14px;padding:16px}.transport-intro,.transport-option li,.transport-tips li{color:#faf7eeb3;font-size:14px;line-height:1.55}.transport-intro{margin:0}.transport-options{border:1px solid rgba(250,247,238,.12);border-radius:8px;overflow:hidden}.transport-option{display:grid;gap:8px;padding:14px}.transport-option+.transport-option{border-top:1px solid rgba(250,247,238,.12)}.transport-option-head{gap:8px}.transport-option-head em{background:#f5d09721;border:1px solid rgba(245,208,151,.26);border-radius:999px;color:#f5d097;font-size:10px;font-style:normal;font-weight:900;padding:5px 7px;text-transform:uppercase}.transport-option>strong{color:var(--paper);font-size:15px;line-height:1.35}.transport-option ul,.transport-tips ul{margin:0;padding-left:18px}.transport-map-link{background:#faf7ee14;border:1px solid rgba(250,247,238,.16);color:#f5d097;justify-self:start;min-height:34px}.transport-map-link:hover,.transport-map-link:focus-visible{background:#f5d09726;border-color:#f5d09757;color:var(--paper)}.transport-tips{background:#f5d09714;border:1px solid rgba(245,208,151,.14);border-radius:8px;display:grid;gap:8px;padding:12px 14px}.activity-list{display:grid;gap:12px;margin-top:22px}.activity-row{background:#faf7ee0f;border:1px solid rgba(250,247,238,.12);border-radius:8px;display:grid;gap:16px;grid-template-columns:118px minmax(0,1fr);padding:16px 17px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.activity-row.current{background:#b12d1d33;border-color:#f2b7a973}.activity-row.next{background:#bb8a351f;border-color:#bb8a3552}.activity-row time{color:#faf7ee94;font-size:13px;font-weight:850;text-transform:uppercase}.activity-row strong,.activity-place{color:var(--paper);font:800 16px/1.35 var(--sans)}.activity-place{align-items:center;background:transparent;border:0;cursor:pointer;display:inline-flex;gap:7px;padding:0;text-align:left;transition:color .18s ease}.activity-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:9px}.activity-map-link{background:#faf7ee14;border:1px solid rgba(250,247,238,.14);color:#faf7eecc;min-height:31px;padding-inline:10px}.activity-map-link:hover,.activity-map-link:focus-visible{background:#faf7ee26;border-color:#faf7ee47;color:var(--paper)}.activity-status{background:#faf7ee1f;border:1px solid rgba(250,247,238,.2);border-radius:999px;color:#f5d097;display:inline-flex;font-size:11px;font-weight:900;line-height:1;padding:7px 8px;text-transform:uppercase}.activity-place:hover,.activity-place:focus-visible{color:#f2b7a9}.activity-row p{color:#faf7eeb8;font-size:14px;line-height:1.6;margin:7px 0 0}.icon-button,.modal-close{align-items:center;background:#faf7ee1a;border:1px solid rgba(250,247,238,.22);border-radius:50%;color:var(--paper);cursor:pointer;display:inline-flex;height:48px;justify-content:center;transition:background .18s ease,transform .18s ease;width:48px}.icon-button:hover,.icon-button:focus-visible{background:#faf7ee2e;transform:translate(3px)}.places-section{background:var(--paper)}.split-heading{align-items:end;display:grid;gap:34px;grid-template-columns:minmax(0,.8fr) minmax(280px,.65fr);margin-left:0;max-width:1120px;text-align:left}.split-heading p:not(.date-line){margin-bottom:5px}.filter-row{gap:9px;margin:-14px 0 30px}.filter-row button{background:#fffdf8bd;border:1px solid rgba(30,46,61,.13);border-radius:999px;color:var(--muted);cursor:pointer;font:800 13px/1 var(--sans);min-height:39px;padding:0 14px;transition:background .18s ease,color .18s ease,transform .18s ease}.filter-row button:hover,.filter-row button:focus-visible,.filter-row button.active{background:var(--ink);color:var(--paper);transform:translateY(-1px)}.destination-grid{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}.destination-card{background:#fffdf8;border:1px solid rgba(30,46,61,.12);border-radius:8px;box-shadow:0 18px 46px #1e2e3d14;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}.destination-card:hover{box-shadow:0 26px 62px #1e2e3d24;transform:translateY(-5px)}.destination-photo{aspect-ratio:4 / 3;background-image:var(--photo-url, url(/assets/destination-sheet.png));background-position:var(--photo-position, var(--photo-x) var(--photo-y));background-size:var(--photo-size, 300% 200%);min-height:0;width:100%}.destination-card-copy{padding:25px 25px 26px}.destination-card-copy h3{color:var(--ink);font-family:var(--serif);font-size:31px;font-weight:620;line-height:1.05;margin:11px 0 13px}.destination-card-copy p{color:var(--muted);font-size:16px;line-height:1.58;margin:0}.destination-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.destination-card-copy button{background:var(--vermilion);color:var(--paper)}.destination-actions button{margin-top:0}.destination-map-link{background:#1e2e3d0d;border:1px solid rgba(30,46,61,.13);color:var(--ink);min-height:46px;padding-inline:15px}.destination-map-link:hover,.destination-map-link:focus-visible{background:var(--ink);color:var(--paper)}.notes-section{background:linear-gradient(180deg,#fbf8ef,#f2e9d8);border-top:1px solid rgba(30,46,61,.08)}.notes-grid{display:grid;gap:22px;grid-template-columns:1.15fr repeat(2,minmax(0,.9fr))}.checklist-confirmed{background:linear-gradient(135deg,#65724f47,#1e2e3df5),var(--ink);border:1px solid rgba(250,247,238,.14);border-radius:8px;box-shadow:0 24px 58px #1e2e3d29;color:var(--paper);display:grid;gap:24px;grid-template-columns:220px minmax(0,1fr);margin-bottom:24px;padding:26px}.checklist-confirmed-heading{align-items:flex-start;display:flex;gap:12px}.checklist-confirmed-heading svg{color:#c8d1a8;flex:0 0 auto}.checklist-confirmed-heading span,.checklist-group-head>span{color:#faf7ee94;display:block;font-size:12px;font-weight:850;text-transform:uppercase}.checklist-confirmed-heading strong{display:block;font-family:var(--serif);font-size:30px;font-weight:620;line-height:1.05;margin-top:4px}.confirmed-list{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.checklist-grid{display:grid;gap:22px;grid-template-columns:repeat(2,minmax(0,1fr))}.checklist-group{background:#fffdf8;border:1px solid rgba(30,46,61,.12);border-radius:8px;box-shadow:0 18px 46px #1e2e3d12;padding:26px}.checklist-group:first-child{grid-column:span 2}.checklist-group-head{align-items:flex-start;border-bottom:1px solid rgba(30,46,61,.1);display:grid;gap:16px;grid-template-columns:42px minmax(0,1fr);margin-bottom:18px;padding-bottom:18px}.checklist-group-head>span{color:var(--vermilion);font-size:13px;padding-top:4px}.checklist-group h3{color:var(--ink);font-family:var(--serif);font-size:30px;font-weight:620;line-height:1.08;margin:0}.checklist-group-head p{color:var(--muted);font-size:14px;line-height:1.45;margin:7px 0 0}.checklist-items{display:grid;gap:0}.checklist-item{display:grid;gap:12px;grid-template-columns:30px minmax(0,1fr);padding:14px 0}.checklist-item+.checklist-item{border-top:1px solid rgba(30,46,61,.08)}.checklist-confirmed .checklist-item{background:#faf7ee12;border:1px solid rgba(250,247,238,.1);border-radius:8px;padding:12px}.checklist-confirmed .checklist-item+.checklist-item{border-top:1px solid rgba(250,247,238,.1)}.checklist-status{align-items:center;border-radius:999px;display:inline-flex;height:28px;justify-content:center;margin-top:-2px;width:28px}.checklist-item.done .checklist-status{background:#65724f29;color:var(--moss)}.checklist-confirmed .checklist-item.done .checklist-status{background:#c8d1a824;color:#dce8bb}.checklist-item.pending .checklist-status{background:#bb8a3526;color:#9a6e25}.checklist-item.warning .checklist-status{background:#b12d1d1f;color:var(--vermilion)}.checklist-item.optional .checklist-status{background:#5b6d8121;color:#566b80}.checklist-item-title{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px}.checklist-item-title strong{color:var(--ink);font-size:15px;font-weight:850;line-height:1.35}.checklist-confirmed .checklist-item-title strong{color:var(--paper)}.checklist-item-title span{color:var(--vermilion);font-size:12px;font-weight:900;text-transform:uppercase}.checklist-confirmed .checklist-item-title span{color:#f5d097}.checklist-item p,.checklist-item li{color:var(--muted);font-size:14px;line-height:1.52}.checklist-confirmed .checklist-item p,.checklist-confirmed .checklist-item li{color:#faf7eead}.checklist-item p{margin:6px 0 0}.checklist-item ul{margin:8px 0 0;padding-left:17px}.checklist-item li+li{margin-top:4px}.checklist-footer-grid{margin-top:24px}.critical-card,.decision-card{background:#fffdf8;border:1px solid rgba(30,46,61,.12);border-radius:8px;box-shadow:0 18px 46px #1e2e3d12;padding:28px}.critical-card>svg{color:var(--vermilion)}.decision-card>svg{color:var(--moss)}.critical-card h3,.decision-card h3{color:var(--ink);font-family:var(--serif);font-size:28px;font-weight:620;line-height:1.08;margin:18px 0 14px}.critical-card ul{margin:0;padding-left:20px}.critical-card li,.decision-card p{color:var(--muted);font-size:16px;line-height:1.62}.critical-card li+li{margin-top:9px}.decision-card p{margin:0}.closing-section{background:linear-gradient(90deg,rgba(177,45,29,.1),transparent 34%),linear-gradient(180deg,#f6f1e6,#fbf8ef)}.closing-panel{margin:0 auto;max-width:820px;text-align:center}.closing-panel>svg{color:var(--vermilion);margin-bottom:22px}.closing-panel a{background:var(--ink);color:var(--paper);margin-top:32px}.closing-panel a svg{transform:rotate(180deg)}.modal-open{overflow:hidden}.modal-backdrop{align-items:center;background:#0a141e9e;display:flex;inset:0;justify-content:center;padding:28px;position:fixed;z-index:50}.destination-modal{background:#fffdf8;border-radius:8px;box-shadow:0 38px 90px #00000047;display:grid;grid-template-columns:minmax(280px,.92fr) minmax(320px,1.08fr);max-height:min(790px,calc(100svh - 56px));max-width:1040px;overflow:auto;position:relative;width:min(1040px,100%)}.destination-modal .destination-photo{aspect-ratio:auto;min-height:100%}.modal-close{background:#faf7eeeb;border-color:#1e2e3d21;color:var(--ink);position:absolute;right:18px;top:18px;z-index:2}.modal-close:hover,.modal-close:focus-visible{background:var(--ink);color:var(--paper);transform:rotate(6deg)}.modal-copy{padding:58px 56px 50px}.modal-copy h2{font-size:46px;margin-top:12px}.modal-copy .cost-pills{margin-top:18px}.modal-map-link{background:#b12d1d14;border:1px solid rgba(177,45,29,.18);color:var(--vermilion);margin-top:16px;min-height:42px;padding-inline:15px}.modal-map-link:hover,.modal-map-link:focus-visible{background:var(--vermilion);color:var(--paper)}.modal-copy>p{color:var(--muted);font-size:18px;line-height:1.68;margin:20px 0 0}.modal-details{border-top:1px solid rgba(30,46,61,.14);display:grid;gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);margin-top:32px;padding-top:28px}.modal-details strong{align-items:center;color:var(--ink);display:flex;font-size:15px;gap:8px;margin-bottom:10px}.modal-details p,.modal-details li{color:var(--muted);font-size:15px;line-height:1.62}.modal-details p,.modal-details ul{margin:0}.modal-details ul{padding-left:20px}.shopping-note{align-items:center;background:#b12d1d14;border:1px solid rgba(177,45,29,.16);border-radius:8px;display:flex;gap:9px;padding:13px 14px}.modal-gallery{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:18px}.modal-gallery img{aspect-ratio:16 / 10;border-radius:7px;height:100%;object-fit:cover;width:100%}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1080px){.hero-section{grid-template-columns:1fr;min-height:auto;padding-top:110px}.hero-copy,.travel-pulse{max-width:720px}.hero-copy h1{font-size:62px}.hero-image-wrap{border-radius:24px;margin-top:42px;min-height:460px}.route-strip{bottom:22px;left:var(--page-gutter);max-width:calc(100vw - var(--page-gutter) * 2);right:auto}.rail-map{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:22px}.rail-map:before{display:none}.rail-stop{background:#fffdf8b3;border:1px solid rgba(30,46,61,.11);border-radius:8px;min-height:140px;padding:24px 18px}.weather-layout,.currency-layout{grid-template-columns:1fr}.trip-forecast-list,.forecast-placeholder-days{grid-template-columns:repeat(auto-fit,minmax(124px,1fr))}.destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notes-grid{grid-template-columns:1fr}}@media(max-width:760px){.site-header{align-items:flex-start;height:auto;padding:14px 18px}.brand strong{display:none}.site-header nav{flex-wrap:wrap;justify-content:flex-end}.site-header nav a{font-size:13px;padding:8px 9px}.hero-section{padding:104px var(--page-gutter) 42px}.hero-copy h1{font-size:44px}.hero-lead{font-size:17px}.hero-actions{align-items:stretch;flex-direction:column}.travel-pulse{grid-template-columns:1fr;margin-top:24px;padding:17px}.pulse-main strong{font-size:28px}.primary-action,.ghost-action,.destination-card-copy button,.destination-card-copy .destination-map-link,.closing-panel a{justify-content:center;width:100%}.hero-image-wrap{min-height:330px}.route-strip{border-radius:8px;bottom:16px;left:var(--page-gutter);max-width:none;right:var(--page-gutter)}.section-pad{padding-bottom:70px;padding-top:72px}.section-heading h2,.closing-panel h2,.modal-copy h2{font-size:38px}.section-heading p:not(.date-line),.closing-panel p{font-size:16px}.split-heading,.destination-modal,.modal-details{grid-template-columns:1fr}.current-weather-card,.trip-forecast-card,.currency-converter-card,.currency-rates-card{padding:22px}.weather-now strong{font-size:62px}.forecast-head{align-items:flex-start;display:grid;gap:8px;justify-content:stretch}.forecast-head strong{font-size:24px}.weather-facts,.currency-controls,.currency-result-grid{grid-template-columns:1fr}.currency-rate-head{align-items:flex-start;display:grid;justify-content:stretch}.currency-rate-head button{width:100%}.forecast-pending{grid-template-columns:1fr}.forecast-placeholder-days{grid-template-columns:repeat(2,minmax(0,1fr))}.rail-map,.destination-grid,.notes-grid,.checklist-confirmed,.checklist-grid,.confirmed-list{grid-template-columns:1fr}.checklist-confirmed,.checklist-group{padding:20px}.checklist-group:first-child{grid-column:auto}.checklist-confirmed-heading strong,.checklist-group h3{font-size:26px}.checklist-group-head{gap:12px;grid-template-columns:34px minmax(0,1fr)}.day-list{border-top:0;display:grid;gap:14px}.day-card{background:#faf7ee0e;border:1px solid rgba(250,247,238,.13);border-radius:8px;gap:14px;grid-template-columns:74px minmax(0,1fr);padding:16px 14px}.day-card:before{background:linear-gradient(180deg,#f5d09766,#faf7ee00);bottom:-15px;content:"";left:50px;position:absolute;top:72px;width:1px}.day-card:after{background:var(--ink);border:2px solid rgba(245,208,151,.82);border-radius:999px;box-shadow:0 0 0 6px #f5d09714;content:"";height:12px;left:43px;position:absolute;top:23px;width:12px}.day-card:last-child:before{display:none}.day-card.today,.day-card.special{margin-inline:0;padding-inline:14px}.day-card.today:after{border-color:var(--vermilion);box-shadow:0 0 0 6px #b12d1d24}.day-card.past{opacity:.78}.day-card.special{background:linear-gradient(135deg,#bb8a3533,#b12d1d14 42%,#faf7ee0e)}.day-date{align-items:center;display:flex;flex-direction:column;gap:6px;padding-top:0;position:relative;text-align:center;z-index:1}.day-date span{font-size:11px;margin-bottom:0}.day-date strong{font-size:28px;line-height:.95;white-space:nowrap}.day-badge{font-size:10px;margin-top:0;padding:6px 8px}.day-city{font-size:11px}.day-card h3{font-size:26px;margin-bottom:8px}.day-base,.day-note{font-size:14px}.day-main{display:contents}.day-main>.day-city,.day-main>.day-heading-row,.day-main>h3,.day-main>.day-base,.day-main>.day-note,.day-main>.day-special{grid-column:2;min-width:0}.day-main>.transport-panel{grid-column:1 / -1;min-width:0}.day-heading-row{align-items:flex-start;flex-direction:column;gap:10px}.day-heading-row h3{margin:8px 0 0}.day-special{margin-top:12px;max-width:none;padding:11px 12px}.day-special.milestone{align-items:center;gap:12px;grid-column:1 / -1;padding:14px}.day-special-number{font-size:29px;height:56px;width:56px}.day-special strong{font-size:12px}.day-special.milestone strong{font-size:16px}.day-special span,.day-special.milestone span{font-size:13px}.day-special.milestone .day-special-number{font-size:29px}.transport-panel{margin-top:12px;max-width:none}.transport-panel summary{padding:13px 14px}.transport-content{padding:14px}.transport-option{padding:13px}.activity-list{gap:10px;grid-column:1 / -1;margin-top:16px}.activity-row{gap:10px;grid-template-columns:70px minmax(0,1fr);padding:12px}.activity-row time{font-size:11px;line-height:1.25;overflow-wrap:anywhere}.activity-row strong,.activity-place{font-size:14px;line-height:1.32}.activity-place{min-height:32px}.activity-row p{font-size:13px;line-height:1.45}.activity-row .cost-pills.compact{margin-top:8px}.activity-row .cost-pill{font-size:11px;padding:7px 8px}.destination-modal .destination-photo{aspect-ratio:4 / 3;min-height:0}.modal-backdrop{align-items:flex-end;padding:14px}.destination-modal{max-height:calc(100svh - 28px)}.modal-copy{padding:34px 25px 28px}}
