:root {
    color-scheme:dark;
    --ink:#0b1120;
    --panel:#111a2c;
    --line:#25324a;
    --paper:#e9edf5;
    --muted:#9ba9c2;
    --blue:#709bff;
    --amber:#ffb75e;
    --serif:Georgia,'Times New Roman',serif;
    --sans:Inter,'Segoe UI',Arial,sans-serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:var(--ink);
    color:var(--paper);
    font:16px/1.65 var(--sans)
}
a {
    color:inherit;
    text-decoration:none
}
a:hover {
    color:var(--amber)
}
button,input {
    font:inherit
}
.container {
    width:min(1200px,calc(100% - 56px));
    margin-inline:auto
}
.skip-link {
    position:absolute;
    left:-9999px;
    top:8px;
    background:var(--amber);
    color:#111;
    padding:10px 16px;
    z-index:20
}
.skip-link:focus {
    left:12px
}
.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
}
:focus-visible {
    outline:3px solid var(--amber);
    outline-offset:4px
}
.mastline {
    border-bottom:1px solid var(--line);
    color:#7f91b1;
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase
}
.mastline .container {
    height:38px;
    display:flex;
    justify-content:space-between;
    align-items:center
}
.site-header {
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    border-bottom:1px solid var(--line)
}
.brand {
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:750;
    font-size:18px;
    white-space:nowrap
}
.brand img {
    object-fit:contain
}
.brand small {
    display:block;
    color:#8998b2;
    font-size:9px;
    letter-spacing:.16em;
    font-weight:600;
    margin-top:1px
}
.main-nav {
    display:flex;
    gap:30px;
    font-size:13px;
    color:#c4ccdb
}
.header-search {
    display:flex;
    border:1px solid var(--line);
    height:40px
}
.header-search input,.large-search input {
    min-width:0;
    background:transparent;
    color:var(--paper);
    border:0;
    padding:0 12px
}
.header-search button {
    width:42px;
    background:transparent;
    color:var(--amber);
    border:0;
    cursor:pointer
}
.hero-section {
    border-bottom:1px solid var(--line);
    overflow:hidden
}
.hero-grid {
    min-height:590px;
    display:grid;
    grid-template-columns:.87fr 1.13fr;
    align-items:center;
    gap:36px;
    padding-block:46px
}
.hero-copy {
    position:relative;
    z-index:1
}
.eyebrow {
    font-size:10px;
    font-weight:700;
    letter-spacing:.17em;
    color:#90a3c6
}
.pulse {
    display:inline-block;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--amber);
    box-shadow:0 0 12px var(--amber);
    margin-right:8px
}
.hero-copy h1 {
    font-size:clamp(48px,6.2vw,82px);
    letter-spacing:-.065em;
    line-height:.99;
    margin:34px 0 25px;
    font-weight:650
}
.hero-copy h1 em {
    color:var(--blue);
    font-family:var(--serif);
    font-weight:400;
    letter-spacing:-.05em
}
.hero-copy>p {
    color:#abb7cb;
    max-width:440px;
    font-size:16px
}
.hero-cta {
    display:inline-flex;
    align-items:center;
    gap:25px;
    margin-top:20px;
    padding:13px 18px;
    background:var(--amber);
    color:#111827;
    font-weight:750;
    font-size:13px
}
.hero-cta:hover {
    background:#ffd298;
    color:#111827
}
.hero-cta span {
    font-size:18px
}
.hero-foot {
    display:flex;
    justify-content:space-between;
    border-top:1px solid var(--line);
    padding-top:17px;
    margin-top:53px;
    color:#7787a3;
    font-size:9px;
    letter-spacing:.13em
}
.hero-art {
    height:480px;
    position:relative;
    border:1px solid #26334c;
    background:#131c2e
}
.hero-art:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(11,17,32,.48),transparent 75%);
    pointer-events:none
}
.hero-art img {
    width:100%;
    height:100%;
    object-fit:cover
}
.art-caption {
    position:absolute;
    z-index:1;
    left:20px;
    right:20px;
    bottom:17px;
    display:flex;
    justify-content:space-between;
    color:#d3dced;
    font-size:9px;
    letter-spacing:.15em
}
.intro-strip {
    display:grid;
    grid-template-columns:190px 1fr auto;
    align-items:center;
    gap:25px;
    padding-block:32px;
    border-bottom:1px solid var(--line)
}
.intro-strip p {
    margin:0;
    font:20px/1.45 var(--serif);
    color:#dbe2ef
}
.intro-strip code {
    color:var(--amber);
    font:14px ui-monospace,monospace
}
.intro-strip>a,.section-heading>a {
    font-size:12px;
    color:#a8b8d2
}
.latest-section,.topic-section {
    padding-block:84px
}
.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    margin-bottom:30px
}
.section-heading h2 {
    font:42px/1.1 var(--serif);
    letter-spacing:-.035em;
    margin:9px 0 0
}
.section-heading>a span {
    color:var(--amber);
    padding-left:8px
}
.article-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px
}
.article-card {
    background:var(--panel);
    border:1px solid var(--line);
    min-width:0
}
.card-media {
    display:block;
    height:230px;
    overflow:hidden;
    background:#17243a
}
.card-media img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .35s
}
.article-card:hover .card-media img {
    transform:scale(1.035)
}
.card-copy {
    padding:23px 25px
}
.card-meta,.article-meta {
    display:flex;
    gap:18px;
    color:#8594ad;
    font-size:10px;
    letter-spacing:.09em
}
.card-copy h3 {
    font:25px/1.2 var(--serif);
    margin:14px 0
}
.card-copy h3 a:hover {
    color:var(--blue)
}
.card-copy p {
    color:#a9b5c9;
    font-size:13px;
    margin:0
}
.tag-row {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:17px
}
.tag-row a {
    border:1px solid #34435e;
    padding:4px 8px;
    color:#b9c7df;
    font-size:10px
}
.popular-section {
    background:#111a2b;
    border-block:1px solid var(--line);
    padding:72px 0
}
.subtle {
    color:#8695ae;
    font-size:12px
}
.popular-list {
    border-top:1px solid var(--line)
}
.popular-list>a {
    display:grid;
    grid-template-columns:70px 1fr 30px;
    align-items:center;
    gap:10px;
    padding:19px 4px;
    border-bottom:1px solid var(--line);
    font:21px var(--serif)
}
.popular-list>a>b {
    color:var(--amber);
    font:18px var(--sans)
}
.rank {
    color:#7389b3;
    font:12px ui-monospace,monospace
}
.empty-inline,.empty-state {
    color:var(--muted)
}
.topic-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px
}
.topic-card {
    min-height:155px;
    padding:20px;
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    background:linear-gradient(145deg,#121d31,#0d1423)
}
.topic-index {
    font:11px ui-monospace,monospace;
    color:var(--amber)
}
.topic-card strong {
    font:24px var(--serif)
}
.topic-card>span:last-child {
    font-size:11px;
    color:#8f9fba
}
.topic-card b {
    float:right;
    color:var(--blue)
}
.inner-page {
    padding-top:40px;
    padding-bottom:90px
}
.breadcrumbs {
    display:flex;
    gap:11px;
    color:#8090ab;
    font-size:12px;
    margin-bottom:36px
}
.content-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 250px;
    gap:60px
}
.main-column h1,.editorial-page h1 {
    font:clamp(42px,6vw,66px)/1.05 var(--serif);
    letter-spacing:-.045em;
    margin:14px 0 20px
}
.result-count {
    color:var(--muted);
    margin-top:-6px;
    margin-bottom:27px
}
.topic-sidebar {
    align-self:start;
    padding:22px;
    border:1px solid var(--line)
}
.topic-sidebar h2 {
    font:21px var(--serif)
}
.topic-sidebar nav a {
    display:flex;
    justify-content:space-between;
    padding:10px 0;
    border-top:1px solid var(--line);
    font-size:12px
}
.topic-sidebar nav b {
    color:var(--amber)
}
.large-search {
    display:flex;
    border:1px solid #405170;
    margin-bottom:25px;
    height:52px
}
.large-search input {
    flex:1
}
.large-search button {
    border:0;
    background:var(--amber);
    padding-inline:18px;
    font-weight:700
}
.pagination {
    display:flex;
    gap:8px;
    margin-top:35px
}
.pagination a,.pagination span {
    padding:7px 11px;
    border:1px solid var(--line)
}
.pagination [aria-current=page] {
    background:var(--blue);
    color:#10182a
}
.empty-state {
    padding:35px;
    border:1px dashed #384864
}
.empty-state strong {
    font:23px var(--serif);
    color:var(--paper)
}
.full-article h1 {
    font:clamp(42px,6vw,68px)/1.05 var(--serif);
    letter-spacing:-.04em
}
.article-meta {
    margin:20px 0 28px
}
.article-hero {
    width:100%;
    max-height:520px;
    object-fit:cover
}
.prose {
    font-size:17px;
    line-height:1.85;
    color:#d1d8e5
}
.prose h2,.prose h3 {
    font-family:var(--serif);
    line-height:1.2;
    margin-top:1.8em
}
.prose a {
    color:var(--blue);
    text-decoration:underline
}
.prose pre,.prose code {
    background:#111a2b;
    color:#ffcf8e;
    font-family:ui-monospace,Consolas,monospace
}
.prose pre {
    padding:20px;
    overflow:auto
}
.prose blockquote {
    border-left:3px solid var(--amber);
    padding-left:20px;
    color:#aebbd0
}
.related {
    margin-top:65px
}
.editorial-page {
    max-width:900px
}
.editorial-page .page-lead {
    font:25px/1.5 var(--serif);
    color:#cbd5e6;
    max-width:760px;
    margin:25px 0 55px
}
.page-columns {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:44px;
    border-top:1px solid var(--line);
    padding-top:28px
}
.page-columns h2 {
    font:24px var(--serif)
}
.page-columns p,.editorial-page>p {
    color:#aab7cb
}
.text-link {
    display:inline-block;
    margin-top:30px;
    color:var(--amber);
    font-weight:700
}
.method-list {
    list-style:none;
    padding:0;
    margin:45px 0;
    border-top:1px solid var(--line)
}
.method-list li {
    display:grid;
    grid-template-columns:170px 1fr;
    gap:20px;
    padding:22px 0;
    border-bottom:1px solid var(--line)
}
.method-list b {
    font-size:11px;
    letter-spacing:.12em;
    color:var(--amber)
}
.method-list span {
    color:#c1ccde
}
.site-footer {
    background:#080d17;
    border-top:1px solid var(--line);
    padding:54px 0 20px
}
.footer-inner {
    display:flex;
    justify-content:space-between;
    gap:40px
}
.footer-brand {
    font:25px var(--serif)
}
.footer-brand span {
    color:var(--amber)
}
.footer-inner p {
    max-width:510px;
    color:#8492aa;
    font-size:13px
}
.footer-inner small {
    color:#71809a;
    font-size:10px
}
.footer-inner nav {
    display:grid;
    gap:10px;
    align-content:start;
    font-size:12px;
    color:#aab8ce
}
.analytics-area {
    padding-top:20px
}
.cookie-banner {
    position:fixed;
    z-index:10;
    left:22px;
    right:22px;
    bottom:20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:17px 20px;
    background:#f3f5fa;
    color:#151c2a;
    box-shadow:0 12px 40px #0008
}
.cookie-banner[hidden] {
    display:none
}
.cookie-banner p {
    margin:3px 0 0;
    font-size:12px
}
.cookie-banner a {
    text-decoration:underline
}
.cookie-actions {
    display:flex;
    gap:8px;
    flex-shrink:0
}
.cookie-actions button {
    border:1px solid #25324a;
    background:transparent;
    padding:8px 12px;
    cursor:pointer
}
.cookie-actions button:first-child {
    background:#17233b;
    color:#fff
}
.error-page {
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px
}
.error-card {
    max-width:580px;
    padding:45px;
    border:1px solid var(--line);
    background:var(--panel)
}
.error-card h1 {
    font:44px/1.1 var(--serif)
}
@media(max-width:850px) {
    .main-nav {
    gap:15px
}
.header-search {
    display:none
}
.hero-grid {
    grid-template-columns:1fr;
    gap:28px
}
.hero-copy h1 {
    font-size:68px
}
.hero-art {
    height:390px
}
.intro-strip {
    grid-template-columns:1fr;
    gap:10px
}
.content-layout {
    grid-template-columns:1fr;
    gap:30px
}
.topic-sidebar {
    order:-1
}
.topic-sidebar nav {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:20px
}
.topic-grid {
    grid-template-columns:repeat(2,1fr)
}

}
@media(max-width:560px) {
    .container {
    width:calc(100% - 34px)
}
.mastline .container {
    font-size:8px
}
.mastline .container span:last-child {
    display:none
}
.site-header {
    height:76px;
    gap:12px
}
.brand {
    font-size:15px
}
.brand img {
    width:37px;
    height:37px
}
.brand small {
    font-size:7px
}
.main-nav {
    gap:12px;
    font-size:10px
}
.main-nav a:first-child {
    display:none
}
.hero-grid {
    min-height:0;
    padding-block:38px
}
.hero-copy h1 {
    font-size:54px;
    margin:25px 0 18px
}
.hero-copy>p {
    font-size:14px
}
.hero-foot {
    font-size:7px;
    margin-top:34px
}
.hero-art {
    height:270px
}
.art-caption {
    font-size:7px
}
.intro-strip {
    padding-block:23px
}
.intro-strip p {
    font-size:18px
}
.latest-section,.topic-section {
    padding-block:56px
}
.section-heading h2 {
    font-size:34px
}
.section-heading {
    align-items:start;
    gap:12px
}
.section-heading>a,.subtle {
    font-size:10px
}
.article-grid {
    grid-template-columns:1fr;
    gap:14px
}
.card-media {
    height:210px
}
.card-copy {
    padding:18px
}
.card-copy h3 {
    font-size:23px
}
.popular-section {
    padding:52px 0
}
.popular-list>a {
    grid-template-columns:42px 1fr 20px;
    font-size:17px
}
.topic-grid {
    grid-template-columns:1fr 1fr;
    gap:8px
}
.topic-card {
    min-height:135px;
    padding:13px
}
.topic-card strong {
    font-size:19px
}
.content-layout {
    gap:22px
}
.inner-page {
    padding-top:26px;
    padding-bottom:60px
}
.breadcrumbs {
    margin-bottom:24px
}
.main-column h1,.editorial-page h1 {
    font-size:42px
}
.page-columns {
    grid-template-columns:1fr;
    gap:18px
}
.editorial-page .page-lead {
    font-size:21px;
    margin:20px 0 36px
}
.method-list li {
    grid-template-columns:1fr;
    gap:8px
}
.footer-inner {
    display:grid
}
.cookie-banner {
    left:9px;
    right:9px;
    bottom:9px;
    display:block;
    padding:13px
}
.cookie-banner p {
    font-size:11px
}
.cookie-actions {
    margin-top:10px
}
.cookie-actions button {
    flex:1
}
.error-card {
    padding:27px
}
.error-card h1 {
    font-size:36px
}

}

