:root {
  --orange: #ff642e;
  --orange-dark: #db4217;
  --amber: #ffad22;
  --yellow: #ffd64d;
  --ink: #2a160f;
  --muted: #74584d;
  --cream: #fff9f1;
  --paper: #ffffff;
  --line: #f0d8c7;
  --shadow: 0 18px 50px rgba(112, 45, 13, .14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff4e7; font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; font-feature-settings: "palt"; line-height: 1.75; }
a { color: inherit; }
img { display: block; width: 100%; }
.site-shell { width: min(100%, 1180px); margin: 0 auto; background: var(--paper); box-shadow: 0 0 60px rgba(128, 53, 17, .13); overflow: hidden; }
.topbar { display: flex; align-items: center; justify-content: space-between; min-height: 108px; padding: 6px clamp(20px, 5vw, 64px); background: rgba(255, 255, 255, .96); }
.brand { color: var(--orange-dark); font-size: clamp(23px, 3.3vw, 38px); line-height: 1; font-weight: 1000; letter-spacing: .04em; text-decoration: none; }
.brand small { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .27em; }
.topbar__link { padding: 9px 18px; border: 2px solid var(--orange); border-radius: 999px; color: var(--orange-dark); font-size: 13px; font-weight: 900; text-decoration: none; }
.topbar__logo { display: block; flex: 0 0 auto; border-radius: 50%; transition: transform .2s ease; }
.topbar__logo:hover { transform: scale(1.04); }
.topbar__logo img { width: clamp(86px, 10vw, 116px); height: auto; }
.hero { position: relative; isolation: isolate; min-height: 700px; display: grid; align-items: center; overflow: hidden; padding: clamp(54px, 8vw, 100px) clamp(24px, 6.5vw, 82px); color: #fff; background: #f75a27; }
.hero::before { position: absolute; z-index: -2; inset: 0; content: ""; background: linear-gradient(90deg, rgba(69, 15, 2, .84) 0%, rgba(123, 34, 8, .72) 43%, rgba(255, 92, 36, .18) 75%), url("/vocalist-audition-assets/fv_slide.png") center 38% / cover no-repeat; }
.hero::after { position: absolute; z-index: -1; width: 540px; height: 540px; right: -180px; bottom: -240px; border: 70px solid rgba(255, 221, 92, .34); border-radius: 50%; content: ""; }
.hero__content { max-width: 680px; }
.eyebrow { display: inline-flex; gap: 8px; align-items: center; margin: 0 0 22px; padding: 7px 16px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 999px; background: rgba(45, 14, 5, .25); font-size: clamp(12px, 2vw, 15px); font-weight: 900; letter-spacing: .08em; }
.hero h1 { margin: 0; font-size: clamp(40px, 7.3vw, 82px); line-height: 1.12; font-weight: 1000; letter-spacing: -.035em; text-shadow: 0 5px 25px rgba(50, 12, 2, .33); }
.hero h1 span { display: block; margin-bottom: 10px; color: var(--yellow); font-size: .49em; letter-spacing: .06em; }
.hero__lead { margin: 25px 0 0; font-size: clamp(18px, 2.7vw, 27px); line-height: 1.65; font-weight: 900; }
.hero__badges { display: flex; flex-wrap: wrap; gap: 9px; margin: 26px 0 32px; padding: 0; list-style: none; }
.hero__badges li { padding: 7px 13px; border-radius: 8px; color: #7c2a0d; background: #fff5d9; font-size: 14px; font-weight: 900; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 66px; padding: 14px 29px; border: 0; border-radius: 999px; color: #612207; background: linear-gradient(90deg, #ffe16c, #ffb62f); box-shadow: 0 10px 0 #d64616, 0 18px 30px rgba(69, 18, 4, .25); font-size: clamp(17px, 2.4vw, 22px); font-weight: 1000; text-align: center; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 0 #d64616, 0 21px 34px rgba(69, 18, 4, .28); }
.button--light { box-shadow: 0 9px 0 #c73e13, 0 16px 30px rgba(69, 18, 4, .18); }
.hero__note { margin: 22px 0 0; font-size: 12px; font-weight: 700; opacity: .88; }
.section { position: relative; padding: clamp(70px, 9vw, 118px) clamp(22px, 7vw, 84px); }
.section--cream { background: var(--cream); }
.section--orange { color: #fff; background: linear-gradient(135deg, #fa5825, #ff912c); }
.section-tag { display: table; margin: 0 auto 13px; padding: 5px 16px; border-radius: 999px; color: #fff; background: linear-gradient(90deg, var(--orange), var(--amber)); font-size: 13px; font-weight: 1000; letter-spacing: .1em; }
.section--orange .section-tag { color: #d54a17; background: #fff3ce; }
.section-title { margin: 0; text-align: center; font-size: clamp(29px, 5vw, 50px); line-height: 1.35; font-weight: 1000; letter-spacing: -.025em; }
.section-lead { max-width: 760px; margin: 18px auto 0; color: var(--muted); text-align: center; font-size: clamp(15px, 2.3vw, 20px); font-weight: 700; }
.section--orange .section-lead { color: rgba(255, 255, 255, .9); }
.worry-grid, .producer-grid, .support-grid, .collab-grid, .facts-grid { display: grid; gap: 22px; margin-top: 48px; }
.worry-grid { grid-template-columns: repeat(3, 1fr); }
.worry-card { position: relative; min-height: 205px; padding: 35px 25px 27px; border: 2px solid #f5d6c1; border-radius: 24px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.worry-card::before { display: grid; width: 51px; height: 51px; margin: -61px auto 18px; place-items: center; border-radius: 50%; content: "？"; color: #fff; background: linear-gradient(145deg, var(--amber), var(--orange)); font-size: 29px; font-weight: 1000; }
.worry-card p { margin: 0; font-size: 19px; font-weight: 900; }
.answer-line { margin: 40px auto 0; color: var(--orange-dark); text-align: center; font-size: clamp(23px, 4vw, 36px); line-height: 1.5; font-weight: 1000; }
.authority-intro { max-width: 880px; margin: 42px auto 0; padding: 25px 28px; border: 2px solid #ffd59c; border-radius: 20px; color: #742b0c; background: #fff7e8; text-align: center; font-size: clamp(17px, 2.6vw, 23px); font-weight: 900; }
.producer-grid { grid-template-columns: repeat(3, 1fr); }
.producer-card { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.producer-card__head { position: relative; display: flex; align-items: center; gap: 17px; min-height: 130px; padding: 24px; color: #fff; background: linear-gradient(135deg, #ff5e2b, #ff9f23); }
.producer-card__initial { flex: 0 0 82px; display: block; width: 82px; height: 82px; overflow: hidden; border: 3px solid rgba(255,255,255,.9); border-radius: 50%; background: #fff3e7; box-shadow: 0 7px 18px rgba(85, 22, 3, .22); }
.producer-card__initial img { width: 100%; height: 100%; object-fit: cover; }
.producer-card__initial--komo img { object-position: center 25%; }
.producer-card__initial--sayta img { object-position: center 27%; }
.producer-card__initial--hondub img { object-position: center 20%; }
.producer-card__head small { display: block; font-weight: 900; letter-spacing: .13em; opacity: .85; }
.producer-card__head h3 { margin: 3px 0 0; font-size: 27px; line-height: 1.2; }
.producer-card__body { padding: 25px; }
.producer-card__claim { margin: 0 0 13px; color: var(--orange-dark); font-size: 18px; line-height: 1.55; font-weight: 1000; }
.producer-card__body p:last-child { margin: 0; color: var(--muted); font-size: 14px; font-weight: 700; }
.support-grid { grid-template-columns: repeat(4, 1fr); }
.support-card { overflow: hidden; border-radius: 26px; color: var(--ink); background: #fff; box-shadow: 0 18px 40px rgba(106, 33, 8, .2); }
.support-card__visual { height: 180px; overflow: hidden; background: linear-gradient(135deg, #ffe76c, #ff9e25); }
.support-card__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease; }
.support-card:hover .support-card__visual img { transform: scale(1.035); }
.support-card__body { padding: 27px 25px 30px; }
.support-card__number { color: var(--orange); font-size: 13px; font-weight: 1000; letter-spacing: .15em; }
.support-card h3 { margin: 7px 0 12px; font-size: 23px; line-height: 1.4; }
.support-card p { margin: 0; color: var(--muted); font-size: 15px; font-weight: 700; }
.collab-title { margin: 62px 0 0; text-align: center; font-size: clamp(23px, 3.5vw, 34px); }
.collab-grid { grid-template-columns: repeat(3, 1fr); margin-top: 25px; }
.collab-card { overflow: hidden; border: 1px solid rgba(255,255,255,.55); border-radius: 18px; background: rgba(100, 25, 4, .2); text-align: center; font-weight: 900; box-shadow: 0 14px 30px rgba(98, 28, 5, .18); }
.collab-card__visual { height: 170px; overflow: hidden; background: #d94719; }
.collab-card__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease; }
.collab-card:hover .collab-card__visual img { transform: scale(1.035); }
.collab-card strong { display: block; padding: 20px 15px 22px; font-size: 16px; line-height: 1.5; }
.facts-grid { grid-template-columns: repeat(2, 1fr); }
.fact-card { padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 11px 28px rgba(95, 41, 17, .08); }
.fact-card dt { color: var(--orange-dark); font-size: 18px; font-weight: 1000; }
.fact-card dd { margin: 7px 0 0; color: var(--muted); font-size: 15px; font-weight: 700; }
.fact-card--important { border: 2px solid #ffb15d; background: #fff8e9; }
.flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 48px 0 0; padding: 0; list-style: none; }
.flow li { position: relative; padding: 22px 13px; border-radius: 15px; background: #fff0dc; text-align: center; font-size: 14px; font-weight: 900; }
.flow b { display: block; margin-bottom: 6px; color: var(--orange); font-size: 12px; letter-spacing: .12em; }
.flow li:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -11px; content: "›"; color: var(--orange); font-size: 27px; line-height: 1; transform: translateY(-55%); }
.faq { max-width: 900px; margin: 54px auto 0; }
.faq h3 { margin: 0 0 17px; text-align: center; font-size: 26px; }
.faq details { margin-top: 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.faq summary { position: relative; padding: 19px 52px 19px 22px; cursor: pointer; font-weight: 900; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { position: absolute; top: 18px; right: 21px; content: "+"; color: var(--orange); font-size: 24px; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin: 0; padding: 0 22px 20px; color: var(--muted); font-size: 15px; font-weight: 700; }
.postscript { position: relative; isolation: isolate; overflow: hidden; padding: clamp(80px, 10vw, 130px) clamp(24px, 8vw, 95px); color: #fff; background: linear-gradient(135deg, #ba3211, #ff672a 52%, #ffb529); text-align: center; }
.postscript::before, .postscript::after { position: absolute; z-index: -1; content: "♪"; color: rgba(255, 255, 255, .15); font-size: 190px; font-weight: 1000; }
.postscript::before { top: -35px; left: 4%; transform: rotate(-14deg); }
.postscript::after { right: 4%; bottom: -65px; transform: rotate(13deg); }
.postscript .section-tag { color: var(--orange-dark); background: #fff; }
.postscript h2 { margin: 0; font-size: clamp(35px, 6vw, 63px); line-height: 1.3; font-weight: 1000; }
.postscript__copy { max-width: 770px; margin: 23px auto 34px; font-size: clamp(17px, 2.8vw, 23px); font-weight: 800; }
.postscript__small { margin: 25px 0 0; font-size: 12px; font-weight: 700; opacity: .88; }
.footer { padding: 35px 22px 105px; color: #76574b; background: #fff8ef; text-align: center; font-size: 12px; }
.footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 17px; margin-bottom: 18px; }
.footer__links a { font-weight: 800; }
.floating-cta { position: fixed; z-index: 30; left: 50%; bottom: 13px; width: min(calc(100% - 28px), 560px); padding: 14px 20px; border: 3px solid #fff; border-radius: 999px; color: #612207; background: linear-gradient(90deg, #ffe469, #ffad25); box-shadow: 0 9px 25px rgba(74, 22, 4, .3); font-size: clamp(16px, 3vw, 20px); font-weight: 1000; text-align: center; text-decoration: none; transform: translateX(-50%); }
@media (max-width: 820px) {
  .hero { min-height: 690px; align-items: end; padding-top: 210px; }
  .hero::before { background: linear-gradient(0deg, rgba(79,18,3,.94) 0%, rgba(117,29,6,.66) 58%, rgba(255,93,35,.04) 100%), url("/vocalist-audition-assets/fv_slide.png") center 24% / cover no-repeat; }
  .worry-grid, .producer-grid, .support-grid { grid-template-columns: 1fr; }
  .worry-grid { gap: 45px; }
  .worry-card { min-height: 0; }
  .producer-card__head { min-height: 108px; }
  .collab-grid { grid-template-columns: 1fr; gap: 10px; }
  .facts-grid { grid-template-columns: 1fr; }
  .flow { grid-template-columns: 1fr; }
  .flow li:not(:last-child)::after { top: auto; right: 50%; bottom: -24px; transform: translateX(50%) rotate(90deg); }
}
@media (min-width: 821px) and (max-width: 1080px) {
  .support-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .topbar { min-height: 82px; padding-top: 3px; padding-bottom: 3px; }
  .topbar__link { padding: 7px 11px; font-size: 11px; }
  .topbar__logo img { width: 78px; }
  .hero { min-height: 650px; padding-left: 20px; padding-right: 20px; }
  .hero__badges li { font-size: 12px; }
  .button { width: 100%; padding-left: 18px; padding-right: 18px; }
  .section { padding-left: 18px; padding-right: 18px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }
