@font-face{font-family:Kampo;src:url('assets/serif.woff2?v=15') format('woff2');font-display:swap;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#faf9f5;color:#242520;font:16px/1.7 Arial,'PingFang TC','Microsoft JhengHei',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}a:hover{text-decoration:underline;text-underline-offset:5px}:focus-visible{outline:3px solid #b94a32;outline-offset:5px}.wrap{width:min(1380px,calc(100% - 96px));margin-inline:auto}.skip{position:absolute;top:-100px}.skip:focus{top:8px;background:white;z-index:20}.header{display:flex;align-items:center;gap:42px;min-height:133px;border-bottom:1px solid #c6c3b9}.wordmark{display:grid;grid-template-columns:38px auto;column-gap:12px;align-items:center;line-height:1.2;font-family:Kampo,serif;flex-shrink:0}.wordmark>span{writing-mode:vertical-rl;letter-spacing:.2em;font-size:17px;grid-row:span 2;border-right:1px solid #a6a094;padding-right:12px}.wordmark strong{font-size:34px;letter-spacing:.15em;font-weight:400}.wordmark small{font:12px/1.5 Arial,sans-serif;letter-spacing:.5em;margin-top:8px}.header nav{display:flex;gap:28px;margin-left:auto;font-size:15px}.search-jump{border-left:1px solid #ccc;padding-left:24px;font-size:15px}.search-jump span{font-size:25px;padding-left:9px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:37px 0 28px}.eyebrow{font-size:12px;letter-spacing:.16em;color:#885841;margin:0 0 11px}h1,h2,h3,.serif{font-family:Kampo,serif;font-weight:400}h1{font-size:34px;letter-spacing:.08em;line-height:1.5;margin:0}.intro-note{font-size:14px;color:#67675e;margin:0;line-height:1.9}.poster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.poster{display:block;position:relative;aspect-ratio:2/3;overflow:hidden;text-decoration:none!important;font-family:Kampo,serif}.poster img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .7s}.poster:hover img{transform:scale(1.035)}.poster-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;font:12px/1.5 Arial,sans-serif;letter-spacing:.12em;z-index:3}.poster-bottom{position:absolute;bottom:27px;left:26px;z-index:3;line-height:1.9;font-size:22px}.poster-bottom small{font-size:14px}.shaka{background:#16231b;color:#f5e3ac}.shaka img{width:94%;height:90%;right:-12%;bottom:0;object-position:50% 35%;opacity:.85}.shaka:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#14221bea,transparent 55%),linear-gradient(90deg,#14221b 0%,transparent 65%)}.shaka-title{position:absolute;left:25px;top:90px;z-index:2;writing-mode:vertical-rl;font-size:clamp(42px,4.2vw,66px);letter-spacing:.18em}.vertical-note{writing-mode:vertical-rl;position:absolute;top:94px;right:25px;font-size:14px;letter-spacing:.25em;z-index:2}.guanyin{background:#7b2738;color:#ffe9db}.guanyin-title{position:absolute;top:82px;left:26px;font-size:clamp(38px,4vw,62px);line-height:1.45;letter-spacing:.15em;z-index:2}.guanyin-kicker{position:absolute;right:25px;top:92px;writing-mode:vertical-rl;letter-spacing:.22em;font-size:15px}.guanyin img{height:42%;bottom:37px;object-position:center 45%}.guanyin-footer{position:absolute;bottom:10px;left:26px;font-size:13px;letter-spacing:.12em}.wealth{background:#e2bb63;color:#36260f}.wealth-title{position:absolute;top:93px;left:27px;font-size:clamp(43px,4.3vw,70px);line-height:1.2;z-index:2;letter-spacing:.13em}.wealth-title em{font-style:normal;margin-left:1.35em}.wealth-kicker{position:absolute;right:25px;top:85px;writing-mode:vertical-rl;font-size:14px;letter-spacing:.2em}.wealth img{height:43%;bottom:0;object-position:center;filter:brightness(.7)}.wealth .poster-bottom{font-size:19px;color:#fff3dc;bottom:16px}.exhibit-meta{display:flex;gap:12px;align-items:center;font-size:13px;margin-top:18px;color:#6d6a61}.tag{display:inline-block;background:#e0e6db;color:#334730;padding:2px 8px;font-size:12px}.pink{background:#f2dedf;color:#782d3e}.gold{background:#eee0be;color:#725119}.exhibit h2{font-size:22px;line-height:1.55;margin:12px 0 6px}.exhibit>p{font-size:14px;margin:0;color:#6a675d}.meta-arrow{float:right;color:#272720}.exhibition-foot{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #c6c3b9;margin-top:29px;padding:19px 0 35px;font-size:13px;color:#655f54}.footer{padding-block:38px;border-top:1px solid #bbb6aa;font-size:13px;display:flex;align-items:center;gap:32px}.footer-name{font:26px Kampo,serif}.footer>a{margin-left:auto}@media(min-width:1500px){.poster{aspect-ratio:2/3}}@media(max-width:900px){.wrap{width:calc(100% - 48px)}.header{flex-wrap:wrap;gap:18px;padding-block:22px}.header nav{order:3;width:100%;margin:0;justify-content:space-between;border-top:1px solid #d8d4cb;padding-top:17px}.search-jump{margin-left:auto}.poster-grid{gap:18px}.poster-top{top:16px;left:16px;right:16px;font-size:11px}.shaka-title,.guanyin-title{left:18px;top:64px}.wealth-title{left:18px;top:70px}.vertical-note,.guanyin-kicker,.wealth-kicker{right:16px;font-size:12px;top:68px}.poster-bottom{left:18px;font-size:18px}.intro-note{display:none}.exhibit h2{font-size:20px}.footer{flex-wrap:wrap;gap:10px 22px}.footer>a{margin:0}}@media(max-width:620px){.wrap{width:calc(100% - 40px)}.wordmark strong{font-size:28px}.header nav{font-size:14px;gap:10px}.header{min-height:unset}.section-heading{padding:28px 0 22px}h1{font-size:27px}.eyebrow{font-size:10px;letter-spacing:.1em}.poster-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:18px;padding-bottom:14px}.exhibit{flex:0 0 84%;min-width:0;scroll-snap-align:start}.poster{aspect-ratio:2/3}.shaka-title{font-size:54px;top:78px}.guanyin-title{font-size:48px;top:73px}.wealth-title{font-size:56px;top:83px}.poster-top{font-size:12px}.vertical-note,.guanyin-kicker,.wealth-kicker{font-size:13px;top:80px}.poster-bottom{font-size:20px;bottom:20px}.exhibition-foot{display:block;line-height:1.9;margin-top:10px;padding-bottom:25px}.exhibition-foot>a{display:block;margin-top:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
section[id]{scroll-margin-top:26px}.section-heading h2{font-size:32px;letter-spacing:.06em;line-height:1.5;margin:0}.underlink{font-size:14px;border-bottom:1px solid currentColor;padding-bottom:5px}.calendar-section{background:#ece8dd;padding:15px 0 58px;border-top:1px solid #d6d0c0}.calendar-section .section-heading{padding-bottom:25px}.search-form{margin-bottom:22px}.search-form label{display:block;font-size:14px;margin-bottom:9px}.search-box{display:flex;align-items:center;background:#fffefa;border:1px solid #a69c88;padding-left:18px;gap:12px}.search-box>span{font-size:26px}.search-box input{border:0;outline:0;flex:1;min-width:0;background:transparent;height:58px;font-size:16px;color:#262720}.search-box:focus-within{outline:2px solid #973923;outline-offset:2px}.search-box button{border:0;background:#913c2d;color:#fff;padding:0 26px;align-self:stretch}.filters{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:25px}.place-filters{display:flex;flex-wrap:wrap;gap:8px}.place-filters button{padding:8px 14px;border:1px solid #b7ad97;background:transparent;font-size:14px;color:#4b483f}.place-filters button[aria-pressed=true]{background:#343a31;color:#fff;border-color:#343a31}.category-label{font-size:14px;white-space:nowrap}.category-label select{margin-left:8px;border:1px solid #b7ad97;background:#fffefa;padding:8px 10px;max-width:170px;color:#343a31}.calendar-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.35fr);gap:38px;align-items:start}.month-panel{background:#fffefa;padding:23px 26px;border-top:3px solid #92743a}.month-control{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.month-control h3{font-size:24px;margin:0}.month-control button{border:0;background:transparent;font-size:26px;width:38px;height:42px;color:#514839}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:4px}.weekday{font-size:13px;padding:8px 0;color:#6e685a}.month-day,.blank-day{aspect-ratio:1;display:grid;place-content:center;position:relative;min-width:0}.month-day{font-size:17px;font-family:Kampo,serif;border:0;color:#797469;background:transparent}.month-day:disabled{cursor:default}.month-day.has-event{color:#7e3026;background:#f3e4cd}.month-day.has-event:after{content:'';position:absolute;bottom:5px;width:4px;height:4px;background:#a0412b;left:calc(50% - 2px)}.month-day[aria-pressed=true]{background:#8b392d;color:white}.month-day[aria-pressed=true]:after{background:white}.calendar-key{font-size:12px;border-top:1px solid #ddd7c9;margin-top:16px;padding-top:16px;color:#625b4e;display:flex;align-items:center;gap:8px}.calendar-key>span{width:7px;height:7px;background:#a0412b}.text-button{border:0;border-bottom:1px solid #a49c87;background:none;padding:5px 0;color:#66502b;margin-top:16px;font-size:13px}.data-status{font-size:12px;color:#716a5a;line-height:1.8;margin:12px 0 0}.events-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #aaa18f;padding:0 0 12px}.events-heading h3{margin:0;font-size:22px}.events-heading span{font-size:13px;color:#6c6354}#event-list{max-height:530px;overflow-y:auto;padding-right:12px;scrollbar-width:thin}.event-row{padding:22px 0;display:grid;grid-template-columns:65px 1fr;gap:20px;border-bottom:1px solid #c8c0ae}.event-date{font-family:Kampo,serif;line-height:1.15;font-size:32px;color:#71613b}.event-date small{font:12px/1.7 Arial,sans-serif;display:block;margin-top:5px}.event-date .special-date{font-size:20px}.event-time{font-size:13px;color:#6b6354;margin:0 0 4px}.event-row h4{font-family:Kampo,serif;font-size:21px;font-weight:400;line-height:1.55;margin:0 0 9px}.event-links{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}.event-links .event-action{border-bottom:1px solid #913c2d;color:#913c2d;margin-left:auto}.past{opacity:.65}.empty{padding:45px 15px;text-align:center}.empty p{font-size:14px}.empty button{padding:8px 15px;border:1px solid #a19a8b;background:#fffefa;color:#3e4038}#page-results{border-block:1px solid #c1b7a2;padding:16px 0;margin-bottom:22px;font-size:14px}#page-results a{display:inline-block;margin:0 20px 8px 0;border-bottom:1px solid #b0a083}.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center;padding-block:85px}figure{margin:0}figure img{width:100%;height:auto;display:block;object-fit:cover}.about figure img{aspect-ratio:4/3}figcaption{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#736e60;margin-top:12px}.about h2,.bracelet h2,.date-story h2,.first-section h2,.offering-section h2{font-size:38px;line-height:1.65;letter-spacing:.06em;margin:12px 0 23px}.about p{color:#615d53}.large-copy{font-size:21px;line-height:1.9}.solid-button{display:inline-block;background:#893927;color:#fff9ed;padding:12px 21px;font:16px Kampo,serif;line-height:1.7;margin-top:17px;border:1px solid #893927}.rhythm{padding-bottom:76px}.three-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.three-notes article{border-top:1px solid #a8a18f;padding-top:20px}.three-notes article>span{font-size:12px;letter-spacing:.12em;color:#906f40}.three-notes h3{font-size:25px;margin:17px 0}.three-notes p{font-size:16px;color:#666154;line-height:2}.places{background:#242e28;color:#f7f2e6;padding:20px 0 65px}.places .eyebrow{color:#c5a36c}.places .intro-note{color:#c0c4b9}.place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.place-image{position:relative}.place-image img{width:100%;aspect-ratio:1.6;object-fit:cover;display:block}.place-name{display:flex;gap:16px;align-items:center;margin-top:18px}.place-number{font:16px Kampo,serif;color:#c2a76e}.place-name h3{font-size:28px;letter-spacing:.08em;margin:0}.place-card>p{font-size:13px;color:#c2c5b9;line-height:1.9}.place-card .place-description{font-size:16px;color:#e6e5db}.place-links{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #67715f;padding-top:16px;margin-top:24px;font-size:13px}.bracelet{padding-block:80px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.bracelet p{color:#6c6659}.bracelet figure img{aspect-ratio:1.6}.date-story{border-top:1px solid #b6ae9b;border-bottom:1px solid #b6ae9b;display:grid;grid-template-columns:1fr 1.15fr;gap:80px;padding-block:50px;margin-bottom:80px}.date-story h2{font-size:32px}.date-story p{color:#6d6658;font-size:15px}.date-types>div{display:flex;align-items:baseline;gap:28px;border-bottom:1px solid #d8d0c1;padding-block:13px}.date-types>div:last-child{border:0}.date-types h3{font-size:17px;min-width:145px;margin:0}.date-types p{font-size:14px;margin:0}.first-section{background:#f0e4d2;padding:68px 0}.first-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px}.first-layout>div>p{font-size:15px;color:#665744}.first-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bdb098;align-self:center}.first-grid article{padding:20px;border-bottom:1px solid #bdb098}.first-grid article:nth-child(odd){border-right:1px solid #bdb098}.first-grid span{font-size:12px;color:#8d714a}.first-grid h3{font-size:23px;line-height:1.7;margin:9px 0}.no-sales{grid-column:1/-1;font-size:13px!important;margin:16px 0 0!important;padding:12px 18px;background:#e3d2b7}.no-sales span{font-family:Kampo,serif;margin-left:20px;font-size:18px;color:#483d2b}.offering-section{padding-block:75px;display:grid;grid-template-columns:1fr 1fr;gap:70px;border-bottom:1px solid #c0b7a4}.offering-section>div:last-child{align-self:center}.offering-section p{line-height:2;color:#6c6354}.faq{max-width:900px;padding-block:35px 70px}.faq details{border-bottom:1px solid #cec6b7;padding:18px 0}.faq summary{cursor:pointer;font-family:Kampo,serif;font-size:21px;padding-right:20px}.faq details p{color:#6e6455;line-height:1.9;padding:5px 20px;font-size:16px}.faq details a{text-decoration:underline}.closing{background:#8c382c;color:#fff1db;padding-block:60px;text-align:center}.closing .eyebrow{color:#e6c49e}.closing h2{font-size:38px;line-height:1.7;font-weight:400;letter-spacing:.1em}.closing .solid-button{background:#fff5e5;color:#642519}.footer-links{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}.footer p{margin:7px 0}.credits{max-width:800px;padding-block:50px}.credits h1{font-size:30px}.credits h2{font-size:22px;margin-top:40px}.credits a{text-decoration:underline}.credits p{line-height:2}@media(max-width:1000px){.calendar-layout{gap:22px}.month-panel{padding:20px}.about,.bracelet,.date-story,.first-layout,.offering-section{gap:36px}.about h2,.bracelet h2,.first-section h2{font-size:32px}.date-types>div{display:block}.date-types p{margin-top:8px}.category-label{font-size:12px}.place-filters button{padding:7px 10px;font-size:13px}}@media(max-width:700px){.section-heading h2{font-size:27px}.calendar-section{padding-bottom:36px}.calendar-section .section-heading{display:block}.calendar-section .underlink{display:inline-block;margin-top:15px}.filters{align-items:start;flex-direction:column;gap:14px}.search-box input{height:53px;font-size:15px}.search-box input::placeholder{font-size:12px}.search-box{padding-left:10px;gap:6px}.search-box button{padding:0 16px;font-size:14px}.calendar-layout{grid-template-columns:1fr}.month-panel{max-width:440px;width:100%;margin:auto}.month-day,.blank-day{aspect-ratio:1.25}.calendar-key{margin-top:10px}#event-list{max-height:none;overflow:visible;padding:0}.event-row{gap:14px;grid-template-columns:56px 1fr;padding:20px 0}.event-row h4{font-size:20px}.event-date{font-size:28px}.event-links{gap:8px 13px}.event-links .event-action{margin-left:0}.about,.bracelet,.date-story,.first-layout,.offering-section{grid-template-columns:1fr;gap:32px;padding-block:45px}.about h2,.bracelet h2,.first-section h2{font-size:32px}.about{gap:38px}.three-notes{grid-template-columns:1fr;gap:20px}.three-notes h3{margin:10px 0;font-size:24px}.three-notes p{margin:8px 0}.rhythm{padding-bottom:40px}.place-grid{grid-template-columns:1fr;gap:35px}.place-image img{aspect-ratio:1.85}.places{padding-bottom:45px}.place-card>p{font-size:14px}.place-links{margin-top:16px}.bracelet figure{order:2}.date-story{margin-bottom:40px}.date-types>div{display:flex;gap:15px}.date-types h3{min-width:115px;font-size:15px}.date-types p{margin:0;font-size:13px}.first-section{padding:0}.offering-section{gap:15px}.offering-section h2{margin-bottom:0}.offering-section .large-copy{margin-top:12px}.faq{padding-block:20px 45px}.faq summary{font-size:19px}.closing{padding-block:40px}.closing h2{font-size:32px}.footer{padding-block:26px}.footer-links{margin:15px 0 0;font-size:12px}.first-grid h3{font-size:21px}.first-grid article{padding:18px 12px}}

@font-face{font-family:KampoSans;src:url('assets/sans.woff2?v=16') format('woff2');font-weight:100 900;font-display:swap}body{font-family:KampoSans,Arial,sans-serif}.official-logo{width:225px;height:auto;display:block;margin-bottom:12px}.footer-name{margin-bottom:12px}@media(max-width:620px){.shaka-title{font-size:clamp(40px,12vw,54px)}.guanyin-title{font-size:clamp(34px,11vw,48px);top:58px}.guanyin img{height:38%}}

.writing-photo{display:block;width:100%;height:auto;overflow:hidden}

/* Exhibition rail and compact programme: shared editorial grid. */
.header{min-height:112px}.section-heading{padding:32px 0 25px}.poster-carousel{min-width:0}.poster-grid{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 0 8px;overscroll-behavior-x:contain}.poster-grid::-webkit-scrollbar{display:none}.exhibit{flex:0 0 calc((100% - 60px)/3.15);min-width:0;scroll-snap-align:start;container-type:inline-size}.poster{aspect-ratio:2/3}.poster-top{font-family:KampoSans,Arial,sans-serif;font-size:11px;top:20px;left:20px;right:20px;letter-spacing:.08em}.exhibit h2{font-size:21px;margin:11px 0 7px;min-height:2em}.exhibit-meta{margin-top:19px;gap:10px}.exhibit>p{font-size:13px}.shaka img{mask-image:linear-gradient(to right,transparent,#000 32%),linear-gradient(to bottom,transparent,#000 18%,#000 78%,transparent);mask-composite:intersect}.shaka-title{font-size:clamp(38px,15cqi,66px);top:76px;left:22px}.vertical-note,.guanyin-kicker,.wealth-kicker{top:79px;right:20px;font-size:12px}.guanyin-title{font-size:clamp(35px,14cqi,61px);top:65px;left:22px;line-height:1.35}.guanyin img{height:41%;bottom:36px}.wealth-title{font-size:clamp(39px,16cqi,69px);top:78px;left:22px}.poster-bottom{font-size:clamp(17px,5.3cqi,22px);left:22px;bottom:23px}.poster-bottom small{font-size:12px}.wealth .poster-bottom{font-size:17px}.carousel-toolbar{position:relative;display:flex;align-items:center;justify-content:center;padding:14px 48px 18px;min-height:72px}.poster-dots{display:flex;align-items:center;justify-content:center;gap:2px}.poster-dot{display:grid;place-content:center;width:36px;height:40px;padding:0;border:0;background:transparent}.poster-dot span{display:block;width:10px;height:10px;border:1px solid #817a6c;border-radius:50%;background:transparent;transition:background .2s,border-color .2s}.poster-dot[aria-pressed=true] span{background:#8c382c;border-color:#8c382c}.poster-dot:hover span{border-color:#8c382c}.carousel-toggle{position:absolute;right:0;top:14px;width:40px;height:40px;border:0;background:transparent;display:grid;place-content:center;color:#6a6255}.carousel-toggle span{display:block;width:10px;height:12px;border-inline:3px solid currentColor}.carousel-toggle[data-paused=true] span{width:0;height:0;border:6px solid transparent;border-right:0;border-left:10px solid currentColor}.event-pagination button{width:44px;height:42px;border:1px solid #bfb9ab;background:transparent;color:#3b3e32;font-size:20px;display:inline-grid;place-content:center}.event-pagination button:not(:disabled):hover{background:#e7e2d6}.exhibition-foot{margin-top:0;padding:17px 0 29px}.special-poster{background:#dbc6a8;color:#562c29}.special-art{position:absolute;display:block;width:100%;height:100%;right:0;top:0}.special-title{position:absolute;z-index:2;writing-mode:vertical-rl;font-size:clamp(36px,13.8cqi,61px);letter-spacing:.16em;left:20px;top:80px}.special-bottom{position:absolute;bottom:20px;left:22px;right:15px;z-index:2;font-size:clamp(16px,4.8cqi,20px);line-height:1.8}.special-bottom small{display:block;font:11px/1.8 KampoSans,sans-serif;letter-spacing:.12em}.wine{background:#ead8cc;color:#6a332c}.calendar-layout{grid-template-columns:minmax(280px,.75fr) minmax(0,1.35fr);gap:44px}.events-panel{min-width:0}#event-list{max-height:none;overflow:visible;padding:0;min-height:405px}.event-row{padding:21px 0;min-height:135px}.event-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:17px;font-size:12px;color:#6c6354}.event-pagination>div{display:flex;align-items:center;gap:15px}.event-pagination button{width:40px;height:40px}.event-pagination button:disabled{opacity:.3;cursor:default}.event-pagination #page-number{min-width:32px;text-align:center;font-variant-numeric:tabular-nums}.events-heading{padding-bottom:14px}.about{padding-block:70px}.three-notes h3{margin-block:13px}.three-notes p{margin-bottom:0}.rhythm{padding-bottom:65px}
@media(max-width:1100px){.exhibit{flex-basis:calc((100% - 36px)/2.3)}.calendar-layout{gap:25px}.event-row{gap:14px}.event-links{gap:8px 12px}.event-row h4{font-size:20px}}
@media(max-width:700px){.calendar-layout{grid-template-columns:1fr}#event-list{min-height:0}.event-row{min-height:145px}.event-pagination{padding-top:16px}.event-pagination>div{gap:10px}}
@media(max-width:620px){.header{min-height:unset}.section-heading{padding:26px 0 20px}.poster-grid{gap:18px}.exhibit{flex-basis:86%}.poster-top{font-size:11px;left:18px;right:18px}.shaka-title{top:70px;left:18px}.guanyin-title{top:59px;left:18px}.wealth-title{top:70px;left:18px}.special-title{left:18px;top:73px}.vertical-note,.guanyin-kicker,.wealth-kicker{right:16px;top:76px}.poster-bottom,.special-bottom{left:18px}.poster-bottom small{font-size:11px}.exhibit h2{font-size:20px}.carousel-toolbar{padding:10px 44px 14px;min-height:64px}.carousel-toggle{top:10px}.exhibition-foot{font-size:12px}.about{padding-block:45px}.rhythm{padding-bottom:40px}}

.wordmark{grid-template-columns:auto;column-gap:0}.wordmark small{letter-spacing:.4em}.poster-stage{position:relative;min-width:0}.poster-arrow{position:absolute;top:calc(var(--poster-height,420px)/2 + 4px);transform:translateY(-50%);z-index:5;width:52px;height:52px;padding:0;display:grid;place-content:center;border:1px solid #46463e;border-radius:50%;background:#fff;color:#262720;box-shadow:0 3px 12px #24252018;transition:background .2s,box-shadow .2s}.poster-arrow:hover{background:#f6f2e9;box-shadow:0 4px 16px #24252028}.poster-arrow-prev{left:-24px}.poster-arrow-next{right:-24px}.poster-arrow span{display:block;width:12px;height:12px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);margin-left:-5px}.poster-arrow-prev span{transform:rotate(-135deg);margin-left:5px}@media(max-width:620px){.poster-arrow{width:44px;height:44px}.poster-arrow-prev{left:-10px}.poster-arrow-next{right:-10px}.poster-arrow span{width:10px;height:10px}.wordmark strong{font-size:28px}}

/* One compact, persistent header; the navigation opens as a full-screen menu. */
.header.wrap{position:sticky;top:0;z-index:20;width:100%;min-height:104px;padding:20px max(48px,calc((100% - 1380px)/2));background:#fff;flex-wrap:nowrap;gap:24px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;margin-left:auto;width:54px;min-height:62px;padding:4px 0;border:0;background:transparent;color:#292b26;font:12px/1.3 KampoSans,Arial,sans-serif;letter-spacing:.12em}.menu-bars{position:relative;display:block;width:34px;height:22px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}.menu-bars:after{content:'';position:absolute;left:0;right:0;top:10px;border-top:1px solid currentColor}.menu-is-open{overflow:hidden}.site-menu{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#fff;color:#242520;overflow-y:auto;overscroll-behavior:contain}.site-menu::backdrop{background:#fff}.menu-panel{width:min(760px,calc(100% - 64px));margin:auto;padding:38px 0 max(42px,env(safe-area-inset-bottom));}.menu-heading{position:relative;display:flex;align-items:center;min-height:100px;padding:12px 66px 32px 18px}.menu-close{position:absolute;top:0;right:0;display:grid;place-content:center;width:48px;height:48px;border:0;background:transparent;color:#3d3e38}.menu-close span{display:block;position:relative;width:32px;height:32px}.menu-close span:before,.menu-close span:after{content:'';position:absolute;left:0;top:15px;width:32px;border-top:1px solid currentColor;transform:rotate(45deg)}.menu-close span:after{transform:rotate(-45deg)}.menu-navigation{border-top:1px solid #c9c8c2}.menu-navigation details{border-bottom:1px solid #d7d5ce}.menu-navigation summary{position:relative;list-style:none;text-align:center;cursor:pointer;padding:25px 48px;font:20px/1.6 KampoSans,Arial,sans-serif;letter-spacing:.1em}.menu-navigation summary::-webkit-details-marker{display:none}.menu-navigation summary:after{content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);font:30px/1 Arial,sans-serif;color:#8c8b82}.menu-navigation details[open]>summary:after{content:'−'}.menu-subnav{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:0 22px 18px}.menu-subnav a{display:block;text-align:center;padding:12px 8px;font-size:16px;color:#665b4a}.menu-subnav a:hover{background:#f6f4ee}.menu-search{margin:44px 0 30px}.menu-search label{display:block;margin-bottom:12px;font-size:14px;color:#7b756a}.menu-search>div{display:flex;align-items:stretch;gap:20px}.menu-search input{min-width:0;flex:1;border:0;border-bottom:1px solid #bfbcb3;border-radius:0;background:transparent;font:18px/1.5 KampoSans,Arial,sans-serif;padding:14px 4px;color:#282a24}.menu-search input::placeholder{color:#8b877f}.menu-search button{flex-shrink:0;min-width:80px;padding:14px 20px;border:1px solid #30332b;background:#30332b;color:white;font-size:16px}.menu-contact{display:block;text-align:center;padding:18px 0;font-size:14px;color:#665e51}html{scroll-padding-top:126px}@media(max-width:620px){.header.wrap{min-height:98px;padding:17px 20px;gap:16px}.menu-panel{width:calc(100% - 40px);padding-top:22px}.menu-heading{padding-left:10px;min-height:110px}.menu-navigation summary{font-size:18px;padding-block:23px}.menu-subnav{grid-template-columns:1fr;padding-inline:12px}.menu-search{margin-top:35px}.menu-search>div{gap:14px}.menu-search input{font-size:16px}.menu-search button{min-width:70px;padding-inline:16px}html{scroll-padding-top:118px}}

/* Frosted header and a smaller exhibition scale on wide screens. */
.header.wrap{background:rgba(255,255,255,.66);border-bottom-color:rgba(125,132,125,.24);backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.header.wrap{background:rgba(255,255,255,.95)}}
@media(min-width:1101px){.exhibit{flex-basis:calc((100% - 72px)/3.85)}.poster-grid{gap:24px}.poster-top{top:16px;left:16px;right:16px}.shaka-title,.wealth-title,.special-title{top:64px;left:18px}.guanyin-title{top:54px;left:18px}.vertical-note,.guanyin-kicker,.wealth-kicker{top:66px;right:16px}.poster-bottom,.special-bottom{left:18px;bottom:17px}.exhibit h2{font-size:19px}.exhibit-meta{margin-top:14px}.poster-arrow{width:46px;height:46px}.poster-arrow-prev{left:-22px}.poster-arrow-next{right:-22px}}

/* Translucent controls stay legible without hiding the poster beneath them. */
.poster-arrow{background:rgba(255,255,255,.48);border-color:rgba(55,58,49,.35);color:#383d32;box-shadow:0 3px 12px #2425200d;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}.poster-arrow-next:not(:disabled){background:rgba(48,51,43,.68);border-color:rgba(255,255,255,.40);color:#fffdf6}.poster-arrow:not(:disabled):hover{background:rgba(255,255,255,.68);box-shadow:0 5px 16px #2425201a}.poster-arrow-next:not(:disabled):hover{background:rgba(48,51,43,.80)}.poster-arrow:not(:disabled):active{transform:translateY(-50%) scale(.96)}.poster-arrow:disabled,.poster-arrow:disabled:hover{background:rgba(230,230,224,.25);border-color:rgba(110,112,101,.12);color:rgba(103,106,96,.35);box-shadow:none;cursor:default}.poster-arrow span{transition:translate .15s ease-out}.poster-arrow-next:not(:disabled):hover span{translate:2px 0}.poster-arrow-prev:not(:disabled):hover span{translate:-2px 0}.poster-dots{gap:0}.poster-dot{width:18px;height:40px}.poster-dot[hidden]{display:none}.poster-dot span{width:9px;height:9px;border-color:#9c988c;transition:background .15s ease-out,border-color .15s ease-out,transform .15s ease-out}.poster-dot[aria-pressed=true] span{background:#b09a55;border-color:#b09a55;transform:scale(1.06)}.poster-dot:hover span{border-color:#b09a55}

/* Original calendar: cool paper, category dots, date groups and white cards. */
@font-face{font-family:CalendarSerif;src:url('assets/calendar-serif.woff2') format('woff2');font-weight:200 900;font-display:swap}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.calendar-section{--cal-ink:#2f3b3f;--cal-soft:#5c6e75;--cal-line:#d0d8db;--cal-light:#e5eaec;--cal-accent:#445459;background:#f5f7f8;color:var(--cal-ink);border-color:var(--cal-line);padding:28px 0 56px;font-family:KampoSans,Arial,sans-serif}
.calendar-section>.wrap{width:min(820px,calc(100% - 64px))}
.calendar-section .eyebrow{color:var(--cal-soft)}
.calendar-section .section-heading h2{font-family:CalendarSerif,serif;font-weight:700;font-size:30px;letter-spacing:.02em}
.calendar-section .section-heading{padding-top:16px}
.calendar-section .underlink{color:var(--cal-soft);flex-shrink:0}
.calendar-section .search-form{margin-bottom:18px}
.calendar-section .search-form label{color:var(--cal-soft)}
.calendar-section .search-box{border-color:var(--cal-line);border-radius:10px;background:white;overflow:hidden}
.calendar-section .search-box button{background:var(--cal-accent)}
.calendar-section .search-box input{color:var(--cal-ink);font-size:16px}
.calendar-section .search-box input::placeholder{font-size:14px;color:var(--cal-soft)}
.calendar-section .filters{margin-bottom:12px;display:block}
.calendar-section .place-filters{gap:8px;flex-wrap:wrap}
.calendar-section .place-filters button{padding:7px 13px;border:1px solid var(--cal-line);border-radius:8px;font-size:14px;background:transparent;color:var(--cal-soft);min-height:40px}
.calendar-section .place-filters button[aria-pressed=true]{background:#e5eaec;border-color:#98a9b0;color:var(--cal-ink)}
.category-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#b7c2c6 transparent;padding:5px 2px 14px;margin:0 -2px 22px}
.category-chip{flex-shrink:0;display:flex;align-items:center;gap:7px;padding:8px 15px;border:1.5px solid var(--cal-line);border-radius:24px;font-size:15px;font-weight:700;line-height:1.6;color:var(--cal-soft);background:white}
.category-chip[aria-pressed=true]{background:var(--cal-accent);border-color:var(--cal-accent);color:white}
.cat-normal{--cat-mark:#2d7dd2;--cat-bg:#d8e9f8;--cat-fg:#1a5c9e}
.cat-wealth{--cat-mark:#e0a11b;--cat-bg:#fce9bf;--cat-fg:#8a5a00}
.cat-deity{--cat-mark:#8b49d6;--cat-bg:#eaddf7;--cat-fg:#6326a8}
.cat-dijun{--cat-mark:#0097a7;--cat-bg:#cfebef;--cat-fg:#006b78}
.cat-major{--cat-mark:#e0452f;--cat-bg:#fbdbd6;--cat-fg:#b3261e}
.cat-special{--cat-mark:#36a166;--cat-bg:#e1f2e7;--cat-fg:#267044}
.category-mark{display:inline-block;flex-shrink:0;width:9px;height:9px;border-radius:50%;background:var(--cat-mark)}
.category-chip[aria-pressed=true] .category-mark{background:currentColor}
.calendar-section .calendar-layout{display:block}
.calendar-section .month-panel{width:100%;max-width:560px;margin:0 auto;padding:0;background:transparent;border:0}
.calendar-section .month-control{gap:16px;margin:0 0 18px}
.month-control select{min-width:0;flex:1;background:white;border:1.5px solid var(--cal-line);border-radius:10px;padding:11px 14px;font-size:18px;font-weight:700;color:var(--cal-ink)}
.calendar-section .month-control>div{display:flex;gap:4px;flex-shrink:0}
.calendar-section .month-control button{width:40px;height:46px;color:var(--cal-soft);font-family:Arial,sans-serif;font-size:28px;border-radius:8px}
.calendar-section .month-control button:not(:disabled):hover{background:var(--cal-light)}
.calendar-section .month-control button:disabled{opacity:.3;cursor:default}
.calendar-section .month-grid{gap:0;align-items:start}
.calendar-section .weekday{font-size:14px;font-weight:700;color:var(--cal-soft);padding:4px 0 9px;border-bottom:1px solid var(--cal-line);margin-bottom:4px}
.calendar-section .sun{color:#b0493c}.calendar-section .sat{color:#3a6587}
.calendar-section .month-day,.calendar-section .blank-day{aspect-ratio:auto;min-height:57px}
.calendar-section .month-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:6px 0 3px;background:transparent;color:var(--cal-ink);font-family:KampoSans,Arial,sans-serif;border:0;border-radius:8px;font-size:16px;font-weight:700;line-height:1.4}
.calendar-section .month-day.has-event:after{content:none}
.calendar-section .month-day.has-event:hover{background:var(--cal-light)}
.day-number{min-width:28px;height:28px;display:grid;place-content:center;border-radius:50%}
.calendar-section .month-day.today .day-number{background:var(--cal-accent);color:white}
.calendar-section .month-day[aria-pressed=true] .day-number{background:var(--cal-accent);color:white}
.calendar-dots{display:flex;align-items:center;justify-content:center;gap:3px;min-height:11px}
.calendar-dot{width:8px;height:8px;border-radius:50%;background:var(--cat-mark)}
.calendar-more{font-size:12px;line-height:1;color:var(--cal-soft)}
.calendar-section .calendar-key{justify-content:center;display:block;text-align:center;font-size:13px;color:var(--cal-soft);border-top:1px solid var(--cal-line);margin:12px 0 0;padding-top:13px}
.calendar-section .text-button{display:block;width:max-content;max-width:100%;margin:8px auto 0;color:var(--cal-soft);font-size:14px;border-color:#a3b2b8}
.calendar-section .data-status{font-size:12px;color:var(--cal-soft);text-align:center;margin:12px 0 0;line-height:1.7}
.calendar-section .events-panel{margin-top:32px}
.calendar-section .events-heading{border-bottom:0;padding-bottom:2px}
.calendar-section .events-heading h3{font-family:KampoSans,Arial,sans-serif;font-size:17px;font-weight:700;color:var(--cal-ink)}
.calendar-section .events-heading span{font-size:14px;color:var(--cal-soft)}
.calendar-section #event-list{min-height:0;max-height:none;overflow:visible;padding:0}
.event-daygroup{margin-top:20px}
.day-heading{display:flex;align-items:baseline;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--cal-ink)}
.day-heading h4{font:900 26px/1.4 CalendarSerif,serif;color:var(--cal-accent);margin:0}
.day-heading>span{font-size:15px;font-weight:700;color:var(--cal-soft)}
.event-card{background:white;border:1px solid var(--cal-light);border-radius:12px;padding:17px 20px;margin-top:10px}
.calendar-section .event-time{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cal-soft);margin:0 0 3px}
.ended{font-size:12px;font-weight:400;padding:1px 7px;background:#eef1f2;border-radius:4px}
.event-card h4{font-family:KampoSans,Arial,sans-serif;font-size:20px;font-weight:700;line-height:1.5;margin:0;color:var(--cal-ink)}
.event-card.cat-major h4{color:#b3261e}
.event-card.cat-special{background:#f4faf7}
.event-card.cat-special h4{color:#267044}
.event-meta{margin-top:11px}
.event-tag{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;line-height:1.5;background:var(--cat-bg);color:var(--cat-fg);padding:4px 10px;border-radius:6px}
.calendar-section .event-links{display:flex;align-items:stretch;gap:10px;margin-top:13px;font-size:15px;font-weight:700}
.calendar-section .event-links a{flex:1;display:flex;justify-content:center;align-items:center;gap:6px;min-height:43px;padding:8px 12px;border:1.5px solid var(--cal-line);border-radius:9px;margin:0;color:var(--cal-ink);text-decoration:none}
.calendar-section .event-links a:hover{background:#f0f4f5}
.calendar-section .event-links .event-action{background:#e9f5ec;border-color:#bfe2c8;color:#2c7a41}
.calendar-section .event-links .event-action:hover{background:#dceee0}
.calendar-section .event-pagination{font-size:14px;color:var(--cal-soft);padding-top:22px}
.calendar-section .event-pagination button{border-color:var(--cal-line);border-radius:8px;background:white;color:var(--cal-ink)}
.calendar-section .event-pagination button:not(:disabled):hover{background:var(--cal-light)}
.calendar-section #page-results{border-color:var(--cal-line)}
.calendar-section .empty{color:var(--cal-soft)}
@media(max-width:700px){.calendar-section{padding-top:10px;padding-bottom:36px}.calendar-section>.wrap{width:calc(100% - 36px)}.calendar-section .section-heading h2{font-size:26px}.calendar-section .section-heading{padding-bottom:20px}.calendar-section .month-day,.calendar-section .blank-day{min-height:50px}.calendar-section .month-day{font-size:15px}.calendar-section .events-panel{margin-top:25px}.event-card{padding:14px 15px}.event-card h4{font-size:19px}.calendar-section .event-pagination{font-size:13px}.calendar-section .place-filters button{font-size:14px;padding-inline:10px}.category-chips{margin-bottom:15px}.calendar-section .event-links{gap:8px;font-size:14px}.calendar-section .event-links a{padding-inline:8px}.calendar-section .search-box input::placeholder{font-size:13px}}

/* Museum proportions: desktop navigation, open white space, small posters. */
body{background:#fff}
.desktop-header{display:none}
.exhibitions.wrap{padding-top:30px}
.exhibitions .exhibit h2{font-family:KampoSans,Arial,sans-serif;font-weight:700;line-height:1.55;min-height:0}
.exhibitions .exhibit>p{font-size:14px;line-height:1.65;color:#70716e}
.exhibitions .exhibit .exhibit-venue{margin-top:2px}
.exhibitions .exhibit-meta{margin-top:13px}
.exhibitions .tag{background:#343633;color:#fff;padding:4px 10px;font:14px/1.5 KampoSans,Arial,sans-serif}
.exhibitions .exhibition-foot{color:#70716e;font-size:14px}
#search{scroll-margin-top:165px}
.carousel-static .carousel-toolbar{display:none}
.poster-dots[hidden],.carousel-toggle[hidden]{display:none}
@media(min-width:1101px){
 .header.wrap{min-height:clamp(124px,9.3vw,156px);padding:24px 8.8vw;gap:36px;border-bottom:0}
 .header>.wordmark strong{font-size:32px;letter-spacing:.16em}
 .header>.wordmark small{font-size:14px;letter-spacing:.35em;margin-top:10px}
 .desktop-header{display:flex;flex-direction:column;align-items:flex-end;gap:17px;margin-left:auto;min-width:0}
 .header-tools{display:flex;align-items:center;justify-content:flex-end;gap:24px;font-size:14px;line-height:1.6}
 .header-search{display:flex;align-items:center;gap:8px;min-height:38px}
 .header-booking{display:block;padding:8px 18px;background:#bc3d24;color:#fff;font-size:14px;letter-spacing:.04em;font-weight:700}
 .header .desktop-navigation{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 25px;margin:0;padding:0;width:auto;border:0;font-size:16px;line-height:1.7}
 .header .menu-toggle{display:none}
 .exhibitions.wrap{width:100%;max-width:none;padding:clamp(32px,2.65vw,52px) 0 0}
 .poster-grid{padding:4px 7vw 8px;gap:2.1vw;scroll-padding-inline:7vw}
 .exhibit{flex:0 0 clamp(200px,17vw,320px)}
 .carousel-static .poster-grid{justify-content:center}
 .poster{aspect-ratio:2/3}
 .poster-top{top:5%;left:6%;right:6%;font-size:12px;letter-spacing:0;line-height:1.5}
 .shaka-title{left:7%;top:18%;font-size:15cqi;line-height:1.25;letter-spacing:.17em}
 .guanyin-title{left:7%;top:17%;font-size:14cqi;line-height:1.4;letter-spacing:.14em}
 .wealth-title{left:7%;top:20%;font-size:15cqi;line-height:1.25}
 .special-title{left:6%;top:18%;font-size:14cqi;line-height:1.3;letter-spacing:.17em}
 .vertical-note,.guanyin-kicker,.wealth-kicker{right:6%;top:20%;font-size:12px;letter-spacing:.18em}
 .poster-bottom,.special-bottom{left:7%;right:5%;bottom:5%;font-size:6.3cqi;line-height:1.7}
 .poster-bottom small,.special-bottom small{font-size:12px;line-height:1.6;letter-spacing:0}
 .wealth .poster-bottom{font-size:6.3cqi}
 .guanyin img{bottom:9%;height:40%}
 .guanyin-footer{left:7%;bottom:3%;font-size:12px;letter-spacing:0;line-height:1.5}
 .exhibitions .exhibit h2{font-size:16px;margin:11px 0 6px}
 .exhibitions .exhibit>p{font-size:14px}
 .exhibitions .poster-arrow{width:50px;height:50px;top:calc(var(--poster-height,350px)/2 + 4px)}
 .exhibitions .poster-arrow-prev{left:1.5vw}
 .exhibitions .poster-arrow-next{right:1.5vw}
 .carousel-toolbar{margin-inline:7vw;padding-top:7px;padding-bottom:9px;min-height:56px}
 .exhibitions .exhibition-foot{width:min(1160px,86%);margin:24px auto 0;padding:17px 0 25px;border-color:#deded9}
 html{scroll-padding-top:170px}
}
@media(min-width:621px) and (max-width:1100px){.exhibit{flex-basis:clamp(230px,29vw,300px)}}
@media(max-width:620px){.exhibitions.wrap{padding-top:24px}.exhibitions .exhibit h2{font-size:19px}.exhibitions .exhibition-foot{font-size:13px}.exhibitions .exhibit>p{font-size:14px}}

/* Compact search expands into a focused, keyboard-accessible search surface. */
.search-trigger{display:flex;align-items:center;gap:10px;width:176px;min-height:44px;padding:7px 14px;border:1.5px solid #829187;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(234,240,235,.9));color:#657269;text-align:left;font:14px/1.5 KampoSans,Arial,sans-serif;box-shadow:inset 0 1px 0 #fff,0 2px 8px #243e2e0c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}
.search-trigger:hover,.search-trigger[aria-expanded=true]{background:rgba(233,240,234,.96);border-color:#5e7666;box-shadow:inset 0 1px 0 #fff,0 3px 12px #243e2e14}.search-trigger:active{transform:scale(.96)}
.search-trigger>svg{flex-shrink:0;color:#3d463e}
.search-teaser{display:flex;align-items:center;gap:9px;min-width:0;white-space:nowrap}
.search-hint{display:block;position:relative;width:3em;height:1.5em;overflow:hidden}
.search-hint>span{position:absolute;inset:0;opacity:0;animation:search-keyword 9s infinite;will-change:opacity,transform}
.search-hint>span:nth-child(2){animation-delay:3s}
.search-hint>span:nth-child(3){animation-delay:6s}
@keyframes search-keyword{0%{opacity:0;transform:translateY(5px)}4%,28%{opacity:1;transform:translateY(0)}33%,100%{opacity:0;transform:translateY(-5px)}}
.search-trigger:hover .search-hint>span,.search-trigger:focus-visible .search-hint>span,.search-is-open .search-hint>span{animation-play-state:paused}
.header .search-trigger-mobile{margin-left:auto;width:clamp(128px,18vw,176px)}
.header .menu-toggle{margin-left:0}
.search-is-open{overflow:hidden}
.search-dialog{position:fixed;inset:clamp(88px,11vh,150px) 8.8vw auto auto;margin:0;width:min(620px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 120px);padding:24px 28px 23px;overflow:auto;border:1px solid rgba(153,164,154,.3);border-radius:16px;background:rgba(255,255,255,.97);color:#303a32;box-shadow:0 22px 70px #1b2b2326;transform-origin:80% top}
/* Transitions continue from the visible position when opening is interrupted. */
.search-dialog{opacity:0;transform:translateY(-12px) scale(.96);transition:opacity .24s ease-out,transform .24s ease-out}
.search-dialog[open]{opacity:1;transform:none}
.search-dialog::backdrop{background:rgba(29,39,32,.18);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:1;transition:opacity .24s ease-out}
@starting-style{
 .search-dialog[open]{opacity:0;transform:translateY(-12px) scale(.96)}
 .search-dialog[open]::backdrop{opacity:0}
}
.search-dialog[open].is-closing{opacity:0;transform:translateY(-7px) scale(.97);transition-duration:.16s}
.search-dialog[open].is-closing::backdrop{opacity:0;transition-duration:.16s}
.search-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.search-dialog-heading h2{font:500 16px/1.6 KampoSans,Arial,sans-serif;margin:0;color:#67736a;letter-spacing:.08em}
.search-close{width:40px;height:40px;display:grid;place-content:center;border:0;background:transparent;border-radius:50%;color:#68746b;font:30px/1 Arial,sans-serif;margin:-8px -10px -8px 0}
.search-close:hover{background:#eef2ed}
.expanded-search{margin:0}
.expanded-search-field{display:flex;align-items:center;gap:13px;border-bottom:1.5px solid #8c9b8e;padding:7px 0 11px}
.expanded-search-field>svg{flex-shrink:0;color:#566759}
.expanded-search-field input{flex:1;min-width:0;width:100%;padding:6px 0;border:0;border-radius:0;background:transparent;font:20px/1.5 KampoSans,Arial,sans-serif;color:#26382b;outline:0}
.expanded-search-field:focus-within{border-color:#3f654d;box-shadow:0 1px 0 #3f654d}
.expanded-search-field input::placeholder{color:#90988f;font-size:17px}
.expanded-search-field button{flex-shrink:0;padding:10px 15px;border:0;border-radius:7px;background:#3f5647;color:white;font-size:15px;min-height:44px}
.expanded-search-field button:hover{background:#2d4535}
.expanded-search>p{margin:13px 0 0;font-size:14px;color:#818980}
#result-title{scroll-margin-top:175px;overflow-wrap:anywhere}
.events-heading{gap:16px}.events-heading>span{flex-shrink:0}
@media(min-width:1101px){.header .search-trigger-mobile{display:none}.header-tools{gap:20px}.search-trigger-desktop{width:124px;min-height:36px;padding:6px 11px;gap:7px}.search-trigger-desktop>svg{width:18px;height:18px}.search-trigger-desktop .search-teaser{gap:7px}.search-trigger-desktop .search-hint{width:2.15em}}
@media(max-width:1100px){.search-dialog{right:24px}}
@media(max-width:620px){.header.wrap{gap:12px}.header .search-trigger-mobile{width:128px;padding-inline:8px;gap:8px;min-height:44px;font-size:14px}.header .menu-toggle{width:44px}.search-teaser{gap:7px}.search-hint{width:2.5em}.search-dialog{inset:84px 18px auto;margin:0;width:calc(100% - 36px);padding:20px;max-height:calc(100dvh - 108px);border-radius:14px;transform-origin:70% top}.expanded-search-field{gap:8px}.expanded-search-field input{font-size:17px}.expanded-search-field input::placeholder{font-size:16px}.expanded-search-field button{padding-inline:12px;font-size:14px}.expanded-search-field button>span{display:none}#result-title{scroll-margin-top:124px}}
@media(max-width:380px){.header.wrap{padding-inline:16px;gap:8px}.header>.wordmark strong{font-size:24px}.header .search-trigger-mobile{width:112px;min-width:112px;padding-inline:6px;font-size:13px;gap:6px}.header .search-trigger-mobile>svg{width:18px;height:18px}.header .menu-toggle{width:40px}.search-dialog{padding:18px}.expanded-search-field>svg{width:18px}.expanded-search-field input::placeholder{font-size:14px}}
@media(prefers-reduced-motion:reduce){.search-hint>span{animation:none;opacity:0;transform:none}.search-hint>span:first-child{opacity:1}.search-dialog[open],.search-dialog[open].is-closing,.search-dialog::backdrop{animation:none;transform:none}}

/* Venue arrival guides: warm map paper, blue transit, terracotta walking lines. */
.place-links{align-items:center}
.place-links .place-traffic{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:42px;padding:7px 13px;border:1px solid #b9c4b35c;border-radius:5px;background:#ffffff07;color:#f5f0e4;white-space:nowrap;transition:background .2s,border-color .2s}
.place-links .place-traffic:hover{background:#bfa36e25;border-color:#cfb37a;text-decoration:none}
.place-traffic span{font-size:19px;line-height:1;color:#d5ba81}
html.arrival-is-open,html.arrival-is-open body{overflow:hidden}
.arrival-dialog{inset:0;margin:auto;width:min(1080px,calc(100% - 64px));max-width:none;max-height:calc(100dvh - 64px);padding:0;border:1px solid #dedbd3;border-radius:22px;background:#fcfbf8;color:#2b3530;box-shadow:0 32px 100px #091c2847;overflow:auto;overscroll-behavior:contain;font-family:KampoSans,Arial,'PingFang TC',sans-serif}
.arrival-dialog[open]{animation:arrival-in .3s cubic-bezier(.2,.8,.2,1) both}
.arrival-dialog::backdrop{background:#15251e80;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:arrival-backdrop .25s ease both}
.arrival-dialog.is-closing{animation:arrival-out .18s ease both}
.arrival-dialog.is-closing::backdrop{animation:arrival-backdrop .18s ease reverse both}
@keyframes arrival-in{from{opacity:0;transform:translateY(24px) scale(.975)}to{opacity:1;transform:none}}
@keyframes arrival-out{to{opacity:0;transform:translateY(14px) scale(.985)}}
@keyframes arrival-backdrop{from{opacity:0}to{opacity:1}}
.arrival-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 28px 12px;background:#fcfbf8f2;border-bottom:1px solid #dedbd3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.arrival-bar h2{margin:0;font:400 15px/1.5 KampoSans,sans-serif;letter-spacing:.12em;color:#626c64}
#arrival-close{display:grid;place-items:center;flex:none;width:42px;height:42px;padding:9px;border:1px solid #cbcfc6;border-radius:50%;background:#fff9;color:#38493c}
#arrival-close:hover{background:#e8ece4}
#arrival-close svg{width:23px;height:23px}
.arrival-switches{display:flex;gap:8px;padding:23px 32px 0}
.arrival-switches button{padding:9px 18px;min-height:44px;border:1px solid #d2d6ce;border-radius:999px;background:transparent;color:#626c64;font-size:14px;transition:background .18s,color .18s}
.arrival-switches button[aria-pressed="true"]{color:#fff;background:#344b3e;border-color:#344b3e}
#arrival-content{padding:22px 32px 26px}
.arrival-identity{margin-bottom:24px}
.arrival-index{margin:0 0 4px;font-size:12px;letter-spacing:.16em;color:#95682e}
.arrival-identity h3{font:400 clamp(28px,3vw,36px)/1.5 Kampo,serif;letter-spacing:.08em;margin:0 0 8px}
.arrival-address{font-size:16px;color:#616c65;margin:0;line-height:1.7}
.arrival-layout{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,1fr);gap:32px;align-items:start}
.arrival-map{margin:0;padding:12px 12px 14px;background:#f2ede3;border:1px solid #d7cdbd;border-radius:12px}
.arrival-map svg{display:block;width:100%;height:auto;overflow:visible;font-family:KampoSans,Arial,'PingFang TC',sans-serif}
.am-road{fill:none;stroke:#d6d1c5;stroke-width:14}
.am-walk{fill:none;stroke:#b24d36;stroke-width:3;stroke-dasharray:6 6;stroke-linejoin:round}
.am-arrow{fill:none;stroke:#b24d36;stroke-width:2}
.am-small{font-size:19px;fill:#667166}
.am-road-label{font-size:19px;fill:#707467;letter-spacing:1px}
.am-landmark{font-size:21px;fill:#66725b}
.am-station{font-size:23px;font-weight:500;fill:#344b5b}
.am-blue{fill:#326fa1}
.am-place{font-size:25px;font-family:Kampo,serif;fill:#815925}
.arrival-map figcaption{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;padding-top:14px;margin-top:5px;border-top:1px solid #d7cdbd;font-size:12px;color:#616a60}
.arrival-map figcaption span{display:inline-flex;align-items:center;gap:6px}
.map-key-station{width:9px;height:9px;border-radius:2px;background:#326fa1}
.map-key-walk{width:19px;height:0;border-top:2px dashed #b24d36}
.map-key-place{width:11px;height:11px;border:2px solid #ad7533;border-radius:50%}
.arrival-map-note{text-align:center;margin:10px 0 0;font-size:12px;line-height:1.6;color:#777a70}
.arrival-steps{list-style:none;margin:0;padding:0}
.arrival-steps li{border-bottom:1px solid #dedfd7;padding:0 0 16px;margin:0 0 16px}
.arrival-step-label{display:block;color:#9a703d;letter-spacing:.08em;font-size:12px;margin-bottom:5px}
.arrival-steps strong{font-weight:500;font-size:18px;line-height:1.65}
.arrival-steps p{font-size:16px;color:#69736b;line-height:1.8;margin:6px 0 0}
.arrival-line{display:inline-block;font-size:14px;color:#32648c}
.arrival-access-note{font-size:13px;line-height:1.9;color:#68736a;margin:0;padding-left:13px;border-left:2px solid #c2cbbe}
.arrival-actions{display:grid;grid-template-columns:1.14fr 1fr;gap:32px;margin-top:26px}
.arrival-actions a{display:flex;align-items:center;justify-content:center;gap:18px;min-height:49px;padding:12px 18px;border-radius:7px;font-size:15px;line-height:1.6}
.arrival-actions a:hover{text-decoration:none}
.arrival-navigate{background:#344b3e;color:#fff9ea;border:1px solid #344b3e}
.arrival-navigate:hover{background:#435d4a}
.arrival-events{border:1px solid #bbc4b8;color:#465b4a;background:#fff5}
.arrival-events:hover{background:#e9eee6}
.arrival-source-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:17px;font-size:12px;color:#727b73}
@media(max-width:760px){
 .arrival-dialog{inset:auto 0 0;margin:0;width:100%;max-height:94dvh;border-radius:24px 24px 0 0;border-bottom:0;box-shadow:0 -15px 60px #10231838}
 .arrival-dialog[open]{animation:arrival-sheet-in .32s cubic-bezier(.2,.8,.2,1) both}
 .arrival-dialog.is-closing{animation:arrival-sheet-out .18s ease both}
 .arrival-bar{padding:14px 20px 10px}
 .arrival-bar:before{content:"";position:absolute;left:calc(50% - 18px);top:6px;width:36px;height:3px;background:#ccd2c7;border-radius:999px}
 .arrival-switches{gap:6px;padding:18px 20px 0}
 .arrival-switches button{flex:1;padding:9px 5px;font-size:14px}
 #arrival-content{padding:21px 20px max(24px,env(safe-area-inset-bottom))}
 .arrival-identity{margin-bottom:19px}
 .arrival-identity h3{font-size:29px}
 .arrival-address{font-size:15px}
 .arrival-layout{grid-template-columns:1fr;gap:25px}
 .arrival-map{padding:9px 8px 13px}
 .arrival-map svg{max-height:350px}
 .arrival-steps strong{font-size:18px}
 .arrival-actions{grid-template-columns:1fr;gap:10px;margin-top:24px}
 .arrival-source-links{justify-content:center;gap:9px 16px}
 @keyframes arrival-sheet-in{from{transform:translateY(70px);opacity:0}to{transform:none;opacity:1}}
 @keyframes arrival-sheet-out{to{transform:translateY(45px);opacity:0}}
}
@media(prefers-reduced-motion:reduce){.arrival-dialog[open],.arrival-dialog.is-closing,.arrival-dialog::backdrop,.arrival-dialog.is-closing::backdrop{animation:none}.arrival-switches button,.place-links .place-traffic{transition:none}}

/* Poster frames match the supplied 2:3 artwork, with no letterbox background. */
.poster.poster-image{background:transparent}
.poster.poster-image img{inset:0;width:100%;height:100%;object-fit:contain;object-position:center;opacity:1;transform:none;transition:none}

/* A compact calendar surface; event details appear only after a user opens them. */
.calendar-section .calendar-layout{display:block}
.calendar-section .month-panel{max-width:610px;padding:25px 27px 20px;border:1.5px solid #cbd5d9;border-radius:28px;background:linear-gradient(150deg,#fffffff5,#fcfdfded);box-shadow:0 12px 38px #344b5910,0 1px 3px #344b5909}
.calendar-section .month-control{margin:0 0 17px;gap:12px}
.calendar-section .month-control select{border:0;border-radius:10px;background:transparent;padding:8px 6px;font-size:21px;min-height:44px}
.calendar-section .month-control select:hover{background:#eff3f5}
.calendar-section .month-control>div{gap:8px}
.calendar-section .month-control button{width:39px;height:39px;border:1px solid #d6dfe2;background:#f7f9fa;border-radius:50%;font-size:26px;line-height:1;transition:background .15s ease-out,border-color .15s ease-out,transform .15s ease-out}
.calendar-section .calendar-key{font-size:13px;margin-top:10px;padding-top:15px}
.month-events-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:47px;margin-top:16px;padding:11px 15px;border:1px solid #ccd8de;border-radius:13px;background:#edf3f6;color:#354b57;font-size:15px;font-weight:500;transition:background .15s ease-out,border-color .15s ease-out,transform .15s ease-out}
.calendar-section .month-control button:not(:disabled):active,.month-events-button:not(:disabled):active{transform:scale(.96)}
.month-events-button:hover{background:#e2edf2;border-color:#9eb4c0}
.month-events-button:disabled{opacity:.5;cursor:wait}
.month-events-tail{display:flex;align-items:center;gap:13px;white-space:nowrap}
#month-events-count{font-size:13px;font-weight:400;color:#627781}
.calendar-section .month-panel .text-button{margin-top:13px;font-size:13px}
.calendar-section .month-panel .data-status{margin-top:12px;font-size:12px;color:#73828a}
html.events-is-open,html.events-is-open body{overflow:hidden}
.calendar-section .event-dialog{position:fixed;inset:clamp(90px,12vh,140px) max(30px,calc((100vw - 1340px)/2)) auto auto;margin:0;padding:0;width:min(640px,calc(100vw - 60px));max-width:none;max-height:calc(100dvh - 170px);border:1px solid #cdd7dc;border-radius:24px;background:#f6f8fa;color:var(--cal-ink);box-shadow:0 26px 90px #253f5145;overflow:auto;overscroll-behavior:contain;font-family:KampoSans,Arial,sans-serif}
.event-dialog[open]{animation:events-enter .27s cubic-bezier(.2,.8,.2,1) both}
.event-dialog::backdrop{background:#24364145;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:events-dim .22s ease both}
.event-dialog.is-closing{animation:events-exit .18s ease both}
.event-dialog.is-closing::backdrop{animation:events-dim .18s ease reverse both}
@keyframes events-enter{from{opacity:0;transform:translateX(20px) scale(.98)}to{opacity:1;transform:none}}
@keyframes events-exit{to{opacity:0;transform:translateX(12px) scale(.985)}}
@keyframes events-dim{from{opacity:0}to{opacity:1}}
.event-dialog-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 27px 18px;border-bottom:1px solid #dce3e7;background:#f9fbfcef;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.event-dialog-label{font-size:12px;line-height:1.6;letter-spacing:.1em;color:#778790;margin:0 0 5px}
.event-dialog-header #result-title{font:600 23px/1.5 KampoSans,Arial,sans-serif;color:var(--cal-ink);letter-spacing:0;margin:0;overflow-wrap:anywhere;scroll-margin:0}
#events-close{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid #cbd5db;border-radius:50%;background:#fff9;color:#50656e;padding:10px}
#events-close svg{width:22px;height:22px}
#events-close:hover{background:#e5edf1}
.event-dialog-body{padding:18px 27px 27px}
.event-dialog-context{display:flex;align-items:baseline;justify-content:space-between;gap:16px;color:#74818a;font-size:13px;margin-bottom:10px}
#event-context{margin:0;font-size:13px;line-height:1.8}
#result-count{font-size:14px;white-space:nowrap;color:#435d6c}
.event-dialog .event-daygroup{margin-top:17px}
.event-dialog .event-daygroup:first-child{margin-top:0}
.event-dialog .day-heading{border-bottom:1px solid #c4d1d8;padding-bottom:7px}
.event-dialog .day-heading h4{font-size:24px}
.event-dialog .day-heading>span{font-size:14px;font-weight:500}
.event-dialog .event-card{padding:17px 19px;border-color:#dce4e8;border-radius:14px}
.event-dialog .event-card h4{font-size:19px;font-weight:600;line-height:1.6}
.calendar-section .event-dialog .event-links a{font-size:14px;font-weight:500;min-height:44px}
.calendar-section .event-dialog #event-list{min-height:0;max-height:none;padding:0;overflow:visible}
.calendar-section .event-dialog .event-pagination{position:sticky;bottom:0;z-index:1;padding:13px 27px 17px;margin:0;border-top:1px solid #dce3e7;background:#f9fbfcf5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.event-dialog .event-pagination[hidden]{display:none}
.event-dialog .event-pagination button{width:40px;height:40px}
.calendar-section .event-dialog #page-results{margin:0 0 20px;padding:0 0 18px}
.event-dialog #page-results[hidden]{display:none}
.event-dialog #page-results>p{font-size:13px;margin:0 0 7px;color:#71838d}
.event-dialog #page-results a{display:block;margin:0 0 7px;font-size:15px;color:#345970}
.event-dialog .empty{min-height:0;padding:24px 0 30px}
@media(max-width:760px){
 .calendar-section .month-panel{padding:18px 15px 17px;border-radius:24px}
 .calendar-section .month-control{gap:7px;margin-bottom:13px}
 .calendar-section .month-control select{font-size:19px;padding-left:3px}
 .calendar-section .month-control>div{gap:5px}
 .calendar-section .month-control button{width:36px;height:36px}
 .calendar-section .month-events-button{font-size:14px;padding-inline:12px}
 .calendar-section .calendar-key{font-size:12px}
 .calendar-section .event-dialog{inset:auto 0 0;width:100%;max-height:90dvh;margin:0;border-radius:25px 25px 0 0;border-bottom:0}
 .event-dialog[open]{animation:events-sheet-enter .3s cubic-bezier(.2,.8,.2,1) both}
 .event-dialog.is-closing{animation:events-sheet-exit .18s ease both}
 .event-dialog-header{padding:25px 20px 15px}
 .event-dialog-header:before{content:"";position:absolute;top:8px;left:calc(50% - 18px);width:36px;height:3px;border-radius:999px;background:#c4d0d6}
 .event-dialog-header #result-title{font-size:21px}
 .event-dialog-body{padding:16px 18px max(24px,env(safe-area-inset-bottom))}
 .event-dialog .event-card{padding:15px}
 .calendar-section .event-dialog .event-pagination{padding:12px 18px max(16px,env(safe-area-inset-bottom));gap:8px}
 .event-dialog .event-pagination>div{gap:10px}
 @keyframes events-sheet-enter{from{opacity:0;transform:translateY(70px)}to{opacity:1;transform:none}}
 @keyframes events-sheet-exit{to{opacity:0;transform:translateY(40px)}}
}
@media(max-width:380px){.calendar-section .month-panel{padding-inline:10px}.calendar-section .month-control select{font-size:18px}.calendar-section .event-dialog .event-links{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.event-dialog[open],.event-dialog.is-closing,.event-dialog::backdrop,.event-dialog.is-closing::backdrop{animation:none}.month-events-button{transition:none}}

/* Filters stay beside the calendar on desktop and above it on smaller screens. */
.calendar-section>.wrap{width:min(940px,calc(100% - 64px))}
.calendar-workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:38px;align-items:start}
.calendar-filters,.calendar-section .calendar-layout{min-width:0}
.calendar-filters{padding-top:26px}
.calendar-filter-label{margin:0 0 12px;font:500 12px/1.5 KampoSans,Arial,sans-serif;letter-spacing:.12em;color:#73828a}
.calendar-filters .calendar-category-filter{margin-top:30px}
.calendar-section .calendar-filters .filters{margin:0}
.calendar-section .calendar-filters .place-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.calendar-section .calendar-filters .place-filters button{padding:8px 5px;font-size:13px;min-height:42px;border-color:#d6dfe2;background:transparent;transition:background .18s,border-color .18s}
.calendar-section .calendar-filters .place-filters button:hover{background:#edf1f3;border-color:#b7c7ce}
.calendar-section .calendar-filters .place-filters button[aria-pressed=true]{background:#e3eaee;border-color:#9fafb7;color:#344b57}
.calendar-filters .category-chips{display:flex;flex-direction:column;gap:4px;overflow:visible;margin:0;padding:0}
.calendar-filters .category-chip{justify-content:flex-start;gap:12px;min-height:44px;padding:9px 14px;border:1px solid transparent;border-radius:9px;background:transparent;font-size:14px;font-weight:500;line-height:1.6;text-align:left;transition:background .18s,color .18s}
.calendar-filters .category-chip:first-child{padding-left:35px}
.calendar-filters .category-chip:hover{background:#edf1f3;color:#344b57}
.calendar-filters .category-chip[aria-pressed=true]{background:#e3eaee;color:#344b57;border-color:transparent;font-weight:600;box-shadow:inset 2px 0 #6e8996}
.calendar-filters .category-chip[aria-pressed=true] .category-mark{background:var(--cat-mark)}
.calendar-filters button:focus-visible{outline:2px solid #577989;outline-offset:3px}
.calendar-section .calendar-workspace .month-panel{max-width:none;margin:0}
@media(max-width:900px){
 .calendar-workspace{display:block;max-width:610px;margin:0 auto}
 .calendar-filters{padding-top:0;margin-bottom:21px}
 .calendar-filter-label{margin-bottom:8px;font-size:11px}
 .calendar-filters .calendar-category-filter{margin-top:12px}
 .calendar-section .calendar-filters .place-filters{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;padding:2px 3px 7px;margin:0 -3px;scrollbar-width:thin;scrollbar-color:#bac8cf transparent}
 .calendar-section .calendar-filters .place-filters button{flex-shrink:0;padding:8px 14px;min-height:42px;font-size:14px}
 .calendar-filters .category-chips{flex-direction:row;gap:7px;overflow-x:auto;padding:3px 3px 8px;margin:0 -3px;scrollbar-width:thin}
 .calendar-filters .category-chip{padding:8px 13px;gap:8px;border-color:#d6dfe2;border-radius:999px;background:#ffffffa6;white-space:nowrap}
 .calendar-filters .category-chip:first-child{padding-left:15px}
 .calendar-filters .category-chip[aria-pressed=true]{border-color:#9fafb7;box-shadow:none}
}
@media(max-width:700px){.calendar-section>.wrap{width:calc(100% - 36px)}}
@media(prefers-reduced-motion:reduce){.calendar-filters .category-chip,.calendar-section .calendar-filters .place-filters button{transition:none}}

/* A serif Chinese identity with a quiet, consistent bilingual signature. */
.wordmark strong{letter-spacing:.12em}
.wordmark small.brand-subtitle{display:flex;align-items:baseline;gap:.35em;margin-top:8px;font:400 14px/1.5 KampoSans,Arial,sans-serif;letter-spacing:.26em}
.wordmark small.brand-english{margin-top:6px;font:400 12px/1.5 KampoSans,Arial,sans-serif;letter-spacing:.06em;color:#5c625d;white-space:nowrap}
.wordmark .brand-mobile-english{display:none}
@media(min-width:1101px){.header>.wordmark strong{letter-spacing:.12em}.header>.wordmark small.brand-subtitle{margin-top:8px}}
@media(max-width:1100px){
 .wordmark small.brand-english{display:none}
 .wordmark small.brand-subtitle{letter-spacing:.06em;gap:4px}
 .wordmark .brand-mobile-english{display:inline;font-size:12px;letter-spacing:.03em;color:#5c625d}
}
@media(max-width:620px){
 .header .wordmark{min-width:0;flex-shrink:1}
 .header .wordmark strong{font-size:28px;white-space:nowrap;letter-spacing:.1em}
 .header .wordmark small.brand-subtitle{font-size:12px;letter-spacing:0;white-space:nowrap}
 .header .wordmark .brand-mobile-english{letter-spacing:0}
 .header .search-trigger-mobile{flex-shrink:0}
}
@media(max-width:380px){.header .wordmark strong{font-size:24px}}
@media(max-width:360px){.header.wrap{padding-inline:14px;gap:6px}}

/* All-time participation sits beside the month heading, outside its filters. */
.attendance-summary{flex:0 0 auto;padding-left:24px;border-left:1px solid var(--cal-line);text-align:right;color:var(--cal-accent)}
.attendance-label{margin:0;font-size:14px;line-height:1.6;color:var(--cal-soft)}
.attendance-metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 24px}
.attendance-total{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:5px 0 0;line-height:1.15}
.attendance-number{font-size:34px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.attendance-unit{font-size:14px;color:var(--cal-soft)}
.attendance-period{margin:6px 0 0;font-size:12px;line-height:1.6;color:var(--cal-soft)}
@media(max-width:900px){
 .calendar-section .section-heading{flex-wrap:wrap}
 .attendance-summary{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px;padding:0;border-left:0;text-align:left}
 .attendance-total{justify-content:flex-start;margin:0}
 .attendance-metrics{justify-content:flex-start;gap:6px 20px}
 .attendance-number{font-size:26px}
 .attendance-period{flex-basis:100%;margin:0}
}
@media(max-width:700px){.attendance-summary{margin-top:16px}}

/* Keep the mountain sanctuary visible beside the closing invitation. */
.closing{display:flex;align-items:center;min-height:clamp(460px,46vw,640px);padding-block:64px;text-align:left;background-color:#1c2d32;background-image:url('assets/closing-mountain-sanctuary.webp');background-size:cover;background-position:center 48%;color:#fffaf0}
.closing-copy{position:relative;isolation:isolate;max-width:32rem;width:48%}
.closing-copy::before{content:"";position:absolute;z-index:-1;inset:-12px -20px;background:rgba(12,26,32,.74);filter:blur(18px);pointer-events:none}
.closing .eyebrow{color:#f5e7cc}
.closing h2{margin:20px 0 30px}
.closing .solid-button{border-color:#fff5e5}
.closing .solid-button:focus-visible{outline-color:#fffaf0}
@media(max-width:900px){
 .closing{align-items:flex-end;min-height:580px;padding-block:40px;background-position:70% center}
 .closing-copy{width:100%;max-width:32rem}
 .closing-copy::before{inset:-8px -14px;filter:blur(12px)}
 .closing h2{margin:16px 0 24px}
}

/* The three rhythm photographs retain their complete landscape composition. */
.three-notes article{min-width:0}
.three-notes .rhythm-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;margin-bottom:20px}

/* Share content rows across the three places, including when text wraps. */
@media(min-width:701px){
 .place-grid{row-gap:0}
 /* Explicit parent-grid placement also aligns older browsers without subgrid. */
 .place-card{display:contents}
 .place-card>*{min-width:0;align-self:start}
 .place-card:nth-child(1)>*{grid-column:1}
 .place-card:nth-child(2)>*{grid-column:2}
 .place-card:nth-child(3)>*{grid-column:3}
 .place-card>.place-image{grid-row:1}
 .place-card>.place-name{grid-row:2;margin:18px 0 13px}
 .place-card>p{grid-row:3;margin:0}
 .place-card>.place-description{grid-row:4;margin:16px 0 0}
 .place-card>.place-links{grid-row:5;align-self:stretch;margin-top:24px}
 @supports(grid-template-rows:subgrid){
  .place-card{display:grid;grid-row:span 5;grid-template-rows:subgrid}
  .place-card:nth-child(n)>*{grid-column:auto}
 }
}

/* Preserve the writing photograph in its native landscape composition. */
.about figure img.writing-photo{aspect-ratio:3/2;object-fit:contain}

/* Display the complete painting beside the date notes, with no image wash. */
.date-story{display:block;background:#f7f4ee;border-block:1px solid #d5cbbb;padding:56px 0;margin-bottom:80px;color:#342d24}
.date-story-layout{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.15fr);gap:clamp(36px,5vw,76px);align-items:center;max-width:1160px}
.date-painting{padding:24px 22px 20px;background:#292b2b}
.date-painting img{display:block;width:auto;height:auto;max-width:100%;max-height:560px;margin-inline:auto;object-fit:contain;opacity:1;filter:none}
.date-painting figcaption{display:block;text-align:center;margin-top:16px;font-size:13px;line-height:1.75;color:#f0e5cf}
.date-painting figcaption span{display:block;font-size:12px;color:#c5bdad;margin-top:3px}
.date-story-copy{min-width:0}
.date-story .eyebrow{font-size:12px;letter-spacing:.16em;color:#7a5b38}
.date-story h2{font-size:32px;color:#342d24;margin-block:12px 18px;line-height:1.6}
.date-story-intro>p:not(.eyebrow){font-size:16px;line-height:1.9;color:#584d3d;margin-bottom:28px}
.date-story .date-types{border-top:1px solid #baa88c;border-bottom:1px solid #baa88c}
.date-story .date-types>div{display:grid;grid-template-columns:136px minmax(0,1fr);align-items:baseline;gap:20px;padding-block:15px;border-color:#d9cfbe}
.date-story .date-types h3{font-size:17px;min-width:0;color:#342d24}
.date-story .date-types p{font-size:15px;line-height:1.85;color:#584d3d}
@media(max-width:1000px){
 .date-story-layout{grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);gap:32px}
 .date-painting{padding:18px 14px}
 .date-story .date-types>div{grid-template-columns:minmax(0,1fr);gap:4px;padding-block:12px}
}
@media(max-width:700px){
 .date-story{padding:28px 0 36px;margin-bottom:40px}
 .date-story-layout{grid-template-columns:minmax(0,1fr);gap:30px;width:calc(100% - 40px);max-width:520px}
 .date-painting{padding:18px 16px 16px}
 .date-painting img{max-height:420px}
 .date-painting figcaption{margin-top:12px}
 .date-story h2{font-size:30px;margin-bottom:16px}
 .date-story-intro>p:not(.eyebrow){margin-bottom:22px}
 .date-story .date-types>div{padding-block:14px}
}

/* A reduced-motion preference keeps button feedback static. */
@media(prefers-reduced-motion:reduce){
 .search-trigger:active,.calendar-section .month-control button:not(:disabled):active,.month-events-button:not(:disabled):active{transform:none}
 .poster-arrow:not(:disabled):active{transform:translateY(-50%)}
 .poster-arrow-next:not(:disabled):hover span,.poster-arrow-prev:not(:disabled):hover span{translate:none}
 .poster-dot[aria-pressed=true] span{transform:none}
}

/* Make the complete L2 introductions reachable from each L1 sanctuary. */
.place-image{display:block}.place-links{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 10px}.place-links .place-detail{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 14px;border:1px solid #f7f2e6;background:#f7f2e6;color:#242e28;font-size:14px;font-weight:500;transition:background-color 150ms ease}.place-detail span{font-size:20px;line-height:1}.place-links .place-detail:hover{background:#e6deca;text-decoration:none}.place-links .place-detail:active{background:#d3c9b0}.place-card a:focus-visible{outline-color:#f7f2e6;outline-offset:4px}

/* L2 overview remains visible beside the sanctuary heading and below it on narrow screens. */
.places .section-heading{flex-wrap:wrap}.places-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.places-overview-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;color:#f7f2e6;line-height:1.6}.places-overview-link span{font-size:20px;line-height:1}.places-overview-link:hover{color:#e1c58d;text-decoration:none}.places-overview-link:active{color:#c5a36c}.places-overview-link:focus-visible{outline-color:#f7f2e6}
@media(max-width:900px){.places .section-heading{gap:12px}.places-heading-actions{align-items:flex-start}}

.event-pending{display:flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;font-size:.875rem;color:var(--cal-soft)}
