/* instruments — page-family styles.
   Structural selectors recovered from the pre-overhaul pages after the
   cleanup pass removed them, translated onto the current tokens: palette
   and type mapped to variables, radii squared, soft shadows dropped.
   The build does not edit this file. */
.reveal{opacity:1 !important;transform:none !important}
.page-hero{background:transparent;border-bottom:1px solid var(--hair);padding:52px 0 30px;position:relative;overflow:visible}
.page-hero::after{display:none !important}
.page-hero-inner{max-width:720px;margin:0 auto;padding:0 24px}
.page-hero-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink)}
.page-hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4.4vw,2.9rem);line-height:1.13;letter-spacing:-.015em;color:var(--t1) !important;margin:14px 0 0}
.page-hero-sub,.page-hero-subtitle,.page-hero-desc{font-size:17px;line-height:1.6;color:var(--t2);margin-top:14px;max-width:62ch}
.sect{max-width:none;padding:44px 0;border-top:1px solid var(--hair)}
.content{max-width:720px;margin:0 auto;padding:0 24px}
.sect-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink)}
.sect-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.18;color:var(--t1);margin:12px 0 0;letter-spacing:-.01em}
.sect-desc,.sect-sub{font-size:16px;line-height:1.62;color:var(--t2);max-width:70ch;margin-top:14px}
.content p{font-size:16.5px;line-height:1.68;color:var(--t2);margin:0 0 18px}
.section-cta-banner{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:40px 28px;margin:48px auto;max-width:720px;display:flex;flex-direction:column;align-items:center;text-align:center}
.cta-banner-inner{max-width:560px;margin:0 auto}
.cta-banner-inner h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2rem);color:var(--t1) !important;line-height:1.2;margin:0 auto 12px;max-width:none}
.cta-banner-inner p{font-size:16px;line-height:1.6;color:var(--t2) !important;margin:0 0 22px}
.cta-banner-inner a{display:inline-block;margin:0 10px;color:var(--coral-ink);font-weight:600;text-decoration:none}
.cta-banner-inner a:first-of-type{margin-left:0}
.cta-banner-inner a:hover{text-decoration:underline}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}
@media(max-width:640px){.metric-grid{grid-template-columns:1fr}}
.metric{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:22px 24px}
.metric-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:8px}
.metric-value{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--t1);line-height:1.1}
.metric-sub{font-size:13px;color:var(--t3);margin-top:6px}
.read-line{font-size:14px;color:var(--t3);margin-top:14px}
.chartwrap{margin:20px 0;border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;background:var(--panel);padding:14px}
.chartwrap img{max-width:100%;height:auto;display:block;border-radius:var(--r)}
.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
@media(max-width:640px){.map-grid{grid-template-columns:1fr}}
.map-col{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:20px 22px}
.map-col.current{border-top:3px solid var(--coral)}
.map-tier{font-size:14px;line-height:1.55;color:var(--t2);padding:8px 0;border-top:1px solid var(--hair)}
.map-tier:first-child{border-top:none;font-weight:600;color:var(--coral-ink);text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.cookie-banner{display:flex !important}
.gen-wrap{max-width:900px;margin:0 auto;padding:0 24px}
.view-surface,.view-mid,.view-full{display:none}
.view-surface.visible,.view-mid.visible,.view-full.visible{display:block}
.gen-detail-panel{display:none}
.gen-detail-panel.visible{display:block}
.dim-item-body{display:none}
.dim-item.open .dim-item-body,.dim-item-body.open{display:block}
.cluster-body{display:none}
.cluster.open .cluster-body,.cluster-body.open{display:block}
.hero-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink)}
.depth-controls{display:inline-flex;gap:4px;margin-top:24px;border:1px solid var(--edge);border-radius:var(--r);padding:4px;background:var(--panel);flex-wrap:wrap}
.depth-controls button,.depth-btn{font:inherit;font-size:13px;font-weight:600;color:var(--t2);background:none;border:none;border-radius:var(--r);padding:8px 16px;cursor:pointer}
.depth-controls button.active,.depth-btn.active{background:var(--coral);color:var(--panel)}
.depth-hint{font-size:13px;color:var(--t3);margin-top:12px;font-style:italic}
/* generation cards */
.gen-grid{max-width:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
}
.gen-card{background:var(--panel);border:1px solid var(--edge);border-top:3px solid var(--coral);border-radius:var(--r);padding:22px 20px;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:left}
.gen-card:hover{border-color:var(--coral);box-shadow:none}
.gen-card-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--coral-ink)}
.gen-card-title{font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--t1);margin:6px 0 4px}
.gen-card-timeframe{font-size:12px;color:var(--t3);margin-bottom:8px}
.gen-card-summary{font-size:13.5px;line-height:1.55;color:var(--t2)}
/* cross-ref / briefing / atlas boxes — normalize internals */
.cross-ref-box{max-width:none;margin:14px 0 0;display:block;background:rgba(16,23,28,.03);border:1px solid var(--edge);border-radius:var(--r);padding:26px 28px}
.cross-ref-box>div>div:first-child,.cross-ref-box .cross-ref{font-family:var(--sans) !important;font-size:11px !important;font-weight:600 !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:var(--coral-ink) !important;margin-bottom:10px !important}
.cross-ref-box h3{font-family:var(--serif) !important;font-size:1.35rem !important;font-weight:600 !important;color:var(--t1) !important;text-transform:none !important;letter-spacing:0 !important;line-height:1.2 !important;margin:6px 0 12px !important}
.cross-ref-box p{font-size:15px !important;line-height:1.62 !important;color:var(--t2) !important;text-transform:none !important;letter-spacing:0 !important;margin:0 0 14px !important}
.cross-ref-link{color:var(--coral-ink);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.ref-links{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.ref-link{display:block;color:var(--coral-ink);text-decoration:none;font-weight:500;font-size:15px;text-transform:none !important;letter-spacing:0 !important}
.ref-link:hover{text-decoration:underline}
.ref-gen-tag{font-family:var(--sans) !important;font-size:10px !important;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--coral-ink);background:rgba(232,115,90,.12);padding:2px 7px;border-radius:var(--r);margin-right:10px}
/* detail panel */
.gen-detail{max-width:none;margin:0;padding:0}
.detail-header{padding:28px 28px 12px}
.detail-header h2,.detail-header h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;color:var(--t1);margin:0}
.detail-header>div,.detail-meta{font-size:14px;color:var(--t3);margin-top:8px}
.dim-gen-card{padding:16px 28px;border-top:1px solid var(--hair)}
.dim-gen-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:5px}
.dim-gen-text{font-size:14.5px;line-height:1.62;color:var(--t2)}
/* dimension items + clusters */
.dim-item{border-top:1px solid var(--hair)}
.dim-item-header{display:flex;align-items:center;gap:14px;padding:15px 28px;cursor:pointer}
.dim-item-name{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--t1);flex:1}
.dim-item-preview{font-size:13px;color:var(--t3);text-align:right}
.dim-item-toggle{color:var(--coral-ink);font-size:16px;flex-shrink:0}
.key-dimension,.dimension-row{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:12px 28px;border-top:1px solid var(--hair)}
}
.dimension-label{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--coral-ink)}
.dimension-value{font-size:14.5px;line-height:1.6;color:var(--t2)}
.cluster{border:1px solid var(--edge);border-radius:var(--r);margin-top:18px;overflow:hidden;background:var(--panel)}
.cluster-header{display:flex;align-items:center;gap:12px;padding:16px 24px;cursor:pointer}
.cluster-number{font-size:12px;font-weight:700;color:var(--coral-ink)}
.cluster-title{font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--t1);flex:1}
.cluster-count{font-size:12px;color:var(--t3)}
.cluster-chevron{color:var(--coral-ink)}
/* cta */
.cta-section{max-width:none;text-align:center;margin:48px 0;padding:36px 24px}
.cta-btn{display:inline-block;background:var(--coral);color:var(--panel);font-weight:600;font-size:14px;padding:12px 26px;border-radius:var(--r);text-decoration:none;margin-top:14px}
/* --- lighten the cookie banner to match the site --- */
.cookie-banner{background:var(--panel) !important;border-top:1px solid var(--edge) !important;box-shadow:none}
.cookie-banner,.cookie-banner p,.cookie-text,.cookie-message{color:rgba(16,23,28,.78) !important}
.cookie-banner a,.cookie-link{color:var(--accent-ink) !important}
.cookie-btn.cookie-dismiss,.cookie-dismiss{background:transparent !important;color:var(--t2) !important;border:1px solid rgba(16,23,28,.2) !important}
.cookie-btn.cookie-accept,.cookie-accept{background:var(--accent) !important;color:var(--panel) !important;border:none !important}
