/* KALYTERASTOIXIMATA / DARK FIELD NOTES — original design system */
:root {
  color-scheme: dark;
  --bg: #100f18;
  --bg-2: #15131f;
  --panel: #1c1a27;
  --panel-raised: #24212f;
  --line: #454052;
  --line-soft: #302c3c;
  --text: #f4f0f6;
  --muted: #bcb7c8;
  --dim: #a5a0b2;
  --lavender: #dec9f7;
  --lavender-strong: #e6d5fc;
  --coral: #ffa38c;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Manrope, 'Segoe UI', Arial, sans-serif;
  --mono: 'IBM Plex Mono', Consolas, monospace;
  --max: 1360px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body { margin: 0; min-width: 320px; overflow-x: clip; background: var(--bg); color: var(--text); font: 400 16px/1.7 var(--sans); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
a, button, input { -webkit-tap-highlight-color: transparent; }
button, input { font: inherit; }
button { cursor: pointer; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3 { line-height: 1.15; }
p { overflow-wrap: break-word; }
[hidden] { display: none !important; }
::selection { background: var(--lavender); color: #211529; }
.shell { width: min(calc(100% - 96px), var(--max)); margin-inline: auto; }
.skip-link { position: absolute; z-index: 100; left: 10px; top: -60px; background: white; color: #111; padding: 10px 16px; }
.skip-link:focus { top: 10px; }
.reading-track { position: fixed; height: 3px; top: 0; left: 0; right: 0; z-index: 90; background: transparent; pointer-events: none; }
.reading-track span { display: block; height: 100%; width: 0; background: var(--coral); transition: width .075s linear; }
.utility-bar { border-bottom: 1px solid var(--line-soft); color: var(--dim); font: 600 10px/1.5 var(--mono); letter-spacing: .12em; }
.utility-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 37px; }
.utility-inner p { display: flex; align-items: center; gap: 11px; white-space: nowrap; }
.signal { width: 6px; height: 6px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 4px #ffa38c18; }
.utility-slash { color: var(--coral); }
.site-header { position: relative; z-index: 40; background: #100f18f7; border-bottom: 1px solid var(--line-soft); }
.site-header.is-scrolled { border-color: var(--line); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 110px; gap: 28px; }
.wordmark { display: inline-flex; align-items: center; gap: 13px; flex-shrink: 0; }
.wordmark img { width: 46px; height: 46px; }
.wordmark-text { font-size: 19px; font-weight: 800; line-height: .99; letter-spacing: -.065em; display: grid; }
.wordmark-text > span { color: var(--lavender); }
.wordmark-text small { font: 500 11px var(--mono); color: var(--coral); margin-left: 2px; letter-spacing: 0; }
.nav { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: clamp(9px, 1.25vw, 26px); }
.nav > a { position: relative; color: #d4cfde; font-size: 12px; font-weight: 750; line-height: 1.35; padding-block: 12px; white-space: nowrap; transition: color .2s; }
.nav > a:not(.nav-guard)::after { position: absolute; content: ''; height: 2px; left: 0; right: 100%; bottom: 5px; background: var(--coral); transition: right .25s; }
.nav > a:hover, .nav > a.current { color: #fff; }
.nav > a:not(.nav-guard):hover::after, .nav > a:not(.nav-guard).current::after { right: 0; }
.nav .nav-guard { border: 1px solid #b18fbd; padding: 12px 14px; border-radius: 4px; color: var(--lavender); }
.nav-guard span { margin-left: 6px; }
.nav .nav-guard:hover, .nav .nav-guard.current { background: var(--lavender); color: #17111c; }
.menu-button { display: none; border: 1px solid var(--line); background: transparent; color: var(--text); padding: 11px 13px; align-items: center; gap: 10px; font: 700 11px var(--mono); }
.menu-button-bars { display: grid; gap: 5px; }
.menu-button-bars i { width: 17px; height: 1px; background: currentColor; }
.eyebrow { display: inline-flex; align-items: center; font: 600 11px/1.5 var(--mono); letter-spacing: .1em; color: var(--coral); text-transform: uppercase; }
.eyebrow::before { content: ''; width: 15px; height: 1px; background: currentColor; margin-right: 9px; }
h1, h2, h3 { font-weight: 700; letter-spacing: -.065em; }
h1 em, h2 em { font-family: var(--serif); letter-spacing: -.072em; font-weight: 400; font-style: italic; color: var(--lavender); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 55px; padding: 14px 20px; font-weight: 800; font-size: 13px; line-height: 1.45; border: 1px solid transparent; border-radius: 3px; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button span { font-size: 20px; font-weight: 400; line-height: 1; }
.button-primary { color: #20182b; background: var(--lavender); }
.button-primary:hover { background: #f2dffb; }
.button-dark { background: #181620; color: #fff; }
.button-dark:hover { background: #342b38; }
.subtle-link, .text-link { display: inline-flex; gap: 8px; align-items: center; font-weight: 750; color: var(--lavender); font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.subtle-link:hover, .text-link:hover { color: #fff; }
/* Cover */
.home-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr); gap: clamp(30px, 5vw, 85px); align-items: stretch; padding-block: 78px 102px; }
.hero-copy { min-width: 0; display: flex; flex-direction: column; align-items: start; }
.hero-meta { display: flex; gap: 12px; align-items: center; font: 600 10px var(--mono); color: var(--dim); letter-spacing: .095em; white-space: nowrap; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--coral); }
.meta-line { width: 34px; height: 1px; background: var(--line); }
.home-hero h1 { font-size: clamp(49px, 5.5vw, 91px); line-height: 1.1; letter-spacing: -.085em; margin: 34px 0 32px; max-width: 790px; }
.home-hero h1 em { display: block; font-size: .83em; white-space: nowrap; }
.hero-description { font-size: clamp(15px, 1.2vw, 18px); line-height: 1.9; color: #d6d0df; max-width: 555px; }
.hero-actions { margin-top: 33px; display: flex; gap: 30px; align-items: center; flex-wrap: wrap; }
.hero-footnote { margin-top: auto; padding-top: 75px; display: flex; align-items: center; justify-content: space-between; gap: 26px; width: min(100%, 545px); color: #c7becc; font: 600 10px var(--mono); letter-spacing: .07em; }
.hero-footnote span { border-left: 1px solid var(--coral); padding-left: 10px; }
.hero-art { overflow: hidden; background: var(--panel); border: 1px solid var(--line); min-height: 590px; display: flex; flex-direction: column; }
.art-head { min-height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 23px; border-bottom: 1px solid var(--line); gap: 15px; font: 600 10px var(--mono); letter-spacing: .07em; color: var(--lavender); }
.art-code { color: var(--coral); }
.hero-art > img { flex: 1; width: 100%; height: 0; min-height: 315px; object-fit: cover; }
.art-caption { padding: 20px 26px; min-height: 116px; display: flex; align-items: center; gap: 20px; background: #272334; }
.art-caption-icon { display: grid; place-items: center; width: 46px; height: 46px; flex-shrink: 0; border: 1px solid #8773a1; border-radius: 50%; color: var(--lavender); font: 26px var(--sans); }
.art-caption p { font-size: 13px; line-height: 1.7; color: #ccc2d6; }
.art-caption strong { color: #fff; }
.issue-ribbon { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #1b1825; }
.issue-inner { display: flex; justify-content: space-between; gap: 20px; align-items: center; min-height: 74px; color: #d3cede; font-size: 12px; letter-spacing: .015em; }
.issue-inner b { color: var(--lavender); font-weight: 800; }
.issue-separator { color: var(--coral); font-size: 20px; }
/* Sections / cards */
.section-block { padding-block: 112px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 46px; }
.section-heading h2, .directory-intro h2 { margin-top: 19px; font-size: clamp(37px, 4.15vw, 66px); }
.heading-aside { color: #c7c2d0; width: min(100%, 350px); font-size: 14px; line-height: 1.85; }
.feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.feature { padding: 27px 26px 20px; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; min-height: 490px; background: var(--panel); border: 1px solid var(--line-soft); transition: border-color .2s, transform .2s; }
.feature:hover { border-color: var(--lavender); transform: translateY(-4px); }
.feature-two { background: #24202d; }
.feature-three { background: #1a202b; }
.feature-top, .feature-bottom { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 600 10px var(--mono); letter-spacing: .065em; color: #ccc6d6; }
.feature-top > span:last-child { font-size: 22px; color: var(--lavender); }
.feature-bottom { border-top: 1px solid var(--line); padding-top: 18px; color: var(--lavender); margin-top: 26px; }
.feature-bottom b { color: var(--dim); font-weight: 500; }
.feature h3 { font-size: clamp(27px, 2.2vw, 37px); line-height: 1.2; letter-spacing: -.063em; }
.feature p { margin-top: 13px; font-size: 13px; line-height: 1.8; color: #cbc5d4; }
.feature-graphic { height: 145px; margin: 28px 0 34px; }
.odds-graphic { display: flex; align-items: center; justify-content: flex-start; gap: 8px; }
.odds-graphic span { font: 700 clamp(18px, 2.1vw, 33px) var(--mono); padding: 13px 11px; color: #d7c0ee; background: #343044; border: 1px solid #4f4464; }
.odds-graphic span:nth-child(2) { background: var(--lavender); color: #211a2d; transform: translateY(-16px); }
.criteria-graphic { display: grid; gap: 8px; align-content: center; }
.criteria-graphic > span { display: flex; gap: 20px; font: 500 13px var(--mono); color: var(--coral); border-bottom: 1px solid #595264; padding: 8px 0; }
.criteria-graphic > span > span { color: #eee4f8; font-size: 11px; }
.balance-graphic { display: flex; gap: 24px; align-items: center; }
.balance-ring { width: 124px; aspect-ratio: 1; display: grid; place-items: center; border: 2px dashed #ad91bd; border-radius: 50%; color: var(--lavender); font: 700 31px var(--mono); }
.balance-graphic > span { font: 500 10px var(--mono); letter-spacing: .06em; line-height: 2; color: #e6dbef; max-width: 85px; }
/* Tool */
.tool-section { background: #ded0ef; color: #211a2d; padding: 94px 0; }
.tool-grid { display: grid; grid-template-columns: 1fr minmax(330px, .82fr); align-items: center; gap: clamp(35px, 8vw, 135px); }
.tool-intro .eyebrow { color: #623e6f; }
.tool-intro h2 { font-size: clamp(43px, 5vw, 78px); margin: 24px 0 26px; }
.tool-intro h2 em { color: #79588d; }
.tool-intro p { font-size: 16px; line-height: 1.9; max-width: 530px; color: #3c3546; }
.tool-intro .subtle-link { display: inline-flex; margin-top: 23px; color: #43244f; }
.tool-intro .subtle-link:hover { color: #000; }
.calculator { background: #161520; color: var(--text); padding: clamp(24px, 3.2vw, 44px); box-shadow: 22px 22px 0 #aa8ebd; }
.calc-header { display: flex; justify-content: space-between; gap: 12px; font: 500 10px var(--mono); color: #bcb1ca; border-bottom: 1px solid #433a4c; padding-bottom: 24px; letter-spacing: .04em; }
.calculator > label { display: block; margin-top: 40px; color: #e5e0ec; font-weight: 750; font-size: 14px; }
.calc-input { display: flex; align-items: center; border-bottom: 1px solid #8f84a0; gap: 15px; }
.calc-input input { width: 100%; min-width: 0; background: transparent; border: 0; color: #fff; font: 750 clamp(44px, 4.8vw, 72px) var(--sans); letter-spacing: -.075em; padding: 10px 0 13px; outline: none; appearance: textfield; }
.calc-input input:focus { box-shadow: inset 0 -3px var(--coral); }
.calc-input input::-webkit-inner-spin-button,.calc-input input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.calc-input input[aria-invalid="true"] { box-shadow: inset 0 -3px #ff766d; }
.calc-input span { color: #bbb5ca; font: 500 10px var(--mono); }
.calc-divider { margin-block: 31px 27px; border-top: 1px dashed #5b5267; }
.calc-result-label { font: 600 12px var(--mono); color: #cdc5d6; }
.calculator output { display: block; color: var(--lavender); font-size: clamp(52px, 6vw, 87px); line-height: 1.32; font-weight: 800; letter-spacing: -.085em; font-variant-numeric: tabular-nums; }
.calc-meter { height: 5px; background: #3b3646; margin: 14px 0 24px; overflow: hidden; }
.calc-meter span { display: block; height: 100%; background: var(--coral); transition: width .25s; max-width: 100%; }
.calc-help { color: #cbc5d4; font-size: 11px; line-height: 1.9; }
/* Editorial reading list */
.outline-link { color: var(--lavender); font: 700 11px var(--mono); border: 1px solid #655a72; padding: 13px 19px; display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.outline-link:hover { border-color: var(--lavender); background: #201a29; }
.editorial-list { border-top: 1px solid var(--line); }
.editorial-row { display: grid; grid-template-columns: 60px 180px minmax(0, 1fr) 40px; gap: 20px; align-items: center; padding: 37px 12px 37px 0; border-bottom: 1px solid var(--line); transition: background .2s; }
.editorial-row:hover { background: #1c1926; }
.editorial-index, .editorial-category { color: var(--dim); font: 600 11px var(--mono); }
.editorial-category { color: var(--coral); }
.editorial-row h3 { font-size: clamp(20px, 2vw, 29px); letter-spacing: -.04em; max-width: 800px; }
.editorial-arrow { font-size: 29px; color: var(--lavender); text-align: right; }
.principle-strip { display: grid; grid-template-columns: 130px 1fr auto; align-items: center; gap: 38px; background: #e7d2f0; color: #231a2c; padding: 40px 48px; margin-bottom: 100px; }
.principle-symbol { font-family: var(--serif); font-size: 150px; line-height: .65; color: #7c5992; }
.principle-strip .eyebrow { color: #674274; }
.principle-strip h2 { font-size: clamp(23px, 2.3vw, 36px); margin: 10px 0; }
.principle-strip p { max-width: 620px; color: #483c50; font-size: 13px; line-height: 1.7; }
/* Interior covers and editorial article */
.inside-hero { padding-top: 85px; padding-bottom: 80px; border-bottom: 1px solid var(--line); }
.inside-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, .4fr); gap: clamp(35px, 8vw, 120px); align-items: end; }
.inside-hero h1 { font-size: clamp(47px, 6.4vw, 103px); line-height: 1.08; margin-top: 26px; }
.inside-hero h1 em { display: block; }
.inside-hero p { margin-top: 27px; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.85; max-width: 740px; color: #d0cbd8; }
.inside-aside { align-self: stretch; min-height: 230px; display: flex; justify-content: space-between; flex-direction: column; padding: 25px; background: #211d2c; border-left: 2px solid var(--lavender); }
.inside-aside > span, .inside-aside > small { font: 600 10px/1.5 var(--mono); color: #cbbfd6; letter-spacing: .04em; }
.inside-aside > strong { font: 700 clamp(50px, 6vw, 90px)/1 var(--sans); letter-spacing: -.1em; color: var(--lavender); }
.inside-aside.accent-aside { background: #352535; border-color: var(--coral); }
.inside-aside.accent-aside > strong { color: var(--coral); }
.reading-area { display: grid; grid-template-columns: minmax(170px, .3fr) minmax(0, .8fr); gap: clamp(42px, 9vw, 145px); padding-block: 80px 140px; align-items: start; }
.reading-sidebar { display: flex; flex-direction: column; gap: 16px; padding-top: 12px; position: sticky; top: 30px; }
.reading-sidebar .eyebrow { margin-bottom: 19px; }
.reading-sidebar a { font-size: 13px; color: #bbb4c5; line-height: 1.6; border-left: 1px solid #5a5365; padding-left: 14px; }
.reading-sidebar a:hover { color: var(--lavender); border-color: var(--coral); }
.longform { max-width: 840px; min-width: 0; color: #d1cbd9; font-size: 16px; line-height: 2.02; }
.longform p + p { margin-top: 18px; }
.longform .intro-paragraph { font-size: clamp(20px, 2vw, 29px); line-height: 1.65; color: #eee5f4; letter-spacing: -.022em; }
.longform h2 { font-size: clamp(27px, 3vw, 42px); margin: 60px 0 20px; color: #fff; }
.longform h2:first-of-type { margin-top: 54px; }
.longform .button { margin-top: 23px; }
.longform .knowledge-box { margin-block: 40px; }
.knowledge-box { border-left: 3px solid var(--coral); background: #211d2b; padding: 25px 30px; }
.knowledge-box p { color: #e2dbe7; font-size: 14px; line-height: 1.9; margin-top: 12px; }
.check-list { margin: 20px 0 30px; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 29px; margin: 13px 0; }
.check-list li::before { content: '↗'; position: absolute; top: 0; left: 0; color: var(--coral); }
.article-next { display: flex; flex-direction: column; gap: 11px; border-top: 1px solid var(--line); margin-top: 65px; padding-top: 24px; }
.article-next > span { color: var(--coral); font: 600 10px var(--mono); }
.article-next > a { width: fit-content; color: var(--lavender); font-size: 20px; font-weight: 700; line-height: 1.4; }
.article-next > a:hover { color: #fff; }
/* Directory */
.directory-intro { display: grid; grid-template-columns: 1fr minmax(280px, .65fr); align-items: end; gap: 50px; padding-block: 80px 60px; }
.directory-intro > p { font-size: 14px; line-height: 1.9; color: #c8c1d0; }
.directory { padding-bottom: 75px; }
.directory-controls { display: flex; gap: 30px; align-items: end; justify-content: space-between; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 28px 0; }
.directory-controls h2 { font-size: 24px; letter-spacing: -.04em; }
.directory-controls h2 span { color: var(--coral); font: 500 15px var(--mono); vertical-align: super; }
.directory-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 20px; }
.search-label { display: flex; flex-direction: column; gap: 6px; color: var(--dim); font: 500 10px var(--mono); }
.search-label input { color: #fff; background: var(--panel); border: 1px solid #675e72; height: 40px; min-width: 180px; max-width: 270px; width: 100%; padding: 9px 12px; font: 500 12px var(--sans); border-radius: 0; }
.search-label input::placeholder { color: #b1a8bd; }
.filters { display: flex; gap: 6px; }
.filters button { color: #d6cede; padding: 10px 14px; background: transparent; border: 1px solid var(--line); font-size: 11px; font-weight: 800; }
.filters button:hover { border-color: var(--lavender); }
.filters button.is-selected { color: #231d2c; background: var(--lavender); border-color: var(--lavender); }
.operator-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding-top: 26px; }
.operator-card { min-width: 0; display: grid; grid-template-columns: 175px 1fr; grid-template-rows: auto 1fr; background: var(--panel); border: 1px solid var(--line); }
.operator-top { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 10px; font: 500 10px var(--mono); color: #cbbfd4; border-bottom: 1px solid var(--line-soft); padding: 16px 22px; }
.operator-logo { display: flex; align-items: center; justify-content: center; min-height: 220px; padding: 24px; background: #f1eff3; }
.operator-logo.logo-on-dark { background: #343d4b; }
.operator-logo img { width: 100%; max-width: 140px; height: 110px; object-fit: contain; }
.operator-body { display: flex; flex-direction: column; align-items: flex-start; padding: 24px; }
.operator-body h3 { font-size: 24px; color: #fff; }
.operator-body p { font-size: 12px; color: #d2cbda; line-height: 1.85; margin-top: 12px; }
.operator-body a { margin-top: auto; padding-top: 24px; color: var(--lavender); font-size: 12px; font-weight: 800; }
.operator-body a:hover { color: #fff; }
.empty-state { padding: 50px; background: #231f2d; margin-top: 20px; color: var(--lavender); }
.licence-bar { display: flex; align-items: center; gap: 22px; padding: 27px 30px; background: #2a2132; margin-top: 22px; border-left: 3px solid var(--coral); }
.licence-icon { flex: 0 0 44px; height: 44px; border: 1px solid var(--coral); border-radius: 50%; display: grid; place-items: center; color: var(--coral); font: 700 22px var(--mono); }
.licence-bar > div:nth-child(2) { flex: 1; }
.licence-bar strong { color: #fff; font-size: 14px; }
.licence-bar p { margin-top: 5px; font-size: 12px; line-height: 1.7; color: #ded3e4; }
.licence-bar > a { flex-shrink: 0; font: 700 11px var(--mono); color: var(--lavender); border: 1px solid #73607d; padding: 13px 15px; }
.licence-bar > a:hover { background: #4b3956; }
.criterion-grid, .method-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.criterion-grid > div, .method-grid > div { padding: 28px; background: var(--panel); border-top: 2px solid #886b9e; }
.criterion-grid b, .method-grid span { font: 600 11px var(--mono); color: var(--coral); }
.criterion-grid h3, .method-grid h3 { font-size: 22px; margin-top: 28px; }
.criterion-grid p, .method-grid p { font-size: 13px; line-height: 1.85; color: #cfc8d7; margin-top: 14px; }
/* Glossary */
.glossary-section, .method-section, .faq-section { padding-block: 75px 135px; }
.term-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 45px; border-top: 1px solid var(--line); }
.term-list > div { display: grid; grid-template-columns: 50px 1fr; column-gap: 15px; align-content: start; padding: 24px 6px 25px 0; border-bottom: 1px solid var(--line); }
.term-list > div > span { grid-row: span 2; font: 500 11px var(--mono); color: var(--coral); padding-top: 6px; }
.term-list h3 { font-size: 23px; }
.term-list p { margin-top: 11px; font-size: 13px; line-height: 1.85; color: #d0c9d8; }
.glossary-end { display: flex; justify-content: space-between; gap: 30px; align-items: center; padding-top: 45px; }
.glossary-end p { color: #c7c0ce; font-size: 13px; max-width: 420px; }
.method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.method-grid > div { min-height: 230px; padding: 36px; }
.method-grid h3 { font-size: 29px; margin-top: 32px; }
.method-note { margin-top: 24px; }
.source-card { display: flex; justify-content: space-between; align-items: end; gap: 50px; border: 1px solid var(--line); margin-top: 30px; padding: 38px; }
.source-card h3 { font-size: 30px; max-width: 550px; margin-top: 20px; }
.source-card p { font-size: 13px; max-width: 650px; color: #cec6d6; margin-top: 15px; }
.source-card > a { display: inline-block; border: 1px solid #8c7899; padding: 13px 16px; color: var(--lavender); font: 700 11px var(--mono); white-space: nowrap; }
.source-card > a:hover { background: #2c2637; }
/* FAQ */
.faq-stack { border-top: 1px solid var(--line); }
.faq-stack details { border-bottom: 1px solid var(--line); }
.faq-stack summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 30px; font-size: clamp(17px, 2vw, 26px); font-weight: 750; letter-spacing: -.04em; padding: 30px 0; cursor: pointer; }
.faq-stack summary::-webkit-details-marker { display: none; }
.faq-stack summary > span { color: var(--lavender); font: 400 33px var(--sans); transition: transform .2s; }
.faq-stack details[open] summary > span { transform: rotate(45deg); }
.faq-stack details p { max-width: 800px; color: #d7d0df; font-size: 15px; line-height: 1.9; padding: 0 45px 31px 0; }
.faq-end { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-top: 40px; }
.faq-end span { color: var(--dim); font: 600 10px var(--mono); }
.faq-end a { color: var(--lavender); font-weight: 800; font-size: 14px; }
.error-page { min-height: 66vh; padding-block: 130px; }
.error-page h1 { font-size: clamp(48px, 7vw, 102px); margin: 25px 0; }
.error-page p { color: var(--muted); margin-bottom: 30px; }
/* Full footer / not a standard column-only footer */
.site-footer { background: #221a2a; border-top: 1px solid #61506d; }
.footer-lead { display: flex; justify-content: space-between; align-items: end; gap: 45px; padding: 85px 0 62px; }
.footer-lead h2 { font-size: clamp(45px, 6.3vw, 95px); line-height: 1.08; margin-top: 20px; }
.footer-lead h2 em { color: #f4bae4; }
.footer-stamp { flex: 0 0 210px; border-left: 1px solid #876e92; padding: 0 0 0 24px; margin-bottom: 10px; }
.footer-stamp span { font: 750 70px/1 var(--sans); letter-spacing: -.08em; color: var(--coral); }
.footer-stamp p { color: #dbd0e2; font-size: 12px; line-height: 1.8; margin-top: 15px; }
.footer-divider { height: 1px; background: #64516f; }
.footer-lower { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 34px; padding: 50px 0 65px; }
.footer-domain { font-size: 18px; font-weight: 800; letter-spacing: -.08em; line-height: 1.4; overflow-wrap: anywhere; }
.footer-domain span { color: var(--lavender); }
.footer-identity p { color: #d4c5da; font-size: 13px; line-height: 1.85; margin-top: 23px; max-width: 360px; }
.footer-col { display: flex; flex-direction: column; align-items: start; gap: 14px; }
.footer-col h3 { color: var(--coral); font: 600 10px var(--mono); margin-bottom: 8px; letter-spacing: .06em; }
.footer-col a { color: #e2d9e5; font-size: 12px; line-height: 1.5; }
.footer-col a:hover { color: var(--coral); text-decoration: underline; text-underline-offset: 4px; }
.footer-regulatory { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 24px 0 30px; border-top: 1px solid #64516f; color: #cdc0d4; font: 500 11px/1.8 var(--mono); }
.footer-regulatory p:first-child { max-width: 740px; }
.footer-regulatory a { color: var(--lavender); text-decoration: underline; text-underline-offset: 3px; }
.footer-regulatory a:hover { color: white; }
/* Laptops */
@media (max-width: 1210px) {
  .shell { width: min(calc(100% - 64px), var(--max)); }
  .header-inner { min-height: 96px; }
  .nav { gap: 12px; }
  .nav > a { font-size: 11px; }
  .wordmark-text { font-size: 17px; }
  .wordmark img { width: 42px; height: 42px; }
  .home-hero { grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr); gap: 36px; }
  .home-hero h1 { font-size: clamp(50px, 5.1vw, 73px); }
  .home-hero h1 em { white-space: normal; }
  .hero-art { min-height: 540px; }
  .operator-card { grid-template-columns: 140px 1fr; }
}
@media (max-width: 980px) {
  html { scroll-padding-top: 30px; }
  .header-inner { min-height: 86px; }
  .menu-button { display: inline-flex; }
  .nav { display: none; position: absolute; top: calc(100% + 1px); left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; padding: 15px 32px 30px; background: #191522; border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px #05030aaa; }
  .nav.is-open { display: flex; }
  .nav > a { font-size: 15px; padding: 15px 0; border-bottom: 1px solid #363143; }
  .nav > a::after { display: none; }
  .nav .nav-guard { margin-top: 18px; text-align: center; padding: 16px; }
  .home-hero { grid-template-columns: 1fr; padding-block: 62px 75px; }
  .home-hero h1 { font-size: clamp(53px, 8.3vw, 88px); max-width: 860px; }
  .hero-footnote { padding-top: 48px; }
  .hero-art { min-height: 450px; display: grid; grid-template-rows: auto minmax(360px, 1fr) auto; }
  .hero-art > img { height: 100%; min-height: 0; }
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature:last-child { grid-column: 1 / -1; min-height: 360px; }
  .feature-three > div:nth-child(2) { display: grid; grid-template-columns: 200px 1fr; column-gap: 20px; align-items: center; }
  .feature-three .feature-graphic { grid-row: span 2; }
  .tool-grid { gap: 50px; }
  .directory-controls { align-items: flex-start; flex-direction: column; }
  .operator-card { grid-template-columns: 1fr; grid-template-rows: auto 170px 1fr; }
  .operator-top { grid-column: auto; }
  .operator-logo { min-height: 170px; }
  .operator-logo img { height: 120px; }
  .operator-body { min-height: 225px; }
  .criterion-grid { grid-template-columns: repeat(2, 1fr); }
  .principle-strip { grid-template-columns: 80px 1fr; }
  .principle-symbol { font-size: 115px; }
  .principle-strip .button { grid-column: 2; justify-self: start; }
  .inside-hero-grid { grid-template-columns: 1fr 220px; gap: 26px; }
  .inside-hero h1 { font-size: clamp(52px, 6.6vw, 77px); }
  .reading-area { gap: 45px; grid-template-columns: 180px 1fr; }
  .footer-lower { grid-template-columns: 2fr 1fr 1fr; }
  .footer-identity { grid-column: 1 / -1; }
}
@media (max-width: 690px) {
  .shell { width: min(calc(100% - 38px), var(--max)); }
  .utility-inner { min-height: 34px; justify-content: center; }
  .utility-inner p:first-child { display: none; }
  .utility-inner p:last-child { font-size: 9px; white-space: normal; text-align: center; }
  .header-inner { min-height: 78px; }
  .wordmark { gap: 9px; }
  .wordmark img { width: 39px; height: 39px; }
  .wordmark-text { font-size: 15px; }
  .wordmark-text small { font-size: 9px; }
  .menu-button { font-size: 10px; padding: 10px; }
  .nav { padding-inline: 19px; }
  .home-hero { padding-top: 48px; padding-bottom: 55px; gap: 45px; }
  .hero-meta { font-size: 9px; gap: 8px; flex-wrap: wrap; }
  .home-hero h1 { font-size: clamp(42px, 10.2vw, 70px); margin: 27px 0 24px; line-height: 1.13; }
  .home-hero h1 em { white-space: normal; }
  .hero-description { font-size: 15px; line-height: 1.82; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
  .hero-footnote { gap: 12px; padding-top: 48px; flex-wrap: wrap; font-size: 9px; }
  .hero-art { min-height: 0; grid-template-rows: 50px 300px auto; }
  .art-head { font-size: 9px; padding-inline: 16px; }
  .art-caption { min-height: 108px; padding: 16px; }
  .art-caption p { font-size: 12px; }
  .issue-inner { min-height: 86px; gap: 8px; justify-content: space-between; flex-wrap: wrap; padding-block: 19px; }
  .issue-inner span { font-size: 10px; }
  .issue-separator { display: none; }
  .section-block { padding-block: 75px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 19px; margin-bottom: 30px; }
  .section-heading h2, .directory-intro h2 { font-size: clamp(36px, 9vw, 50px); margin-top: 15px; }
  .heading-aside { font-size: 13px; }
  .feature-grid { grid-template-columns: 1fr; gap: 12px; }
  .feature, .feature:last-child { grid-column: auto; min-height: 420px; padding: 23px; }
  .feature-three > div:nth-child(2) { display: block; }
  .feature-graphic { height: 125px; margin: 20px 0 29px; }
  .feature h3 { font-size: 29px; }
  .odds-graphic span { font-size: 27px; }
  .tool-section { padding: 70px 0 90px; }
  .tool-grid { grid-template-columns: 1fr; gap: 43px; }
  .tool-intro h2 { font-size: clamp(40px, 10vw, 64px); }
  .tool-intro p { font-size: 14px; }
  .calculator { box-shadow: 10px 12px 0 #aa8ebd; padding: 25px 23px; }
  .calc-header { flex-wrap: wrap; }
  .calc-input input { font-size: 53px; }
  .calculator output { font-size: 68px; }
  .editorial-row { grid-template-columns: 36px 1fr 25px; gap: 9px; padding: 26px 4px 26px 0; }
  .editorial-category { grid-column: 2 / 3; grid-row: 1 / 2; }
  .editorial-index { grid-row: 1 / span 2; }
  .editorial-row h3 { grid-column: 2; font-size: 20px; }
  .editorial-arrow { grid-column: 3; grid-row: 1 / span 2; font-size: 22px; }
  .principle-strip { width: min(calc(100% - 38px), var(--max)); grid-template-columns: 1fr; gap: 20px; padding: 28px; margin-bottom: 70px; }
  .principle-symbol { font-size: 75px; }
  .principle-strip .button { grid-column: 1; }
  .inside-hero { padding-block: 57px; }
  .inside-hero-grid { grid-template-columns: 1fr; }
  .inside-hero h1 { font-size: clamp(43px, 10vw, 70px); margin-top: 22px; }
  .inside-hero p { font-size: 15px; }
  .inside-aside { min-height: 120px; flex-direction: row; align-items: center; gap: 15px; padding: 19px; }
  .inside-aside > strong { font-size: 43px; }
  .inside-aside > span,.inside-aside > small { max-width: 110px; font-size: 9px; }
  .reading-area { grid-template-columns: 1fr; gap: 35px; padding-block: 46px 80px; }
  .reading-sidebar { position: static; flex-direction: row; flex-wrap: wrap; gap: 9px; border-bottom: 1px solid var(--line); padding-bottom: 22px; }
  .reading-sidebar .eyebrow { flex-basis: 100%; margin-bottom: 4px; }
  .reading-sidebar a { border: 1px solid var(--line); padding: 6px 9px; font-size: 11px; }
  .longform { font-size: 15px; line-height: 1.85; }
  .longform .intro-paragraph { font-size: 21px; }
  .longform h2 { font-size: 29px; margin-top: 42px; }
  .knowledge-box { padding: 19px 20px; }
  .directory-intro { grid-template-columns: 1fr; gap: 20px; padding-block: 65px 40px; }
  .operator-grid { grid-template-columns: 1fr; }
  .operator-card { grid-template-columns: 130px 1fr; grid-template-rows: auto 1fr; }
  .operator-top { grid-column: 1 / -1; }
  .operator-logo { min-height: 230px; }
  .operator-body { min-height: 230px; padding: 20px; }
  .operator-body h3 { font-size: 22px; }
  .directory-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .search-label input { max-width: none; }
  .filters button { flex: 1; }
  .licence-bar { padding: 22px; flex-wrap: wrap; gap: 16px; }
  .licence-bar > a { margin-left: 60px; }
  .criterion-grid, .method-grid, .term-list { grid-template-columns: 1fr; }
  .criterion-grid > div, .method-grid > div { padding: 23px; }
  .glossary-section, .method-section, .faq-section { padding-block: 60px 85px; }
  .term-list > div { padding: 22px 0; }
  .glossary-end, .source-card, .faq-end { align-items: flex-start; flex-direction: column; }
  .source-card { padding: 26px; gap: 24px; }
  .source-card h3 { font-size: 24px; }
  .faq-stack summary { font-size: 18px; padding: 24px 0; }
  .faq-stack details p { padding-right: 10px; font-size: 14px; }
  .footer-lead { padding-top: 65px; flex-direction: column; align-items: flex-start; gap: 40px; }
  .footer-lead h2 { font-size: clamp(47px, 10.1vw, 75px); }
  .footer-stamp { flex: 0 0 auto; max-width: 300px; }
  .footer-lower { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 24px; padding-block: 45px 50px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-regulatory { align-items: flex-start; flex-direction: column; gap: 14px; font-size: 10px; }
}
@media (max-width: 405px) {
  .operator-card { grid-template-columns: 1fr; grid-template-rows: auto 135px 1fr; }
  .operator-top { grid-column: 1; }
  .operator-logo { min-height: 135px; }
  .operator-logo img { height: 90px; }
  .operator-body { min-height: 200px; }
  .calc-input span { font-size: 9px; }
  .calculator output { font-size: 57px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ONLINE CASINO / BRAND RESTORATION — 2026 */
.casino-hero-art .art-caption { background:#292235; }
.casino-art-body { isolation:isolate; position:relative; flex:1; min-height:360px; padding:40px; overflow:hidden; display:flex; align-items:center; justify-content:center; background: radial-gradient(circle at 70% 35%, #473450 0%, #282033 36%, #1a1925 74%); }
.casino-art-body::before { content:""; position:absolute; z-index:-1; width:128%; aspect-ratio:1; border:1px solid #9c7eaa66; border-radius:50%; transform:translate(-17%, 18%); }
.casino-art-body::after { content:""; position:absolute; z-index:-1; width:80%; aspect-ratio:1; border:1px solid #efb9ae6b; border-radius:50%; transform:translate(24%,-30%); }
.casino-art-ring { width:min(100%, 345px); aspect-ratio:1; border:1px dashed #a389b9; border-radius:50%; display:grid; place-items:center; transform:rotate(-11deg); }
.casino-art-center { width:73%; aspect-ratio:1; border:1px solid #d9b8e3; background:linear-gradient(140deg,#242033,#40304b); border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; transform:rotate(11deg); color:#e7d3fb; line-height:1.3; box-shadow:0 0 80px #ca91ee16; }
.casino-art-center strong { font-weight:800; font-size:clamp(30px,3.5vw,54px); line-height:1.3; letter-spacing:-.07em; color:#fff; }
.casino-art-center span {font:600 11px var(--mono); letter-spacing:.22em; color:#ffd0bf;}
.casino-art-overline { position:absolute; left:22px; bottom:22px; font:600 10px var(--mono); letter-spacing:.14em; color:#d5bfdf; }
.casino-art-number { position:absolute; top:15px; right:25px; font:800 46px var(--sans); letter-spacing:-.08em; color:#eac6f1; }
.casino-list-section { padding-block:95px 115px; }
.home-brands {border-top:1px solid var(--line);}
.home-brand-row { display:grid; grid-template-columns: 43px 184px minmax(0,1fr) 132px; align-items:center; gap:clamp(17px,2vw,34px); padding:24px 15px 24px 0; border-bottom:1px solid var(--line); transition:background .18s; min-width:0; }
.home-brand-row:hover {background:#211d2b;}
.home-brand-index {font:600 12px var(--mono); color:var(--coral); align-self:start; padding-top:20px;}
.home-brand-logo {display:flex; justify-content:center; align-items:center; padding:19px 15px; height:137px; min-width:0; background:#f4f3f5; border-radius:3px;}
.home-brand-logo.logo-on-dark {background:#353e4e;}
.home-brand-logo img {width:100%; max-height:100%; max-width:145px; height:85px; object-fit:contain;}
.home-brand-main {min-width:0;}
.home-brand-main h3 {font-size:clamp(24px,2.5vw,34px); color:#fff; margin:5px 0 9px;}
.home-brand-main p {font-size:13px; line-height:1.8; color:#d7cede; max-width:770px;}
.brand-kicker {font:600 10px var(--mono); letter-spacing:.075em; text-transform:uppercase; color:#ffc1ac;}
.home-brand-visit {display:flex; flex-direction:column; align-items:flex-start; gap:9px; font:700 11px var(--mono); color:#e9d8fa; border-left:1px solid #716478; padding-left:17px;}
.home-brand-visit b {font:400 33px var(--sans); line-height:1; color:var(--coral);}
.home-brand-visit:hover {color:#fff; border-color:var(--coral);}
.directory-notice {display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;border:1px solid #554a62;background:#211c2c;padding:19px 24px;margin-top:30px;}
.directory-notice .notice-mark {font:800 21px var(--mono); color:var(--coral);}
.directory-notice p {font-size:12px;line-height:1.75;color:#ded4e7;}
.directory-notice a {white-space:nowrap;font:700 11px var(--mono);text-decoration:underline;text-underline-offset:5px;color:#f1d9ff;}
.live-graphic,.slots-graphic {display:flex;align-items:center;justify-content:center;gap:13px;color:#ead0f8;}
.live-graphic span {border:1px solid #846f92;font:700 23px var(--mono);padding:13px;}
.live-graphic b {color:#ffae9d;animation:live-blink 2s ease-in-out infinite;}
.slots-graphic span {font:800 57px var(--mono);background:#322c40;padding:0 12px;color:#e6d2f0;border:1px solid #705a88;}
.slots-graphic span:nth-child(2){color:#ffb4a3;transform:translateY(-13px);}
@keyframes live-blink {50%{opacity:.45;}}
.casino-feature-band {background:#e6d5f2;color:#281e35;padding:95px 0;overflow:hidden;}
.casino-feature-inner {display:grid;grid-template-columns:1fr .75fr;gap:clamp(40px,8vw,130px);align-items:center;}
.casino-feature-inner > div:first-child {max-width:660px;}
.casino-feature-inner .eyebrow {color:#594066;}
.casino-feature-inner h2 {font-size:clamp(44px,5vw,74px);margin:24px 0;}
.casino-feature-inner h2 em {color:#73518f;}
.casino-feature-inner p {font-size:15px;line-height:1.9;color:#473c51;margin-bottom:30px;}
.casino-feature-inner .button {background:#231b2c;color:#fff;}
.casino-feature-device {width:min(100%,340px);height:420px;justify-self:center;background:#1b1726;box-shadow:25px 25px 0 #ae91c3; border:7px solid #493659; border-radius:29px;color:#f8efff;display:flex;flex-direction:column;overflow:hidden;}
.device-top {display:flex;justify-content:space-between;padding:26px 22px;font:700 11px var(--mono);border-bottom:1px solid #55435e;}
.device-middle {flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:radial-gradient(circle,#3d304b,#1b1726);}
.device-middle span {font:700 12px var(--mono);letter-spacing:.2em;color:#c4b0da;}
.device-middle strong {font:800 74px var(--sans);color:#ffc9b7;line-height:1.2;}
.device-bottom {height:70px;display:flex;align-items:center;justify-content:center;gap:9px;border-top:1px solid #55435e;}
.device-bottom i {width:23px;height:5px;background:#745f88;border-radius:3px;}
.operator-body .brand-kicker {margin-bottom:8px;}
.operator-actions {display:flex;flex-direction:column;gap:9px;margin-top:auto; padding-top:18px; width:100%;}
.operator-actions .button {font-size:12px; gap:12px; min-height:50px; max-width:100%; width:100%; padding-inline:16px;}
.operator-actions .brand-caption {font:500 10px var(--mono);color:#cfc5d7;}
.operator-body h3 {margin-bottom:11px;}
.operator-body > p {margin-bottom:0;}
.longform section {scroll-margin-top:120px;}
.longform section a {color:#e8c9ff;text-decoration:underline;text-underline-offset:4px;}
.longform section a:hover {color:#fff;}
@media(max-width:1040px){
 .home-brand-row{grid-template-columns:34px 145px minmax(0,1fr);gap:18px;}
 .home-brand-visit{grid-column:3;border:0;flex-direction:row;align-items:center;padding:0;margin-top:-8px;}
 .home-brand-logo{height:130px;}
 .directory-notice{grid-template-columns:auto 1fr;}
 .directory-notice a{grid-column:2;}
}
@media(max-width:690px){
 .casino-art-body {min-height:315px;padding:20px;}
 .casino-art-ring {width:260px;}
 .casino-art-center strong{font-size:37px;}
 .casino-list-section {padding-block:68px 75px;}
 .home-brand-row{grid-template-columns:40px minmax(0,1fr);gap:12px 16px;padding:23px 0;}
 .home-brand-index{grid-column:1;grid-row:1;padding-top:10px;}
 .home-brand-logo {grid-column:2;grid-row:1;width:178px;max-width:100%;height:105px;padding:12px;}
 .home-brand-logo img{height:80px;}
 .home-brand-main {grid-column:2;grid-row:2;}
 .home-brand-main p{font-size:12px;}
 .home-brand-visit{grid-column:2;grid-row:3;margin-top:5px;}
 .directory-notice{grid-template-columns:1fr;gap:12px;padding:20px;}
 .directory-notice a{grid-column:1;}
 .casino-feature-band{padding:75px 0 95px;}
 .casino-feature-inner{grid-template-columns:1fr;gap:55px;}
 .casino-feature-device{height:380px;box-shadow:12px 13px 0 #ae91c3;}
 .live-graphic span{font-size:17px;}
 .slots-graphic span{font-size:40px;padding-inline:9px;}
}
@media(prefers-reduced-motion: reduce){.live-graphic b{animation:none;}}
/* Narrow-screen text overflow repair (long Greek/Latin domain names). */
.inside-hero-grid > *, .inside-hero h1, .inside-hero h1 em { min-width:0; }
.inside-hero h1 em { overflow-wrap:anywhere; }
@media (max-width:405px) { .inside-hero h1 { font-size:clamp(35px,10vw,43px); } }
