.landing-hero { min-height: 760px; padding-top: 176px; padding-bottom: 116px; background: radial-gradient(circle at 50% 5%, rgba(37,99,235,.14), transparent 34%), linear-gradient(180deg, #f8fbff 0%, #fff 82%); }
.landing-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(37,99,235,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(37,99,235,.035) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to bottom, #000, transparent 74%); }
.landing-orb { position: absolute; border-radius: 50%; filter: blur(4px); pointer-events: none; }
.landing-orb-one { width: 360px; height: 360px; top: 120px; left: -150px; background: rgba(96,165,250,.13); }
.landing-orb-two { width: 320px; height: 320px; top: 160px; right: -130px; background: rgba(167,139,250,.12); }
.landing-hero-content { max-width: 1040px; text-align: center; }
.landing-hero h1 { max-width: 1020px; margin: 26px auto 24px; font-size: clamp(48px, 6.1vw, 76px); line-height: 1.1; letter-spacing: -.06em; }
.landing-hero-copy { max-width: 850px; margin: 0 auto; color: var(--text); font-size: 18px; line-height: 1.9; }
.landing-hero .hero-actions { display: flex; justify-content: center; gap: 13px; margin-top: 34px; }
.landing-proof { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 28px; color: #334155; font-size: 13px; }
.landing-proof span { padding: 9px 13px; border: 1px solid #dbeafe; border-radius: 999px; background: rgba(255,255,255,.78); box-shadow: 0 10px 24px rgba(30,64,175,.06); }
.landing-proof i { margin-right: 6px; color: var(--blue); font-style: normal; font-weight: 800; }
.landing-effect { background: linear-gradient(180deg, #fff, #f8fbff); }
.landing-effect .center-heading { max-width: 900px; }
.landing-demo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: stretch; }
.landing-source, .landing-result { min-width: 0; }
.landing-source pre { min-height: 470px; font-size: 13px; line-height: 1.85; }
.demo-title { display: flex; align-items: center; gap: 8px; }
.demo-status { width: 8px; height: 8px; border-radius: 50%; }
.demo-status-muted { background: #94a3b8; }
.demo-status-good { background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.1); }
.demo-caption { margin: 16px 0 0; color: #64748b; font-size: 13px; line-height: 1.7; }
.landing-word-result { min-height: 470px; padding: 34px 38px; }
.landing-word-result h3 { text-align: left; margin-bottom: 24px; }
.landing-word-result table { margin: 18px 0; }
.word-code { margin: 18px 0; padding: 14px 16px; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 10px; color: #334155; background: #f8fafc; font: 12px/1.7 "SFMono-Regular", Consolas, monospace; white-space: pre-wrap; }
.landing-demo-note { margin: 30px 0 0; text-align: center; color: #334155; font-size: 16px; font-weight: 650; }
.format-mapping-note { max-width: 900px; margin: 24px auto 0; padding: 24px 28px; border-left: 3px solid #60a5fa; border-radius: 0 16px 16px 0; background: rgba(239,246,255,.72); }
.format-mapping-note h3 { margin: 0 0 10px; color: #172554; font-size: 18px; line-height: 1.55; letter-spacing: -.02em; }
.format-mapping-note p { margin: 0; color: #475569; font-size: 14px; line-height: 1.85; }
.step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.step-card { min-height: 265px; padding: 32px; border: 1px solid #dbe5f2; border-radius: 24px; background: #fff; box-shadow: 0 22px 60px rgba(15,23,42,.06); }
.step-number { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--blue), var(--purple)); box-shadow: 0 10px 24px rgba(37,99,235,.2); font-weight: 800; }
.step-card h3 { margin: 27px 0 12px; font-size: 20px; letter-spacing: -.03em; }
.step-card p { margin: 0; color: var(--text); font-size: 14px; line-height: 1.85; }
.step-hint { max-width: 900px; margin: 22px auto 0; color: #64748b; text-align: center; font-size: 13px; line-height: 1.75; }
.landing-reason { background: #0b1120; color: #fff; }
.landing-reason::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 75% 35%, rgba(37,99,235,.18), transparent 36%); }
.reason-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.reason-copy .section-label { color: #93c5fd; }
.reason-copy h2 { margin: 20px 0 24px; font-size: clamp(35px, 4vw, 52px); line-height: 1.18; letter-spacing: -.05em; }
.reason-copy p { color: #cbd5e1; font-size: 16px; line-height: 1.9; }
.reason-card { padding: 20px; border: 1px solid rgba(148,163,184,.18); border-radius: 24px; background: rgba(255,255,255,.06); box-shadow: 0 28px 80px rgba(0,0,0,.18); }
.reason-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.reason-card li { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid rgba(148,163,184,.14); border-radius: 14px; color: #e2e8f0; background: rgba(15,23,42,.38); font-size: 14px; line-height: 1.6; }
.reason-card li span { flex: 0 0 42px; color: #93c5fd; font-family: Consolas, monospace; font-weight: 800; }
.landing-structures { background: linear-gradient(180deg, #f8fbff, #fff); }
.structure-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 15px; }
.structure-grid article { min-height: 205px; padding: 25px 21px; border: 1px solid #dbe5f2; border-radius: 20px; background: rgba(255,255,255,.92); box-shadow: 0 18px 48px rgba(30,64,175,.06); }
.structure-grid article > span { display: inline-grid; place-items: center; min-width: 48px; height: 34px; padding: 0 10px; border-radius: 9px; color: #1d4ed8; background: #eff6ff; font: 700 12px/1 Consolas, monospace; }
.structure-grid h3 { margin: 24px 0 10px; font-size: 17px; }
.structure-grid p { margin: 0; color: var(--text); font-size: 13px; line-height: 1.75; }
.route-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 980px; margin: 0 auto; }
.route-grid article { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; position: relative; min-height: 190px; padding: 54px 24px 24px; border: 1px solid #e2e8f0; border-radius: 24px; background: #f8fafc; }
.route-grid article > span { position: absolute; top: 20px; left: 24px; color: #64748b; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.route-grid article > div { display: grid; place-items: center; min-height: 76px; padding: 12px; border-radius: 14px; color: #334155; background: #fff; text-align: center; font-size: 13px; font-weight: 700; }
.route-grid b { color: #94a3b8; }
.route-grid .route-manual { color: #9f1239; background: #fff1f2; }
.route-grid .route-good { border-color: #bfdbfe; background: linear-gradient(135deg, #eff6ff, #f5f3ff); box-shadow: 0 22px 60px rgba(37,99,235,.1); }
.route-grid .route-good > span, .route-grid .route-good b { color: var(--blue); }
.landing-faq { background: #f8fafc; }
.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 76px; align-items: start; }
.faq-heading { position: sticky; top: 110px; }
.faq-heading h2 { margin: 18px 0; font-size: 44px; letter-spacing: -.05em; }
.faq-heading p { color: var(--text); line-height: 1.8; }
.faq-list { display: grid; gap: 12px; }
.faq-list details { padding: 0 22px; border: 1px solid #dbe5f2; border-radius: 17px; background: #fff; box-shadow: 0 12px 32px rgba(15,23,42,.04); }
.faq-list summary { position: relative; padding: 21px 34px 21px 0; cursor: pointer; list-style: none; color: #0f172a; font-size: 15px; font-weight: 750; line-height: 1.5; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 0; top: 18px; color: var(--blue); font-size: 22px; font-weight: 500; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { margin: 0; padding: 0 0 22px; color: var(--text); font-size: 14px; line-height: 1.8; }
.landing-download { padding-top: 92px; }
@media (max-width: 1000px) { .structure-grid { grid-template-columns: repeat(3, 1fr); } .reason-layout { gap: 42px; } }
@media (max-width: 900px) { .landing-hero { min-height: auto; padding-top: 145px; } .landing-demo-grid, .reason-layout, .faq-layout { grid-template-columns: 1fr; } .landing-source pre, .landing-word-result { min-height: auto; } .step-grid { grid-template-columns: 1fr; } .step-card { min-height: auto; } .reason-layout, .faq-layout { gap: 40px; } .faq-heading { position: static; } .route-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .landing-hero { padding-top: 112px; padding-bottom: 78px; }
  .landing-hero h1 { font-size: 40px; line-height: 1.16; }
  .landing-hero h1 br { display: none; }
  .landing-hero-copy { font-size: 15px; line-height: 1.8; }
  .landing-hero .hero-actions { flex-direction: column; max-width: 310px; margin-left: auto; margin-right: auto; }
  .landing-proof { align-items: stretch; flex-direction: column; max-width: 310px; margin-left: auto; margin-right: auto; text-align: left; }
  .landing-source, .landing-result { padding: 16px; border-radius: 18px; }
  .landing-source pre { padding: 16px; font-size: 11px; line-height: 1.75; }
  .landing-word-result { padding: 25px 21px; }
  .landing-word-result h3 { font-size: 20px; }
  .format-mapping-note { padding: 20px; border-radius: 0 14px 14px 0; }
  .format-mapping-note h3 { font-size: 16px; }
  .step-card { padding: 25px; border-radius: 19px; }
  .step-hint { text-align: left; }
  .reason-copy h2, .faq-heading h2 { font-size: 32px; }
  .reason-card { padding: 12px; border-radius: 19px; }
  .reason-card li { align-items: flex-start; padding: 14px; }
  .structure-grid { grid-template-columns: 1fr; }
  .structure-grid article { min-height: auto; }
  .route-grid article { grid-template-columns: 1fr; gap: 8px; padding: 54px 18px 20px; }
  .route-grid article > div { min-height: 58px; }
  .route-grid b { transform: rotate(90deg); text-align: center; }
  .faq-list details { padding: 0 18px; }
  .landing-download { padding-top: 72px; }
}
