@import "https://fonts.googleapis.com/css2?family=Kaisei+Tokumin:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700&family=Shippori+Mincho:wght@400;500;700&family=Yuji+Syuku&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f8f4ec;--paper-light:#fbfaf6;--paper-deep:#eee5d5;--ink:#1a1412;--ink-soft:#4a413d;--thin-ink:#857b73;--vermilion:#8b1e1e;--vermilion-bright:#9a2e1f;--gold:#b59655;--gold-soft:#d5c49a;--line:#1a141229;--shadow:0 20px 48px #1a14121f;--radius:8px;--container:1120px;background:var(--paper);color:var(--ink);font-family:Noto Sans JP,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}[id]{scroll-margin-top:96px}body{background:radial-gradient(circle at 18% 8%, #b5965529, transparent 24rem), radial-gradient(circle at 92% 18%, #8b1e1e14, transparent 20rem), linear-gradient(90deg, #1a141207 1px, transparent 1px), linear-gradient(0deg, #1a141205 1px, transparent 1px), var(--paper);background-size:auto,auto,74px 74px,74px 74px,auto;min-width:320px;margin:0}body:before{z-index:-1;pointer-events:none;content:"";opacity:.46;mix-blend-mode:multiply;background-image:linear-gradient(115deg,#0000 0 48%,#ffffff59 50%,#0000 52%),repeating-linear-gradient(98deg,#1a141208 0 1px,#0000 1px 7px);position:fixed;inset:0}body.is-loading{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-shell{overflow:hidden}.loading-screen{z-index:100;min-height:100svh;color:var(--ink);opacity:1;background:radial-gradient(circle at 50% 38%,#b5965529,#0000 17rem),linear-gradient(115deg,#fbfaf6f5,#f8f4ecfa);place-items:center;transition:opacity .72s,visibility .72s;display:grid;position:fixed;inset:0;overflow:hidden}.loading-screen:before{content:"";mix-blend-mode:multiply;opacity:.55;background:repeating-linear-gradient(94deg,#1a141209 0 1px,#0000 1px 8px),linear-gradient(120deg,#0000 0 48%,#ffffff6b 50%,#0000 52%);position:absolute;inset:-20%}.loading-screen:after{content:"";filter:blur(2px);opacity:.18;background:linear-gradient(90deg,#0000,#1a14128a,#0000);border-radius:999px;width:min(420px,72vw);height:14px;position:absolute;bottom:12vh;right:11vw;transform:rotate(-7deg)}.loading-screen.is-leaving{visibility:hidden;opacity:0;pointer-events:none}.loading-filter{width:0;height:0;position:absolute}.loading-enso{aspect-ratio:1;border:1px solid #8b1e1e2e;border-color:#8b1e1e2e #0000 #1a141214 #8b1e1e2e;border-radius:50%;width:min(68vw,430px);animation:2.6s ease-in-out both loadingEnso;position:absolute;transform:rotate(-25deg)}.loading-dragon{aspect-ratio:3/4;filter:drop-shadow(0 18px 30px #1a14121f);opacity:0;width:min(58vw,340px);animation:2.6s cubic-bezier(.16,1,.3,1) forwards loadingDragonAppear;position:relative;transform:translateY(12px)scale(.96)rotate(-2deg)}.loading-dragon-slice{left:0;right:0;top:calc(var(--slice-index) * (100% / 14));transform-origin:50%;height:calc(7.14286% + 2px);animation:1.55s ease-in-out infinite loadingDragonSlice;animation-delay:calc(var(--slice-index) * -115ms);position:absolute;overflow:hidden}.loading-dragon-slice img{top:calc(var(--slice-index) * -100%);object-fit:contain;opacity:.9;filter:url(#dragon-waver)contrast(1.08);-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:1400%;position:absolute;left:0}.loading-copy{justify-items:center;gap:4px;width:min(100% - 32px,360px);animation:2.2s both loadingCopy;display:grid;position:absolute;bottom:clamp(40px,10vh,92px);left:50%;transform:translate(-50%)}.loading-logo{margin:0;font-family:Yuji Syuku,Kaisei Tokumin,serif;font-size:clamp(2.7rem,15vw,5rem);line-height:1}.loading-kana{color:var(--thin-ink);margin:0;font-family:Shippori Mincho,serif;font-size:.86rem}.loading-line{background:#1a14121f;width:min(180px,50vw);height:2px;margin-top:16px;overflow:hidden}.loading-line:before{content:"";background:linear-gradient(90deg, transparent, var(--vermilion), transparent);width:100%;height:100%;animation:1.6s ease-in-out infinite loadingLine;display:block;transform:translate(-100%)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:min(100% - 32px, var(--container));margin-inline:auto}.site-header{z-index:20;padding:12px max(16px, calc((100vw - var(--container)) / 2));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8f4ecdb;border-bottom:1px solid #1a14121a;justify-content:space-between;align-items:center;gap:20px;display:flex;position:sticky;top:0}.header-logo{gap:1px;min-width:max-content;line-height:1;display:grid}.header-logo span,.footer-logo{font-family:Yuji Syuku,Kaisei Tokumin,serif;font-size:1.55rem}.header-logo small{color:var(--thin-ink);letter-spacing:0;font-size:.68rem}.header-nav,.footer-nav{color:var(--ink-soft);flex-wrap:wrap;gap:8px 18px;font-size:.88rem;display:flex}.header-nav a,.footer-nav a{padding-block:6px;position:relative}.header-nav a:after,.footer-nav a:after{content:"";background:var(--vermilion);transform-origin:0;height:1px;transition:transform .18s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.header-nav a:hover:after,.header-nav a:focus-visible:after,.footer-nav a:hover:after,.footer-nav a:focus-visible:after{transform:scaleX(1)}.section-band{position:relative}.hero{background:linear-gradient(90deg,#f8f4ecfa 0%,#f8f4eceb 48%,#f8f4ec94 100%),radial-gradient(circle at 72% 34%,#8b1e1e1c,#0000 30rem);align-items:center;min-height:84svh;padding:clamp(64px,9vw,120px) 0 clamp(56px,7vw,88px);display:grid}.hero:before,.hero:after{content:"";pointer-events:none;position:absolute}.hero:before{filter:blur(.2px);border:0 solid #1a141224;border-top-width:12px;border-radius:50%;width:min(68vw,820px);height:min(25vw,230px);bottom:8%;right:-10vw;transform:rotate(-10deg)}.hero:after{opacity:.6;background:radial-gradient(circle,#8b1e1e33 0 18%,#0000 19%);border-radius:50%;width:190px;height:190px;bottom:15%;right:8%}.ink-orbit{aspect-ratio:1;opacity:.7;border:1px solid #1a141229;border-color:#1a141229 #1a141229 #0000 #0000;border-radius:50%;width:min(48vw,520px);position:absolute;top:18%;right:14%;transform:rotate(-26deg)}.hero-dragon{z-index:0;object-fit:contain;opacity:.22;mix-blend-mode:multiply;filter:contrast(1.1);width:min(58vw,610px);max-height:86%;position:absolute;bottom:clamp(-40px,-5vw,24px);right:clamp(-110px,-8vw,-32px)}.hero-inner{z-index:2;width:min(100% - 32px, var(--container));margin-inline:auto;position:relative}.hero-kicker,.eyebrow,.course-target{color:var(--vermilion);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:700}.hero h1{letter-spacing:0;text-shadow:0 1px #ffffff57;margin:0;font-family:Yuji Syuku,Kaisei Tokumin,serif;font-size:clamp(5rem,27vw,13.5rem);font-weight:400;line-height:.78}.hero-kana{color:var(--thin-ink);margin:clamp(12px,2vw,24px) 0 0;font-family:Shippori Mincho,serif;font-size:clamp(.92rem,2vw,1.1rem)}.hero-copy{max-width:720px;margin:clamp(26px,5vw,48px) 0 0;font-family:Kaisei Tokumin,Shippori Mincho,serif;font-size:clamp(1.85rem,7vw,4.7rem);font-weight:500;line-height:1.16}.hero-subcopy{max-width:610px;color:var(--ink-soft);margin:20px 0 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.9}.hero-actions,.contact-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.button,.contact-link{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 18px;font-weight:700;transition:transform .18s,background-color .18s,border-color .18s,color .18s;display:inline-flex}.button:hover,.button:focus-visible,.contact-link:hover,.contact-link:focus-visible{transform:translateY(-2px)}.button-primary{background:var(--vermilion);color:#fffaf0;box-shadow:0 12px 28px #8b1e1e3d}.button-primary:hover,.button-primary:focus-visible{background:var(--vermilion-bright)}.button-secondary{color:var(--ink);background:#fbfaf6c2;border-color:#1a141247}.section{padding:clamp(72px,12vw,140px) 0;position:relative}.section:before{content:"";opacity:.22;background:linear-gradient(90deg,#0000,#1a14129e,#0000),repeating-linear-gradient(90deg,#0000 0 18px,#f8f4eca8 18px 21px);border-radius:999px;width:min(780px,82vw);height:10px;position:absolute;top:0;left:50%;transform:translate(-50%)}.section-quiet{background:#fbfaf694}.section-title{max-width:710px}.section-title h2,.teacher-copy h2,.contact-copy h2{margin:0;font-family:Kaisei Tokumin,Shippori Mincho,serif;font-size:clamp(2rem,7vw,4rem);font-weight:500;line-height:1.22}.section-lead,.teacher-copy p,.contact-copy p{color:var(--ink-soft);line-height:2}.philosophy-layout,.feature-layout,.schedule-layout,.access-layout,.teacher-layout,.contact-layout{gap:clamp(30px,6vw,72px);display:grid}.philosophy-body{border-left:3px solid var(--vermilion);background:linear-gradient(90deg,#ffffff61,#0000);padding:clamp(24px,4vw,46px);position:relative}.philosophy-body:after{content:"龍";color:#8b1e1e14;font-family:Yuji Syuku,serif;font-size:clamp(6rem,20vw,14rem);line-height:1;position:absolute;bottom:-20px;right:4%}.philosophy-body p{z-index:1;margin:0;font-family:Shippori Mincho,serif;font-size:clamp(1.02rem,2vw,1.14rem);line-height:2.25;position:relative}.philosophy-body p+p{margin-top:18px}.keyword-row{z-index:1;flex-wrap:wrap;gap:8px;margin-top:28px;display:flex;position:relative}.keyword-row span{color:var(--vermilion);background:#fbfaf6a3;border:1px solid #8b1e1e38;border-radius:999px;padding:7px 12px;font-size:.86rem}.card-grid,.course-grid{gap:14px;margin-top:34px;display:grid}.growth-card,.course-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg, #ffffffb8, #f8f4ec70), var(--paper-light);min-height:198px;padding:24px;position:relative;box-shadow:0 14px 36px #1a141212}.growth-card:after,.course-card:after{content:"";opacity:.18;background:linear-gradient(90deg,#1a141266,#0000);border-radius:999px;width:54px;height:5px;position:absolute;bottom:14px;right:18px}.icon-mark{width:42px;height:42px;color:var(--vermilion);background:#ffffff75;border:1px solid #8b1e1e3d;border-radius:50%;place-items:center;display:inline-grid}.growth-card h3,.course-card h3{margin:18px 0 10px;font-family:Kaisei Tokumin,serif;font-size:1.35rem}.growth-card p,.course-card p{color:var(--ink-soft);margin:0;line-height:1.85}.feature-list{gap:12px;display:grid}.feature-item{border-bottom:1px solid var(--line);background:#fbfaf670;grid-template-columns:32px 1fr;align-items:center;min-height:58px;padding:14px 16px;display:grid}.feature-item svg{color:var(--vermilion)}.course-target{margin-bottom:10px}.course-price{border-top:1px solid var(--line);color:var(--vermilion);margin-top:18px;padding-top:14px;font-weight:700}.schedule-table-wrap,.map-panel,.contact-form{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fbfaf6c2}.schedule-table{border-collapse:collapse;width:100%;overflow:hidden}.schedule-table caption{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--line);text-align:left;padding:18px 20px}.schedule-table tr:last-child th,.schedule-table tr:last-child td{border-bottom:0}.schedule-table th{width:42%;font-family:Kaisei Tokumin,serif}.schedule-table td{color:var(--vermilion);font-weight:700}.schedule-table .is-closed td{color:var(--thin-ink);font-weight:500}.info-list{gap:14px;margin:30px 0 0;display:grid}.info-list div{border-bottom:1px solid var(--line);gap:8px;padding:16px 0;display:grid}.info-list dt{color:var(--vermilion);font-size:.85rem;font-weight:700}.info-list dd{color:var(--ink-soft);gap:2px;margin:0;display:grid}.map-panel{min-height:340px;padding:14px}.map-placeholder{min-height:310px;color:var(--ink-soft);text-align:center;background:linear-gradient(135deg,#b596551a,#0000),repeating-linear-gradient(135deg,#1a141209 0 1px,#0000 1px 12px);border:1px dashed #1a14123d;align-content:center;place-items:center;gap:10px;display:grid}.map-placeholder p{color:var(--ink);margin:0;font-family:Kaisei Tokumin,serif;font-size:1.2rem}.map-placeholder span{max-width:18rem;font-size:.9rem;line-height:1.7}.teacher-photo{border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(circle at 70% 28%, #8b1e1e29, transparent 11rem), linear-gradient(135deg, var(--paper-light), var(--paper-deep));min-height:320px;box-shadow:var(--shadow);margin:0;position:relative;overflow:hidden}.teacher-photo img{object-fit:cover;mix-blend-mode:multiply;width:100%;height:100%;min-height:320px}.teacher-copy{align-self:center}.teacher-copy p{margin:18px 0 0}.faq-layout{gap:30px;display:grid}.faq-list{gap:10px;display:grid}.faq-item{border:1px solid var(--line);border-radius:var(--radius);background:#fbfaf6bd}.faq-item summary{cursor:pointer;padding:18px 20px;font-weight:700}.faq-item summary::marker{color:var(--vermilion)}.faq-item p{color:var(--ink-soft);margin:0;padding:0 20px 20px;line-height:1.85}.contact-section{background:linear-gradient(#1a14120d, #1a141200), var(--paper)}.contact-actions{display:grid}.contact-link{color:var(--vermilion);background:#fbfaf6ad;border-color:#8b1e1e38;justify-content:flex-start}.contact-form{gap:20px;padding:clamp(20px,4vw,34px);display:grid}.form-grid{gap:18px;display:grid}.contact-form label,.contact-form fieldset{color:var(--ink-soft);gap:8px;margin:0;font-size:.92rem;font-weight:700;display:grid}.contact-form input,.contact-form textarea{width:100%;color:var(--ink);background:#ffffffb8;border:1px solid #1a14122e;border-radius:6px;outline:none;padding:13px 14px;transition:border-color .16s,box-shadow .16s}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--vermilion);box-shadow:0 0 0 3px #8b1e1e1f}.contact-form fieldset{border-radius:var(--radius);border:1px solid #1a141224;grid-template-columns:1fr;padding:16px}.contact-form legend{color:var(--ink);padding-inline:6px}.contact-form fieldset label{align-items:center;gap:8px;font-weight:500;display:flex}.contact-form input[type=radio]{width:auto;accent-color:var(--vermilion)}.form-submit{cursor:pointer;border:0;width:100%}.site-footer{color:#f8f4ec;background:#1a1412;border-top:1px solid #1a141229;padding:44px 0}.footer-layout{gap:26px;display:grid}.footer-logo{color:#fffaf0;margin:0 0 8px}.site-footer p{color:#f8f4ecc7;margin:0;line-height:1.8}.site-footer address{color:#f8f4ecb8;gap:4px;font-style:normal;line-height:1.7;display:grid}.copyright{font-size:.82rem}.reveal{opacity:0;transition:opacity .62s,transform .62s;transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes loadingDragonAppear{0%{opacity:0;transform:translateY(18px)scale(.92)rotate(-4deg)}26%{opacity:.92}58%{opacity:.98;transform:translateY(-4px)scale(1.02)rotate(1.4deg)}to{opacity:.9;transform:translateY(0)scale(1)rotate(-1deg)}}@keyframes loadingDragonSlice{0%,to{transform:translate(-7px)skewY(-.55deg)}50%{transform:translate(7px)skewY(.55deg)}}@keyframes loadingEnso{0%{opacity:0;transform:rotate(-42deg)scale(.86)}48%{opacity:.88}to{opacity:.54;transform:rotate(-18deg)scale(1)}}@keyframes loadingCopy{0%,18%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes loadingLine{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}:focus-visible{outline-offset:3px;outline:3px solid #8b1e1e59}@media (width>=640px){.card-grid,.course-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-form fieldset{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-form legend{grid-column:1/-1}}@media (width>=860px){.philosophy-layout,.feature-layout,.schedule-layout,.access-layout,.teacher-layout,.contact-layout{grid-template-columns:minmax(0,.84fr) minmax(0,1fr);align-items:start}.growth-grid,.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.faq-layout{grid-template-columns:minmax(260px,.52fr) minmax(0,1fr)}.contact-layout{grid-template-columns:minmax(280px,.65fr) minmax(0,1fr)}}@media (width<=760px){.site-header{flex-wrap:wrap;align-items:flex-start;gap:8px 14px;padding:10px 16px}.header-nav{justify-content:flex-start;gap:3px 12px;width:100%;font-size:.78rem}.hero{min-height:82svh;padding-top:58px}.hero-dragon{opacity:.14;width:118vw;bottom:0;right:-140px}.hero-actions{max-width:360px;display:grid}.button,.contact-link{width:100%}.section{padding-block:76px}.philosophy-body{background:0 0;padding:22px 0 22px 18px}}@media (width<=420px){.container,.hero-inner{width:min(100% - 24px, var(--container))}.header-logo span{font-size:1.3rem}.header-nav{max-width:none}.hero h1{font-size:clamp(4.2rem,27vw,6.4rem)}.hero-copy{font-size:clamp(1.55rem,8vw,2.2rem)}.growth-card,.course-card{min-height:auto;padding:20px}.schedule-table th,.schedule-table td{padding:16px 14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
