/* ============================================================
   AWGroup ｜ Cast Recruit LP  —  CORE
   Aesthetic: yumekawa × editorial × Alice in Wonderland
   pink / aqua / lavender · cream paper · gold accents
   ============================================================ */

:root{
  --blush:#FFF3F8;
  --cream:#FFF8F3;
  --paper:#FFFFFF;
  --rose:#FF4F94;
  --rose-deep:#D81E72;
  --rose-ink:#B81C66;
  --magenta:#FF6FB0;
  --pink-soft:#FFD6E8;
  --gold:#C8973B;
  --gold-light:#F5DD9A;
  --gold-mid:#E6BE5C;
  --aqua:#5FC2EC;
  --aqua-deep:#2E9BCB;
  --sky:#A9E0F7;
  --peri:#9CA6F0;
  --lav:#B79CFF;
  --lav-deep:#7C5BD0;
  --mint:#BDEFE2;
  --ink:#2A1830;
  --ink-soft:#6E4D62;
  --ink-faint:#A98699;
  --plum:#3A1140;
  --plum-2:#5B1E5C;

  --foil:linear-gradient(100deg,#B07A2A 0%,#E9C66A 22%,#FFF3CF 38%,#D9A845 52%,#F4D98E 70%,#B98230 100%);
  --rose-grad:linear-gradient(120deg,#FF8FC0 0%,#FF4F94 46%,#D81E72 100%);
  --dream-grad:linear-gradient(150deg,#FFE3F0 0%,#FBE7FF 42%,#E7F2FF 100%);
  --tri-grad:linear-gradient(100deg,#FF7EB6 0%,#C79BF2 50%,#74C8EE 100%);
  --tri-soft:linear-gradient(115deg,#FFAFD4 0%,#C9ADF0 50%,#8FD3F0 100%);

  --shadow-rose:0 22px 46px -20px rgba(216,30,114,.5);
  --shadow-soft:0 18px 40px -22px rgba(90,30,70,.4);
  --shadow-pop:0 30px 60px -24px rgba(120,40,110,.5);

  --maxw:520px;
  --pad:clamp(22px,6.4vw,34px);

  --f-disp:"Zen Maru Gothic",sans-serif;
  --f-body:"Zen Kaku Gothic New",sans-serif;
  --f-serif:"Cormorant Garamond",serif;
  --f-mincho:"Shippori Mincho B1",serif;
  --f-fashion:"Bodoni Moda",serif;
  --f-script:"Pinyon Script",cursive;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--f-body);
  color:var(--ink);
  line-height:1.85;
  letter-spacing:.012em;
  background:#1a0b22;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  overflow-anchor:none; /* 2026-07-17 追加: pin セクション URL bar 変動時の scroll 位置自動補正無効化 (ガタつき対策) */
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ---------- ambient field (behind the column, full viewport) ---------- */
.ambient{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:linear-gradient(160deg,#FBEAF4 0%,#F3ECFF 46%,#E7F4FF 100%);}
.ambient__blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.6;
  mix-blend-mode:multiply;will-change:transform;}
.ambient__blob.b1{width:60vw;height:60vw;left:-14vw;top:-8vh;
  background:radial-gradient(circle at 40% 40%,#FFC0DF,#FFC0DF00 70%);
  animation:blobA 26s ease-in-out infinite;}
.ambient__blob.b2{width:54vw;height:54vw;right:-12vw;top:18vh;
  background:radial-gradient(circle at 50% 50%,#BFE3FF,#BFE3FF00 70%);
  animation:blobB 32s ease-in-out infinite;}
.ambient__blob.b3{width:64vw;height:64vw;left:6vw;bottom:-16vh;
  background:radial-gradient(circle at 50% 50%,#D9C8FF,#D9C8FF00 70%);
  animation:blobC 30s ease-in-out infinite;}
.ambient__grain{position:absolute;inset:-50%;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
@keyframes blobA{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(8vw,6vh) scale(1.12);}}
@keyframes blobB{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-7vw,8vh) scale(1.1);}}
@keyframes blobC{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(5vw,-7vh) scale(1.14);}}

/* sparkle canvas sits above ambient, below column */
#sparkles{position:fixed;inset:0;z-index:1;pointer-events:none;}

/* ---------- the mobile stage / column ---------- */
.stage{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;
  background:var(--cream);min-height:100vh;overflow-x:clip;
  box-shadow:0 0 90px -10px rgba(80,20,70,.45),0 0 0 1px rgba(255,255,255,.4);}

/* shared section padding */
.sec{position:relative;padding:clamp(76px,17vw,108px) var(--pad);z-index:2;}
.sec--tight{padding-top:clamp(40px,10vw,64px);}

/* ---------- editorial heading kit ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-serif);
  font-style:italic;font-weight:600;letter-spacing:.34em;text-transform:uppercase;
  font-size:12px;color:var(--rose-deep);}
.eyebrow::before,.eyebrow::after{content:"";width:22px;height:1px;background:currentColor;opacity:.5;}
.eyebrow--solo::after{display:none;}

.kicker{font-family:var(--f-mincho);font-size:13px;letter-spacing:.18em;color:var(--ink-soft);}

.h-jp{font-family:var(--f-disp);font-weight:900;line-height:1.32;letter-spacing:.01em;
  font-size:clamp(28px,8.4vw,40px);color:var(--ink);}
.h-jp .accent{color:var(--rose-deep);}
.h-serif{font-family:var(--f-serif);font-weight:600;line-height:1.05;
  font-size:clamp(44px,14vw,68px);letter-spacing:.01em;}
.h-serif em{font-style:italic;}

.lead{font-size:clamp(15px,4vw,17px);line-height:2.05;color:var(--ink-soft);}
.lead b{color:var(--ink);font-weight:700;}

/* gradient + foil text */
.g-rose{background:var(--rose-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.g-tri{background:var(--tri-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.foil{background:var(--foil);background-size:200% auto;-webkit-background-clip:text;background-clip:text;
  color:transparent;animation:foilSweep 6s linear infinite;}
@keyframes foilSweep{to{background-position:200% center;}}

/* vertical romaji label */
.vlabel{writing-mode:vertical-rl;font-family:var(--f-serif);font-style:italic;
  letter-spacing:.3em;text-transform:uppercase;font-size:11px;color:var(--ink-faint);}

/* utility */
.center{text-align:center;}
.mt-s{margin-top:14px;} .mt-m{margin-top:26px;} .mt-l{margin-top:42px;}
.nowrap{white-space:nowrap;}

@media (prefers-reduced-motion:reduce){
  .ambient__blob,.foil{animation:none !important;}
}
