
:root{
  --bg:#fbfaf6;--bg-soft:#f3f1e9;--card:#fff;--line:rgba(20,20,18,.09);
  --ink:#181816;--dim:#6e6e68;
  --coral:#ff5a5f;--coral-s:#ffe3e1;
  --mint:#1fb6a6;--mint-s:#dff5ef;
  --yellow:#ffc83d;
  --g-hh:#ff5a5f;--g-jazz:#f2a93c;--g-kpop:#2da9e0;--g-ghh:#ff86ab;--g-vocal:#8c7ae6;
  --r:8px;--maxw:1180px;--sh:0 12px 32px rgba(20,20,18,.07);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:"Noto Sans JP",sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:20px;height:1px;background:var(--coral);}
.disp{font-family:"Anton","Noto Sans JP",sans-serif;font-weight:400;letter-spacing:.01em;line-height:.95;}
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap;}
.sh h2{font-size:clamp(32px,5vw,52px);margin-top:10px;}
.sh p{color:var(--dim);max-width:360px;font-size:14px;}
section{padding:88px 0;}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s,transform .65s;}
.reveal.in{opacity:1;transform:translateY(0);}

/* HEADER */
header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(251,250,246,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav{max-width:var(--maxw);margin:0 auto;padding:0 28px;height:68px;display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:"Anton",sans-serif;font-size:22px;letter-spacing:.04em;}
.logo em{font-style:normal;color:var(--coral);}
.nl{display:flex;gap:28px;align-items:center;}
.nl a{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);transition:color .2s;border-bottom:1px solid transparent;padding:3px 0;}
.nl a:hover{color:var(--ink);border-color:var(--coral);}
.ncta{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.06em;background:var(--coral);color:#fff;padding:10px 16px;border-radius:var(--r);text-transform:uppercase;font-weight:700;transition:all .2s;}
.ncta:hover{background:#ff7176;transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,90,95,.28);}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{width:22px;height:2px;background:var(--ink);}

/* HERO SLIDER */
.hero{height:100vh;position:relative;overflow:hidden;}
.slides{display:flex;height:100%;transition:transform .9s cubic-bezier(.4,0,.2,1);}
.slide{min-width:100%;height:100%;position:relative;flex-shrink:0;}
.slide img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.slide::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.38) 50%,rgba(0,0,0,.18) 100%);}
.slide-copy{
  position:absolute;bottom:0;left:0;right:0;
  padding:0 8% 7%;z-index:2;color:#fff;
}
.studio-name{
  font-family:"Anton",sans-serif;
  font-size:clamp(52px,10vw,128px);
  line-height:.88;letter-spacing:.02em;margin-bottom:10px;
}
.studio-name em{font-style:normal;color:var(--coral);}
.tagline{
  font-family:"Anton",sans-serif;
  font-size:clamp(16px,2.8vw,36px);
  letter-spacing:.08em;font-weight:400;
  color:rgba(255,255,255,.92);margin-bottom:14px;
}
.sub-copy{
  font-size:clamp(11px,1.1vw,14px);
  color:rgba(255,255,255,.72);
  letter-spacing:.05em;line-height:1.85;
  max-width:520px;
}
.slide-actions{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
.btn{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.06em;padding:14px 24px;border-radius:var(--r);text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:all .2s;}
.btn-p{background:var(--coral);color:#fff;}
.btn-p:hover{background:#ff7176;transform:translateY(-2px);box-shadow:0 10px 22px rgba(255,90,95,.3);}
.btn-g{background:rgba(255,255,255,.15);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.5);color:#fff;}
.btn-g:hover{background:rgba(255,255,255,.28);transform:translateY(-2px);}
.slide-dots{position:absolute;bottom:28px;right:8%;display:flex;gap:8px;z-index:3;}
.dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);border:none;cursor:pointer;transition:all .3s;}
.dot.active{background:#fff;width:22px;border-radius:4px;}
.slide-prev,.slide-next{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.slide-prev{left:24px;}.slide-next{right:24px;}
.slide-prev:hover,.slide-next:hover{background:rgba(255,255,255,.32);}

/* PICK UP */
.pickup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}
.pu-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;}
.pu-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(20,20,18,.1);}
.pu-img{height:200px;overflow:hidden;}
.pu-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.pu-card:hover .pu-img img{transform:scale(1.05);}
.pu-body{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column;}
.pu-badge{display:inline-block;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.06em;padding:4px 10px;border-radius:20px;margin-bottom:10px;color:#fff;text-transform:uppercase;}
.pu-body h3{font-size:17px;font-weight:700;margin-bottom:4px;}
.pu-body small{font-size:12px;color:var(--dim);}
.pu-body .schedule{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--ink);margin-top:12px;background:var(--bg-soft);padding:8px 12px;border-radius:4px;}
.pu-link{margin-top:14px;font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--coral);letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;transition:gap .2s;display:flex;align-items:center;gap:6px;}
.pu-card:hover .pu-link{gap:10px;}

/* TIMETABLE */
.tt-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:6px;}
.tt-day{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.04em;padding:9px 16px;border:1px solid var(--line);border-radius:var(--r);color:var(--dim);white-space:nowrap;cursor:pointer;background:#fff;transition:all .2s;}
.tt-day.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.tt-day:hover:not(.active){border-color:var(--ink);}
.tt-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 28px;}
.tt-chip{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.04em;padding:6px 14px;border-radius:20px;cursor:pointer;border:1px solid var(--line);color:var(--dim);background:#fff;transition:all .2s;text-transform:uppercase;}
.tt-board{border-top:1px solid var(--line);}
.tt-row{display:grid;grid-template-columns:118px 4px 1fr auto;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);}
.tt-time{font-family:"JetBrains Mono",monospace;font-size:13px;}
.tt-bar{height:28px;border-radius:3px;}
.tt-class b{font-size:15px;display:block;}
.tt-class span{font-size:12px;color:var(--dim);}
.tt-genre{font-family:"JetBrains Mono",monospace;font-size:10px;padding:5px 11px;border-radius:20px;color:#fff;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.tt-empty{display:none;padding:36px 0;color:var(--dim);font-family:"JetBrains Mono",monospace;font-size:13px;}
.tt-empty.show{display:block;}

/* INSTRUCTORS */
.instr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px;}
.instr-card{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:transform .25s;text-decoration:none;}
.instr-card:hover{transform:translateY(-4px);}
.instr-photo{width:120px;height:120px;border-radius:50%;overflow:hidden;border:3px solid var(--line);margin-bottom:12px;transition:border-color .25s,box-shadow .25s;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;}
.instr-card:hover .instr-photo{border-color:var(--coral);box-shadow:0 8px 24px rgba(255,90,95,.22);}
.instr-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.instr-initial{font-family:"Anton",sans-serif;font-size:34px;color:#fff;}
.instr-name{font-family:"Anton",sans-serif;font-size:18px;letter-spacing:.02em;margin-bottom:4px;color:var(--ink);}
.instr-desc{font-size:11px;color:var(--dim);line-height:1.5;}
.instr-cta{margin-top:8px;font-family:"JetBrains Mono",monospace;font-size:10px;color:var(--coral);letter-spacing:.06em;text-transform:uppercase;visibility:hidden;}
.instr-card:hover .instr-cta{visibility:visible;}

/* PRICE */
.price-table{width:100%;border-collapse:collapse;font-size:14px;}
.price-table th{text-align:left;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:14px 0;border-bottom:1px solid var(--line);font-weight:400;}
.price-table td{padding:16px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.price-table td:first-child{font-weight:700;width:46%;}
.price-table td:last-child{font-family:"JetBrains Mono",monospace;color:var(--dim);font-size:13px;}
.price-table .num{color:var(--ink);font-size:15px;}
.price-note{margin-top:18px;font-size:12px;color:var(--dim);background:var(--bg-soft);padding:16px 20px;border-radius:var(--r);line-height:1.9;}

/* TRIAL */
.trial{background:linear-gradient(135deg,var(--mint-s),var(--coral-s) 120%);border:1px solid var(--line);padding:72px 48px;text-align:center;border-radius:18px;}
.trial h2{font-size:clamp(30px,5vw,58px);margin-bottom:16px;}
.trial p{color:var(--dim);max-width:460px;margin:0 auto 32px;}
.trial-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{background:#333;transform:translateY(-2px);}
.btn-line{border:1px solid var(--line);color:var(--ink);background:#fff;}
.btn-line:hover{border-color:var(--ink);transform:translateY(-2px);}
.trial-sub{margin-top:24px;font-size:11px;color:var(--dim);font-family:"JetBrains Mono",monospace;}

/* NEWS */
.news-list{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.news-item{display:grid;grid-template-columns:130px 1fr 80px;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);transition:background .2s;}
.news-item:hover{background:var(--card);border-radius:var(--r);padding-left:12px;}
.news-date{font-family:"JetBrains Mono",monospace;color:var(--dim);font-size:12px;}
.news-tag{display:inline-block;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.06em;padding:3px 10px;border:1px solid var(--coral);color:var(--coral);border-radius:20px;margin-bottom:8px;text-transform:uppercase;}
.news-title{font-size:15px;font-weight:700;}
.news-title small{display:block;font-weight:400;color:var(--dim);font-size:12px;margin-top:3px;}
.news-arrow{justify-self:end;font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--dim);transition:transform .2s,color .2s;}
.news-item:hover .news-arrow{transform:translateX(5px);color:var(--coral);}
.news-note{margin-top:18px;font-size:11px;color:var(--dim);font-family:"JetBrains Mono",monospace;}

/* INSTAGRAM */
.insta-wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.insta-info .eyebrow{margin-bottom:12px;}
.insta-info h2{font-size:clamp(30px,4vw,48px);margin-bottom:16px;}
.insta-info p{color:var(--dim);font-size:14px;line-height:1.85;margin-bottom:24px;}
.insta-follow{display:inline-flex;align-items:center;gap:10px;font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.06em;color:var(--coral);text-transform:uppercase;border-bottom:1px solid var(--coral);padding-bottom:2px;transition:gap .2s;}
.insta-follow:hover{gap:14px;}
.insta-feed{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.insta-tile{aspect-ratio:1/1;border-radius:4px;overflow:hidden;position:relative;background:var(--bg-soft);}
.insta-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s;}
.insta-tile:hover img{transform:scale(1.07);}
.insta-tile-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);font-family:"JetBrains Mono",monospace;font-size:10px;color:rgba(255,255,255,.6);text-align:center;padding:8px;}
.insta-plugin-note{grid-column:1/-1;margin-top:10px;font-size:11px;color:var(--dim);font-family:"JetBrains Mono",monospace;background:var(--bg-soft);padding:10px 14px;border-radius:4px;}

/* NOTICE */
.notice-box{background:linear-gradient(135deg,var(--mint-s),#fff 80%);border:1px solid rgba(31,182,166,.25);border-radius:var(--r);padding:22px 24px;margin-top:28px;}
.notice-label{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mint);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.notice-label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);}
.notice-box p{font-size:13px;color:var(--dim);line-height:1.85;}

/* ACCESS */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.access-dl dt{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-top:22px;}
.access-dl dt:first-child{margin-top:0;}
.access-dl dd{font-size:16px;margin-top:5px;}
.map-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh);}
.map-wrap iframe{width:100%;height:100%;border:0;}
.socials{display:flex;gap:12px;margin-top:26px;}
.socials a{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;transition:all .2s;}
.socials a svg{width:16px;height:16px;fill:var(--dim);transition:fill .2s;}
.socials a:hover{border-color:var(--coral);transform:translateY(-3px);box-shadow:var(--sh);}
.socials a:hover svg{fill:var(--coral);}

/* FOOTER */
footer{background:var(--ink);color:#fff;padding:52px 0 32px;margin-top:0;}
.foot-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px;margin-bottom:44px;}
.foot-brand .logo{font-size:22px;color:#fff;}
.foot-brand .logo em{color:var(--coral);}
.foot-brand p{font-size:12px;color:rgba(255,255,255,.45);margin-top:10px;line-height:1.8;}
.foot-col h4{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px;}
.foot-col a{display:block;font-size:13px;color:rgba(255,255,255,.7);margin-bottom:10px;transition:color .2s;}
.foot-col a:hover{color:#fff;}
.foot-social{display:flex;gap:10px;margin-top:4px;}
.foot-social a{width:36px;height:36px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.foot-social a svg{width:15px;height:15px;fill:rgba(255,255,255,.55);transition:fill .2s;}
.foot-social a:hover{border-color:rgba(255,255,255,.6);}
.foot-social a:hover svg{fill:#fff;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.foot-bottom p{font-size:11px;color:rgba(255,255,255,.35);font-family:"JetBrains Mono",monospace;}
@media(max-width:760px){
  .foot-top{grid-template-columns:1fr;}
  .insta-wrap{grid-template-columns:1fr;}
  .news-item{grid-template-columns:1fr;gap:6px;}
  .news-arrow{display:none;}
}

@media(max-width:860px){
  .nl{position:fixed;top:68px;left:0;right:0;background:var(--bg);flex-direction:column;padding:22px 28px;gap:18px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .3s;z-index:90;}
  .nl.open{transform:translateY(0);}
  .ncta{display:none;}
  .burger{display:flex;}
  .access-grid{grid-template-columns:1fr;}
  .tt-row{grid-template-columns:90px 4px 1fr;}
  .tt-genre{display:none;}
  .trial{padding:48px 24px;}
}
