@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap');
:root{--paper:#eeece5;--ink:#30352e;--muted:#84877d;--line:#d4d5cb;--accent:#6e785e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,'PingFang SC',sans-serif;font-size:14px;transition:background 1.5s,color 1.5s}body:after{content:'';position:fixed;inset:0;pointer-events:none;opacity:.14;z-index:30;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' opacity='.2' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}header{height:106px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}#brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;font-family:'Noto Serif SC',serif;font-size:25px;font-weight:600;letter-spacing:3px}#brand span{font:11px 'DM Mono',monospace;letter-spacing:2px;border-left:1px solid var(--line);padding-left:16px}nav{display:flex;gap:32px;font-size:12px}nav span{margin-left:9px;color:var(--muted);font-family:'DM Mono',monospace}footer{max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px}footer span:nth-child(2){font:10px 'DM Mono',monospace;letter-spacing:1.5px}footer button{font-size:11px}.home{max-width:1140px;margin:auto;min-height:calc(100svh - 177px);display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 45px 70px;gap:90px}.eyebrow{font:10px 'DM Mono',monospace;letter-spacing:2px;color:var(--muted);display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';width:22px;height:1px;background:var(--muted)}h1{font-family:'Noto Serif SC','Songti SC',serif;font-weight:400;font-size:clamp(52px,5.6vw,78px);line-height:1.38;letter-spacing:4px;margin:28px 0 24px}.home-copy>p{font-size:13px;line-height:2.2;color:#777c70;letter-spacing:1px}.region{display:flex;gap:6px;margin:34px 0 19px;align-items:center;font-size:11px;color:var(--muted)}.region button{padding:7px 12px;border-radius:2px;font-size:11px}.region button.active{background:#dfe2d7;color:#3e4934}.primary{background:var(--ink);color:var(--paper);padding:17px 23px;border:1px solid var(--ink);font-size:12px;letter-spacing:2px;display:flex;align-items:center;justify-content:space-between;gap:62px;transition:background .25s,transform .25s}.primary:hover{background:#515e45;transform:translateY(-2px)}.tiny{font-size:10px;color:var(--muted);letter-spacing:1px;margin-top:17px}.destinations{margin-top:45px;font:10px 'DM Mono',monospace;color:var(--muted);line-height:2}.destinations button{font-size:10px;padding:0;border-bottom:1px solid #bbc0af}.printer-wrap{align-self:center;position:relative;width:350px;justify-self:center;padding-top:8px}.printer-label{display:flex;justify-content:space-between;font:9px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted);padding:0 20px 13px}.status-dot{display:inline-block;height:5px;width:5px;border-radius:50%;background:#7a875b;margin-right:6px}.printer{height:33px;border:1px solid #bfc2b8;border-radius:7px;background:linear-gradient(#dddcd3,#cbcfc3);padding:11px 18px;box-shadow:0 4px 12px #343f2b12;position:relative;z-index:2}.slot{height:8px;background:#353a31;border-radius:5px;box-shadow:inset 0 2px 4px #000}.paper-window{width:288px;margin:-14px auto 0;overflow:hidden;padding-bottom:16px;filter:drop-shadow(0 8px 8px #3a40361a)}.receipt{font-family:'DM Mono','Courier New',monospace;background:#fcfbf5;padding:34px 25px 24px;position:relative;color:#414238;clip-path:polygon(0 0,100% 0,100% 98%,98% 100%,96% 98%,94% 100%,92% 98%,90% 100%,88% 98%,86% 100%,84% 98%,82% 100%,80% 98%,78% 100%,76% 98%,74% 100%,72% 98%,70% 100%,68% 98%,66% 100%,64% 98%,62% 100%,60% 98%,58% 100%,56% 98%,54% 100%,52% 98%,50% 100%,48% 98%,46% 100%,44% 98%,42% 100%,40% 98%,38% 100%,36% 98%,34% 100%,32% 98%,30% 100%,28% 98%,26% 100%,24% 98%,22% 100%,20% 98%,18% 100%,16% 98%,14% 100%,12% 98%,10% 100%,8% 98%,6% 100%,4% 98%,2% 100%,0 98%)}.receipt .flight-icon{text-align:center;font-size:28px;line-height:1;margin:3px 0 14px}.receipt h2{font-size:19px;font-weight:400;letter-spacing:5px;margin:0;text-align:center}.receipt .sub{text-align:center;font-size:8px;letter-spacing:1.5px;margin:9px 0 21px}.dash{border-top:1px dashed #b7b8ae;margin:18px 0}.receipt .row{display:flex;justify-content:space-between;font-size:10px;margin:13px 0;gap:10px}.receipt .row span{color:#93968a}.destination{font-family:'Noto Serif SC',serif;text-align:center;font-size:29px;letter-spacing:5px;padding:5px 0}.receipt .city-en{font-size:10px;text-align:center;letter-spacing:3px;margin:7px 0 22px}.receipt .note{font-family:'Noto Serif SC',serif;font-size:10px;text-align:center;line-height:2;letter-spacing:1px}.barcode{height:39px;margin-top:22px;background:repeating-linear-gradient(90deg,#393d33 0 1px,transparent 1px 3px,#393d33 3px 6px,transparent 6px 8px,#393d33 8px 9px,transparent 9px 13px,#393d33 13px 15px,transparent 15px 17px,#393d33 17px 18px,transparent 18px 23px);opacity:.85}.serial{font-size:8px;letter-spacing:2px;text-align:center;margin-top:8px}.printer-foot{text-align:center;font:9px 'DM Mono',monospace;letter-spacing:1.8px;color:var(--muted);margin-top:17px}.printing .receipt{animation:print 5.2s linear both}.printing .status-dot{animation:blink .2s infinite}.printing .printer-foot{animation:blink 1.5s infinite}.printing .paper-window{min-height:489px}@keyframes print{0%{transform:translateY(-101%)}100%{transform:translateY(0)}}@keyframes blink{50%{opacity:.3}}.arrival{position:fixed;inset:0;z-index:40;background:#101410;color:#efeee8;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;animation:fadein 1s}.arrival p{font:11px 'DM Mono',monospace;letter-spacing:3px;color:#a2aa9f}.arrival h1{font-size:34px;letter-spacing:5px;margin:0;text-align:center;animation:fadein 2s}.arrival .small{font-size:12px;letter-spacing:3px;color:#969e91}.journey{max-width:1120px;margin:0 auto;padding:32px 42px 18px;animation:fadein 1.2s}.journey-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.location{font-family:'Noto Serif SC',serif;font-size:23px;letter-spacing:3px}.location small{font:10px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted);margin-left:12px}.time-block{font:20px 'DM Mono',monospace;display:flex;align-items:center;gap:14px}.time-block span{font:10px Arial;color:var(--muted)}.landscape{position:relative;width:100%;aspect-ratio:2.65;overflow:hidden;background:var(--sky);border-radius:2px;transition:background 2s}.landscape svg{display:block;width:100%;height:100%}.scene-caption{position:absolute;bottom:16px;left:20px;color:var(--scene-ink,#4b594e);font:9px 'DM Mono',monospace;letter-spacing:2px;opacity:.7}.scene-weather{position:absolute;top:17px;right:20px;color:var(--scene-ink,#4b594e);font-size:10px;letter-spacing:1px}.story-area{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;padding-top:31px}.chapter{font:9px 'DM Mono',monospace;letter-spacing:2px;color:var(--muted);margin-bottom:12px}.story-area h2{font-family:'Noto Serif SC',serif;font-size:23px;font-weight:400;line-height:1.7;letter-spacing:2px;margin:0 0 12px}.story-area p{font-size:12px;line-height:2.1;color:var(--muted);margin:0;max-width:390px}.choices{display:flex;flex-direction:column;gap:8px}.choice{border:1px solid var(--line);padding:15px 18px;text-align:left;display:flex;justify-content:space-between;gap:18px;align-items:center;font-size:12px;transition:background .2s,transform .2s}.choice:hover{background:#7c8b6812;transform:translateX(3px)}.choice small{font:9px 'DM Mono',monospace;color:var(--muted);white-space:nowrap}.choice .num{font:9px 'DM Mono',monospace;color:var(--muted);margin-right:12px}.trip-progress{display:flex;align-items:center;gap:17px;margin-top:29px;font-size:9px;color:var(--muted)}.progress-track{flex:1;height:2px;background:var(--line)}.progress-track i{display:block;height:100%;background:var(--accent);transition:width 1s}.memory-link{font-size:10px;padding:4px 0;border-bottom:1px solid var(--line)}.result-tag{display:inline-block;font-size:10px;padding:5px 8px;background:#8b916018;color:var(--muted);margin-bottom:10px}.result-next{margin-top:12px}.night{--paper:#1d2526;--ink:#dddccd;--muted:#a0aaa3;--line:#3d4b49;--accent:#bac397}.end{max-width:900px;min-height:calc(100svh - 180px);margin:auto;display:grid;grid-template-columns:1fr 300px;gap:100px;align-items:center;padding:35px}.end h1{font-size:45px}.end .receipt{padding:30px 24px}.memory-list{font-size:10px;line-height:2.2}.memory-list p{margin:7px 0}.end-actions{display:flex;gap:15px;align-items:center;margin-top:30px}.text-button{font-size:11px;border-bottom:1px solid var(--line);padding:9px 0}.end .primary{gap:15px}.stamp{border:1px solid #929d7b;border-radius:50%;height:68px;width:68px;display:flex;align-items:center;justify-content:center;font:9px 'DM Mono',monospace;transform:rotate(-13deg);color:#768465;position:absolute;top:80px;right:20px;opacity:.7}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(760px,90vw);max-height:82svh;padding:28px;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#17201870;backdrop-filter:blur(5px)}.modal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;font-size:12px;letter-spacing:2px}.modal-top button{font-size:24px}.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.city-card{border:1px solid var(--line);padding:18px;position:relative}.city-card h3{font-family:'Noto Serif SC',serif;font-size:21px;font-weight:400;margin:11px 0}.city-card small{font:9px 'DM Mono',monospace;color:var(--muted)}.city-card p{font-size:11px;color:var(--muted);line-height:1.9}.city-card .swatch{height:4px;width:27px}.city-card button{font-size:10px;padding:7px 0;border-bottom:1px solid var(--line)}.empty{font-family:'Noto Serif SC',serif;font-size:20px;padding:25px 0}.journal-entry{border-top:1px solid var(--line);padding:15px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}.journal-entry span{font-size:12px}.journal-entry small{font:9px 'DM Mono',monospace;color:var(--muted)}.about-copy{font-size:12px;line-height:2.2;color:var(--muted)}.about-copy a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes fadein{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){.home{min-height:700px}}@media(max-width:800px){header{height:80px;padding:0 6%}#brand{font-size:22px}#brand span{font-size:9px;padding-left:11px}nav{gap:13px;font-size:10px}nav span{margin-left:4px}.home{padding:48px 7% 45px;gap:35px;grid-template-columns:1fr;min-height:auto}.home-copy{text-align:center}.eyebrow{justify-content:center}h1{font-size:51px;margin:22px 0}.home-copy>p{font-size:12px}.region{justify-content:center;margin-top:24px}.primary{margin:auto;gap:65px}.destinations{margin-top:23px}.printer-wrap{width:320px}.paper-window{width:270px}.printer-foot{font-size:8px}footer{padding:22px 6%}footer span:nth-child(2){display:none}footer span{font-size:9px}.journey{padding:25px 6% 18px}.location{font-size:20px}.location small{display:block;font-size:8px;margin:7px 0 0}.time-block{font-size:18px;gap:8px}.time-block span{font-size:9px}.landscape{aspect-ratio:1.45}.landscape svg{width:170%;max-width:none;transform:translateX(-20%)}.story-area{grid-template-columns:1fr;gap:24px;padding-top:25px}.story-area h2{font-size:22px}.story-area p{max-width:none}.choice{padding:17px 14px}.trip-progress{flex-wrap:wrap;margin-top:23px}.memory-link{margin-left:auto}.scene-caption{font-size:8px;left:12px}.scene-weather{font-size:9px;right:12px}.end{grid-template-columns:1fr;gap:35px;padding:35px 8%}.end>div:first-child{text-align:center}.end h1{font-size:36px}.end-actions{justify-content:center}.end .receipt{width:285px;margin:auto}.city-grid{grid-template-columns:1fr 1fr}dialog{padding:20px}.arrival h1{font-size:27px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* A pocket guide, with the same quiet paper-and-ink language. */
.journey-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:17px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.guide-link{padding:0;font-size:11px;color:var(--ink)}.guide-link span{font-size:10px;color:var(--muted);margin:0 9px}.activity-filters{display:flex;gap:5px;margin-bottom:14px;flex-wrap:wrap}.activity-filters button{padding:6px 10px;color:var(--muted);font-size:10px;border:1px solid transparent}.activity-filters button.active{border-color:var(--line);color:var(--ink);background:#89947812}.story-area{gap:40px}.activity-choice{padding:14px 15px;gap:12px;align-items:center}.activity-choice>span{min-width:0}.choice-head{display:flex;align-items:baseline;gap:8px}.choice-head strong{font-size:12px;font-weight:400;line-height:1.6}.choice .category{font:9px Arial;color:var(--accent);white-space:nowrap}.choice-description{display:block;font-size:10px;line-height:1.8;color:var(--muted);margin-top:5px}.choice>small{font-size:9px;letter-spacing:0}.rest-choice{border-style:dashed;opacity:.85}.no-activity{font-size:11px!important;line-height:1.8!important;margin-bottom:13px!important}.more-options{display:flex;justify-content:space-between;width:100%;font-size:10px;color:var(--muted);padding:14px 0 0}.more-options span{font-family:'DM Mono',monospace}.route-trail{border-left:1px solid var(--line);padding:2px 0 2px 13px;margin-top:23px}.route-trail small{font-size:9px;color:var(--accent);letter-spacing:1px}.route-trail p{font-size:10px;margin-top:6px;line-height:1.9}.encounter{border-top:1px dashed var(--line);padding-top:15px;margin-top:4px}.encounter>small{font:8px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted)}.encounter h3{font-family:'Noto Serif SC',serif;font-weight:400;font-size:20px;margin:12px 0}.guide-book h2,.guide-book h3,.guide-book h4{font-family:'Noto Serif SC',serif;font-weight:400}.guide-heading{padding:15px 0 22px;border-bottom:1px solid var(--line)}.guide-heading small{font:9px 'DM Mono',monospace;color:var(--muted);letter-spacing:2px}.guide-heading h2{font-size:29px;line-height:1.6;margin:14px 0}.guide-heading p{color:var(--muted);font-size:11px;line-height:1.8}.guide-facts{padding:17px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 23px}.guide-facts p{font-size:11px;line-height:2;color:var(--muted);margin:0}.guide-facts b{font-weight:400;color:var(--ink);display:block;font-size:10px;letter-spacing:1px;margin-bottom:3px}.guide-book>h3{font-size:19px;margin:26px 0 16px}.guide-routes{display:grid;grid-template-columns:1fr 1fr;gap:15px}.guide-routes article{border:1px solid var(--line);padding:18px}.guide-routes article>small{font:9px 'DM Mono',monospace;color:var(--muted);letter-spacing:1px}.guide-routes h4{font-size:19px;margin:12px 0}.guide-routes p{font-size:10px;line-height:1.9;color:var(--muted)}.guide-routes ol{padding:0 0 0 18px;margin:18px 0 0}.guide-routes li{padding:6px 0;font-size:11px}.guide-routes li::marker{color:var(--muted);font-size:9px}.guide-routes li small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.guide-activities{display:grid;grid-template-columns:1fr 1fr;gap:0 23px}.guide-activities>div{padding:16px 0;border-top:1px solid var(--line)}.guide-activities small{font-size:9px;color:var(--muted)}.guide-activities h4{font-size:14px;line-height:1.7;margin:8px 0}.guide-activities p{font-size:10px;line-height:1.9;color:var(--muted);margin:0}.guide-footnote{border-top:1px solid var(--line);margin:18px 0 25px;padding-top:15px;font-size:10px;line-height:2;color:var(--muted)}.guide-footnote a{color:inherit;text-underline-offset:3px}.guide-book .primary{width:100%;gap:10px;justify-content:center}.city-card button+br+button{margin-top:8px}.saved-route{padding:10px 0 20px;color:var(--muted);font-size:11px;line-height:2}.saved-route small{font-size:9px;color:var(--accent)}
/* A geographic passport that stays completely in this browser. */
.passport-end{max-width:1080px;margin:auto;padding:50px 40px 36px;text-align:center}.passport-end .eyebrow{justify-content:center}.passport-end h1{font-size:36px;letter-spacing:2px;margin:22px 0 17px}.passport-end>p{font-size:12px;line-height:2.2;color:var(--muted)}.mobile-break{display:none}.passport-end .text-button{margin-top:17px}.passport-map{border:1px solid var(--line);margin-top:24px;text-align:left;background:#f2f1e9}.night .passport-map{background:#252f2d}.map-top{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.map-top>span{font:9px 'DM Mono',monospace;letter-spacing:1px}.map-top>span small{font:9px Arial;margin-left:12px;color:var(--muted);letter-spacing:0}.map-top button{font-size:10px;padding:6px 9px;color:var(--muted)}.map-top button.active{color:var(--ink);background:#90957818}.map-canvas{position:relative;overflow:hidden;aspect-ratio:2.1}.map-canvas svg{display:block;width:100%;height:100%;overflow:hidden}.map-grid{fill:none;stroke:var(--line);stroke-width:.45;opacity:.4}.map-grid path{vector-effect:non-scaling-stroke}.map-land{fill:#d6dace;stroke:#f2f1e9;stroke-width:.35;vector-effect:non-scaling-stroke;fill-rule:evenodd}.night .map-land{fill:#43524b;stroke:#26332d}.map-pin{cursor:pointer;outline:none}.pin-target{fill:transparent}.pin-core{fill:#f2f1e9;stroke:#7e8b77;stroke-width:1;vector-effect:non-scaling-stroke}.pin-halo{fill:#9d8952;opacity:0}.map-pin.lit .pin-core{fill:#9a8550;stroke:#f5f1dd;stroke-width:1}.map-pin.lit .pin-halo{opacity:.17}.map-pin:hover .pin-halo,.map-pin:focus .pin-halo{opacity:.4}.map-pin:focus .pin-core{stroke:var(--ink);stroke-width:2}.map-pin.fresh .pin-halo{animation:light-city 2s ease-out 3}.map-legend{position:absolute;left:20px;bottom:13px;font-size:8px;color:var(--muted);display:flex;align-items:center;gap:7px}.map-legend i{width:5px;height:5px;border-radius:50%;background:#9a8550;display:inline-block}.map-legend .unlit{background:none;border:1px solid #9aa38e;margin-left:8px}.map-city-chips{display:flex;flex-wrap:wrap;gap:7px;padding:17px 20px;border-top:1px solid var(--line)}.map-city-chips button{font-size:10px;padding:8px 10px;display:flex;align-items:center;gap:7px;color:var(--muted);border:1px solid transparent}.map-city-chips .selected{border-color:var(--line)}.map-city-chips i{width:5px;height:5px;border:1px solid #a6ad9c;border-radius:50%}.map-city-chips .lit{color:var(--ink)}.map-city-chips .lit i{border-color:#9a8550;background:#9a8550}.map-city-chips small{font-size:8px;color:#9a8550}.map-city-detail{padding:22px 25px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:135px}.map-city-detail small{font-size:8px;color:var(--muted);letter-spacing:1px}.map-city-detail h3{font-family:'Noto Serif SC',serif;font-size:24px;font-weight:400;letter-spacing:2px;margin:9px 0}.map-city-detail h3 span{font:9px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted);margin-left:7px}.map-city-detail p{font-size:10px;line-height:1.9;color:var(--muted);margin:6px 0}.map-city-detail .text-button{font-size:10px;margin-top:1px}.map-credit{text-align:right;font-size:8px;color:var(--muted);padding:0 20px 12px}.passport-end+.end{border-top:1px solid var(--line);padding-top:45px;min-height:auto;padding-bottom:50px}@keyframes light-city{0%{opacity:.6}100%{opacity:.17}}@media(max-width:800px){header{padding:0 5%}#brand{gap:8px}#brand span{font-size:8px;letter-spacing:1px;padding-left:9px}nav{gap:8px;font-size:9px}nav button{padding:4px 0}nav span{font-size:9px;margin-left:2px}.journey-tools{align-items:flex-start}.journey-tools>span{font-size:9px;white-space:nowrap;margin-top:2px}.guide-link span{display:none}.story-area{gap:20px}.choice-head{gap:7px}.choice-head strong{font-size:12px}.activity-choice{padding:14px 12px}.activity-choice>small{font-size:8px}.choice-description{font-size:9px}.guide-heading h2{font-size:25px}.guide-facts,.guide-routes{grid-template-columns:1fr}.guide-facts{gap:12px}.guide-activities{gap:0 15px}.guide-activities h4{font-size:13px}.guide-activities p{font-size:10px}.guide-routes{gap:12px}.passport-end{padding:35px 6% 30px}.passport-end h1{font-size:27px;line-height:1.8;letter-spacing:1px}.mobile-break{display:block}.map-top{padding:13px 12px;flex-wrap:wrap;gap:10px}.map-top>span{font-size:8px}.map-top>span small{margin-left:8px;font-size:8px}.map-top button{font-size:9px;padding:5px 7px}.map-city-chips{padding:10px;gap:3px}.map-city-chips button{font-size:9px;padding:8px 7px;gap:5px}.map-city-chips small{font-size:7px}.map-city-detail{padding:18px 15px;grid-template-columns:1fr;gap:7px}.map-city-detail h3{font-size:22px}.map-city-detail p{font-size:10px}.map-legend{left:12px;bottom:7px;font-size:7px;gap:4px}.map-canvas{aspect-ratio:1.9}.map-credit{font-size:7px;padding:0 12px 10px}.passport-end+.end{padding-top:35px}#modal .passport-map{margin-top:0}}
/* A city that keeps going while you watch. */
.rich-scene{aspect-ratio:2.45}.rich-scene>svg{animation:scene-reveal 1.1s ease-out}.rich-scene .scene-caption{font-size:9px;background:#eeecdfc9;padding:7px 10px;bottom:13px;left:14px;color:#4c5d50;letter-spacing:1px}.night .rich-scene .scene-caption{background:#283c38d9;color:#d1d7c6}.scene-clouds{animation:cloud-drift 35s ease-in-out infinite alternate}.scene-ripples{animation:ripples 4s ease-in-out infinite alternate}.scene-traveller{animation:traveller-step 12s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.idle-controls{display:flex;align-items:center;gap:15px;padding:16px 0;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line)}.idle-controls>span{margin-right:auto;color:var(--ink);display:flex;align-items:center;gap:7px}.live-dot{width:5px;height:5px;background:#8b9b6b;border-radius:50%;box-shadow:0 0 0 3px #8b9b6b13;animation:idle-pulse 2.5s infinite}.live-dot.paused{background:var(--muted);animation:none;box-shadow:none}.idle-controls [role=group]{display:flex;gap:2px}.idle-controls button{font:10px 'DM Mono',Arial;padding:6px 9px;color:var(--muted)}.idle-controls button.active{background:#8e9c781a;color:var(--ink)}.idle-controls #idle-pause{font:10px Arial;padding-right:0}.scene-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:17px 0 27px}.scene-strip>button{padding:0;text-align:left;min-width:0}.scene-thumb{display:block;aspect-ratio:1.9;overflow:hidden;background:#c8cdbb19;border:1px solid var(--line);position:relative}.scene-thumb>svg{display:block;width:100%;height:100%;object-fit:cover}.scene-strip .locked{opacity:1;cursor:default}.scene-strip .locked .scene-thumb{background:#99a3860b;border-style:dashed;display:flex;align-items:center;justify-content:center;font:13px 'DM Mono',monospace;color:var(--muted)}.scene-strip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px;color:var(--muted);margin-top:7px}.scene-strip .current .scene-thumb{border-color:#9a8b5e;box-shadow:0 0 0 1px #9a8b5e36}.scene-strip .current small{color:var(--ink)}.idle-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:52px}.idle-current h2{font-family:'Noto Serif SC',serif;font-size:25px;font-weight:400;line-height:1.7;letter-spacing:1px;margin:10px 0 11px}.idle-current p{font-size:12px;line-height:2.1;color:var(--muted);margin:0}.activity-running{display:flex;flex-wrap:wrap;gap:11px;font-size:9px;color:var(--muted);margin-top:20px}.activity-running>small{margin-left:auto;font:9px 'DM Mono',monospace}.activity-running>div{height:2px;flex-basis:100%;background:var(--line)}.activity-running i{display:block;height:100%;background:var(--accent);transition:width 1s linear}.idle-modes{display:flex;flex-wrap:wrap;gap:5px;margin:20px 0 12px}.idle-modes button{font-size:10px;color:var(--muted);border:1px solid var(--line);padding:8px 10px}.idle-modes .active{background:#8d9b7417;border-color:var(--accent);color:var(--ink)}.idle-small-actions{display:flex;gap:23px}.idle-small-actions .text-button{font-size:10px;color:var(--muted)}.idle-no-invitation{margin:25px 0 8px;padding:19px 16px;border:1px dashed var(--line);font-size:11px;line-height:2;color:var(--muted)}.idle-no-invitation>span{margin-right:6px}.idle-no-invitation small{font-size:9px;display:inline-block;padding-left:19px}.idle-invitation{margin-top:24px;padding:19px;border:1px solid #b6b395;background:#ad9b6009;animation:scene-reveal .6s}.idle-invitation>small{font:8px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted)}.idle-invitation h3{font-family:'Noto Serif SC',serif;font-size:20px;font-weight:400;line-height:1.7;margin:12px 0 10px}.idle-invitation p{font-size:11px}.idle-invitation .choice{margin-top:16px;padding:12px;font-size:11px}.idle-invitation .choice>small{font-size:8px}.idle-invitation .text-button{margin-top:9px;font-size:10px}.invitation-hint{display:block;font-size:8px;color:var(--muted);margin-top:12px}.idle-notebook{border:1px solid var(--line);min-width:0;align-self:start}.notebook-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:1px}.notebook-heading>small{font:8px 'DM Mono',monospace;color:var(--muted);letter-spacing:1px}#idle-feed{list-style:none;padding:4px 18px 9px;margin:0;max-height:324px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.feed-entry{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #a1aa8b18;align-items:baseline}.feed-entry time{font:8px 'DM Mono',monospace;color:var(--muted);white-space:nowrap}.feed-entry>div{font-size:10px;line-height:1.95;color:var(--muted)}.feed-memory>div,.feed-story>div,.feed-encounter>div{color:var(--ink)}.feed-choice time,.feed-pocket time{color:#a0874c}.feed-chip{display:inline-block;font-size:8px;margin-left:7px;background:#ab98581a;padding:1px 5px;color:#9b884c}.idle-collection-links{border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:14px}.idle-collection-links button{font-size:10px;letter-spacing:1px}.idle-collection-links span{font:9px 'DM Mono',monospace;color:var(--muted);margin-left:6px}.idle-footnote{font-size:9px;line-height:1.9;color:var(--muted);margin:25px 0 0;text-align:center}.offline-note{padding:12px 16px;background:#8c9e6d13;color:var(--muted);font-size:10px;line-height:1.9;margin:0 0 20px;display:flex;align-items:center;gap:12px}.offline-note button{margin-left:auto;font-size:19px}.resume-trip{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:24px;border-left:1px solid var(--line);padding:3px 0 3px 13px;font-size:11px}.resume-trip small{font-size:9px;color:var(--muted)}.pocket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.pocket-grid article{border:1px solid var(--line);padding:14px 13px 17px}.pocket-grid svg{display:block;width:100%;height:95px}.pocket-grid h3{font-family:'Noto Serif SC',serif;font-size:15px;font-weight:400;margin:11px 0}.pocket-grid p{font-size:10px;line-height:1.9;color:var(--muted)}.pocket-grid small{font-size:8px;line-height:1.7;color:var(--muted)}.album-intro p{font-family:'Noto Serif SC',serif;font-size:22px;line-height:1.7;margin:8px 0 10px}.album-intro small{font-size:10px;color:var(--muted)}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px 15px;margin-top:25px}.album-grid button{padding:0;text-align:left}.album-grid button>div{aspect-ratio:2;overflow:hidden;border:1px solid var(--line)}.album-grid svg{width:100%;height:100%;display:block}.album-grid button>span{display:block;font-family:'Noto Serif SC',serif;font-size:13px;line-height:1.8;margin-top:8px}.album-grid small{font-size:9px;color:var(--muted);display:block;margin-top:5px}.album-photo svg{width:100%;height:auto;display:block}.album-photo p{font:10px 'DM Mono',monospace;color:var(--muted)}.idle-end-keepsakes{max-width:1000px;margin:10px auto 40px;border-top:1px solid var(--line);padding:35px 30px 0;display:grid;grid-template-columns:1fr 1fr;gap:30px}.idle-end-keepsakes small{font:8px 'DM Mono',monospace;letter-spacing:1px;color:var(--muted)}.idle-end-keepsakes h2{font:23px 'Noto Serif SC',serif;line-height:1.7;margin:13px 0}.idle-end-keepsakes p{font-size:10px;color:var(--muted)}.idle-end-keepsakes .choice{font-size:11px;margin:5px 0 12px}.saved-keepsakes{display:flex;gap:23px;margin:0 0 20px}.saved-keepsakes .text-button{font-size:10px}@keyframes scene-reveal{from{opacity:.25}to{opacity:1}}@keyframes idle-pulse{50%{opacity:.35}}@keyframes cloud-drift{to{transform:translateX(17px)}}@keyframes ripples{to{transform:translateX(8px);opacity:.2}}@keyframes traveller-step{to{transform:translateX(17px)}}@media(max-width:800px){.rich-scene{aspect-ratio:1.6}.rich-scene>svg{width:160%;height:100%;transform:translateX(-19%)}.rich-scene .scene-caption{font-size:8px;left:9px;bottom:9px;padding:6px 7px}.idle-controls{gap:8px;padding:13px 0;font-size:9px}.idle-controls button{padding:5px 7px;font-size:9px}.idle-controls #idle-pause{font-size:9px}.scene-strip{display:flex;gap:8px;overflow-x:auto;margin:14px 0 24px;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.scene-strip>button{min-width:82px;width:82px}.scene-strip small{font-size:8px}.idle-layout{grid-template-columns:1fr;gap:25px}.idle-current h2{font-size:22px}.idle-current p{font-size:11px}.idle-modes button{font-size:10px;padding:8px 9px}.idle-notebook #idle-feed{max-height:310px}.idle-invitation{padding:16px}.idle-invitation h3{font-size:19px}.idle-footnote{text-align:left;font-size:8px}.pocket-grid{grid-template-columns:1fr 1fr;gap:11px}.pocket-grid h3{font-size:14px}.pocket-grid article{padding:12px}.album-grid{gap:18px 12px}.album-grid button>span{font-size:12px}.album-grid small{font-size:8px}.album-photo{margin:0 -5px}.album-photo>svg{aspect-ratio:1.55;object-fit:cover}.idle-end-keepsakes{margin:10px 6% 30px;padding:25px 0 0;grid-template-columns:1fr;gap:10px}.idle-end-keepsakes h2{font-size:22px}.resume-trip{margin:23px auto 0;text-align:left;width:max-content}.notebook-heading{padding:15px 16px}.notebook-heading small{font-size:7px}}
@media(prefers-reduced-motion:reduce){.rich-scene>svg,.scene-clouds,.scene-ripples,.scene-traveller,.live-dot,.idle-invitation{animation:none!important}.activity-running i{transition:none}}
#idle-invite-jump{color:#9a8651;font-size:9px}.city-preview{margin:-18px -18px 16px;aspect-ratio:1.75;overflow:hidden;border-bottom:1px solid var(--line)}.city-preview svg{width:100%;height:100%;display:block}.guide-scene-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:7px 0 24px}.guide-scene-pair figure{margin:0;min-width:0}.guide-scene-pair svg{width:100%;height:auto;display:block;border:1px solid var(--line)}.guide-scene-pair figcaption{font-size:9px;color:var(--muted);margin-top:8px;line-height:1.8}.photo-actions{display:flex;align-items:center;justify-content:space-between;gap:17px}.photo-actions button{font-size:10px}@media(max-width:800px){#idle-invite-jump{font-size:8px;padding:5px 0}.city-preview{margin:-18px -18px 15px}.guide-scene-pair{gap:10px}.guide-scene-pair figcaption{font-size:8px}.photo-actions button{font-size:9px}}
/* An invitation has room to breathe; Kyoto can be remembered up close. */
.invitation-read{display:block;margin-top:14px!important;color:var(--accent)!important;font-size:12px!important;text-underline-offset:4px;text-decoration:underline}.invitation-hint{font-size:11px;line-height:1.8}.invitation-reading{padding:12px 0 8px}.invitation-reading>small{font:10px 'DM Mono',monospace;letter-spacing:2px;color:var(--muted)}.invitation-reading h2{font:26px 'Noto Serif SC',serif;line-height:1.6;margin:18px 0}.invitation-reading p{font-size:15px;line-height:2.1;color:var(--ink)}.invitation-reading .reading-note{font-size:12px;color:var(--muted);margin:24px 0}.invitation-reading .choice{font-size:14px}.invitation-reading .text-button{font-size:12px;margin-top:12px}.sleep-skip{display:inline-flex;align-items:center;border:1px solid var(--line);background:#89947812;padding:12px 18px;font-size:13px;margin:5px 0 16px;color:var(--ink)}.sleep-skip[hidden]{display:none}.detail-steam{animation:steam-rise 4s ease-in-out infinite alternate;transform-origin:center}.idle-invitation p{font-size:13px;line-height:1.9}.idle-controls #idle-invite-jump{font-size:11px}.scene-strip small{font-size:10px}.pocket-grid p,.album-grid small{font-size:11px}.pocket-grid small{font-size:10px;line-height:1.9}@keyframes steam-rise{to{opacity:.35;transform:translateY(-6px)}}@media(max-width:800px){.idle-controls{flex-wrap:wrap}.idle-invitation p{font-size:13px}.invitation-reading h2{font-size:23px}.invitation-reading p{font-size:15px}.scene-strip>button{min-width:100px}.scene-strip small{font-size:10px}.pocket-grid p{font-size:12px}.pocket-grid small{font-size:10px}.album-grid small{font-size:11px}}@media(prefers-reduced-motion:reduce){.detail-steam{animation:none!important}}
/* The first screen is just a name and a departure. */
body.landing>header,body.landing>footer,body.boarding>header,body.boarding>footer{display:none}.minimal-home{min-height:100svh;padding:70px 24px;display:flex;align-items:center;justify-content:center;text-align:center}.minimal-home .home-copy{display:flex;flex-direction:column;align-items:center;transform:translateY(-4vh)}.minimal-home h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(54px,9vw,98px);font-weight:400;letter-spacing:-3px;line-height:1.15;margin:0 0 46px}.minimal-home #depart{font-size:14px;padding:17px 27px;min-height:52px;gap:28px}.home-passport{font-size:12px;color:var(--muted);margin-top:25px;padding:10px}.minimal-home .resume-trip{font-size:13px;margin:26px 0 0}.minimal-home .resume-trip small{font-size:12px}.ticket-stage{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:32px 20px 40px}.ticket-stage .printer-wrap{width:min(350px,100%)}.ticket-stage .paper-window{width:min(288px,calc(100% - 32px))}.ticket-stage .printer-label{font-size:10px}.ticket-actions{min-height:53px;text-align:center}.ticket-actions .primary{font-size:14px;min-height:50px;padding:15px 26px}.ticket-actions [hidden]{display:none}.arrival{padding:28px}.arrival-confirm{border:1px solid #64705f;color:#efeee8;padding:16px 25px;margin-top:18px;min-height:52px;display:flex;align-items:center;gap:30px;font-size:14px}.arrival-confirm:hover{background:#ffffff0a}.arrival h1{max-width:100%;line-height:1.8}.arrival .small{line-height:1.8;text-align:center}.map-empty{font-family:'Noto Serif SC',serif;text-align:center;font-size:14px;line-height:1.8;padding:24px;margin:0;border-top:1px solid var(--line);color:var(--muted)}#brand{font:23px Georgia,'Times New Roman',serif;letter-spacing:-.5px;font-weight:400}
/* Speed stays above the landscape and remains reachable while scrolling. */
#idle-controls{position:sticky;top:10px;z-index:20;background:var(--paper);border:1px solid var(--line);border-radius:5px;box-shadow:0 5px 15px #17291b08;margin:0 0 20px}.idle-controls{border:0;padding:12px 16px;justify-content:space-between;gap:16px;flex-wrap:wrap}.speed-picker{display:flex;align-items:center;gap:15px}.speed-picker>span{font-size:13px;color:var(--ink);white-space:nowrap}.idle-controls [role=group]{gap:5px}.idle-controls [data-idle-speed]{min-width:49px;min-height:42px;padding:10px 12px;font-size:15px;border:1px solid var(--line);border-radius:3px;color:var(--ink);background:transparent}.idle-controls [data-idle-speed].active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.travel-controls{display:flex;align-items:center;gap:15px}.travel-status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}.idle-controls #idle-pause{font-size:13px;border:1px solid var(--line);padding:10px 13px;min-height:42px;border-radius:3px;color:var(--ink)}.idle-controls #idle-invite-jump{font-size:12px;min-height:42px}#idle-invitation{scroll-margin-top:170px}@media(max-width:800px){.minimal-home h1{letter-spacing:-2px}.minimal-home .home-copy{transform:translateY(-3vh)}.ticket-stage{justify-content:flex-start;padding-top:25px}.ticket-stage .receipt{padding-top:28px}.arrival h1{font-size:26px;letter-spacing:2px}.arrival p{font-size:10px;letter-spacing:2px}#idle-controls{top:8px;margin-bottom:16px}.idle-controls{padding:11px 12px;gap:10px}.speed-picker{width:100%;justify-content:space-between;gap:10px}.speed-picker>span{font-size:13px}.idle-controls [data-idle-speed]{min-width:51px;min-height:44px;font-size:15px}.travel-controls{width:100%;gap:10px}.travel-status{margin-right:auto;font-size:12px}.idle-controls #idle-pause{min-height:40px;font-size:12px}#brand{font-size:21px;letter-spacing:-.7px}}
/* One unfolding landscape; future locations are never previewed. */
.flowing-scene{isolation:isolate;margin-bottom:27px}.flowing-scene .scene-frame{position:absolute;inset:0;overflow:hidden;pointer-events:none}.scene-camera{width:100%;height:100%;transform:scale(1.025);transition:transform 7s ease-in-out}.scene-camera>svg{display:block;width:100%;height:100%}.flowing-scene[data-flow="1"] .scene-camera{transform:scale(1.06) translateX(-.8%)}.flowing-scene[data-flow="2"] .scene-camera{transform:scale(1.045) translateX(.8%)}.scene-frame-current{z-index:1;animation:landscape-arrive 1.6s ease-out both}.scene-frame-outgoing{z-index:0;animation:landscape-leave 1.6s ease-out forwards}.flowing-scene .scene-caption{top:14px;bottom:auto;z-index:2}.flowing-scene .scene-weather{top:18px;bottom:auto;z-index:2;padding:6px 9px;background:#eeecdfc9;border-radius:2px;color:#4c5d50}.night .flowing-scene .scene-weather{background:#283c38d9;color:#d1d7c6}.scene-story{position:absolute;bottom:0;left:0;right:0;padding:45px 24px 19px;z-index:2;color:#f7f3e7;background:linear-gradient(transparent,#182b24c4);pointer-events:none}.scene-story>span{font-size:10px;letter-spacing:1px;color:#e0d4b4}.scene-story p{font-family:'Noto Serif SC',serif;font-size:15px;line-height:1.9;max-width:780px;margin:7px 0 0;text-wrap:pretty;animation:scene-line-in .7s ease-out}.scene-awaiting .scene-story>span{color:#ffe0a0}.idle-notebook{overflow:hidden}.idle-notebook #idle-invitation:empty{display:none}.idle-notebook .idle-invitation{margin:0;padding:23px;border:0;border-bottom:1px solid var(--line);background:#a28b4e0b}.idle-notebook .story-choice{background:#b1975b17;border-left:3px solid #a28b54}.choice-label{display:flex;align-items:center;gap:8px;font-size:12px;color:#8d7440;letter-spacing:1px}.choice-marker{font-size:19px;line-height:1}.idle-notebook .idle-invitation h3{font-size:25px;margin:13px 0 12px;line-height:1.5}.idle-notebook .idle-invitation p{font-size:14px;line-height:2;color:var(--ink)}.encounter-options{display:grid;gap:10px;margin-top:21px}.idle-notebook .encounter-options .choice{margin:0;padding:15px 16px;min-height:50px;font-size:14px}.idle-notebook .choice-accept{background:var(--ink);color:var(--paper);border-color:var(--ink)}.idle-notebook .choice-accept small{color:var(--paper);opacity:.8;font-size:10px}.idle-notebook .choice-pass{background:transparent;color:var(--ink)}.choice-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px 16px;margin-top:16px}.choice-footer .invitation-hint{font-size:11px;margin:0}.choice-footer .invitation-read{font-size:11px!important;margin:0!important;padding:8px 0;white-space:nowrap}.idle-notebook.has-invitation{border-color:#b19b68;box-shadow:0 8px 30px #65532a0c}.has-invitation .notebook-heading{background:#b1975b0a}.has-invitation #idle-feed{opacity:.48;max-height:150px;transition:opacity .3s}.idle-controls #idle-invite-jump.needs-answer{background:#a18a541c;border:1px solid #ac955d;color:var(--ink);font-size:12px;border-radius:3px;padding:9px 12px}.idle-notebook .feed-entry>div{font-size:12px}.idle-notebook .feed-entry time{font-size:10px}.night .choice-label{color:#d5bd82}.night .idle-notebook .story-choice{background:#b1975b17}@keyframes landscape-arrive{from{opacity:0}to{opacity:1}}@keyframes landscape-leave{from{opacity:1}to{opacity:0}}@keyframes scene-line-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:800px){.flowing-scene{aspect-ratio:1.45;margin-bottom:21px}.flowing-scene .scene-camera>svg{width:160%;height:100%;max-width:none;transform:translateX(-19%)}.flowing-scene .scene-caption{top:10px;left:10px;font-size:9px}.flowing-scene .scene-weather{top:10px;right:10px;font-size:10px}.scene-story{padding:40px 16px 16px}.scene-story p{font-size:13px;line-height:1.85;margin-top:5px}.scene-story>span{font-size:10px}.idle-layout .idle-notebook{order:-1}.idle-notebook .idle-invitation{padding:20px 17px}.idle-notebook .idle-invitation h3{font-size:23px}.idle-notebook .idle-invitation p{font-size:14px}.choice-footer .invitation-hint{font-size:11px}.travel-controls:has(.needs-answer){flex-wrap:wrap}.idle-controls #idle-invite-jump.needs-answer{min-height:42px}}@media(prefers-reduced-motion:reduce){.scene-frame-current,.scene-frame-outgoing,.scene-story p{animation:none!important}.scene-frame-outgoing{display:none}.scene-camera{transition:none!important;transform:none!important}.flowing-scene[data-flow] .scene-camera{transform:none}.has-invitation #idle-feed{transition:none}}
