:root {
      --bg: #f5f8fa;
      --panel: #ffffff;
      --panel-2: #edf8f8;
      --ink: #081426;
      --muted: #617084;
      --line: #d8e3e8;
      --brand: #10b8aa;
      --brand-dark: #087b7a;
      --brand-bright: #63f1e6;
      --brand-gold: #22d3c5;
      --accent: #b45309;
      --danger: #b91c1c;
      --warn: #a16207;
      --ok: #047857;
      --sky: #1d4ed8;
      --violet: #7c3aed;
      --radius: 8px;
      --shadow: 0 18px 45px rgba(8, 20, 38, 0.12);
      --shadow-soft: 0 14px 30px rgba(8, 20, 38, 0.10);
      --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
      --motion-fast: 180ms;
      --motion-med: 240ms;
      --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: var(--font);
      color: var(--ink);
      background: var(--bg);
      line-height: 1.55;
      text-rendering: optimizeLegibility;
      overflow-x: hidden;
    }
    html:lang(ja) body,
    html:lang(zh) body,
    html:lang(zh-CN) body {
      line-height: 1.68;
      word-break: keep-all;
    }
    html:lang(el) body { line-height: 1.6; }
    button, input, select, textarea { font: inherit; min-width: 0; }
    a { color: var(--brand-dark); }
    .container { width: min(1160px, calc(100% - 32px)); margin: 0 auto; }
    .hero {
      min-height: 78vh;
      display: grid;
      align-items: end;
      color: white;
      background:
        radial-gradient(circle at 80% 24%, rgba(20, 214, 200, 0.24), transparent 34%),
        radial-gradient(circle at 18% 10%, rgba(96, 124, 184, 0.22), transparent 34%),
        linear-gradient(135deg, #040916 0%, #07142a 58%, #07323d 100%);
    }
    .hero-inner { padding: 34px 0 64px; }
    .brand-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 96px; }
    .brand,
    .brand-lockup {
      display: inline-flex;
      align-items: center;
      gap: 18px;
      font-weight: 800;
      letter-spacing: 0;
      font-size: 1rem;
    }
    .hero .brand-lockup { color: white; text-decoration: none; }
    .hero-brand {
      width: min(680px, 74vw);
      color: white;
    }
    .brand-primary-logo {
      display: block;
      width: 100%;
      height: auto;
      overflow: visible;
      filter: drop-shadow(0 24px 44px rgba(0, 0, 0, 0.28));
    }
    .brand-app-icon {
      width: 56px;
      height: 56px;
      display: block;
      border-radius: 16px;
      overflow: visible;
      filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.22));
    }
    .logo-symbols {
      position: absolute;
      width: 0;
      height: 0;
      overflow: hidden;
    }
    .logo-mark { display: block; flex: 0 0 auto; }
    .logo-wordmark { font-weight: 900; letter-spacing: 0; }
    .hero-controls { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
    .domain { font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.72; padding-top: 16px; white-space: nowrap; }
    .language-select-wrap { margin: 8px 0 0; }
    .language-select {
      min-height: 36px;
      border: 1px solid rgba(255,255,255,0.28);
      border-radius: 999px;
      background: rgba(255,255,255,0.10);
      color: white;
      padding: 6px 34px 6px 12px;
      font-weight: 800;
      font-size: 0.82rem;
      backdrop-filter: blur(12px);
    }
    .language-select option { color: var(--ink); background: white; }
    h1 { font-size: 5.15rem; line-height: 0.98; margin: 0 0 20px; max-width: 850px; letter-spacing: 0; }
    .hero-copy { font-size: 1.25rem; max-width: 640px; margin: 0 0 30px; color: rgba(255,255,255,0.92); }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
    .button, button {
      border: 1px solid transparent;
      border-radius: var(--radius);
      padding: 11px 16px;
      min-height: 44px;
      cursor: pointer;
      font-weight: 700;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), background var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease;
    }
    .button:hover, button:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(8, 20, 38, 0.12); }
    .button:active, button:active { transform: translateY(0); box-shadow: 0 4px 10px rgba(8, 20, 38, 0.10); }
    .primary { background: var(--brand); color: white; border-color: var(--brand); }
    .primary:hover { background: var(--brand-dark); }
    .secondary { background: var(--panel); color: var(--ink); border-color: var(--line); }
    .ghost { background: rgba(255,255,255,0.12); color: white; border-color: rgba(255,255,255,0.35); }
    .text-button { background: transparent; color: var(--brand-dark); border-color: transparent; padding-inline: 4px; }
    .text-button:hover, .text-button:active { box-shadow: none; color: var(--ink); }
    button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #f59e0b; outline-offset: 3px; }

    main { margin-top: -28px; position: relative; z-index: 2; padding-bottom: 52px; }
    .notice { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; color: var(--muted); }
    .language-suggestion {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      background: rgba(255,255,255,0.94);
      border: 1px solid #bde8e5;
      border-radius: var(--radius);
      color: var(--muted);
      padding: 10px 12px;
      margin: 0 0 12px;
      box-shadow: 0 10px 24px rgba(8,20,38,0.08);
    }
    .language-suggestion span { font-weight: 700; color: var(--ink); }
    .layout { display: block; max-width: 980px; margin-inline: auto; }
    .panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
    .section { margin-top: 22px; }
    .section-title { margin: 0 0 6px; font-size: 1.3rem; }
    .subsection-title {
      margin: 24px 0 10px;
      font-size: 0.82rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--brand-dark);
    }
    .section-copy { margin: 0 0 18px; color: var(--muted); }
    .grid { display: grid; gap: 14px; min-width: 0; }
    .two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .assumption-core { align-items: start; gap: 18px 20px; padding-bottom: 4px; }
    .daily-assumptions {
      border-top: 1px solid rgba(216, 227, 232, 0.76);
      padding-top: 20px;
      align-items: start;
    }
    .field { min-width: 0; }
    label { display: block; font-weight: 760; margin-bottom: 6px; line-height: 1.25; overflow-wrap: anywhere; }
    html:lang(de) label,
    html:lang(el) label,
    html:lang(ja) label,
    html:lang(zh) label,
    html:lang(zh-CN) label { line-height: 1.32; }
    .hint { color: var(--muted); font-size: 0.9rem; margin-top: 6px; max-width: 58ch; line-height: 1.5; }
    .field-helper {
      display: block;
      width: min(100%, 36rem);
      margin-top: 8px;
      color: #52657a;
      font-size: 0.875rem;
      line-height: 1.48;
      overflow-wrap: anywhere;
    }
    .country-helper {
      white-space: pre-line;
      background: #f7fcfc;
      border: 1px solid #d7ecea;
      border-radius: var(--radius);
      padding: 10px 12px;
      color: #405369;
    }
    .expectancy-field .field-helper {
      padding-left: 10px;
      border-left: 3px solid rgba(16, 184, 170, 0.32);
      max-width: 34rem;
    }
    .field input, .field select { width: 100%; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 11px; background: white; color: var(--ink); min-height: 44px; }
    .unit-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-top: 8px;
    }
    .unit-grid[data-height-unit="cm"],
    .unit-grid[data-weight-unit="kg"] { grid-template-columns: 1fr; }
    .field.soft-field { opacity: 0.74; }
    .field.soft-field label::after { content: ' (optional)'; color: var(--muted); font-weight: 600; }
    .field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: var(--danger); }
    .error { display: block; color: var(--danger); font-size: 0.88rem; min-height: 1.2em; margin-top: 4px; }
    details { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; background: #fffaf1; }
    summary { cursor: pointer; font-weight: 800; line-height: 1.3; }
    .nested-details { background: #fbfefd; border-color: #d7ecea; box-shadow: none; }
    .nested-details summary { font-size: 0.98rem; }
    .lifestyle-factors, .biometric-data { margin-top: 16px; background: #fffaf1; border-color: var(--line); }
    .lifestyle-factor-summary, .biometric-summary, .result-lifestyle-note, .result-youth-note { background: #f7fcfc; border: 1px solid #d7ecea; border-radius: var(--radius); padding: 10px 12px; }
    .outlook-grid { align-items: start; }
    .form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
    .tags { display: flex; flex-wrap: wrap; gap: 8px; }
    .tag { position: relative; }
    .tag input { position: absolute; inset: 0; opacity: 0; }
    .tag span { display: inline-flex; min-height: 40px; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; background: white; font-weight: 700; }
    .tag input:checked + span { background: var(--brand); color: white; border-color: var(--brand); }
    .tag.is-visible-recommendation span { box-shadow: 0 0 0 3px rgba(16, 184, 170, 0.10); }
    input[type="range"] { width: 100%; }
    .custom-task { border: 1px solid var(--line); background: #fff; border-radius: var(--radius); padding: 12px; margin-bottom: 10px; display: grid; grid-template-columns: 1.2fr 0.7fr 0.9fr auto; gap: 10px; align-items: end; }
    .custom-task button { min-width: 44px; padding-inline: 10px; }
    .empty { color: var(--muted); background: #f8f6f0; border: 1px dashed var(--line); border-radius: var(--radius); padding: 12px; }

    .results { display: none; }
    .results.visible { display: block; }
    .result-view { display: none; }
    .result-view.active { display: block; animation: resultViewIn 220ms var(--ease-out) both; }
    .result-view.is-exiting { display: block; animation: resultViewOut 170ms ease both; pointer-events: none; }
    .metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
    .metric { border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; background: white; animation: cardIn 360ms var(--ease-out) both; transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease; }
    .metric-value { font-size: 1.65rem; font-weight: 900; line-height: 1.1; color: var(--brand-dark); }
    .metric-soft .metric-value { color: #334155; font-size: clamp(1.16rem, 2.4vw, 1.42rem); }
    .metric-label { color: var(--muted); font-size: 0.9rem; margin-top: 4px; }
    .hero-results { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.65fr); gap: 14px; margin: 8px 0 14px; }
    .hero-result-card { border: 1px solid #bde8e5; border-radius: var(--radius); padding: 18px; background: linear-gradient(145deg, #f7fcfc, #ffffff); box-shadow: 0 12px 30px rgba(8, 20, 38, 0.08); animation: cardIn 360ms var(--ease-out) both; }
    .hero-result-main { min-height: 190px; display: grid; align-content: end; background: radial-gradient(circle at 86% 8%, rgba(45, 212, 191, 0.22), transparent 34%), linear-gradient(145deg, #071426, #0b2f3d); color: white; border-color: rgba(143, 247, 241, 0.28); }
    .hero-result-main .hero-result-value { color: white; font-size: clamp(2.6rem, 8vw, 5rem); }
    .hero-result-main .hero-result-label { color: rgba(255,255,255,0.84); }
    .hero-result-main p { color: rgba(255,255,255,0.82); margin: 14px 0 0; max-width: 540px; }
    .hero-result-side { display: grid; gap: 14px; }
    .hero-result-value { color: var(--brand-dark); font-weight: 950; line-height: 0.98; font-size: clamp(2rem, 4.2vw, 3.2rem); overflow-wrap: anywhere; }
    .hero-result-label { color: var(--muted); font-weight: 800; margin-top: 6px; }
    .insight { background: var(--panel-2); border: 1px solid #bdd7ca; border-radius: var(--radius); padding: 16px; margin: 14px 0; font-size: 1.04rem; }
    .warning { background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; border-radius: var(--radius); padding: 12px; margin: 12px 0; display: none; }
    .warning.visible { display: block; }
    .warning.soft-notice { background: #eefdfa; border-color: #a7ece5; color: #075f5b; }
    .tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
    .tab { background: white; border: 1px solid var(--line); color: var(--ink); white-space: normal; text-align: center; }
    .tab:hover, .subtab:hover { border-color: rgba(16, 184, 170, 0.46); }
    .tab[aria-selected="true"] { background: var(--ink); color: white; border-color: var(--ink); }
    .subtabs { display: inline-flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
    .subtab { background: #fff; border-color: var(--line); color: var(--ink); min-height: 38px; padding: 8px 12px; }
    .subtab[aria-pressed="true"] { background: var(--brand-dark); color: white; border-color: var(--brand-dark); }
    .chart-wrap { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; overflow: hidden; max-width: 100%; }
    .chart-responsive-layout { display: grid; grid-template-columns: minmax(220px, 0.9fr) minmax(240px, 1.1fr); align-items: center; gap: 18px; max-width: 100%; min-width: 0; }
    .chart-canvas-shell { display: grid; place-items: center; width: 100%; min-width: 0; }
    canvas { display: block; width: 100%; max-width: 100%; min-height: 320px; }
    #time-chart { width: min(100%, 360px); height: 320px; min-height: 260px; margin: 0 auto; }
    .chart-html-legend { display: grid; grid-template-columns: 1fr; gap: 8px; min-width: 0; }
    .chart-legend-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: var(--radius); padding: 9px 10px; background: #fbfefd; color: var(--ink); }
    .chart-legend-item strong { font-size: 0.92rem; overflow-wrap: anywhere; }
    .chart-legend-item small { color: var(--muted); font-weight: 800; white-space: nowrap; }
    .chart-fallback { color: var(--muted); font-size: 0.92rem; margin-top: 8px; }
    .overview-preview { border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: white; margin-top: 16px; animation: sectionIn 260ms var(--ease-out) both; transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease; }
    .overview-preview-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 12px; }
    .overview-life-preview { background: linear-gradient(180deg, #fffaf1, #ffffff); }
    .overview-life-grid { grid-template-columns: repeat(auto-fill, minmax(14px, 1fr)); max-width: 100%; }
    .overview-budget-preview { background: linear-gradient(180deg, #f7fcfc, #ffffff); }
    .overview-budget-layout { display: grid; grid-template-columns: minmax(220px, 0.9fr) minmax(220px, 1.1fr); gap: 16px; align-items: center; }
    .overview-time-chart { min-height: 220px; height: 240px; }
    .overview-top-list { display: grid; gap: 10px; }
    .overview-top-item { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px; background: rgba(255,255,255,0.76); }
    .overview-top-item span:last-child { display: grid; gap: 2px; }
    .overview-top-item small { color: var(--muted); font-weight: 700; }
    .timeline-preview { padding: 42px 10px 36px; }
    .timeline-mini-track { position: relative; height: 12px; border-radius: 999px; background: #d9e2e7; }
    .timeline-mini-lived, .timeline-mini-ahead { position: absolute; top: 0; bottom: 0; border-radius: 999px; }
    .timeline-mini-lived { background: #94a3b8; opacity: 0.72; }
    .timeline-mini-ahead { background: linear-gradient(90deg, #2dd4bf, #7c8f13); }
    .timeline-mini-ahead.beyond { background: linear-gradient(90deg, #94a3b8, #2dd4bf); }
    .timeline-mini-marker { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px; border-radius: 50%; background: #0f172a; border: 3px solid white; box-shadow: 0 0 0 1px var(--line); }
    .timeline-mini-marker b { position: absolute; top: 21px; left: 50%; transform: translateX(-50%); white-space: nowrap; color: var(--muted); font-size: 0.78rem; font-weight: 900; }
    .timeline-mini-marker.birth b { left: 0; transform: none; }
    .timeline-mini-marker.now { background: #fbbf24; width: 18px; height: 18px; }
    .timeline-mini-marker.now b { color: var(--ink); top: -32px; background: white; border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px; box-shadow: 0 8px 18px rgba(8,20,38,0.08); }
    .timeline-mini-marker.average { background: #0f766e; }
    .timeline-mini-marker.average b { right: 0; left: auto; transform: none; text-align: right; }
    .stacked-bar { display: grid; gap: 9px; margin-top: 12px; }
    .stacked-track { display: flex; min-height: 34px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #f8fafc; }
    .stack-segment { min-width: 3px; position: relative; }
    .stack-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; color: var(--muted); font-size: 0.92rem; }
    .legend-item { display: flex; gap: 8px; align-items: center; }
    .legend-swatch { width: 12px; height: 12px; border-radius: 3px; border: 1px solid rgba(23,33,43,0.18); flex: 0 0 auto; }
    .dots-controls { display: flex; gap: 8px; margin-bottom: 12px; }
    .life-grid-wrap { background: #fffaf1; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; }
    .life-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 12px 0 14px; color: var(--muted); font-size: 0.92rem; }
    .life-legend-item { display: inline-flex; align-items: center; gap: 7px; }
    .life-legend-swatch { width: 14px; height: 14px; border-radius: 4px; border: 1px solid rgba(23,33,43,0.14); flex: 0 0 auto; }
    .life-legend-swatch.lived { background: #a8a29e; opacity: 0.48; }
    .life-legend-swatch.future { background: #2dd4bf; opacity: 0.78; }
    .life-legend-swatch.now { background: #fbbf24; box-shadow: 0 0 0 2px #fff8e1, 0 0 0 4px rgba(180,83,9,0.2); }
    .life-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16px, 1fr)); gap: 7px; padding: 4px; overflow: visible; }
    .life-grid.weeks { grid-template-columns: repeat(auto-fill, minmax(12px, 1fr)); gap: 5px; }
    .life-cell { --cell-opacity: 0.68; aspect-ratio: 1; border-radius: 5px; background: #d7d0c4; min-width: 12px; opacity: 0; animation: cellIn 420ms var(--ease-out) forwards; will-change: opacity, transform; }
    .life-cell.future { --cell-opacity: 0.74; background: #2dd4bf; }
    .life-cell.lived { --cell-opacity: 0.42; background: #a8a29e; }
    .life-cell.now { --cell-opacity: 1; background: #fbbf24; box-shadow: 0 0 0 2px #fff8e1, 0 0 0 4px rgba(180,83,9,0.22); transform: scale(1.06); animation: cellIn 420ms var(--ease-out) forwards, nowGlow 900ms ease 420ms 1; }
    .life-cell.settled { animation: none; opacity: var(--cell-opacity); will-change: auto; }
    .now-marker { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; margin: 8px 0 10px; color: var(--accent); }
    .now-marker::before { content: ''; width: 10px; height: 10px; border-radius: 3px; background: #fbbf24; box-shadow: 0 0 0 3px #fff8e1; }
    @keyframes cellIn { from { opacity: 0; transform: scale(0.82); } to { opacity: var(--cell-opacity); transform: scale(1); } }
    @keyframes nowGlow {
      0% { box-shadow: 0 0 0 2px #fff8e1, 0 0 0 4px rgba(180,83,9,0.22); }
      45% { box-shadow: 0 0 0 3px #fff8e1, 0 0 0 10px rgba(45,212,191,0.28); }
      100% { box-shadow: 0 0 0 2px #fff8e1, 0 0 0 4px rgba(180,83,9,0.22); }
    }
    .table-scroll { overflow-x: auto; }
    table { width: 100%; border-collapse: collapse; min-width: 620px; }
    th, td { text-align: left; padding: 10px; border-bottom: 1px solid var(--line); }
    th { color: var(--muted); font-size: 0.86rem; }
    .countdown { border: 1px solid #bdd7ca; background: linear-gradient(180deg, #f2fbf7, #fffdf8); border-radius: var(--radius); padding: 18px; margin: 16px 0; }
    .countdown-title { font-weight: 900; margin-bottom: 6px; font-size: 1.2rem; }
    .countdown-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
    .countdown-stat { min-height: 104px; background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; display: grid; align-content: center; gap: 6px; transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease; }
    .countdown-stat strong { display: block; font-size: 1.45rem; line-height: 1.1; color: var(--brand-dark); }
    .countdown-stat-total { background: linear-gradient(180deg, #f8fbfd, #ffffff); border-color: #cbd5e1; }
    .countdown-stat-total .metric-label { color: #5f6f82; }
    .countdown-stat-total strong { color: #334155; }
    .countdown-stat-free { background: linear-gradient(180deg, #ecfbfa, #ffffff); border-color: #9ee7df; box-shadow: inset 0 0 0 1px rgba(16, 184, 170, 0.08); }
    .countdown-stat-free .metric-label { color: #075f5b; }
    .countdown-stat-free strong { color: #05635f; }
    .countdown-value { font-size: clamp(2rem, 6vw, 3.8rem); line-height: 1; font-weight: 950; color: var(--brand-dark); overflow-wrap: anywhere; margin-top: 10px; }
    .countdown-label { color: var(--muted); }
    .moments-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
    .moment-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease; }
    .moment-value { font-size: 1.55rem; font-weight: 950; color: var(--accent); line-height: 1.1; }
    .moment-label { color: var(--muted); margin-top: 4px; font-size: 0.92rem; }
    .timeline { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; }
    .timeline-track { position: relative; height: 14px; border-radius: 99px; background: #e5e0d8; margin: 94px 0 96px; animation: timelineBaseIn 260ms var(--ease-out) both; overflow: visible; }
    .timeline-remaining { position: absolute; top: 0; bottom: 0; border-radius: 99px; background: linear-gradient(90deg, #2dd4bf, #fbbf24); transform-origin: left center; animation: timelineReveal 420ms var(--ease-out) 80ms both; }
    .timeline-remaining.timeline-beyond { background: linear-gradient(90deg, #94a3b8, #2dd4bf); }
    .timeline-marker { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px; border-radius: 50%; background: var(--ink); border: 3px solid white; box-shadow: 0 0 0 1px var(--line); opacity: 0; animation: markerIn 220ms var(--ease-out) 360ms forwards; }
    .timeline-marker.now { background: #fbbf24; width: 18px; height: 18px; }
    .timeline-marker.birth { background: #64748b; }
    .timeline-marker.retire { background: #b45309; }
    .timeline-marker.healthy { background: #0f766e; }
    .timeline-marker.expectancy { background: #17212b; }
    .timeline-label { position: absolute; transform: translateX(-50%); min-width: 88px; max-width: 145px; text-align: center; color: var(--ink); font-size: 0.84rem; font-weight: 800; line-height: 1.2; background: #fffdf8; border: 1px solid var(--line); border-radius: var(--radius); padding: 7px 8px; box-shadow: 0 8px 18px rgba(23,33,43,0.08); opacity: 0; animation: labelIn 220ms ease 500ms forwards; }
    .timeline-label small { display: block; color: var(--muted); font-weight: 700; margin-top: 2px; }
    .timeline-label.above { bottom: 30px; }
    .timeline-label.below { top: 30px; }
    .timeline-label.high { bottom: 62px; }
    .timeline-label.low { top: 62px; }
    .timeline-label.edge-left { transform: translateX(0); text-align: left; }
    .timeline-label.edge-right { transform: translateX(-100%); text-align: right; }
    .timeline-label::after { content: ''; position: absolute; left: 50%; width: 1px; height: 18px; background: var(--line); }
    .timeline-label.edge-left::after { left: 12px; }
    .timeline-label.edge-right::after { left: auto; right: 12px; }
    .timeline-label.above::after, .timeline-label.high::after { top: 100%; }
    .timeline-label.below::after, .timeline-label.low::after { bottom: 100%; }
    .scenario-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .scenario { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease; }
    .scenario strong { display: block; margin-bottom: 6px; }
    .scenario .gain { color: var(--ok); font-weight: 900; }
    .ad-slot { display: none; margin-top: 18px; }
    .ad-slot.visible { display: block; }
    .suggestions-section { border: 1px solid var(--line); background: linear-gradient(135deg, #f7fcfc, #ffffff); border-radius: var(--radius); padding: 18px; }
    .suggestions-section.visible { animation: sectionIn 260ms var(--ease-out) both; }
    .suggestions-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
    .suggestions-head h3 { margin: 0 0 4px; font-size: 1.18rem; }
    .suggestion-kicker { margin: 0 0 4px; color: var(--brand-dark); font-size: 0.78rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; }
    .suggestions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .suggestion-card {
      --card-accent: #0d9488;
      --card-accent-soft: rgba(13, 148, 136, 0.10);
      border: 1px solid rgba(13, 148, 136, 0.20);
      background:
        radial-gradient(circle at 92% 0%, var(--card-accent-soft), transparent 42%),
        linear-gradient(180deg, #ffffff, #f8fcfb);
      border-radius: var(--radius);
      padding: 18px;
      display: grid;
      gap: 15px;
      align-content: start;
      min-height: 100%;
      position: relative;
      overflow: hidden;
      animation: suggestionIn 280ms var(--ease-out) both;
      transition: transform var(--motion-med) var(--ease-out), box-shadow var(--motion-med) var(--ease-out), border-color var(--motion-med) ease;
    }
    .suggestion-card::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--card-accent), transparent); opacity: 0.72; }
    .suggestion-category-learning { --card-accent: #2563eb; --card-accent-soft: rgba(37, 99, 235, 0.10); }
    .suggestion-category-travel { --card-accent: #c47a2c; --card-accent-soft: rgba(196, 122, 44, 0.12); }
    .suggestion-category-wellbeing { --card-accent: #0d9488; --card-accent-soft: rgba(13, 148, 136, 0.12); }
    .suggestion-category-finance { --card-accent: #172554; --card-accent-soft: rgba(23, 37, 84, 0.09); }
    .suggestion-category-family, .suggestion-category-relationships { --card-accent: #9f5f80; --card-accent-soft: rgba(159, 95, 128, 0.10); }
    .suggestion-category-fitness { --card-accent: #2f855a; --card-accent-soft: rgba(47, 133, 90, 0.11); }
    .suggestion-category-career { --card-accent: #475569; --card-accent-soft: rgba(71, 85, 105, 0.09); }
    .suggestion-partner { box-shadow: 0 12px 30px rgba(8, 20, 38, 0.07); }
    .suggestion-sponsored { --card-accent: #475569; --card-accent-soft: rgba(71, 85, 105, 0.07); border-color: rgba(71, 85, 105, 0.18); background: linear-gradient(180deg, #ffffff, #f8fafc); box-shadow: none; }
    .suggestion-sponsored::before { opacity: 0.34; }
    .suggestion-sponsored .suggestion-meta { color: #475569; }
    .suggestion-sponsored .suggestion-category-label,
    .suggestion-sponsored .suggestion-eyebrow { color: #334155; }
    .suggestion-sponsored .suggestion-reason { background: #f8fafc; color: #64748b; }
    .suggestion-sponsored .suggestion-cta:hover { background: #334155; border-color: #334155; }
    .suggestion-fallback { opacity: 0.96; }
    .suggestion-card:nth-child(2) { animation-delay: 50ms; }
    .suggestion-card:nth-child(3) { animation-delay: 100ms; }
    .suggestion-media { margin: -4px -4px 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 16 / 9; background: var(--card-accent-soft); }
    .suggestion-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .suggestion-card-top { display: flex; align-items: center; gap: 12px; }
    .suggestion-icon, .suggestion-logo { width: 42px; height: 42px; border-radius: var(--radius); display: grid; place-items: center; flex: 0 0 auto; background: var(--card-accent-soft); border: 1px solid rgba(8, 20, 38, 0.08); color: var(--card-accent); }
    .suggestion-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .suggestion-logo img { max-width: 78%; max-height: 78%; object-fit: contain; display: block; }
    .suggestion-meta { display: inline-flex; width: fit-content; color: #41556d; font-weight: 900; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; border: 1px solid rgba(100,116,139,0.16); background: rgba(255,255,255,0.72); border-radius: 999px; padding: 3px 8px; }
    .suggestion-category-label { color: var(--card-accent); font-size: 0.84rem; font-weight: 900; }
    .suggestion-body { display: grid; gap: 8px; }
    .suggestion-eyebrow { color: var(--card-accent); font-size: 0.88rem; font-weight: 900; }
    .suggestion-card h3 { margin: 0; font-size: 1.16rem; line-height: 1.18; letter-spacing: 0; overflow-wrap: anywhere; }
    .suggestion-card p { margin: 0; color: var(--muted); }
    .suggestion-reason { color: #475569; background: rgba(255,255,255,0.68); border: 1px solid rgba(100,116,139,0.16); border-radius: var(--radius); padding: 9px 10px; font-size: 0.86rem; font-weight: 700; }
    .suggestion-footer { display: grid; gap: 10px; margin-top: 2px; }
    .recommendation-sponsor { color: #52657d; font-size: 0.84rem; font-weight: 850; }
    .suggestion-cta { width: 100%; border-color: rgba(8,20,38,0.12); background: #ffffff; color: var(--ink); box-shadow: 0 8px 20px rgba(8,20,38,0.06); }
    .suggestion-cta:hover { color: #ffffff; background: var(--card-accent); border-color: var(--card-accent); }
    .suggestion-hide { justify-self: start; min-height: 32px; padding-block: 4px; color: var(--muted); }
    .recommendation-disclosure { margin-top: -4px; }
    .recommendation-empty {
      grid-column: 1 / -1;
      border: 1px dashed #b7d7d4;
      background: rgba(247, 252, 252, 0.92);
      border-radius: var(--radius);
      padding: 18px;
      color: var(--muted);
      display: grid;
      gap: 4px;
    }
    .recommendation-empty strong { color: var(--ink); }
    .recommendation-empty-inline { margin: 0; color: var(--muted); font-weight: 700; }
    .refine-suggestions { border-top: 1px solid var(--line); margin: 12px 0 14px; padding-top: 12px; }
    .refine-suggestions .tags { margin-top: 10px; }
    .disclosure { color: var(--muted); font-size: 0.82rem; margin-top: 8px; }
    .download-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
    .share-reflection { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr); gap: 18px; align-items: center; border: 1px solid #bde8e5; background: linear-gradient(145deg, #f7fcfc, #ffffff); border-radius: var(--radius); padding: 18px; }
    .share-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
    .share-message-preview {
      border-left: 3px solid var(--brand);
      padding: 10px 0 10px 12px;
      margin: 12px 0 0;
      color: var(--ink);
      font-weight: 850;
      line-height: 1.35;
      background: linear-gradient(90deg, rgba(16,184,170,0.08), transparent);
    }
    .social-share-actions {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 9px;
    }
    .share-secondary-actions { margin-top: 10px; }
    .share-button {
      min-height: 46px;
      padding: 9px 11px;
      border-color: rgba(8,20,38,0.10);
      background: #fff;
      color: var(--ink);
      justify-content: flex-start;
      box-shadow: 0 8px 18px rgba(8,20,38,0.05);
    }
    .share-button.primary { background: var(--brand); color: white; border-color: var(--brand); }
    .share-icon {
      width: 24px;
      height: 24px;
      border-radius: 999px;
      display: inline-grid;
      place-items: center;
      flex: 0 0 auto;
      font-size: 0.82rem;
      font-weight: 950;
      background: rgba(16,184,170,0.12);
      color: var(--brand-dark);
    }
    .share-button.primary .share-icon { background: rgba(255,255,255,0.20); color: white; }
    .share-card-preview { min-height: 300px; border-radius: 14px; padding: 22px; color: white; background: radial-gradient(circle at 82% 18%, rgba(96, 241, 230, 0.26), transparent 34%), linear-gradient(135deg, #050916 0%, #07142a 58%, #07323d 100%); box-shadow: 0 18px 45px rgba(8,20,38,0.22); display: grid; align-content: space-between; gap: 16px; overflow: hidden; }
    .share-preview-brand { font-weight: 950; font-size: 1.12rem; letter-spacing: 0; }
    .share-preview-title { font-size: clamp(1.55rem, 4vw, 2.5rem); line-height: 1.02; font-weight: 950; max-width: 520px; }
    .share-preview-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .share-preview-metrics div { border: 1px solid rgba(143,247,241,0.22); border-radius: var(--radius); padding: 10px; background: rgba(255,255,255,0.08); }
    .share-preview-metrics strong { display: block; font-size: 1.35rem; line-height: 1; }
    .share-preview-metrics span { color: rgba(255,255,255,0.76); font-size: 0.78rem; font-weight: 800; }
    .share-card-preview p { margin: 0; color: rgba(255,255,255,0.82); }
    .share-preview-domain { color: var(--brand-bright); font-weight: 900; text-align: right; }
    .comparison-panel {
      border: 1px solid #d8ebe9;
      border-radius: var(--radius);
      background: linear-gradient(145deg, #ffffff, #f5fbfb);
      padding: 18px;
    }
    .comparison-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-top: 14px;
    }
    .comparison-card {
      border: 1px solid rgba(8, 20, 38, 0.08);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.92);
      padding: 14px;
      box-shadow: 0 8px 20px rgba(8,20,38,0.05);
      transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), border-color var(--motion-fast) ease;
    }
    .comparison-card strong {
      display: block;
      color: var(--brand-dark);
      font-size: clamp(1.45rem, 4vw, 2rem);
      line-height: 1;
      font-weight: 950;
    }
    .comparison-card span {
      display: block;
      color: var(--ink);
      font-weight: 850;
      margin-top: 6px;
    }
    .comparison-card p {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 0.92rem;
    }
    .simulator-panel {
      border: 1px solid #bde8e5;
      border-radius: var(--radius);
      padding: 18px;
      background: linear-gradient(145deg, #f7fcfc, #ffffff);
      box-shadow: 0 12px 28px rgba(8,20,38,0.06);
    }
    .simulator-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 16px;
      margin-top: 12px;
    }
    .simulator-controls .field {
      border: 1px solid rgba(216,227,232,0.78);
      border-radius: var(--radius);
      padding: 12px;
      background: rgba(255,255,255,0.82);
    }
    .simulator-controls output {
      display: block;
      margin-top: 6px;
      color: var(--brand-dark);
      font-weight: 900;
      font-size: 0.9rem;
    }
    .simulator-results {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }
    .simulator-card {
      border: 1px solid rgba(8,20,38,0.08);
      border-radius: var(--radius);
      background: #fff;
      padding: 12px;
      min-height: 106px;
      box-shadow: 0 8px 18px rgba(8,20,38,0.05);
      transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);
    }
    .simulator-card strong {
      display: block;
      color: var(--ink);
      font-size: 1.2rem;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }
    .simulator-card span {
      display: block;
      color: var(--muted);
      font-weight: 850;
      margin-top: 5px;
      line-height: 1.25;
    }
    .simulator-card small {
      display: inline-flex;
      margin-top: 8px;
      color: var(--brand-dark);
      background: rgba(16,184,170,0.1);
      border-radius: 999px;
      padding: 3px 8px;
      font-weight: 900;
    }
    .widget-hero { min-height: 62vh; }
    .widget-brand { width: auto; text-decoration: none; }
    .widget-brand-fallback {
      display: inline-flex;
      align-items: center;
      min-height: 48px;
      color: white;
      font-size: 1.25rem;
      font-weight: 950;
      letter-spacing: 0;
    }
    .widget-doc-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
      margin-top: 18px;
    }
    .widget-doc-card {
      display: grid;
      gap: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 16px;
      background: linear-gradient(145deg, #ffffff, #f8fcfc);
      box-shadow: 0 12px 26px rgba(8,20,38,0.06);
    }
    .widget-doc-card h3 { margin: 0 0 6px; font-size: 1.16rem; line-height: 1.2; }
    .widget-doc-card p { margin: 0; color: var(--muted); }
    .widget-doc-card iframe {
      width: 100%;
      height: 300px;
      border: 0;
      border-radius: 14px;
      overflow: hidden;
      background: #fff;
    }
    .widget-doc-card label {
      font-size: 0.85rem;
      font-weight: 850;
      color: var(--ink);
    }
    .widget-doc-card textarea {
      min-height: 112px;
      resize: vertical;
      width: 100%;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 10px;
      color: var(--ink);
      background: #fbfdfd;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.82rem;
      line-height: 1.45;
    }
    .widget-guidelines {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    .widget-guidelines p {
      margin: 0;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 14px;
      background: #fff;
      color: var(--muted);
    }
    .sr-live, .sr-only { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
    .print-brand { display: none; }
    .print-brand svg { width: 260px; max-width: 100%; height: auto; display: block; }
    .footer-note { color: var(--muted); font-size: 0.92rem; margin-top: 22px; }
    .site-footer { border-top: 1px solid var(--line); padding: 28px 0 36px; color: var(--muted); font-size: 0.92rem; background: rgba(255, 255, 255, 0.55); }
    .footer-inner { display: grid; gap: 8px; justify-items: center; text-align: center; }
    .footer-inner p { margin: 0; }
    .footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 14px; }
    .footer-links a, .footer-contact a { color: var(--brand-dark); font-weight: 700; text-decoration: none; }
    .footer-links a:hover, .footer-contact a:hover { text-decoration: underline; }
    .legal-hero { min-height: 44vh; align-items: end; }
    .legal-hero .hero-inner { padding-bottom: 48px; }
    .legal-hero h1 { font-size: clamp(2.6rem, 7vw, 4.6rem); max-width: 760px; }
    .legal-page { padding: 34px 0 64px; }
    .legal-card { max-width: 860px; margin: 0 auto; }
    .legal-card h2 { margin: 26px 0 8px; font-size: 1.2rem; }
    .legal-card h2:first-child { margin-top: 0; }
    .legal-card p, .legal-card li { color: var(--muted); }
    .legal-card ul { padding-left: 1.2rem; }
    .hidden { display: none !important; }

    @keyframes resultViewIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes resultViewOut {
      from { opacity: 1; transform: translateY(0); }
      to { opacity: 0; transform: translateY(4px); }
    }
    @keyframes cardIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes sectionIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes suggestionIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes timelineBaseIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes timelineReveal {
      from { transform: scaleX(0); opacity: 0.65; }
      to { transform: scaleX(1); opacity: 1; }
    }
    @keyframes markerIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes labelIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    @media (hover: hover) {
      .metric:hover,
      .countdown-stat:hover,
      .moment-card:hover,
      .scenario:hover,
      .suggestion-card:hover,
      .hero-result-card:hover,
      .overview-preview:hover {
        transform: translateY(-2px);
        border-color: rgba(16, 184, 170, 0.42);
        box-shadow: var(--shadow-soft);
      }
      .suggestion-card:hover::before { opacity: 0.92; }
      .tag:hover span { border-color: rgba(16, 184, 170, 0.46); }
    }

    @media (max-width: 900px) {
      .two, .three, .four, .scenario-grid, .metric-grid, .moments-grid, .countdown-grid, .suggestions-grid, .hero-results, .overview-budget-layout, .share-reflection, .comparison-grid, .simulator-results, .widget-doc-grid, .widget-guidelines { grid-template-columns: 1fr; }
      .assumption-core, .daily-assumptions { gap: 16px; }
      .stack-legend { grid-template-columns: 1fr; }
      .hero { min-height: 72vh; }
      .hero-inner { padding: 26px 0 48px; }
      .brand-row { margin-bottom: 64px; }
      .hero-brand { width: min(560px, 80vw); }
      .hero-controls { justify-content: flex-start; }
      h1 { font-size: 3.3rem; max-width: 680px; }
      .hero-copy { font-size: 1.1rem; max-width: 560px; }
      .custom-task { grid-template-columns: 1fr; }
      .overview-preview-head { flex-direction: column; }
      .hero-result-main { min-height: 160px; }
      .chart-responsive-layout { grid-template-columns: 1fr; justify-items: stretch; }
      #time-chart { width: min(100%, 340px); height: 300px; min-height: 250px; }
      main { margin-top: 0; }
    }
    @media (max-width: 560px) {
      .container { width: min(100% - 24px, 1160px); }
      .panel { padding: 18px 16px; }
      .brand-row { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 48px; }
      .hero-brand { width: min(330px, 92vw); }
      .hero-controls { flex-direction: column; align-items: flex-start; gap: 8px; }
      .domain { font-size: 0.72rem; letter-spacing: 0.14em; padding-top: 0; }
      .language-select-wrap { margin-top: 0; }
      .language-select { min-height: 34px; font-size: 0.78rem; padding-block: 5px; }
      h1 { font-size: 2.45rem; }
      .hero-copy { font-size: 1rem; }
      .language-suggestion { justify-content: flex-start; font-size: 0.9rem; }
      .section { margin-top: 18px; }
      .hint, .field-helper { font-size: 0.86rem; line-height: 1.52; }
      .country-helper { padding: 9px 10px; }
      .form-actions > button,
      .form-actions > .button,
      .download-actions > button,
      .share-actions > button { width: 100%; }
      .tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
      .tab { width: 100%; min-height: 42px; padding-inline: 10px; font-size: 0.9rem; }
      .suggestions-head { flex-direction: column; }
      .overview-preview { padding: 14px; }
      .overview-life-grid { grid-template-columns: repeat(auto-fill, minmax(10px, 1fr)); gap: 4px; }
      .overview-time-chart { min-height: 190px; height: 200px; }
      .chart-wrap { padding: 10px; }
      #time-chart { width: min(100%, 300px); height: 270px; min-height: 230px; }
      .chart-html-legend { gap: 6px; }
      .chart-legend-item { grid-template-columns: auto minmax(0, 1fr); padding: 8px; gap: 7px; }
      .chart-legend-item small { grid-column: 2; white-space: normal; font-size: 0.78rem; }
      .share-card-preview { min-height: 280px; padding: 18px; }
      .social-share-actions { grid-template-columns: 1fr; }
      .share-button { justify-content: center; }
      .share-preview-metrics { grid-template-columns: 1fr; }
      .comparison-panel { padding: 14px; }
      .widget-doc-card { padding: 14px; }
      .widget-doc-card iframe { height: 286px; }
      .timeline-preview { padding-inline: 0; }
      .timeline-mini-marker b { font-size: 0.7rem; }
      .timeline-mini-marker.now b { white-space: normal; min-width: 112px; text-align: center; }
      .life-grid { grid-template-columns: repeat(auto-fill, minmax(12px, 1fr)); gap: 5px; }
      .life-grid.weeks { grid-template-columns: repeat(auto-fill, minmax(9px, 1fr)); gap: 4px; }
      .timeline-track { margin: 118px 0 120px; }
      .timeline-label { min-width: 76px; max-width: 112px; font-size: 0.74rem; padding: 6px; }
    }
    @media (max-width: 430px) {
      h1 { font-size: 2.18rem; }
      .button, button { padding-inline: 13px; }
      .tabs { grid-template-columns: 1fr; }
      .chart-responsive-layout { gap: 12px; }
      .chart-canvas-shell { overflow: hidden; }
      #time-chart { width: min(100%, 270px); height: 250px; min-height: 220px; }
      .chart-html-legend { font-size: 0.88rem; }
      .chart-legend-item strong { font-size: 0.86rem; }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
      }
      .life-cell { animation: none; opacity: var(--cell-opacity); }
    }
    @media print {
      *, *::before, *::after { animation: none !important; transition: none !important; }
      .hero, .interests-panel, .form-actions, .download-actions, .share-reflection, .ad-slot, .suggestion-card, .tabs, .dots-controls, .scenario-grid { display: none !important; }
      body { background: white; }
      main { margin: 0; }
      .print-brand { display: block; margin-bottom: 16px; }
      .panel { box-shadow: none; border-color: #bbb; }
      .layout { display: block; }
      .results { display: block !important; }
    }
  
