@font-face{font-family:'Shippori Mincho';font-style:normal;font-weight:400;font-display:swap;src:url('assets/shippori-mincho-400.ttf') format('truetype')}
@font-face{font-family:'Shippori Mincho';font-style:normal;font-weight:500;font-display:swap;src:url('assets/shippori-mincho-500.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('assets/cormorant-garamond.ttf') format('truetype')}
:root{color-scheme:light;--paper:#faf7f3;--warm:#f2ebe3;--greige:#9c9186;--greige-dark:#7d7268;--text:#5a5148;--sub:#8a8078;--gold:#c4a57b}
*{box-sizing:border-box}
html{background:#ede6dd;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--text);font-family:'Shippori Mincho','Yu Mincho','Hiragino Mincho ProN',serif;font-weight:400;-webkit-font-smoothing:antialiased}
p,h1,h2{margin:0}
.lp{container-type:inline-size;width:min(100%,430px);margin-inline:auto;background:var(--paper);box-shadow:0 0 60px #5a51480b}
img{display:block;max-width:100%}
.en{font-family:'Cormorant Garamond','Shippori Mincho',serif;font-weight:400}
.hero{position:relative;aspect-ratio:2/3.35;isolation:isolate;overflow:hidden;background:var(--paper)}
.hero-image{position:absolute;top:14.8%;right:0;width:49%;height:53.2%;object-fit:cover;object-position:43% center;z-index:-1;mask-image:linear-gradient(to right,transparent,#000 14%),linear-gradient(to bottom,transparent,#000 6% 83%,transparent);mask-composite:intersect}
.hero-collage{position:absolute;inset:0 0 auto;width:100%;height:13%;object-fit:cover;object-position:center top;z-index:-1;mask-image:linear-gradient(to bottom,#000 67%,transparent)}
.hero-subtitle{position:absolute;top:14.1%;left:5%;padding-bottom:1.5cqw;border-bottom:1px solid #c4a57b80;font-size:3.65cqw;line-height:1.5;letter-spacing:.015em}
.hero-title{position:absolute;top:19.2%;left:4.5%;font-weight:500;font-size:6.05cqw;line-height:1.34;letter-spacing:0}
.hero-line{display:block;white-space:nowrap}
.first-line{font-size:5.55cqw;margin-bottom:.5cqw}
.marble-title{font-size:6.3cqw;color:#9b703b}
.title-accent{color:#9b703b}
.machine-title{font-size:5.65cqw;letter-spacing:-.025em}
.trial-title{display:block;margin-top:1.4cqw;padding-top:.4cqw;border-top:1px solid #c4a57b80;color:var(--greige-dark);font-size:9.6cqw;line-height:1.2;letter-spacing:.015em}
.schedule{position:absolute;top:50.8%;left:5.8%;width:51.5%;padding:3cqw 2.6cqw 2.8cqw;border:1px solid #ffffffa8;border-radius:5cqw;background:#fffdf9e8;text-align:center;box-shadow:0 7px 28px #79674c0a}
.schedule-label{color:var(--greige-dark);font-size:2.75cqw;line-height:1.6;letter-spacing:.1em}
.schedule-dates{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin-top:1.7cqw;line-height:1.3}
.schedule-dates>span{display:flex;align-items:baseline;justify-content:center;white-space:nowrap}
.schedule-dates>span+span{border-left:1px solid #c4a57b40}
.schedule-dates .en{font-size:5.7cqw}
.schedule-dates small{font-size:2.35cqw;letter-spacing:-.12em}
.schedule-time{margin-top:1.7cqw;font-size:2.7cqw;white-space:nowrap;line-height:1.5}
.schedule-time .en{font-size:3.5cqw}
.nameplate{position:absolute;left:64%;top:44.3%;width:30%;padding:2.7cqw 1.5cqw 2.6cqw;border:1px solid #ffffff9c;border-radius:5cqw;background:#fffdf7e8;text-align:center;box-shadow:0 5px 24px #79674c0a}
.nameplate-school{display:flex;align-items:center;justify-content:center;gap:.8cqw;white-space:nowrap}
.nameplate-school img{width:21cqw;height:auto;object-fit:contain}
.nameplate-school span{font-size:2cqw}
.nameplate>p{margin-top:1cqw;font-size:3.8cqw;line-height:1.35;letter-spacing:.22em;text-indent:.22em}
.achievements{position:absolute;top:69.5%;left:6%;right:6%;display:grid;grid-template-columns:repeat(3,1fr);gap:3cqw}
.achievement{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid #c0a16a;border-radius:50%;background:linear-gradient(135deg,#e0c99a 0%,#fcf4d9 34%,#e8d4a5 65%,#d9bc83 100%);text-align:center;box-shadow:inset 0 0 0 3px #fff5d958,0 5px 18px #8b6e2710}
.achievement::before{content:'';position:absolute;inset:1.25cqw;border:1px solid #fff9e4a8;border-radius:50%;pointer-events:none}
.achievement-number{line-height:1.15;white-space:nowrap}
.achievement-number .en{font-size:7.2cqw;color:#745c36}
.achievement-number,.achievement-label{color:#68512f;position:relative}
.achievement-number>span:last-child{font-size:3.1cqw}
.achievement-label{margin-top:1.2cqw;font-size:2.6cqw;line-height:1.7;letter-spacing:0}
.hero-closing{position:absolute;top:90.1%;left:3%;right:3%;text-align:center;font-size:3.4cqw;line-height:2.05;letter-spacing:.025em}
.hero-closing span{display:block;white-space:nowrap}
.hero-closing span:first-child{color:var(--greige-dark)}
.statement{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin:0 10px;padding:32px 12px 34px;border-radius:30px;background:linear-gradient(135deg,#f2ebe3,#e9dfd1);color:var(--text);font-size:clamp(18px,4.9vw,21px);font-weight:400;line-height:1.8;letter-spacing:.05em;text-align:center}
.price{font-family:'Cormorant Garamond','Shippori Mincho',serif;font-size:1.25em;letter-spacing:.01em}
.statement{border:1px solid #cfb38b;background:linear-gradient(135deg,#fbf4e7,#efe2ce)}
.statement strong{font-weight:500;color:#78552e}
.statement-amount{white-space:nowrap}
.statement-amount .price{font-size:1.6em;font-weight:400;line-height:1}
.gallery{padding:26px 22px 0}
.gallery-main{width:100%;height:auto}
.gallery-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gallery-details img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:50% 50%}
.gallery-details img:first-child{border-radius:54px 14px 14px 14px}
.gallery-details img:last-child{border-radius:14px 14px 54px 14px}
.reservation{padding:34px 22px 42px;background:var(--paper)}
.cta{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:18px;min-height:72px;padding:14px 17px;border:1px solid #bc995e;border-radius:999px;background:linear-gradient(115deg,#c4a367,#ecd8a8 40%,#e2c68c 70%,#c6a265);box-shadow:inset 0 1px 0 #fff5dbb5,0 7px 22px #9b763b20;color:#594524;text-decoration:none;font-size:clamp(17px,4.7vw,20px);font-weight:400;line-height:1.6;letter-spacing:.08em;transition:transform .25s,box-shadow .25s}
.cta::after{content:'';position:absolute;z-index:-1;top:-60%;left:-70%;width:32%;height:230%;background:linear-gradient(90deg,transparent,#ffffffa8,transparent);transform:skewX(-23deg);animation:cta-shine 4.4s ease-in-out infinite;pointer-events:none}
.cta>span:first-child{white-space:nowrap}
.cta-arrow{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:50%;background:#fff5dcba;color:#70542b}
.cta svg{width:18px;height:18px}
.cta:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff5dbb5,0 10px 27px #9b763b2b}
.cta:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.note{margin:22px 0 0;color:var(--greige-dark);text-align:center;font-size:clamp(12px,3.35vw,14px);line-height:1.8;letter-spacing:.01em}
.info-section{padding:37px 26px 39px}
.event-content{margin-inline:12px;border-radius:32px;background:var(--warm)}
.section-title{text-align:center;font-size:23px;font-weight:400;line-height:1.7;letter-spacing:.09em}
.section-title::after{content:'';display:block;width:42px;height:1px;margin:16px auto 26px;background:var(--gold)}
.lesson-list{margin:0;padding:0;list-style:none}
.lesson-list li{display:flex;align-items:flex-start;gap:12px;padding-block:19px;border-bottom:1px solid #c4a57b45}
.lesson-list li:first-child{padding-top:0}
.lesson-list li:last-child{border-bottom:0;padding-bottom:0}
.lesson-number{color:#98723d;font-size:24px;line-height:1.65}
.lesson-list p{font-size:17px;line-height:1.9;letter-spacing:.015em}
.event-schedule{background:var(--paper)}
.event-dates{display:grid;grid-template-columns:1fr 1fr;text-align:center}
.event-dates p{display:flex;align-items:baseline;justify-content:center}
.event-dates p+p{border-left:1px solid #c4a57b60}
.event-dates .en{font-size:43px;color:#7d623c;line-height:1.2}
.event-dates p>span:last-child{font-size:16px}
.event-time{margin:14px 0 26px;text-align:center;font-size:19px}
.event-time .en{font-size:26px}
.event-facts{margin:0;border-block:1px solid #c4a57b55}
.event-facts>div{display:grid;grid-template-columns:90px 1fr;align-items:center;padding:14px 12px;gap:10px}
.event-facts>div+div{border-top:1px solid #c4a57b35}
.event-facts dt{font-size:15px;color:var(--sub)}
.event-facts dd{margin:0;font-size:18px}
.event-facts>div:first-child dd{color:#92703d;font-size:23px}
.countdown-section{margin-inline:12px;padding:30px 15px 36px;border-radius:32px 32px 0 0;background:var(--warm)}
.countdown{display:flex;align-items:baseline;justify-content:center;gap:12px;color:#795d35;font-variant-numeric:tabular-nums}
.countdown-part{display:flex;align-items:baseline;gap:5px}
.countdown-value{font-size:42px;font-weight:500;line-height:1.3;min-width:1.4em;text-align:center}
.countdown-unit{font-size:15px}
.countdown-note{margin-top:18px;text-align:center;font-size:14px;line-height:1.9;color:var(--greige-dark)}
.concerns-section{padding:54px 27px 46px;background:var(--paper)}
.concerns-section .section-title{font-size:25px;line-height:1.65;letter-spacing:.065em}
.concerns-section .section-title>span{color:#947044}
.concerns-section .section-title::after{margin-bottom:17px}
.concerns-list{list-style:none;padding:0;margin:0}
.concerns-list li{display:flex;align-items:flex-start;gap:13px;padding:20px 0;border-bottom:1px solid #c4a57b38}
.concerns-list li:last-child{border-bottom:0}
.concern-check{position:relative;flex:0 0 18px;width:18px;height:18px;margin-top:7px;border:1px solid #c4a57b9c;border-radius:50%;background:#f2ebe35c}
.concern-check::after{content:'';position:absolute;left:5px;top:3px;width:5px;height:8px;border-right:1px solid #987442;border-bottom:1px solid #987442;transform:rotate(40deg)}
.concerns-list p{font-size:16px;line-height:1.9;letter-spacing:.01em}
.concerns-list strong{font-weight:500;color:#806139}
.story-section{padding:45px 27px 48px}
.story-section .section-title{font-size:23px;line-height:1.8;letter-spacing:.035em}
.story-lead{font-size:16px;line-height:2;letter-spacing:.01em}
.reason-section{padding-top:5px}
.reason-list{margin:28px 0 0}
.reason-list>div{padding:0 0 0 16px;border-left:1px solid #c4a57b85}
.reason-list>div+div{margin-top:27px}
.reason-list dt{font-size:16px;font-weight:500;line-height:1.8;color:#89683e}
.reason-list dd{margin:8px 0 0;font-size:15px;line-height:1.95;color:var(--greige-dark)}
.story-bridge{margin-top:33px;padding-top:26px;border-top:1px solid #c4a57b40;text-align:center;font-size:17px;line-height:1.95}
.story-bridge strong{font-weight:500;color:#947044}
.habits-section{margin-inline:12px;padding-inline:24px;border-radius:32px;background:var(--warm)}
.habits-list{padding:0;margin:28px 0 0;list-style:none}
.habits-list li{display:flex;align-items:flex-start;gap:14px;padding:23px 0}
.habits-list li+li{border-top:1px solid #c4a57b45}
.habits-list li:first-child{padding-top:0}
.habits-list li:last-child{padding-bottom:0}
.habit-number{font-size:34px;color:#a3875d;line-height:1.2;flex:0 0 33px}
.habits-list h3{margin:0;font-size:16px;font-weight:500;line-height:1.85;color:#806139}
.habits-list p{margin-top:9px;font-size:15px;line-height:1.95}
.reminder-section{padding:49px 22px 46px}
.reminder-section .story-lead{text-align:center;font-size:15px;line-height:2.05}
.reminder-lessons{margin-top:28px;padding:25px 23px;border-radius:27px;background:var(--warm)}
.reminder-lessons>div+div{margin-top:25px;padding-top:25px;border-top:1px solid #c4a57b55}
.reminder-label{font-size:12px;letter-spacing:.06em;color:var(--sub)}
.reminder-lessons h3{margin:9px 0 10px;font-size:18px;font-weight:400;line-height:1.8;color:#89683e}
.reminder-lessons h3+p{font-size:15px;line-height:1.95}
.reminder-teacher{margin-top:29px;text-align:center;font-size:17px;line-height:1.85}
.reminder-teacher .en{font-size:1.3em}
.reminder-schedule{margin:22px 0 30px;text-align:center;font-size:15px;line-height:1.9;color:var(--greige-dark)}
.reminder-schedule .en{font-size:1.5em}
.reminder-schedule p:last-child{margin-top:7px;font-size:14px}
.vision-section{padding:48px 22px 48px;background:linear-gradient(180deg,#f2ebe3 0%,#faf7f3 330px);border-radius:34px 34px 0 0}
.vision-eyebrow{text-align:center;font-size:12px;letter-spacing:.1em;color:#9b7c50;margin-bottom:13px}
.vision-section>.section-title{font-size:26px;line-height:1.7;letter-spacing:.07em}
.vision-intro{text-align:center;font-size:15px;line-height:2.05}
.vision-piece{margin:35px 0 0}
.vision-piece+.vision-piece{margin-top:42px}
.vision-image{width:100%;height:auto}
.vision-marble{border-radius:58px 16px 16px 16px}
.vision-piece figcaption{padding:19px 7px 0}
.vision-number{color:#b49a70;font-size:26px;line-height:1.1;margin-bottom:7px}
.vision-piece h3{margin:0 0 11px;font-size:19px;font-weight:400;line-height:1.8;letter-spacing:.02em;color:#806139}
.vision-piece figcaption>p:last-child{font-size:15px;line-height:1.95}
.vision-video-wrap{position:relative;border-radius:18px 18px 58px 18px;overflow:hidden;background:#e7dfd4;aspect-ratio:4/5}
.vision-video{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.vision-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;justify-content:center;padding:14px 19px;border:1px solid #fff9ebcc;border-radius:999px;background:#fffaf0e6;box-shadow:0 4px 22px #49372122;color:#725637;font-family:inherit;font-size:14px;white-space:nowrap;cursor:pointer}
.vision-play[hidden]{display:none}
.vision-play svg{width:19px;height:19px;flex-shrink:0}
.vision-play:focus-visible{outline:2px solid #96703c;outline-offset:4px}
.vision-texture{aspect-ratio:4/5;object-fit:cover;object-position:50% 66%;border-radius:58px 18px 18px 18px}
.vision-reference{margin-top:24px;color:var(--sub);font-size:12px;line-height:1.9;text-align:center}
.vision-invitation{margin:32px 0 30px;padding:27px 8px 0;border-top:1px solid #c4a57b55;text-align:center}
.vision-invitation h3{margin:0 0 15px;font-size:23px;font-weight:400;line-height:1.8;color:#806139;letter-spacing:.04em}
.vision-invitation p{font-size:14px;line-height:2}
@keyframes cta-shine{0%,55%{left:-70%}85%,100%{left:140%}}
@media(max-width:360px){.info-section{padding-inline:20px}.lesson-list p{font-size:15px}.countdown{gap:7px}.countdown-value{font-size:36px}.countdown-unit{font-size:13px}}
@media(prefers-reduced-motion:reduce){.cta{transition:none}.cta::after{animation:none;display:none}}

/* Keep Japanese words and particles together; only explicit wbr/br may wrap. */
.lp{word-break:keep-all;overflow-wrap:normal;line-break:strict}
.lesson-list p,.concerns-list p,.habits-list li>div{min-width:0}
.event-repeat{padding-top:4px}
.practice-section{padding:48px 22px 48px;background:var(--paper)}
.practice-section>.section-title{font-size:26px;line-height:1.75;letter-spacing:.045em}
.practice-piece{margin:35px 0 0}
.practice-piece+.practice-piece{margin-top:39px}
.practice-piece img{width:100%;height:auto;border-radius:44px 16px 16px 16px}
.practice-piece .practice-nail{aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:16px 16px 44px 16px}
.practice-piece figcaption{padding:20px 7px 0}
.practice-piece h3{margin:0 0 10px;color:#806139;font-size:20px;font-weight:400;line-height:1.8;letter-spacing:.02em}
.practice-piece figcaption p{font-size:15px;line-height:2}
.practice-video-wrap{aspect-ratio:4/5}
.faq-section,.profile-section{padding:42px 24px}
.faq-section{background:var(--warm);border-radius:32px 32px 0 0}
.faq-list,.profile-history{margin:0;padding:0}
.faq-list>div{padding:18px 0;border-top:1px solid #c4a57b60}
.faq-list dt{font-size:17px;color:#806139;font-weight:500}
.faq-list dd{margin:9px 0 0;font-size:15px;line-height:1.95}
.faq-list dt,.faq-list dd{position:relative;padding-left:28px}
.faq-list dt::before,.faq-list dd::before{position:absolute;left:0;color:#99764a;font-family:'Cormorant Garamond',serif;font-size:21px;line-height:1.3}
.faq-list dt::before{content:"Q."}
.faq-list dd::before{content:"A."}
.faq-date{white-space:nowrap}
.profile-portrait{width:100%;height:auto;border-radius:48px 18px 18px 18px}
.profile-name{text-align:center;margin:24px 0}
.profile-name img{width:175px;margin:0 auto 10px}
.profile-name p{font-size:17px}
.profile-name strong{font-size:24px;font-weight:500;margin-left:.35em}
.profile-history{padding-left:1.1em;font-size:15px;line-height:1.95}
.profile-history li+li{margin-top:13px}
.profile-history li::marker{color:#a38458}
.final-reservation{padding-top:0}
.vision-invitation h3{margin-bottom:0}
@media(max-width:360px){.story-section{padding-inline:22px}.habits-section{padding-inline:18px}.habits-list li{gap:10px}.habit-number{flex-basis:28px;font-size:30px}.reminder-lessons{padding-inline:18px}.statement{font-size:17px;letter-spacing:.02em}.cta{gap:10px;font-size:16px;letter-spacing:.045em}.cta-arrow{width:32px;height:32px}.concerns-list p{font-size:15px}}
