:root{--ink: #141210;--paper: #ece5d8;--paper-dim: #ddd3c0;--wine: #8e3b46;--wine-deep: #722f37;--muted-on-dark: #a89f8d;--muted-on-paper: #6f6759;--serif: "Zilla Slab", Georgia, "Times New Roman", serif;--sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--max: 1080px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}body{font-family:var(--sans);background:var(--ink);color:var(--paper);line-height:1.9;font-size:16px;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}.skip-link{position:absolute;left:-9999px;top:0;background:var(--wine);color:#fff;padding:.6em 1em;z-index:100}.skip-link:focus{left:0}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--wine);outline-offset:3px}.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,5vw,48px)}.anchor-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ink) 92%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid #2b2723}.anchor-nav ul{display:flex;gap:clamp(14px,3vw,32px);list-style:none;max-width:var(--max);margin:0 auto;padding:12px clamp(20px,5vw,48px);overflow-x:auto;font-family:var(--serif);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase}.anchor-nav a{text-decoration:none;color:var(--muted-on-dark);white-space:nowrap}.anchor-nav a:hover,.anchor-nav a:focus-visible{color:var(--paper)}.hero{padding:clamp(72px,14vh,140px) 0 clamp(56px,10vh,110px);position:relative}.hero .eyebrow{font-family:var(--serif);letter-spacing:.22em;text-transform:uppercase;color:var(--muted-on-dark);font-size:.8rem}.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(3.4rem,12vw,7.5rem);letter-spacing:.16em;line-height:1.05;margin:.2em 0 .15em;animation:heroIn .9s ease both}@keyframes heroIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.hero .tagline{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,3vw,1.6rem);color:var(--wine);-webkit-text-stroke:0;filter:brightness(1.5)}.hero .lead{max-width:34em;margin-top:2em;color:#cfc7b8}.hero .glass{position:absolute;right:clamp(-60px,-4vw,-20px);top:18%;width:clamp(160px,24vw,300px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 38%,#8e3b4633 0%,#722f3766 46%,#4a1e2588 72%,transparent 74%);pointer-events:none}section{padding:clamp(56px,9vh,100px) 0}.sec-label{font-family:var(--serif);font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--wine);filter:brightness(1.4);display:block;margin-bottom:1.2em}h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,4.5vw,2.5rem);letter-spacing:.04em;line-height:1.3;margin-bottom:.9em}.paper-sec{background:var(--paper);color:var(--ink)}.paper-sec .sec-label{color:var(--wine-deep);filter:none}.paper-sec .muted{color:var(--muted-on-paper)}.muted{color:var(--muted-on-dark);font-size:.92rem}.modes{display:grid;grid-template-columns:1.1fr 1fr;gap:0;border:1px solid #3a342e}.mode{padding:clamp(28px,5vw,48px)}.mode--bar{background:var(--paper);color:var(--ink)}.mode--dj{background:#0d0b0a}.mode .days{font-family:var(--serif);letter-spacing:.18em;font-size:.85rem;border-bottom:1px solid currentColor;padding-bottom:.6em;margin-bottom:1em;display:inline-block}.mode h3{font-family:var(--serif);font-size:1.6rem;margin-bottom:.5em;letter-spacing:.05em}.mode--dj h3{color:#d9909a}.mode--bar h3{color:var(--wine-deep)}.mode .note{margin-top:1.2em;font-size:.88rem;opacity:.75}.hours-note{margin-top:1.6em;font-size:.92rem;color:var(--muted-on-dark)}@media(max-width:720px){.modes{grid-template-columns:1fr}}.session-list{list-style:none;border-top:1px solid #3a342e}.session-list li{display:grid;grid-template-columns:7.5em 1fr auto;gap:1em;padding:1.1em 0;border-bottom:1px solid #3a342e;align-items:baseline}.session-list .d{font-family:var(--serif);font-variant-numeric:tabular-nums;letter-spacing:.08em}.session-placeholder{border:1px dashed #4a443c;padding:clamp(24px,5vw,40px);color:var(--muted-on-dark);font-size:.95rem;max-width:40em}@media(max-width:600px){.session-list li{grid-template-columns:1fr;gap:.2em}}.two-col{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);gap:clamp(28px,6vw,72px);align-items:start}@media(max-width:720px){.two-col{grid-template-columns:1fr}}.photo-slot{border:1px dashed #b3a78f;aspect-ratio:4 / 3;display:grid;place-items:center;text-align:center;font-size:.85rem;color:var(--muted-on-paper);padding:1em}.paper-sec .photo-slot{border-color:#9a8f79}.note-line{font-size:.88rem;margin-top:1.4em}.faq{list-style:none;max-width:44em}.faq li{border-bottom:1px solid #3a342e;padding:1.4em 0}.faq .q{font-family:var(--serif);font-size:1.12rem;letter-spacing:.03em;margin-bottom:.5em;color:#e8dfcf}.faq .q:before{content:"Q — ";color:var(--wine);filter:brightness(1.5)}.faq .a{color:#c9c1b2;max-width:40em}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px)}@media(max-width:720px){.access-grid{grid-template-columns:1fr}}dl.info dt{font-family:var(--serif);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-on-paper);margin-top:1.2em}dl.info dd{margin:.2em 0 0}.en-body{max-width:40em;line-height:1.8}.en-body p+p{margin-top:1em}.btn{display:inline-block;text-decoration:none;font-family:var(--serif);letter-spacing:.12em;border:1px solid var(--wine);color:var(--paper);padding:.8em 2em;margin-top:1.6em;transition:background .25s ease,color .25s ease;background:linear-gradient(to right,var(--wine-deep) 50%,transparent 50%);background-size:201% 100%;background-position:100% 0}.btn:hover,.btn:focus-visible{background-position:0 0}.paper-sec .btn{color:var(--ink);border-color:var(--wine-deep)}.paper-sec .btn:hover,.paper-sec .btn:focus-visible{color:var(--paper)}.text-link{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--wine)}.text-link:hover{text-decoration-thickness:2px}footer{border-top:1px solid #2b2723;padding:clamp(40px,7vh,72px) 0 32px;font-size:.88rem;color:var(--muted-on-dark)}footer .brand{font-family:var(--serif);letter-spacing:.2em;font-size:1.1rem;color:var(--paper)}footer .demo-note{margin-top:2.2em;font-size:.78rem;line-height:1.7;opacity:.7;max-width:44em}.nf{min-height:70vh;display:grid;place-items:center;text-align:center;padding:40px 20px}.nf h1{font-family:var(--serif);font-size:clamp(3rem,10vw,5rem);letter-spacing:.1em}
