:root{
  --sumi:#24211e;--sumi-2:#2e2a26;--kinari:#f7f3eb;--kinari-2:#efe8db;--shu:#a9442f;--shu-light:#e0977a;
  --ink:#2b2622;--muted:#6b625a;--line:#d9cfbf;
  --en:'Jost',system-ui,sans-serif;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP','Hiragino Sans',sans-serif;
  --header:76px;--pad:max(6vw,calc((100vw - 1200px)/2))
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header)}
body{margin:0;background:var(--kinari);color:var(--ink);font:16px/2 var(--sans);letter-spacing:.04em;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure,ul,dl,dd{margin:0}
ul{padding:0;list-style:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--shu-light);outline-offset:4px}
.skip-link{position:fixed;top:-80px;left:12px;z-index:200;background:#fff;padding:10px 14px}
.skip-link:focus{top:12px}
.en-num{font-family:var(--en);letter-spacing:.06em}

/* header */
.header{position:sticky;top:0;z-index:50;height:var(--header);display:flex;align-items:center;gap:32px;padding-right:3vw;background:var(--sumi);color:var(--kinari)}
.logo{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:0 26px;background:var(--kinari);color:var(--sumi);line-height:1}
.logo-en{font:500 1.9rem/1 var(--en);letter-spacing:.12em}
.dot{color:var(--shu)}
.logo-ja{font:500 .75rem/1 var(--serif);letter-spacing:.5em;margin-top:6px;padding-left:.5em}
.nav{display:flex;gap:26px;margin-left:auto;font:500 .9375rem/1 var(--en);letter-spacing:.12em}
.nav a{padding:10px 0;position:relative}
.nav a:after{content:'';position:absolute;left:0;bottom:2px;width:0;height:1px;background:currentColor;transition:width .3s}
.nav a:hover:after{width:100%}
.header-cta{border:1px solid var(--kinari);border-radius:999px;padding:9px 22px;font-size:.875rem;letter-spacing:.1em;transition:background .3s,color .3s}
.header-cta:hover{background:var(--kinari);color:var(--sumi)}

/* key visual */
.kv{position:relative;height:calc(100svh - var(--header));min-height:520px;overflow:hidden;background:var(--sumi);color:#fff}
.kv-slides,.kv-slide{position:absolute;inset:0}
.kv-slide{display:grid;grid-template-columns:1fr;opacity:0;transition:opacity 1.6s ease}
.kv-slide.is-split{grid-template-columns:1fr 1fr}
.kv-slide.is-active{opacity:1}
.kv-slide img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);min-width:0;transform:scale(1.08);transition:transform 7s linear}
.kv-slide.is-active img{transform:scale(1)}
.kv:after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,17,15,.3) 0%,rgba(20,17,15,0) 30%,rgba(20,17,15,.1) 50%,rgba(20,17,15,.6) 100%);pointer-events:none}
.kv-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:56px 0;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.45);pointer-events:none}
/* Title sits low: faces are in the upper half of the photos */
.kv h1{display:flex;flex-direction:column;align-items:center;font-weight:400}
.kv-en{font:400 clamp(5rem,15vw,12rem)/1 var(--en);letter-spacing:.2em;padding-left:.2em}
.kv-ja{font:500 clamp(1.1rem,2vw,1.5rem)/1 var(--serif);letter-spacing:1em;padding-left:1em;margin-top:18px}
.kv-tagline{font:500 clamp(1rem,1.6vw,1.25rem)/1.8 var(--serif);letter-spacing:.3em;margin-top:28px}
.kv-concert{position:absolute;left:var(--pad);bottom:36px;z-index:3;display:grid;gap:2px;padding:16px 26px 16px 22px;border-left:3px solid var(--shu-light);background:rgba(36,33,30,.72);backdrop-filter:blur(6px);transition:background .3s}
.kv-concert:hover{background:rgba(169,68,47,.9)}
.kv-concert-label{font:500 .75rem/1.4 var(--en);letter-spacing:.2em;color:var(--shu-light)}
.kv-concert:hover .kv-concert-label{color:#fff}
.kv-concert-date{font:500 1.1rem/1.4 var(--en);letter-spacing:.1em}
.kv-concert-title{font:500 1.1rem/1.5 var(--serif);letter-spacing:.1em}
.kv-pause{position:absolute;right:var(--pad);bottom:36px;z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(36,33,30,.4);color:#fff;font-size:.9rem;cursor:pointer}

/* blocks */
.block{padding:130px 0 140px;overflow-x:clip}
.inner{padding:0 var(--pad)}
.tone-sumi{background:var(--sumi);color:var(--kinari)}
.tone-kinari{background:var(--kinari);color:var(--ink)}
.tone-shu{background:var(--shu);color:#fff}
.big-title{white-space:nowrap;font:500 clamp(3.6rem,9vw,7rem)/1.02 var(--en);letter-spacing:.04em;text-transform:uppercase;margin-bottom:34px}
.big-title:after{content:attr(data-ja);display:block;font:500 clamp(.95rem,1.4vw,1.15rem)/1.6 var(--serif);letter-spacing:.3em;margin-top:18px}
.tone-sumi .big-title{color:var(--shu-light)}
.tone-sumi .big-title:after{color:var(--kinari)}#kanzan-title:after{font-size:clamp(1.6rem,2.4vw,1.85rem);letter-spacing:.35em}
.tone-kinari .big-title{color:var(--shu)}
.tone-kinari .big-title:after{color:var(--ink)}
.tone-shu .big-title,.tone-shu .big-title:after{color:var(--kinari)}
.body{font-size:.9375rem;line-height:2.1;max-width:34em}
.tone-kinari .body{color:var(--muted)}
.lead{font:500 clamp(1.05rem,1.6vw,1.3rem)/2 var(--serif);letter-spacing:.08em;margin-bottom:64px}
.sub-title{font:500 1.25rem/1.8 var(--serif);letter-spacing:.12em;opacity:.9}

/* letter animation */
.js-title .ch{display:inline-block;overflow:hidden;vertical-align:bottom}
.js-title .ch>span{display:inline-block;transform:translateY(105%);transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 55ms)}
.js-title.is-in .ch>span{transform:none}
.js-title.is-split:after{opacity:0;transform:translateY(12px);transition:opacity .8s .45s,transform .8s .45s}
.js-title.is-split.is-in:after{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(36px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.8,.2,1)}
.js .reveal.is-in{opacity:1;transform:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:58px;padding:16px 28px;font-weight:700;font-size:.9375rem;letter-spacing:.08em;transition:transform .25s,background .25s}
.btn:hover{transform:translateY(-2px)}
.btn-shu{background:var(--shu);color:#fff}
.btn-shu:hover{background:#8e3624}
.btn-line{background:#06803f;color:#fff}
.btn-line:hover{background:#056633}
.pill{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 24px;border-radius:999px;background:var(--kinari);color:var(--sumi);font:500 .875rem/1.4 var(--sans);letter-spacing:.08em;transition:transform .25s}
.pill:hover{transform:translateY(-2px)}
.pill-dark{background:var(--sumi);color:var(--kinari)}
.round{width:46px;height:46px;border-radius:50%;border:0;background:var(--kinari);color:var(--sumi);font-size:1.1rem;cursor:pointer}

/* kanzan */
.kanzan-grid{display:grid;grid-template-columns:1.05fr 1fr;column-gap:7%;row-gap:72px;align-items:center}.kanzan-head{grid-column:1/-1;text-align:center;padding:12px 0 8px}.kanzan-head .sub-title{margin-top:28px}.kanzan-head .kanzan-catch{margin:40px 0 28px}.kanzan-head .kanzan-lead{line-height:2.2;margin-bottom:0}.kanzan-desc{grid-column:1/-1;justify-self:center;max-width:42em;padding-top:56px;border-top:1px solid rgba(247,243,235,.2)}.kanzan-desc .body{font-size:1.0625rem;line-height:2.1}.kanzan-desc .body:first-child{margin-top:0}.kanzan-info .details{margin-top:0}.kanzan-bonus{margin:0 0 32px;padding:20px 24px;border:1px solid var(--shu-light);font-size:.9375rem;line-height:1.9}.kanzan-bonus-label{display:inline-block;margin-bottom:8px;padding:2px 12px;background:var(--shu);color:#fff;font-size:.75rem;letter-spacing:.12em}.kanzan-bonus-gift{color:var(--shu-light);font-weight:700}
.kanzan-catch{font:500 clamp(1.3rem,2.2vw,1.8rem)/1.6 var(--serif);letter-spacing:.14em;color:var(--shu-light);margin:22px 0 16px}
.kanzan-lead{font:500 1.15rem/1.9 var(--serif);letter-spacing:.06em;margin-bottom:14px}
.kanzan .body{opacity:.85}.kanzan-about{margin-top:1.2em}.nw{white-space:nowrap}.artist .artist-video{grid-column:1/-1;margin-top:16px;aspect-ratio:auto;overflow:visible;width:100%}.artist-video figcaption{color:var(--muted);line-height:1.8}.artist-video figcaption a{color:var(--shu);border-bottom:1px solid currentColor;white-space:nowrap}
.details{margin:34px 0 36px;border-top:1px solid rgba(247,243,235,.2)}
.details>div{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid rgba(247,243,235,.2)}
.details dt{font-size:.8125rem;color:var(--shu-light)}
.details dd{font-size:.9375rem;line-height:1.9}
.details small{opacity:.75;font-size:.8125rem}
.performers li{margin-top:6px}
.performers li span{display:block;font-size:.75rem;opacity:.7}
.kanzan-grid{align-items:start}.video-frame{position:relative;aspect-ratio:16/9;background:#000;box-shadow:0 30px 60px rgba(0,0,0,.4)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-item figcaption{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.75rem;margin-top:12px}.kanzan-visual figcaption a{color:var(--shu-light);border-bottom:1px solid currentColor}.kanzan-visual .video-item+.video-item{margin-top:36px}.profile-video{display:grid;grid-template-columns:1fr 2fr;gap:6%;margin-top:70px;padding-top:50px;border-top:1px solid var(--line)}.profile-video figcaption{color:var(--muted);line-height:1.8}.profile-video-text{font-size:.9375rem;line-height:2.1;color:var(--muted)}.profile-video figcaption a{color:var(--shu);border-bottom:1px solid currentColor;white-space:nowrap}

/* about */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.three-item figure{aspect-ratio:3/4;overflow:hidden;background:var(--kinari-2)}
.three-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.three-item:hover img{transform:scale(1.04)}
.three-item:nth-child(2){margin-top:60px}
.three-item:nth-child(3){margin-top:120px}
.three-item h3{font:500 1.25rem/1.6 var(--serif);letter-spacing:.14em;color:var(--shu);margin:22px 0 10px}
.three-item p{font-size:.875rem;line-height:2;color:var(--muted)}
.profile{display:grid;grid-template-columns:1fr 2fr;gap:6%;margin-top:110px;padding-top:50px;border-top:1px solid var(--line)}
.profile-name{font:500 2rem/1.4 var(--serif);letter-spacing:.2em}
.profile-heading{font:500 1.5rem/1.5 var(--en);letter-spacing:.12em;color:var(--shu);margin-bottom:24px}
.profile-heading span{display:block;font:400 .875rem/1.8 var(--sans);letter-spacing:.08em;color:var(--muted);margin-top:4px}
.profile-name span{display:block;font:500 1rem/1.6 var(--en);letter-spacing:.3em;color:var(--shu);margin-top:6px}
.profile-text p{font-size:.9375rem;line-height:2.2;color:var(--muted)}
.profile-text p+p{margin-top:1em}
.links{display:flex;gap:30px}
.links a{color:var(--ink);font:500 .9375rem var(--en);letter-spacing:.1em;border-bottom:1px solid var(--ink);padding-bottom:4px}

/* music */
.music-head{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:center;margin-bottom:70px}
.music-visual{aspect-ratio:4/3;overflow:hidden}
.music-visual img{width:100%;height:100%;object-fit:cover}














.music-head{margin-bottom:40px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.cover-stage{height:clamp(300px,36vw,460px);position:relative;perspective:1100px;overflow:clip;touch-action:pan-y;isolation:isolate;margin:0 calc(var(--pad) * -1)}
.album-cover{--position:0;--depth:0;appearance:none;position:absolute;left:50%;top:48%;width:clamp(190px,26vw,330px);aspect-ratio:1;border:0;background:#fff;padding:0;cursor:pointer;transform:translate(-50%,-50%) translateX(calc(var(--position)*64%)) translateZ(calc(var(--depth)*-135px)) rotateY(calc(var(--position)*-30deg));transition:transform 1.25s cubic-bezier(.22,.68,.16,1),filter 1.1s;box-shadow:0 20px 34px rgba(40,12,6,.35);filter:brightness(calc(1 - var(--depth)*.14));transform-style:preserve-3d;-webkit-user-select:none;user-select:none}
.album-cover img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.album-cover:focus-visible{outline:3px solid var(--kinari);outline-offset:7px}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:20px}
.carousel-arrow{width:46px;height:46px;border:0;border-radius:50%;background:var(--kinari);color:var(--sumi);font-size:1.2rem;cursor:pointer;transition:transform .25s}
.carousel-arrow:hover{transform:translateY(-2px)}
.album-count{font:500 1rem var(--en);letter-spacing:.12em;min-width:70px;text-align:center}
.carousel-play{font:inherit;font-size:.8125rem;color:var(--kinari);background:transparent;border:1px solid rgba(247,243,235,.6);border-radius:999px;cursor:pointer;padding:8px 16px;min-width:112px}
.album-dots{display:flex;gap:4px;justify-content:center;margin:10px 0 22px}
.album-dot{position:relative;width:32px;height:32px;border:0;background:transparent;cursor:pointer;padding:0}
.album-dot:after{content:'';position:absolute;inset:12px;border-radius:50%;background:rgba(247,243,235,.45);transition:background .3s,transform .3s}
.album-dot[aria-pressed=true]:after{background:var(--kinari);transform:scale(1.35)}
.album-info{max-width:600px;margin:0 auto;min-height:220px;text-align:center}
.album-info .release-type{font:500 .75rem/1.4 var(--en);letter-spacing:.16em;opacity:.85;margin-bottom:8px}
.album-info h3{font:500 clamp(1.6rem,3vw,2.1rem)/1.5 var(--serif);letter-spacing:.1em}
.album-description{font-size:.9375rem;line-height:2;margin-top:14px;opacity:.92}
.album-info .text-link{display:inline-block;margin-top:16px;font-weight:700;font-size:.875rem;border-bottom:1px solid currentColor;padding-bottom:3px}
.release-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:36px 24px}
.release-grid[hidden]{display:none}
.release-cover img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff}
.release .release-type{font:500 .6875rem var(--en);letter-spacing:.14em;margin-top:14px}
.release h3{font:500 1.25rem/1.5 var(--serif)}
.release-description{font-size:.8125rem;line-height:1.9}
.release .text-link{font-weight:700;font-size:.8125rem}
.music-more{text-align:center;margin-top:34px}

/* produce */
.produce-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:6%;align-items:start}.produce .big-title{font-size:clamp(3rem,6.4vw,5.6rem)}
.artist{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:center}
.artist figure{aspect-ratio:4/5;overflow:hidden}
.artist img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.artist h3{font:500 1.8rem/1.4 var(--serif);letter-spacing:.14em;margin-bottom:16px}
.artist h3 span{font:500 .9375rem var(--en);letter-spacing:.25em;color:var(--shu);margin-left:12px}
.artist p{font-size:.875rem;line-height:2.1;color:var(--muted)}
.artist p+p{margin-top:.8em}
.artist .pill{margin-top:22px}

/* gallery */
.gallery .inner{margin-bottom:60px}
.gallery .body{opacity:.85}
.marquee{overflow-x:auto;scrollbar-width:none}
.marquee::-webkit-scrollbar{display:none}
.marquee-track{display:flex;gap:16px;width:max-content;padding:0 var(--pad)}
.marquee-track li{height:clamp(220px,28vw,360px)}
.marquee-track img{height:100%;width:auto}
.marquee.is-running{overflow:hidden}
.marquee.is-running .marquee-track{padding:0;animation:marquee 60s linear infinite}
.marquee.is-running:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* live */
.live-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:center}
.live-item{display:grid;grid-template-columns:96px 1fr 24px;gap:24px;align-items:center;margin:44px 0 40px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:1.4rem}
.live-date{display:flex;flex-direction:column;font-size:.8125rem;line-height:1.3}
.live-date strong{font:500 2rem/1.2 var(--en)}
.live-status{display:block;font-size:.75rem;color:var(--shu);font-weight:700}
.live-name{display:block;font:500 1.4rem/1.6 var(--serif);letter-spacing:.08em}
.live-place{display:block;font-size:.8125rem;color:var(--muted)}
.live-item:hover .live-name{color:var(--shu)}
.line-box{background:var(--kinari-2);padding:32px 34px}
.line-title{font:500 1.2rem/1.7 var(--serif);letter-spacing:.08em}
.line-box p:not(.line-title){font-size:.875rem;color:var(--muted);margin:6px 0 20px}
.live-visual{aspect-ratio:4/5;overflow:hidden}
.live-visual img{width:100%;height:100%;object-fit:cover}

/* contact */
.contact{padding:120px 0}
.contact-inner{text-align:center;display:flex;flex-direction:column;align-items:center}
.contact .body{margin-bottom:34px}

/* footer */
.footer{display:flex;align-items:center;gap:40px;padding:0 var(--pad) 0 0;background:var(--sumi);color:var(--kinari);min-height:120px}
.logo-footer{height:120px}
.footer p{font:500 .9375rem var(--serif);letter-spacing:.14em}
.footer small{margin-left:auto;font:400 .75rem var(--en);letter-spacing:.1em;opacity:.7}
.mobile-cta{display:none}

/* tablet */
@media (max-width:1000px){
  .nav{display:none}
  .header-cta{margin-left:auto}
  .kanzan-grid,.music-head,.produce-grid,.live-grid{grid-template-columns:1fr;gap:56px}.kanzan-visual{position:static}
  .three{gap:18px}
  .artist{grid-template-columns:200px 1fr}
}
/* tablet: keep the title above the NEXT CONCERT box */
@media (min-width:761px) and (max-width:960px){
  .kv-copy{padding-bottom:150px}
}

/* mobile */
@media (max-width:760px){
  :root{--header:60px;--pad:22px}
  body{padding-bottom:58px}
  .logo{padding:0 16px}
  .logo-en{font-size:1.45rem}
  .logo-ja{font-size:.625rem}
  .header-cta{padding:7px 16px;font-size:.8125rem;margin-right:6px}
  .kv{height:calc(100svh - var(--header) - 58px);min-height:480px}
  .kv-slide.is-split{grid-template-columns:1fr}.kv-slide.is-split img+img{display:none}.kv-slide img{object-position:var(--mpos,var(--pos,50% 50%))}
  .kv-en{font-size:clamp(4rem,22vw,6rem)}
  .kv-copy{padding-bottom:124px}
  .kv-tagline{font-size:.9375rem;letter-spacing:.2em}
  .kv-concert{left:16px;bottom:18px;padding:12px 18px}
  .kv-concert-date,.kv-concert-title{font-size:.9375rem}
  .kv-pause{right:16px;bottom:18px;width:42px;height:42px}
  .block{padding:84px 0 92px}
  .big-title,.produce .big-title{font-size:clamp(2.8rem,14vw,4.4rem);margin-bottom:26px}
  .three{grid-template-columns:1fr;gap:44px}
  .three-item:nth-child(n){margin-top:0}
  .three-item figure{aspect-ratio:3/4}
  .three-item figure{background:transparent}.three-item img{object-fit:contain}
  .profile{grid-template-columns:1fr;gap:20px;margin-top:70px}.profile-video{grid-template-columns:1fr;gap:24px;margin-top:50px}
  .artist{grid-template-columns:1fr;gap:24px}
  .artist figure{width:72%}
  
  
  
  .live-item{grid-template-columns:72px 1fr 18px;gap:14px}
  .live-date strong{font-size:1.6rem}
  .line-box{padding:26px 22px}
  .btn{width:100%}
  .footer{flex-direction:column;align-items:flex-start;gap:14px;padding:0 0 36px}
  .logo-footer{height:90px}
  .footer p,.footer small{margin:0 22px}
  .mobile-cta{display:grid;grid-template-columns:1.4fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;padding-bottom:env(safe-area-inset-bottom);background:var(--sumi);box-shadow:0 -4px 20px rgba(0,0,0,.2)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;min-height:58px;color:#fff;font-weight:700;font-size:.875rem;letter-spacing:.06em}
  .mobile-cta a:first-child{background:var(--shu)}
  .mobile-cta a:last-child{background:#06803f}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition-duration:.01ms!important;animation:none!important}
  .reveal,.js-title .ch>span{opacity:1!important;transform:none!important}
}

/* Official logo supplied by Nobu, 2026-10-09. Keep source image unchanged. */
.logo{flex-shrink:0}
.logo-mark{width:auto;height:calc(var(--header) - 10px);max-width:none;object-fit:contain;mix-blend-mode:multiply}
.logo-footer .logo-mark{height:104px}
@media(max-width:760px){.logo-footer .logo-mark{height:78px}}
