@charset "UTF-8";
:root{--paper:#f7f5ef;--ink:#23352e;--muted:#6e756d;--line:#d9ddd3;--orange:#c8623d;--serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans CJK JP",sans-serif;-webkit-font-smoothing:antialiased}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{display:block;width:100%;object-fit:cover}h1,h2,h3,h4,p{margin:0}p{line-height:1.9}button{border:0;background:none}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 56px;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #23352e14}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:700;letter-spacing:3px}.brand-icon{display:grid;place-items:center;border:1px solid var(--orange);color:var(--orange);font:27px var(--serif);width:42px;height:46px;border-radius:45% 45% 3px 3px}.brand-sub{display:block;font-size:9px;letter-spacing:5px;font-weight:400;margin-top:3px}.header nav{display:flex;gap:34px;font-size:13px}.header nav a{padding-block:14px}.header nav a:hover{color:var(--orange)}.saved-open{border:1px solid var(--ink);border-radius:30px;padding:11px 18px;font-size:12px;display:flex;gap:12px;align-items:center}#saved-count{background:var(--ink);color:white;border-radius:50%;width:21px;height:21px;display:grid;place-items:center;font-size:10px}.menu-toggle{display:none}.hero{height:min(800px,calc(100svh - 94px));min-height:610px;position:relative;color:white;overflow:hidden;margin:0 20px}.hero-photo{height:100%;position:absolute;object-position:50% 48%;animation:hero-in 1.6s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#10241dd1 0%,#132c2150 52%,#0b21100a),linear-gradient(0deg,#0b221a99,transparent 38%)}.hero-copy{position:absolute;left:7%;top:18%}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:600;color:var(--orange);line-height:1.8}.eyebrow.light{color:#f1d7ad}.hero h1{font:clamp(54px,6.4vw,96px)/1.23 var(--serif);letter-spacing:3px;margin:24px 0}.hero h1 span{color:#eec79a}.hero-description{font-size:14px;line-height:2.2;color:#ffffffd9}.button{display:inline-flex;gap:45px;align-items:center;justify-content:space-between;padding:17px 24px;border-radius:3px;font-size:13px;font-weight:500;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button span{font-size:20px}.cream{background:var(--paper);color:var(--ink)}.dark{background:var(--ink);color:var(--paper)}.hero .button{margin-top:32px}.hero-caption{position:absolute;right:50px;top:38px;writing-mode:vertical-rl;font:17px var(--serif);letter-spacing:5px}.hero-caption span{font:9px sans-serif;letter-spacing:2px;margin-right:15px}.hero-bottom{position:absolute;bottom:30px;left:7%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.hero-bottom span{display:flex;align-items:center;gap:20px}.hero-bottom i{width:60px;height:1px;background:#ffffff80}.hero-bottom a span{display:inline;font-size:18px;margin-left:18px}.hero-stamp{position:absolute;right:7%;bottom:18%;font:45px/1.2 var(--serif);padding:18px 22px;border:1px solid #ffffff70;text-align:center}.hero-stamp span{display:block;font:7px/1.7 sans-serif;letter-spacing:2px;margin-top:12px}.intro{position:relative;padding-block:110px;display:grid;grid-template-columns:1fr 1fr;gap:25px 100px;border-bottom:1px solid var(--line)}.intro>.eyebrow{grid-column:1/-1}.intro h2{font-size:39px;line-height:1.6;font-weight:500}.serif{font-family:var(--serif);font-weight:400}.intro>div{font-size:14px;line-height:2}.muted{color:var(--muted);margin-top:20px}.intro-mark{position:absolute;right:0;bottom:68px;writing-mode:vertical-rl;font:17px var(--serif);letter-spacing:6px;color:var(--orange)}.destinations,.journey,.notes{padding-block:95px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}.section-heading h2{font-size:35px;font-weight:500;margin-top:15px}.section-heading>p{font-size:13px;color:var(--muted)}.filterbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:32px}.filters{display:flex;gap:30px}.filters button{font-size:12px;padding:17px 0;border-bottom:2px solid transparent;margin-bottom:-1px}.filters button.active{border-color:var(--orange);color:var(--orange)}sup{font-size:8px;margin-left:5px}.filter-result{font-size:10px;color:var(--muted)}.place-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.place[hidden]{display:none}.place-image{position:relative;height:420px;overflow:hidden;background:#d3d8cc}.place-image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#10271a50,transparent 45%)}.place-image img{height:100%;transition:transform .65s}.place:hover img{transform:scale(1.035)}.place-no{position:absolute;top:24px;left:22px;color:white;font-size:9px;letter-spacing:2px;text-shadow:0 1px 3px #000}.save{position:absolute;top:14px;right:15px;width:38px;height:38px;border-radius:50%;background:var(--paper);font-size:24px;z-index:1}.save[aria-pressed=true]{background:var(--orange);color:white}.vertical{position:absolute;bottom:25px;left:22px;color:white;writing-mode:vertical-rl;font:20px var(--serif);letter-spacing:5px;z-index:1}.place-info{display:flex;justify-content:space-between;align-items:center;margin-top:23px}.place-info h3{font:27px var(--serif)}.place-info h3 span{font:9px sans-serif;letter-spacing:2px;margin-left:12px;color:var(--muted)}.place-info p{font-size:12px;color:var(--muted);margin-top:9px}.circle{border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:20px;flex-shrink:0}.circle:hover{background:var(--ink);color:white}.tags{display:flex;gap:10px;font-size:9px;color:var(--muted);margin-top:18px}.tags span{padding:5px 9px;border:1px solid var(--line)}.season-section{display:grid;grid-template-columns:1fr 1fr;background:#eaece3}.season-photo{position:relative;min-height:650px}.season-photo img{height:100%;position:absolute}.photo-label{position:absolute;bottom:28px;left:34px;color:white;font-size:11px;letter-spacing:2px;text-shadow:0 2px 6px black}.season-copy{padding:80px min(6vw,90px)}.season-copy h2{font-size:40px;font-weight:400;line-height:1.6;margin-top:24px}.season-tabs{display:flex;justify-content:space-between;gap:16px;margin-top:36px;border-bottom:1px solid #b9c4b7}.season-tabs button{font:23px var(--serif);padding:12px 6px 16px;border-bottom:2px solid transparent}.season-tabs button[aria-selected=true]{border-color:var(--orange);color:var(--orange)}.season-tabs span{display:block;font:8px sans-serif;letter-spacing:1px;margin-top:8px}.season-kicker{font-size:10px;color:var(--orange);letter-spacing:2px;margin-top:28px}.season-copy h3{font:25px var(--serif);margin:12px 0}.season-copy #season-description{font-size:13px;color:var(--muted)}.text-link{font-size:12px;display:inline-flex;gap:20px;border-bottom:1px solid var(--ink);padding:8px 0}.season-copy .text-link{margin-top:20px}.fine{font-size:10px!important;line-height:1.9;color:var(--muted);margin-top:22px}.route-options{display:flex;border:1px solid var(--line);padding:5px;border-radius:30px}.route-options button{padding:10px 15px;font-size:11px;border-radius:25px}.route-options button.active{background:var(--ink);color:white}.route-layout{display:grid;grid-template-columns:.85fr 1fr;gap:70px}.route-cover{position:relative;min-height:650px}.route-cover img{position:absolute;height:100%;filter:brightness(.7)}.route-cover>div{position:absolute;left:38px;bottom:45px;color:white}.route-cover h3{font:45px/1.5 var(--serif);margin:20px 0}.route-cover p{font-size:13px;color:#ffffffc9}.route-intro{font-size:13px;color:var(--muted);padding-bottom:18px}.route-main ol{list-style:none;padding:0;margin:0}.route-main li{display:flex;gap:24px;border-bottom:1px solid var(--line);padding:21px 0}.route-main li>span{font-size:9px;letter-spacing:1px;color:var(--orange);flex-shrink:0;padding-top:5px}.route-main h4{font-size:15px;font-weight:500}.route-main li p{font-size:12px;color:var(--muted);margin-top:5px}.route-actions{display:flex;align-items:center;gap:20px;margin-top:30px}.route-actions>span{font-size:10px;color:var(--muted)}.notes{padding-top:25px}.small-label{font-size:9px;letter-spacing:2px;color:var(--muted)}.note-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.note-grid details{border-top:1px solid var(--line)}.note-grid summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;align-items:center;gap:20px;font-size:14px}.note-grid summary::-webkit-details-marker{display:none}.note-grid summary span{font-size:10px;color:var(--orange)}.note-grid summary b{font-size:18px;font-weight:400;margin-left:auto}.note-grid details[open] summary b{transform:rotate(45deg)}.note-grid details p{font-size:13px;padding:0 20px 24px 35px;color:var(--muted)}.note-grid details a{text-decoration:underline}.closing{position:relative;overflow:hidden;text-align:center;background:var(--ink);color:var(--paper);padding:85px 30px}.closing>.eyebrow{color:#d8ad83}.closing h2{font-size:48px;line-height:1.6;font-weight:400;margin:25px 0 32px}.closing-kanji{position:absolute;right:5%;top:5%;font:330px var(--serif);color:#ffffff05;pointer-events:none}.footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-block:45px}.footer>p{font-size:10px;color:var(--muted)}.footer>div{text-align:right}.footer>div>span{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);margin-top:12px}dialog{width:min(640px,calc(100% - 32px));max-height:85svh;border:0;background:var(--paper);color:var(--ink);padding:42px;border-radius:8px;box-shadow:0 25px 100px #0005}dialog::backdrop{background:#10251ecc;backdrop-filter:blur(6px)}.dialog-close{position:absolute;top:9px;right:15px;font-size:30px}.dialog-image{height:230px;margin-bottom:24px}.dialog-title{font:32px var(--serif);margin-bottom:18px}dialog p{font-size:13px;color:var(--muted);margin:10px 0}dialog ul{padding-left:20px;font-size:13px;line-height:2}dialog .button{margin-top:20px}dialog a:not(.button){text-decoration:underline}.saved-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line)}.saved-row button{font-size:12px;color:var(--orange)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;background:var(--ink);color:white;padding:14px 24px;border-radius:30px;z-index:40;font-size:12px;max-width:90%;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.skip{position:fixed;top:-100px;left:10px;background:white;z-index:100;padding:12px}.skip:focus{top:10px}.no-js{text-align:center;padding:15px;font-size:12px}.reveal{animation:appear .7s ease-out both}@keyframes hero-in{from{transform:scale(1.04)}to{transform:scale(1)}}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero{max-width:1700px;margin-inline:auto}}@media(max-width:1100px){.header{padding-inline:28px}.header nav{gap:20px}.wrap{width:calc(100% - 64px)}.hero-copy{left:6%}.place-image{height:350px}.season-copy{padding:60px 35px}.route-layout{gap:35px}.intro{gap:25px 45px}.section-heading h2{font-size:30px}.footer{flex-wrap:wrap}.intro-mark{right:-10px}.hero-stamp{right:5%}}
@media(max-width:740px){html{scroll-padding-top:80px}.header{height:76px;padding-inline:20px}.brand{font-size:20px;gap:9px}.brand-icon{width:33px;height:38px;font-size:23px}.brand-sub{font-size:8px;letter-spacing:3px}.header nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:22px;box-shadow:0 15px 20px #0001}.header nav.open{display:flex;flex-direction:column;gap:0}.saved-open{margin-left:auto;padding:8px 11px;font-size:10px;gap:8px}.menu-toggle{display:block;font-size:22px;margin-left:12px;padding:4px}.hero{margin:0 10px;min-height:620px;height:calc(90svh - 76px)}.hero-photo{object-position:62% center}.hero-shade{background:linear-gradient(90deg,#10241dca,#132c2120),linear-gradient(0deg,#0b221aaa,transparent 65%)}.hero-copy{left:7%;top:19%}.hero h1{font-size:60px}.hero-caption{right:20px;top:25px;font-size:13px}.hero-caption span{display:none}.hero-description{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.8px}.hero-stamp{display:none}.hero-bottom{font-size:8px;left:7%;right:7%}.hero-bottom i{width:25px}.hero-bottom span{gap:8px}.hero-bottom a{letter-spacing:0}.hero-bottom a span{margin-left:6px}.wrap{width:calc(100% - 40px)}.intro{padding-block:65px;grid-template-columns:1fr;gap:22px}.intro h2{font-size:32px}.intro>div{font-size:13px}.intro-mark{right:5px;bottom:60px}.destinations,.journey,.notes{padding-block:60px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:29px}.section-heading>p{margin-top:20px;font-size:12px}.filterbar{display:block}.filters{gap:22px}.filters button{font-size:11px}.filter-result{display:block;margin:12px 0}.place-grid{grid-template-columns:1fr;gap:42px}.place-image{height:460px}.place-image img{object-position:center 45%}.place-info h3{font-size:28px}.season-section{grid-template-columns:1fr}.season-photo{min-height:400px}.season-copy{padding:45px 25px}.season-copy h2{font-size:35px}.season-tabs{margin-top:25px}.route-options{display:inline-flex;margin-top:25px}.route-layout{grid-template-columns:1fr;gap:30px}.route-cover{min-height:400px}.route-cover h3{font-size:37px}.route-main li{gap:18px}.small-label{display:block;margin-top:20px}.note-grid{grid-template-columns:1fr}.notes{padding-top:10px}.closing{padding:65px 20px}.closing h2{font-size:36px}.footer{flex-direction:column;align-items:flex-start;gap:25px}.footer>div{text-align:left}.closing-kanji{font-size:240px}.button{gap:30px}.dialog-image{height:180px}dialog{padding:35px 24px}.route-actions{gap:12px}.route-actions>span{font-size:9px}}
@media(max-width:740px){.hero h1{font-size:clamp(34px,9.5vw,60px);letter-spacing:.02em}.hero h1 span{white-space:nowrap}.route-options{flex-wrap:wrap}.route-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
