/* ByGhost research publication */
.pub-page { margin: 0; background: #0a0e18; color: #e5e7eb; font: 16px/1.7 "Segoe UI", system-ui, sans-serif; }
.pub-page *, .pub-home *, .pub-project-card * { box-sizing: border-box; }
.pub-page a { color: #67e8f9; text-decoration: none; }
.pub-page a:hover { text-decoration: underline; }
.pub-page a:focus-visible, .pub-page summary:focus-visible, .pub-button:focus-visible, .pub-inline-links a:focus-visible { outline: 2px solid #67e8f9; outline-offset: 5px; }
.pub-page h1, .pub-page h2, .pub-page h3, .pub-page p { margin: 0; }
.pub-nav, .pub-shell, .pub-footer { width: min(1180px, calc(100% - 64px)); margin: 0 auto; }
.pub-nav { min-height: 94px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #24303c; }
.pub-brand { font-size: 24px; font-weight: 750; color: #f4f8fa !important; letter-spacing: -.8px; }
.pub-brand span { display: block; color: #8e9fae; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; }
.pub-nav nav { display: flex; gap: 28px; font-size: 14px; }
.pub-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 60px; color: #8192a2; font-size: 12px; }
.pub-eyebrow { display: block; color: #67e8f9; font: 600 11px/1.5 Consolas, monospace; letter-spacing: 2px; margin-bottom: 24px !important; }
.pub-hero { display: grid; grid-template-columns: 1.5fr 1fr; gap: 64px; align-items: center; padding-bottom: 60px; }
.pub-page h1 { font-size: clamp(40px, 4.7vw, 62px); line-height: 1.12; letter-spacing: -2.6px; font-weight: 650; }
.pub-page h1 em { color: #67e8f9; font-style: normal; }
.pub-lead { max-width: 620px; font-size: 21px; line-height: 1.5; margin: 30px 0 16px !important; }
.pub-intro { color: #9daebe; max-width: 630px; font-size: 16px; }
.pub-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 28px 0 22px; }
.pub-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 48px; padding: 12px 22px; border: 1px solid #67e8f9; border-radius: 6px; background: #67e8f9; color: #07111d !important; font: 650 14px/1.5 "Segoe UI", system-ui, sans-serif; text-decoration: none !important; transition: background .18s; }
.pub-button:hover { background: #a5f3fc; }
.pub-secondary { background: transparent; color: #e5e7eb !important; border-color: #405163; }
.pub-secondary:hover { background: #1a2736; }
.pub-small { display: block; color: #91a4b8; font: 12px/1.8 "Segoe UI", system-ui, sans-serif; }
.pub-diagram { background: linear-gradient(145deg, #132334, #0d1420); border: 1px solid #2d4356; border-radius: 12px; padding: 26px; box-shadow: 0 20px 70px #0003; }
.pub-diagram-top { display: flex; justify-content: space-between; align-items: center; color: #a6bed0; font: 10px Consolas, monospace; letter-spacing: 2px; }
.pub-dot { width: 7px; height: 7px; border-radius: 50%; background: #67e8f9; }
.pub-wave { margin: 22px 0; color: #67e8f9; font-size: 26px; letter-spacing: 2px; text-align: center; border-bottom: 1px solid #24465a; }
.pub-flow { border: 1px solid #365268; padding: 18px 12px; text-align: center; font-size: 12px; letter-spacing: 1.6px; }
.pub-flow span { display: block; margin-top: 5px; color: #9baebd; font-size: 11px; letter-spacing: 0; }
.pub-arrow { text-align: center; color: #67e8f9; line-height: 32px; }
.pub-context { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.pub-context span { border: 1px solid #365268; padding: 12px 3px; text-align: center; font-size: 12px; }
.pub-result { background: #16313c; color: #b1f5fb; border-color: #397885; }
.pub-diagram p { font-size: 11px; color: #8dabbc; margin-top: 20px; text-align: center; }
.pub-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #283746; border-bottom: 1px solid #283746; padding: 26px 0; gap: 20px; }
.pub-facts strong { display: block; font-size: 24px; font-weight: 550; }
.pub-facts span { color: #93a4b5; font-size: 12px; }
.pub-section { padding: 72px 0; border-bottom: 1px solid #283746; }
.pub-page h2 { font-size: clamp(28px, 3.3vw, 40px); line-height: 1.2; font-weight: 550; letter-spacing: -1px; margin-bottom: 32px; }
.pub-topics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.pub-topics article > span { font: 12px Consolas, monospace; color: #67e8f9; }
.pub-page h3 { font-size: 19px; line-height: 1.4; font-weight: 600; margin: 14px 0; }
.pub-topics p, .pub-editions p { font-size: 15px; color: #a6b5c4; }
.pub-note { margin-top: 30px !important; padding-left: 18px; border-left: 2px solid #3b6e80; color: #9baebd; font-size: 14px; }
.pub-editions { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pub-editions article { background: #111b29; border: 1px solid #2b3f51; border-radius: 8px; padding: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.pub-editions h3 { flex: 1; }
.pub-editions .pub-button { margin-top: 26px; }
.pub-page code { font: 12px/1.7 Consolas, monospace; overflow-wrap: anywhere; }
.pub-inline-links { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 22px; font: 14px/1.7 "Segoe UI", system-ui, sans-serif; }
.pub-inline-links a { color: #67e8f9; text-decoration: underline; text-underline-offset: 4px; }
.pub-integrity { margin-top: 32px; padding: 18px 0; border-top: 1px solid #283746; font-size: 14px; }
.pub-integrity p { margin: 15px 0 5px; color: #a6b5c4; }
.pub-page summary { cursor: pointer; color: #e5e7eb; padding: 5px 0; }
.pub-page blockquote { margin: 0; padding: 24px; background: #111b29; border-left: 2px solid #67e8f9; font-size: 16px; overflow-wrap: anywhere; }
.pub-faq details { border-top: 1px solid #283746; padding: 18px 0; }
.pub-faq p { padding: 14px 0 0; color: #a6b5c4; font-size: 15px; max-width: 850px; }
.pub-footer { padding: 36px 0; display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.pub-footer p { font-size: 12px; color: #91a4b8; margin-top: 6px; }
.pub-footer .pub-inline-links { margin: 0; }
.pub-skip { position: absolute; left: 20px; top: -100px; background: #0a0e18; padding: 12px; z-index: 100; }
.pub-skip:focus { top: 10px; }
.pub-home { padding: 64px 10%; min-height: auto; }
.pub-home-inner { border: 1px solid #2d4356; border-radius: 12px; padding: 38px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 36px; align-items: center; background: linear-gradient(120deg, #112538, #0d1420); }
.pub-home h2 { color: #e5e7eb; font: 650 34px/1.2 "Segoe UI", system-ui, sans-serif; margin-bottom: 18px; }
.pub-home h2 span { color: #67e8f9; }
.pub-home p { font: 15px/1.7 "Segoe UI", system-ui, sans-serif; color: #acbdcc; max-width: 620px; }
.pub-home, #research-publications { scroll-margin-top: 110px; }
#research-publications .project-grid { grid-template-columns: minmax(0, 520px); justify-content: center; padding: 1.5rem 0; }
.pub-project-card { cursor: default; width: 100%; min-width: 0; }
.pub-project-card:hover { transform: none; }
.pub-project-card .card-top { gap: 16px; align-items: center; flex-wrap: wrap; }
.pub-project-card .pub-actions { margin: 0; }
.pub-project-card .pub-inline-links { margin: 0; padding-top: 14px; border-top: 1px solid #283746; gap: 8px 20px; }
.pub-project-card .pub-inline-links a { display: inline-flex; align-items: center; min-height: 44px; }
.pub-project-card .terminal-title { overflow-wrap: anywhere; }
@media (max-width: 850px) {
    .pub-hero { grid-template-columns: 1fr; gap: 36px; }
    .pub-diagram { max-width: 500px; width: 100%; }
    .pub-topics { grid-template-columns: 1fr; gap: 28px; }
    .pub-home-inner { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 560px) {
    .pub-nav, .pub-shell, .pub-footer { width: calc(100% - 36px); }
    .pub-nav { min-height: 78px; }
    .pub-nav nav { gap: 16px; font-size: 12px; }
    .pub-breadcrumb { margin: 22px 0 42px; }
    .pub-page h1 { font-size: 40px; letter-spacing: -1.6px; }
    .pub-lead { font-size: 19px; }
    .pub-facts { grid-template-columns: 1fr 1fr; gap: 22px; }
    .pub-editions { grid-template-columns: 1fr; }
    .pub-editions article { padding: 24px; }
    .pub-section { padding: 48px 0; }
    .pub-footer { flex-direction: column; align-items: flex-start; }
    .pub-home { padding: 40px 5%; }
    .pub-home-inner { padding: 24px; }
    .pub-home h2 { font-size: 29px; }
    #research-publications .project-grid { grid-template-columns: minmax(0, 1fr); }
    .pub-project-card .pub-button { padding: 10px 16px; }
}
@media (prefers-reduced-motion: reduce) { .pub-button { transition: none; } }
