/* Engineering inherits the site shell, fonts and spacing tokens. */
:is(.engineering-index, .eng-note) {
  --eng-bg: #0a0d12; --eng-panel: #14181f; --eng-text: #e5e7eb;
  --eng-muted: #b8c1cd; --eng-line: #353d48; --eng-accent: #89c9de;
  background: var(--eng-bg); color: var(--eng-text);
}
:is(.engineering-index, .eng-note) :is(.eng-hero, .eng-section, .eng-footer) > .container { padding-block: 0 !important; }
.eng-hero { padding-block: var(--spazio-hero-su) var(--spazio-hero-giu); border-bottom: 1px solid var(--eng-line); background: linear-gradient(130deg, #0a0d12 55%, #16232d); }
.eng-hero .container { max-width: 1160px; }
.eng-kicker, .eng-note-meta, .eng-note-stack, .eng-article-meta, .eng-list-heading > span, .eng-editorial, .eng-toc > span, .eng-code-figure figcaption { font-family: var(--wow-mono, monospace); }
.eng-kicker { font-size: .7rem; letter-spacing: .14em; color: var(--eng-accent); margin: 0 0 1rem; }
.eng-hero h1 { color: #fff; font-family: var(--wow-serif); font-size: clamp(2.5rem, 5.4vw, 4.3rem); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 1.25rem; max-width: 20ch; }
.eng-hero h1 em { color: var(--eng-accent); font-style: italic; }
.eng-lede { max-width: 65ch; font-size: 1.05rem; line-height: 1.65; color: var(--eng-text); margin-bottom: 1.25rem; }
.eng-editorial { max-width: 75ch; color: var(--eng-muted); font-size: .72rem; line-height: 1.7; }
.eng-jump, .eng-back { color: var(--eng-accent); display: inline-flex; gap: .75rem; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .25em; }
.eng-jump { margin-top: .75rem; }
.eng-section, .eng-footer { padding-block: var(--spazio-sezione); }
.eng-index-list > .container { max-width: 1160px; }
.eng-list-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; }
.eng-list-heading h2 { color: #fff; font-size: 1.35rem; margin: 0; }
.eng-list-heading > span { font-size: .7rem; color: var(--eng-muted); }
.eng-notes { list-style: none; margin: 0; padding: 0; }
.eng-note-row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 2.5rem; border-top: 1px solid var(--eng-line); padding-block: 1.65rem; }
.eng-note-row:last-child { border-bottom: 1px solid var(--eng-line); }
.eng-note-meta { display: flex; flex-direction: column; gap: .4rem; font-size: .66rem; color: var(--eng-muted); line-height: 1.6; }
.eng-note-number { color: var(--eng-accent); }
.eng-note-body h3 { font-size: clamp(1.2rem, 2.1vw, 1.6rem); line-height: 1.3; margin: 0 0 .65rem; }
.eng-note-body h3 a { color: #fff; text-decoration: none; display: block; padding-right: 2rem; position: relative; }
.eng-arrow { position: absolute; right: 0; top: 0; color: var(--eng-accent); }
.eng-note-body h3 a:hover { color: var(--eng-accent); text-decoration: underline; text-underline-offset: .2em; }
.eng-note-body p { color: var(--eng-muted); line-height: 1.65; margin: 0 0 .65rem; max-width: 65ch; font-size: .9rem; }
.eng-note-stack { color: var(--eng-accent); font-size: .65rem; }
.eng-footer { border-top: 1px solid var(--eng-line); background: var(--eng-panel); }
.eng-footer .container { max-width: 1160px; }
.eng-footer h2 { color: #fff; font-family: var(--wow-serif); font-size: 2rem; line-height: 1.2; max-width: 28ch; }
.eng-footer p:not(.eng-kicker) { color: var(--eng-muted); max-width: 60ch; }
.eng-contact { display: inline-flex; align-items: center; gap: 1rem; min-height: 48px; padding: .6rem 1rem; border: 1px solid var(--eng-accent); color: var(--eng-accent); border-radius: 4px; }
.eng-contact:hover { background: #20313d; color: #fff; }
.eng-article-hero > .container { max-width: 920px; }
.eng-article-hero h1 { font-size: clamp(2rem, 4.2vw, 3.05rem); max-width: 26ch; }
.eng-back { font-size: .72rem; margin-bottom: 1.5rem; }
.eng-article-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: var(--eng-muted); border-top: 1px solid var(--eng-line); padding-top: 1.2rem; margin-top: 1.5rem; font-size: .68rem; }
.eng-section > .eng-prose { max-width: 860px; }
.eng-toc { background: var(--eng-panel); border-left: 2px solid var(--eng-accent); padding: 1.2rem 1.4rem; margin-bottom: 2.5rem; }
.eng-toc > span { color: var(--eng-accent); font-size: .7rem; }
.eng-toc ol { margin: .6rem 0 0; padding-left: 1.2rem; }
.eng-toc a { display: inline-block; padding-block: .25rem; }
.eng-prose :is(p, li) { font-size: .94rem; line-height: 1.8; color: var(--eng-text); }
.eng-prose p { margin-bottom: 1.15rem; }
.eng-prose ul { padding-left: 1.3rem; margin-bottom: 1.4rem; }
.eng-prose li + li { margin-top: .5rem; }
.eng-prose h2 { color: #fff; font-family: var(--wow-serif); font-size: clamp(1.55rem, 2.6vw, 1.95rem); line-height: 1.25; margin: 2.4rem 0 1rem; }
.eng-prose a { color: var(--eng-accent); text-decoration: underline; text-underline-offset: .2em; }
.eng-prose a:hover { color: #c9edf9; }
.eng-article-section { scroll-margin-top: 6rem; }
.eng-code-figure { margin: 1.5rem 0; max-width: 100%; min-width: 0; }
.eng-code-figure figcaption { color: var(--eng-muted); font-size: .66rem; margin-bottom: .5rem; }
.eng-code { background: #14181f; border: 1px solid #465263; border-radius: 6px; padding: 1.1rem; overflow-x: auto; max-width: 100%; margin: 0; color: #e5e7eb; font-size: .72rem; line-height: 1.65; tab-size: 4; }
.eng-code code { font-family: var(--wow-mono, monospace); color: #e5e7eb !important; background: transparent !important; font-size: inherit; white-space: pre; padding: 0; }
.eng-related, .eng-sources { border-top: 1px solid var(--eng-line); margin-top: 2.5rem; }
:is(.engineering-index, .eng-note) :is(a, pre):focus-visible { outline: 3px solid #f8bd87; outline-offset: 5px; }
@media (max-width: 767px) {
  .eng-hero h1 { overflow-wrap: anywhere; hyphens: auto; }
  .eng-note-row { grid-template-columns: minmax(0, 1fr); gap: .8rem; padding-block: 1.4rem; }
  .eng-note-meta { flex-direction: row; flex-wrap: wrap; gap: .35rem .8rem; }
  .eng-note-meta > span:last-child { flex-basis: 100%; }
  .eng-note-body h3 a { overflow-wrap: anywhere; hyphens: auto; }
  .eng-list-heading { flex-wrap: wrap; gap: .4rem; }
  .eng-code { padding: .8rem; font-size: .72rem; }
  .eng-toc { padding: 1rem; }
}
@media print { .eng-back, .eng-footer { display: none; } .eng-code { white-space: pre-wrap; } }
