/* Generated by scripts/split-css.js from shared.css: the rules /profiles can use. Do not edit: edit shared.css, then run node scripts/split-css.js. */
@font-face { font-family: 'Cinzel'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/fonts/cinzel-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Cinzel'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/fonts/cinzel-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 300 400; font-display: swap; src: url(/fonts/crimson-pro-italic-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 300 400; font-display: swap; src: url(/fonts/crimson-pro-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 300 400; font-display: swap; src: url(/fonts/crimson-pro-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(/fonts/crimson-pro-normal-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(/fonts/crimson-pro-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 300 600; font-display: swap; src: url(/fonts/crimson-pro-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 300 600; src: local('Times New Roman'), local('TimesNewRomanPSMT'), local('Noto Serif'); unicode-range: U+02BB; }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 300 400; src: local('Times New Roman Italic'), local('TimesNewRomanPS-ItalicMT'), local('Noto Serif Italic'); unicode-range: U+02BB; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(/fonts/source-sans-3-normal-vietnamese.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(/fonts/source-sans-3-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(/fonts/source-sans-3-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Baloo 2'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/fonts/baloo-2-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/fonts/nunito-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Crimson Pro Fallback'; font-style: normal; font-weight: 300 500; src: local('Georgia'); size-adjust: 89.75%; ascent-override: 100.28%; descent-override: 23.4%; line-gap-override: 0%; }
@font-face { font-family: 'Crimson Pro Fallback'; font-style: normal; font-weight: 600 700; src: local('Georgia Bold'), local('Georgia-Bold'); size-adjust: 80.17%; ascent-override: 112.26%; descent-override: 26.19%; line-gap-override: 0%; }
@font-face { font-family: 'Crimson Pro Fallback'; font-style: italic; font-weight: 300 500; src: local('Georgia Italic'), local('Georgia-Italic'); size-adjust: 80.74%; ascent-override: 111.47%; descent-override: 26.01%; line-gap-override: 0%; }
@font-face { font-family: 'Cinzel Fallback'; font-style: normal; font-weight: 400 500; src: local('Georgia'); size-adjust: 120.5%; ascent-override: 81.33%; descent-override: 30.71%; line-gap-override: 0%; }
@font-face { font-family: 'Cinzel Fallback'; font-style: normal; font-weight: 600 700; src: local('Georgia Bold'), local('Georgia-Bold'); size-adjust: 107.25%; ascent-override: 91.38%; descent-override: 34.5%; line-gap-override: 0%; }
@font-face { font-family: 'Source Sans 3 Fallback'; font-style: normal; font-weight: 400 500; src: local('Arial'), local('ArialMT'); size-adjust: 92.75%; ascent-override: 109.97%; descent-override: 43.13%; line-gap-override: 0%; }
@font-face { font-family: 'Source Sans 3 Fallback'; font-style: normal; font-weight: 600 700; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 89.48%; ascent-override: 113.99%; descent-override: 44.7%; line-gap-override: 0%; }
@font-face { font-family: 'Nunito Fallback'; font-style: normal; font-weight: 400 500; src: local('Arial'), local('ArialMT'); size-adjust: 101.25%; ascent-override: 99.75%; descent-override: 34.57%; line-gap-override: 0%; }
@font-face { font-family: 'Nunito Fallback'; font-style: normal; font-weight: 600 900; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 99.75%; ascent-override: 101.25%; descent-override: 35.09%; line-gap-override: 0%; }
@font-face { font-family: 'Baloo 2 Fallback'; font-style: normal; font-weight: 400 600; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 90%; ascent-override: 120%; descent-override: 57.78%; line-gap-override: 0%; }
@font-face { font-family: 'Baloo 2 Fallback'; font-style: normal; font-weight: 700 900; src: local('Arial Bold'), local('Arial-BoldMT'); size-adjust: 95%; ascent-override: 113.68%; descent-override: 54.74%; line-gap-override: 0%; }
:root {
    --bg: #0b0c10;
    --surface: #12141a;
    --border: #2a2d3a;
    --field-border: #606478;   /* form fields: 3:1 against the page (WCAG 1.4.11); --border is for cards and rules */
    --text: #e8e0d0;
    --muted: #958a76;
    --gold: #c9a84c;
    --gold-light: #e8c97a;
    --gold-rgb: 201,168,76;        /* for translucent gold: rgba(var(--gold-rgb), a) */
    --gold-light-rgb: 232,201,122;
    --cm-silver: #b4bcc6;          /* connections map: lineage and past ties */
    --cm-thread: rgba(236,232,224,0.42);  /* connections map: second-step threads */
    --cm-glint: #f7d67c;           /* connections map: the rule lines' glimmer (stays gold: never mistaken for silver) */
    /* Type: Cinzel for display only, Source Sans 3 for interface text, Crimson Pro for reading */
    --font-display: 'Cinzel', 'Cinzel Fallback', Georgia, serif;
    --font-ui: 'Source Sans 3', 'Source Sans 3 Fallback', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --font-text: 'Crimson Pro', 'Crimson Pro Fallback', Georgia, serif;
    --container: 1200px;
    --radius: 3px;
    --border-radius-lg: 6px;
    --error: #c0392b;
    --success: #5a9e6f;
    --shadow: rgba(0,0,0,0.5);
    --overlay: rgba(0,0,0,0.72);
    --shimmer-mid: rgba(42,45,58,0.5);
  }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-text);
    min-height: 100vh;
    overflow-x: hidden;
  }
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0;
    opacity: 0.4;
  }
header {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 36px 24px 20px;
    border-bottom: 1px solid var(--border);
  }
header h1 {
    font-family: var(--font-display);
    font-size: clamp(18px, 3vw, 32px);
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--gold-light);
    text-shadow: 0 0 40px rgba(var(--gold-rgb),0.3);
  }
header p {
    margin-top: 8px;
    font-size: 14px;
    color: var(--muted);
    font-style: italic;
    letter-spacing: 0.04em;
  }
.controls {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 24px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
  }
.tab {
    font-family: var(--font-ui);
    font-size: 12px;
    line-height: 16px; /* not "normal": that changes with the font, and the late font swap moved the explorer's chart */
    letter-spacing: 0.06em;
    padding: 5px 12px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    border-radius: 2px;
    transition: all 0.2s;
    text-transform: uppercase; font-weight: 600;}
.tab:hover { border-color: var(--gold); color: var(--gold); }
.tab.active { background: var(--gold); color: #0b0c10; border-color: var(--gold); font-weight: 600; }
#chart svg {
    display: block;
    width: 100%;
  }
.axis text {
    fill: var(--muted);
    font-family: var(--font-text);
    font-size: 14px;
  }
.axis line, .axis path {
    stroke: var(--border);
  }
.grid line {
    stroke: var(--border);
    stroke-opacity: 0.4;
    stroke-dasharray: 2,4;
  }
.grid path { stroke: none; }
#tooltip {
    position: fixed;
    pointer-events: none;
    background: var(--surface);
    border: 1px solid var(--gold);
    border-radius: 3px;
    padding: 10px 14px;
    font-size: 13px;
    max-width: 220px;
    z-index: 100;
    opacity: 0;
    transform: translateY(6px) scale(0.97);
    transition: opacity 0.18s ease, transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: 0 4px 24px rgba(0,0,0,0.6);
  }
#tooltip.visible { opacity: 1; transform: translateY(0) scale(1); }
.legend {
    position: relative;
    z-index: 1;
    padding: 16px 24px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    border-top: 1px solid var(--border);
    margin-top: 8px;
  }
[data-theme="light"] {
    --bg: #f4efe4;
    --surface: #ebe4d5;
    --border: #c8b896;
    --field-border: #8f7d58;
    --text: #2a2010;
    --muted: #665632;
    --gold: #76590f;
    --gold-light: #6b4e0a;
    --gold-rgb: 139,105,20;
    --gold-light-rgb: 107,78,10;
    --cm-silver: #7d8894;
    --cm-thread: rgba(42,32,16,0.42);
    --cm-glint: #b08a1c;
    --error: #b52a1d;
    --success: #3a7d52;
    --shadow: rgba(0,0,0,0.2);
    --overlay: rgba(0,0,0,0.5);
    --shimmer-mid: rgba(200,184,150,0.7);
  }
[data-theme="light"] body::before { opacity: 0.15; }
[data-theme="light"] .site-nav.scrolled { background: rgba(244,239,228,0.92); }
.nav-toggles { display: flex; align-items: center; gap: 8px; }
.nav-toggle-btn {
    font-family: var(--font-ui);
    font-size: 12px;
    letter-spacing: 0.02em;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--muted);
    padding: 4px 10px;
    border-radius: 2px;
    cursor: pointer;
    transition: all 0.2s;
  }
.nav-toggle-btn:hover { border-color: var(--gold); color: var(--gold); }
#profiles { position: relative; z-index: 1; }
.profile-era-group { padding: 32px 40px 8px; }
.profile-era-title {
    font-family: var(--font-ui);
    font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--gold); opacity: 0.8; margin: 0 0 20px;
    border-bottom: 1px solid var(--border); padding-bottom: 10px; font-weight: 600;}
.profile-thumb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 16px;
    margin-bottom: 32px;
  }
.empire-thumb {
    text-decoration: none; color: inherit;
    display: flex; flex-direction: column; align-items: center;
    gap: 10px; padding: 20px 12px 16px;
    border: 1px solid var(--border);
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    text-align: center;
  }
@media (hover: hover) {
.empire-thumb:hover { border-color: var(--gold); background: rgba(var(--gold-rgb),0.05); }
}
.empire-thumb:active { border-color: var(--gold); background: rgba(var(--gold-rgb),0.05); }
.empire-thumb { touch-action: manipulation; }
.thumb-logo {
    width: 64px; height: 64px;
    object-fit: contain;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4));
    opacity: 0.9;
  }
.thumb-logo-fallback {
    width: 64px; height: 64px;
    display: flex; align-items: center; justify-content: center;
    font-size: 28px; color: var(--gold); opacity: 0.5;
  }
.thumb-name {
    font-family: var(--font-ui); font-size: 12px;
    letter-spacing: 0.02em; color: var(--text); line-height: 1.4;
  }
.profile-detail-name {
    font-family: var(--font-display); font-size: clamp(18px, 3vw, 28px);
    color: var(--gold-light); letter-spacing: 0.06em; margin: 0;
  }
.profile-section-block { margin-bottom: 36px; }
.profile-section-title {
    font-family: var(--font-display); font-size: 14px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--gold); margin: 0 0 14px;
    padding-bottom: 6px; border-bottom: 1px solid var(--border);
  }
.profile-section-body {
    font-family: var(--font-text);
    font-size: 18px; line-height: 1.8; color: var(--text);
  }
.profile-section-body p { margin: 0 0 12px; }
.profile-section-body p:last-child { margin-bottom: 0; }
.profile-summary {
    font-family: var(--font-text);
    font-style: italic; font-weight: 300; font-size: 19px;
    color: var(--muted); line-height: 1.75;
    border-top: 1px solid var(--border); padding-top: 28px;
    margin: 40px 0 0;
  }
.profile-references { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--border); }
@media (max-width: 600px) {
.profile-era-group { padding: 24px 16px 0; }
.profile-thumb-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; }
.profile-section-body { font-size: 15px; }
.profile-summary { font-size: 15px; }
}
html { scroll-behavior: smooth; }
section { scroll-margin-top: 60px; }
.site-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 40px;
    z-index: 200;
    transition: background 0.3s, border-color 0.3s;
  }
.site-nav.scrolled {
    background: rgba(11,12,16,0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border);
  }
.nav-logo {
    text-decoration: none;
    display: flex;
    align-items: center;
  }
.nav-logo-img { height: 36px; width: auto; display: block; }
.nav-logo-text { font-family: var(--font-display); font-size: 14px; letter-spacing: 0.16em; color: var(--gold); transition: color 0.2s; }
.nav-logo:hover .nav-logo-text { color: var(--gold-light); }
.nav-links { display: flex; gap: 32px; }
@media (min-width: 769px) {
.nav-links { position: absolute; left: 50%; transform: translateX(-50%); width: max-content; white-space: nowrap; }
}
@media (max-width: 1365px) {
.nav-links { gap: 24px; }
}
.nav-link {
    font-family: var(--font-ui);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
    text-decoration: none;
    transition: color 0.2s; font-weight: 600;}
.nav-link:hover { color: var(--gold); }
.hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 24px;
    position: relative;
    z-index: 1;
  }
@keyframes scrollPulse {
    0%, 100% { opacity: 0; }
    50% { opacity: 1; }
  }
#research { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 24px; text-align: center; scroll-margin-top: 60px; }
#explorer { display: none; }
.explorer-header {
    padding: 72px 40px 32px;
    border-bottom: 1px solid var(--border);
    position: relative;
    z-index: 1;
  }
.explorer-label {
    font-family: var(--font-ui);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gold);
    opacity: 0.75;
    margin: 0 0 12px; font-weight: 600;}
.explorer-title {
    font-family: var(--font-display);
    font-size: clamp(20px, 3.5vw, 34px);
    font-weight: 700;
    color: var(--gold-light);
    letter-spacing: 0.08em;
    margin: 0 0 16px;
  }
.explorer-description {
    font-family: var(--font-text);
    font-style: italic;
    font-weight: 300;
    font-size: 17px;
    color: var(--muted);
    max-width: 680px;
    line-height: 1.75;
    margin: 0;
  }
footer {
    padding: 48px 40px 24px;
    border-top: 1px solid var(--border);
    position: relative;
    z-index: 1;
  }
.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 40px;
    margin-bottom: 40px;
  }
.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
.footer-logo {
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: 0.18em;
    color: var(--gold-light);
  }
.footer-brand-tag {
    font-size: 12px;
    color: var(--muted);
    font-style: italic;
  }
.footer-social { display:flex; flex-direction:column; gap:16px; margin-top:18px; }
.footer-social-link { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--muted); transition:opacity 0.2s; }
.footer-social-link:hover { opacity:0.8; color:var(--text); }
.footer-social-text { font-family:var(--font-ui); font-size:12px; letter-spacing: 0.02em; color:inherit; transition:color 0.2s; }
.footer-links {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
  }
.footer-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
.footer-col-title {
    font-family: var(--font-ui);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gold);
    opacity: 0.7;
    margin-bottom: 4px; font-weight: 600;}
.footer-link {
    font-size: 15px;
    color: var(--muted);
    text-decoration: none;
    transition: color 0.15s;
    font-family: var(--font-text);
  }
.footer-link:hover { color: var(--text); }
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    border-top: 1px solid var(--border);
    padding-top: 20px;
    font-size: 13px;
    color: var(--muted);
    font-style: italic;
    letter-spacing: 0.03em;
  }
#explorer { transition: padding-right 0.4s cubic-bezier(0.25,0.46,0.45,0.94); }
@media (max-width: 768px) {
.site-nav { padding: 0 20px; gap: 12px; }
.nav-links { gap: 18px; }
.nav-toggle-btn { font-size: 12px; padding: 4px 8px; }
.hero { padding: 100px 24px 60px; }
.tab { font-size: 12px; padding: 5px 10px; white-space: nowrap; flex-shrink: 0; }
.profile-era-group { padding: 28px 24px 0; }
.profile-thumb-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
}
@media (max-width: 480px) {
.site-nav { padding: 0 14px; height: 54px; }
.nav-links { display: none; }
.nav-toggle-btn { font-size: 12px; padding: 4px 7px; }
.nav-toggles { gap: 6px; }
section { scroll-margin-top: 54px; }
.hero { padding: 86px 18px 48px; }
.explorer-title { font-size: clamp(16px, 5vw, 22px); }
.explorer-description { font-size: 13px; }
.tab { font-size: 12px; padding: 5px 8px; min-height: 30px; }
.legend { padding: 0 8px; }
.axis text { font-size: 12px; }
.profile-era-group { padding: 20px 14px 0; }
.profile-thumb-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px; }
.empire-thumb { padding: 16px 8px 12px; gap: 8px; }
.thumb-logo { width: 52px; height: 52px; }
.thumb-logo-fallback { width: 52px; height: 52px; font-size: 22px; }
.profile-section-body { font-size: 14px; line-height: 1.75; }
.form-input, input, select, textarea { font-size: 16px; }
.footer-links { gap: 24px; }
.profile-summary { font-size: 14px; padding-top: 20px; margin-top: 28px; }
}
@keyframes overlayFadeIn {
    from { opacity: 0; backdrop-filter: blur(0px); }
    to   { opacity: 1; backdrop-filter: blur(4px); }
  }
@keyframes overlayFadeOut {
    from { opacity: 1; backdrop-filter: blur(4px); }
    to   { opacity: 0; backdrop-filter: blur(0px); }
  }
@keyframes modalBoxIn {
    0%   { opacity: 0; transform: scale(0.88) translateY(24px); box-shadow: 0 0 0 rgba(0,0,0,0); }
    60%  { opacity: 1; transform: scale(1.02) translateY(-3px); }
    100% { opacity: 1; transform: scale(1)    translateY(0);    box-shadow: 0 24px 64px rgba(0,0,0,0.5); }
  }
@keyframes modalBoxOut {
    from { opacity: 1; transform: scale(1)    translateY(0);    }
    to   { opacity: 0; transform: scale(0.92) translateY(12px); }
  }
.modal-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.72);
    display: flex; align-items: center; justify-content: center;
    z-index: 500; padding: 20px;
  }
.modal-overlay.is-open,
  .thankyou-overlay.is-open { animation: overlayFadeIn  0.3s  ease forwards; }
.modal-overlay.closing,
  .thankyou-overlay.closing { animation: overlayFadeOut 0.22s ease forwards; }
@keyframes fadeSlideUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
  }
@keyframes shakeIn {
    0%   { opacity: 0; transform: translateX(0); }
    15%  { opacity: 1; transform: translateX(-7px); }
    35%  { transform: translateX(7px); }
    55%  { transform: translateX(-4px); }
    75%  { transform: translateX(4px); }
    100% { opacity: 1; transform: translateX(0); }
  }
#about { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 24px; text-align: center; scroll-margin-top: 60px; }
.nav-hamburger { display: none; }
@media (max-width: 480px) {
.nav-hamburger {
      display: flex; align-items: center; justify-content: center;
      font-size: 20px; line-height: 1; color: var(--gold);
      background: none; border: none; cursor: pointer;
      min-width: 44px; min-height: 44px; padding: 0;
    }
}
.nav-dropdown {
    display: none; position: absolute; top: 54px; left: 0; right: 0;
    background: var(--surface); border-bottom: 1px solid var(--border);
    flex-direction: column; z-index: 999;
  }
.nav-dropdown.open { display: flex; }
.nav-dropdown-link {
    font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
    text-transform: uppercase; color: var(--text); text-decoration: none;
    padding: 16px 24px; border-bottom: 1px solid var(--border);
    transition: color 0.2s, background 0.2s; font-weight: 600;}
.nav-dropdown-link:hover { color: var(--gold); background: rgba(var(--gold-rgb),0.05); }
.nav-dd-display { display: none; }
@media (max-width: 480px) {
#theme-toggle, #nav-kids-btn { display: none; }
.nav-dd-display { display: flex; gap: 8px; padding: 12px 24px; border-bottom: 1px solid var(--border); }
.nav-dd-btn { flex: 1; min-height: 44px; font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--text); background: var(--bg); border: 1px solid var(--border); border-radius: 999px; padding: 8px 12px; cursor: pointer; }
.nav-dd-btn:hover, .nav-dd-btn[aria-pressed="true"] { color: var(--gold); border-color: var(--gold); }
}
.pagination-btn {
    font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.02em;
    padding: 8px 16px; border: 1px solid var(--border);
    background: none; color: var(--muted); cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
  }
.pagination-btn:hover { border-color: var(--gold); color: var(--gold); }
.pagination-btn.active { border-color: var(--gold); color: var(--gold); }
@keyframes sectionSlideIn {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
  }
@keyframes cardFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
  }
@keyframes pageFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
  }
body.page-entering {
    animation: pageFadeIn 0.38s cubic-bezier(0.22,1,0.36,1) backwards;
  }
body.page-leaving {
    opacity: 0;
    transform: translateY(-5px);
    transition: opacity 0.18s ease, transform 0.18s ease;
    pointer-events: none;
  }
@media (max-width: 768px) {
.pagination-btn { font-size: 12px; padding: 7px 12px; }
}
.info-share-row {
  display: flex; align-items: center; gap: 10px;
  margin-top: 16px; padding-top: 12px;
  border-top: 0.5px solid var(--border);
}
.info-share-btn {
  background: none; border: none; cursor: pointer;
  color: var(--muted); padding: 4px;
  display: flex; align-items: center;
  transition: color 0.2s;
}
.info-share-btn:hover { color: var(--gold); }
.profile-search-wrap {
  display: flex; flex-direction: column; align-items: center;
  padding: 8px 40px 20px;
}
.profile-search-clear {
  position: absolute; right: 0; top: 0; bottom: 0; width: 44px;
  display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer;
  font-size: 14px; color: var(--muted); transition: color 0.2s; min-height: 44px;
}
.profile-search-clear:hover { color: var(--gold); }
.profile-search-empty {
  font-family: var(--font-text); font-size: 18px;
  color: var(--muted); text-align: center; padding: 24px 40px;
  flex-direction: column; align-items: center; gap: 8px;
}
.profile-search-empty small { font-size: 13px; }
@media (max-width: 600px) {
.profile-search-wrap { padding: 8px 16px 16px; }
.profile-search-empty { padding: 16px; }
}
#dataset {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 80px 24px;
  text-align: center; scroll-margin-top: 60px;
}
#research-series {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 80px 24px;
  text-align: center; scroll-margin-top: 60px;
}
#contributors {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 80px 24px;
  text-align: center; scroll-margin-top: 60px;
}
@keyframes contributorShimmer {
  0% { background-position: -400px 0; } 100% { background-position: 400px 0; }
}
.compare-toggle-btn {
  font-family:var(--font-ui); font-size:12px; letter-spacing: 0.06em; text-transform:uppercase;
  color:var(--muted); background:none; border:1px solid var(--border);
  padding:10px 20px; min-height:40px; cursor:pointer; transition:border-color 0.2s,color 0.2s; font-weight: 600;}
.compare-toggle-btn:hover, .compare-toggle-btn.active { border-color:var(--gold); color:var(--gold); }
.compare-panel { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.22,1,0.36,1); padding:0 40px; }
.compare-panel.open { max-height:1200px; }
.compare-hint { font-family:var(--font-text); font-size:16px; color:var(--muted); text-align:center; padding:20px 0 16px; margin:0; }
.compare-slots { display:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:0; }
.compare-slot { border:1px solid var(--border); border-radius:6px; min-height:120px; transition:border-color 0.2s; }
.compare-slot-empty { display:flex; align-items:center; justify-content:center; background:var(--surface); }
.compare-slot-placeholder { font-family:var(--font-ui); font-size:12px; letter-spacing: 0.06em; text-transform:uppercase; color:var(--muted); opacity:0.5; font-weight: 600;}
.compare-divider { display:flex; align-items:center; justify-content:center; padding:20px 16px; }
.compare-vs { font-family:var(--font-ui); font-size:13px; letter-spacing: 0.06em; text-transform:uppercase; color:var(--gold); opacity:0.6; font-weight: 600;}
.compare-slot-filled { padding:20px; overflow:hidden; }
.compare-slot-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.compare-slot-identity { display:flex; align-items:center; gap:10px; }
.compare-slot-logo { width:36px; height:36px; object-fit:contain; flex-shrink:0; }
.compare-slot-name { font-family:var(--font-display); font-size:14px; color:var(--gold-light); letter-spacing:0.05em; margin:0 0 2px; }
.compare-slot-region { font-family:var(--font-ui); font-size:12px; letter-spacing: 0.06em; text-transform:uppercase; color:var(--muted); margin:0; font-weight: 600;}
.compare-slot-remove { background:none; border:none; cursor:pointer; font-size:14px; color:var(--muted); padding:6px 8px; min-width:32px; min-height:32px; display:flex; align-items:center; justify-content:center; line-height:1; transition:color 0.2s; flex-shrink:0; }
.compare-slot-remove:hover { color:var(--gold); }
.compare-slot-stats { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:12px; border-bottom:0.5px solid var(--border); }
.compare-stat-item { display:flex; flex-direction:column; gap:2px; }
.compare-stat-label { font-family:var(--font-ui); font-size:12px; letter-spacing: 0.06em; text-transform:uppercase; color:var(--muted); font-weight: 600;}
.compare-stat-val { font-family:var(--font-text); font-size:17px; color:var(--text); }
.compare-read-more { background:none; border:none; cursor:pointer; padding:0; font-family:var(--font-ui); font-size:12px; letter-spacing: 0.02em; color:var(--muted); margin-top:4px; display:block; transition:color 0.2s; }
.compare-read-more:hover { color:var(--gold); }
.compare-view-btn { display:block; width:100%; margin-top:16px; padding:9px 0; min-height:44px; font-family:var(--font-ui); font-size:12px; letter-spacing: 0.06em; text-transform:uppercase; color:var(--muted); background:none; border:0.5px solid var(--border); border-radius:4px; cursor:pointer; transition:border-color 0.2s,color 0.2s; font-weight: 600;}
.compare-view-btn:hover { border-color:var(--gold); color:var(--gold); }
.compare-actions { justify-content:center; align-items:center; gap:8px; padding:16px 0 24px; position:relative; }
#profiles.compare-mode .empire-thumb { position:relative; overflow:hidden; }
#profiles.compare-mode .empire-thumb::after { content:'+ Compare'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.55); font-family:var(--font-ui); font-size:12px; letter-spacing: 0.02em; color:var(--gold); opacity:0; transition:opacity 0.15s; pointer-events:none; }
#profiles.compare-mode .empire-thumb:hover::after,
#profiles.compare-mode .empire-thumb:active::after { opacity:1; }
@media (max-width:768px) {
.compare-panel { padding:0 16px; transition:none; }
.compare-panel.open { max-height:none; }
.compare-slots { grid-template-columns:1fr; }
.compare-divider { padding:10px 0; }
.compare-vs::before { content:'— '; }
.compare-vs::after { content:' —'; }
#profiles.compare-mode .empire-thumb::after { opacity:0.45; }
.compare-slot-logo { width:28px; height:28px; }
}
#today-in-history { min-height: 100vh; }
.tih-event-card {
  position: relative; background: var(--surface);
  border: 1px solid var(--border); border-left: 2px solid var(--gold);
  border-radius: 4px; padding: 24px 20px;
  transition: border-color 0.2s;
}
.tih-event-card:hover { border-color: var(--gold); }
.tih-hero-kicker { grid-column: 1 / -1; font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin: 0 0 8px; }
.tih-event-thumb { display: block; width: 168px; height: 112px; border-radius: 3px; overflow: hidden; border: 0.5px solid var(--border); background: var(--bg); }
.tih-event-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.day-events .tih-event-year { display: flex; align-items: center; gap: 10px; }
.tih-ago { font-family: var(--font-ui); font-size: 11px; font-weight: 600; color: var(--muted); border: 0.5px solid var(--border); border-radius: 999px; padding: 1px 9px; margin-left: auto; white-space: nowrap; }
.tih-event-year {
  font-family: var(--font-ui); font-size: 12px;
  letter-spacing: 0.02em; color: var(--gold); margin: 0 0 8px;
}
.tih-event-title {
  font-family: var(--font-ui); font-size: 13px; letter-spacing: 0.02em;
  color: var(--gold-light); margin: 0 0 10px; line-height: 1.55;
}
.tih-event-desc {
  font-family: var(--font-text); font-size: 15px;
  color: var(--text); line-height: 1.6; opacity: 0.8; margin: 0;
}
.tih-share-btn {
  position: absolute; bottom: 4px; right: 4px;
  background: none; border: none; color: var(--gold);
  cursor: pointer; padding: 10px; line-height: 0;
  opacity: 0; transition: opacity 0.2s, color 0.2s;
}
.tih-event-card:hover .tih-share-btn { opacity: 0.7; }
.tih-share-btn:hover { opacity: 1 !important; color: var(--gold-light); }
.tih-share-dropdown {
  position: absolute; bottom: 36px; right: 10px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 2px; min-width: 130px; z-index: 100; overflow: hidden;
}
.tih-share-dd-item {
  display: flex; align-items: center; width: 100%; background: none; border: none;
  text-align: left; padding: 10px 16px; min-height: 44px; cursor: pointer;
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.02em;
  color: var(--muted); transition: color 0.15s, background 0.15s;
}
.tih-share-dd-item:hover { color: var(--gold); background: rgba(var(--gold-rgb),0.06); }
@media (max-width: 640px) {
.tih-share-btn { opacity: 0.7; }
.tih-share-dropdown { max-height: 60vh; overflow-y: auto; }
}
@media (max-width:480px) {
.compare-slot-filled { padding:14px; }
}
@keyframes skshimmer {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}
.nav-group-wrap { position: relative; display: inline-flex; align-items: center; }
.nav-group-wrap.open .nav-group-menu { display: block; }
.nav-group-menu {
  display: none; position: absolute; top: calc(100% + 12px); left: 50%;
  transform: translateX(-50%); min-width: 176px;
  background: var(--surface); border: 0.5px solid var(--border);
  border-radius: 3px; z-index: 300; padding: 6px 0;
  box-shadow: 0 8px 24px var(--shadow);
}
.nav-group-menu a, .nav-group-menu button {
  display: block; width: 100%; font-family: var(--font-ui); font-size: 12px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);
  padding: 10px 18px; text-decoration: none; background: none; border: none;
  text-align: left; cursor: pointer; white-space: nowrap;
  transition: color 0.15s, background 0.15s; font-weight: 600;}
.nav-group-menu a:hover, .nav-group-menu button:hover { color: var(--gold); background: rgba(var(--gold-rgb),0.04); }
.nav-parent-btn {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--muted); background: none; border: none; cursor: pointer; padding: 0;
  transition: color 0.2s; font-weight: 600;}
.nav-parent-btn:hover, .nav-group-wrap.open .nav-parent-btn { color: var(--gold); }
.nav-parent-btn.active-group { color: var(--gold); }
#newsletter-section {
  max-width: 600px; margin: 0 auto; padding: 60px 40px;
  text-align: center; border-top: 0.5px solid var(--border);
}
.footer-newsletter { margin-top: 0; }
.footer-nl-label {
  display: block; font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--gold); opacity: 0.7; margin-bottom: 8px; font-weight: 600;}
.footer-nl-form { display: flex; gap: 4px; }
.footer-feed { display: inline-flex !important; align-items: center; gap: 7px; margin-top: 14px; }
.footer-feed::before { content: ''; width: 12px; height: 12px; flex: 0 0 12px; background: var(--gold); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='19' r='3'/%3E%3Cpath d='M2 9a13 13 0 0 1 13 13h-4A9 9 0 0 0 2 13zM2 2a20 20 0 0 1 20 20h-4A16 16 0 0 0 2 6z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='19' r='3'/%3E%3Cpath d='M2 9a13 13 0 0 1 13 13h-4A9 9 0 0 0 2 13zM2 2a20 20 0 0 1 20 20h-4A16 16 0 0 0 2 6z'/%3E%3C/svg%3E") center / contain no-repeat; }
.footer-nl-form input {
  font-family: var(--font-text); font-size: 14px; padding: 6px 10px;
  background: var(--bg); border: 0.5px solid var(--border); border-radius: 2px;
  color: var(--text); outline: none; flex: 1; min-width: 0; transition: border-color 0.2s;
}
.footer-nl-form input:focus { border-color: var(--gold); }
.footer-nl-form button {
  font-family: var(--font-ui); font-size: 13px; padding: 6px 10px;
  border: 0.5px solid var(--gold); background: none; color: var(--gold); cursor: pointer; transition: background 0.2s;
}
.footer-nl-form button:hover { background: rgba(var(--gold-rgb),0.08); }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.empire-stats-panel {
  margin: 28px 0 36px;
  padding: 24px 20px;
  background: var(--surface);
  border: 0.5px solid var(--border);
  border-radius: 4px;
}
.empire-stats-title {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--gold); opacity: 0.9; margin: 0 0 16px; font-weight: 600;}
.empire-stats-top {
  display: flex; flex-wrap: wrap; gap: 16px 32px;
  align-items: flex-start; margin-bottom: 20px;
}
.empire-overall-wrap { display: flex; flex-direction: column; gap: 4px; }
.empire-overall-score {
  font-family: var(--font-display); font-size: 40px; font-weight: 700;
  color: var(--gold-light); letter-spacing: 0.02em; line-height: 1;
}
.empire-overall-label {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted); font-weight: 600;}
.empire-rank-label {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--gold); opacity: 0.85; font-weight: 600;}
.empire-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding-top: 4px; }
.empire-tag {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--gold);
  border: 0.5px solid rgba(var(--gold-rgb),0.5); border-radius: 2px; padding: 3px 9px; font-weight: 600;}
.empire-radar-wrap { width: 100%; max-width: 440px; margin: 0 auto; }
.empire-radar-wrap svg { width: 100%; height: auto; display: block; }
.empire-dim-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; margin-top: 20px;
}
.empire-dim { display: flex; flex-direction: column; gap: 3px; }
.empire-dim-label {
  font-family: var(--font-ui); font-size: 12px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text); opacity: 0.6; font-weight: 600;}
.empire-dim-row { display: flex; align-items: center; gap: 8px; }
.empire-dim-bar-wrap {
  flex: 1; height: 3px; background: var(--border); border-radius: 2px; overflow: hidden;
}
.empire-dim-bar { height: 100%; background: var(--gold); border-radius: 2px; }
.empire-dim-val {
  font-family: var(--font-ui); font-size: 12px; color: var(--gold-light);
  min-width: 20px; text-align: right;
}
@media (max-width: 480px) {
.empire-overall-score { font-size: 32px; }
.empire-stats-panel { padding: 18px 14px; }
.empire-dim-grid { grid-template-columns: 1fr; }
}
.compare-radar-wrap { max-width: 300px; width: 100%; }
.compare-stats-top { margin-bottom: 16px; }
.enc-link {
    color: var(--gold);
    text-decoration: underline;
    text-decoration-style: dotted;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s;
  }
.enc-link:hover, .enc-link:focus-visible { color: var(--gold-light); text-decoration-style: solid; }
.enc-link:focus-visible { outline: 1px solid var(--gold); outline-offset: 2px; }
.profile-section-block { display: flow-root; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.skip-link {
  position: absolute; left: 12px; top: -80px; z-index: 2000;
  background: var(--gold); color: var(--bg); padding: 10px 16px; border-radius: var(--radius);
  font-family: var(--font-ui); font-size: 15px; font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 12px; }
#main:focus { outline: none; }
.nav-link[aria-current="page"], .nav-group-menu a[aria-current="page"], .nav-dropdown-link[aria-current="page"] { color: var(--gold); }
@media (max-width: 1160px) {
.nav-links { display: none; }
.nav-hamburger {
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; line-height: 1; color: var(--gold);
    background: none; border: none; cursor: pointer;
    min-width: 44px; min-height: 44px; padding: 0;
  }
.nav-dropdown { top: 60px; max-height: calc(100vh - 60px); max-height: calc(100dvh - 60px); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 480px) {
.nav-dropdown { top: 54px; max-height: calc(100vh - 54px); max-height: calc(100dvh - 54px); }
}
.nav-dropdown-group {
  font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted); padding: 16px 24px 6px;
}
button.nav-dropdown-link { background: none; border: none; border-bottom: 1px solid var(--border); text-align: left; cursor: pointer; width: 100%; }
h2.profile-section-title { font-weight: 400; }
.profile-section-block, .profile-summary, #empire-stats-panel, #detail-references { scroll-margin-top: 84px; }
.empire-meta { font-family: var(--font-ui); font-size: 13px; color: var(--muted); margin: 12px 0 0; }
.nav-search-btn {
  display: flex; align-items: center; justify-content: center; width: 34px; height: 30px;
  background: transparent; border: 1px solid var(--border); border-radius: 2px; color: var(--muted); cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
}
.nav-search-btn:hover { color: var(--gold); border-color: var(--gold); }
.site-search { position: fixed; inset: 0; z-index: 3000; background: var(--overlay); display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
.site-search[hidden] { display: none; }
.site-search-box { width: min(640px, 100%); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 20px 60px var(--shadow); overflow: hidden; }
.site-search-row { display: flex; align-items: center; gap: 10px; padding: 0 14px; border-bottom: 1px solid var(--border); color: var(--muted); }
#site-search-input { flex: 1; min-width: 0; background: none; border: 0; outline: none; color: var(--text); font-family: var(--font-ui); font-size: 17px; padding: 16px 0; }
.site-search-close { font-family: var(--font-ui); font-size: 12px; color: var(--muted); background: none; border: 1px solid var(--border); border-radius: 2px; padding: 3px 8px; cursor: pointer; }
.site-search-results { list-style: none; margin: 0; padding: 6px; max-height: 55vh; overflow-y: auto; }
.site-search-results:empty { display: none; }
.site-search-results a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 12px; border-radius: 2px; text-decoration: none; color: var(--text); }
.site-search-results li.active a, .site-search-results a:hover { background: rgba(var(--gold-rgb), 0.1); color: var(--gold-light); }
.ss-name { font-family: var(--font-text); font-size: 18px; }
.ss-type { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.site-search-results li.ss-all { border-top: 1px solid var(--border); margin-top: 4px; padding-top: 4px; }
.site-search-results li.ss-all a { justify-content: flex-start; font-family: var(--font-ui); font-size: 14px; font-weight: 600; color: var(--gold); }
.site-search-hint { font-family: var(--font-ui); font-size: 14px; color: var(--muted); padding: 14px 18px; margin: 0; }
.site-search-results li[role="option"]:not(.ss-all):not(.ss-rec) > a:first-child { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding: 7px 10px; }
.ss-pic { width: 40px; height: 40px; border-radius: 2px; overflow: hidden; background: var(--bg); }
.ss-pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.ss-pic img.ss-emblem { object-fit: contain; object-position: center; }
.ss-name { min-width: 0; overflow-wrap: anywhere; }
.site-search-results a.ss-twin { display: inline-block; margin: -6px 0 6px 62px; padding: 2px 0; font-family: var(--font-ui); font-size: 12px; font-weight: 600; color: var(--gold); background: none; text-decoration: underline; text-underline-offset: 3px; }
.ss-head { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); padding: 8px 12px 2px; }
.ss-clear button, .ss-dym { font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--gold); background: none; border: 0; padding: 4px 2px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ss-dym { padding: 4px 0; font-size: inherit; }
.ss-clear { padding: 4px 10px 6px; }
@media (max-width: 520px) {
.site-search-results li[role="option"]:not(.ss-all):not(.ss-rec) > a:first-child { grid-template-columns: 40px minmax(0, 1fr); }
.site-search-results li[role="option"]:not(.ss-all):not(.ss-rec) > a:first-child .ss-pic { grid-row: span 2; }
.site-search-results .ss-type { grid-column: 2; white-space: normal; }
.ss-name { font-size: 17px; }
}
@media (pointer: coarse) {
input:not([type="range"]):not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px; }
}
.shr { -webkit-tap-highlight-color: transparent; position: fixed; inset: 0; z-index: 3100; background: var(--overlay); display: flex; align-items: center; justify-content: center; padding: 16px; animation: shr-fade 0.18s ease; }
.shr-box { width: min(440px, 100%); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 24px 70px var(--shadow); padding: 14px 18px 18px; }
.shr-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.shr-t { margin: 0; font-family: var(--font-display); font-size: 17px; font-weight: 600; letter-spacing: 0.04em; color: var(--gold-light); }
.shr-x { flex: none; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1; color: var(--muted); background: none; border: 1px solid var(--border); border-radius: 50%; cursor: pointer; }
.shr-x:hover, .shr-x:focus-visible { color: var(--gold); border-color: var(--gold); }
.shr-pic { margin: 0 0 10px; text-align: center; }
.shr-pic img { display: block; width: 100%; height: auto; max-height: 46vh; max-height: 46dvh; object-fit: contain; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); -webkit-touch-callout: default; user-select: auto; }
.shr-pic img:not([src]) { aspect-ratio: 1200 / 630; }
.shr-save { margin: 6px 0 0; font-family: var(--font-ui); font-size: 13px; color: var(--muted); }
.shr-save:empty { display: none; }
.shr-line { margin: 0 0 12px; padding: 10px 12px; font-family: var(--font-text); font-size: 16px; line-height: 1.45; color: var(--text); background: rgba(var(--gold-rgb), 0.06); border-left: 2px solid rgba(var(--gold-rgb), 0.6); border-radius: 0 6px 6px 0; white-space: pre-line; }
.shr-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.shr-acts:empty { display: none; }
.shr-act { flex: 1 1 160px; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; font-family: var(--font-ui); font-size: 14px; font-weight: 600; letter-spacing: 0.03em; text-decoration: none; color: var(--bg); background: var(--gold); border: 1px solid var(--gold); border-radius: 999px; cursor: pointer; }
.shr-act.shr-dl, .shr-more { color: var(--gold); background: none; }
.shr-act[hidden] { display: none; }
.shr-more { width: 100%; margin-top: 10px; }
.shr-apps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
@media (max-width: 600px) {
.shr-apps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.shr-app { display: flex; flex-direction: column; align-items: center; gap: 5px; min-height: 64px; padding: 9px 4px 7px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; color: var(--text); text-decoration: none; background: var(--bg); border: 1px solid var(--border); border-radius: 10px; cursor: pointer; }
.shr-app:hover, .shr-app:focus-visible { border-color: rgba(var(--gold-rgb), 0.7); color: var(--gold-light); }
.ia-tip { margin: 14px 0 0; padding: 10px 12px; font-family: var(--font-ui); font-size: 13px; line-height: 1.5; color: var(--muted); border: 1px dashed var(--border); border-radius: 8px; }
.ia-tip b { color: var(--text); font-weight: 600; }
.ia-open { display: inline-block; margin-top: 6px; color: var(--gold); font-weight: 600; }
body.shr-open { overflow: hidden; }
@keyframes shr-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes shr-up { from { transform: translateY(40px); opacity: 0.4; } to { transform: none; opacity: 1; } }
@media (max-width: 600px) {
.shr { align-items: flex-end; padding: 0; }
.shr-box { width: 100%; max-height: 92vh; max-height: 92dvh; border-radius: 16px 16px 0 0; border-bottom: 0; padding-bottom: max(18px, env(safe-area-inset-bottom, 0px)); animation: shr-up 0.24s cubic-bezier(0.22, 1, 0.36, 1); }
}
@media (prefers-reduced-motion: reduce) {
.shr, .shr-box { animation: none; }
}
.page-share-row { margin: 14px 0 0; }
.info-share-row .page-share::before { content: '\2197'; font-size: 12px; }
@media (max-width: 600px) {
.empire-page .info-share-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.empire-page .info-share-btn { justify-content: center; white-space: nowrap; min-height: 44px; padding: 8px 10px; }
}
.browse-chip {
  font-family: var(--font-ui); font-size: 15px; color: var(--text); text-decoration: none;
  border: 1px solid var(--border); border-radius: 20px; padding: 7px 16px; transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.browse-chip:hover { border-color: var(--gold); color: var(--gold-light); background: rgba(var(--gold-rgb), 0.06); }
#newsletter-section { margin-top: 32px; }
#site-search-input::-webkit-search-cancel-button, #home-search-input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
html, body { overflow-x: clip; }
#research, #about, #contributors { min-height: auto; justify-content: flex-start; padding-top: 120px; }
@media (max-width: 700px) {
#research, #about, #contributors { padding-top: 96px; }
}
@keyframes band-flash { 0% { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(var(--gold-rgb), 0.35), 0 0 34px rgba(var(--gold-rgb), 0.3); } 100% { box-shadow: 0 0 0 0 rgba(var(--gold-rgb), 0); } }
@media (max-width: 600px) {
.nav-search-btn, .nav-toggle-btn { min-width: 40px; min-height: 40px; }
.nav-logo { padding: 10px 0; }
.tab, .enc-chip { min-height: 40px; }
.footer-social-link { min-height: 40px; display: inline-flex; align-items: center; }
#about a[href^="mailto:"] { display: inline-block; padding: 10px 0; }
}
@media (max-width: 420px) {
.nav-logo-text { font-size: 13px; letter-spacing: 0.1em; white-space: nowrap; }
}
input[type=checkbox], input[type=radio] { accent-color: var(--gold); }
@media (max-width: 600px) {
.info-share-btn, .enc-random, .cite-copy-btn { min-height: 40px; min-width: 40px; }
}
.profile-kinds { display: flex; flex-wrap: wrap; gap: 8px; padding: 24px 40px 0; }
.profile-kinds .browse-chip { background: transparent; cursor: pointer; }
.profile-kinds [aria-pressed="true"] { background: var(--gold); color: var(--bg); border-color: var(--gold); }
@media (max-width: 600px) {
.profile-kinds { padding: 20px 16px 0; }
}
.enc-preview {
  position: fixed; z-index: 2500; width: min(360px, calc(100vw - 16px)); display: flex; gap: 14px; padding: 14px;
  background: var(--surface); border: 1px solid var(--border); border-top: 2px solid var(--gold); border-radius: var(--radius);
  box-shadow: 0 14px 40px var(--shadow);
}
.enc-preview[hidden] { display: none; }
.enc-preview img { width: 96px; height: 96px; flex: 0 0 96px; object-fit: cover; border-radius: 2px; background: var(--bg); }
.enc-preview > div { min-width: 0; }
.enc-preview-kicker { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold); margin: 0 0 2px; }
.enc-preview-name { font-family: var(--font-display); font-size: 17px; color: var(--gold-light); margin: 0 0 6px; line-height: 1.25; }
.enc-preview-text { font-family: var(--font-text); font-size: 15px; line-height: 1.5; color: var(--text); margin: 0 0 8px; }
.enc-preview-more { font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--gold); text-decoration: none; }
.enc-preview-more:hover { color: var(--gold-light); }
@media (max-width: 480px) {
.enc-preview img { width: 72px; height: 72px; flex-basis: 72px; }
.enc-preview-more { display: inline-flex; min-height: 40px; align-items: center; }
}
.read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1001; pointer-events: none; }
.read-progress span { display: block; height: 100%; background: var(--gold); transform-origin: 0 50%; transform: scaleX(0); }
.quiz { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 22px 24px; }
.tih-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.tih-tag { font-family: var(--font-ui); font-size: 13px; text-decoration: none; padding: 4px 10px; border-radius: 20px; border: 1px solid var(--border); color: var(--text); }
.tih-tag.enc-link { color: var(--gold); text-decoration: none; }
.tih-tag:hover { border-color: var(--gold); color: var(--gold-light); }
.tih-tag-profile { background: rgba(var(--gold-rgb), 0.12); border-color: rgba(var(--gold-rgb), 0.5); color: var(--gold-light); font-weight: 600; }
@media (max-width: 600px) {
.tih-tag { padding: 8px 12px; }
}
.path-card { display: flex; flex-direction: column; text-decoration: none; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: border-color 0.2s, transform 0.2s; }
.path-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.path-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.path-progress { margin: 0 0 16px; }
.path-bar { height: 6px; border-radius: 3px; background: var(--border); overflow: hidden; }
.path-bar i { display: block; height: 100%; min-width: 0; background: var(--gold); border-radius: 3px; transition: width 0.6s; }
.path-progress p { font-family: var(--font-ui); font-size: 13px; color: var(--muted); margin: 8px 0 0; }
.path-continue { color: var(--gold); font-weight: 600; }
.path-step.is-read { position: relative; border-color: rgba(var(--gold-rgb), 0.45); }
.path-step.is-read::after { content: '\2713'; position: absolute; top: 10px; right: 12px; width: 22px; height: 22px; border-radius: 50%; background: var(--gold); color: var(--bg); font-family: var(--font-ui); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.path-card { position: relative; }
.path-card-progress { position: absolute; top: 10px; right: 10px; font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; color: var(--bg); background: var(--gold); border-radius: 999px; padding: 3px 10px; box-shadow: 0 2px 8px var(--shadow); }
.path-journey { position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 950; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; width: min(720px, calc(100% - 24px)); padding: 10px 10px 10px 16px; background: var(--surface); border: 1px solid var(--gold); border-radius: 14px; box-shadow: 0 10px 30px var(--shadow); font-family: var(--font-ui); font-size: 13px; }
.pj-path { color: var(--gold); font-weight: 700; text-decoration: none; }
.pj-at { color: var(--muted); }
.pj-next { margin-left: auto; color: var(--text); font-weight: 600; text-decoration: none; }
.pj-next:hover, .pj-path:hover { color: var(--gold-light); }
.pj-x { background: none; border: 0; color: var(--muted); font-size: 22px; line-height: 1; cursor: pointer; padding: 2px 8px; min-height: 32px; }
.pj-x:hover { color: var(--gold); }
body.has-journey .to-top { bottom: 92px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.listen-row { margin: 10px 0 4px; }
.listen-btn { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border: 1px solid var(--border); border-radius: 22px; background: none; font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; transition: color 0.2s, border-color 0.2s; }
.listen-btn:hover, .listen-btn:focus-visible, .listen-btn[aria-pressed="true"] { color: var(--gold); border-color: var(--gold); }
.listen-bar { position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 960; display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 12px; background: var(--surface); border: 1px solid var(--gold); border-radius: 30px; box-shadow: 0 10px 30px var(--shadow); font-family: var(--font-ui); font-size: 13px; font-weight: 600; max-width: calc(100vw - 24px); }
.listen-bar[hidden] { display: none; }
.listen-bar button { font: inherit; color: var(--text); background: none; border: 1px solid var(--border); border-radius: 20px; padding: 6px 12px; cursor: pointer; min-height: 34px; }
.listen-bar button:hover, .listen-bar button:focus-visible { border-color: var(--gold); color: var(--gold); }
.listen-bar .lb-play { background: var(--gold); border-color: var(--gold); color: var(--bg); min-width: 80px; }
.listen-bar .lb-play:hover, .listen-bar .lb-play:focus-visible { background: var(--gold-light); color: var(--bg); }
.lb-pos { color: var(--muted); white-space: nowrap; padding: 0 4px; }
.listen-bar .lb-voice { font: inherit; color: var(--text); background: var(--bg); border: 1px solid var(--border); border-radius: 20px; padding: 6px 10px; min-height: 34px; max-width: 190px; text-overflow: ellipsis; cursor: pointer; }
.listen-bar .lb-voice:hover, .listen-bar .lb-voice:focus-visible { border-color: var(--gold); }
@media (max-width: 480px) {
.listen-bar .lb-voice { max-width: 118px; }
}
.is-speaking { background: rgba(var(--gold-rgb), 0.12); box-shadow: 0 0 0 6px rgba(var(--gold-rgb), 0.12); border-radius: 2px; transition: background 0.3s, box-shadow 0.3s; }
body.has-listen .to-top { bottom: 84px; }
body.has-listen.has-journey .listen-bar { bottom: 84px; }
body.has-listen.has-journey .to-top { bottom: 150px; }
@media (max-width: 480px) {
.lb-pos { display: none; }
.listen-bar { gap: 6px; }
}
@media print {
.listen-row, .listen-bar { display: none !important; }
}
body.has-journey #site-footer { padding-bottom: 90px; }
.path-step { display: flex; gap: 16px; align-items: center; padding: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); text-decoration: none; color: var(--text); transition: border-color 0.2s; }
.path-step:hover { border-color: var(--gold); }
.path-step img, .path-step-ph { width: 84px; height: 84px; flex: 0 0 84px; object-fit: cover; border-radius: 2px; background: var(--bg); }
.path-step-name { font-family: var(--font-display); font-size: 19px; color: var(--gold-light); }
@media (max-width: 600px) {
.path-step img, .path-step-ph { width: 64px; height: 64px; flex-basis: 64px; }
}
.path-head { border-bottom: 1px solid var(--border); padding-bottom: 20px; }
@keyframes cm-draw { from { stroke-dashoffset: 1; } }
@keyframes cm-glim { 50% { stroke: var(--cm-glint); } }
.enc-kicker a { color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor; }
.enc-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.enc-kicker { font-family: var(--font-ui); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.enc-title { font-family: var(--font-display); font-weight: 600; font-size: clamp(28px, 5vw, 42px); line-height: 1.15; color: var(--text); text-wrap: balance; margin: 4px 0; }
.enc-meta { font-size: 16px; color: var(--muted); }
.enc-meta .dates { color: var(--text); }
.enc-desc { font-size: 20px; line-height: 1.7; color: var(--text); max-width: 65ch; }
.ph { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); }
.ph::before { content: ''; width: 55%; height: 55%; background: rgba(var(--gold-rgb), 0.6); -webkit-mask: var(--ph-i) center / contain no-repeat; mask: var(--ph-i) center / contain no-repeat; }
.ph, .ph-term, .ph-factor { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v15H6zM14 3v5h5M9 12h8M9 16h8M9 20h5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
.ph-person { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4.5'/%3E%3Cpath d='M3.5 22a8.5 8.5 0 0 1 17 0z'/%3E%3C/svg%3E"); }
.ph-conflict { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3l11 11M21 3L10 14M6 16l-3 3 2 2 3-3M18 16l3 3-2 2-3-3M5 13l6 6M19 13l-6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ph-place { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.6a2.6 2.6 0 1 1 0-5.2 2.6 2.6 0 0 1 0 5.2z'/%3E%3C/svg%3E"); }
.ph-event { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.2 6.6.8-4.9 4.6 1.3 6.6L12 17l-5.9 3.2 1.3-6.6L2.5 9l6.6-.8z'/%3E%3C/svg%3E"); }
.ph-polity { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2.5 8l4.8 4.2L12 4l4.7 8.2L21.5 8 19 19H5zM5 20.5h14V22H5z'/%3E%3C/svg%3E"); }
.ph-group { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='8' cy='8' r='3.4'/%3E%3Ccircle cx='16.5' cy='8.5' r='3'/%3E%3Cpath d='M1.5 20a6.5 6.5 0 0 1 13 0zM13.5 20a5.5 5.5 0 0 1 9 -4.2V20z'/%3E%3C/svg%3E"); }
.ph-institution { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l10 5v2H2V7zM4 10.5h3V18H4zM10.5 10.5h3V18h-3zM17 10.5h3V18h-3zM2 19.5h20V22H2z'/%3E%3C/svg%3E"); }
.ph-idea { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 22h6v-1.6H9zM12 2a7 7 0 0 0-4 12.7V19h8v-4.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E"); }
.ph-work { --ph-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h7a3 3 0 0 1 2 1 3 3 0 0 1 2-1h7v15h-7a2 2 0 0 0-2 2 2 2 0 0 0-2-2H3z'/%3E%3C/svg%3E"); }
@media (max-width: 720px) {
.enc-desc { font-size: 18px; }
}
.st-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.st-title { font-family: var(--font-display); font-weight: 600; font-size: clamp(28px, 5vw, 44px); line-height: 1.15; color: var(--text); text-wrap: balance; margin: 4px 0; }
.st-meta { font-size: 17px; color: var(--muted); }
.st-teaser { font-size: 21px; line-height: 1.55; color: var(--text); font-style: italic; max-width: 62ch; }
.st-text h2 { font-family: var(--font-ui); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin: 18px 0 6px; }
.st-text h2:first-child { margin-top: 0; }
.st-text p { font-size: 19px; line-height: 1.7; color: var(--text); max-width: 65ch; }
@media (max-width: 860px) {
.st-text p { font-size: 18px; }
}
.ref-head { text-align: center; display: grid; gap: 10px; justify-items: center; margin-bottom: 22px; }
.ref-lede { font-size: 19px; line-height: 1.6; color: var(--muted); max-width: 680px; font-style: italic; }
.day-page { position: relative; z-index: 1; padding: 96px 0 72px; min-height: 100vh; }
.day-events { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.day-events .tih-event-title { font-size: 21px; margin: 0; }
.map { display: block; width: 100%; height: auto; }
@keyframes map-light { from { fill: rgba(var(--gold-rgb), 0.06); filter: drop-shadow(0 0 0 rgba(var(--gold-rgb), 0)); } 60% { filter: drop-shadow(0 0 14px rgba(var(--gold-rgb), 0.8)); } }
.yr-events .tih-event-title a { color: inherit; text-decoration: none; }
.yr-events .tih-event-title a:hover { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.yr-events .tih-event-year a, .day-events .tih-event-year a { color: inherit; text-decoration: none; font-weight: 600; }
.yr-events .tih-event-year a:hover, .day-events .tih-event-year a:hover { text-decoration: underline; text-underline-offset: 3px; }
.yr-prof { list-style: none; padding: 0; margin: 0; }
.yr-prof li { display: grid; grid-template-columns: minmax(0, 250px) minmax(0, 1fr); gap: 4px 16px; align-items: center; padding: 9px 0; border-bottom: 0.5px solid var(--border); }
@media (max-width: 600px) {
.yr-prof li { grid-template-columns: minmax(0, 1fr); }
}
.shelf-passport { display: block; margin-top: 8px; padding: 9px 12px 4px; border-top: 0.5px solid var(--border); font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--gold); text-decoration: none; }
.shelf-passport:hover { text-decoration: underline; text-underline-offset: 3px; }
.st-facts a, .enc-meta a:not(.enc-link), .enc-kicker a, .qz-how a, .atl-about a, .cty-note a { color: var(--gold); text-decoration: none; }
.st-facts a:hover, .enc-meta a:not(.enc-link):hover, .enc-kicker a:hover, .qz-how a:hover, .atl-about a:hover, .cty-note a:hover { text-decoration: underline; text-underline-offset: 3px; }
@keyframes atl-pulse { 50% { stroke-opacity: 0.25; } }
.l-p, .l-s { font-family: var(--font-ui); paint-order: stroke; stroke: var(--bg); stroke-width: 0.3em; stroke-linejoin: round; pointer-events: none; }
.l-p { fill: var(--gold-light); font-weight: 600; }
.l-s { fill: var(--text); }
.nav-group-wrap.open .nav-mega { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(228px, 1fr); gap: 0 10px; padding: 14px 10px 10px; }
.nav-mega .nav-col { display: grid; align-content: start; gap: 1px; min-width: 0; }
.nav-col-h { margin: 0 12px 6px; padding: 0 0 7px; font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); border-bottom: 1px solid var(--border); }
.nav-mega a { white-space: normal; padding: 8px 12px; border-radius: 3px; }
.nav-mega a b { display: block; font-weight: 600; }
.nav-mega a span { display: block; margin-top: 2px; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 12.5px; line-height: 1.35; color: var(--muted); }
.nav-mega a:hover span, .nav-mega a:focus-visible span { color: var(--text); }
.nav-dd-sec { border-bottom: 1px solid var(--border); }
.nav-dd-sum { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text); cursor: pointer; list-style: none; }
.nav-dd-sum::-webkit-details-marker { display: none; }
.nav-dd-sum::after { content: '+'; font-size: 18px; font-weight: 400; color: var(--gold); line-height: 1; }
.nav-dd-sec[open] > .nav-dd-sum { color: var(--gold); }
.nav-dd-sec[open] > .nav-dd-sum::after { content: "\2212"; }
.nav-dd-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); padding: 0 12px 12px; }
@media (min-width: 600px) and (max-width: 1160px) {
.nav-dropdown { left: auto; right: 0; width: 420px; border-left: 1px solid var(--border); box-shadow: -8px 12px 30px var(--shadow); }
}
.nav-dropdown-link.nav-dd-sub { padding: 11px 12px; border-bottom: 0; font-size: 12px; text-transform: none; letter-spacing: 0.01em; font-weight: 600; }
.tries { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tries > li { min-width: 0; }
.try { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: border-color 0.2s, transform 0.2s; }
.try:hover, .try:focus-visible { border-color: var(--gold); transform: translateY(-2px); }
@media (max-width: 980px) {
.tries { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
.tries, .doors { gap: 12px; }
.home .browse-chip { flex: none; white-space: nowrap; }
}
@media (max-width: 360px) {
.tries, .home-challenges-row { grid-template-columns: minmax(0, 1fr); }
}
@keyframes ct-pop { from { transform: scale(0.6); opacity: 0; } to { transform: none; opacity: 1; } }
.footer-fix { margin: 0 auto 22px; padding: 0 0 18px; border-bottom: 0.5px solid var(--border); font-family: var(--font-ui); font-size: 13px; color: var(--muted); text-align: center; }
.footer-fix a { margin-left: 4px; color: var(--gold); font-weight: 600; text-decoration: none; }
.footer-fix a:hover { text-decoration: underline; text-underline-offset: 3px; }
.nav-toggles { position: relative; }
.shelf-menu { position: absolute; top: calc(100% + 14px); right: 0; width: 330px; max-width: calc(100vw - 24px); max-height: min(70vh, 480px); overflow-y: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 10px 30px var(--shadow); padding: 10px; z-index: 1002; }
.shelf-menu[hidden] { display: none; }
.shelf-save { display: block; width: 100%; font-family: var(--font-ui); font-size: 14px; font-weight: 600; color: var(--gold); background: rgba(var(--gold-rgb), 0.07); border: 1px dashed rgba(var(--gold-rgb), 0.5); border-radius: var(--radius); padding: 9px 10px; min-height: 40px; cursor: pointer; margin-bottom: 4px; }
.shelf-save:hover { border-color: var(--gold); }
.shelf-save.is-saved { border-style: solid; background: rgba(var(--gold-rgb), 0.12); }
.shelf-head { font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 10px 4px 4px; }
.shelf-menu a { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; padding: 7px 8px; border-radius: var(--radius); text-decoration: none; }
.shelf-menu a:hover { background: rgba(var(--gold-rgb), 0.06); }
.shelf-n { font-family: var(--font-text); font-size: 15px; color: var(--text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shelf-t { font-family: var(--font-ui); font-size: 11px; color: var(--muted); white-space: nowrap; }
.shelf-empty { font-family: var(--font-text); font-style: italic; font-size: 14px; color: var(--muted); margin: 4px; }
.read-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--gold); box-shadow: 0 0 6px rgba(var(--gold-rgb), 0.7); z-index: 1200; pointer-events: none; }
.footer-quote-btn { background: none; border: 0; color: var(--gold); font-size: 14px; cursor: pointer; padding: 2px 10px; min-height: 32px; opacity: 0.7; }
.footer-quote-btn:hover, .footer-quote-btn:focus-visible { opacity: 1; }
.footer-quote { font-family: var(--font-text); font-style: italic; font-size: 15px; color: var(--muted); text-align: center; margin: 0 auto; max-width: 680px; padding: 0 16px 18px; }
.footer-quote-by { font-style: normal; font-size: 13px; color: var(--gold); white-space: nowrap; }
.nav-group-menu .nav-surprise b { color: var(--gold); }
@media (max-width: 600px) {
.shelf-menu { position: fixed; top: 66px; left: 12px; right: 12px; width: auto; }
}
.ref-lede a { color: var(--gold); text-decoration-color: rgba(var(--gold-rgb), 0.45); }
.ref-lede a:hover { color: var(--gold-light); }
.ref-lede a b { color: var(--gold-light); }
@keyframes fp-in { from { opacity: 0; transform: translateX(26px); } }
.sp-title { font-family: var(--font-display); font-size: clamp(28px, 4.4vw, 42px); line-height: 1.15; color: var(--gold-light); margin: 6px 0 8px; text-wrap: balance; }
.sp-by { font-family: var(--font-text); font-size: 19px; font-style: italic; color: var(--muted); margin: 0; }
.sp-sec { margin: 0 0 26px; }
.sp-sec h2 { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); margin: 0 0 8px; }
.sp-sec p { font-family: var(--font-text); font-size: 19px; line-height: 1.7; color: var(--text); margin: 0; max-width: 68ch; }
.sp-quote { margin: 4px 0 10px; padding: 18px 24px; border-left: 3px solid var(--gold); background: linear-gradient(90deg, rgba(var(--gold-rgb), 0.09), transparent 75%); border-radius: 0 var(--radius) var(--radius) 0; }
.sp-quote p { font-family: var(--font-text); font-size: clamp(21px, 2.6vw, 26px); font-style: italic; line-height: 1.5; color: var(--gold-light); }
.sp-quote p::before { content: '\201C'; }
.sp-quote p::after { content: '\201D'; }
.sp-sec p.sp-source { font-family: var(--font-ui); font-size: 13px; line-height: 1.5; color: var(--muted); margin-top: 6px; }
.sp-share { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 22px; background: none; font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; transition: color 0.2s, border-color 0.2s; }
.sp-share:hover, .sp-share:focus-visible { color: var(--gold); border-color: var(--gold); }
.sp-share::before { content: '\2197'; font-size: 12px; }
.sp-ft-body p, .sp-sec .sp-ft-body p { font-family: var(--font-text); font-size: 18px; line-height: 1.75; color: var(--text); margin: 0 0 1em; max-width: 68ch; }
.sp-ft-body p:last-child { margin-bottom: 0; }
@media (max-width: 600px) {
.sp-ft-body p, .sp-sec .sp-ft-body p { font-size: 17px; }
}
.essay-sub { font-family: var(--font-text); font-size: clamp(19px, 2.4vw, 23px); font-style: italic; line-height: 1.4; color: var(--muted); margin: 0; text-wrap: balance; }
.essay-body h2, .essay-reading h2 { font-family: var(--font-display); font-size: clamp(21px, 2.7vw, 26px); line-height: 1.25; letter-spacing: 0.03em; color: var(--gold-light); margin: 46px 0 14px; padding-top: 20px; border-top: 1px solid var(--border); scroll-margin-top: 84px; text-wrap: balance; }
.essay-body > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.essay-body p { font-family: var(--font-text); font-size: 20px; line-height: 1.75; color: var(--text); margin: 0 0 1.05em; max-width: 68ch; }
.essay-body > h2:first-child + p::first-letter { float: left; font-family: var(--font-display); font-size: 3.4em; line-height: 0.86; color: var(--gold); padding: 6px 10px 0 0; }
.essay-body a { color: var(--gold); text-decoration: underline; text-decoration-color: rgba(var(--gold-rgb), 0.45); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.essay-body a:hover, .essay-body a:focus-visible { color: var(--gold-light); text-decoration-color: currentColor; }
.cm-by { font-family: var(--font-ui); font-size: 14px; letter-spacing: 0.04em; color: var(--muted); margin: 12px 0 0; }
.cm-body h3 { font-family: var(--font-display); font-size: clamp(18px, 2.2vw, 21px); line-height: 1.3; letter-spacing: 0.02em; color: var(--gold-light); margin: 1.7em 0 0.55em; }
.cm-body p.cm-src { font-family: var(--font-ui); font-size: 13px; line-height: 1.5; color: var(--muted); margin: -0.6em 0 1.3em; }
@media (max-width: 600px) {
.essay-body p { font-size: 18.5px; line-height: 1.7; }
.essay-body > h2:first-child + p::first-letter { font-size: 3em; }
}
@media print {
@page { size: A4; margin: 13mm 13mm 14mm; }
.essay-body p { font-size: 11.5pt; }
}
@keyframes gm-in { from { opacity: 0; transform: translateY(14px); } }
@keyframes gm-bump { 40% { transform: scale(1.35); color: var(--gold); } }
@keyframes gm-fade { from { opacity: 0; } }
@keyframes gm-rise { from { opacity: 0; transform: translateY(24px) scale(0.92); } }
@keyframes gm-star { from { opacity: 0; transform: scale(0.2) rotate(-90deg); } }
.gm-nl { margin: 18px auto 0; padding-top: 14px; border-top: 1px solid var(--border); max-width: 420px; }
.gm-nl-t { font-family: var(--font-text); font-size: 15px; color: var(--text); margin: 0 0 8px; }
.gm-nl-row { display: flex; gap: 6px; }
.gm-nl-row input { flex: 1; min-width: 0; font-family: var(--font-ui); font-size: 14px; color: var(--text); background: var(--bg); border: 1px solid var(--border); border-radius: 999px; padding: 9px 14px; }
.gm-nl-row input:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.gm-nl-row button { font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--bg); background: var(--gold); border: 0; border-radius: 999px; padding: 0 16px; cursor: pointer; }
.gm-nl-row button:disabled { opacity: 0.6; cursor: default; }
.gm-nl-msg { font-family: var(--font-ui); font-size: 13px; color: var(--muted); margin: 6px 0 0; min-height: 1em; }
.gm-nl-ok { font-family: var(--font-text); font-size: 15px; color: var(--success); margin: 0; }
@keyframes gm-conf { 0% { opacity: 1; transform: translate(0, 0) rotate(0); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--x), calc(var(--y) + 120px)) rotate(var(--r)); } }
@keyframes gm-deal { from { opacity: 0; transform: translateY(26px) scale(0.7) rotate(-6deg); } }
@keyframes gm-pop { 45% { transform: scale(1.1); } }
@keyframes gm-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-7px) rotate(-2deg); } 40% { transform: translateX(7px) rotate(2deg); } 60% { transform: translateX(-4px); } 80% { transform: translateX(4px); } }
@keyframes gm-right { 40% { box-shadow: 0 0 0 4px rgba(90, 158, 111, 0.35); } }
@keyframes gm-yr { from { opacity: 0; transform: translateX(-12px); } }
@keyframes gm-line { from { transform: scaleY(0); } }
@keyframes gm-shimmer { to { background-position: -200% 0; } }
@keyframes gm-home { 40% { filter: brightness(1.35); } }
@keyframes gm-drop { from { transform: translateY(-22px); opacity: 0; } }
.to-top { position: fixed; right: max(18px, env(safe-area-inset-right, 0px)); bottom: max(18px, env(safe-area-inset-bottom, 0px)); z-index: 900; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--gold); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35); transition: border-color 0.2s, transform 0.2s; }
.to-top:hover { border-color: var(--gold); transform: translateY(-2px); }
.to-top[hidden] { display: none; }
:root { --fm-a: #f0c24f; --fm-b: #6cc4d8; }
[data-theme="light"] { --fm-a: #c27a12; --fm-b: #12798f; }
:root[data-kids="1"] { --fm-a: #ffc247; --fm-b: #7fd6ff; }
:root[data-kids="1"][data-theme="light"] { --fm-a: #ea580c; --fm-b: #0e7490; }
.ty { max-width: 760px; min-height: 220px; }
:root { --cat-0: #3987e5; --cat-1: #c98500; --cat-2: #d55181; --cat-3: #008300; --cat-4: #8a7be8; }
[data-theme="light"] { --cat-0: #2a78d6; --cat-1: #eda100; --cat-2: #e87ba4; --cat-3: #008300; --cat-4: #6250d6; }
@keyframes fm-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fm-show { from { opacity: 0; } to { opacity: 1; } }
.gm-fc-img img, .gm-ocard img, .gm-pz-strip img, .gm-wt img, .path-thumbs img, .path-step img, .enc-thumb, .enc-seealso img,
.enc-preview img, .hub-card-img img, .door-img img, .rs-pic img, .quiz-img, .tih-strip-pic img,
.kd-potd img, .kd-door-img img, .profile-section-fig img, .contributor-avatar img { object-position: center 25%; }
:root { --gv-other: #6f6a60; }
[data-theme="light"] { --gv-other: #a7a092; }
:root[data-kids="1"] {
  --bg: #17123a; --surface: #221b4f; --border: #3d3480; --field-border: #7a6fc0; --text: #f6f1ff; --muted: #b9addf;
  --gold: #ffc247; --gold-light: #ffd97a; --gold-rgb: 255,194,71; --gold-light-rgb: 255,217,122;
  --error: #ff6b6b; --success: #4cd38a; --shadow: rgba(0,0,0,0.45); --overlay: rgba(10,6,40,0.75); --shimmer-mid: rgba(61,52,128,0.5);
  --font-display: 'Baloo 2', 'Baloo 2 Fallback', 'Nunito', 'Segoe UI', system-ui, sans-serif;
  --font-ui: 'Nunito', 'Nunito Fallback', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-text: 'Nunito', 'Nunito Fallback', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --radius: 14px; --border-radius-lg: 20px;
  --kd-pop1: #ff7eb6; --kd-pop2: #6fd6ff; --kd-pop2-rgb: 111,214,255; --kd-pop3: #8be38b;
}
:root[data-kids="1"][data-theme="light"] {
  --bg: #fff8ea; --surface: #ffffff; --border: #f0d9a8; --field-border: #a8873f; --text: #2a2147; --muted: #6a6090;
  --gold: #c2410c; --gold-light: #9a3412; --gold-rgb: 234,88,12; --gold-light-rgb: 154,52,18;
  --error: #d6336c; --success: #2f9e44; --shadow: rgba(80,50,0,0.16); --overlay: rgba(42,33,71,0.6); --shimmer-mid: rgba(240,217,168,0.6);
  --kd-pop1: #e64980; --kd-pop2: #1c7ed6; --kd-pop2-rgb: 28,126,214; --kd-pop3: #2f9e44;
}
[data-kids="1"] body { background-image: radial-gradient(rgba(255,255,255,0.09) 1px, transparent 1.6px), radial-gradient(rgba(255,194,71,0.08) 1px, transparent 1.6px); background-size: 34px 34px, 52px 52px; background-position: 0 0, 17px 23px; }
[data-kids="1"][data-theme="light"] body { background-image: radial-gradient(rgba(234,88,12,0.08) 1.2px, transparent 1.8px); background-size: 30px 30px; }
[data-kids="1"] :is(h1, h2, h3, .research-title, .enc-title, .sp-title, .st-title, .profile-detail-name, .gm-done-t, .ref-sec-title) { text-transform: none; letter-spacing: 0.005em; }
[data-kids="1"] .research-title, [data-kids="1"] .enc-title, [data-kids="1"] .sp-title, [data-kids="1"] .st-title { font-weight: 800; }
[data-kids="1"] .enc-link { text-decoration-thickness: 2px; }
[data-kids="1"] .enc-desc, [data-kids="1"] .st-teaser, [data-kids="1"] .sp-sec p:not(.sp-source):not(.sp-ft-credit), [data-kids="1"] .profile-section-body p { font-size: 20px; line-height: 1.75; }
.kd-short, .kd-note, .kd-story { display: none; }
.kd-col { min-width: 0; }
[data-kids="1"] .kd-short { display: block; margin: 0 0 16px; padding: 16px 18px; border-radius: var(--border-radius-lg); background: rgba(var(--gold-rgb), 0.12); border: 2px dashed rgba(var(--gold-rgb), 0.55); font-family: var(--font-text); font-size: 21px; line-height: 1.6; color: var(--text); }
[data-kids="1"] .kd-short b { display: block; font-family: var(--font-display); font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold); }
[data-kids="1"] .kd-note { display: block; margin: 0 0 16px; padding: 12px 16px; border-radius: 14px; background: rgba(var(--kd-pop2-rgb), 0.12); border-left: 4px solid var(--kd-pop2); font-family: var(--font-ui); font-size: 15px; color: var(--text); }
[data-kids="1"] .kd-story { display: inline-flex; align-items: center; justify-self: start; align-self: start; gap: 8px; margin: 6px 0 24px; font-family: var(--font-ui); font-size: 15px; font-weight: 800; color: var(--bg); background: var(--gold); border: 0; border-radius: 999px; padding: 11px 22px; cursor: pointer; box-shadow: 0 4px 0 rgba(0,0,0,0.2); }
[data-kids="1"] .kd-story:hover { background: var(--gold-light); }
[data-kids="1"]:not(.kd-open) .enc-article .enc-desc,
[data-kids="1"]:not(.kd-open) .profile-section-block,
[data-kids="1"]:not(.kd-open) .profile-references,
[data-kids="1"]:not(.kd-open) .st-text,
[data-kids="1"]:not(.kd-open) .cm-body,
[data-kids="1"]:not(.kd-open) .kd-rough { display: none; }
[data-kids="1"].kd-open .kd-story, [data-kids="1"].kd-open .kd-short { display: none; }
[data-kids="1"] .kd-short .kd-story { display: flex; width: fit-content; margin: 12px 0 0; }
.nav-kids-btn svg { display: block; }
.nav-kids-btn[aria-pressed="true"] { color: var(--gold); border-color: var(--gold); background: rgba(var(--gold-rgb), 0.16); }
[data-kids="1"] .nav-kids-btn { animation: kd-wiggle 0.6s 0.4s; }
@keyframes kd-wiggle { 25% { transform: rotate(-12deg); } 60% { transform: rotate(10deg); } }
@keyframes kd-bob { 50% { transform: translateY(-8px) rotate(-2deg); } }
@keyframes kd-blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }
@media (prefers-reduced-motion: reduce) {
.kd-owl, .kd-owl .kd-blink, [data-kids="1"] .nav-kids-btn { animation: none; }
}
:is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"], [type="reset"], [type="color"], [type="hidden"], [type="image"], [type="file"]), select, textarea):not(:focus) { border-color: var(--field-border); }
@media print {
:root, :root[data-theme="dark"], :root[data-theme="light"] { --bg: #fff; --surface: #fff; --text: #111; --muted: #555; --gold: #6b4f12; --gold-light: #6b4f12; --border: #ccc; }
html, body { background: #fff !important; color: #111 !important; }
body::before, body::after { display: none !important; }
#site-nav, #site-footer, .skip-link, .to-top, .read-progress, .path-journey, .site-search, .enc-preview, #contact-modal, .modal-overlay,
  .empire-toc, .info-share-row, .detail-cite-row, .empire-view-explorer, .tih-share-btn, .tih-share-dropdown, .home-search,
  .ref-prevnext, .ref-updated a, .ref-copy, .enc-controls, .enc-random, .st-filters, .st-random, .st-more, .st-mapwrap,
  .mini-connections, #connections, .quiz, #newsletter-section, .explorer-teaser, .playback-bar,
  .atl-time, .atl-jumps, .atl-tools, .atl-zoom, .qz-cats, .gl-letters, .ty-sec { display: none !important; }
.empire-page, .enc-page, .st-page, .day-page, main { padding-top: 0 !important; min-height: 0 !important; }
a { color: #111 !important; }
.enc-link { color: inherit !important; text-decoration: none !important; }
img, figure, svg, .st-facts, .ref-cite { break-inside: avoid; }
h1, h2, h3 { break-after: avoid; }
}
