:root{--bg: #101018;--bg-deep: #0a0a10;--bg-panel: #181822;--ink: #f0ebe0;--ink-dim: #b9b2a4;--crimson: #7c2231;--crimson-bright: #9c3245;--gold: #c9a86a;--line: rgba(240, 235, 224, .16);--serif: "Shippori Mincho B1", "Hiragino Mincho ProN", serif;--sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--serif);background:var(--bg);color:var(--ink);line-height:1.9;letter-spacing:.06em;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.site{display:flex;flex-direction:column;min-height:100vh}main{flex:1}.header{position:sticky;top:0;z-index:100;background:#0a0a10eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.header-inner{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;min-height:72px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:34px;height:auto;filter:invert(92%) sepia(14%) saturate(353%) hue-rotate(357deg) brightness(96%)}.brand-text{display:flex;flex-direction:column;line-height:1.3}.brand-sub{font-size:11px;color:var(--ink-dim);letter-spacing:.2em}.brand-name{font-size:22px;font-weight:600;letter-spacing:.3em}.nav ul{display:flex;gap:26px;list-style:none}.nav a{font-size:14px;color:var(--ink-dim);padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}.nav a:hover,.nav a.active{color:var(--ink);border-bottom-color:var(--gold)}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;background:none;border:none;cursor:pointer}.nav-toggle span{display:block;width:26px;height:1.5px;margin:0 auto;background:var(--ink);transition:transform .3s,opacity .3s}.nav-toggle.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}.hero{position:relative}.hero-img{width:100%;height:min(72vh,640px);object-fit:cover;object-position:center 30%}.hero-fade{position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(to bottom,transparent,var(--bg))}.intro{position:relative;max-width:1100px;margin:0 auto;padding:60px 20px 110px}.intro-inner{display:flex;justify-content:center;gap:56px}.intro-text{display:flex;flex-direction:row-reverse;gap:40px;writing-mode:vertical-rl;max-height:460px}.intro-title{font-size:52px;font-weight:600;letter-spacing:.35em;color:var(--ink);white-space:nowrap}.intro-body{font-size:15px;line-height:2.4;letter-spacing:.14em;color:var(--ink-dim)}.intro-photos{display:flex;flex-direction:column;gap:20px;width:300px;flex-shrink:0}.intro-photos img{width:100%;height:220px;object-fit:cover;border-radius:2px}.circle-cta{position:absolute;right:max(20px,calc(50% - 480px));bottom:30px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--crimson-bright),var(--crimson) 65%);display:flex;align-items:center;justify-content:center;text-align:center;font-size:15px;line-height:1.7;letter-spacing:.1em;box-shadow:0 8px 30px #7c223173;transition:transform .3s,box-shadow .3s}.circle-cta small{font-size:12px;color:var(--ink-dim)}.circle-cta:hover{transform:scale(1.06);box-shadow:0 10px 36px #9c324599}.news-band{display:flex;align-items:stretch;max-width:1100px;margin:0 auto 90px;padding:0 20px;gap:24px}.news-band-label{writing-mode:vertical-rl;white-space:nowrap;font-size:16px;font-weight:500;letter-spacing:.4em;padding:14px 10px;background:var(--crimson);border-radius:2px;display:flex;align-items:center;flex-shrink:0}.news-band-list{flex:1;display:flex;flex-direction:column;justify-content:center}.news-band-item{display:flex;gap:24px;align-items:baseline;padding:16px 8px;border-bottom:1px solid var(--line);transition:background .25s}.news-band-item:hover{background:var(--bg-panel)}.news-band-item time{font-size:13px;color:var(--gold);flex-shrink:0;font-family:var(--sans)}.news-band-item span{font-size:15px}.tiles{max-width:1100px;margin:0 auto;padding:0 20px 110px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.tile{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:16 / 10}.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;filter:brightness(.72)}.tile:hover img{transform:scale(1.07);filter:brightness(.9)}.tile-label{position:absolute;left:0;bottom:0;padding:8px 18px;background:#0a0a10c7;border-top:2px solid var(--gold);font-size:15px;letter-spacing:.12em}.page-hero{position:relative;background-color:var(--bg-deep);background-size:cover;background-position:center 30%}.page-hero-overlay{background:linear-gradient(to bottom,#0a0a108c,#101018eb);padding:90px 20px 70px;text-align:center}.page-hero-en{font-family:var(--sans);font-size:12px;letter-spacing:.5em;color:var(--gold);margin-bottom:10px}.page-hero-title{font-size:34px;font-weight:600;letter-spacing:.25em}.section{max-width:900px;margin:0 auto;padding:70px 20px}.section-alt{max-width:none;background:var(--bg-deep)}.section-alt>*{max-width:900px;margin-left:auto;margin-right:auto}.section-title{text-align:center;font-size:24px;letter-spacing:.25em;margin-bottom:44px}.lead{font-size:16px;text-align:center;margin-bottom:50px;color:var(--ink-dim)}.lead strong{color:var(--gold);font-size:1.15em}.lead small{font-size:13px}.center{text-align:center;margin-top:50px}.btn-primary{display:inline-block;padding:16px 52px;background:var(--crimson);border-radius:999px;font-size:15px;letter-spacing:.15em;box-shadow:0 6px 24px #7c223166;transition:background .3s,transform .3s}.btn-primary:hover{background:var(--crimson-bright);transform:translateY(-2px)}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.feature{background:var(--bg-panel);border:1px solid var(--line);border-radius:2px;padding:30px 28px}.feature h2{font-size:18px;color:var(--gold);margin-bottom:12px;letter-spacing:.1em}.feature p{font-size:14px;color:var(--ink-dim)}.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:0 20px}.steps li{background:var(--bg-panel);border:1px solid var(--line);border-radius:2px;padding:30px 24px;text-align:center}.step-no{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.3em;color:var(--gold);margin-bottom:10px}.steps h3{font-size:17px;margin-bottom:12px}.steps p{font-size:13px;color:var(--ink-dim);text-align:left}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.course{background:var(--bg-panel);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:2px;padding:34px 30px;text-align:center}.course h2{font-size:22px;letter-spacing:.2em;margin-bottom:16px}.course-price{font-size:15px;color:var(--ink-dim)}.course-price strong{font-size:30px;color:var(--gold);margin-left:6px}.course-detail{font-size:14px;margin-top:6px}.course-note{font-size:13px;color:var(--ink-dim);margin-top:14px}.course-closed{border-top-color:var(--ink-dim);opacity:.75}.course-closed .course-note{font-size:15px;color:var(--ink)}.info-table{border-top:1px solid var(--line);margin-bottom:50px}.info-table>div{display:flex;border-bottom:1px solid var(--line);padding:20px 8px;gap:24px}.info-table dt{width:110px;flex-shrink:0;color:var(--gold);letter-spacing:.2em}.info-table dd{flex:1;color:var(--ink-dim)}.info-table a{text-decoration:underline;text-underline-offset:4px}.photo-row{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.photo-row img{width:100%;height:260px;object-fit:cover;border-radius:2px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery figure{overflow:hidden;border-radius:2px;aspect-ratio:4 / 3}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery figure:hover img{transform:scale(1.05)}.map-wrap{border:1px solid var(--line);border-radius:2px;overflow:hidden}.map-wrap iframe{display:block;filter:grayscale(30%)}.news-list{list-style:none}.news-list li{border-bottom:1px solid var(--line);padding:30px 8px}.news-list time{font-family:var(--sans);font-size:13px;color:var(--gold)}.news-list h2{font-size:19px;margin:8px 0 10px}.news-list p{font-size:14px;color:var(--ink-dim)}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.contact-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:2px;padding:40px 28px;text-align:center;display:flex;flex-direction:column;gap:10px;transition:border-color .3s,transform .3s}.contact-card:hover{border-color:var(--gold);transform:translateY(-3px)}.contact-kind{font-size:13px;letter-spacing:.3em;color:var(--gold)}.contact-value{font-family:var(--sans);font-size:22px;font-weight:500;word-break:break-all}.contact-note{font-size:12px;color:var(--ink-dim)}.footer{background:var(--bg-deep);border-top:1px solid var(--line);margin-top:60px}.footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 0;padding:22px 20px;border-bottom:1px solid var(--line)}.footer-nav li:not(:last-child):after{content:"｜";color:var(--ink-dim);margin:0 10px}.footer-nav a{font-size:13px;color:var(--ink-dim);transition:color .25s}.footer-nav a:hover{color:var(--ink)}.footer-main{max-width:1100px;margin:0 auto;padding:56px 20px 40px;display:flex;gap:48px;align-items:center;justify-content:space-between}.footer-contact{text-align:center;flex-shrink:0}.footer-mark{width:40px;margin:0 auto 10px;filter:invert(92%) sepia(14%) saturate(353%) hue-rotate(357deg) brightness(96%)}.footer-brand span{display:block;font-size:11px;letter-spacing:.35em;color:var(--ink-dim)}.footer-brand strong{font-size:26px;letter-spacing:.3em}.footer-cta{margin-top:18px;font-size:13px;color:var(--ink-dim)}.footer-tel{font-family:var(--sans);font-size:28px;font-weight:600;letter-spacing:.05em;color:var(--ink)}.footer-note{font-size:11px;color:var(--ink-dim)}.footer-info{flex:1;max-width:460px}.footer-info>div{display:flex;gap:20px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:13px}.footer-info dt{width:80px;flex-shrink:0;color:var(--gold);letter-spacing:.2em}.footer-info dd{color:var(--ink-dim)}.footer-photo{width:200px;flex-shrink:0}.footer-photo img{width:100%;height:260px;object-fit:cover;object-position:top;border-radius:2px;opacity:.85}.footer-copy{text-align:center;font-family:var(--sans);font-size:11px;color:var(--ink-dim);padding:18px 20px 26px}@media(max-width:920px){.nav-toggle{display:flex}.nav{position:fixed;inset:72px 0 auto;background:#0a0a10f7;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .35s ease;z-index:99}.nav.is-open{transform:translateY(0)}.nav ul{flex-direction:column;gap:0;padding:10px 24px 24px}.nav a{display:block;padding:14px 4px;font-size:15px;border-bottom:1px solid var(--line)}.intro-inner{flex-direction:column-reverse;align-items:center;gap:40px}.intro-text{max-height:420px}.intro-title{font-size:40px}.intro-photos{flex-direction:row;width:100%}.intro-photos img{height:160px}.circle-cta{position:static;margin:50px auto 0;display:flex}.intro{padding-bottom:60px;display:flex;flex-direction:column}.tiles{grid-template-columns:repeat(2,1fr)}.footer-main{flex-direction:column;gap:36px}.footer-info{width:100%;max-width:520px}}@media(max-width:600px){.hero-img{height:56vh}.intro-title{font-size:32px}.intro-body{font-size:13.5px;line-height:2.2}.news-band{flex-direction:column}.news-band-label{writing-mode:horizontal-tb;letter-spacing:.4em;justify-content:center;padding:8px}.news-band-item{flex-direction:column;gap:2px}.tiles,.feature-grid,.steps,.course-grid,.photo-row,.contact-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.page-hero-title{font-size:26px}.info-table>div{flex-direction:column;gap:4px}.info-table dt{width:auto}}
