/* One continuous page. A small companion keeps the four stops in view. */
.intro.wrap,.exchange-layout.wrap{max-width:1200px}
.exchange-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:40px;align-items:start;margin-top:8px}
.exchange-sections{min-width:0}
.sequence-section{margin:0;scroll-margin-top:24px}
.sequence-section+.sequence-section{margin-top:53px}
.section-heading{display:flex;align-items:center;gap:12px;min-height:57px;margin:0 0 18px;padding:16px 0 0;border-top:1px solid var(--line)}
.section-heading .section-number{font:9px/1 var(--mono);letter-spacing:.04em;color:#968b9f;flex-shrink:0}
.section-heading>h2{font:500 14px/1.4 var(--sans);letter-spacing:0;color:#69755b;margin:0}
.section-heading.journey-heading{padding-bottom:0}
#calendar-panel,#quiz-panel,#insight-panel{min-height:0;width:100%}
#calendar-panel .card-intro{max-width:640px}
#calendar-panel .calendar-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:25px;margin:19px 0 0}
#calendar-panel .calendar-layout .exchange-calendar{padding:16px 13px 14px}
#calendar-panel .calendar-layout .exchange-calendar__day,#calendar-panel .calendar-layout .exchange-calendar__blank{min-height:40px}
#calendar-panel .calendar-layout .exchange-calendar__choice{flex-direction:column;align-items:stretch;gap:8px}
#calendar-panel .calendar-layout .exchange-calendar__choice button{align-self:flex-start}
#calendar-panel .calendar-context{border-top:0;padding-top:0}
#calendar-panel .calendar-context>summary{display:none}
#calendar-panel .calendar-context:not([open])>summary{display:flex}
#calendar-panel .calendar-note-art{display:flex;height:100px}
#calendar-panel .calendar-note-art img{width:85px;height:80px}
#calendar-panel .calendar-note-art span{font-size:6px}
#cards-section .journey-grid{display:block}
.card-mini-tabs.mini-route{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:0;margin:0 0 18px;border-bottom:1px solid #dddccd}
.card-mini-tabs.mini-route button{position:relative;display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;gap:5px;padding:10px 5px 11px;min-height:54px;border-radius:5px 5px 0 0;background:transparent;color:#8a8c77;border-bottom:2px solid transparent}
.card-mini-tabs.mini-route button>span{font-size:7px;width:14px;height:14px;line-height:1}
.card-mini-tabs.mini-route button>strong{font:400 10px/1.5 var(--sans);padding-right:1px}
.card-mini-tabs.mini-route button>i{position:absolute;right:3px;top:2px;font-size:7px}
.card-mini-tabs.mini-route button:hover{background:#f0eee3;color:var(--purple)}
.card-mini-tabs.mini-route button.active{background:#eee8f1;border-bottom-color:#b4a0bf;color:var(--purple)}
.card-mini-tabs.mini-route button.active>strong{font-weight:600}
#quiz-panel .story-art{height:190px}
#quiz-panel .question,#quiz-panel .reveal-copy{max-width:690px}
/* A taller, almost vertical thread carries the Foscarino bottle. */
.journey-route.route-column{position:sticky;top:22px;width:100%;padding:17px 0 0;align-self:start}
.mascot-definition{position:absolute;overflow:hidden;pointer-events:none}
.journey-route #route-map,.journey-route #route-map.collapsed{display:block;padding:0;border:0;border-radius:0;background:transparent;aspect-ratio:auto;overflow:visible}
.journey-route .map-title{padding:0 0 17px;margin:0 0 5px;border-bottom:1px solid #dedecf}
.journey-route .map-title>.eyebrow{font-size:8px;letter-spacing:.13em;color:#8d8d77}
.journey-route .map-title>p{font:italic 22px/1.2 var(--serif);margin:8px 0 8px;color:#768067}
.route-instruction{display:block;font:10px/1.5 var(--sans);color:#99917d}
.journey-route .phase-roadmap{--route-h:clamp(400px,56vh,540px);position:relative;height:var(--route-h);padding:0;margin-top:7px}
.route-desktop-visual{position:absolute;left:calc(36px - var(--route-h)*.0666666667);top:0;width:calc(var(--route-h)*.1333333333);height:100%;z-index:3;pointer-events:none;overflow:visible}
[data-route-path]{fill:none;stroke:#c8c4ad;stroke-width:1.35;stroke-linecap:round}
[data-route-progress]{fill:none;stroke:#9c87ab;stroke-width:2;stroke-linecap:round;stroke-dasharray:0 9999}
[data-route-mascot]{transform-box:fill-box;will-change:transform}
.is-travelling [data-route-mascot] use{animation:bottle-stride .22s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 85%}
@keyframes bottle-stride{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
.journey-route .phase-roadmap>.phase-stop{position:absolute;left:0;width:100%;min-height:70px;height:70px;display:flex;align-items:center;padding:5px 12px 5px 73px;gap:0;background:transparent;text-align:left;z-index:2}
.journey-route .phase-roadmap>.phase-stop[data-stage=calendar]{top:calc(10% - 35px)}
.journey-route .phase-roadmap>.phase-stop[data-stage=cards]{top:calc(36.666667% - 35px)}
.journey-route .phase-roadmap>.phase-stop[data-stage=quiz]{top:calc(63.333333% - 35px)}
.journey-route .phase-roadmap>.phase-stop[data-stage=insight]{top:calc(90% - 35px)}
.journey-route .phase-roadmap .phase-dot{position:absolute;left:26px;top:25px;width:20px;height:20px;flex-basis:20px;font-size:7px;border:1px solid #c6c6b1;background:var(--paper);color:#9c977f;box-shadow:none}
.journey-route .phase-roadmap .phase-stop.active .phase-dot{opacity:0}
.journey-route .phase-roadmap .phase-stop.done .phase-dot{background:#e8edd8;border-color:#b9c29f}
.journey-route .phase-roadmap .phase-stop strong{font:500 17px/1.25 var(--serif);color:#76806a}
.journey-route .phase-roadmap .phase-stop small{font:9px/1.5 var(--sans);color:#9b9882;margin-top:7px}
.journey-route .phase-roadmap .phase-stop.active strong,.journey-route .phase-roadmap .phase-stop:hover strong{color:var(--purple)}
.journey-route .phase-roadmap .phase-check{position:absolute;right:1px;top:28px;font-size:9px;padding:0}
.journey-route .planned-day{margin:6px 0 17px;padding:12px 30px 13px 14px;background:#eeece1}
.journey-route .planned-day>span{margin-bottom:6px}
.journey-route .planned-day>strong{font-size:10px}
.journey-route .map-next{padding:0}
.journey-route .map-next>p{font:italic 14px/1.4 var(--serif);margin:5px 0 3px;color:#8c8874}
.route-next-button{display:inline-flex;align-items:center;gap:14px;min-height:35px;background:transparent;padding:4px 0;color:#7a6589;font:500 11px/1.4 var(--sans)}
.route-next-button>span{font-size:16px;font-weight:400}
.route-next-button:hover{text-decoration:underline;text-underline-offset:4px}
.journey-route .route-footer{padding-top:11px;margin-top:10px;gap:2px}
.journey-route #journey-summary{width:100%;font:8px/1.5 var(--sans);color:#a19b85;margin:0 0 4px}
.journey-route .route-footer>span{font-size:8px}
.journey-route .route-footer .text-button{font-size:9px;min-height:30px}
.mobile-route-strip{display:none}
.journey-route #map-toggle{display:none!important}
/* Notebook and bottle details open over the page; they are not another stop. */
#exchange-dialog{width:800px;max-width:calc(100vw - 38px);max-height:90vh;max-height:90dvh;overflow:auto;margin:auto;padding:0;border:1px solid #d5cfbe;border-radius:14px;background:var(--card);color:var(--ink);box-shadow:0 25px 95px #253c2d32;overscroll-behavior:contain}
#exchange-dialog::backdrop{background:#25332673;backdrop-filter:blur(3px)}
.exchange-dialog-top{position:sticky;top:0;z-index:5;display:flex;justify-content:flex-end;align-items:center;min-height:56px;padding:8px 21px;border-bottom:1px solid #e4dfd0;background:var(--card)}
.exchange-dialog-close{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:7px 10px;border:0;border-radius:5px;background:transparent;color:#7d7186;font:500 12px/1.2 var(--sans);cursor:pointer}
.exchange-dialog-close>span{font-size:24px;line-height:1;font-weight:400}
.exchange-dialog-close:hover{background:#f0eaf3;color:var(--purple)}
#overlay-panel{min-height:0;border:0;border-radius:0;box-shadow:none;background:var(--card);overflow:visible}
#overlay-panel .card-top{padding-top:18px}
#overlay-panel .card-bottom{border-radius:0}
body.dialog-open{overflow:hidden}
.page-noscript{padding-block:24px}.page-noscript h2{font:500 26px/1.3 var(--serif)}.page-noscript p{font-size:13px}
@media(max-width:1150px){.exchange-layout{grid-template-columns:minmax(0,1fr) 240px;gap:29px}.journey-route .phase-roadmap>.phase-stop{padding-left:68px}.journey-route .phase-roadmap .phase-stop strong{font-size:16px}.card-mini-tabs.mini-route{gap:3px}.card-mini-tabs.mini-route button{grid-template-columns:12px 1fr;gap:4px;padding-inline:3px}.card-mini-tabs.mini-route button>strong{font-size:9px}}
@media(min-width:901px) and (max-width:1050px){#calendar-panel .calendar-layout{display:block;margin-top:0}#calendar-panel .calendar-context{border-top:1px solid #e5dfd1;margin-top:17px;padding-top:0}#calendar-panel .calendar-context>summary{display:flex;padding-top:7px}#calendar-panel .calendar-note-art{display:none}#calendar-panel .calendar-layout .exchange-calendar__choice{flex-direction:row;align-items:center}#calendar-panel .calendar-layout .exchange-calendar__choice button{align-self:center}.card-mini-tabs.mini-route{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.card-mini-tabs.mini-route button{min-height:36px;align-items:center}.card-mini-tabs.mini-route button>strong{font-size:10px}}
@media(max-width:900px){.exchange-layout{display:flex;flex-direction:column;gap:0;margin-top:0}.exchange-sections{width:100%}.journey-route.route-column{order:-1;position:sticky;top:0;z-index:30;align-self:stretch;padding:0;background:#f6f3e9f5;backdrop-filter:blur(8px);border-bottom:1px solid #dedbc9;margin-bottom:23px;box-shadow:0 7px 14px #f6f3e980}.journey-route #route-map,.journey-route #route-map.collapsed,.journey-route .route-footer{display:none}.mobile-route-strip{display:block;width:360px;max-width:100%;margin:0 auto;padding:3px 0 7px}.route-mobile-visual{display:block;width:100%;height:auto;overflow:visible;pointer-events:none}.route-points circle{fill:var(--paper);stroke:#b7bda1;stroke-width:1.1}.mobile-route-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:-17px}.mobile-route-links .phase-stop{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;min-height:35px;height:auto;padding:4px 0;background:transparent;text-align:center;width:100%}.mobile-route-links .phase-stop>.phase-dot{position:static;display:inline;font:7px var(--mono);width:auto;height:auto;flex:none;border:0;border-radius:0;background:transparent;color:#a49b85;box-shadow:none}.mobile-route-links .phase-stop>strong{font:500 10px/1.35 var(--sans);color:#86876f;white-space:nowrap}.mobile-route-links .phase-stop.active>strong,.mobile-route-links .phase-stop:hover>strong{color:var(--purple)}.mobile-route-links .phase-stop.active>.phase-dot{color:var(--purple)}.mobile-route-links .phase-stop.done>.phase-dot{color:#6f8558}.mobile-route-foot{display:flex;align-items:center;justify-content:space-between;padding:0 9px;font:8px/1.5 var(--sans);color:#a09a84}.mobile-route-foot button{font:500 9px var(--sans);min-height:29px;color:#7a6589;background:none;padding:2px 0 2px 12px}.sequence-section{scroll-margin-top:139px}.sequence-section+.sequence-section{margin-top:44px}.section-heading{min-height:43px;margin-bottom:16px;padding-top:9px}.card-mini-tabs.mini-route{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.card-mini-tabs.mini-route button{grid-template-columns:15px 1fr;gap:5px;min-height:51px}.card-mini-tabs.mini-route button>strong{font-size:10px}#calendar-panel .calendar-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:23px}#quiz-panel .card-body,#quiz-panel .card-top,#quiz-panel .card-bottom{padding-inline:26px}}
@media(max-width:680px){.intro.wrap{padding-bottom:15px}.journey-route.route-column{margin-bottom:19px}.mobile-route-strip{padding-top:2px;padding-bottom:4px}.mobile-route-foot{font-size:7px}.mobile-route-foot button{min-height:26px;font-size:8px}.mobile-route-links .phase-stop>strong{font-size:9px}.mobile-route-links .phase-stop>.phase-dot{font-size:6px}.mobile-route-links .phase-stop{gap:4px;min-height:32px}.sequence-section{scroll-margin-top:131px}.sequence-section+.sequence-section{margin-top:34px}.section-heading{gap:9px;min-height:42px;margin-bottom:15px}.section-heading>h2{font-size:12px}.section-heading .section-number{font-size:8px}.card-mini-tabs.mini-route{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:109px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;gap:5px;padding-bottom:3px;margin-bottom:16px}.card-mini-tabs.mini-route button{min-height:45px;align-items:center;padding-block:8px}.card-mini-tabs.mini-route button>strong{font-size:10px}#calendar-panel .calendar-layout{display:block;margin-top:0}#calendar-panel .calendar-layout .exchange-calendar{padding:14px 11px 12px}#calendar-panel .calendar-layout .exchange-calendar__day,#calendar-panel .calendar-layout .exchange-calendar__blank{min-height:39px}#calendar-panel .calendar-layout .exchange-calendar__choice{flex-direction:row;align-items:center;gap:8px}#calendar-panel .calendar-layout .exchange-calendar__choice button{align-self:center}#calendar-panel .calendar-context{border-top:1px solid #e5dfd1;margin-top:16px;padding-top:0}#calendar-panel .calendar-context>summary{display:flex;min-height:43px;padding-top:5px}#calendar-panel .calendar-note-art{display:none}#quiz-panel .card-body,#quiz-panel .card-top,#quiz-panel .card-bottom{padding-inline:20px}#quiz-panel .story-art{height:169px}#exchange-dialog{max-width:calc(100vw - 22px);max-height:90vh;max-height:90dvh;border-radius:11px}.exchange-dialog-top{min-height:49px;padding:5px 12px}.exchange-dialog-close{font-size:11px;min-height:38px;padding:5px 8px}#overlay-panel .card-top{padding-top:14px}}
@media(max-width:355px){.mobile-route-links .phase-stop{gap:3px}.mobile-route-links .phase-stop>strong{font-size:8px}.mobile-route-links .phase-stop>.phase-dot{font-size:6px}.mobile-route-foot{font-size:7px}.section-heading>h2{font-size:11px}#quiz-panel .card-body,#quiz-panel .card-top,#quiz-panel .card-bottom{padding-inline:17px}}
@media(prefers-reduced-motion:reduce){[data-route-mascot]{will-change:auto}.is-travelling [data-route-mascot] use{animation:none}.route-next-button,.phase-stop{transition:none!important}}

@media(max-width:900px){.exchange-sections .play-card{scroll-margin-top:168px}.mobile-route-links .phase-stop{min-height:44px}}
@media(max-width:680px){.card-mini-tabs.mini-route{display:none}}

@media(min-width:901px) and (max-height:820px){.journey-route .phase-roadmap{--route-h:clamp(330px,50vh,410px)}.journey-route .map-title{padding-bottom:11px}.journey-route .planned-day{margin-bottom:10px}.journey-route .route-footer{padding-top:6px;margin-top:6px}.journey-route .map-next>p{margin-bottom:0}}
