:root{--ink:#36372d;--paper:#eeeade;--seal:#9a4739;--sub:#5d604f;--line:#c8c8b9;font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;color:var(--ink);background:var(--paper)}
html.big{font-size:118.75%}
html.big.bigger{font-size:137.5%}
body{margin:0;background:var(--paper);overflow-x:hidden}
main{position:relative;max-width:520px;margin:0 auto;padding:48px 16px 24px}
h1{margin:0;font-size:1.75rem;font-weight:500;letter-spacing:.3em;text-align:center}
.lead{margin:12px 0 0;text-align:center;font-size:.9375rem;line-height:1.8}
.works{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.works a[data-work]{display:grid;grid-template-columns:56px 1fr auto;grid-template-rows:auto auto;column-gap:16px;align-items:center;min-height:44px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none;background:var(--b-f4f1e8)}
.works a[data-work]:hover,.works a[data-work]:focus-visible{border-color:var(--seal)}
.works img{grid-row:1/3;width:56px;height:56px;border-radius:12px}
.name{font-size:1.25rem;letter-spacing:.2em}
.desc{grid-column:2/4;font-size:.875rem;color:var(--sub)}
.done{grid-column:3;grid-row:1;font-size:.875rem;color:var(--sub)}
.done::before{content:'✓ '}
.done{white-space:nowrap}
.last{grid-column:2/4;margin-top:4px;font-size:.875rem;color:var(--seal)}
.next{grid-column:2/4;margin-top:2px;font-size:.8125rem;color:var(--sub)}
:lang(ja) :is(.lead,.desc,.last,.next,.flow,.event){word-break:auto-phrase;text-wrap:balance}
.sekki{margin:8px 0 0;text-align:center;white-space:pre-line;font-size:.875rem;line-height:1.5;min-height:1.5em;color:var(--sub)}
.about{margin:28px 0 0;font-size:.875rem;line-height:1.8}.about h2{margin:0 0 4px;font-size:1rem;font-weight:inherit;text-align:center;letter-spacing:.1em}.about p{margin:6px 0 0}.about h3{margin:18px 0 0;font-size:.9375rem;font-weight:inherit;text-align:center;letter-spacing:.1em}.faq{margin:4px 0 0}.faq dt{margin:10px 0 0;font-weight:600}.faq dd{margin:2px 0 0}
.flow{margin:12px 0 0;text-align:center;font-size:.875rem;color:var(--sub);letter-spacing:.05em}
.seat-pics{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:6px;font-size:1rem}
.seat-pics img{width:28px;height:28px;border-radius:6px}
.flow.mine{color:var(--seal)}
.event{margin:8px 0 0;text-align:center;white-space:pre-line;font-size:.875rem;color:var(--seal);line-height:1.8;min-height:3.6em}:lang(en) .event{min-height:5.4em}
.first{grid-column:2/4;margin-top:4px;font-size:.875rem;color:var(--seal)}
.sub-line{margin:-8px 0 0;padding-left:88px;font-size:.875rem}
.sub-line a{display:inline-block;max-width:100%;min-height:44px;padding:12px 4px;box-sizing:border-box;color:var(--ink);line-height:1.4;text-decoration:underline;text-underline-offset:4px}
.sub-line a::after{content:' →';white-space:pre}
.sub-line a:hover{color:var(--seal)}
.box-sum{font-size:.875rem;color:var(--sub);letter-spacing:0}
.sub-line a:focus-visible{outline:2px solid var(--seal);outline-offset:3px}
.lang{display:flex;justify-content:center;flex-wrap:wrap;column-gap:18px}
.lang button{min-height:44px;padding:0 4px;border:0;background:none;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.lang button[aria-pressed=true]{color:var(--seal)}
.en-offer{position:absolute;top:12px;right:16px;display:flex;justify-content:flex-end;align-items:center;margin:0;font:.875rem system-ui,sans-serif}
.en-offer a{color:inherit;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;text-underline-offset:3px}
.en-offer button{min-width:44px;min-height:44px;border:0;background:none;font-size:1rem;color:var(--sub);cursor:pointer}
.lang{margin:24px 0 0;text-align:center;font-size:.875rem}
.lang a,footer a{color:inherit;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}
footer{max-width:520px;margin:0 auto;padding:8px 16px 24px;text-align:center;font-size:.875rem;color:var(--t-3c4030);border-top:1px solid var(--line)}
.family-label{margin:12px 0 0;letter-spacing:.2em}
footer .row{margin:0;display:flex;justify-content:center;flex-wrap:wrap;column-gap:18px}
@media (forced-colors:active){.works a,.sub-line a{border-color:CanvasText;background:Canvas;color:CanvasText}.sub-line a:focus-visible{outline:2px solid Highlight;outline-offset:3px}}
.desc.seat{color:var(--seal)}
.en-offer[hidden]{display:none}
:root{--b-f4f1e8:#f4f1e8;--t-3c4030:#3c4030}
:root.night{--b-f4f1e8:#322f26;--t-3c4030:#cfd2c7}
:root.night{--sub:#c9c2ae;--line:#4a463b;--ink:#ece6d6;--paper:#1d1b17;--seal:#e88a72;--green-hover:#b7c48e;color-scheme:dark}
.box{margin:20px 0 0;border:1px solid var(--line);border-radius:14px;background:var(--b-f4f1e8);padding:0 16px}
.box[hidden]{display:none}
.box summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:.9375rem;letter-spacing:.1em}
.box summary::before{content:'▶';font-size:.625rem;margin-right:8px}
.box[open] summary::before{content:'▼'}
.box summary::-webkit-details-marker{display:none}
.box dl{margin:0 0 14px;display:grid;gap:10px}
.box dt{font-size:.875rem;color:var(--sub)}
.box dd{margin:2px 0 0;font-size:.9375rem;line-height:1.7}
.box dd a{color:inherit;text-underline-offset:4px}
#box-list a{display:inline-flex;min-height:44px;align-items:center}
:lang(en) :is(h1,.name,.flow,.family-label,.box summary){letter-spacing:.02em}
.class-row{margin:16px 0 0;text-align:center;font-size:.875rem}
.class-row[hidden],.class-ask[hidden]{display:none}
.class-row button,.class-ask button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:22px;background:var(--b-f4f1e8);font:inherit;color:inherit;cursor:pointer}
.class-row span{display:block;margin-top:6px;color:var(--seal)}
.class-ask{margin:auto;max-width:min(480px,90vw);color:var(--ink);padding:12px 16px;border:1px solid var(--seal);border-radius:14px;background:var(--b-f4f1e8);font-size:.875rem;line-height:1.7}
.class-ask p{margin:0}
.class-ask p+p{display:flex;justify-content:flex-end;gap:12px;margin-top:10px}
.class-ask .danger{border-color:var(--seal);color:var(--seal)}
.class-qr{margin:4px 0 0}
.class-qr summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.class-qr p{margin:0 0 8px}
#qr-list{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
#qr-list figure{margin:0}
#qr-list canvas{display:block;width:96px;height:96px}
.class-ask::backdrop{background:#0006}
#class-error:empty{display:none}
.book-h{margin:0;font-size:.875rem;color:var(--sub)}
.sekki-book{list-style:none;margin:6px 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.sekki-book li{border:1px solid var(--line);border-radius:8px;padding:4px 2px;text-align:center;line-height:1.3}
.sekki-book li[aria-current]{border-color:var(--sub);border-width:2px}
.sekki-book li.trio{background:var(--paper)}
.sekki-book .nm{display:block;font-size:.75rem;color:var(--sub);letter-spacing:0;overflow-wrap:anywhere}
.sekki-book .mk{display:inline-block;vertical-align:middle;box-sizing:border-box;width:1.3em;height:1.3em;line-height:1.2em;font-size:.75rem;margin:0 1px;border:1px solid var(--line);border-radius:50%}
.sekki-book .mk.on{border-color:var(--sub);font-weight:600}
.brand{text-align:center;letter-spacing:.3em;margin:0}
.footer-run{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:0 .5em}.footer-run>[hidden]{display:none}
#load-failure{visibility:hidden;max-height:0;overflow:hidden;margin:0;color:var(--seal)}
@media (scripting:enabled){html:not([data-ready]) #load-failure{animation:load-failure 1ms 10s forwards}}
@keyframes load-failure{to{visibility:visible;max-height:20em;margin:0 0 16px}}