:root{--paper: #f6f0e6;--paper-dark: #ebe3d6;--paper-cream: #fffdf8;--ink: #2a2622;--muted: #6b6459;--accent: #b8432f;--accent-soft: rgba(184, 67, 47, .12);--rail: #c9bfae;--line-soft: rgba(120, 101, 77, .22);--panel-shadow: 0 16px 36px rgba(42, 38, 34, .08);--panel-shadow-hover: 0 20px 46px rgba(42, 38, 34, .12);--radius-panel: 14px;--font-display: "Fraunces", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--measure: 38rem;--column: calc(var(--measure) + 3rem);--motif-side-w: min(9.25rem, 24vw);--motif-gap: 1.25rem}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.55;background-color:#f4efe6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.22'/%3E%3C/svg%3E"),radial-gradient(130% 100% at 50% -16%,rgba(255,255,255,.92),transparent 60%),radial-gradient(90% 78% at 4% 26%,rgba(184,67,47,.13),transparent 62%),radial-gradient(88% 72% at 96% 8%,rgba(137,84,59,.16),transparent 58%),radial-gradient(75% 55% at 50% 100%,rgba(185,144,95,.1),transparent 72%),linear-gradient(180deg,#e8dfd1,#f4efe6 26%,#f4efe6);background-size:240px 240px,auto,auto,auto,auto,auto;background-blend-mode:soft-light,normal,normal,normal,normal,normal;background-attachment:fixed;min-height:100vh;overflow-x:hidden}#app{position:relative;z-index:0;width:100%;max-width:100%;margin:0 auto;padding:clamp(1rem,4vw,2rem);padding-bottom:5.75rem;isolation:isolate;overflow-x:clip}#app:before,#app:after{content:"";position:fixed;pointer-events:none;z-index:-1;border-radius:999px;filter:blur(50px)}#app:before{width:min(46vw,34rem);height:min(46vw,34rem);left:-10rem;top:18vh;background:radial-gradient(circle,#b8432f21,#b8432f00 72%)}#app:after{width:min(44vw,32rem);height:min(44vw,32rem);right:-9rem;bottom:12vh;background:radial-gradient(circle,#6e4f3624,#6e4f3600 72%)}.scene-motifs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:visible;color:var(--ink);-webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 12%,rgba(0,0,0,.78) 88%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 12%,rgba(0,0,0,.78) 88%,transparent 100%)}.motif{position:absolute;opacity:.11}.motif-img{display:block;width:100%;height:auto;filter:grayscale(1) brightness(.24) contrast(1.06)}.motif--arc{left:calc(50% - var(--column) / 2 - var(--motif-gap) - var(--motif-side-w));width:var(--motif-side-w);top:12.5%;transform-origin:left center;transform:translateY(-50%) rotate(11deg)}.motif--eiffel{left:calc(50% + var(--column) / 2 + var(--motif-gap));width:var(--motif-side-w);top:37.5%;transform-origin:right center;transform:translateY(-50%) rotate(-12deg)}.motif--louvre{left:calc(50% - var(--column) / 2 - var(--motif-gap) - var(--motif-side-w));width:var(--motif-side-w);top:62.5%;transform-origin:left center;transform:translateY(-50%) rotate(10deg)}.motif--notre{left:calc(50% + var(--column) / 2 + var(--motif-gap));width:min(9.75rem,25vw);top:87.5%;transform-origin:right center;transform:translateY(-50%) rotate(-11deg)}@media(max-width:640px){:root{--motif-side-w: min(5.5rem, 20vw);--motif-gap: .65rem}.motif{opacity:.065}.motif--arc{transform-origin:left center;transform:translateY(-50%) rotate(8deg)}.motif--eiffel{transform-origin:right center;transform:translateY(-50%) rotate(-9deg)}.motif--louvre{transform-origin:left center;transform:translateY(-50%) rotate(8deg)}.motif--notre{width:min(5.75rem,21vw);transform-origin:right center;transform:translateY(-50%) rotate(-8deg)}}@media(prefers-reduced-motion:reduce){.motif{opacity:.08}.motif--arc,.motif--louvre{transform-origin:left center;transform:translateY(-50%)}.motif--eiffel,.motif--notre{transform-origin:right center;transform:translateY(-50%)}}.journal{position:relative;z-index:1;max-width:calc(var(--measure) + 3rem);margin-left:auto;margin-right:auto;display:flex;flex-direction:column;gap:2.5rem}.journal-day,.day-inner,.itinerary,.stop,.stop-body,.stop-heading,.booking-card,.cost-sheet,.cost-row{min-width:0;max-width:100%}.journal-cover{text-align:center;padding:2.8rem 1.25rem 2.2rem;border:none;border-radius:0;background:radial-gradient(135% 120% at 50% -16%,rgba(255,255,255,.84),transparent 58%),linear-gradient(180deg,#ffffff6b,#faf4eb8f 45%,#f7f0e53d);box-shadow:none;position:relative}.journal-cover:after{content:"";position:absolute;left:50%;bottom:.35rem;width:min(20rem,46vw);height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--accent) 42%,var(--paper-dark)) 50%,transparent 100%);opacity:.9}.journal-eyebrow{margin:0;font-family:var(--font-body);font-size:.68rem;font-weight:650;letter-spacing:.28em;text-transform:uppercase;color:color-mix(in srgb,var(--muted) 78%,var(--accent))}.journal-title{margin:.45rem 0 .35rem;display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,2.5vw,1rem);flex-wrap:wrap;font-family:var(--font-display);font-size:clamp(2.95rem,12vw,4.35rem);font-weight:680;font-variation-settings:"opsz" 72;letter-spacing:-.035em;line-height:1}.journal-title-eiffel{flex-shrink:0;display:block;height:clamp(3.1rem,11vw,4.5rem);width:auto;object-fit:contain;filter:grayscale(1) brightness(.1) contrast(1.08);opacity:.9}.journal-title-text{display:inline-block}.journal-meta{margin:.85rem auto 0;max-width:42rem;font-size:.9rem;color:color-mix(in srgb,var(--muted) 88%,#4f473d);line-height:1.5}.booking-panel{margin-bottom:.5rem}.booking-panel-title{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(1.35rem,4vw,1.6rem);font-weight:600;font-variation-settings:"opsz" 48;letter-spacing:-.02em;text-align:center}.booking-panel-subtitle{margin:-.5rem 0 1rem;text-align:center;font-size:.86rem;color:var(--muted);letter-spacing:.01em}.booking-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:720px){.booking-grid{grid-template-columns:1fr 1fr}.booking-card--hotel{grid-column:1 / -1}}.booking-card{padding:1.2rem 1.3rem;background:linear-gradient(165deg,#fffefb,#faf6ee);border:1px solid color-mix(in srgb,var(--paper-dark) 78%,white);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow);transition:transform .18s ease,box-shadow .18s ease}.booking-card:hover{transform:translateY(-2px);box-shadow:var(--panel-shadow-hover)}.booking-card--hotel{text-align:center}.booking-kicker{margin:0 0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.booking-card-title{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.25}.booking-route{margin:.45rem 0 0;font-size:.88rem;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}.booking-route a,.booking-route a:visited{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}.booking-route a:hover{color:color-mix(in srgb,var(--ink) 86%,var(--accent))}.booking-facts{margin:.85rem 0 0;display:grid;gap:.35rem 1rem}.booking-facts div{display:grid;grid-template-columns:5rem 1fr;gap:.5rem;font-size:.88rem;line-height:1.35}.booking-facts dt{margin:0;color:var(--muted);font-weight:500}.booking-facts dd{margin:0;color:var(--ink)}.booking-seats{margin:.75rem 0 0;font-size:.82rem;color:var(--ink)}.booking-hint{margin:.55rem 0 0;font-size:.78rem;color:var(--muted);line-height:1.4}.booking-meta{margin:.35rem 0 0;font-size:.88rem;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.booking-meta a{color:var(--accent);text-decoration:none}.booking-meta a:hover{text-decoration:underline}.booking-hotel-total{margin:.85rem 0 0;font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--ink)}.booking-meta-inline{font-family:var(--font-body);font-size:.75rem;font-weight:400;color:var(--muted)}.journal-days{display:flex;flex-direction:column;gap:1.55rem}.program-panel{text-align:center;margin-top:-.2rem}.program-panel-title{margin:0;font-family:var(--font-display);font-size:clamp(1.4rem,4.2vw,1.7rem);font-weight:600;letter-spacing:-.02em;color:var(--ink)}.program-panel-subtitle{margin:.4rem auto 0;max-width:44rem;font-size:.87rem;color:var(--muted);line-height:1.45}.journal-day{position:relative;display:flex;gap:0;padding:1.2rem 1.1rem 1.2rem .4rem;border-radius:var(--radius-panel);border:1px solid color-mix(in srgb,var(--paper-dark) 78%,white);background:linear-gradient(160deg,#ffffffb8,#f9f3e9d1);box-shadow:0 12px 32px #2a26220f}.day-rail{position:absolute;left:1.25rem;top:2.5rem;bottom:1rem;width:2px;background:linear-gradient(180deg,var(--accent) 0%,var(--rail) 45%,var(--rail) 100%);border-radius:2px;opacity:.62}.day-inner{flex:1;padding-left:2.85rem;min-width:0}.day-head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.05rem}.day-content{overflow:hidden}.journal-day.is-collapsed .day-content{display:none}.day-step{flex-shrink:0;width:2.5rem;height:2.5rem;display:grid;place-items:center;margin-left:-2.85rem;font-family:var(--font-display);font-size:1rem;font-weight:600;color:#fff;background:var(--accent);border-radius:50%;box-shadow:0 8px 18px var(--accent-soft);z-index:1;border:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.day-step:hover{transform:translateY(-1px);box-shadow:0 10px 24px #841c1c42}.day-step:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 75%,white);outline-offset:2px}.day-head-text{min-width:0;padding-top:.08rem;position:relative;padding-left:0}.day-label{margin:0;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);position:absolute;top:-.7rem;left:0;line-height:1}.day-label time{text-transform:uppercase;letter-spacing:.08em;font-weight:600}.day-theme{margin:0;display:flex;flex-direction:column;gap:.15rem}.day-theme-main{font-family:var(--font-display);font-size:clamp(1.24rem,3.8vw,1.56rem);font-weight:650;font-variation-settings:"opsz" 52;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}.day-theme-sub{font-family:var(--font-body);font-size:.86rem;font-weight:500;line-height:1.45;letter-spacing:.01em;color:color-mix(in srgb,var(--accent) 70%,#6b6459)}.itinerary{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}.stop{display:block;padding:.62rem .72rem .72rem;border-radius:12px}.stop-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.stop-time{font-family:var(--font-body);font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--muted) 86%,#483f35);line-height:1.4;padding-top:0;flex-shrink:0}.stop-time-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.08rem;padding:.1rem 0;border-radius:0;border:none;background:none}.stop-time-wrap--range .stop-time-line:last-child{opacity:.9}.stop-time-line{display:block;font-variant-numeric:tabular-nums}.stop-body{padding-bottom:.55rem;border-bottom:1px solid color-mix(in srgb,var(--rail) 48%,transparent)}.stop:last-child .stop-body{border-bottom:none;padding-bottom:0}.stop-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.25rem 1rem;margin-top:.25rem}.stop-title{margin:0;flex:1 1 14rem;min-width:0;font-family:var(--font-display);font-size:clamp(1.03rem,2.4vw,1.2rem);font-weight:600;font-variation-settings:"opsz" 48;letter-spacing:-.025em;line-height:1.38;color:var(--ink);overflow-wrap:anywhere}.stop-title strong{font-weight:700;color:var(--ink)}.stop-official{flex-shrink:0;display:inline-flex;align-items:center;margin-top:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.2;color:#7f2626;text-decoration:none;border-bottom:none;transition:color .16s ease}.stop-links{display:inline-flex;flex-direction:row;gap:.45rem;align-items:center;white-space:nowrap;min-width:0;justify-content:flex-end}.stop-official--maps{color:#8e2a2a}.stop-official:hover{color:#5f1212}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stop-note{margin:.55rem 0 0;max-width:36rem;font-size:.86rem;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}.stop-risk{display:inline-flex;margin-top:.45rem;padding:.15rem .42rem;border-radius:999px;font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.stop-risk--medium{background:#b17e2121;color:#7b5b1f}.stop-risk--high{background:#841c1c24;color:#6c1717}.stop-important{margin:.5rem 0 0;max-width:38rem;font-size:.84rem;font-weight:600;line-height:1.45;color:#7d1f1f}.stop-important--critical{border-left:3px solid #7d1f1f;padding-left:.5rem}.stop-important strong{color:#651717;font-weight:700}.step-detail{margin-top:.65rem;padding-left:.85rem;padding-top:.2rem;padding-bottom:.2rem;border-left:2px solid color-mix(in srgb,var(--ink) 10%,var(--paper-dark))}.step-detail--wait{border-left-color:color-mix(in srgb,var(--accent) 35%,var(--paper-dark))}.step-detail-tag{display:block;margin-bottom:.35rem;font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);opacity:.9}.route-legs{display:flex;flex-direction:column;gap:.65rem}.route-leg-top{margin-bottom:.15rem}.route-mode{font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);opacity:.88}.route-mode--rer{color:#224a79}.route-mode--metro{color:#5a3485}.route-mode--coach{color:#7a3f1a}.route-mode--flight{color:#0a5f54}.route-mode--walk{color:#4e5d33}.route-endpoints{margin:.15rem 0 .4rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .45rem;font-size:.87rem;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}.route-from{font-weight:500}.route-mid{color:var(--muted);font-weight:500;font-size:.8rem;letter-spacing:.02em}.route-to{font-weight:500}.route-chips{margin:0;display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center}.route-chip{display:inline-flex;align-items:baseline;gap:.3rem;padding:.18rem .45rem;border-radius:999px;font-size:.72rem;line-height:1.25;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.route-chip-k{font-weight:500;color:var(--muted);letter-spacing:.02em}.route-chip-v{font-weight:600;font-variant-numeric:tabular-nums}.route-door{margin:.5rem 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;font-size:.78rem;line-height:1.4}.route-door-k{font-weight:600;color:var(--muted);letter-spacing:.04em}.route-door-v{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}.route-hint{margin:.45rem 0 0;font-size:.78rem;line-height:1.45;color:var(--muted);font-style:italic;overflow-wrap:anywhere}.route-hint strong{font-style:normal;font-weight:600;color:var(--ink)}.step-wait-line{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem}.step-wait-val{font-family:var(--font-body);font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink)}.step-wait-hint{font-size:.72rem;font-weight:500;color:var(--muted);letter-spacing:.02em}.now-next{position:fixed;left:50%;transform:translate(-50%);bottom:.85rem;z-index:15;width:min(42rem,calc(100vw - 1.2rem));border:1px solid color-mix(in srgb,var(--rail) 80%,transparent);border-radius:10px;background:#fffdf8f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.5rem .7rem;box-shadow:0 8px 30px #14110c1f}.now-next-item{margin:0;display:grid;grid-template-columns:5.9rem 1fr;gap:.4rem;font-size:.77rem;line-height:1.35}.now-next-item+.now-next-item{margin-top:.2rem}.now-next-k{font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7d1f1f}.now-next-v{color:var(--ink)}.cost-sheet{margin-top:2.75rem;padding:2rem 1.35rem 2.25rem;background:linear-gradient(175deg,#fffefb,#f7f1e8);border:1px solid color-mix(in srgb,var(--paper-dark) 78%,white);border-radius:var(--radius-panel);box-shadow:0 1px #ffffffd9 inset,var(--panel-shadow)}.cost-sheet-head{text-align:center;margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(201,191,174,.75)}.cost-sheet-title{margin:0;font-family:var(--font-display);font-size:clamp(1.65rem,5vw,2rem);font-weight:600;font-variation-settings:"opsz" 60;letter-spacing:-.02em;color:var(--ink)}.cost-sheet-tagline{margin:.5rem 0 0;font-size:.88rem;color:var(--muted);line-height:1.45}.cost-block{margin-bottom:1.75rem}.cost-block:last-of-type{margin-bottom:0}.cost-block-title{margin:0 0 .65rem;font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.cost-block--ledger{margin-top:2rem;padding-top:1.75rem;border-top:1px dashed var(--rail)}.cost-rows{display:flex;flex-direction:column}.cost-row{display:grid;grid-template-columns:1fr auto;gap:.75rem 1.25rem;align-items:baseline;padding:.5rem 0;font-size:.95rem;line-height:1.4;border-bottom:1px solid rgba(201,191,174,.45)}.cost-rows .cost-row:last-child{border-bottom:none}.cost-what{margin:0;color:var(--ink);font-weight:500;min-width:0;overflow-wrap:anywhere}.cost-sub{font-weight:400;font-size:.85em;color:var(--muted)}.cost-amt{margin:0;font-family:var(--font-display);font-size:.98rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.cost-totals{margin-top:2rem;padding-top:1.35rem;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:.55rem}.cost-total-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.92rem;color:var(--muted)}.cost-total-line .cost-amt{color:var(--ink)}.cost-amt--total{font-size:1.05rem}.cost-total-line--grand{margin-top:.65rem;padding-top:.85rem;border-top:1px solid rgba(201,191,174,.8);font-size:1rem;font-weight:600;color:var(--ink)}.cost-amt--grand{font-size:1.65rem;font-weight:700;color:var(--accent)}@media(max-width:520px){.journal{gap:1.8rem}.journal-cover,.journal-day,.booking-card,.cost-sheet{border-radius:12px}.journal-cover{border-radius:0;padding:2.25rem .9rem 1.9rem}.journal-day{padding:1rem .8rem 1rem .22rem}.day-inner{padding-left:2.5rem}.day-step{margin-left:-2.5rem}.day-rail{left:1.08rem;top:2.35rem}.stop{padding:.5rem .4rem .62rem}.stop-time{font-size:.68rem}.stop-body{padding-left:0}.stop-meta{align-items:baseline;gap:.4rem}.stop-title{width:100%}.stop-links{white-space:nowrap;flex-wrap:nowrap;gap:.3rem;margin-top:0}.stop-official{margin-top:0;line-height:1.1}.step-detail{padding-left:.65rem}}
