:root{--ink:#182f40;--muted:#52616b;--red:#bb3f2b;--paper:#f6f7f8;--line:#d9dfe2;--serif:Georgia,'Noto Serif JP','Yu Mincho','Noto Serif TC',serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans JP','Noto Sans TC',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}a{color:inherit;text-underline-offset:4px}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #d95a3d;outline-offset:4px}.masthead{max-width:1200px;margin:auto;padding:25px 42px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:15px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px}.seal{display:grid;place-items:center;background:var(--ink);color:white;font:29px var(--serif);width:43px;height:48px;flex:none}.brand strong{display:block;font-size:17px;letter-spacing:2.8px;line-height:1.5}.brand small{display:block;font-size:10px;letter-spacing:1.7px}.languages{display:flex;gap:3px;flex-wrap:wrap}.languages button{border:0;background:transparent;padding:8px 11px;font-size:14px;min-height:44px}.languages button[aria-pressed=true]{background:var(--ink);color:white;border-radius:3px}.shell{max-width:1200px;padding:0 42px;margin:auto}.intro{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:40px;padding:37px 0 30px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;margin:0 0 12px;color:var(--red)}h1{font:normal clamp(36px,4.3vw,57px)/1.1 var(--serif);letter-spacing:-1.4px;margin:0 0 14px}.subtitle{color:var(--muted);margin:0;font-size:16px}.range{font-size:14px;margin:16px 0 0;font-weight:600}.city-photo{position:relative;margin:0;height:174px;overflow:hidden;background:#cad4d8;border-radius:2px}.city-photo img{width:100%;height:100%;object-fit:cover;object-position:25% 58%}.city-photo:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.6))}.city-photo figcaption{position:absolute;bottom:14px;left:20px;right:20px;color:white;z-index:1;display:flex;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:2px}.city-photo figcaption span{font-size:18px;font-family:var(--serif)}.calendar{border:1px solid var(--line);background:white;padding:17px 20px 20px;border-radius:5px}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.calendar-head p{margin:0;font-weight:600;font-size:14px}.text-button{border:0;background:none;font-size:14px;text-decoration:underline;text-underline-offset:4px;padding:6px}.text-button[aria-pressed=true]{color:var(--red);font-weight:700}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day{padding:9px 5px 8px;background:white;border:1px solid var(--line);border-radius:3px;display:flex;flex-direction:column;align-items:center;min-width:0;transition:background .15s}.day:hover{background:#f0f3f5}.day[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.day .weekday{font-size:13px}.day .number{font:normal 27px/1.4 var(--serif)}.day .count{font-size:12px;color:var(--muted)}.day[aria-pressed=true] .count{color:#d1dce3}.day.today:not([aria-pressed=true]){border-bottom:3px solid var(--red);padding-bottom:6px}.update-line{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;margin:13px 0 24px}.update-line p{margin:0}.content{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:36px;align-items:start}.day-heading{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding-top:4px}.day-heading h2{font:normal 26px/1.3 var(--serif);margin:0}.day-heading .total{font-size:13px;color:var(--muted)}.day-heading:after{content:'';height:1px;flex:1;background:var(--line)}.event-card{background:white;border:1px solid var(--line);border-radius:4px;margin-bottom:15px;overflow:hidden}.event-main{padding:22px 24px 20px}.tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px;font-size:12px}.tag{font-weight:650;letter-spacing:.3px;color:var(--red)}.area{color:var(--muted)}.tags .area:before{content:'·';margin-right:8px}.event-card h3{font:normal 25px/1.3 var(--serif);margin:0 0 6px;overflow-wrap:anywhere}.native-title{font-size:13px;color:var(--muted);margin:0 0 12px}.description{margin:12px 0 16px;font-size:16px;line-height:1.7}.facts{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;margin:0}.facts div{min-width:0}.facts dt{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:650;color:var(--muted);margin-bottom:2px}.facts dd{margin:0;font-size:14px;overflow-wrap:anywhere}.facts .wide{grid-column:1/-1}.event-bottom{border-top:1px solid #edf0f2;padding:11px 24px;display:flex;gap:18px;justify-content:space-between;align-items:center;font-size:13px;background:#fbfcfc}.event-bottom a{font-weight:600;display:inline-block;padding:4px 0}.event-bottom .checked{font-size:11px;color:var(--muted)}.actions{display:flex;gap:20px;flex-wrap:wrap}.notice{background:#fff2db;color:#694717;border-left:3px solid #d59a30;font-size:14px;padding:14px 18px;margin:0 0 22px}.ended{font-size:11px;background:#eef0f2;color:#59636a;padding:2px 7px;border-radius:2px}.aside-note{border-top:3px solid var(--red);padding:22px 0}.aside-note h2,.home-note h2{font:normal 26px/1.3 var(--serif);margin:0 0 15px}.aside-note p:not(.eyebrow){font-size:14px;color:var(--muted)}.fine-rule{height:1px;background:var(--line);margin:24px 0}.home-note{border:1px solid var(--line);padding:23px;margin-top:15px}.small{width:30px;height:34px;font-size:20px;margin-bottom:18px}.home-note h2{font-size:22px}.home-note p{font-size:14px;color:var(--muted)}.home-note .reception{font-weight:600;color:var(--ink)}footer{padding:30px 0;margin-top:40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:11px}.empty,.loading{padding:30px;background:white;border:1px solid var(--line);border-radius:4px;margin-bottom:25px;color:var(--muted)}.empty h3{font:normal 24px var(--serif);color:var(--ink)}.skip{position:absolute;left:10px;top:-100px;background:white;padding:10px;z-index:20}.skip:focus{top:10px}[hidden]{display:none!important}.day-section+.day-section{margin-top:32px}html[lang=ja] h1,html[lang=zh-Hant] h1{letter-spacing:1px;font-size:clamp(34px,4vw,49px)}
@media(max-width:820px){.masthead{padding:20px 24px}.shell{padding:0 24px}.intro{gap:25px}.content{grid-template-columns:1fr;gap:20px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:28px}.home-note{margin:0}.days{gap:7px}.update-line{font-size:11px}}
@media(max-width:540px){.masthead{padding:15px 18px}.shell{padding:0 18px}.brand{gap:8px}.brand strong{font-size:14px;letter-spacing:1.5px}.brand small{font-size:8px;letter-spacing:1px}.seal{width:33px;height:39px;font-size:24px}.languages button{font-size:12px;padding:7px;min-height:40px}.intro{display:block;padding:26px 0 22px}.intro .eyebrow{font-size:10px;margin-bottom:8px}.intro h1{font-size:39px;letter-spacing:-.7px;margin-bottom:10px}.subtitle{font-size:14px}.range{margin:12px 0 0}.city-photo{height:80px;margin-top:20px}.city-photo img{object-position:50% 52%}.city-photo figcaption{bottom:8px;left:12px;font-size:9px}.city-photo figcaption span{font-size:14px}.calendar{padding:12px 10px}.calendar-head{margin:0 3px 11px}.days{gap:4px}.day{padding:9px 1px}.day .weekday{font-size:11px}.day .number{font-size:23px}.day .count{font-size:10px}.day.today:not([aria-pressed=true]){padding-bottom:7px}.update-line{display:block;margin:11px 0 22px;line-height:1.8}.update-line>span{display:block}.day-heading h2{font-size:24px}.day-heading .total{font-size:12px}.event-main{padding:19px 18px}.event-card h3{font-size:24px}.description{font-size:15px}.facts{gap:12px 15px}.facts dd{font-size:14px}.event-bottom{padding:10px 18px;display:block}.event-bottom .checked{display:block;margin-top:4px}.actions{gap:23px}.sidebar{display:block;margin-top:8px}.aside-note{padding-bottom:10px}.home-note{margin-top:12px}.home-note .seal{float:right}.home-note h2{margin-bottom:8px}.home-note p{margin:8px 0}footer{margin-top:28px;padding:25px 0;font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Readable controls at narrow widths and enlarged text sizes. */
.facts dt,.tags,.event-bottom .checked,footer{font-size:12px}.event-bottom,.languages button{font-size:14px}.description{font-size:16px}.day .weekday{font-size:14px}.day .count{font-size:12px}.days{overflow-x:auto;grid-template-columns:repeat(7,minmax(66px,1fr));padding-bottom:3px}.day .weekday{overflow-wrap:anywhere}.masthead{flex-wrap:wrap}.brand small{font-size:10px}.event-bottom a{padding:7px 0}.update-line{font-size:12px}
@media(max-width:540px){.days{grid-template-columns:repeat(7,minmax(56px,1fr))}.day .weekday{font-size:12px}.day .count{font-size:12px}.day .number{font-size:25px}.description{font-size:16px}.intro .eyebrow{font-size:12px}.languages button{font-size:14px}}

.city-photo img{object-position:50% 75%}
@media(max-width:540px){.city-photo img{object-position:50% 75%}}
