/* TITAN v2 · additive, opt-in scope. Load AFTER editorial.css. */
.titan-v2 { --page-gutter:16px; --section-offset:88px; --flow-positive:var(--brand); --flow-negative:var(--muted); word-break:keep-all; overflow-wrap:break-word; line-break:strict; }
.titan-v2 [hidden] { display:none !important; }
.titan-v2 h1,.titan-v2 h2,.titan-v2 h3 { text-wrap:balance; }
.titan-v2 p { text-wrap:pretty; }
.titan-v2 .unit { white-space:nowrap; font-variant-numeric:tabular-nums; }
.titan-v2 .prose { max-width:35em; line-height:1.8; }
.titan-v2 .site-header { z-index:30; }
.titan-v2 .header-inner { min-height:76px; gap:16px; }
.titan-v2 .wordmark { font-size:23px; letter-spacing:.08em; }
.titan-v2 .nav { gap:14px; }
.titan-v2 .nav a { font-size:13px; }
.titan-v2 .mode-switch { background:var(--surface); color:var(--text); border:1px solid var(--control-border); min-height:44px; border-radius:8px; padding:8px 12px; margin-left:auto; white-space:nowrap; font-size:12px; }
.titan-v2 .demo-notice { font-size:12px; padding:10px 0; }
.titan-v2 .breadcrumb { margin:12px 0; padding:0; }
.titan-v2 .stock-header { padding:22px 28px; margin-bottom:16px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.titan-v2 .stock-identity h1 { font-size:28px; margin-top:4px; }
.titan-v2 .price { font-size:38px; margin-top:0; }
.titan-v2 .price-block { text-align:right; }
.titan-v2 .price-change { margin-top:4px; }
.titan-v2 .timestamp { font-size:12px; margin-top:8px; }
.titan-v2 .section-nav { position:sticky; top:var(--section-offset); z-index:25; background:var(--bg); padding:8px 0; margin-bottom:20px; border-bottom:1px solid var(--border); }
.titan-v2 .section-nav .subtabs { margin:0; padding:3px; gap:6px; overscroll-behavior-inline:contain; scroll-padding-inline:8px; }
.titan-v2 .subtabs a { min-height:44px; border-radius:8px; padding:9px 16px; border:1px solid var(--border); font-size:14px; }
.titan-v2 .subtabs a[aria-current] { background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.titan-v2 .swipe-note { display:none; font-size:11px; color:var(--muted); }
.titan-v2 .tab-panel { scroll-margin-top:calc(var(--section-offset) + 100px); margin-bottom:24px; }
.titan-v2 .tab-panel:focus { outline:none; }
.titan-v2 .section-head { align-items:center; margin-bottom:16px; }
.titan-v2 .section-head h2 { font-size:22px; }
.titan-v2 .section-head .muted { font-size:12px; }
.titan-v2 .panel { box-shadow:none; }
.titan-v2 .padded { padding:24px; }
.titan-v2 .compact-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:20px; }
.titan-v2 .compact-grid > * { min-width:0; }
.titan-v2 .metrics > div { padding:16px; }
.titan-v2 .metrics dt { font-size:12px; }
.titan-v2 .metrics dd { font-size:18px; }
.titan-v2 .micro-cta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:16px 20px; border:1px solid var(--border); border-radius:12px; margin-top:20px; background:var(--brand-soft); }
.titan-v2 .micro-cta p { font-size:13px; }
.titan-v2 .micro-cta a { min-height:44px; display:inline-flex; align-items:center; font-size:13px; color:var(--brand); font-weight:600; }
.titan-v2 .range-options { border:0; padding:0; margin:0; min-width:0; }
.titan-v2 .range-options legend { font-size:12px; color:var(--muted); margin-bottom:8px; }
.titan-v2 .option-strip { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.titan-v2 .option-strip label { display:flex; align-items:center; justify-content:center; padding:8px 14px; min-height:44px; font-size:13px; border:1px solid var(--control-border); border-radius:8px; cursor:pointer; background:var(--surface); }
.titan-v2 .option-radio { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.titan-v2 .range-view,.titan-v2 .flow-view,.titan-v2 .list-page { display:none; }
.titan-v2 #period-1:checked ~ .range-views .range-1,.titan-v2 #period-3:checked ~ .range-views .range-3,.titan-v2 #period-6:checked ~ .range-views .range-6,.titan-v2 #period-12:checked ~ .range-views .range-12,
.titan-v2 #flow-f:checked ~ .flow-views .flow-f,.titan-v2 #flow-i:checked ~ .flow-views .flow-i,.titan-v2 #flow-p:checked ~ .flow-views .flow-p,
.titan-v2 .page-radio-1:checked ~ .paged-content .list-page-1,.titan-v2 .page-radio-2:checked ~ .paged-content .list-page-2 { display:block; }
.titan-v2 #period-1:checked ~ .option-strip [for='period-1'],.titan-v2 #period-3:checked ~ .option-strip [for='period-3'],.titan-v2 #period-6:checked ~ .option-strip [for='period-6'],.titan-v2 #period-12:checked ~ .option-strip [for='period-12'],
.titan-v2 #flow-f:checked ~ .option-strip [for='flow-f'],.titan-v2 #flow-i:checked ~ .option-strip [for='flow-i'],.titan-v2 #flow-p:checked ~ .option-strip [for='flow-p'],
.titan-v2 .page-radio-1:checked ~ .option-strip .page-label-1,.titan-v2 .page-radio-2:checked ~ .option-strip .page-label-2 { background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.titan-v2 .option-radio:focus-visible ~ .option-strip { outline:3px solid var(--focus); outline-offset:4px; border-radius:8px; }
.titan-v2 .page-radio-3:checked ~ .paged-content .list-page-3,.titan-v2 .page-radio-4:checked ~ .paged-content .list-page-4 { display:block; }
.titan-v2 .page-radio-3:checked ~ .option-strip .page-label-3,.titan-v2 .page-radio-4:checked ~ .option-strip .page-label-4 { background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.titan-v2 .investor-history summary { padding:16px 20px; }
.titan-v2 .history-content { padding:0 16px 16px; }
.titan-v2 .chart-summary { display:flex; align-items:baseline; gap:8px 16px; flex-wrap:wrap; margin-bottom:8px; }
.titan-v2 .chart-summary strong { font-size:22px; }
.titan-v2 .chart-summary span { font-size:12px; color:var(--muted); }
.titan-v2 .price-chart,.titan-v2 .flow-chart { display:block; width:100%; height:auto; overflow:visible; font-family:var(--font-sans); }
.titan-v2 .chart-mobile { display:none; }
.titan-v2 .chart-grid { stroke:var(--border); stroke-width:1; vector-effect:non-scaling-stroke; }
.titan-v2 .chart-axis { fill:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.titan-v2 .chart-line { fill:none; stroke:var(--text); stroke-width:2; vector-effect:non-scaling-stroke; stroke-linejoin:round; stroke-linecap:round; }
.titan-v2 .chart-area { fill:var(--brand); opacity:.09; }
.titan-v2 .chart-vol-up { fill:var(--up); opacity:.75; }
.titan-v2 .chart-vol-down { fill:var(--down); opacity:.75; }
.titan-v2 .chart-vol-flat { fill:var(--flat); opacity:.75; }
.titan-v2 .chart-reference { stroke:var(--muted); stroke-width:1; stroke-dasharray:4 4; vector-effect:non-scaling-stroke; }
.titan-v2 .chart-reference-label { fill:var(--muted); font-size:11px; }
.titan-v2 .chart-marker { fill:var(--surface); stroke:var(--text); stroke-width:2; vector-effect:non-scaling-stroke; }
.titan-v2 .chart-current { fill:var(--text); font-size:12px; font-weight:700; }
.titan-v2 .chart-caption { font-size:12px; color:var(--muted); margin-top:10px; }
.titan-v2 figure { margin:0; }
.titan-v2 .chart-key { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:8px; font-size:12px; color:var(--muted); }
.titan-v2 .summary-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.titan-v2 .summary-three > div { padding:16px; border:1px solid var(--border); background:var(--surface); border-radius:12px; }
.titan-v2 .summary-three dt { font-size:12px; color:var(--muted); }
.titan-v2 .summary-three dd { margin:6px 0 0; font-size:21px; font-weight:650; color:var(--text); }
.titan-v2 .flow-positive { fill:var(--flow-positive); }
.titan-v2 .flow-negative { fill:var(--flow-negative); opacity:.7; }
.titan-v2 .flow-zero { stroke:var(--text); stroke-width:1.5; vector-effect:non-scaling-stroke; }
.titan-v2 .flow-label { fill:var(--text); font-size:11px; font-variant-numeric:tabular-nums; }
.titan-v2 .flow-panel { margin-bottom:20px; }
.titan-v2 .dense-table th,.titan-v2 .dense-table td { padding:12px; font-size:12px; }
.titan-v2 .dense-table caption { font-size:12px; }
.titan-v2 .dense-table th { white-space:normal; }
.titan-v2 .dense-table th button { border:0; color:var(--text); background:transparent; font-weight:600; font-size:12px; min-height:44px; cursor:default; }
.titan-v2 .news-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.titan-v2 .news-card { display:grid; grid-template-columns:minmax(0,1fr) 96px; gap:16px; padding:20px; align-content:start; }
.titan-v2 .news-card.no-thumb { grid-template-columns:1fr; }
.titan-v2 .news-meta { font-size:12px; color:var(--muted); margin-bottom:8px; }
.titan-v2 .news-title { font-size:17px; line-height:1.5; text-wrap:pretty; }
.titan-v2 .news-title a { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:44px; }
.titan-v2 .news-summary { font-size:13px; line-height:1.7; color:var(--muted); margin-top:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.titan-v2 .news-thumb { width:96px; height:80px; object-fit:cover; border-radius:8px; background:var(--surface-soft); }
.titan-v2 .external-note { display:inline-flex; align-items:center; min-height:44px; margin-top:8px; font-size:12px; color:var(--brand); }
.titan-v2 .news-card > .external-note,.titan-v2 .news-card > .news-summary { grid-column:1/-1; margin-top:0; }
.titan-v2 .theme-head { padding:24px; margin:16px 0; }
.titan-v2 .theme-head h1 { font-size:30px; margin:8px 0 12px; }
.titan-v2 .theme-description { font-size:14px; color:var(--muted); line-height:1.8; max-width:35em; }
.titan-v2 .theme-description:not([open]) .description-short { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.titan-v2 .description-full { max-width:35em; }
.titan-v2 .theme-description summary { padding:8px 0; font-size:13px; color:var(--brand); }
.titan-v2 .description-preview { font-size:14px; color:var(--muted); line-height:1.8; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; max-width:35em; }
.titan-v2 .theme-head:has(details[open]) .description-preview { display:none; }
.titan-v2 .theme-description details p { padding:0; font-size:14px; }
.titan-v2 .theme-summary { display:grid; grid-template-columns:1fr 2fr; gap:24px; margin-top:24px; padding-top:20px; border-top:1px solid var(--border); }
.titan-v2 .theme-rate { font-size:32px; font-weight:700; margin-top:4px; }
.titan-v2 .ratio-bar { display:flex; height:10px; border-radius:20px; overflow:hidden; margin-block:12px; background:var(--surface-soft); }
.titan-v2 .ratio-up { background:var(--up); } .titan-v2 .ratio-down { background:var(--down); } .titan-v2 .ratio-flat { background:var(--flat); }
.titan-v2 .ratio-example .ratio-up { width:50%; } .titan-v2 .ratio-example .ratio-down { width:33.3333%; } .titan-v2 .ratio-example .ratio-flat { width:16.6667%; }
.titan-v2 .ratio-legend { display:flex; gap:8px 16px; flex-wrap:wrap; font-size:12px; }
.titan-v2 .sort-note { font-size:12px; color:var(--muted); margin-bottom:12px; }
.titan-v2 .theme-row-preview { margin-top:24px; padding:20px; }
.titan-v2 .theme-list-link { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; min-height:56px; border-top:1px solid var(--border); margin-top:12px; }
.titan-v2 .theme-list-link strong { display:block; font-size:15px; }
.titan-v2 .theme-list-link small { color:var(--muted); font-size:12px; }
.titan-v2 .site-footer { margin-top:24px; padding:24px 0; }
@media(min-width:768px) { .titan-v2 { --page-gutter:32px; } }
@media(min-width:1024px) { .titan-v2 { --page-gutter:48px; } }
@media(max-width:767px) {
 .titan-v2 { --section-offset:110px; }
 .titan-v2 .header-inner { min-height:0; padding:10px 0 0; gap:4px 12px; }
 .titan-v2 .mode-switch { order:1; }
 .titan-v2 .nav { gap:4px; margin:0; }
 .titan-v2 .nav a { padding-inline:8px; }
 .titan-v2 .stock-header { padding:18px; align-items:start; gap:14px; flex-direction:column; }
 .titan-v2 .stock-identity h1 { font-size:26px; }
 .titan-v2 .price-block { text-align:left; }
 .titan-v2 .price { font-size:34px; }
 .titan-v2 .section-nav { margin-bottom:16px; padding:6px 0; }
 .titan-v2 .subtabs a { font-size:13px; padding-inline:13px; }
 .titan-v2 .swipe-note { display:block; margin-top:3px; }
 .titan-v2 .section-head { gap:8px; }
 .titan-v2 .section-head h2 { font-size:20px; }
 .titan-v2 .section-head .muted { max-width:12em; text-align:right; }
 .titan-v2 .compact-grid { grid-template-columns:1fr; gap:16px; }
 .titan-v2 .padded { padding:16px; }
 .titan-v2 .option-strip { gap:6px; }
 .titan-v2 .option-strip label { padding:8px 11px; font-size:12px; }
 .titan-v2 .chart-desktop { display:none; } .titan-v2 .chart-mobile { display:block; }
 .titan-v2 .chart-summary strong { font-size:19px; }
 .titan-v2 .summary-three { gap:6px; }
 .titan-v2 .summary-three > div { padding:12px 8px; }
 .titan-v2 .summary-three dd { font-size:16px; } .titan-v2 .summary-three dt { font-size:12px; }
 .titan-v2 .dense-table tr { padding:14px 16px; grid-template-columns:1fr 1fr; gap:10px 12px; }
 .titan-v2 .dense-table td,.titan-v2 .dense-table td:last-child { padding:0; border:0; grid-column:auto; grid-row:auto; display:flex; flex-direction:column; align-items:flex-end; font-size:13px; }
 .titan-v2 .dense-table td:first-child { grid-column:1/-1; align-items:flex-start; border-bottom:1px solid var(--border); padding-bottom:8px; }
 .titan-v2 .dense-table .row-label { display:block; margin:0 0 2px; font-size:11px; }
 .titan-v2 .dense-table .table-stock-link { min-height:44px; }
 .titan-v2 .theme-table td:nth-child(2) { display:none; }
 .titan-v2 .theme-table tr { gap:6px 12px; padding-block:12px; }
 .titan-v2 .news-grid { grid-template-columns:1fr; gap:12px; }
 .titan-v2 .news-card { padding:16px; grid-template-columns:minmax(0,1fr) 64px; gap:12px; }
 .titan-v2 .news-title { font-size:15px; }
 .titan-v2 .news-thumb { width:64px; height:64px; }
 .titan-v2 .news-card .news-summary { grid-column:1/-1; }
 .titan-v2 .theme-head { padding:20px; }
 .titan-v2 .theme-head h1 { font-size:26px; }
 .titan-v2 .theme-summary { grid-template-columns:1fr; gap:16px; margin-top:16px; }
 .titan-v2 .theme-rate { font-size:28px; }
}
@media(prefers-reduced-motion:reduce) { .titan-v2 { scroll-behavior:auto; } }
