@font-face{font-family:'Travel Sans';font-style:normal;font-weight:400 900;font-display:swap;src:url('./assets/fonts/noto-sc-variable.woff2') format('woff2')}
@font-face{font-family:'Travel Round';font-style:normal;font-weight:400 900;font-display:swap;src:url('./assets/fonts/nunito-variable.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
* ,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,p,figure{margin:0}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:disabled{cursor:default;opacity:.28}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
:root{color-scheme:light;--bg:oklch(95% .021 295);--ink:oklch(29% .07 295);--muted:oklch(48% .055 295);--purple:oklch(53% .19 290);--purple-soft:oklch(89% .065 295);--yellow:oklch(94% .15 104);--pink:oklch(87% .078 14);--line:oklch(90% .022 295);--radius:36px;font-family:'Travel Round','Travel Sans','PingFang SC','Microsoft YaHei',sans-serif;font-kerning:normal}
html{background:var(--bg);min-width:0}body{min-height:100svh;background:var(--bg);color:var(--ink);font-size:1rem;line-height:1.6;overflow-x:clip}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--purple);outline-offset:4px}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}::selection{background:var(--yellow)}
.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}.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-150%);z-index:40;background:var(--yellow);padding:12px;border-radius:12px}.skip-link:focus{transform:none}.ambient{display:none}
.shell{max-width:1220px;margin:auto;padding:0 46px}.masthead{height:90px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;padding:0;text-align:left;font-size:1.125rem;font-weight:850;letter-spacing:.025em}.brand-symbol{display:grid;place-items:center;width:45px;height:45px;border-radius:17px;background:var(--purple);color:white;font-size:1.625rem;font-weight:900;transform:rotate(-9deg);box-shadow:0 4px 0 oklch(42% .17 290)}.brand-small{display:block;font-size:.5625rem;font-weight:750;letter-spacing:.13em;color:var(--muted)}.edition{margin-left:auto;font-size:.8125rem;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}.edition span{margin:0 8px;opacity:.45}
.workspace{display:grid;grid-template-columns:minmax(280px,1fr) minmax(350px,460px);gap:80px;align-items:center;min-height:calc(100svh - 144px);padding:20px 16px 28px 0}.intro{padding-bottom:10px}.trip-kicker{display:inline-block;background:var(--yellow);font-size:.8125rem;padding:7px 14px;border-radius:20px;font-weight:750;transform:rotate(-2deg);margin-bottom:22px}h1{font-size:clamp(42px,4.5vw,62px);font-weight:900;line-height:1.25;letter-spacing:-.035em}.title-second{display:block;margin-top:12px}.title-island{display:inline-block;background:var(--purple);color:white;border-radius:24px;padding:2px 13px 7px;margin-left:7px;transform:rotate(-3deg);box-shadow:0 5px 0 oklch(42% .15 291)}.trip-subtitle{font-size:.875rem;color:var(--muted);line-height:1.85;max-width:335px;margin-top:21px}
.day-nav{display:flex;flex-direction:column;gap:8px;margin-top:25px;max-width:340px}.day-tab{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;text-align:left;border-radius:22px;transition:background 140ms,transform 140ms;width:100%}.day-tab:hover{background:oklch(100% 0 0 / .7)}.day-tab[aria-current=true]{background:white;box-shadow:0 4px 0 oklch(85% .04 295)}.day-code{display:grid;place-items:center;min-width:43px;height:43px;border-radius:16px;background:var(--purple-soft);font-size:1rem;font-weight:850}.day-tab[data-group=d2] .day-code{background:var(--yellow)}.day-tab[data-group=d3] .day-code{background:var(--pink)}.day-tab[data-group=notes] .day-code{background:oklch(87% .063 191)}.day-label{display:flex;flex-direction:column;gap:1px}.day-label strong{font-size:.875rem;font-weight:750}.day-label>span{font-size:.75rem;color:var(--muted)}.day-dot{font-size:1.5rem;margin-left:auto;color:var(--purple);opacity:0}.day-tab[aria-current=true] .day-dot{opacity:1}.desktop-note{display:flex;align-items:center;gap:13px;margin-top:25px;font-size:.875rem;font-weight:750}.desktop-note p span{font-size:.6875rem;color:var(--muted);font-weight:500}.note-glyph{font-size:1.875rem;border-radius:15px;min-width:43px;height:43px;display:grid;place-items:center;background:white;color:var(--purple)}
.deck-area{min-width:0;max-width:460px;width:100%;margin:auto;outline:none!important}.deck-topline{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.75rem;font-weight:700;padding:0 12px;margin-bottom:15px}.deck-topline span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-topline span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--purple)}.stage{height:clamp(480px,63svh,640px);position:relative;perspective:1500px;isolation:isolate;margin:0 8px;overflow:clip;overflow-clip-margin:64px;clip-path:inset(-16px -24px -64px -24px);touch-action:pinch-zoom;outline:none!important}.stack-card{display:none}.site-footer{height:52px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.6875rem}
.card-holder{position:absolute;inset:0;width:100%;height:100%;transform-origin:50% 8%;transform-style:preserve-3d;touch-action:pinch-zoom;cursor:grab;pointer-events:none}.card-holder:not([inert]){pointer-events:auto}.stage[data-motion=held],.stage[data-motion=dragging]{cursor:grabbing;user-select:none}.stage[data-motion=dragging] .card-holder,.stage[data-motion=settling] .card-holder{will-change:transform,opacity}.card-face{position:absolute;inset:0;display:flex;flex-direction:column;overflow:clip;background:white;color:var(--ink);border-radius:var(--radius);backface-visibility:hidden;box-shadow:0 10px 20px -13px oklch(38% .12 293 / .3),0 3px 0 oklch(81% .045 295)}.card-front{padding:10px 10px 0}.entry-photo{position:relative;height:38%;flex-shrink:0;min-height:0;border-radius:26px;overflow:hidden;background:var(--purple-soft)}.entry-photo>img{width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.image-caption{position:absolute;bottom:0;left:0;right:0;color:white;font-size:.6875rem;padding:28px 15px 12px;background:linear-gradient(transparent,oklch(22% .04 290 / .75));line-height:1.5}.photo-sticker{position:absolute;top:13px;right:13px;display:flex;flex-direction:column;align-items:center;background:var(--yellow);border-radius:15px;padding:7px 12px;font-size:1.125rem;font-weight:850;transform:rotate(9deg);line-height:1.3}.photo-sticker small{font-size:.625rem;font-weight:650}
.type-art{position:relative;height:37%;flex-shrink:0;min-height:0;overflow:hidden;border-radius:26px;background:var(--purple-soft);padding:19px 24px}.type-word{display:block;font-size:4.25rem;line-height:1.15;font-weight:900;letter-spacing:-.035em;transform:rotate(-5deg)}.art-punctuation{color:var(--purple);margin-left:5px}.type-date{position:absolute;left:27px;bottom:16px;font-size:.75rem;font-weight:750}.art-mascot{position:absolute;width:160px;height:160px;object-fit:contain;right:0;bottom:-4px;transform:rotate(10deg);pointer-events:none}.card-holder[data-group=d2] .type-art{background:var(--yellow)}.card-holder[data-group=d3] .type-art{background:var(--pink)}.card-holder[data-group=notes] .type-art{background:oklch(87% .063 191)}
.entry-body{padding:19px 18px 16px;flex:1;min-height:0;overflow:clip;display:flex;flex-direction:column;justify-content:center}.entry-body>*{flex-shrink:0}.entry-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.time{font-size:1.7rem;font-weight:900;color:var(--purple);font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.15}.tag{font-size:.6875rem;color:var(--muted);font-weight:650;background:var(--bg);padding:5px 10px;border-radius:20px;max-width:55%;text-align:right}.entry-body h2{font-size:1.75rem;font-weight:850;line-height:1.4;letter-spacing:-.025em;margin-bottom:15px;text-wrap:pretty}.lead-copy{font-size:1.0625rem;line-height:1.85;color:var(--ink);font-weight:450;letter-spacing:.005em}.lead-copy b{font-weight:750}.lead-copy p{margin-bottom:13px}.lead-copy>:last-child{margin-bottom:0}.card-edge{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-shrink:0;padding:10px 3px 12px;margin:0 16px;border-top:1px solid var(--line);color:var(--muted);font-size:.6875rem;font-weight:650}.card-edge span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-edge span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--purple)}
.pick{padding:11px 0;border-bottom:1px solid var(--line)}.pick:last-child{border:0}.pick:first-child{padding-top:0}.pn{font-weight:750;font-size:1rem;line-height:1.6}.pr{display:block;font-size:.875rem;font-weight:750;color:var(--purple);margin-top:3px}.pd{font-size:1rem;line-height:1.8;color:var(--muted);margin-top:6px}.tip{margin-top:13px;padding:12px 14px;border-radius:18px;background:oklch(94% .035 295);font-size:.9375rem;line-height:1.85;color:var(--ink)}.tip.hot{background:oklch(96% .057 100)}.tip.green{background:oklch(94% .025 172)}.card-kicker{font-size:.75rem;color:var(--purple);font-weight:750}.cover-subtitle{font-size:.875rem;color:var(--muted);line-height:1.85}.travel-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:18px}.travel-stats>div{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;background:oklch(96% .019 295);border-radius:15px}.travel-stats strong{font-size:1.4375rem;font-weight:900;letter-spacing:-.03em;white-space:nowrap}.travel-stats span{font-size:.625rem;color:var(--muted)}
.route-flag{display:flex;justify-content:space-between;align-items:center;background:var(--purple);color:white;border-radius:23px;padding:12px 18px;font-size:.75rem;font-weight:750;flex-shrink:0}.route-flag svg{width:26px;height:26px}.card-holder[data-kind=route] .entry-body{justify-content:flex-start;padding-top:16px}.card-holder[data-kind=route] .time{font-size:1.25rem}.card-holder[data-kind=route] .entry-body h2{font-size:1.625rem;line-height:1.45}.route-metrics{display:grid;grid-template-columns:1fr 1.3fr .75fr;gap:10px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 17px}.route-metrics>div{display:flex;flex-direction:column;gap:6px}.route-metrics span{font-size:.75rem;color:var(--muted);font-weight:600}.route-metrics strong{font-size:1.625rem;font-weight:900;line-height:1.15;color:var(--purple);white-space:nowrap;letter-spacing:-.035em}.route-metrics small{font-size:.75rem;margin-left:3px;font-weight:700}.route-metrics .duration{font-size:1.1875rem;letter-spacing:-.03em;line-height:1.65}.route-stops{list-style:none;padding:0 0 0 20px;margin:0 0 16px;position:relative}.route-stops::before{content:'';position:absolute;left:4px;top:12px;bottom:12px;width:2px;background:var(--purple-soft)}.route-stops li{position:relative;font-size:1rem;font-weight:700;line-height:1.65;padding:5px 0 5px 8px}.route-stops li::before{content:'';position:absolute;left:-20px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--purple);box-shadow:0 0 0 3px white}.route-stops li:not(:first-child):not(:last-child){font-weight:500;color:var(--muted)}.route-roads{font-size:.875rem;color:var(--muted);line-height:1.8}.route-roads b{color:var(--ink);font-size:.75rem}
.card-holder[data-compact=compact] .entry-photo{height:23%;max-height:138px}.card-holder[data-compact=compact] .type-art{height:20%;max-height:112px}.card-holder[data-compact=compact] .type-word{font-size:3rem}.card-holder[data-compact=compact] .type-date{bottom:10px}.card-holder[data-compact=compact] .art-mascot{width:105px;height:105px}.card-holder[data-compact=compact] .entry-body{justify-content:flex-start;padding-top:16px}.card-holder[data-compact=compact] .lead-copy{font-size:1rem;line-height:1.8}.card-holder:not([data-part="0"]) .entry-body{padding-top:24px}.card-holder[data-compact=minimal] .entry-photo,.card-holder[data-compact=minimal] .type-art,.card-holder[data-compact=minimal] .route-flag{display:none}.card-holder[data-compact=minimal] .entry-body{justify-content:flex-start;padding:12px}.card-holder[data-compact=minimal] .entry-body h2{font-size:1.2rem;line-height:1.4;margin-bottom:9px}.card-holder[data-compact=minimal] .time{font-size:1rem}.card-holder[data-compact=minimal] .tag{font-size:.625rem}.card-holder[data-compact=minimal] .lead-copy{font-size:1rem;line-height:1.7}.pagination-probe{position:fixed;left:-10000px;top:0;right:auto;bottom:auto;visibility:hidden;pointer-events:none;transform:none!important;contain:layout style}
.card-actions{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:38px;position:relative;z-index:3}.square-button{display:grid;place-items:center;min-width:48px;min-height:48px;border-radius:19px;background:white;color:var(--purple);box-shadow:0 3px 0 oklch(85% .03 295);transition:transform 100ms,background 100ms}.square-button:not(:disabled):hover{background:var(--yellow)}.square-button:not(:disabled):active{transform:scale(.92)}.flip-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 27px;background:var(--purple);border-radius:27px;color:white;font-size:.9375rem;font-weight:750;box-shadow:0 4px 0 oklch(40% .15 291);transition:transform 100ms}.flip-button:active{transform:scale(.96)}.deck-progress{display:flex;justify-content:center;align-items:center;min-height:26px;margin-top:8px;padding:0 5px}.progress-stop{padding:9px 3px;min-width:0;max-width:22px;min-height:26px;flex:1;display:grid;place-items:center}.progress-stop span{width:5px;height:5px;border-radius:5px;background:oklch(77% .045 295);transition:width 150ms}.progress-stop.selected span{width:15px;background:var(--purple)}.gesture-note{text-align:center;color:var(--muted);font-size:.6875rem;font-weight:600}
dialog{background:white;color:var(--ink);border:0;border-radius:32px;width:min(540px,calc(100vw - 28px));max-height:84svh;padding:0;box-shadow:0 24px 70px oklch(25% .08 295 / .3)}dialog::backdrop{background:oklch(28% .09 295 / .35);backdrop-filter:blur(5px)}.directory-header{display:flex;align-items:center;justify-content:space-between;padding:23px 26px 19px;border-bottom:1px solid var(--line)}.directory-header p{font-size:.625rem;letter-spacing:.09em;color:var(--purple);font-weight:800}.directory-header h2{font-size:1.625rem;font-weight:850;margin-top:4px}.close-button{width:44px;height:44px;display:grid;place-items:center;font-size:1.625rem;background:var(--bg);color:var(--purple);border-radius:50%;line-height:1}.directory-scroll{padding:8px 26px 26px;max-height:calc(84svh - 110px);overflow:auto;overscroll-behavior:contain}.directory-scroll section header{padding:25px 0 11px}.directory-scroll header>span{font-size:.75rem;color:var(--purple);font-weight:800}.directory-scroll h3{font-size:1.0625rem;font-weight:800;margin:5px 0}.directory-scroll header p{font-size:.875rem;color:var(--muted)}.directory-item,.directory-cover{display:flex;width:100%;gap:14px;align-items:center;text-align:left;padding:14px 8px;min-height:52px;border-radius:14px}.directory-item:hover,.directory-cover:hover{background:var(--bg)}.directory-item span{color:var(--purple);font-size:.8125rem;min-width:59px;max-width:85px}.directory-item strong{font-size:.9375rem;font-weight:650}.directory-cover{justify-content:space-between;font-size:1rem;font-weight:750}.directory-cover span{font-size:.75rem;color:var(--purple)}.source-footer{font-size:.75rem;line-height:1.9;color:var(--muted);margin-top:22px}.no-script{position:fixed;inset:30% 10% auto;background:white;padding:32px;border-radius:28px;z-index:50}.initial-state{margin:auto;padding:25px;text-align:center}.initial-state h2{font-size:1.25rem}.initial-state p{font-size:.875rem;margin:14px 0}.initial-state button{background:var(--purple);color:white;padding:12px 20px;border-radius:25px}
@media(min-width:1550px){.shell{max-width:1300px}.workspace{grid-template-columns:1fr 480px;gap:110px}.deck-area{max-width:480px}.stage{height:660px}}
@media(max-width:1000px) and (min-width:761px){.shell{padding:0 28px}.workspace{gap:30px;grid-template-columns:minmax(240px,1fr) minmax(320px,1.25fr)}h1{font-size:43px}.stage{height:550px}.day-label strong{font-size:.8125rem}.day-tab{gap:9px}.day-code{min-width:37px;height:37px}.entry-body{padding:16px 12px}.entry-body h2{font-size:1.5rem}.route-metrics .duration{font-size:1rem}}
@media(max-width:760px){
 :root{--radius:32px}body{height:100svh;overflow:hidden}.shell{height:100svh;max-width:540px;padding:0 17px;display:flex;flex-direction:column}.masthead{height:61px;flex-shrink:0;gap:10px}.brand{font-size:1rem;gap:9px}.brand-symbol{width:35px;height:35px;border-radius:13px;font-size:1.375rem}.brand-small{font-size:.5625rem}.edition{font-size:.75rem}.edition span{margin:0 5px}
 .workspace{display:flex;flex-direction:column;flex:1;min-height:0;gap:11px;padding:5px 0 max(8px,env(safe-area-inset-bottom));align-items:stretch}.intro{padding:0;flex-shrink:0}.trip-kicker,h1,.trip-subtitle,.desktop-note{display:none}.day-nav{flex-direction:row;gap:6px;margin:0;max-width:none}.day-tab{flex:1;min-width:0;min-height:46px;padding:5px 3px;gap:5px;justify-content:center;border-radius:17px;background:oklch(100% 0 0 / .5)}.day-code{height:auto;min-width:0;background:none!important;font-size:.9375rem;line-height:1.65}.day-label>strong,.day-dot,.tab-count{display:none}.day-label>span{font-size:.625rem;white-space:nowrap}.day-tab[aria-current=true]{background:var(--purple);color:white;box-shadow:0 3px 0 oklch(40% .15 291)}.day-tab[aria-current=true] .day-label>span{color:white}
 .deck-area{display:flex;flex-direction:column;flex:1;min-height:0;max-width:none;margin:0}.deck-topline{font-size:.6875rem;padding:0 6px;margin-bottom:10px;min-height:17px;flex-shrink:0}.stage{flex:1;min-height:0;height:auto;margin:0 3px;overflow-clip-margin:64px;clip-path:inset(-12px -18px -64px -18px)}.card-front{padding:9px 9px 0}.entry-photo,.type-art{border-radius:24px}.entry-body{padding:17px 13px 14px}.entry-body h2{font-size:1.625rem;line-height:1.42;margin-bottom:13px}.entry-meta{margin-bottom:9px}.time{font-size:1.5rem}.tag{font-size:.625rem;padding:4px 9px}.lead-copy{font-size:1.0625rem;line-height:1.8}.type-word{font-size:3.7rem}.type-art{padding:18px 21px}.type-date{font-size:.6875rem;left:23px;bottom:13px}.art-mascot{width:145px;height:145px}.image-caption{font-size:.625rem;padding:25px 13px 11px}.photo-sticker{font-size:1rem;padding:6px 10px}.photo-sticker small{font-size:.5625rem}
 .card-holder[data-compact=compact] .entry-body{padding-top:14px}.card-holder[data-compact=compact] .type-word{font-size:2.7rem}.card-holder[data-compact=compact] .art-mascot{width:96px;height:96px}.card-holder:not([data-part="0"]) .entry-body{padding-top:24px}.card-edge{font-size:.625rem;padding:9px 2px 10px;margin:0 12px}.pd{font-size:.9375rem;line-height:1.8}.pn{font-size:1rem}.tip{font-size:.875rem;padding:11px 13px}.travel-stats{gap:4px;margin-top:14px}.travel-stats strong{font-size:1.25rem}.travel-stats span{font-size:.5625rem}.card-kicker{font-size:.6875rem}.cover-subtitle{font-size:.8125rem}
 .route-flag{border-radius:23px;padding:10px 14px;font-size:.6875rem}.route-flag svg{width:24px;height:24px}.card-holder[data-kind=route] .time{font-size:1.125rem}.card-holder[data-kind=route] .entry-body h2{font-size:1.5rem}.route-metrics{gap:6px;margin-bottom:14px;padding:12px 0}.route-metrics span{font-size:.6875rem}.route-metrics strong{font-size:1.4375rem}.route-metrics .duration{font-size:1.0625rem}.route-stops li{font-size:.9375rem}.route-roads{font-size:.875rem}
 .card-actions{flex-shrink:0;margin-top:35px;gap:16px}.square-button{min-width:46px;min-height:46px;border-radius:18px}.flip-button{min-height:46px;padding:0 28px;font-size:.875rem}.deck-progress{min-height:23px;flex-shrink:0;margin-top:5px}.progress-stop{min-height:23px;padding:8px 2px}.gesture-note{font-size:.6875rem;min-height:16px;flex-shrink:0}.site-footer{display:none}.directory-header{padding:20px}.directory-scroll{padding:8px 20px 23px}
}
@media(max-width:370px){.shell{padding:0 13px}.day-tab{gap:3px}.day-code{font-size:.875rem}.day-label>span{font-size:.5625rem}.entry-body{padding-left:10px;padding-right:10px}.entry-body h2{font-size:1.4375rem}.type-word{font-size:3.2rem}.art-mascot{width:120px;height:120px}.card-holder[data-kind=route] .entry-body h2{font-size:1.3125rem}.route-metrics{gap:4px}.route-metrics strong{font-size:1.25rem}.route-metrics .duration{font-size:.9375rem}.route-metrics small{font-size:.625rem}.route-stops li{font-size:.875rem}}
@media(max-width:760px) and (max-height:710px){.masthead{height:53px}.workspace{gap:8px;padding-top:3px;padding-bottom:6px}.day-tab{min-height:40px}.deck-topline{margin-bottom:8px;min-height:15px}.card-actions{margin-top:31px}.square-button,.flip-button{min-height:42px}.square-button{min-width:42px}.deck-progress{min-height:20px;margin-top:3px}.progress-stop{min-height:20px;padding:7px 2px}.gesture-note{font-size:.625rem;min-height:14px}.entry-body{padding-top:13px;padding-bottom:12px}.entry-body h2{font-size:1.375rem;margin-bottom:10px}.time{font-size:1.3125rem}.entry-meta{margin-bottom:7px}.type-word{font-size:2.8rem}.art-mascot{width:112px;height:112px}.type-date{bottom:10px;font-size:.625rem}.card-holder[data-compact=compact] .type-word{font-size:2rem}.card-holder[data-compact=compact] .art-mascot{width:76px;height:76px}.card-holder[data-compact=compact] .type-date{display:none}.card-edge{padding-top:7px;padding-bottom:8px}.travel-stats strong{font-size:1.125rem}.route-flag{padding:8px 12px}.route-metrics{padding:10px 0}.route-stops{margin-bottom:12px}}
@media(max-height:530px){body{height:auto;overflow-y:auto}.shell{height:auto;min-height:100svh}.workspace{flex:none}.deck-area{flex:none}.stage{height:430px;flex:none}.masthead{height:58px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.card-holder{transform:none!important;will-change:auto!important}}/* Numeric groups reflow with user text scaling instead of clipping large text. */
.route-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,6em),1fr))}
.travel-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,4em),1fr))}
.compact-caption{padding:7px 12px;color:var(--muted);font-size:.6875rem;line-height:1.5}

/* Full photographs sit on small paper prints: no landmark or watermark is cropped. */
.photo-album{position:relative;display:flex;gap:22px;align-items:center;height:45%;min-height:180px;max-height:270px;flex-shrink:0;padding:16px 18px 14px;border-radius:26px;background:oklch(94% .04 83);isolation:isolate}
.photo-album::before{content:'';position:absolute;inset:8px;border:1px dashed oklch(78% .05 83 / .5);border-radius:20px;pointer-events:none;z-index:-1}
.photo-print{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;background:white;padding:5px 5px 12px;border-radius:5px;box-shadow:0 4px 9px oklch(35% .04 80 / .16);transform:rotate(-3deg);transition:transform .18s;cursor:zoom-in;text-decoration:none}
.photo-print::before{content:'';position:absolute;top:-7px;left:28%;width:38%;height:15px;background:oklch(85% .12 94 / .7);transform:rotate(5deg);z-index:1}
.photo-print img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.photo-main{height:100%;width:auto;aspect-ratio:3 / 4;max-width:55%;flex:0 0 auto}.photo-label{height:100%;min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:7px;align-items:flex-start}.photo-label>span,.photo-source{flex-shrink:0}
.photo-location{font-size:1.75rem;font-weight:900;letter-spacing:-.06em;line-height:1.16;color:oklch(35% .1 296);text-wrap:balance}
.photo-date{font-size:.625rem;color:oklch(45% .04 70);font-weight:650;line-height:1.5}
.photo-shot{font-size:.625rem;color:oklch(40% .065 296);line-height:1.5}
.photo-source{font-size:.625rem;color:oklch(40% .1 296);line-height:1.5;text-decoration:none;padding:8px 0;min-height:32px;display:flex;align-items:center;gap:5px;max-width:100%;text-underline-offset:3px}
.photo-source:hover{text-decoration:underline}.photo-print:hover{transform:rotate(0)}.photo-print:focus-visible,.photo-source:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.photo-expand{position:absolute;right:5px;bottom:0;font-size:.625rem;line-height:12px;color:var(--purple)}
.photo-secondary{height:100px;width:78px;max-width:100%;align-self:center;transform:rotate(7deg);padding:4px 4px 9px}
.photo-secondary::before{width:30%;left:35%;height:10px;top:-4px;background:oklch(83% .08 332 / .8)}
.photo-pair .photo-label{gap:4px}.photo-pair .photo-location{font-size:1.5rem}.photo-pair .photo-source{padding:3px 0;min-height:26px}
.photo-pair .photo-secondary{height:auto;min-height:25px;max-height:84px;flex:1 1 auto;width:60px;margin-left:12px;align-self:flex-start}
.photo-wide{flex-direction:column;gap:7px;padding:12px 22px 8px;background:oklch(94% .035 203)}
.photo-wide .photo-main{flex:1;min-height:0;width:100%;max-width:100%;aspect-ratio:auto;padding-bottom:7px;transform:rotate(-1.5deg)}
.photo-wide .photo-label{height:auto;flex:0;width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.photo-wide .photo-location{font-size:.875rem;letter-spacing:-.02em}.photo-wide .photo-date{font-size:.5625rem}.photo-wide .photo-source{font-size:.5625rem;padding:3px 0;min-height:24px}
.photo-context{font-size:.625rem;color:var(--muted);line-height:1.5;padding:8px 12px 0;flex-shrink:0}
.card-holder[data-compact=compact] .photo-album{height:45%;min-height:180px;max-height:250px}
.card-holder[data-compact=compact] .photo-secondary{max-height:72px;width:60px}
.card-holder[data-compact=minimal] .photo-album{display:none}
@media(max-width:370px),(max-height:710px){.photo-album{gap:12px;padding:12px 13px 9px}.photo-location{font-size:1.375rem}.photo-pair .photo-location{font-size:1.25rem}.photo-source{font-size:.5625rem}.photo-wide .photo-label{gap:5px}.photo-wide .photo-location{font-size:.75rem}.card-holder[data-compact=compact] .photo-album{min-height:160px;max-height:200px}.photo-pair .photo-secondary{max-height:60px;width:50px}}
@media(prefers-reduced-motion:reduce){.photo-print{transition:none}}
@media(max-width:760px){.shell{contain:paint}}
