/* ===== Reset & base ===== */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; min-height:100%; background:#4E494F; }
input,textarea,button{ font-family:inherit; }
body{ font-family:'Shippori Mincho',serif; }

#root{ position:relative; width:100%; background:#4E494F; font-family:'Shippori Mincho',serif; color:#F4E7EB; }

/* ===== Keyframes ===== */
@keyframes heroRise { 0%{ transform:translateY(28px); filter:blur(7px); } 100%{ transform:translateY(0); filter:blur(0); } }
@keyframes scrollBob { 0%,100%{ transform:translateY(0); opacity:0.55; } 50%{ transform:translateY(7px); opacity:1; } }
@keyframes charPop { 0%{ opacity:0; transform:translateY(40px) scale(.42); filter:blur(11px); } 58%{ opacity:1; transform:translateY(-7px) scale(1.1); filter:blur(0); } 100%{ opacity:1; transform:translateY(0) scale(1); } }
@keyframes nameGlow { 0%{ text-shadow:0 0 0 rgba(250,174,187,0); } 34%{ text-shadow:0 0 26px rgba(250,174,187,.8), 0 0 56px rgba(250,174,187,.34); } 100%{ text-shadow:0 0 0 rgba(250,174,187,0); } }
@keyframes burstOut { 0%{ opacity:0; transform:translate(-50%,-50%) scale(.2); } 18%{ opacity:1; } 100%{ opacity:0; transform:translate(calc(-50% + var(--bx)), calc(-50% + var(--by))) scale(1); } }
@keyframes haloPulse { 0%{ opacity:0; transform:translate(-50%,-50%) scale(.5); } 30%{ opacity:.85; } 100%{ opacity:0; transform:translate(-50%,-50%) scale(2.4); } }
@keyframes sparkleTwinkle { 0%{ opacity:0; transform:translate(-50%,-50%) scale(0.15) rotate(0deg); } 42%{ opacity:1; transform:translate(-50%,-50%) scale(1) rotate(25deg); } 100%{ opacity:0; transform:translate(-50%,-50%) scale(0.32) rotate(60deg); } }
@keyframes greetFade { 0%{ opacity:0; transform:translateY(-6px); } 100%{ opacity:1; transform:translateY(0); } }

/* ===== Sticky nav ===== */
.sticky-nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px clamp(18px,4vw,46px);
  background:rgba(60,56,62,0.82);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,0.1);
  transform:translateY(-100%); opacity:0;
  transition:transform .45s ease, opacity .45s ease;
}
.sticky-nav.is-visible{ transform:translateY(0); opacity:1; }
.sticky-nav__brand{ display:flex; flex-direction:column; line-height:1.05; text-decoration:none; color:#F4E7EB; }
.sticky-nav__name{ font-family:'Shippori Mincho',serif; font-weight:600; font-size:17px; letter-spacing:0.1em; }
.sticky-nav__romaji{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:11px; letter-spacing:0.22em; color:#FAAEBB; }
.sticky-nav__links{ display:flex; align-items:center; gap:clamp(14px,2.4vw,30px); }
.sticky-nav__links a{ text-decoration:none; color:#F4E7EB; font-size:14px; letter-spacing:0.1em; transition:color .25s ease, transform .25s ease; display:inline-block; }
.sticky-nav__links a:hover{ color:#FAAEBB; transform:scale(1.1); }

/* ===== Hero ===== */
.hero{
  position:relative; width:100%; height:100vh; min-height:600px;
  overflow:hidden; color:#F4E7EB;
  background:radial-gradient(125% 135% at 50% 40%, #706a77 0%, #565059 52%, #46414b 100%);
}
.hero__canvas{ position:absolute; inset:0; display:block; z-index:1; }

.img-garden{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.img-garden__cluster{ position:absolute; top:0; width:35%; height:100%; opacity:0; }
.img-garden__cluster--l{ left:0; clip-path:inset(0 0 100% 0); -webkit-clip-path:inset(0 0 100% 0); -webkit-mask-image:linear-gradient(to right,#000 60%,transparent 100%); mask-image:linear-gradient(to right,#000 60%,transparent 100%); }
.img-garden__cluster--r{ right:0; clip-path:inset(100% 0 0 0); -webkit-clip-path:inset(100% 0 0 0); -webkit-mask-image:linear-gradient(to left,#000 60%,transparent 100%); mask-image:linear-gradient(to left,#000 60%,transparent 100%); }
.img-garden__cluster img{ width:100%; height:100%; object-fit:cover; display:block; }
.img-garden__cluster--l img{ object-position:54% 24%; }
.img-garden__cluster--r img{ object-position:46% 24%; }
.img-garden__shade{ position:absolute; inset:0; pointer-events:none; }
.img-garden__shade--side-l{ background:linear-gradient(to right, rgba(78,73,79,0) 52%, rgba(78,73,79,0.55) 100%); }
.img-garden__shade--side-r{ background:linear-gradient(to left, rgba(78,73,79,0) 52%, rgba(78,73,79,0.55) 100%); }
.img-garden__shade--top{ background:linear-gradient(to top, rgba(78,73,79,0.45) 0%, rgba(78,73,79,0) 24%); }
.img-garden__shade--bottom{ background:linear-gradient(to bottom, rgba(78,73,79,0.45) 0%, rgba(78,73,79,0) 24%); }

.hero__content{
  position:absolute; inset:0; z-index:4;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; opacity:0; padding:0; pointer-events:none; color:#F4E7EB;
}
.hero__greet{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:clamp(13px,1.6vw,18px); letter-spacing:0.3em; text-indent:0.3em; color:#FAAEBB; opacity:0; margin:0 0 16px; }
.hero__romaji{ font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(11px,1.5vw,17px); letter-spacing:0.46em; text-indent:0.46em; margin:0 0 20px; }
.hero__name{ font-family:'Shippori Mincho',serif; font-weight:600; font-size:clamp(54px,11vw,130px); line-height:1; letter-spacing:0.07em; margin:0; display:inline-flex; align-items:baseline; color:#F4E7EB; position:relative; }
.hero__char{ display:inline-block; }
.hero__char--shi{ margin-left:-0.10em; }
.hero__char--ro{ margin-left:calc(-0.13em - 2mm); }
.hero__rule{ width:clamp(90px,16vw,190px); height:1.5px; margin:28px 0 18px; border-radius:2px; background:linear-gradient(90deg, transparent, #FAAEBB, transparent); }
.hero__tag{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:clamp(14px,1.7vw,20px); letter-spacing:0.03em; margin:0 0 30px; color:rgba(244,231,235,0.58); }
.hero__nav{ display:flex; align-items:flex-start; gap:clamp(20px,3.2vw,46px); pointer-events:auto; color:#F4E7EB; }
.hero__nav a{ display:flex; flex-direction:column; align-items:center; gap:3px; text-decoration:none; color:inherit; transition:transform .28s ease, color .28s ease; }
.hero__nav a:hover{ transform:scale(1.16); color:#FAAEBB; }
.hero__nav-jp{ font-family:'Shippori Mincho',serif; font-weight:500; font-size:clamp(14px,1.6vw,18px); letter-spacing:0.14em; }
.hero__nav-en{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(10px,1.1vw,12px); letter-spacing:0.22em; opacity:0.72; }
.hero__scroll{ margin-top:clamp(34px,6vh,60px); font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:0.32em; color:inherit; text-decoration:none; opacity:0.66; animation:scrollBob 2.2s ease-in-out infinite; pointer-events:auto; }

.hero__flash{ position:absolute; inset:0; z-index:5; pointer-events:none; opacity:0; background:radial-gradient(58% 50% at 50% 46%, rgba(255,252,253,0.9) 0%, rgba(250,174,187,0.5) 36%, rgba(250,174,187,0) 70%); }

/* splash: heart-lock charm knockout intro */
.mask-intro{ position:absolute; inset:0; z-index:22; pointer-events:none; opacity:0; transform-origin:50% 45%; will-change:transform,opacity; display:none; }
.mask-intro__svg{ display:block; width:100%; height:100%; }
.paint-red{ position:absolute; inset:0; z-index:20; pointer-events:none; opacity:0; background:linear-gradient(180deg, #ffc2cf 0%, #FAAEBB 52%, #f096a8 100%); }
.sparkles{ position:absolute; inset:0; z-index:23; pointer-events:none; opacity:1; }
.sparkle{
  position:absolute; opacity:0; transform:translate(-50%,-50%) scale(0.15);
  background:radial-gradient(circle, #ffffff 0%, #fff0f4 38%, rgba(250,174,187,0) 72%);
  filter:drop-shadow(0 0 5px rgba(255,225,234,0.95));
  clip-path:polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0% 50%, 40% 40%);
}

.switcher{
  position:absolute; left:50%; bottom:24px; transform:translateX(-50%);
  display:flex; align-items:center; gap:5px; padding:7px 9px; border-radius:999px;
  border:1px solid rgba(255,255,255,0.18); background:rgba(255,255,255,0.10);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); opacity:0; z-index:6;
}
.switcher__replay{
  display:flex; align-items:center; justify-content:center; gap:8px; height:38px; padding:0 18px;
  border-radius:999px; border:1px solid transparent; background:transparent; cursor:pointer;
  font-family:'Shippori Mincho',serif; font-size:14px; letter-spacing:0.12em;
  color:rgba(244,231,235,0.82); transition:all .25s ease;
}
.switcher__replay:hover{ color:#fff; }
.switcher__icon{ font-size:16px; }

/* name burst (spawned at reveal) */
.name-burst-layer{ position:absolute; left:50%; top:50%; width:0; height:0; pointer-events:none; z-index:3; }
.name-burst-halo{
  position:absolute; left:50%; top:50%; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, rgba(250,174,187,.5) 0%, rgba(250,174,187,.12) 42%, transparent 68%);
  animation:haloPulse 1.1s ease-out forwards;
}
.name-burst-particle{ position:absolute; left:50%; top:50%; border-radius:50%; }

/* ===== Shared section chrome ===== */
.section{ position:relative; z-index:1; padding:clamp(72px,12vh,128px) clamp(22px,6vw,64px); background:#4E494F; color:#F4E7EB; }
.section__heading{ display:flex; flex-direction:column; align-items:center; gap:11px; margin-bottom:clamp(40px,6vh,62px); }
.section__heading h2{ font-family:'Shippori Mincho',serif; font-weight:600; font-size:clamp(27px,4vw,40px); letter-spacing:0.1em; margin:0; }
.section__heading-en{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(13px,1.4vw,16px); letter-spacing:0.22em; color:#FAAEBB; }
.section__rule{ width:50px; height:2px; background:#FAAEBB; border-radius:2px; }
.section__lead{ text-align:center; font-size:14px; line-height:1.9; color:rgba(244,231,235,0.66); margin:0 auto clamp(36px,5vh,52px); max-width:460px; }

/* placeholder slots (gallery works & portrait) */
.placeholder-slot{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center; text-align:center;
  padding:16px; box-sizing:border-box;
  background:repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 0 10px, rgba(255,255,255,0.02) 10px 20px);
  border:1.5px dashed rgba(255,255,255,0.25);
  color:rgba(244,231,235,0.55); font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:0.08em; font-size:14px;
}
.placeholder-slot__cap{ max-width:90%; }

/* ===== Profile ===== */
.profile{ display:flex; flex-wrap:wrap; gap:clamp(32px,5vw,70px); align-items:center; justify-content:center; max-width:880px; margin:0 auto; }
.profile__portrait{ width:min(78vw,272px); height:min(94vw,338px); flex:0 0 auto; box-shadow:0 18px 44px rgba(78,73,79,0.18); border-radius:20px; overflow:hidden; background-repeat:no-repeat; background-size:300%; background-position:33% 17%; }
.profile__body{ max-width:440px; min-width:260px; flex:1 1 300px; }
.profile__name{ font-family:'Shippori Mincho',serif; font-weight:600; font-size:clamp(38px,5.5vw,60px); letter-spacing:0.08em; line-height:1.1; margin:0 0 6px; }
.profile__romaji{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(13px,1.4vw,16px); letter-spacing:0.28em; color:#FAAEBB; margin-bottom:18px; }
.profile__social{ display:flex; gap:12px; margin-bottom:26px; }
.icon-btn{
  height:44px; display:flex; align-items:center; justify-content:center; border-radius:12px;
  background:rgba(250,174,187,0.12); color:#FAAEBB; text-decoration:none;
  transition:transform .22s ease, background .22s ease; font-family:'Cormorant Garamond',serif;
}
.icon-btn:hover{ transform:translateY(-3px); background:rgba(250,174,187,0.24); }
.icon-btn--square{ width:44px; font-size:22px; font-weight:600; }
.icon-btn--wide{ padding:0 16px; font-size:16px; font-weight:600; letter-spacing:0.04em; }
.profile__bio{ font-size:clamp(15px,1.5vw,17px); line-height:2.05; margin:0 0 22px; }
.profile__facts{ display:grid; grid-template-columns:auto 1fr; gap:12px 26px; margin:0; font-size:14px; line-height:1.6; }
.profile__facts dt{ font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:0.1em; color:#FAAEBB; }
.profile__facts dd{ margin:0; }

/* ===== Gallery ===== */
.gallery-scroll{ position:relative; width:100%; max-width:1480px; margin:0 auto; height:clamp(460px,58vw,560px); overflow:hidden; cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.gallery-scroll.is-dragging{ cursor:grabbing; }
.gallery-track{ position:absolute; inset:0; }
.gallery-item{ position:absolute; top:0; left:0; width:clamp(300px,34vw,400px); height:100%; padding:0 18px; box-sizing:border-box; will-change:transform; }
.gallery-card{ position:relative; width:100%; height:100%; border-radius:14px; overflow:hidden; box-shadow:0 12px 28px rgba(0,0,0,0.26); transition:box-shadow .45s ease; cursor:pointer; }
.gallery-card:hover{ box-shadow:0 22px 48px rgba(0,0,0,0.4); }
.gallery-card__zoom{ width:100%; height:100%; transition:transform .6s cubic-bezier(.2,.7,.2,1); transform-origin:center; }
.gallery-card__zoom img{ width:100%; height:100%; object-fit:cover; display:block; -webkit-user-drag:none; user-drag:none; }
.gallery-card:hover .gallery-card__zoom{ transform:scale(1.16); }
.gallery-hint{ text-align:center; margin:24px 0 0; font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:0.24em; font-size:13px; color:rgba(244,231,235,0.5); }

/* ===== Lightbox (enlarged artwork) ===== */
.lightbox{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:5vmin; box-sizing:border-box; background:rgba(28,25,29,0.9);
  opacity:0; transition:opacity .28s ease; cursor:zoom-out;
}
.lightbox.is-open{ opacity:1; }
.lightbox__img{
  max-width:100%; max-height:100%; object-fit:contain; border-radius:8px; cursor:default;
  box-shadow:0 30px 90px rgba(0,0,0,0.55);
  transform:scale(.96); transition:transform .32s cubic-bezier(.2,.7,.2,1);
}
.lightbox.is-open .lightbox__img{ transform:scale(1); }
.lightbox__close{
  position:absolute; top:20px; right:24px; width:46px; height:46px; border:none; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,0.12); color:#F4E7EB; font-size:19px; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .22s ease, transform .22s ease;
}
.lightbox__close:hover{ background:rgba(250,174,187,0.32); transform:scale(1.06); }
@media (max-width:520px){ .lightbox__close{ top:12px; right:14px; width:42px; height:42px; } }

/* ===== SNS ===== */
.sns-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:20px; max-width:940px; margin:0 auto; }
.sns-card{
  display:flex; align-items:center; gap:16px; text-decoration:none; color:#F4E7EB;
  background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:16px;
  padding:22px 24px; box-shadow:0 14px 32px rgba(0,0,0,0.22);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sns-card:hover{ transform:translateY(-4px); box-shadow:0 20px 44px rgba(0,0,0,0.32); border-color:rgba(250,174,187,0.5); }
.sns-card__icon{ flex:none; width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:rgba(250,174,187,0.12); color:#FAAEBB; font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; }
.sns-card__icon--pixiv,.sns-card__icon--dl{ font-size:24px; }
.sns-card__text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.sns-card__title{ font-size:17px; letter-spacing:0.04em; }
.sns-card__handle{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:13px; color:#9b949a; letter-spacing:0.04em; overflow-wrap:anywhere; }

/* ===== Contact ===== */
.contact-note{ max-width:540px; margin:-14px auto 26px; text-align:center; font-size:13.5px; line-height:1.75; letter-spacing:0.02em; color:rgba(250,174,187,0.82); }
.contact-mail-alt{ max-width:540px; margin:-14px auto 28px; text-align:center; font-size:13.5px; line-height:1.8; color:rgba(244,231,235,0.6); }
.contact-mail-alt a{ color:#FAAEBB; text-decoration:none; border-bottom:1px solid rgba(250,174,187,0.4); padding-bottom:1px; transition:border-color .25s ease; }
.contact-mail-alt a:hover{ border-color:#FAAEBB; }
.contact-form{ max-width:540px; margin:0 auto; display:flex; flex-direction:column; gap:16px; }
.contact-form__type{ display:flex; gap:6px; align-self:center; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:999px; padding:5px; margin-bottom:4px; }
.contact-form__type .type-opt{ margin:0; }
.contact-form__type input{ position:absolute; opacity:0; width:0; height:0; }
.contact-form__type span{ display:block; cursor:pointer; padding:9px 24px; border-radius:999px; font-family:'Shippori Mincho',serif; font-size:14px; letter-spacing:0.12em; color:rgba(244,231,235,0.7); transition:background .25s ease, color .25s ease; }
.contact-form__type input:checked + span{ background:#FAAEBB; color:#4E2A33; }
.contact-form__type input:focus-visible + span{ outline:2px solid #FAAEBB; outline-offset:2px; }
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%; box-sizing:border-box;
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.16); color:#F4E7EB;
  font-size:15px; padding:14px 16px; border-radius:10px; outline:none; transition:border-color .25s ease;
}
.contact-form textarea{ resize:vertical; }
.contact-form select{
  appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23FAAEBB' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; background-size:12px;
}
.contact-form select option{ color:#333; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{ border-color:#FAAEBB; }

/* separated request fields */
.contact-form__request,.contact-form__inquiry{ display:flex; flex-direction:column; gap:16px; }
.contact-form__request[hidden],.contact-form__inquiry[hidden]{ display:none; }
.contact-field{ display:flex; flex-direction:column; gap:6px; }
.contact-field__label{ font-family:'Shippori Mincho',serif; font-size:13px; letter-spacing:0.06em; color:rgba(244,231,235,0.74); padding-left:2px; }
.contact-field__req{ display:inline-block; margin-left:8px; padding:2px 7px; border-radius:4px; font-size:10.5px; letter-spacing:0.08em; background:rgba(250,174,187,0.18); color:#FAAEBB; vertical-align:1px; }
.contact-field-row{ display:flex; gap:16px; }
.contact-field-row .contact-field{ flex:1 1 0; min-width:0; }
@media (max-width:520px){ .contact-field-row{ flex-direction:column; } }
.contact-form__submit{
  align-self:center; margin-top:8px; border:none; cursor:pointer; background:#FAAEBB; color:#4E2A33;
  font-family:'Shippori Mincho',serif; font-size:15px; letter-spacing:0.18em; padding:13px 46px; border-radius:999px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.contact-form__submit:hover{ transform:translateY(-2px); box-shadow:0 8px 22px rgba(250,174,187,0.45); }
.contact-form__submit:disabled{ opacity:0.6; cursor:default; transform:none; box-shadow:none; }
.contact-form__status{ align-self:center; margin-top:4px; font-size:14px; letter-spacing:0.04em; text-align:center; }
.contact-form__status.is-error{ color:#ff9db0; }
.contact-links{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:26px; margin-top:46px; font-family:'Cormorant Garamond',serif; letter-spacing:0.18em; font-size:14px; }
.contact-links a{ color:rgba(244,231,235,0.78); text-decoration:none; transition:color .25s ease; }
.contact-links a:hover{ color:#FAAEBB; }
.contact-links span{ opacity:0.3; }

/* thanks overlay (shown after contact submit) */
.thanks-overlay{ position:absolute; inset:0; z-index:30; pointer-events:none; overflow:hidden; }
.thanks-overlay__backdrop{ position:absolute; inset:0; background:rgba(78,73,79,0.88); opacity:0; }
.thanks-overlay__msg{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); text-align:center; font-family:'Shippori Mincho',serif; color:#F4E7EB; opacity:0; width:88%; }
.thanks-overlay__title{ font-size:clamp(22px,3vw,30px); letter-spacing:0.14em; margin-bottom:12px; }
.thanks-overlay__sub{ font-size:13px; letter-spacing:0.06em; line-height:1.9; color:rgba(244,231,235,0.72); }
.thanks-overlay__petal{ position:absolute; top:-34px; opacity:0; clip-path:polygon(50% 0,62% 16%,58% 64%,50% 100%,42% 64%,38% 16%); background:linear-gradient(to top,#e6cdd4,#FAAEBB); }

/* ===== Footer ===== */
.footer{ position:relative; z-index:1; background:#4E494F; color:rgba(244,231,235,0.66); padding:46px 24px; text-align:center; border-top:1px solid rgba(255,255,255,0.08); }
.footer__name{ font-family:'Shippori Mincho',serif; font-weight:600; font-size:19px; color:#F4E7EB; letter-spacing:0.12em; }
.footer__romaji{ font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:0.24em; font-size:11px; color:#FAAEBB; margin-top:5px; }
.footer__copy{ margin-top:20px; font-size:12px; letter-spacing:0.06em; }
.footer__visits{ margin-top:11px; font-size:12px; letter-spacing:0.06em; }
#visit-count{ color:#FAAEBB; font-weight:600; }

/* ===== Overlays ===== */
.grain{ position:fixed; inset:0; pointer-events:none; z-index:45; box-shadow:inset 0 0 240px 70px rgba(18,16,20,0.5); }
.grain::before{
  content:''; position:absolute; inset:0; opacity:0.045; mix-blend-mode:overlay;
  background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22140%22 height=%22140%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.85%22 numOctaves=%222%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/%3E%3C/svg%3E');
}
.ripple-canvas{ position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:9999; }
