*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#0f0f0f;
  --paper:#f5f0e8;
  --red:#c41e1e;
  --gold:#c49a3c;
  --cream:#faf7f2;
}
html{scroll-behavior:smooth;background:var(--ink) !important}
body{
  background:var(--ink) !important;
  color:var(--paper) !important;
  font-family:'M PLUS Rounded 1c',sans-serif;
  overflow-x:hidden;
}
/* ── NOISE TEXTURE OVERLAY ── */
body::before{
  content:'';
  position:fixed;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none;
  z-index:1000;
  opacity:.4;
}

/* ── NAV ── */
nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:18px 40px;
  mix-blend-mode:normal;
}
.logo{
  font-family:'Noto Serif JP',serif;
  font-size:20px;
  font-weight:700;
  letter-spacing:0.15em;
  color:var(--paper);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
}
.logo-enso{
  width:38px;height:38px;
  flex-shrink:0;
  margin-inline-end:-15px;
  z-index:0;
  overflow:visible;
  opacity:0;
  animation:logoEnsoAppear .5s .9s ease forwards;
}
@keyframes logoEnsoAppear{to{opacity:1}}
.logo-enso path{fill:var(--red);opacity:0.88}
.logo-text{position:relative;z-index:1}
.logo-dot{
  width:8px;height:8px;
  background:var(--red);
  border-radius:50%;
  display:inline-block;
}
.nav-right{
  display:flex;
  align-items:center;
  gap:24px;
}
.nav-link{
  color:rgba(245,240,232,0.5);
  text-decoration:none;
  font-size:13px;
  font-weight:300;
  letter-spacing:0.06em;
  transition:color .2s;
}
.nav-link:hover{color:var(--paper)}
.nav-wa{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  background:transparent;
  border:1px solid #1a3a1a;
  color:var(--paper);
  padding:9px 18px;
  font-family:'M PLUS Rounded 1c',sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  cursor:pointer;
  text-decoration:none;
  overflow:hidden;
  transition:border-color .3s;
  direction:rtl;
}
.nav-wa::before{
  content:'';
  position:absolute;
  inset:0;
  background:#0d2b0d;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .4s cubic-bezier(.16,1,.3,1);
  z-index:0;
}
.nav-wa:hover::before{transform:scaleX(1)}
.nav-wa:hover{border-color:#2d5a2d}
.nav-wa-icon{
  position:relative;
  z-index:1;
  width:22px;height:22px;
  border:1px solid #2d5a2d;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:border-color .3s,background .3s;
}
.nav-wa:hover .nav-wa-icon{border-color:#4a9e4a;background:rgba(74,158,74,0.12)}
.nav-wa-icon svg{width:11px;height:11px;fill:#2d7a2d;transition:fill .3s}
.nav-wa:hover .nav-wa-icon svg{fill:#5cb85c}
.nav-wa-text{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:0px}
.nav-wa-label{font-size:8px;font-weight:700;letter-spacing:0.2em;color:#2d5a2d;line-height:1;transition:color .3s}
.nav-wa:hover .nav-wa-label{color:#4a9e4a}
.nav-wa-title{font-size:12px;font-weight:700;color:#c8e6c8;letter-spacing:0.04em;transition:color .3s}
.nav-wa:hover .nav-wa-title{color:#e8f5e8}
.nav-wa-arrow{position:relative;z-index:1;font-size:14px;color:#1a4d1a;transition:color .3s,transform .3s}
.nav-wa:hover .nav-wa-arrow{color:#4a9e4a;transform:translateX(-3px)}

/* ── HERO — MENU WALL ── */
.hero{
  min-height:100vh;
  display:grid;
  grid-template-rows:1fr;
  position:relative;
  overflow:hidden;
}

/* Big kanji in background */
.bg-kanji{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.bg-kanji span{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(280px,42vw,640px);
  font-weight:900;
  line-height:1;
  color:rgba(255,255,255,0.025);
  letter-spacing:-0.05em;
}

/* Red vertical stripe — like a ramen noren */
.noren{
  position:absolute;
  top:0;bottom:0;
  left:50%;
  width:1px;
  background:linear-gradient(to bottom, transparent 0%, rgba(196,30,30,0.4) 20%, rgba(196,30,30,0.4) 80%, transparent 100%);
  z-index:1;
}

/* Content */
.hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
  padding-top:80px;
}

/* ── LEFT: Studio name ── */
.hero-left{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:60px 48px 60px 48px;
  border-left:1px solid rgba(245,240,232,0.08);
  border-right:1px solid rgba(245,240,232,0.08);
}
.studio-label{
  font-size:11px;
  font-weight:300;
  letter-spacing:0.3em;
  color:rgba(245,240,232,0.4);
  margin-bottom:32px;
}
.studio-name{
  font-family:'Shippori Mincho','Noto Serif JP',serif;
  font-size:clamp(52px,6vw,86px);
  font-weight:800;
  line-height:1.05;
  letter-spacing:0.04em;
  margin-bottom:8px;
}
.studio-name-jp{
  font-family:'Shippori Mincho','Noto Serif JP',serif;
  font-size:clamp(16px,2vw,22px);
  font-weight:400;
  letter-spacing:0.25em;
  color:rgba(245,240,232,0.35);
  margin-bottom:48px;
}
.studio-desc{
  font-size:15px;
  font-weight:300;
  line-height:1.8;
  color:rgba(245,240,232,0.6);
  max-width:340px;
  margin-bottom:48px;
}

/* ── RIGHT: MENU BOARD ── */
.hero-right{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:60px 48px;
  gap:3px;
}
/* ── KINTSUGI MENU HEADING ── */
.menu-heading-wrap{
  margin-bottom:20px;
  position:relative;
  opacity:0;
  animation:slideUp .4s 1.6s ease forwards;
}
.kintsugi-border{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  overflow:visible;
  pointer-events:none;
}
.kintsugi-path{
  fill:none;
  stroke:var(--gold);
  stroke-width:0.7;
  stroke-linecap:round;
  opacity:0;
  stroke-dasharray:200;
  stroke-dashoffset:200;
}
.kintsugi-seg-1{animation:kintsugiSeg .5s 2s ease forwards;opacity:0.45}
.kintsugi-seg-2{animation:kintsugiSeg .4s 2.25s ease forwards;opacity:0.35}
.kintsugi-seg-3{animation:kintsugiSeg .6s 2.1s ease forwards;opacity:0.45}
.kintsugi-seg-4{animation:kintsugiSeg .6s 2.2s ease forwards;stroke-dasharray:100;stroke-dashoffset:100;opacity:0.4}
.kintsugi-seg-5{animation:kintsugiSeg .4s 2.5s ease forwards;stroke-dasharray:60;stroke-dashoffset:60;opacity:0.35}
.kintsugi-seg-6{animation:kintsugiSeg .5s 2.4s ease forwards;opacity:0.4}
.kintsugi-seg-7{animation:kintsugiSeg .5s 2.6s ease forwards;opacity:0.35}
.kintsugi-seg-8{animation:kintsugiSeg .5s 2.3s ease forwards;stroke-dasharray:90;stroke-dashoffset:90;opacity:0.4}
.kintsugi-seg-9{animation:kintsugiSeg .4s 2.5s ease forwards;stroke-dasharray:60;stroke-dashoffset:60;opacity:0.35}
@keyframes kintsugiSeg{to{stroke-dashoffset:0;opacity:1}}

.menu-heading-inner{
  padding:24px 28px;
  text-align:center;
  background:transparent;
}
.menu-heading-jp{
  font-family:'Noto Serif JP',serif;
  font-size:10px;
  font-weight:200;
  letter-spacing:0.35em;
  color:rgba(196,154,60,0.4);
  margin-bottom:14px;
  direction:ltr;
}
.menu-heading-text{
  font-size:13px;
  font-weight:300;
  color:var(--gold);
  line-height:1.85;
  margin-bottom:16px;
  opacity:0.9;
}
.menu-heading-text span{
  color:rgba(196,154,60,0.65);
  font-size:12px;
}
.menu-heading-divider{
  width:24px;
  height:1px;
  background:var(--gold);
  opacity:0.3;
  margin:0 auto 12px;
}
.menu-heading-choose{
  font-size:10px;
  font-weight:700;
  letter-spacing:0.28em;
  color:var(--gold);
  opacity:0.7;
}

/* Menu item — like ramen shop board */
.menu-item{
  display:block;
  text-decoration:none;
  padding:32px 36px;
  border:1px solid rgba(245,240,232,0.1);
  position:relative;
  overflow:hidden;
  transition:border-color .25s;
  background:rgba(255,255,255,0.015);
}
.menu-item::before{
  content:'';
  position:absolute;
  top:0;left:0;bottom:0;
  width:3px;
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.menu-item--b2c::before{background:var(--red)}
.menu-item--b2b::before{background:var(--gold)}
.menu-item:hover{border-color:rgba(245,240,232,0.2)}
.menu-item:hover::before{transform:scaleY(1)}

.menu-item__tag{
  font-size:10px;
  font-weight:700;
  letter-spacing:0.25em;
  display:inline-block;
  padding:3px 10px;
  border:1px solid;
  margin-bottom:16px;
}
.menu-item--b2c .menu-item__tag{color:var(--red);border-color:var(--red)}
.menu-item--b2b .menu-item__tag{color:var(--gold);border-color:var(--gold)}

.menu-item__title{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(22px,2.5vw,32px);
  font-weight:700;
  line-height:1.2;
  color:var(--paper);
  margin-bottom:10px;
}
.menu-item__desc{
  font-size:13px;
  font-weight:300;
  color:rgba(245,240,232,0.5);
  line-height:1.7;
}
.menu-item__arrow{
  position:absolute;
  bottom:28px;
  left:36px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
}
.menu-item--b2c .menu-item__arrow{color:var(--red)}
.menu-item--b2b .menu-item__arrow{color:var(--gold)}

/* ── SCROLL INDICATOR ── */
.scroll-hint{
  position:absolute;
  bottom:32px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  font-size:10px;
  letter-spacing:0.2em;
  color:rgba(245,240,232,0.3);
  z-index:2;
  font-weight:300;
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}
.scroll-hint svg{width:16px;opacity:.4}

/* ── ABOUT STRIP ── */
.about{
  padding:100px 48px;
  border-top:1px solid rgba(245,240,232,0.08);
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:0;
  max-width:1200px;
  margin:0 auto;
  width:100%;
}
.about-divider{
  background:rgba(245,240,232,0.08);
  margin:0 64px;
}
.about-block{}
.about-block__label{
  font-family:'Noto Serif JP',serif;
  font-size:11px;
  font-weight:200;
  letter-spacing:0.3em;
  color:rgba(245,240,232,0.3);
  margin-bottom:20px;
}
.about-block__title{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(24px,3vw,36px);
  font-weight:700;
  line-height:1.3;
  margin-bottom:20px;
}
.about-block__text{
  font-size:15px;
  font-weight:300;
  color:rgba(245,240,232,0.6);
  line-height:1.9;
  max-width:420px;
}
.about-block__text em{
  font-style:normal;
  color:var(--paper);
  font-weight:400;
}

/* ── ABOUT V2 ── */
.about-kanji-bg{
  position:absolute;
  bottom:-20px;
  left:-10px;
  font-family:'Noto Serif JP',serif;
  font-size:clamp(120px,18vw,200px);
  font-weight:900;
  color:rgba(245,240,232,0.03);
  line-height:1;
  user-select:none;
  pointer-events:none;
  letter-spacing:-0.05em;
}
.about-estab{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:4px;
}
.about-estab-line{
  flex:1;
  height:1px;
  background:rgba(196,154,60,0.2);
  max-width:40px;
}
.about-estab span{
  font-size:10px;
  font-weight:300;
  letter-spacing:0.25em;
  color:rgba(196,154,60,0.45);
  white-space:nowrap;
}

/* Values list */
.about-values{
  display:flex;
  flex-direction:column;
  gap:0;
  height:100%;
  justify-content:center;
}
.about-value{
  display:flex;
  align-items:flex-start;
  gap:20px;
  padding:24px 0;
  direction:rtl;
}
.about-value-kanji{
  font-family:'Noto Serif JP',serif;
  font-size:36px;
  font-weight:900;
  color:var(--gold);
  opacity:0.7;
  line-height:1;
  flex-shrink:0;
  width:44px;
  text-align:center;
}
.about-value-body{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-top:2px;
}
.about-value-title{
  font-family:'Noto Serif JP',serif;
  font-size:17px;
  font-weight:700;
  color:var(--paper);
  line-height:1.2;
}
.about-value-desc{
  font-size:13px;
  font-weight:300;
  color:rgba(245,240,232,0.5);
  line-height:1.7;
}
.about-value-sep{
  height:1px;
  background:linear-gradient(to left, transparent, rgba(196,154,60,0.2), transparent);
  margin:0;
}

@media(max-width:768px){
  .about-kanji-bg{font-size:100px}
  .about-value-kanji{font-size:28px;width:36px}
  .about-value-title{font-size:15px}
}
.numbers-wrap{
  position:relative;
  overflow:hidden;
  background:#0a0808;
}
.sumi-wash{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.numbers{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(245,240,232,0.05);
  border-bottom:1px solid rgba(245,240,232,0.05);
}
.num-val-jp{
  font-family:'Shippori Mincho','Noto Serif JP',serif;
  font-size:22px;
  font-weight:400;
  color:rgba(200,168,152,0.35);
  letter-spacing:0.1em;
  margin-bottom:8px;
  display:block;
}
.num-item{
  padding:60px 48px;
  border-right:1px solid rgba(245,240,232,0.08);
  text-align:center;
}
.num-item:last-child{border-right:none}
.num-val{
  font-family:'Shippori Mincho','Noto Serif JP',serif;
  font-size:clamp(44px,5vw,72px);
  font-weight:800;
  line-height:1;
  margin-bottom:12px;
}
.num-val span{color:var(--red)}
.num-label{
  font-size:13px;
  font-weight:300;
  color:rgba(245,240,232,0.45);
  line-height:1.6;
  letter-spacing:0.04em;
}

/* ── PRODUCT PAGE PREVIEW ── */
.product-section{
  padding:100px 48px;
  border-top:1px solid rgba(245,240,232,0.08);
}
.section-eyebrow{
  font-size:11px;
  font-weight:300;
  letter-spacing:0.3em;
  color:rgba(245,240,232,0.35);
  margin-bottom:16px;
}
.section-title{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:700;
  margin-bottom:12px;
}
.section-sub{
  font-size:14px;
  font-weight:300;
  color:rgba(245,240,232,0.5);
  margin-bottom:56px;
}

/* Product card */
.product-card{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid rgba(245,240,232,0.1);
  max-width:960px;
}
.product-img{
  position:relative;
  min-height:480px;
  overflow:hidden;
  background:#161616;
}
.product-img img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.product-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(196,30,30,0.12) 0%,transparent 50%);
}
.product-badge{
  position:absolute;
  top:24px;right:24px;
  background:var(--red);
  color:white;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.12em;
  padding:6px 14px;
}
.product-body{
  padding:56px 48px;
  display:flex;
  flex-direction:column;
  gap:24px;
  justify-content:center;
  background:#111;
}
.product-cat{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.2em;
  color:var(--red);
}
.product-name{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(24px,2.5vw,34px);
  font-weight:700;
  line-height:1.2;
}
.product-desc{
  font-size:14px;
  font-weight:300;
  color:rgba(245,240,232,0.55);
  line-height:1.8;
}
.product-price{
  font-family:'Noto Serif JP',serif;
  font-size:38px;
  font-weight:900;
  letter-spacing:-0.02em;
}
.product-price small{
  font-family:'M PLUS Rounded 1c',sans-serif;
  font-size:14px;
  font-weight:300;
  color:rgba(245,240,232,0.45);
  margin-left:4px;
}
.size-row{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.size-label{
  font-size:11px;
  font-weight:300;
  letter-spacing:0.15em;
  color:rgba(245,240,232,0.4);
}
.sizes{
  display:flex;gap:6px;flex-wrap:wrap;
}
.sz{
  width:42px;height:42px;
  border:1px solid rgba(245,240,232,0.15);
  background:transparent;
  color:var(--paper);
  font-family:'M PLUS Rounded 1c',sans-serif;
  font-size:12px;
  cursor:pointer;
  transition:all .15s;
}
.sz.on,.sz:hover{
  border-color:var(--red);
  color:var(--red);
  background:rgba(196,30,30,0.08);
}
.btn-main{
  background:var(--red);
  color:white;
  border:none;
  padding:18px;
  font-family:'M PLUS Rounded 1c',sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.06em;
  cursor:pointer;
  width:100%;
  transition:background .2s;
}
.btn-main:hover{background:#a51818}
.btn-ghost{
  background:transparent;
  color:var(--paper);
  border:1px solid rgba(245,240,232,0.15);
  padding:16px;
  font-family:'M PLUS Rounded 1c',sans-serif;
  font-size:13px;
  font-weight:300;
  cursor:pointer;
  width:100%;
  letter-spacing:0.04em;
  transition:border-color .2s;
}
.btn-ghost:hover{border-color:rgba(245,240,232,0.4)}

/* ── FOOTER ── */
footer{
  padding:64px 48px 32px;
  border-top:1px solid rgba(196,154,60,0.15);
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:40px;
}
.footer-logo{
  font-family:'Shippori Mincho','Noto Serif JP',serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:0.1em;
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--paper);
}
.footer-tagline{
  font-size:13px;
  font-weight:300;
  color:rgba(196,154,60,0.55);
  line-height:1.8;
  max-width:200px;
}
.footer-col h4{
  font-size:10px;
  font-weight:700;
  letter-spacing:0.22em;
  color:rgba(196,154,60,0.45);
  margin-bottom:18px;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col a{
  color:rgba(196,154,60,0.65);
  text-decoration:none;
  font-size:13px;
  font-weight:300;
  transition:color .2s;
}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{
  grid-column:span 4;
  border-top:1px solid rgba(196,154,60,0.1);
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  font-size:11px;
  color:rgba(196,154,60,0.3);
  font-weight:300;
  letter-spacing:0.04em;
}

/* ── MOBILE ── */
@media(max-width:768px){
  nav{padding:16px 20px}
  .nav-link{display:none}
  .hero-inner{grid-template-columns:1fr}
  .hero-left{padding:40px 24px 20px;border:none}
  .hero-right{padding:20px 24px 60px}
  .noren{display:none}
  .about{grid-template-columns:1fr;padding:64px 24px}
  .about-divider{display:none}
  .about-block:last-child{margin-top:48px}
  .numbers{grid-template-columns:1fr 1fr}
  .num-item{padding:40px 24px}
  .num-val{font-size:44px}
  .product-section{padding:64px 20px}
  .product-card{grid-template-columns:1fr}
  .product-img{min-height:280px}
  .product-body{padding:32px 24px}
  footer{grid-template-columns:1fr 1fr;padding:48px 20px 24px}
  .footer-bottom{grid-column:span 2;flex-direction:column;gap:8px}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ── HANKO INTRO SCREEN ── */
#hanko-screen{
  position:fixed;
  inset:0;
  background:var(--ink);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
#hanko-screen.done{
  animation:screenFade .6s .2s forwards;
}
@keyframes screenFade{to{opacity:0;visibility:hidden}}

.hanko-stamp{
  position:relative;
  width:220px;
  height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hanko-ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:3px solid var(--red);
  opacity:0;
  transform:scale(0.6);
  animation:ringIn .5s .15s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes ringIn{to{opacity:1;transform:scale(1)}}

.hanko-inner{
  position:absolute;
  inset:12px;
  border-radius:50%;
  border:1px solid rgba(196,30,30,0.4);
  opacity:0;
  animation:ringIn .4s .3s ease forwards;
}
.hanko-text{
  font-family:'Noto Serif JP',serif;
  font-size:52px;
  font-weight:900;
  color:var(--red);
  letter-spacing:0.05em;
  opacity:0;
  transform:scale(1.2);
  animation:textIn .4s .35s cubic-bezier(.16,1,.3,1) forwards;
  text-align:center;
  line-height:1;
}
@keyframes textIn{to{opacity:1;transform:scale(1)}}

.hanko-arc-text{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  opacity:0;
  animation:textIn .3s .4s ease forwards;
}
.hanko-sub{
  position:absolute;
  bottom:32px;
  font-size:10px;
  font-weight:300;
  letter-spacing:0.25em;
  color:rgba(196,30,30,0.55);
  opacity:0;
  animation:textIn .3s .55s ease forwards;
}

/* ── ENSO CIRCLE (hero left) ── */
.enso-wrap{
  position:absolute;
  bottom:60px;
  right:48px;
  width:120px;
  height:120px;
  opacity:0;
  animation:ensoAppear 1s 2s ease forwards;
  z-index:1;
  pointer-events:none;
}
@keyframes ensoAppear{to{opacity:1}}
.enso-wrap svg{
  width:100%;height:100%;
  overflow:visible;
}
.enso-path{
  fill:none;
  stroke:rgba(196,30,30,0.25);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-dasharray:340;
  stroke-dashoffset:340;
  animation:ensoDrawRTL 1.8s 2.1s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes ensoDrawRTL{to{stroke-dashoffset:20}}

/* ── SUMI DIAGONAL LINE ── */
.sumi-line{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  pointer-events:none;
  z-index:1;
  overflow:hidden;
}
.sumi-line svg{
  width:100%;height:100%;
  position:absolute;
  inset:0;
}
.sumi-stroke{
  stroke:rgba(245,240,232,0.04);
  stroke-width:1;
  fill:none;
  stroke-dasharray:1800;
  stroke-dashoffset:1800;
  animation:sumiDraw 2.5s 1.8s ease forwards;
}
@keyframes sumiDraw{to{stroke-dashoffset:0}}

/* ── NOREN ANIMATION ── */
.noren{
  transform-origin:top center;
  animation:norenFall 1.2s 1.2s cubic-bezier(.16,1,.3,1) both;
}
@keyframes norenFall{
  from{transform:scaleY(0);opacity:0}
  to{transform:scaleY(1);opacity:1}
}

/* ── HERO CONTENT ENTRANCE ── */
.studio-label{
  opacity:0;
  animation:slideUp .6s 1.4s ease forwards;
}
.studio-name{
  opacity:0;
  animation:slideUp .7s 1.5s cubic-bezier(.16,1,.3,1) forwards;
}
.studio-name-jp{
  opacity:0;
  animation:slideUp .5s 1.65s ease forwards;
}
.studio-desc{
  opacity:0;
  animation:slideUp .5s 1.75s ease forwards;
}
.menu-heading-wrap{
  opacity:0;
  animation:slideUp .4s 1.6s ease forwards;
}
.menu-item{
  opacity:0;
}
.menu-item--b2c{animation:slideUp .5s 1.7s cubic-bezier(.16,1,.3,1) forwards}
.menu-item--b2b{animation:slideUp .5s 1.85s cubic-bezier(.16,1,.3,1) forwards}
@keyframes slideUp{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

/* ── MENU ITEM HOVER: STAMP EFFECT ── */
.menu-item__tag{
  transition:none;
  position:relative;
}
.menu-item:hover .menu-item__tag{
  animation:stampPulse .15s ease;
}
@keyframes stampPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.08)}
  100%{transform:scale(1)}
}

/* HANKO stamp overlay on hover */
.menu-item{
  position:relative;
}
.menu-item .stamp-overlay{
  position:absolute;
  top:20px;
  left:24px;
  width:72px;
  height:72px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:scale(1.6) rotate(-15deg);
  pointer-events:none;
  transition:none;
  z-index:10;
}
.menu-item--b2c .stamp-overlay{
  border:2.5px solid var(--red);
  color:var(--red);
}
.menu-item--b2b .stamp-overlay{
  border:2.5px solid var(--gold);
  color:var(--gold);
}
.menu-item .stamp-overlay span{
  font-family:'Noto Serif JP',serif;
  font-size:11px;
  font-weight:900;
  letter-spacing:0.05em;
  text-align:center;
  line-height:1.2;
}
.menu-item:hover .stamp-overlay{
  animation:stampLand .35s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes stampLand{
  0%{opacity:0;transform:scale(1.8) rotate(-12deg)}
  40%{opacity:1;transform:scale(0.92) rotate(-8deg)}
  65%{transform:scale(1.04) rotate(-10deg)}
  100%{opacity:1;transform:scale(1) rotate(-10deg)}
}

/* ── NAV ENTRANCE ── */
nav{
  opacity:0;
  animation:navIn .5s 1.9s ease forwards;
}
@keyframes navIn{to{opacity:1}}

/* ── SCROLL HINT ── */
.scroll-hint{
  opacity:0;
  animation:fadeIn 1s 2.5s ease forwards;
}
@keyframes fadeIn{to{opacity:1}}

/* ── GALLERY FADE IN ── */
.gallery-item{
  opacity:0;
  animation:galItem .5s ease forwards;
}
.gallery-item:nth-child(1){animation-delay:.1s}
.gallery-item:nth-child(2){animation-delay:.2s}
.gallery-item:nth-child(3){animation-delay:.3s}
.gallery-item:nth-child(4){animation-delay:.4s}
.gallery-item:nth-child(5){animation-delay:.5s}
.gallery-item:nth-child(6){animation-delay:.6s}
.gallery-item:nth-child(7){animation-delay:.7s}
@keyframes galItem{to{opacity:1}}


/* ================================================
   עמוד "לעסקים" — Shin Sekai Business
   ================================================ */

/* ── HERO: THE HONORED ROOM ── */
.b2b-hero{
  min-height:100vh;
  position:relative;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  overflow:hidden;
  padding-top:64px;
}
.shoji-grid{
  position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(196,154,60,0.07) 0px, rgba(196,154,60,0.07) 1px, transparent 1px, transparent 90px),
    repeating-linear-gradient(90deg, rgba(196,154,60,0.07) 0px, rgba(196,154,60,0.07) 1px, transparent 1px, transparent 90px);
  z-index:0;
}
.hero-kanji-bg{
  position:absolute;top:50%;right:-40px;transform:translateY(-50%);
  font-family:'Noto Serif JP',serif;font-size:clamp(220px,32vw,460px);font-weight:900;
  color:rgba(196,154,60,0.035);line-height:1;pointer-events:none;z-index:0;user-select:none;
}
.b2b-hero-left{
  position:relative;z-index:2;
  display:flex;flex-direction:column;justify-content:center;
  padding:60px 56px;
  border-left:1px solid rgba(196,154,60,0.12);
}
.b2b-eyebrow{
  font-size:11px;font-weight:700;letter-spacing:0.3em;color:var(--gold);margin-bottom:24px;
}
.b2b-h1{
  font-family:'Shippori Mincho',serif;
  font-size:clamp(34px,4.4vw,58px);
  font-weight:700;line-height:1.3;
  margin-bottom:28px;
  max-width:560px;
}
.b2b-h1 em{font-style:normal;color:var(--gold)}
.b2b-sub{
  font-size:15px;font-weight:300;line-height:1.9;color:rgba(245,240,232,0.65);
  max-width:460px;margin-bottom:40px;
}
.b2b-cta{
  display:inline-flex;align-items:center;gap:14px;
  background:transparent;border:1px solid var(--gold);color:var(--gold);
  padding:16px 32px;font-family:'M PLUS Rounded 1c',sans-serif;font-size:14px;font-weight:700;
  letter-spacing:0.05em;cursor:pointer;width:fit-content;
  transition:background .3s ease, color .3s ease;
}
.b2b-cta:hover{background:var(--gold);color:var(--ink)}

.b2b-hero-right{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;
  padding:40px;
}
.tokonoma-wrap{width:min(280px,70%);opacity:0;animation:fadeInSlow 1.4s .6s ease forwards}
@keyframes fadeInSlow{to{opacity:1}}

/* ── VERTICALS SECTION ── */
.section{max-width:1240px;margin:0 auto;padding:90px 48px}

.vert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(196,154,60,0.15)}
.vert-card{
  background:var(--ink);
  padding:40px 32px;
  display:flex;flex-direction:column;gap:14px;
  transition:background .3s ease;
}
.vert-card:hover{background:#161310}
.vert-icon{
  width:44px;height:44px;border:1px solid rgba(196,154,60,0.4);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Noto Serif JP',serif;font-size:18px;color:var(--gold);
}
.vert-card h3{font-family:'Shippori Mincho',serif;font-size:18px;font-weight:700;color:var(--paper)}
.vert-card p{font-size:13px;font-weight:300;line-height:1.75;color:rgba(245,240,232,0.55)}

/* ── GALLERY (AI images to come) ── */
.ai-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.ai-frame{
  aspect-ratio:3/4;background:#161513;border:1px solid rgba(196,154,60,0.15);
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.ai-frame img{width:100%;height:100%;object-fit:cover}
.ai-frame .ph{display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(196,154,60,0.35);font-size:11px;text-align:center;padding:10px;line-height:1.5}
.ai-frame .ph svg{width:22px;height:22px;opacity:0.5}
.ai-note{text-align:center;margin-top:20px;font-size:12px;color:rgba(245,240,232,0.3);font-weight:300}

/* ── CLOSING CTA ── */
.closing-cta{
  text-align:center;padding:100px 48px;border-top:1px solid rgba(196,154,60,0.15);
}
.closing-cta h2{font-family:'Shippori Mincho',serif;font-size:clamp(26px,3vw,36px);margin-bottom:18px}
.closing-cta p{font-size:14px;font-weight:300;color:rgba(245,240,232,0.55);max-width:460px;margin:0 auto 36px;line-height:1.8}

/* ── עמוד לעסקים בלבד: זהב במקום הצבעים הרגילים ──
   (הקלאס shin-sekai-business מתווסף אוטומטית ע"י functions.php
   רק לעמוד הזה, כדי לא להשפיע על שאר העמודים) ── */
.shin-sekai-business .section-eyebrow{
  text-align:center;font-weight:700;color:var(--gold);
}
.shin-sekai-business .section-title{
  text-align:center;font-family:'Shippori Mincho',serif;font-size:clamp(26px,3vw,38px);margin-bottom:20px;
}
.shin-sekai-business .section-sub{
  text-align:center;max-width:520px;margin:0 auto 56px;line-height:1.8;
}
.shin-sekai-business nav{
  background:var(--ink);
  border-bottom:1px solid rgba(196,154,60,0.15);
  justify-content:space-between;
}
.shin-sekai-business .hanko-ring{border-color:var(--gold)}.shin-sekai-business .hanko-inner{border-color:rgba(196,154,60,0.4)}
.shin-sekai-business .hanko-text{color:var(--gold)}
.shin-sekai-business .hanko-sub{color:rgba(196,154,60,0.55)}
.shin-sekai-business .nav-wa{border-color:#6b5420}
.shin-sekai-business .nav-wa::before{background:#3d2f0f}
.shin-sekai-business .nav-wa:hover{border-color:#8a6c28}
.shin-sekai-business .nav-wa-icon{border-color:#8a6c28}
.shin-sekai-business .nav-wa:hover .nav-wa-icon{border-color:var(--gold);background:rgba(196,154,60,0.12)}
.shin-sekai-business .nav-wa-icon svg{fill:var(--gold)}
.shin-sekai-business .nav-wa:hover .nav-wa-icon svg{fill:#e8d4a0}
.shin-sekai-business .nav-wa-label{color:#8a6c28}
.shin-sekai-business .nav-wa:hover .nav-wa-label{color:var(--gold)}
.shin-sekai-business .nav-wa-title{color:#e8d4a0}
.shin-sekai-business .nav-wa:hover .nav-wa-title{color:#f5ecd8}

@media(max-width:900px){
  .b2b-hero{grid-template-columns:1fr;min-height:auto}
  .b2b-hero-left{padding:48px 24px 24px;border:none}
  .b2b-hero-right{padding:0 40px 48px}
  .hero-kanji-bg{display:none}
  .vert-grid{grid-template-columns:1fr}
  .ai-gallery{grid-template-columns:repeat(2,1fr)}
}
.studio-name,
.about-block__title,
.num-val,
.section-title,
.menu-item__title,
h1, h2, h3{
  color: var(--paper) !important;
}
