@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&family=Noto+Serif+JP:wght@500;600&display=swap');
:root{--ink:#26362f;--green:#6f8e7b;--deep:#355748;--pale:#e8efe9;--cream:#f5f1e8;--white:#fff;--line:#d7dfd8;--serif:"Noto Serif JP",serif;--sans:"DM Sans","Noto Sans JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:#fbfcf9;line-height:1.8}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:84px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(251,252,249,.94);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(38,54,47,.08);backdrop-filter:blur(12px)}.logo,.footer-logo{display:flex;flex-direction:column;line-height:1}.logo span,.footer-logo span{font-family:var(--serif);font-size:29px;letter-spacing:.12em}.logo small,.footer-logo small{font-size:8px;letter-spacing:.3em;margin-top:7px}.site-header nav{display:flex;align-items:center;gap:30px;font-size:12px;font-weight:500}.nav-cta{background:var(--deep);color:white;padding:13px 23px;border-radius:99px}.menu{display:none;background:none;border:0}.hero{min-height:calc(100vh - 84px);padding:8vh 7vw 5vh;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:6vw;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:430px;height:430px;background:var(--pale);border-radius:50%;top:-180px;left:-150px;z-index:-1}.eyebrow,.section-label{font-size:11px;letter-spacing:.28em;font-weight:600;color:var(--green);margin-bottom:28px}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(43px,5.2vw,76px);line-height:1.42;letter-spacing:.04em;margin:0}.hero h1 em{font-style:normal;color:var(--deep)}.lead{max-width:570px;font-size:15px;line-height:2.2;margin:30px 0}.hero-actions{display:flex;align-items:center;gap:30px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer}.primary{background:var(--deep);color:white;padding:17px 30px;border-radius:3px;box-shadow:0 12px 28px rgba(53,87,72,.18)}.text-link{font-size:13px;border-bottom:1px solid var(--ink);padding:8px 0}.text-link span{margin-left:15px}.badges{list-style:none;padding:0;margin:42px 0 0;display:flex;gap:20px;font-size:11px}.badges li:before{content:"✓";color:var(--green);margin-right:7px}.hero-visual{min-height:600px;position:relative}.visual-card{height:100%;min-height:600px;background:linear-gradient(145deg,#dfe8e0 0%,#f2eadb 78%);border-radius:47% 47% 8px 8px;position:relative;overflow:hidden}.visual-card:before{content:"";position:absolute;width:260px;height:430px;background:rgba(255,255,255,.55);border-radius:140px 140px 0 0;bottom:0;left:20%}.sun{position:absolute;width:150px;height:150px;border-radius:50%;background:#cadacb;top:13%;right:12%}.person{position:absolute;width:170px;height:300px;background:var(--deep);border-radius:80px 80px 25px 25px;bottom:0;left:31%;transform:rotate(-4deg)}.person:before{content:"";position:absolute;width:92px;height:92px;background:#b98d71;border-radius:50%;top:-70px;left:32px}.person:after{content:"";position:absolute;width:200px;height:28px;background:var(--deep);border-radius:20px;top:70px;left:-25px;transform:rotate(-27deg)}.visual-card p{position:absolute;right:8%;bottom:8%;font-family:var(--serif);font-size:17px;line-height:1.5;color:var(--deep)}.float-note{position:absolute;left:-46px;bottom:42px;background:white;padding:19px 24px;display:flex;gap:16px;align-items:center;box-shadow:0 18px 50px rgba(38,54,47,.13)}.float-note strong{font-family:var(--serif);font-size:34px;color:var(--green)}.float-note span{font-size:11px;line-height:1.7}.scroll{position:absolute;bottom:23px;left:2.5vw;writing-mode:vertical-rl;font-size:8px;letter-spacing:.25em}.scroll span{height:38px;border-left:1px solid var(--ink);margin-top:10px}.section{padding:120px 8vw}.intro{background:white}.intro-heading{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:end}.intro-heading p{font-family:var(--serif);font-size:clamp(28px,3vw,44px);line-height:1.7;margin:0}.intro-heading span{font-size:14px;line-height:2.2}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:5vw;margin-top:90px}.features article{position:relative}.features b{position:absolute;right:0;top:0;color:#c2cec5;font-family:var(--serif);font-size:12px}.feature-icon{width:88px;height:88px;border-radius:50%;background:var(--pale);display:grid;place-items:center;font-family:var(--serif);font-size:28px;color:var(--deep)}.features h3{font-family:var(--serif);font-weight:500;font-size:19px;margin:27px 0 12px}.features p{font-size:13px;color:#58665f}.beginner{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;background:var(--cream)}.beginner-art{height:540px;background:#dce6dc;position:relative;overflow:hidden}.arch{width:58%;height:82%;background:#f6f3ec;position:absolute;bottom:0;left:21%;border-radius:150px 150px 0 0}.arch span{position:absolute;width:60%;height:44%;background:var(--green);bottom:0;left:20%;border-radius:70px 70px 0 0}.beginner-art p{position:absolute;top:35px;left:35px;font-size:10px;letter-spacing:.25em;line-height:1.5}.beginner-copy h2,.trainer-copy h2,.flow h2,.faq h2,.trial h2,.access h2,.price h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,48px);font-weight:500;line-height:1.65;margin:0 0 25px}.beginner-copy>p{font-size:14px}.beginner-copy ul{list-style:none;padding:0;margin-top:30px}.beginner-copy li{border-top:1px solid #ccd5cc;padding:14px 0;font-size:13px}.beginner-copy li:before{content:"○";margin-right:12px;color:var(--green)}.price{background:var(--deep);color:white;text-align:center}.section-label.light{color:#c5d6ca}.section-sub{font-size:13px;color:#d7e0da}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:65px;text-align:left}.price-grid article{background:#f8faf7;color:var(--ink);padding:42px 35px;position:relative}.price-grid article>p{font-size:11px;color:var(--green);margin:0}.price-grid h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:4px 0 28px}.price-grid strong{display:block;font-size:42px;font-weight:500}.price-grid strong small{font-size:17px}.price-grid span{font-size:11px;display:block;margin:5px 0 30px}.price-grid a{display:block;border-top:1px solid var(--line);padding-top:20px;font-size:12px}.recommended{transform:translateY(-12px)}.recommended i{position:absolute;right:0;top:0;background:#afc4b4;padding:6px 13px;font-size:8px;letter-spacing:.17em}.tax{font-size:10px;color:#b7c8bd;margin-top:20px}.trainer{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.trainer-portrait{position:relative}.portrait-shape{height:570px;background:linear-gradient(#e6ede6,#c8d8ca);border-radius:48% 48% 5px 5px;display:grid;place-items:center}.portrait-shape span{font-family:var(--serif);font-size:180px;color:rgba(53,87,72,.68)}.trainer-portrait small{position:absolute;bottom:20px;left:22px;color:white;letter-spacing:.24em}.trainer-copy>p{font-size:14px}.trainer-copy blockquote{font-family:var(--serif);font-size:18px;line-height:2;margin:36px 0;padding-left:25px;border-left:2px solid var(--green)}.name{border-top:1px solid var(--line);padding-top:20px}.name strong{font-family:var(--serif);font-size:22px;margin-left:10px}.flow{background:var(--pale);text-align:center}.flow ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:65px;background:#cbd7ce}.flow li{background:var(--pale);padding:35px 22px}.flow b{font-family:var(--serif);font-size:28px;color:#91aa98}.flow h3{font-family:var(--serif);font-weight:500}.flow p{font-size:12px}.faq{display:grid;grid-template-columns:.65fr 1.35fr;gap:10vw}.faq>div>p{font-size:13px}.accordion details{border-top:1px solid var(--line)}.accordion details:last-child{border-bottom:1px solid var(--line)}.accordion summary{list-style:none;padding:24px 40px 24px 0;cursor:pointer;font-size:14px;position:relative}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"＋";position:absolute;right:0}.accordion details[open] summary:after{content:"−"}.accordion summary span{font-family:var(--serif);font-size:20px;color:var(--green);margin-right:15px}.accordion details p{font-size:13px;padding:0 15px 25px 40px;margin:0}.trial{background:#6f8e7b;color:white;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.trial-head>p{font-size:13px;color:#e6ede8}.trial form{background:white;color:var(--ink);padding:40px}.trial label{display:block;font-size:12px;font-weight:600;margin-bottom:20px}.trial label span{font-size:8px;background:var(--pale);color:var(--deep);padding:3px 6px;margin-left:8px}.trial input,.trial textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);padding:11px 2px;outline:none;background:white;margin-top:5px}.trial input:focus,.trial textarea:focus{border-color:var(--green)}.submit{width:100%;background:var(--deep);color:white;padding:17px;margin-top:10px}.submit span{background:none;color:white;font-size:15px;margin-left:18px}.form-note{font-size:9px;text-align:center;color:#77837c}.access{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;align-items:center}.access>div>p{font-size:13px}.map{height:400px;background:#e8ede7;position:relative;overflow:hidden}.map:before,.map:after{content:"";position:absolute;background:white;transform:rotate(-14deg)}.map:before{width:650px;height:38px;top:130px;left:-50px}.map:after{width:35px;height:500px;top:-70px;left:58%}.map span{position:absolute;z-index:2;background:var(--deep);color:white;border-radius:50% 50% 50% 0;width:65px;height:65px;display:grid;place-items:center;left:45%;top:38%;transform:rotate(-45deg)}.map span::first-line{transform:rotate(45deg)}.map i{position:absolute;bottom:12%;right:12%;font-size:11px}.route{position:absolute;border-top:3px dotted var(--green);width:180px;left:48%;top:55%;transform:rotate(18deg);z-index:1}footer{background:#243b31;color:white;padding:65px 8vw 30px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}footer>div:not(.footer-logo){display:flex;flex-direction:column;gap:8px;font-size:11px}footer>p{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:24px;font-size:8px;letter-spacing:.12em;margin-top:35px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,120px);background:#1f332b;color:white;padding:13px 22px;font-size:12px;z-index:50;transition:.35s;box-shadow:0 10px 30px rgba(0,0,0,.2)}.toast.show{transform:translate(-50%,0)}
@media(max-width:850px){.site-header{height:70px}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:25px;flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.menu{display:flex;width:38px;height:30px;flex-direction:column;justify-content:center;gap:7px}.menu span{display:block;border-top:1px solid var(--ink)}.hero{grid-template-columns:1fr;padding-top:55px}.hero-visual{min-height:430px}.visual-card{min-height:430px}.badges{flex-wrap:wrap}.scroll{display:none}.section{padding:80px 7vw}.intro-heading,.beginner,.trainer,.faq,.trial,.access{grid-template-columns:1fr}.features,.price-grid{grid-template-columns:1fr}.features{gap:45px}.beginner-art{height:400px}.price-grid{gap:20px}.recommended{transform:none}.trainer-portrait{order:2}.portrait-shape{height:430px}.flow ol{grid-template-columns:1fr 1fr}.trial form{padding:28px 22px}footer{grid-template-columns:1fr 1fr}.footer-logo{grid-column:1/-1}}
@media(max-width:520px){.hero{padding-left:6vw;padding-right:6vw}.hero h1{font-size:38px}.hero-actions{align-items:flex-start;flex-direction:column;gap:15px}.hero-visual{min-height:350px}.visual-card{min-height:350px}.person{transform:scale(.75);transform-origin:bottom}.float-note{left:-8px}.intro-heading{grid-template-columns:1fr}.flow ol{grid-template-columns:1fr}.price-grid article{padding:35px 25px}.faq{gap:35px}.map{height:300px}footer{grid-template-columns:1fr}}

/* Hero photography */
.visual-card:before,.visual-card .sun,.visual-card .person{display:none}
.visual-card img{width:100%;height:100%;min-height:600px;display:block;object-fit:cover;object-position:center center}
.visual-card p{z-index:2;color:white;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.visual-card:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(22,37,30,.48));pointer-events:none}
@media(max-width:850px){.visual-card img{min-height:430px}}
@media(max-width:520px){.visual-card img{min-height:350px}}

/* Section photography */
.beginner-art img,.portrait-shape img{width:100%;height:100%;display:block;object-fit:cover}
.beginner-art img{object-position:center center}
.beginner-art p{z-index:2;color:white;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.beginner-art:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(20,29,25,.28),transparent 45%);pointer-events:none}
.portrait-shape{overflow:hidden}
.portrait-shape img{object-position:center 22%}
.trainer-portrait small{z-index:2;text-shadow:0 2px 12px rgba(0,0,0,.6)}

/* Monochrome theme */
:root{--ink:#202020;--green:#707070;--deep:#171717;--pale:#ededed;--cream:#f4f4f4;--line:#d4d4d4}
body{background:#fafafa}
.site-header{background:rgba(250,250,250,.94);border-bottom-color:rgba(0,0,0,.1)}
.hero:before{background:#efefef}
.primary{box-shadow:0 12px 28px rgba(0,0,0,.18)}
.visual-card{background:linear-gradient(145deg,#e4e4e4 0%,#cfcfcf 100%)}
.visual-card img,.beginner-art img,.portrait-shape img{filter:grayscale(100%);transition:filter .35s ease}
.visual-card:hover img,.beginner-art:hover img,.portrait-shape:hover img{filter:grayscale(82%)}
.float-note{box-shadow:0 18px 50px rgba(0,0,0,.14)}
.features b{color:#b8b8b8}
.features p{color:#5f5f5f}
.beginner{background:#f1f1f1}
.beginner-copy li{border-top-color:#cecece}
.price{background:#181818}
.section-label.light{color:#c8c8c8}
.section-sub{color:#d6d6d6}
.price-grid article{background:#f7f7f7}
.recommended i{background:#777;color:#fff}
.tax{color:#bdbdbd}
.portrait-shape{background:linear-gradient(#e5e5e5,#c9c9c9)}
.flow{background:#ececec}
.flow ol{background:#cccccc}
.flow li{background:#ececec}
.flow b{color:#8b8b8b}
.trial{background:#626262}
.trial-head>p{color:#ededed}
.map{background:#e6e6e6}
footer{background:#151515}
.toast{background:#111}

/* Bold editorial styling */
body{letter-spacing:.015em}
.site-header{height:92px;padding:0 4vw;border-bottom:1px solid #bdbdbd}
.logo span,.footer-logo span{font-family:var(--sans);font-weight:600;font-size:31px;letter-spacing:-.04em}
.logo small,.footer-logo small{font-weight:600;letter-spacing:.38em}
.site-header nav{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.nav-cta{border-radius:0;padding:15px 26px;transition:background .2s,color .2s}
.nav-cta:hover,.primary:hover,.submit:hover{background:#444}
.hero{min-height:calc(100vh - 92px);padding:7vh 6vw 6vh;gap:5vw}
.hero:before{width:32vw;height:32vw;top:auto;left:-13vw;bottom:-16vw;border-radius:0;transform:rotate(45deg)}
.eyebrow,.section-label{color:#585858;font-weight:600;letter-spacing:.34em}
.hero h1{font-family:var(--sans);font-weight:600;font-size:clamp(48px,6.2vw,92px);line-height:1.13;letter-spacing:-.055em}
.hero h1 em{font-family:var(--serif);font-weight:500;letter-spacing:-.04em}
.lead{max-width:520px;border-left:2px solid #202020;padding-left:22px}
.primary{border-radius:0;padding:18px 34px;font-weight:600;letter-spacing:.08em;transition:background .2s,transform .2s}
.primary:hover{transform:translateY(-2px)}
.text-link{font-weight:600;letter-spacing:.08em}
.badges{font-weight:600;letter-spacing:.05em}
.visual-card{border-radius:0;clip-path:polygon(10% 0,100% 0,100% 100%,0 100%,0 10%)}
.visual-card img{filter:grayscale(100%) contrast(1.12)}
.visual-card:hover img{filter:grayscale(100%) contrast(1.2)}
.visual-card:after{inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.7))}
.visual-card p{font-family:var(--sans);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.float-note{left:-28px;bottom:28px;border:1px solid #202020;box-shadow:10px 10px 0 #202020}
.float-note strong{color:#202020;font-family:var(--sans);font-weight:600}
.section{padding-top:140px;padding-bottom:140px}
.intro-heading p,.beginner-copy h2,.trainer-copy h2,.flow h2,.faq h2,.trial h2,.access h2,.price h2{letter-spacing:-.035em}
.features{gap:2vw}
.features article{border-top:2px solid #202020;padding-top:28px}
.feature-icon{border-radius:0;background:#202020;color:#fff;width:72px;height:72px;font-family:var(--sans);font-weight:600}
.features h3{font-family:var(--sans);font-weight:600}
.beginner-art{height:600px}
.beginner-art img{filter:grayscale(100%) contrast(1.12)}
.price-grid{gap:2px}
.price-grid article{border-top:5px solid #777;padding:48px 38px;transition:transform .25s,background .25s}
.price-grid article:hover{transform:translateY(-8px);background:#fff}
.price-grid .recommended{border-top-color:#111}
.recommended{transform:translateY(-16px)}
.recommended:hover{transform:translateY(-24px)}
.price-grid strong{font-size:48px;letter-spacing:-.05em}
.price-grid a{font-weight:600;letter-spacing:.06em}
.portrait-shape{border-radius:0;clip-path:polygon(0 0,88% 0,100% 12%,100% 100%,0 100%)}
.portrait-shape img{filter:grayscale(100%) contrast(1.1)}
.trainer-copy blockquote{border-left:4px solid #202020;font-size:20px}
.flow ol{gap:0;border-top:2px solid #202020;border-bottom:2px solid #202020}
.flow li{border-right:1px solid #bcbcbc}
.flow li:last-child{border-right:0}
.flow b{color:#202020;font-family:var(--sans);font-weight:600}
.accordion details{border-top-color:#aaa}
.accordion summary{font-weight:600;padding-top:28px;padding-bottom:28px}
.trial{background:linear-gradient(120deg,#0d0d0d 0%,#0d0d0d 48%,#555 48%,#555 100%)}
.trial form{border:1px solid #222;box-shadow:14px 14px 0 rgba(0,0,0,.32)}
.submit{font-weight:600;letter-spacing:.08em;transition:background .2s}
.map{filter:grayscale(100%);border:1px solid #aaa}
footer{border-top:6px solid #555}
@media(max-width:850px){.site-header{height:70px}.hero{min-height:auto}.section{padding-top:90px;padding-bottom:90px}.trial{background:#555}.recommended,.recommended:hover{transform:none}.price-grid article:hover{transform:none}.flow li{border-right:0;border-bottom:1px solid #bcbcbc}}

/* Natural brand typography */
:root{--serif:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;--sans:"Helvetica Neue","Arial","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",sans-serif}
body{font-family:var(--sans);font-weight:400}
.hero h1,.hero h1 em,.intro-heading p,.beginner-copy h2,.trainer-copy h2,.flow h2,.faq h2,.trial h2,.access h2,.price h2{font-family:var(--sans);font-weight:700}
.logo span,.footer-logo span,.eyebrow,.section-label,.visual-card p,.price-grid strong,.flow b{font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif}
.lead,.features p,.beginner-copy>p,.trainer-copy>p,.faq>div>p{letter-spacing:.03em;line-height:2}
.trainer-copy blockquote{font-family:var(--sans);font-weight:500}

/* Color theme: deep navy + burnt orange */
:root{--ink:#17212b;--green:#d4663a;--deep:#132431;--pale:#e9eef0;--cream:#f3eee8;--line:#cbd4d8}
body{background:#f8f7f3;color:var(--ink)}
.site-header{background:rgba(248,247,243,.94);border-bottom-color:rgba(19,36,49,.18)}
.nav-cta,.primary,.submit{background:#d4663a;color:#fff}
.nav-cta:hover,.primary:hover,.submit:hover{background:#ae4825}
.hero:before{background:#dce7e9}
.hero h1 em{color:#d4663a}
.lead{border-left-color:#d4663a}
.eyebrow,.section-label{color:#b24f2b}
.badges li::before{color:#d4663a}
.visual-card{background:linear-gradient(145deg,#b9c8ce,#e2c9b6)}
.visual-card img,.beginner-art img,.portrait-shape img{filter:saturate(.82) contrast(1.08)}
.visual-card:hover img,.beginner-art:hover img,.portrait-shape:hover img{filter:saturate(1) contrast(1.1)}
.visual-card:after{background:linear-gradient(transparent,rgba(12,27,38,.7))}
.float-note{border-color:#132431;box-shadow:10px 10px 0 #d4663a}
.float-note strong{color:#d4663a}
.feature-icon{background:#132431;color:#f8f7f3}
.features article{border-top-color:#d4663a}
.features b{color:#d4663a}
.features p{color:#53616a}
.beginner{background:#e5edef}
.price{background:#132431}
.section-label.light{color:#ef9c7b}
.price-grid article{background:#f8f7f3;border-top-color:#78909c}
.price-grid .recommended{border-top-color:#d4663a}
.recommended i{background:#d4663a}
.tax{color:#b9c6cb}
.portrait-shape{background:linear-gradient(#dce5e8,#b8c8ce)}
.trainer-copy blockquote{border-left-color:#d4663a}
.flow{background:#e5edef}
.flow ol{background:#aebdc3;border-color:#132431}
.flow li{background:#e5edef}
.flow b{color:#d4663a}
.accordion summary span{color:#d4663a}
.trial{background:linear-gradient(120deg,#132431 0%,#132431 48%,#d4663a 48%,#d4663a 100%)}
.trial form{box-shadow:14px 14px 0 rgba(19,36,49,.35)}
.map{background:#dfe8e9;filter:none}
.map span{background:#d4663a}
.route{border-top-color:#d4663a}
footer{background:#101f29;border-top-color:#d4663a}
.toast{background:#132431}
@media(max-width:850px){.trial{background:#132431}}
