:root{--ink:#172c34;--paper:#fffef8;--yellow:#f4f34b;--blue:#a8d7ef;--green:#276655}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Arial','Hiragino Maru Gothic ProN','Yu Gothic',Meiryo,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #de613b;outline-offset:5px}.review{background:#203c43;color:#fff;padding:9px 4%;font-size:12px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.review span{font-size:10px;letter-spacing:2px;color:var(--yellow)}.review button{margin-left:auto;border:1px solid #b4c5c8;color:white;background:transparent;border-radius:20px;padding:5px 16px}header{padding:24px 5%;display:flex;justify-content:space-between;align-items:center}.logo{font-size:15px;font-weight:900;line-height:1.4;letter-spacing:.03em}.logo b{font-size:23px}nav{display:flex;gap:35px;font-size:12px;letter-spacing:1px;font-weight:800}.cover{margin:0 3%;position:relative;min-height:680px;height:calc(100vh - 170px);max-height:860px;overflow:hidden;background:var(--blue)}.cover>img{height:100%;width:100%;object-fit:cover;object-position:50% 65%}.cover:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#091b252c,transparent 65%);pointer-events:none}.cover-title{position:absolute;z-index:1;top:30px;left:4%;right:4%;text-align:center}.cover-title small{font-size:12px;letter-spacing:5px}.cover-title h1{font-size:clamp(38px,6.8vw,100px);line-height:1.2;letter-spacing:-.07em;margin:16px 0 0;font-weight:1000;color:#132b33;text-shadow:0 1px #ffffff55}.cover-title h1 span{display:block;font-size:.48em;letter-spacing:.1em;margin-bottom:4px}.cover-copy{position:absolute;z-index:1;left:5%;top:46%;color:white;font-size:clamp(24px,3vw,43px);font-weight:900;line-height:1.65;transform:rotate(-4deg);text-shadow:0 2px 8px #16425a80}.cover-copy em{font-style:normal;border-bottom:7px solid var(--yellow)}.bubble{position:absolute;z-index:1;right:5%;top:40%;width:160px;height:160px;border-radius:48% 51% 44% 55%;background:var(--yellow);display:grid;place-content:center;text-align:center;font-weight:900;transform:rotate(9deg);line-height:1.8}.date{position:absolute;z-index:1;bottom:32px;left:4%;background:var(--paper);padding:18px 28px;transform:rotate(-2deg);font-size:24px;font-weight:900;box-shadow:5px 5px 0 var(--yellow)}.date small{font-size:12px}.cover-link{position:absolute;bottom:32px;right:4%;z-index:1;background:var(--yellow);padding:17px 23px;border-radius:40px;font-size:14px;font-weight:800}.ribbon{padding:24px 5%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:3px;border-bottom:1px solid #c8cec8}.intro{text-align:center;padding:80px 20px 65px}.eyebrow{letter-spacing:3px;font-size:11px;font-weight:800}.intro h2{font-size:30px;line-height:1.7;margin:18px 0}.intro p{font-size:14px;line-height:2.2}.section{padding:45px 7% 90px;max-width:1500px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:35px}.section-head h2{font-size:52px;letter-spacing:-2px;margin:0}.section-head p{font-size:13px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 28px}.card{display:block}.photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e4ebe2}.photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.card:hover img{transform:scale(1.045)}.num{position:absolute;top:0;left:0;background:var(--yellow);padding:11px;font-weight:900;font-size:15px}.card small{display:block;font-size:11px;margin-top:17px;letter-spacing:1px}.card h3{font-size:20px;line-height:1.6;margin:9px 0}.card p{font-size:12px;margin:7px 0;color:#56645c}.card .arrow{float:right;font-size:23px}.tag{display:inline-block;border:1px solid #b6c1b7;border-radius:30px;padding:5px 12px;font-size:11px}.about{background:#e9f0e5;padding:65px 8%;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.about img{width:100%;aspect-ratio:4/3;object-fit:cover;transform:rotate(-3deg)}.about h2{font-size:30px;line-height:1.7}.about p{font-size:14px;line-height:2.2}footer{padding:55px 7%;font-size:12px;line-height:2}footer small{color:#52665b}.crumb{padding:20px 7%;font-size:12px}.detail-head{padding:30px 7% 45px;display:grid;grid-template-columns:1.6fr 1fr;align-items:end;gap:30px}.detail-head h1{font-size:clamp(30px,4.5vw,62px);line-height:1.5;margin:15px 0}.detail-head p{font-size:14px;line-height:2}.detail-hero{margin:0 5%;position:relative}.detail-hero img{display:block;width:100%;max-height:640px;object-fit:cover}.caption{text-align:right;font-size:11px;margin:12px 5%}.story{max-width:950px;margin:75px auto;padding:0 6%;}.story h2{font-size:30px;line-height:1.7}.story p{font-size:15px;line-height:2.3}.story-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:35px 0}.story-photos img{width:100%;height:260px;object-fit:cover}.event{background:#f6efc9;padding:40px;margin-top:35px;border-radius:3px}.event h3{font-size:30px;margin:15px 0 25px}.event-date{font-weight:900;letter-spacing:2px}.event dl{display:grid;grid-template-columns:100px 1fr;font-size:14px;line-height:1.8}.event dt,.event dd{padding:12px 0;border-bottom:1px solid #bbc2a5;margin:0}.cta{display:inline-flex;gap:30px;justify-content:space-between;align-items:center;background:var(--ink);color:white;padding:18px 25px;border-radius:40px;margin-top:20px;font-size:14px;font-weight:bold}.pending{background:#f2eee8;border:1px dashed #aa8c60}.pending .tag{background:white;border-color:#a67b2d;color:#76530c}.pending h3{font-size:23px}.admin-note{font-size:12px!important;color:#76530c}.back{display:block;margin-top:45px;text-align:center;border-top:1px solid #a9b7aa;padding:25px;font-size:14px}.empty{padding:70px 8%;min-height:60vh}.empty h1{font-size:36px}.empty p{line-height:2}.public .pending,.public .admin-note{display:none}
@media(max-width:700px){header{padding:20px 5%}.logo b{font-size:17px}.logo{font-size:12px}nav{gap:15px;font-size:10px}nav a:last-child{display:none}.review{font-size:10px;gap:8px}.review span{font-size:8px}.review button{padding:4px 8px;font-size:10px}.cover{margin:0 3%;height:680px;min-height:0}.cover>img{object-position:53% 70%}.cover-title{top:30px}.cover-title small{font-size:8px;letter-spacing:2px}.cover-title h1{font-size:42px;line-height:1.4;margin-top:22px}.cover-title h1 span{font-size:26px}.cover-copy{top:41%;font-size:26px}.bubble{top:58%;width:112px;height:112px;font-size:12px;right:6%}.date{font-size:19px;bottom:76px;padding:13px 16px}.date small{font-size:9px}.cover-link{bottom:17px;font-size:12px;padding:12px 20px}.ribbon{font-size:8px;letter-spacing:1px}.ribbon span:last-child{display:none}.intro{padding:45px 20px}.intro h2{font-size:25px}.intro p{font-size:12px}.section{padding:30px 5% 55px}.section-head h2{font-size:37px}.section-head{align-items:start}.section-head p{font-size:10px;margin-top:18px}.grid{grid-template-columns:1fr 1fr;gap:28px 15px}.card h3{font-size:15px}.card small,.card p{font-size:10px}.tag{font-size:10px;padding:4px 7px}.num{font-size:12px;padding:8px}.about{grid-template-columns:1fr;gap:25px;padding:40px 7%}.about h2{font-size:25px}.about p{font-size:13px}.detail-head{grid-template-columns:1fr;padding-top:10px;gap:0}.detail-head h1{font-size:31px}.detail-hero{margin:0}.detail-hero img{min-height:270px;object-fit:cover}.story{margin:40px auto;padding:0 6%}.story h2{font-size:25px}.story p{font-size:14px}.story-photos{gap:12px}.story-photos img{height:160px}.event{padding:25px 20px}.event h3{font-size:25px}.event dl{grid-template-columns:75px 1fr;font-size:12px}.cta{font-size:12px;gap:15px;padding:16px 20px}.pending h3{font-size:20px}.caption{font-size:9px}.empty h1{font-size:27px}}

/* Keep navigation available while exploring the magazine. */
:root{--header-clearance:116px}
header{position:sticky;top:0;z-index:50;background:rgba(255,254,248,.96);border-bottom:1px solid #172c3414;backdrop-filter:blur(12px);box-shadow:0 4px 18px #172c3408}
#program,#about{scroll-margin-top:var(--header-clearance)}
nav a{position:relative;padding:10px 12px;border-radius:24px;transition:background-color .22s,color .22s}
nav a:focus-visible{background:var(--yellow)}
.cover-link,.cta{border:2px solid var(--ink);transition:background-color .25s,color .25s,box-shadow .25s}
.cover-link{display:inline-flex;align-items:center;gap:24px;background:var(--paper)}
.cover-link span,.cta span{display:inline-grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--green);color:white;transition:background-color .25s,color .25s,transform .25s}
.cta span{background:var(--yellow);color:var(--ink)}
.card h3,.card .tag,.card .num,.card .arrow{transition:color .25s,background-color .25s,transform .25s}
.card .arrow{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--yellow);color:var(--ink)}
.card:focus-visible h3{color:var(--green)}
.card:focus-visible .tag{background:var(--yellow);border-color:var(--yellow)}
.back{border-radius:0 0 16px 16px;transition:background-color .25s,color .25s}
.review button{transition:background-color .25s,color .25s,border-color .25s}
.logo{transition:color .22s}
@media(hover:hover){
 nav a:hover{background:var(--yellow);color:var(--ink)}
 .logo:hover{color:var(--green)}
 .cover-link:hover,.cta:hover{background:var(--yellow);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
 .cover-link:hover span,.cta:hover span{background:var(--ink);color:var(--yellow);transform:translateX(3px)}
 .card:hover h3{color:var(--green)}
 .card:hover .tag{background:var(--yellow);border-color:var(--yellow)}
 .card:hover .num{background:var(--green);color:white}
 .card:hover .arrow{background:var(--green);color:white;transform:rotate(45deg)}
 .back:hover{background:var(--yellow);color:var(--ink)}
 .review button:hover{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
}
.cover-link:focus-visible,.cta:focus-visible,.back:focus-visible{background:var(--yellow);color:var(--ink)}
@media(max-width:700px){:root{--header-clearance:106px}header{gap:12px}nav{gap:3px}nav a{padding:10px 8px}.cover-link{gap:18px}.cover-link span,.cta span{width:24px;height:24px;flex-basis:24px}.card .arrow{width:23px;height:23px;font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}.card:hover img{transform:none}.card:hover .arrow,.cover-link:hover span,.cta:hover span{transform:none}}

/* Typography from the supplied flyer; title outlines preserve the original lettering. */
@font-face{font-family:'Zen Kaku Gothic New';src:url('assets/fonts/ZenKakuGothicNew-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Mochiy Pop One';src:url('assets/fonts/MochiyPopOne-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
body{font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif}
.logo .brand-town{display:block;width:58px;height:auto;margin-bottom:7px}
.logo .brand-expo{display:block;width:220px;height:auto}
.cover-title h1.flyer-title{margin:24px auto 0;max-width:1000px;display:flex;flex-direction:column;align-items:center;gap:18px;line-height:1}
.flyer-title .title-town{display:block;width:27%;height:auto}
.flyer-title .title-expo{display:block;width:100%;height:auto}
.intro h2,.about h2,.story h2,.event h3,.detail-head h1{font-family:'Mochiy Pop One','Zen Kaku Gothic New',sans-serif;font-weight:400;letter-spacing:0}
@media(max-width:700px){.logo .brand-town{width:42px;margin-bottom:6px}.logo .brand-expo{width:160px}.cover-title h1.flyer-title{margin-top:28px;gap:16px}.flyer-title .title-town{width:34%}.flyer-title .title-expo{width:100%}.intro h2,.about h2,.story h2{font-size:23px}.detail-head h1{font-size:28px}.event h3{font-size:23px}}

#access{scroll-margin-top:var(--header-clearance)}
.access-section{padding-top:85px}.access-layout,.map-layout{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.access-intro h3,.map-explain h3{font-family:'Mochiy Pop One',sans-serif;font-weight:400;font-size:30px;line-height:1.8;margin:20px 0}.access-intro p,.map-explain p{font-size:14px;line-height:2.2}.text-link{display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid var(--ink);padding:10px 0;font-size:13px;font-weight:bold}.text-link:hover{color:var(--green);background:var(--yellow)}.access-source{font-size:10px!important;color:#617568}.transport-panel{background:#eaf0e7;border-radius:20px;padding:32px}.transport-panel>h3{text-align:center;font-size:17px;margin:0 0 28px}.transport-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 12px;text-align:center}.transport-grid a{display:flex;flex-direction:column;align-items:center;border-radius:14px;padding:5px}.transport-icon{display:grid;place-items:center;background:var(--green);color:white;width:75px;height:75px;border-radius:50%;transition:background .25s,color .25s,transform .25s}.transport-icon svg{width:42px;height:42px}.transport-grid b{font-size:14px;margin:13px 0 5px}.transport-grid b span{margin-left:6px}.transport-grid small{font-size:10px;color:#52685a}.transport-grid a:focus-visible .transport-icon{background:var(--yellow);color:var(--ink)}.map-layout{margin-top:65px}.map-card{position:relative;display:block;border-radius:20px;overflow:hidden;border:1px solid #d4e1d8}.map-art{position:relative;isolation:isolate;height:300px;overflow:hidden;background:#b4deec}.map-land{position:absolute;inset:-40% 42% -30% -60%;border-radius:40%;background:#e6ecdd;transform:rotate(-30deg)}.map-road{position:absolute;display:block;background:white;height:8px;width:105%;left:-20%;top:45%;transform:rotate(57deg);box-shadow:0 0 0 2px #b9c7af}.road-two{top:28%;transform:rotate(110deg);width:70%}.map-place{position:absolute;font-size:13px;background:#fffef8;padding:7px 12px;border-radius:20px;font-weight:bold}.map-place:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px}.place-one{left:40%;top:24%}.place-two{left:17%;top:58%}.map-sea{position:absolute;right:13%;top:51%;color:#3f7b90;font-size:15px;letter-spacing:5px}.map-label{position:absolute;top:16px;left:18px;font-size:10px;color:#4a635e}.map-card-caption{background:var(--ink);color:white;padding:22px 25px;transition:background .25s,color .25s}.map-card-caption small{font-size:11px}.map-card-caption b{display:block;font-size:23px;margin-top:7px}.map-card-caption b span{float:right}.map-card:focus-visible .map-card-caption{background:var(--yellow);color:var(--ink)}
@media(hover:hover){.transport-grid a:hover .transport-icon{background:var(--yellow);color:var(--ink);transform:translateY(-4px)}.map-card:hover .map-card-caption{background:var(--yellow);color:var(--ink)}}
@media(max-width:900px){nav{gap:8px}.access-layout,.map-layout{gap:28px}.transport-panel{padding:25px 15px}}
@media(max-width:700px){header{flex-wrap:wrap;justify-content:space-between;gap:10px}nav a:last-child{display:block}nav{gap:1px;font-size:9px}nav a{padding:9px 6px}.logo .brand-expo{width:145px}.access-section{padding-top:45px}.access-section .section-head{display:block}.access-section .section-head h2{font-size:35px}.access-section .section-head p{margin-bottom:0}.access-layout,.map-layout{grid-template-columns:1fr;gap:25px}.access-intro h3,.map-explain h3{font-size:23px}.transport-grid{gap:24px 10px}.transport-grid b{font-size:13px}.map-layout{margin-top:35px}.map-art{height:240px}.map-card-caption b{font-size:21px}}

/* Bold handwritten title, paired with a soft paper silhouette. */
@font-face{font-family:'Tanuki Magic';src:url('assets/fonts/TanukiMagic.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.logo .brand-town,.logo .brand-expo{font-family:'Tanuki Magic',sans-serif;font-weight:400;letter-spacing:-.03em;width:auto;height:auto}
.logo .brand-town{font-size:19px;line-height:1;margin-bottom:7px}
.logo .brand-expo{font-size:29px;line-height:1.1}
.cover-title h1.flyer-title{position:relative;isolation:isolate;width:90%;max-width:1040px;margin:65px auto 0;padding:25px 20px 30px;gap:6px;font-family:'Tanuki Magic',sans-serif;font-weight:400;font-size:clamp(38px,6.1vw,91px);letter-spacing:-.055em;text-shadow:none;color:#111c1b;transform:rotate(-2deg)}
.flyer-title:before{content:'';position:absolute;inset:-5px -15px;z-index:-1;background:#fffef8;border-radius:46% 43% 39% 36% / 20% 30% 32% 26%;transform:rotate(1deg)}
.flyer-title .title-town{width:auto;font-size:.68em;line-height:1.15;letter-spacing:.01em}
.flyer-title .title-expo{width:auto;white-space:nowrap;line-height:1.22}
.cover-title .flyer-title small{font-family:'Zen Kaku Gothic New',sans-serif;font-size:clamp(8px,1.15vw,15px);letter-spacing:.28em;line-height:1.5;margin-top:9px}
.cover-copy{top:66%;font-size:clamp(22px,2.7vw,37px)}
.bubble{top:51%;width:142px;height:142px;font-size:14px;right:4%}
@media(max-width:700px){.logo .brand-town{font-size:15px;margin-bottom:6px}.logo .brand-expo{font-size:21px}.cover-title h1.flyer-title{width:96%;margin-top:64px;padding:20px 5px 22px;font-size:clamp(29px,8.5vw,56px);gap:7px}.flyer-title:before{inset:-3px -6px}.flyer-title .title-town{font-size:.75em}.cover-title .flyer-title small{font-size:8px;letter-spacing:.16em}.cover-copy{top:58%;font-size:24px}.bubble{top:71%;width:95px;height:95px;font-size:10px;right:5%}}
.cover-title h1.flyer-title .title-expo{font-size:1em;letter-spacing:-.055em;margin:0}
.cover-title h1.flyer-title .title-town{font-size:.68em;margin:0;letter-spacing:.01em}
@media(max-width:700px){.cover-title h1.flyer-title .title-town{font-size:.75em}}
.cover-title h1.flyer-title{padding:30px 35px 26px;gap:14px}
.cover-title h1.flyer-title .title-town{width:31%;height:auto}
.cover-title h1.flyer-title .title-expo{width:100%;height:auto}
.logo .brand-town{width:58px;height:auto}.logo .brand-expo{width:220px;height:auto}
@media(max-width:700px){.cover-title h1.flyer-title{padding:24px 13px;gap:12px}.cover-title h1.flyer-title .title-town{width:37%}.logo .brand-town{width:42px}.logo .brand-expo{width:160px}}
.cover-title h1.flyer-title.approved-logo{padding:12px 20px;margin-top:50px;transform:none;max-width:1020px}
.approved-logo>img{display:block;width:100%;height:auto}
.logo .brand-approved{display:block;width:210px;height:auto}
@media(max-width:700px){.cover-title h1.flyer-title.approved-logo{padding:14px 5px;margin-top:60px;width:98%}.logo .brand-approved{width:150px}}

/* Intro heading follows the site's body typography. */
.intro h2{font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif;font-weight:700;font-size:30px;line-height:1.8;letter-spacing:.04em}
@media(max-width:700px){.intro h2{font-size:24px;line-height:1.8;letter-spacing:.02em}}

/* Editorial cover: let the lettering and landscape carry the composition. */
.cover{margin:0 2%;min-height:700px;height:calc(100svh - 160px);max-height:980px}
.cover:after{background:linear-gradient(180deg,transparent 55%,rgba(7,32,42,.4) 100%)}
.cover>img{object-position:50% 64%}
.cover-title{top:32px;left:4%;right:4%}
.cover-title>small{font-size:10px;letter-spacing:.32em;display:block;text-align:left;padding-bottom:13px;border-bottom:1px solid #172c3459}
.cover-title h1.flyer-title.approved-logo{width:94%;max-width:1130px;padding:0;margin:32px auto 0;gap:0}
.flyer-title:before{display:none}
.approved-logo>img{width:100%;height:auto}
.cover-copy{top:auto;bottom:145px;left:5%;font-size:clamp(25px,3vw,45px);line-height:1.7;transform:none;text-shadow:none;letter-spacing:.02em}
.cover-copy em{border:0;background:linear-gradient(var(--yellow),var(--yellow)) left bottom / 100% 5px no-repeat;padding-bottom:8px}
.bubble{top:auto;bottom:160px;right:5%;width:auto;height:auto;display:block;border-radius:0;background:none;color:white;transform:none;text-align:left;font-size:14px;line-height:2;letter-spacing:.08em;border-left:2px solid var(--yellow);padding-left:22px}
.date{bottom:30px;left:5%;padding:16px 0 0;background:none;color:white;box-shadow:none;transform:none;border-top:1px solid #ffffff80;font-size:clamp(23px,3vw,39px);letter-spacing:-.035em;line-height:1.2}
.date small{font-size:12px;letter-spacing:.02em;margin:0 3px}
.cover-link{bottom:30px;right:5%;background:var(--paper);border-color:var(--paper);padding:14px 22px;gap:25px}
@media(min-width:1100px){.cover-title h1.flyer-title.approved-logo{width:82%;margin-top:22px}}
@media(max-width:700px){.cover{margin:0 3%;height:710px;min-height:0}.cover-title{top:22px;left:4%;right:4%}.cover-title>small{font-size:8px;letter-spacing:.15em;padding-bottom:11px}.cover-title h1.flyer-title.approved-logo{width:105%;max-width:none;margin:42px -2.5% 0;padding:0}.cover>img{object-position:53% 68%}.cover-copy{bottom:190px;left:6%;font-size:25px;line-height:1.9}.bubble{display:none}.date{left:6%;right:6%;bottom:105px;font-size:27px;padding-top:17px}.date small{font-size:10px}.cover-link{right:6%;bottom:26px;padding:12px 20px;font-size:12px}.cover-title h1.flyer-title.approved-logo img{width:100%}}
@media(prefers-reduced-motion:no-preference){.approved-logo>img{animation:cover-lettering-in .65s ease-out both}@keyframes cover-lettering-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}

.brush-heading img{display:block;width:100%;height:auto}
.intro h2.brush-heading{width:min(530px,85%);margin:28px auto 25px;line-height:1}
.about h2.brush-heading{width:100%;max-width:470px;margin:23px 0 27px;line-height:1}
.access-intro h3.brush-heading,.map-explain h3.brush-heading{width:100%;max-width:410px;margin:24px 0 28px;line-height:1}
@media(max-width:700px){.intro h2.brush-heading{width:94%;max-width:420px;margin:25px auto}.about h2.brush-heading{width:94%;max-width:380px}.access-intro h3.brush-heading,.map-explain h3.brush-heading{width:92%;max-width:370px}}
.brush-heading img,.about .brush-heading img{aspect-ratio:auto;height:auto;object-fit:contain;transform:none}

.weight-preview{position:fixed;bottom:20px;right:20px;z-index:80;background:#fffef8f5;border:1px solid #b7c5bb;box-shadow:0 4px 25px #172c341a;padding:13px 15px;border-radius:15px;backdrop-filter:blur(10px)}
.weight-preview>span{display:block;font-size:11px;font-weight:bold;letter-spacing:.05em;margin-bottom:9px}
.weight-preview>div{display:flex;gap:5px}.weight-preview button{border:1px solid #b7c5bb;border-radius:9px;background:transparent;color:var(--ink);padding:7px 12px;font-size:16px;font-weight:bold;min-width:92px;transition:background .2s,color .2s}.weight-preview button small{display:block;font-size:9px;font-weight:400;margin-top:3px}.weight-preview button[aria-pressed=true]{background:var(--ink);color:var(--yellow);border-color:var(--ink)}.weight-preview button:hover{background:var(--yellow);color:var(--ink)}.public .weight-preview{display:none}body{padding-bottom:115px}@media(max-width:700px){.weight-preview{left:12px;right:12px;bottom:12px;padding:10px 12px}.weight-preview>div{width:100%}.weight-preview button{flex:1;min-width:0;padding:6px 8px}.weight-preview>span{font-size:10px;margin-bottom:6px}}
body{padding-bottom:0}
.intro h2.brush-heading{max-width:480px}

header{gap:20px}header nav{margin-left:auto}.language-switch{display:flex;align-items:center;gap:5px;flex-shrink:0;font-family:Arial,sans-serif;font-size:14px}.language-switch button{position:relative;isolation:isolate;display:grid;place-items:center;border:0;background:none;color:var(--ink);width:34px;height:34px;border-radius:50%;padding:0;font:inherit;transition:background .2s}.language-switch button[aria-pressed=true]{background:var(--yellow)}.language-switch button:hover{background:var(--blue)}.language-switch>span{font-size:13px;color:#728077}
html[lang=en] .english-heading{display:block;white-space:pre-line;font-family:Arial,sans-serif;font-size:clamp(24px,3vw,40px);line-height:1.25;font-weight:750;letter-spacing:-.035em;text-align:inherit}
html[lang=en] .cover-copy{font-family:Arial,sans-serif;letter-spacing:-.03em;font-size:clamp(24px,3vw,42px)}html[lang=en] .detail-head h1,html[lang=en] .story h2,html[lang=en] .event h3{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-.025em}html[lang=en] .date small{font-size:10px}html[lang=en] .tag{letter-spacing:0}html[lang=en] .transport-panel>h3{font-size:16px}html[lang=en] .card h3{line-height:1.4}html[lang=en] .event dl{grid-template-columns:110px 1fr}html[lang=en] .map-card-caption b{font-size:21px}
@media(max-width:1000px){header{gap:12px}header nav{gap:2px}nav a{padding:10px 7px}.language-switch{font-size:12px;gap:2px}.language-switch button{width:28px;height:28px}}
@media(max-width:700px){header .logo{flex:1 1 calc(100% - 110px);order:0}.language-switch{order:1;margin-left:auto}header nav{order:2;flex:1 1 100%;margin:0;justify-content:flex-start;gap:12px}html[lang=en] .english-heading{font-size:27px;line-height:1.3}html[lang=en] .cover-copy{font-size:24px}html[lang=en] .cover-copy em{font-size:23px}html[lang=en] .date{font-size:24px}html[lang=en] .event dl{grid-template-columns:85px 1fr}}

/* Live owner-managed Google My Maps. */
.map-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:38px}
.live-map{min-width:0;border:1px solid #c9d7cd;border-radius:16px;overflow:hidden;background:#e9f0e5}
.live-map iframe{display:block;width:100%;height:490px;border:0;background:#e9f0e5}
.map-open{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;background:var(--ink);color:white;font-size:13px;font-weight:700;transition:background .2s,color .2s}
.map-open:hover,.map-open:focus-visible{background:var(--yellow);color:var(--ink)}
@media(max-width:900px){.map-layout{grid-template-columns:1fr;gap:28px}.map-explain{max-width:660px}}
@media(max-width:700px){.live-map iframe{height:430px}.map-open{font-size:12px;padding:16px}}

/* Keep breathing room between the masthead and lower cover copy on wide screens. */
@media(min-width:701px){
 .cover-title h1.flyer-title.approved-logo{width:82%;max-width:800px;margin-top:24px}
 .cover-title{top:26px}
 .cover-copy{bottom:150px}
 header .logo .brand-approved{width:185px}
}
@media(min-width:701px) and (max-height:760px){.cover{height:760px;min-height:760px}.cover-title h1.flyer-title.approved-logo{max-width:760px}}

.kaneshin-heading h1,.kaneshin-story h2,.kaneshin-story h3{font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif;font-weight:700}
.kaneshin-hero{max-width:1280px;margin-left:auto;margin-right:auto;padding:0 5%}.kaneshin-hero img{max-height:560px;object-position:center 42%}
.kaneshin-event{background:#f3eddc}.session-dates{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 25px}.session-dates>span{font-size:13px;background:var(--paper);border:1px solid #c8c7b2;border-radius:30px;padding:7px 13px}
.provider-contact{margin-top:50px;border-top:2px solid var(--ink);padding-top:35px}.provider-contact h2{font-size:27px;margin:18px 0}.provider-contact .contact-provider{font-size:12px;margin-top:14px}
.phone-cta{gap:20px}.phone-cta b{font-size:22px;letter-spacing:.05em}.phone-cta>span:last-child{width:auto;flex:auto;background:none;color:inherit;font-size:12px;border-left:1px solid #ffffff60;border-radius:0;padding-left:16px}
@media(max-width:700px){.kaneshin-hero{padding:0}.kaneshin-hero img{min-height:240px;max-height:330px}.kaneshin-heading .tag{font-size:10px}.kaneshin-story h2{font-size:24px}.kaneshin-story .event h3{font-size:23px}.phone-cta{gap:12px}.phone-cta b{font-size:20px}.session-dates>span{font-size:11px;padding:6px 10px}}
html[lang=en] .kaneshin-story h2,html[lang=en] .kaneshin-story h3,html[lang=en] .kaneshin-heading h1{font-family:Arial,sans-serif}
.email-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 25px;width:fit-content;margin-top:18px;border-bottom:1px solid var(--ink);padding:12px 0;font-size:16px;overflow-wrap:anywhere}.email-cta span{font-size:12px}.email-cta:hover{color:var(--green);background:var(--yellow)}
@media(max-width:700px){.email-cta{font-size:14px}}

.public .awaiting-card{display:none}
.rafting-heading h1,.rafting-story h2,.rafting-story h3{font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif;font-weight:700}.rafting-hero img{max-height:660px;object-position:center 56%}.rafting-event{background:#e9f1e9}.rafting-flow{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:40px 0 55px}.rafting-flow figure{margin:0}.rafting-flow img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.rafting-flow figcaption{padding-top:18px}.rafting-flow figcaption>span{display:block;font:10px Arial,sans-serif;letter-spacing:1.5px;margin-bottom:12px;color:var(--green)}.rafting-flow b{font-size:17px}.rafting-flow p{font-size:13px;line-height:1.9;margin-top:12px}.river-notice{border-left:3px solid var(--green);padding:6px 0 6px 18px;margin-top:28px}.river-notice b{font-size:15px}.river-notice p{font-size:13px;line-height:2;margin-bottom:0}
@media(max-width:700px){.rafting-heading h1{font-size:29px}.rafting-heading .tag{font-size:11px}.rafting-story h2{font-size:24px}.rafting-flow{grid-template-columns:1fr;gap:30px}.rafting-story .event h3{font-size:23px}.rafting-hero img{min-height:280px;max-height:420px}}
html[lang=en] .rafting-heading h1,html[lang=en] .rafting-story h2,html[lang=en] .rafting-story h3{font-family:Arial,sans-serif}
.public .admin-only{display:none}

/* A photographic, motion-led entrance to the existing site. */
html.entrance-open{overflow:hidden}
.welcome-entrance{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#fffef8;color:var(--ink);overflow:hidden;z-index:200;opacity:1;transition:opacity .3s ease,transform .3s ease}
.welcome-entrance::backdrop{background:#fffef8}.welcome-entrance.welcome-leaving{opacity:0;transform:scale(1.025)}
.welcome-scene{position:relative;min-height:100%;width:100%;height:100%;isolation:isolate;background:radial-gradient(ellipse at 50% 49%,#fffce5 0%,#fffef8 47%,#f6f9f0 100%)}
.welcome-topline,.welcome-bottom{position:absolute;left:4%;right:4%;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:20px}.welcome-topline{top:25px;font:10px Arial,sans-serif;letter-spacing:2px}.welcome-topline>span{max-width:50%}.welcome-skip{background:none;border:0;border-bottom:1px solid #7e9589;color:var(--ink);padding:8px 0;font-size:12px}
.welcome-bottom{bottom:28px;align-items:end}.welcome-bottom>span:first-child{font:600 21px Arial,sans-serif;letter-spacing:-.04em}.welcome-bottom small{font-size:9px;letter-spacing:0;margin:0 4px}.welcome-bottom>span:last-child{font:9px Arial,sans-serif;letter-spacing:2px}
.welcome-photos{position:absolute;inset:0;pointer-events:none;z-index:0}.welcome-photo{position:absolute;margin:0;animation:welcome-float 7s ease-in-out infinite;will-change:transform}.welcome-photo img{display:block;width:100%;height:100%;object-fit:cover}.welcome-photo figcaption{position:absolute;bottom:-22px;left:12px;font:9px Arial,sans-serif;letter-spacing:2px;color:#5c7367}
.welcome-sea{width:24vw;height:24vw;max-width:330px;max-height:330px;left:-4%;top:9%;--tilt:-12deg;border-radius:50%;animation-delay:-2s}.welcome-sea img{border-radius:50%}
.welcome-river{width:29vw;height:21vw;max-width:410px;max-height:300px;right:-4%;top:12%;--tilt:10deg;animation-delay:-4s}.welcome-river img{border-radius:80px 15px 80px 15px;object-position:50% 45%}
.welcome-farm{width:29vw;height:18vw;max-width:420px;max-height:265px;left:-3%;bottom:11%;--tilt:8deg;animation-delay:-1s}.welcome-farm img{border-radius:15px 70px 15px 70px}
.welcome-craft{width:20vw;height:20vw;max-width:290px;max-height:290px;right:1%;bottom:9%;--tilt:-12deg;animation-delay:-5s}.welcome-craft img{border-radius:50%;object-position:65% 45%}
.welcome-center{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:48%;max-width:640px;text-align:center}.welcome-kicker{font-size:13px;letter-spacing:.14em;margin:0 0 25px}.welcome-center h1{margin:0 auto 22px;width:100%;line-height:1}.welcome-center h1 img{display:block;width:100%;height:auto}.welcome-description{font-size:13px;line-height:2;letter-spacing:.06em;margin:0 0 25px}
.welcome-enter{display:inline-flex;align-items:center;gap:55px;border:1.5px solid var(--ink);border-radius:50px;padding:12px 14px 12px 28px;background:var(--yellow);color:var(--ink);font-size:15px;font-weight:700;transition:background .22s,color .22s,box-shadow .22s}
.welcome-enter span{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--yellow);font:22px Arial,sans-serif;transition:transform .22s}.welcome-enter:hover{background:var(--ink);color:var(--yellow);box-shadow:0 5px 20px #173d3526}.welcome-enter:hover span{transform:translateX(3px)}.welcome-skip:hover{background:var(--yellow)}
.replay-entrance{display:block;margin-top:20px;padding:9px 0;border:0;border-bottom:1px solid #aab9af;color:var(--ink);background:none;font-size:11px}.replay-entrance:hover{background:var(--yellow)}
@keyframes welcome-float{0%,100%{transform:translateY(0) rotate(var(--tilt))}50%{transform:translateY(-16px) rotate(calc(var(--tilt) + 3deg))}}
@media(max-width:700px){.welcome-topline{top:17px;left:5%;right:5%;gap:10px;font-size:8px;letter-spacing:1px}.welcome-skip{font-size:10px}.welcome-center{width:85%;max-width:420px;top:51%}.welcome-kicker{font-size:11px;margin-bottom:20px;letter-spacing:.08em}.welcome-center h1{margin-bottom:20px}.welcome-description{font-size:12px;margin-bottom:22px}.welcome-enter{padding:10px 12px 10px 24px;font-size:13px;gap:40px}.welcome-enter span{width:30px;height:30px;font-size:20px}.welcome-sea{width:41vw;height:41vw;left:-12%;top:8%}.welcome-river{width:44vw;height:33vw;right:-10%;top:8%}.welcome-river img{border-radius:40px 10px}.welcome-farm{width:47vw;height:29vw;left:-9%;bottom:9%}.welcome-craft{width:35vw;height:35vw;right:-8%;bottom:8%}.welcome-photo figcaption{font-size:7px;bottom:-18px}.welcome-bottom{left:5%;right:5%;bottom:20px;gap:10px}.welcome-bottom>span:first-child{font-size:16px}.welcome-bottom>span:last-child{font-size:7px;letter-spacing:1px}.welcome-bottom small{font-size:8px;margin:0 2px}}
@media(max-height:640px){.welcome-kicker{margin-bottom:10px}.welcome-description{margin-bottom:12px;font-size:11px}.welcome-center h1{width:75%;margin-bottom:12px}.welcome-center{max-width:480px}.welcome-enter{padding-top:7px;padding-bottom:7px}.welcome-photo{opacity:.65}}
@media(prefers-reduced-motion:reduce){.welcome-photo{animation:none;transform:rotate(var(--tilt))}.welcome-entrance{transition:none}}
.welcome-skip{background:#fffef8e8;border:1px solid #172c3433;border-radius:30px;padding:8px 13px;letter-spacing:0}
.welcome-photos{overflow:hidden}

/* Arrive from beyond the viewport, then hand off to a continuous gentle drift. */
.welcome-sea{--arrival-x:-65vw;--arrival-y:-48vh;--arrival-turn:-32deg;--arrival-delay:.05s}
.welcome-river{--arrival-x:65vw;--arrival-y:-48vh;--arrival-turn:30deg;--arrival-delay:.2s}
.welcome-farm{--arrival-x:-65vw;--arrival-y:48vh;--arrival-turn:28deg;--arrival-delay:.34s}
.welcome-craft{--arrival-x:65vw;--arrival-y:48vh;--arrival-turn:-30deg;--arrival-delay:.48s}
@media(prefers-reduced-motion:no-preference){
 .welcome-photo{animation:welcome-arrive 1.9s cubic-bezier(.16,1,.3,1) var(--arrival-delay) both,welcome-float 7s ease-in-out calc(1.9s + var(--arrival-delay)) infinite}
 .welcome-kicker{animation:welcome-type-in .8s cubic-bezier(.16,1,.3,1) .5s both}
 .welcome-center h1{animation:welcome-type-in 1s cubic-bezier(.16,1,.3,1) .7s both}
 .welcome-description{animation:welcome-type-in .9s cubic-bezier(.16,1,.3,1) .9s both}
 .welcome-enter{animation:welcome-type-in .8s cubic-bezier(.16,1,.3,1) 1.05s both}
}
@keyframes welcome-arrive{
 from{transform:translate3d(var(--arrival-x),var(--arrival-y),0) rotate(var(--arrival-turn)) scale(.92)}
 to{transform:translate3d(0,0,0) rotate(var(--tilt)) scale(1)}
}
@keyframes welcome-type-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.welcome-kicker,.welcome-center h1,.welcome-description,.welcome-enter{animation:none;opacity:1;transform:none}}

/* A fifth, smaller photo brings the cafe dog into the entrance collage. */
.welcome-dog{width:14vw;height:14vw;max-width:185px;max-height:185px;left:28%;top:3%;--tilt:-7deg;--arrival-x:-30vw;--arrival-y:-65vh;--arrival-turn:-25deg;--arrival-delay:.62s}
.welcome-dog img{border-radius:50%;object-position:35% 48%}
@media(max-width:700px){.welcome-dog{width:25vw;height:25vw;left:38%;top:7%;max-width:110px;max-height:110px}.welcome-dog figcaption{font-size:6px;bottom:-14px;left:3px;letter-spacing:.8px}}
@media(max-height:640px){.welcome-dog{width:13vw;height:13vw;left:29%;top:8%}.welcome-dog figcaption{display:none}}

.cafe-heading h1,.cafe-story h2,.cafe-story h3{font-family:'Zen Kaku Gothic New','Yu Gothic',Meiryo,sans-serif;font-weight:700}.cafe-badges{display:flex;gap:8px;flex-wrap:wrap}.dog-badge{background:#e6efdf;border-color:#c5d5b7}
.cafe-cover{max-width:1450px;margin:0 auto;padding:0 5%;display:grid;grid-template-columns:1fr 1fr;gap:20px}.cafe-cover figure{margin:0;overflow:hidden}.cafe-cover img{display:block;width:100%;height:530px;object-fit:cover}.cafe-cover-dog img{object-position:center 44%}.cafe-cover-food img{object-position:center 43%}
.cafe-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid #b7c7b5;border-bottom:1px solid #b7c7b5;padding:25px 0;margin:35px 0}.cafe-highlights span{display:block;font:9px Arial,sans-serif;letter-spacing:1.5px;color:var(--green);margin-bottom:12px}.cafe-highlights b{font-size:14px}.cafe-group{margin:40px 0}.cafe-group img{display:block;width:100%;height:auto}.cafe-group figcaption,.cafe-gallery figcaption{font-size:11px;line-height:1.8;color:#50695a;margin-top:12px}
.cafe-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:35px 0 45px}.cafe-gallery figure{margin:0}.cafe-gallery img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 55%}.cafe-event{background:#eff1df}.cafe-event dl{grid-template-columns:120px 1fr}
@media(max-width:700px){.cafe-heading h1{font-size:29px}.cafe-cover{padding:0 4%;gap:10px}.cafe-cover img{height:290px}.cafe-story h2{font-size:24px}.cafe-story .event h3{font-size:22px}.cafe-highlights{grid-template-columns:1fr;gap:18px;padding:22px 0}.cafe-highlights>div{display:flex;justify-content:space-between;align-items:center;gap:15px}.cafe-highlights span{margin:0;font-size:8px}.cafe-highlights b{font-size:13px}.cafe-gallery{grid-template-columns:1fr 1fr;gap:18px 12px}.cafe-gallery figure:last-child{display:none}.cafe-event dl{grid-template-columns:85px 1fr}.cafe-event dt,.cafe-event dd{font-size:12px}.cafe-story .phone-cta{gap:10px}.cafe-story .phone-cta b{font-size:19px}.cafe-story .phone-cta>span:last-child{font-size:10px;padding-left:10px}}
html[lang=en] .cafe-heading h1,html[lang=en] .cafe-story h2,html[lang=en] .cafe-story h3{font-family:Arial,sans-serif}

/* Tea, pizza and books */
.tea-heading h1{font-size:clamp(32px,4.6vw,64px)}.tea-hero{margin:0 5%;height:560px;overflow:hidden}.tea-hero img{width:100%;height:100%;object-fit:cover;object-position:center 64%}.tea-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:48px 0}.tea-trio div{background:#eceee0;padding:26px 15px;text-align:center;display:grid;gap:12px}.tea-trio i{font-size:50px;font-style:normal;color:#56714e}.tea-trio div:first-child i{color:#ac4b58}.tea-trio div:last-child i{color:#c4933c}.tea-trio span{font-size:12px}.tea-menu{margin:36px auto;max-width:500px}.tea-menu img{width:100%;height:auto}.tea-menu figcaption,.tea-videos figcaption{font-size:12px;line-height:1.8;margin-top:10px;color:#65716a}.tea-videos{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0 45px}.tea-videos figure{margin:0;min-width:0}.tea-videos video{display:block;width:100%;height:420px;background:#192c29;object-fit:contain}.tea-story .section-head h2{font-size:30px}.tea-heading>div>p{line-height:1.8}
@media(max-width:700px){.tea-hero{height:360px;margin:0 4%}.tea-trio{gap:7px}.tea-trio div{padding:20px 8px}.tea-trio i{font-size:34px}.tea-trio span{font-size:10px}.tea-videos{grid-template-columns:1fr}.tea-videos video{height:auto;max-height:560px;min-height:230px}.tea-story .section-head{display:block}.tea-heading h1{font-size:32px}}

.uomachi-hero{max-height:560px}.uomachi-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0 55px}.uomachi-pair figure{margin:0;min-width:0}.uomachi-pair img{width:100%;aspect-ratio:720/460;object-fit:cover}.uomachi-pair figcaption{font-size:12px;color:#66726b;line-height:1.8;margin-top:10px}.uomachi-map{padding:38px 24px;background:#eeeee3;margin:55px 0}.uomachi-map img{display:block;width:100%;height:auto;margin:24px 0;border:1px solid #ddd}.uomachi-map .cta{width:100%;box-sizing:border-box}.uomachi-map h2{font-size:clamp(26px,3vw,40px)}@media(max-width:600px){.uomachi-pair{grid-template-columns:1fr;gap:25px}.uomachi-map{padding:28px 16px}.uomachi-map .cta{font-size:12px;padding:16px}.uomachi-hero{height:280px}}
