/* Landing styles are isolated from the shared authentication pages. */
body.landing {
  --ink: #19372e;
  --muted: #5e6a63;
  --border: #dce2d9;
  --focus: #7bb095;
  display: block;
  padding: 0;
  color: var(--ink);
  background: #fafbf7;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.landing :where(h1, h2, h3, p, figure) { margin: 0; }
.landing a { color: inherit; }
.landing :where(a, button, input, select):focus-visible { outline: 3px solid #518768; outline-offset: 5px; }
.landing-skip { position: absolute; top: 8px; inset-inline-start: 16px; transform: translateY(-150%); padding: 10px 16px; background: #fff; z-index: 10; }
.landing-skip:focus { transform: translateY(0); }
.landing-header, .landing-main, .landing-footer { width: min(1200px, calc(100% - 96px)); margin: 0 auto; }
.landing-header { display: flex; align-items: center; gap: 28px; min-height: 100px; border-bottom: 1px solid var(--border); }
.landing-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-size: 16px; font-weight: 650; white-space: nowrap; letter-spacing: -0.045em; }
.brand-symbol { display: grid; place-items: center; width: 37px; height: 37px; background: var(--ink); border-radius: 6px; color: #f9fbed; font-family: serif; font-size: 14px; letter-spacing: -0.06em; font-weight: 500; }
.landing-nav { margin-inline-start: auto; display: flex; align-items: center; gap: 26px; font-size: 13px; font-weight: 550; }
.landing-nav a { text-decoration: none; padding: 10px 0; }
.landing-nav a:hover, .landing-text-link:hover, .landing-footer > a:last-child:hover { text-decoration: underline; text-underline-offset: 5px; }
.landing-nav .nav-signin { display: flex; gap: 14px; }
.landing .locale-form { margin: 0; }
.landing .locale-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.landing .locale-select { background: transparent; min-height: 38px; width: 126px; padding: 7px; font-size: 12px; border-color: #d3dbd1; }
main.landing-main { padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
.landing-hero { display: grid; grid-template-columns: 0.9fr 1.2fr; gap: 55px; padding: 87px 0 76px; align-items: center; }
.landing-eyebrow { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 650; letter-spacing: 0.075em; text-transform: uppercase; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #78953d; flex: 0 0 auto; }
.landing h1 { font-size: clamp(42px, 4.1vw, 58px); line-height: 1.12; letter-spacing: -0.06em; font-weight: 580; margin: 22px 0; text-wrap: balance; }
.landing h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -0.06em; color: #4f785b; }
.hero-description { max-width: 450px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.hero-actions { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin: 28px 0 12px; }
.landing-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 46px; padding: 12px 19px; border: 1px solid transparent; border-radius: 6px; text-decoration: none; font-size: 13px; font-weight: 600; line-height: 1.5; transition: background-color 150ms; }
.landing-button.primary { background: var(--ink); color: #fff; }
.landing-button.primary:hover { background: #31533d; }
.landing-button.light { color: var(--ink); background: #e7f0c8; }
.landing-button.light:hover { background: #f4f9e6; }
.landing-text-link { display: inline-flex; gap: 12px; align-items: center; text-decoration: none; font-size: 12px; font-weight: 600; }
.hero-reassurance { font-size: 11px; color: var(--muted); }
.product-preview { min-width: 0; border: 1px solid #cdd7c6; background: #eef1e8; border-radius: 11px; box-shadow: 0 18px 40px -25px #19372e55; overflow: hidden; transform: rotate(-1deg); }
.preview-chrome { display: flex; align-items: center; gap: 8px; padding: 12px 15px; border-bottom: 1px solid #d1dacb; font-size: 10px; font-weight: 550; }
.preview-logo { width: 20px; height: 20px; display: grid; place-items: center; background: var(--ink); color: #fff; border-radius: 4px; font-family: serif; font-size: 10px; }
.preview-live { margin-inline-start: auto; display: flex; gap: 5px; font-size: 9px; color: #5b7259; }
.preview-live > span { color: #7f9954; font-size: 8px; }
.preview-body { display: grid; grid-template-columns: 0.69fr 1.1fr; gap: 14px; padding: 18px 15px 12px; align-items: start; }
.preview-sources { min-width: 0; }
.preview-section-label { display: flex; justify-content: space-between; font-size: 10px; font-weight: 650; margin: 0 0 12px !important; }
.preview-section-label > span { color: #8c9982; font-size: 9px; }
.sample-log { background: #fbfcf7; border: 1px solid #d9e0d2; border-radius: 5px; padding: 13px 11px; margin-bottom: 10px; }
.sample-icon { width: 22px; height: 22px; display: grid; place-items: center; background: #e7eddb; color: #46734e; border-radius: 5px; font-size: 13px; margin-bottom: 8px; }
.sample-icon.amber { color: #8a6d33; background: #f1e9d7; font-family: Georgia, serif; }
.sample-log h3 { font-size: 10px; font-weight: 650; margin-bottom: 5px; }
.sample-log p { font-size: 9px; line-height: 1.7; color: #66715e; }
.sample-tag { display: inline-block; margin-top: 9px; padding: 2px 5px; font-size: 8px; line-height: 1.5; border-radius: 3px; }
.sample-tag.green { background: #e9efdf; color: #4c6f43; }
.sample-tag.amber { background: #f7eedb; color: #826832; }
.preview-source-footer { display: flex; gap: 4px; font-size: 9px; color: #68775c; padding: 2px; }
.preview-report { background: white; border: 1px solid #d6ddcf; border-radius: 5px; padding: 18px; min-width: 0; box-shadow: 0 4px 10px #1b3a2910; }
.report-kicker { display: flex; justify-content: space-between; gap: 7px; align-items: center; font-size: 9px; font-weight: 650; }
.draft-badge { border: 1px solid #d3dacb; padding: 1px 5px; border-radius: 4px; font-size: 8px; font-weight: 500; color: #637057; }
.preview-report h2 { font-family: Georgia, "Times New Roman", serif; font-size: 22px; line-height: 1.2; font-weight: 500; letter-spacing: -0.04em; margin: 19px 0 9px; }
.report-period { color: #7b8473; font-size: 8px; padding-bottom: 14px; border-bottom: 1px solid #e7eadf; }
.sample-report-section { margin: 14px 0; }
.sample-report-section h3 { display: flex; align-items: center; gap: 7px; font-size: 9px; font-weight: 650; margin-bottom: 7px; }
.sample-report-section h3 > span { color: #869477; font-size: 8px; font-weight: 500; }
.sample-report-section p { font-size: 10px; line-height: 1.8; color: #5a6454; }
.sample-report-section .report-highlight { padding: 7px 9px; background: #f0f4d6; border-inline-start: 2px solid #a7b565; color: #455733; }
.change-annotation { color: #70813f; font-size: 8px; display: flex; align-items: center; gap: 4px; margin: 5px 0 0; }
.preview-report-footer { border-top: 1px solid #e7eadf; padding-top: 12px; display: flex; gap: 5px; align-items: center; font-size: 8px; color: #69795c; }
.review-dot { width: 5px; height: 5px; border-radius: 50%; background: #88a36b; flex: 0 0 auto; }
.preview-report-footer > span:last-child { margin-inline-start: auto; }
.product-preview figcaption { padding: 0 15px 13px; font-size: 9px; color: #697a5d; }
.landing-section { border-top: 1px solid var(--border); padding: 65px 0; }
.section-heading { max-width: 660px; }
.landing .section-heading h2, .signin-copy h2 { margin: 12px 0 14px; font-size: clamp(28px, 3vw, 38px); line-height: 1.23; letter-spacing: -0.045em; font-weight: 550; text-wrap: balance; }
.section-heading > p:last-of-type { font-size: 14px; line-height: 1.8; color: var(--muted); }
.workflow-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 35px; }
.workflow-step { position: relative; padding-top: 21px; border-top: 1px solid #bac9b1; }
.step-number { font-family: Georgia, serif; font-size: 23px; color: #738761; }
.workflow-step h3 { font-size: 18px; letter-spacing: -0.025em; font-weight: 600; margin: 13px 0 10px; }
.workflow-step p { color: var(--muted); font-size: 13px; line-height: 1.85; }
.step-detail { display: inline-block; margin-top: 17px; font-size: 10px; font-weight: 550; color: #6e825e; }
.roles-section { display: grid; grid-template-columns: 0.9fr 1fr; gap: 110px; }
.roles-section .landing-text-link { margin-top: 20px; }
.role-row { display: flex; gap: 21px; border-bottom: 1px solid var(--border); padding: 22px 0; }
.role-row:first-child { padding-top: 0; }
.role-row:last-child { border-bottom: 0; padding-bottom: 0; }
.role-number { color: #89937d; font-size: 11px; white-space: nowrap; padding-top: 3px; }
.role-row h3 { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.role-row p { font-size: 13px; line-height: 1.8; color: var(--muted); }
.pricing-section { padding-bottom: 65px; }
.pricing-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 30px; }
.pricing-card { display: flex; flex-direction: column; padding: 30px; border: 1px solid #cfd9c8; border-radius: 9px; background: #fff; }
.plan-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.plan-heading h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.025em; }
.plan-badge { border: 1px solid #dbe3d2; border-radius: 4px; padding: 3px 7px; font-size: 9px; }
.plan-price { display: flex; align-items: center; gap: 15px; margin-bottom: 12px !important; }
.plan-price > span:first-child { font-size: 52px; line-height: 1.2; letter-spacing: -0.06em; font-weight: 500; }
.price-unit { max-width: 135px; font-size: 12px; line-height: 1.6; color: var(--muted); }
.pricing-card > p:not(.plan-price) { font-size: 13px; color: var(--muted); }
.plan-features { list-style: none; margin: 23px 0 26px; padding: 0; font-size: 12px; }
.plan-features li { position: relative; padding-inline-start: 23px; margin: 9px 0; }
.plan-features li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: #5f8153; }
.pricing-card > .landing-button { margin-top: auto; }
.paid-plan { background: #19372e; border-color: #19372e; color: #f6f9ed; }
.paid-plan .plan-badge { border-color: #526b52; color: #d3dfc0; }
.paid-plan .price-unit, .paid-plan > p:not(.plan-price) { color: #c1d0b8; }
.paid-plan .plan-features li::before { color: #b7d68b; }
.academic-note { display: flex; align-items: baseline; gap: 16px; padding: 18px 0 0; color: var(--muted); font-size: 11px; line-height: 1.8; }
.academic-note-label { white-space: nowrap; color: #486242; font-weight: 650; }
.signin-section { display: grid; grid-template-columns: 1fr 0.9fr; gap: 90px; align-items: center; background: #ecf0e3; border: 1px solid #e0e6d6; border-radius: 10px; padding: 48px; }
.signin-copy > p:not(.landing-eyebrow) { color: var(--muted); font-size: 14px; max-width: 360px; line-height: 1.85; }
.signin-detail { display: flex; align-items: center; gap: 13px; margin-top: 33px; font-size: 11px; max-width: 340px; }
.signin-detail .brand-symbol { flex: 0 0 auto; }
.signin-card { padding: 27px; border: 1px solid #d4dfca; border-radius: 8px; background: #fff; min-width: 0; }
.signin-card h3 { font-size: 17px; line-height: 1.5; letter-spacing: -0.03em; font-weight: 600; }
.signin-card-description { color: var(--muted); font-size: 11px; margin: 5px 0 19px !important; }
.signin-card .login-button { color: var(--ink); background: #fff; border: 1px solid #ced6c7; font-size: 12px; min-height: 43px; padding: 9px 13px; }
.signin-card .login-button:hover { background: #f4f7ed; }
.signin-card .google-mark { width: 19px; height: 19px; color: #4285f4; font-size: 16px; font-family: sans-serif; }
.signin-card .auth-divider { font-size: 10px; margin: 14px 0; }
.signin-card .email-login-form { gap: 7px; }
.signin-card .email-login-form label { font-size: 11px; color: #56644b; }
.signin-card .email-login-form input { font-size: 14px; padding: 9px 10px; border-color: #ced6c7; }
.signin-card .login-button.email-button { justify-content: space-between; background: var(--ink); color: #fff; border-color: var(--ink); margin-top: 7px; }
.signin-card .login-button.email-button:hover { background: #31533d; }
.signin-footer { border-top: 1px solid #e1e7da; padding-top: 15px; margin-top: 20px !important; font-size: 10px; color: #68735d; }
.signin-footer a { color: var(--ink); font-weight: 600; text-underline-offset: 3px; }
.landing-footer { display: flex; align-items: center; gap: 24px; padding: 32px 0 42px; font-size: 11px; color: #69745e; }
.landing-footer .landing-brand { font-size: 13px; }
.landing-footer .brand-symbol { width: 29px; height: 29px; font-size: 11px; }
.landing-footer > a:last-child { margin-inline-start: auto; font-weight: 600; text-decoration: none; }
.landing [id] { scroll-margin-top: 24px; }
html[dir="rtl"] .product-preview { transform: rotate(1deg); }
html[lang="ja"] .landing h1 { font-size: clamp(35px, 3.5vw, 48px); line-height: 1.4; }
html[lang="ja"] .landing h1 em { font-style: normal; }
@media (min-width: 1450px) { .landing-hero { padding: 95px 0; } }
@media (max-width: 1050px) {
  .landing-header, .landing-main, .landing-footer { width: calc(100% - 56px); }
  .landing-hero { gap: 30px; padding: 60px 0; }
  .landing h1 { font-size: 44px; }
  .hero-actions { gap: 14px; }
  .hero-description { font-size: 14px; }
  .preview-body { grid-template-columns: 0.67fr 1fr; padding: 12px; gap: 10px; }
  .preview-report { padding: 12px; }
  .preview-report h2 { font-size: 20px; }
  .roles-section { gap: 55px; }
  .signin-section { gap: 40px; padding: 35px; }
}
@media (max-width: 800px) {
  .landing-header { min-height: 82px; gap: 18px; }
  .landing-nav { gap: 17px; }
  .landing-nav > a:not(.nav-signin) { display: none; }
  .landing-hero { grid-template-columns: 1fr; gap: 38px; padding: 45px 0 55px; }
  .hero-copy { max-width: 550px; }
  .landing h1 { max-width: 520px; font-size: 52px; }
  .hero-description { max-width: 540px; font-size: 15px; }
  .product-preview { width: min(100%, 620px); justify-self: center; transform: none; }
  html[dir="rtl"] .product-preview { transform: none; }
  .preview-body { grid-template-columns: 0.7fr 1.1fr; padding: 18px; gap: 20px; }
  .preview-report { padding: 20px; }
  .preview-report h2 { font-size: 25px; }
  .sample-log { padding: 16px; }
  .sample-log h3 { font-size: 12px; }
  .sample-log p { font-size: 11px; }
  .sample-report-section p { font-size: 12px; }
  .preview-report-footer, .report-period, .change-annotation { font-size: 10px; }
  .workflow-grid { gap: 24px; }
  .roles-section { grid-template-columns: 1fr; gap: 35px; }
  .role-row { padding: 20px 0; }
  .pricing-card { padding: 24px; }
  .plan-heading { align-items: flex-start; flex-direction: column; }
  .signin-section { gap: 32px; padding: 28px; }
  .signin-card { padding: 23px; }
  .landing-footer > p { display: none; }
}
@media (max-width: 560px) {
  .landing-header, .landing-main, .landing-footer { width: calc(100% - 36px); }
  .landing-header { flex-wrap: wrap; gap: 0 16px; padding: 17px 0 13px; }
  .landing-brand { font-size: 14px; }
  .brand-symbol { width: 31px; height: 31px; font-size: 12px; }
  .landing-nav { font-size: 12px; }
  .landing .locale-form { margin-top: 12px; width: 100%; }
  .landing .locale-form label { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .landing .locale-label { position: static; clip-path: none; width: auto; height: auto; font-size: 11px; color: #6b7762; font-weight: 400; }
  .landing .locale-select { min-height: 36px; font-size: 11px; padding: 6px 9px; width: 137px; }
  .landing-hero { padding-top: 38px; gap: 28px; }
  .landing-eyebrow { font-size: 10px; letter-spacing: 0.035em; }
  .landing h1 { font-size: 45px; margin: 18px 0; }
  html[lang="ja"] .landing h1 { font-size: 34px; }
  .hero-description { font-size: 14px; line-height: 1.85; }
  .hero-actions { gap: 16px; margin-top: 23px; }
  .landing-button { font-size: 12px; padding: 12px 15px; gap: 18px; }
  .hero-reassurance { font-size: 10px; }
  .preview-chrome { padding: 11px 12px; }
  .preview-live { font-size: 8px; }
  .preview-body { display: flex; flex-direction: column; gap: 14px; padding: 12px; }
  .preview-sources { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; width: 100%; }
  .preview-section-label { grid-column: 1 / -1; margin-bottom: 0 !important; font-size: 10px; }
  .sample-log { margin: 0; padding: 11px; }
  .sample-log h3 { font-size: 11px; }
  .sample-log p { font-size: 10px; }
  .sample-icon { float: inline-end; margin-inline-start: 5px; margin-bottom: 2px; width: 18px; height: 18px; font-size: 11px; }
  .preview-source-footer { display: none; }
  .preview-report { width: 100%; padding: 17px; }
  .preview-report h2 { font-size: 26px; margin: 13px 0 9px; }
  .report-period { padding-bottom: 12px; }
  .sample-report-section { margin: 12px 0; }
  .sample-report-section h3 { font-size: 10px; }
  .sample-report-section p { font-size: 11px; }
  .preview-report-footer { font-size: 9px; }
  .product-preview figcaption { font-size: 8px; padding: 0 12px 12px; }
  .landing-section { padding: 40px 0; }
  .landing .section-heading h2, .signin-copy h2 { font-size: 29px; }
  .section-heading > p:last-of-type { font-size: 13px; }
  .workflow-grid { grid-template-columns: 1fr; gap: 23px; margin-top: 26px; }
  .workflow-step { padding-top: 16px; display: grid; grid-template-columns: 32px 1fr; column-gap: 14px; }
  .step-number { grid-row: 1 / 4; padding-top: 1px; font-size: 21px; }
  .workflow-step h3 { margin: 2px 0 7px; font-size: 17px; }
  .workflow-step p, .step-detail { grid-column: 2; }
  .step-detail { margin-top: 10px; }
  .roles-section { gap: 27px; }
  .pricing-grid { grid-template-columns: 1fr; gap: 16px; }
  .pricing-card { padding: 24px; }
  .plan-heading { align-items: center; flex-direction: row; }
  .academic-note { display: block; padding-top: 17px; font-size: 10px; }
  .academic-note-label { display: block; margin-bottom: 4px; font-size: 11px; }
  .signin-section { grid-template-columns: 1fr; gap: 24px; padding: 25px 18px 18px; }
  .signin-copy > p:not(.landing-eyebrow) { font-size: 13px; }
  .signin-detail { display: none; }
  .signin-card { padding: 22px; }
  .signin-card .email-login-form input { font-size: 16px; }
  .landing-footer { padding: 27px 0; }
}
@media (prefers-reduced-motion: reduce) { .landing-button { transition: none; } }
