:root {
  --sl-ink: #09111f;
  --sl-ink-2: #17233a;
  --sl-paper: #f5f7fb;
  --sl-white: #ffffff;
  --sl-line: #dfe5ef;
  --sl-muted: #5f6d82;
  --sl-blue: #245fc9;
  --sl-blue-2: #74a4ff;
  --sl-gold: #c79a3b;
  --sl-green: #16865f;
  --sl-red: #b93838;
  --sl-radius: 22px;
  --sl-shadow: 0 22px 64px rgba(19, 34, 61, .10);
}

html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
body { overflow-x: hidden; }
footer a { min-height: 44px; display: inline-flex; align-items: center; }
img, svg, video { max-width: 100%; }
table { max-width: 100%; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #86b0ff !important;
  outline-offset: 3px !important;
}

.sl-skip {
  position: fixed; left: 12px; top: 10px; z-index: 10000; transform: translateY(-150%);
  min-height: 44px; display: inline-flex; align-items: center; padding: 10px 14px; border-radius: 10px; background: var(--sl-white); color: var(--sl-ink);
  font: 700 14px/1.2 system-ui, sans-serif; box-shadow: var(--sl-shadow);
}
.sl-skip:focus { transform: translateY(0); }

.sl-site-header {
  position: sticky; top: 0; z-index: 999; height: 64px; border-bottom: 1px solid rgba(223,229,239,.86);
  background: rgba(255,255,255,.92); backdrop-filter: blur(18px); font-family: "Noto Sans JP", system-ui, sans-serif;
}
.sl-header-inner { max-width: 1220px; height: 100%; margin: auto; padding: 0 16px; display: flex; align-items: center; gap: 14px; }
.sl-brand { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; color: var(--sl-ink); text-decoration: none; white-space: nowrap; }
.sl-brand-mark { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; background: var(--sl-ink); color: #fff; font: 800 12px/1 system-ui; letter-spacing: -.04em; }
.sl-brand strong { font-size: 13px; letter-spacing: .09em; }
.sl-nav { display: none; position: absolute; top: 64px; left: 0; right: 0; max-height: calc(100vh - 64px); overflow-y: auto; padding: 14px 16px 22px; background: #fff; border-bottom: 1px solid var(--sl-line); box-shadow: var(--sl-shadow); }
.sl-nav.is-open { display: grid; gap: 6px; }
.sl-nav a { color: #3d4b61; text-decoration: none; font-size: 12px; font-weight: 700; white-space: nowrap; }
.sl-nav a { min-height: 44px; display: flex; align-items: center; padding: 0 10px; border-radius: 10px; }
.sl-nav a:hover { color: var(--sl-blue); }
.sl-header-cta { min-height: 42px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 17px; border-radius: 12px; background: var(--sl-ink); color: #fff !important; }
.sl-header-mypage { display: inline-flex !important; align-items: center; justify-content: center; gap: 5px; min-height: 38px; padding: 0 14px !important; border-radius: 10px; background: #edf4ff; border: 1px solid #cce0ff; color: var(--sl-blue) !important; font-weight: 800 !important; text-decoration: none; }
.sl-header-mypage:hover { background: #dbeaff; color: #1a4bb0 !important; }
.sl-menu-button { display: inline-grid; place-items: center; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--sl-line); border-radius: 12px; background: #fff; color: var(--sl-ink); font-size: 20px; }
.sl-legacy-nav { display: none !important; }

.sl-page { margin: 0; background: var(--sl-paper); color: var(--sl-ink); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.sl-page * { box-sizing: border-box; }
.sl-container { width: min(100% - 32px, 1180px); margin-inline: auto; }
.sl-section { padding: 64px 0; }
.sl-section-tight { padding: 44px 0; }
.sl-section-dark { background: var(--sl-ink); color: #fff; }
.sl-section-white { background: #fff; }
.sl-kicker { margin: 0 0 15px; color: var(--sl-blue); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.sl-section-dark .sl-kicker { color: #9fc0ff; }
.sl-title { margin: 0; max-width: 780px; font-size: 36px; line-height: 1.12; letter-spacing: -.04em; font-weight: 850; }
.sl-title-sm { margin: 0; font-size: 28px; line-height: 1.2; letter-spacing: -.035em; font-weight: 850; }
.sl-lead { max-width: 760px; margin: 16px 0 0; color: var(--sl-muted); font-size: 16px; line-height: 1.8; }
.sl-section-dark .sl-lead { color: #bdc8d9; }
.sl-grid-2, .sl-grid-3, .sl-grid-4 { display: grid; grid-template-columns: 1fr; gap: 20px; }
.sl-card { min-width: 0; border: 1px solid var(--sl-line); border-radius: var(--sl-radius); background: #fff; box-shadow: 0 12px 42px rgba(19,34,61,.06); overflow: hidden; }
.sl-card-body { padding: 22px; }
.sl-card h3 { margin: 0; color: var(--sl-ink); font-size: 23px; line-height: 1.25; }
.sl-card p { color: var(--sl-muted); line-height: 1.75; }
.sl-media {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #07111f 0%, #10243e 100%);
  overflow: hidden;
}
.sl-media-square { aspect-ratio: 1; }
.sl-media img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; }

/* Product artwork must remain readable. Inline page styles previously squeezed
   these media blocks into 76-180px columns and cropped them with cover. */
.sl-page .sl-card.flagship-card,
.sl-page .sl-card.release-card,
.sl-page .sl-card.compact-card,
.sl-page .sl-card.catalog-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.sl-page .sl-card.flagship-card > .sl-media,
.sl-page .sl-card.release-card > .sl-media,
.sl-page .sl-card.compact-card > .sl-media,
.sl-page .sl-card.catalog-card > .sl-media {
  width: 100%;
  height: auto !important;
  aspect-ratio: 1 !important;
}
.sl-page .sl-card > .sl-media > img { width: 100%; height: 100% !important; object-fit: contain !important; object-position: center !important; }
.sl-page .sl-card.release-card > .sl-media { order: 0; }
.sl-page .sl-card.release-card > .sl-card-body { order: 1; }
.sl-badge { display: inline-flex; align-items: center; min-height: 28px; margin-bottom: 14px; padding: 4px 10px; border-radius: 999px; background: #eaf1ff; color: #2157bb; font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.sl-badge-gold { background: #fbf3df; color: #86621b; }
.sl-badge-new { background: #1a2a45; color: #c9dafb; }
.sl-badge-free { background: #e7f7f0; color: #0f6d4d; }
.sl-price { margin: 18px 0 4px; color: var(--sl-ink); font-size: 30px; line-height: 1; font-weight: 850; letter-spacing: -.03em; }
.sl-price small { font-size: 12px; color: var(--sl-muted); font-weight: 600; }
.sl-actions { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 18px; }
.sl-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 11px 18px; border: 1px solid var(--sl-ink); border-radius: 13px; background: var(--sl-ink); color: #fff !important; text-decoration: none; font-size: 13px; font-weight: 800; line-height: 1.3; text-align: center; }
.sl-button:hover { transform: translateY(-1px); box-shadow: 0 10px 25px rgba(9,17,31,.18); }
.sl-button-secondary { background: #fff; color: var(--sl-ink) !important; border-color: var(--sl-line); }
.sl-button-ghost { background: transparent; color: currentColor !important; border-color: rgba(127,145,172,.35); }
.sl-button-blue { background: var(--sl-blue); border-color: var(--sl-blue); }
.sl-button-gold { background: var(--sl-gold); border-color: var(--sl-gold); color: #17130a !important; }
.sl-meta-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 17px 0 0; padding: 0; list-style: none; }
.sl-meta-list li { padding: 7px 10px; border-radius: 10px; background: #f3f6fa; color: #44536a; font-size: 11px; font-weight: 700; }
.sl-evidence { margin-top: 18px; padding: 14px 16px; border-left: 3px solid var(--sl-blue); border-radius: 10px; background: #f5f8ff; color: #46556b; font-size: 12px; line-height: 1.7; }
.sl-risk { border-left-color: var(--sl-red); background: #fff5f5; }
.sl-disclosure { margin-top: 18px; padding: 16px; border: 1px solid var(--sl-line); border-radius: 14px; background: #f8fafc; color: #4d5c72; font-size: 12px; line-height: 1.75; }
.sl-record-checklist { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 26px 0 0; padding: 0; list-style: none; counter-reset: record-check; }
.sl-record-checklist > li { position: relative; min-width: 0; padding: 22px; counter-increment: record-check; }
.sl-record-checklist > li::before { content: counter(record-check, decimal-leading-zero); display: inline-flex; min-width: 34px; min-height: 28px; align-items: center; justify-content: center; margin-bottom: 14px; border-radius: 999px; background: #eaf1ff; color: var(--sl-blue); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.sl-record-checklist h3 { font-size: 19px; }
.sl-record-checklist p { margin: 9px 0 0; font-size: 13px; }
.sl-check-value { display: block; margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--sl-line); color: #33445e; font-size: 12px; line-height: 1.65; }
.sl-check-value strong { display: block; margin-bottom: 3px; color: var(--sl-ink); font-size: 11px; }

.sl-proof-hero { padding: 38px 0 32px; background: linear-gradient(135deg,#fff 0%,#f3f7ff 60%,#faf5e7 100%); border-bottom: 1px solid var(--sl-line); }
.sl-proof-grid { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: center; }
.sl-proof-hero h1 { margin: 0; color: var(--sl-ink); font: 850 36px/1.08 "Noto Sans JP",system-ui; letter-spacing: -.05em; }
.sl-proof-hero .sl-lead { margin-top: 20px; }
.sl-proof-panel { padding: 18px; border: 1px solid rgba(255,255,255,.72); border-radius: 20px; background: rgba(255,255,255,.78); box-shadow: var(--sl-shadow); backdrop-filter: blur(12px); }
.sl-proof-stat-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.sl-proof-stat { padding: 16px; border-radius: 15px; background: #f4f7fb; }
.sl-proof-stat strong { display: block; color: var(--sl-ink); font-size: 20px; }
.sl-proof-stat span { display: block; margin-top: 5px; color: var(--sl-muted); font-size: 10px; line-height: 1.5; }
.sl-legacy-product-hero { display: none !important; }
.sl-product-thumb { height: auto; margin-top: 14px; overflow: hidden; border-radius: 14px; background: linear-gradient(135deg, #07111f 0%, #10243e 100%); }
.sl-product-thumb img { width: 100%; height: auto; object-fit: contain; object-position: center; display: block; }
.sl-mobile-fv .sl-price { margin-top: 14px; font-size: 34px; }
.sl-mobile-fv .sl-actions { margin-top: 14px; }
.sl-checkout-note { margin: 10px 0 0; color: var(--sl-muted); font-size: 11px; line-height: 1.6; }
.sl-relay-triangle .stack { display: none !important; }
.sl-relay-triangle .tri-card { max-width: 620px; margin-inline: auto; }

.sl-sticky-purchase { position: fixed; left: 0; right: 0; bottom: 0; z-index: 990; display: flex; gap: 10px; align-items: center; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--sl-line); box-shadow: 0 -10px 35px rgba(9,17,31,.12); }
.sl-sticky-purchase span { min-width: 94px; color: var(--sl-ink); font: 850 16px/1.15 system-ui; }
.sl-sticky-purchase small { display: block; margin-top: 4px; color: var(--sl-muted); font-size: 9px; font-weight: 600; }
.sl-sticky-purchase a { flex: 1; min-height: 48px; }
body:has(.sl-sticky-purchase) { padding-bottom: 76px; }
.sl-image-dialog { width: min(1120px, calc(100% - 28px)); max-height: 90vh; padding: 0; border: 0; border-radius: 18px; background: #0b1220; box-shadow: 0 30px 100px rgba(0,0,0,.5); }
.sl-image-dialog::backdrop { background: rgba(3,8,18,.82); }
.sl-image-dialog img { display: block; width: 100%; max-height: 82vh; object-fit: contain; }
.sl-dialog-close { position: absolute; top: 10px; right: 10px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #111827; font-size: 24px; cursor: pointer; }
.sl-campaign-expired { border: 1px solid #efd0d0 !important; background: #fff5f5 !important; color: #913737 !important; }
.sl-common-footer { padding: 38px 0 26px; background: #07101d; color: #fff; font-family: "Noto Sans JP",system-ui,sans-serif; }
.sl-common-footer strong { font-size: 14px; letter-spacing: .1em; }
.sl-common-footer nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 12px; margin-top: 18px; }
.sl-common-footer a { min-height: 44px; display: flex; align-items: center; color: #b3bfd1; font-size: 13px; text-decoration: none; }
.sl-common-footer p { margin: 20px 0 0; color: #7e8ca1; font-size: 11px; line-height: 1.7; }
.sl-mobile-details > summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border: 1px solid var(--sl-line); border-radius: 13px; background: #fff; color: var(--sl-ink); font: 800 14px/1.5 system-ui,sans-serif; cursor: pointer; }
.sl-mobile-details > summary::after { content: "＋"; flex: 0 0 auto; font-size: 20px; }
.sl-mobile-details[open] > summary::after { content: "−"; }

@media (min-width: 681px) {
  .sl-container { width: min(100% - 48px, 1180px); }
  .sl-section { padding: 84px 0; }
  .sl-section-tight { padding: 58px 0; }
  .sl-title { font-size: clamp(40px, 5vw, 62px); }
  .sl-title-sm { font-size: clamp(32px, 4vw, 46px); }
  .sl-grid-2, .sl-grid-3, .sl-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sl-card-body { padding: 26px; }
  .sl-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
  .sl-button { width: auto; }
  .sl-proof-hero { padding: 58px 0 46px; }
  .sl-proof-hero h1 { font-size: clamp(44px,6vw,68px); }
  .sl-proof-panel { padding: 26px; }
  .sl-product-thumb { height: auto; }
  .sl-sticky-purchase { display: none; }
  body:has(.sl-sticky-purchase) { padding-bottom: 0; }
  .sl-common-footer nav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
  .sl-mobile-details > summary { display: none; }
}

@media (max-width: 680px) {
  .sl-mobile-fv .sl-proof-grid { gap: 18px; }
  .sl-mobile-fv .sl-proof-panel { padding: 15px; }
  .sl-mobile-fv .sl-proof-stat { padding: 12px; }
  .sl-mobile-fv .sl-proof-stat strong { font-size: 17px; }
  .sl-mobile-fv .sl-lead { font-size: 15px; line-height: 1.65; }
  .sl-relay-triangle { padding-block: 26px !important; }
  .sl-relay-triangle .hero-grid { display: block !important; }
  .sl-relay-triangle .tri-card { max-height: 300px; overflow: hidden; }
  .sl-relay-triangle .tri-card svg { max-height: 190px; }
  .campaign-countdown { max-height: 82px; overflow: hidden; }
  .tbl-wrap, .tw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  body[data-sl-product] button { min-width: 44px; min-height: 44px !important; }
  body[data-sl-product] footer a,
  body[data-sl-product] a.underline { min-height: 44px; display: inline-flex; align-items: center; }
  .sl-mobile-table-wrap { overflow: visible !important; max-width: 100% !important; }
  .sl-mobile-card-table { display: block !important; width: 100% !important; min-width: 0 !important; border: 0 !important; background: transparent !important; }
  .sl-mobile-card-table thead { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
  .sl-mobile-card-table tbody { display: grid !important; gap: 10px !important; width: 100% !important; }
  .sl-mobile-card-table tr { display: block !important; width: 100% !important; padding: 10px 12px !important; border: 1px solid #dce4f0 !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 5px 16px rgba(19,35,63,.05) !important; }
  .sl-mobile-card-table td, .sl-mobile-card-table th { display: grid !important; grid-template-columns: minmax(96px,38%) 1fr !important; gap: 10px !important; width: 100% !important; min-width: 0 !important; padding: 8px 0 !important; border: 0 !important; border-bottom: 1px solid #edf1f7 !important; text-align: left !important; overflow-wrap: anywhere !important; }
  .sl-mobile-card-table td:last-child, .sl-mobile-card-table th:last-child { border-bottom: 0 !important; }
  .sl-mobile-card-table td::before, .sl-mobile-card-table th::before { content: attr(data-sl-label); color: #66758b; font-size: 11px; font-weight: 800; }
  .sl-mobile-card-table tr.sl-table-pair { display: grid !important; grid-template-columns: minmax(108px,40%) 1fr !important; gap: 10px !important; }
  .sl-mobile-card-table tr.sl-table-pair > * { display: block !important; width: auto !important; padding: 4px 0 !important; border: 0 !important; }
  .sl-mobile-card-table tr.sl-table-pair > *::before { content: none !important; }
}

@media (min-width: 961px) {
  .sl-header-inner { padding: 0 24px; gap: 22px; }
  .sl-brand strong { font-size: 14px; letter-spacing: .12em; }
  .sl-nav { position: static; max-height: none; overflow: visible; margin-left: auto; padding: 0; border: 0; box-shadow: none; display: flex; align-items: center; gap: 20px; background: transparent; }
  .sl-nav a { min-height: 0; display: inline-flex; padding: 0; }
  .sl-header-cta { min-height: 42px !important; padding: 0 17px !important; }
  .sl-menu-button { display: none; }
  .sl-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .sl-grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .sl-proof-grid { grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 48px; }
}

@media (min-width: 760px) {
  .sl-record-checklist { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Demo Forward Monitor */
.sl-forward-page{background:#eef3f8}.sl-forward-hero{padding:42px 0 30px;color:#fff;background:radial-gradient(circle at 86% 8%,rgba(34,197,94,.18),transparent 34%),linear-gradient(145deg,#07111f,#0b2035)}
.sl-forward-hero h1{margin:10px 0 0;font-size:clamp(32px,10vw,54px);line-height:1.22;letter-spacing:-.04em}.sl-forward-hero .sl-lead{color:#c8d6e7}.sl-forward-type{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;color:#a7f3d0;background:#064e3b;font-size:10px;font-weight:900;letter-spacing:.11em}.sl-forward-hero-points{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.sl-forward-hero-points span{padding:6px 9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#dbeafe;font-size:10px;font-weight:800}.sl-forward-hero .sl-disclosure{color:#d2deeb;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.sl-forward-grid{display:grid;gap:16px;margin-top:24px}.sl-forward-card{overflow:hidden;border:1px solid #cbd8e6;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(15,36,61,.08)}.sl-forward-card>header{padding:20px 18px 15px;background:linear-gradient(145deg,#0b1728,#102a43);color:#fff}.sl-forward-card>header>div{display:flex;align-items:center;gap:8px}.sl-forward-card h3{margin:12px 0 5px;font-size:24px;line-height:1.28}.sl-forward-social{margin:0;color:#cbd8e7;font-size:11px;font-weight:800}.sl-forward-live{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;color:#dcfce7;background:rgba(34,197,94,.15);font-size:10px;font-weight:900}.sl-forward-live:before{content:"";width:7px;height:7px;margin-right:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
.sl-forward-calendar{display:grid;min-height:190px;place-items:center;align-content:center;gap:5px;margin:16px;border:1px dashed #9fb0c4;border-radius:17px;color:#415269;background:linear-gradient(135deg,#f6f8fb,#eaf0f7);text-align:center}.sl-forward-calendar strong{font-size:14px}.sl-forward-calendar span{font-size:11px}.sl-forward-calendar.has-image{display:block;min-height:0;padding:7px;border-style:solid;background:#08111e}.sl-forward-calendar img{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:11px;cursor:zoom-in}.sl-forward-updated{margin:-4px 18px 12px;color:#617188;font-size:10px}.sl-forward-updated strong{color:#23334a}
.sl-forward-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0 16px}.sl-forward-facts div{min-width:0;padding:11px;border:1px solid #e0e7f0;border-radius:13px;background:#f8fafc}.sl-forward-facts dt{color:#708097;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.sl-forward-facts dd{overflow-wrap:anywhere;margin:4px 0 0;color:#102039;font-size:12px;font-weight:900;line-height:1.35}.sl-forward-details{margin:14px 16px 0;border:1px solid #d9e2ed;border-radius:14px}.sl-forward-details summary{position:relative;min-height:48px;padding:13px 42px 13px 14px;cursor:pointer;list-style:none;font-size:12px;font-weight:900}.sl-forward-details summary::-webkit-details-marker{display:none}.sl-forward-details summary:after{content:"＋";position:absolute;right:14px;font-size:18px}.sl-forward-details[open] summary:after{content:"−"}.sl-forward-details>div{padding:0 14px 14px}.sl-forward-details p{display:grid;gap:2px;margin:9px 0;color:#56667c;font-size:11px}.sl-forward-details p strong{color:#17263d}.sl-forward-details ul{margin:8px 0;padding-left:18px;color:#56667c;font-size:10px}
.sl-forward-password{display:grid;gap:3px;margin:14px 16px;padding:12px 14px;border-radius:13px;background:#fff7e8}.sl-forward-password span{color:#8a6b2f;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.sl-forward-password strong{font-size:11px}.sl-forward-password strong[data-status="ready"]{color:#087a3e}.sl-forward-card>.sl-actions{padding:0 16px}.sl-forward-card>.sl-actions .sl-button{flex:1}.sl-forward-history{margin:18px 16px 20px;padding-top:16px;border-top:1px solid #e2e8f0}.sl-forward-history>p{margin:7px 0 13px;color:#607089;font-size:11px;line-height:1.7}.sl-forward-total{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:13px 14px;border-radius:14px;background:#edf9f3}.sl-forward-total span{color:#315b49;font-size:10px;font-weight:800}.sl-forward-total strong{color:#087a3e;font-size:22px;line-height:1}.sl-forward-total strong.is-negative,.sl-forward-month strong.is-negative{color:#c63a3a}.sl-forward-month-grid{display:grid;gap:12px}.sl-forward-month{overflow:hidden;margin:0;border:1px solid #d9e2ee;border-radius:14px;background:#f6f8fb}.sl-forward-month figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#fff}.sl-forward-month figcaption span{color:#415269;font-size:11px;font-weight:800}.sl-forward-month figcaption strong{color:#087a3e;font-size:15px}.sl-forward-month img{display:block;width:100%;height:auto;object-fit:contain;background:#f4f7fb;cursor:zoom-in}

/* Final mobile touch/overflow pass for legacy product pages. */
@media (max-width: 680px) {
  a.underline,
  a.text-link,
  a.consult-link,
  footer a,
  a[href*="line-bot.kamkazkkk.workers.dev"] {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
  }
  button.tab-btn,
  button[id^="mode-"],
  button[id^="tab-"] {
    min-width: 0 !important;
    min-height: 44px !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  #tab-graph, #tab-chart, #tab-panel { padding-inline: 4px !important; font-size: 10px; }
  body[data-sl-page="ea-generator"] a[href],
  body[data-sl-page="gcprime"] a[href],
  body[data-sl-page="tokushoho"] a[href] {
    display: inline-flex !important;
    min-width: 44px !important;
    min-height: 44px !important;
    align-items: center;
  }
  body[data-sl-page="ea-generator"] summary { min-height: 44px !important; }
}
.sl-evidence-compare{display:grid;gap:12px;margin-top:24px}.sl-evidence-compare article{padding:20px;border:1px solid #d5dfeb;border-radius:18px;background:#fff}.sl-evidence-compare article>span{color:#1769aa;font-size:10px;font-weight:900;letter-spacing:.1em}.sl-evidence-compare h3{margin:8px 0 6px}.sl-evidence-compare p{margin:0;color:var(--sl-muted);font-size:13px}.sl-forward-steps{display:grid;gap:11px;margin:26px 0;padding:0;counter-reset:forward-step;list-style:none}.sl-forward-steps li{position:relative;min-height:88px;padding:18px 16px 18px 68px;border:1px solid #d5dfeb;border-radius:17px;background:#fff}.sl-forward-steps li:before{counter-increment:forward-step;content:counter(forward-step);position:absolute;left:18px;top:20px;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#fff;background:#0d2036;font-weight:900}.sl-forward-steps strong,.sl-forward-steps span{display:block}.sl-forward-steps span{margin-top:5px;color:var(--sl-muted);font-size:12px}
.chart-loading{display:grid;place-content:center;gap:10px;padding:20px;color:#506176;background:#f7f9fc;text-align:center}.chart-loading a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;color:#235fca;font-weight:800}
@media(min-width:760px){.sl-forward-hero{padding:66px 0 48px}.sl-forward-grid,.sl-evidence-compare{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-forward-card h3{font-size:28px}.sl-forward-calendar{min-height:280px}.sl-forward-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-forward-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-forward-month:first-child{grid-column:1/-1}}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Production UX audit: purpose-first routing, revisit surfaces, and mobile comparison. */
.decision-grid,.today-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:24px}.decision-card,.today-card{display:flex;min-height:76px;flex-direction:column;justify-content:center;padding:16px 18px;border:1px solid #d6e0ec;border-radius:16px;background:#fff;color:#15253b;text-decoration:none}.decision-card strong,.today-card strong{font-size:15px}.decision-card span,.today-card small{margin-top:5px;color:#5e6f85;font-size:12px}.today-card>span{margin-bottom:6px;color:#1769aa;font-size:10px;font-weight:900;letter-spacing:.1em}.decision-card:hover,.today-card:hover{border-color:#1769aa;box-shadow:0 10px 24px rgba(17,43,75,.08)}
.ea-compare{display:grid;gap:10px;margin-top:24px}.ea-compare details{border:1px solid #31435f;border-radius:14px;background:#17263e;color:#fff}.ea-compare summary{min-height:52px;padding:15px 46px 15px 16px;cursor:pointer;font-weight:900}.ea-compare dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0 16px 14px}.ea-compare dl div{padding:10px;border-radius:10px;background:#111d31}.ea-compare dt{color:#9dabc0;font-size:9px;font-weight:900}.ea-compare dd{margin:3px 0 0;font-size:12px;font-weight:800}.ea-compare>a,.ea-compare details>a{display:inline-flex;min-height:44px;align-items:center;margin:0 16px 14px;color:#f2cf80;font-size:12px;font-weight:900}.compact-release-grid .release-card .sl-media{display:none}.compact-release-grid .release-card .sl-card-body{padding:22px}.compact-release-grid .release-card .sl-card-body>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.compact-release-grid .release-card .sl-evidence{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
@media(min-width:760px){.decision-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.today-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ea-compare{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sl-nav-group{display:none}
.sl-nav-sub{display:none}
.sl-nav a{display:inline-flex;min-height:44px;align-items:center}

/* Mobile menu. The previous version stacked 44px rows of 12px text with the account link
   last, so the drawer read as mostly empty space and MyPage fell below the fold. Rows are
   now tighter and carry a label plus a short description, sections are visually separated,
   and MyPage sits first. Hierarchy comes from density and weight, not colour. */
@media(max-width:780px){
  .sl-nav.is-open{gap:2px;padding:12px 12px calc(18px + env(safe-area-inset-bottom));max-height:calc(100dvh - 64px)}
  .sl-nav.is-open .sl-nav-group{display:block;margin:14px 2px 4px;padding:4px 8px;border-radius:6px;background:#eef3f9;color:#4a5d75;font-size:10px;font-weight:900;letter-spacing:.12em}
  .sl-nav.is-open .sl-nav-group:first-of-type{margin-top:10px}
  .sl-nav.is-open a{position:relative;display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:48px;padding:6px 30px 6px 10px;border-radius:10px;white-space:normal}
  .sl-nav.is-open a:active{background:#eef3f9}
  .sl-nav.is-open a::after{content:"›";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#9aa9bd;font-size:17px;font-weight:700;line-height:1}
  .sl-nav.is-open .sl-nav-label{font-size:15px;font-weight:800;color:#20304a;line-height:1.25}
  .sl-nav.is-open .sl-nav-sub{display:block;font-size:11px;font-weight:600;color:#7b8a9e;line-height:1.3}
  /* Primary destinations read heavier than the reference links below them. */
  .sl-nav.is-open .sl-nav-primary .sl-nav-label{font-size:16px;font-weight:900;color:var(--sl-blue)}
  /* The account entry leads the drawer and is the only filled block. */
  .sl-nav.is-open .sl-header-mypage{display:flex !important;align-items:flex-start;min-height:56px;padding:9px 30px 9px 12px !important;background:#edf4ff;border:1px solid #cce0ff}
  .sl-nav.is-open .sl-header-mypage .sl-nav-label{font-size:16px;font-weight:900;color:var(--sl-blue)}
  .sl-nav.is-open .sl-header-mypage .sl-nav-sub{color:#5b7ba8}
  .sl-nav.is-open .sl-header-cta{margin-top:12px;justify-content:center;background:var(--sl-blue);color:#fff;font-weight:900}
  .sl-nav.is-open .sl-header-cta::after{content:none}
  /* While the drawer is open the page behind must not scroll, and the fixed purchase bar
     must not show through or stay tappable underneath it. */
  body.sl-nav-open{overflow:hidden}
  body.sl-nav-open .sl-sticky-purchase{visibility:hidden;pointer-events:none}
}
select{min-height:44px}

/* ── Japanese mobile typography (GLOBAL RULE) ─────────────────────────────────
   Japanese has no spaces, so a heading sized for desktop does not just shrink on
   a phone — it breaks mid-word. A 36px .sl-title needs ~415px for
   「売買ルールや市場仮説を、」 but only gets 358px at 390px wide, so it split as
   「売買ルールや市場仮 / 説を、」. Headings are therefore sized against the
   viewport, and phrases can be pinned so a break lands where the copy means it to.

   Order of preference when a heading wraps badly: responsive size → container →
   letter-spacing → text-wrap → phrase/nowrap → last of all, changing the copy.

   .sl-nb     — keep a short, meaningful run together (product names, key nouns).
                Never wrap a whole sentence in it; that causes horizontal scroll.
   .sl-phrase — break between phrases, at the boundary the copy intends, instead
                of wherever the line happens to run out. Use in place of a fixed
                <br>, which pins the desktop look and then wraps again on mobile. */
.sl-nb { white-space: nowrap; }
.sl-phrase { display: inline; }

@media (max-width: 680px) {
  /* Each phrase gets its own line, so the intended break is the only break. */
  .sl-phrase { display: block; }
  /* Sized so the longest phrase we ship still fits one line at 375px. */
  .sl-title { font-size: clamp(22px, 6.4vw, 36px); letter-spacing: -.015em; }
  .sl-title-sm { font-size: clamp(19px, 5.5vw, 28px); letter-spacing: -.015em; }
  .sl-lead { font-size: 15px; line-height: 1.75; }
  /* Avoids a long first line followed by a two-character orphan. */
  h1, h2, h3, .sl-title, .sl-title-sm { text-wrap: balance; }
  /* A CTA label is one unit: shrink the text rather than stack it into 2-3 lines. */
  .sl-button { font-size: 12.5px; letter-spacing: 0; }
}

/* Use-case tags on catalogue cards. A product name alone does not tell a visitor
   whether it applies to them. Every tag restates a fact the card already carries
   (XAUUSD専用 -> GOLD専用), so nothing subjective is asserted. */
.sl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.sl-tag {
  display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px;
  background: #eef3f9; color: #4a5d75; font-size: 11px; font-weight: 800; line-height: 1.5;
  white-space: nowrap;
}
