:root {
    color-scheme: dark;
    --site-bg: #080808; --site-bg-soft: #0d0d0d; --site-panel: rgba(17,17,17,.88);
    --site-panel-solid: #121212; --site-panel-alt: #171717; --site-text: #e9e6df;
    --site-text-strong: #f6f3ed; --site-muted: #a39f98; --site-faint: #74716c;
    --site-line: rgba(255,255,255,.13); --site-line-strong: rgba(255,255,255,.24);
    --site-steel: #686d71; --site-accent: #b3131b; --site-accent-bright: #df202a;
    --site-accent-dark: #730b10; --site-warm: #c3aa82; --content-width: 1240px;
    --content-narrow: 780px; --font-display: "Arial Narrow","Roboto Condensed",Impact,sans-serif;
    --font-body: Inter,"Segoe UI",Arial,sans-serif; --font-mono: "IBM Plex Mono",Consolas,monospace;
}
html { scroll-behavior:smooth; }
body { color:var(--site-text); font-family:var(--font-body); line-height:1.65; }
button,input,select,textarea { font:inherit; }
a { text-underline-offset:.25em; }
.site-skip { position:fixed;z-index:10001;top:.5rem;left:.5rem;padding:.7rem 1rem;transform:translateY(-160%);background:var(--site-text-strong);color:var(--site-bg); }
.site-skip:focus { transform:none; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--site-accent-bright);outline-offset:3px; }
.editorial-kicker,.section-kicker,.section-label,.eyebrow,.unit-code { color:var(--site-warm);font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase; }
.editorial-title,.glitch-title,.sentinel-title,.card>h2,.capabilities-heading h2,.ops-header h1,.gov-hero h1 { color:var(--site-text-strong);font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;line-height:.88;text-transform:uppercase; }
.glitch-title,.sentinel-title,.card>h2,.capabilities-heading h2,.ops-header h1,.gov-hero h1 { margin-right:auto;margin-left:auto;text-align:center; }
.card>.editorial-kicker,#sentinel-dashboard>.editorial-kicker,.gov-hero>.section-kicker { display:block;text-align:center; }

/* Homepage content presentation only; protected intro/background selectors are intentionally absent. */
.hero { width:min(var(--content-width),calc(100% - 32px));min-height:min(78vh,820px);margin:0 auto;padding:clamp(7rem,16vh,11rem) 0 5rem;text-align:center; }
.hero .brand-wordmark { width:min(920px,100%);margin:0 auto;padding:0;text-align:center; }
.hero .brand-wordmark__primary,.hero .brand-wordmark__secondary { background:none;color:var(--site-text-strong);filter:none;font-family:var(--font-display);text-shadow:none;-webkit-text-fill-color:currentColor; }
.hero .brand-wordmark__primary { font-size:clamp(4.8rem,13vw,10.5rem);letter-spacing:-.055em;line-height:.74; }
.hero .brand-wordmark__divider { width:clamp(90px,18vw,230px);height:5px;margin:1.8rem auto 1.2rem;background:var(--site-accent);box-shadow:none; }
.hero .brand-wordmark__secondary { padding:0;font-size:clamp(2.5rem,7vw,6rem);font-weight:800;letter-spacing:-.03em;line-height:.8; }
.hero-subtitle { margin-top:2.5rem;color:var(--site-warm);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.17em; }
.hero-statement { max-width:650px;margin:1rem auto;color:var(--site-text);font-size:clamp(1.05rem,2vw,1.35rem); }
.hero-status { color:var(--site-muted);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase; }
.terminal { margin-top:2rem;color:var(--site-faint);font-family:var(--font-mono);font-size:.78rem; }
nav { width:min(var(--content-width),calc(100% - 32px));gap:3px;padding:.3rem;border:1px solid var(--site-line);background:rgba(8,8,8,.9);box-shadow:0 12px 35px rgba(0,0,0,.28);backdrop-filter:blur(14px); }
nav::after { display:none; }
nav a { position:relative;min-width:0;min-height:44px;padding:.65rem .55rem .65rem 1.2rem;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--site-muted);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.09em; }
nav a::before { top:auto;right:.7rem;bottom:.35rem;left:.7rem;width:auto;height:2px;border-radius:0;background:var(--site-accent);filter:none;opacity:0;transform:scaleX(0);transform-origin:left; }
nav a::after { content:"";position:absolute;top:50%;left:.65rem;width:6px;height:6px;border-radius:50%;background:#4b4b48;box-shadow:none;transform:translateY(-50%);transition:background .2s ease,box-shadow .2s ease,transform .2s ease; }
nav a:hover,nav a:focus-visible,nav a.is-current { border:0;background:rgba(255,255,255,.035);box-shadow:none;color:var(--site-text-strong);text-shadow:none;transform:none; }
nav a:hover::before,nav a:focus-visible::before,nav a.is-current::before { opacity:1;transform:scaleX(1); }
nav a:hover::after,nav a:focus-visible::after,nav a.is-current::after { background:var(--site-accent-bright);box-shadow:0 0 5px var(--site-accent-bright),0 0 14px rgba(223,32,42,.78),0 0 28px rgba(179,19,27,.42);transform:translateY(-50%) scale(1.15); }
nav a.is-current { background:linear-gradient(90deg,rgba(179,19,27,.16),rgba(179,19,27,.025)); }
.card,#sentinel-dashboard { position:relative;width:min(var(--content-width),calc(100% - 32px));margin:clamp(5rem,11vw,9rem) auto;padding:clamp(1.5rem,4vw,3.5rem) 0;border:0;border-top:1px solid var(--site-line);border-radius:0;background:transparent;box-shadow:none; }
.card::before,#sentinel-dashboard::before { top:-1px;left:0;width:72px;height:3px;margin:0;background:var(--site-accent); }
.card>h2,.glitch-title,.sentinel-title,.capabilities-heading h2 { max-width:820px;margin:.35rem auto 2rem;background:none;text-shadow:none;-webkit-text-fill-color:currentColor;font-size:clamp(2.8rem,7vw,6rem); }
.intel-subtitle { display:block;width:100%;color:var(--site-warm);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-align:center; }
#about>.intel-subtitle,
#news-center>.intel-subtitle {
    position:relative;
    left:50%;
    display:block;
    width:fit-content;
    max-width:100%;
    margin-right:0!important;
    margin-left:0!important;
    padding-right:0!important;
    padding-left:0!important;
    text-align:center!important;
    text-indent:0!important;
    transform:translateX(-50%)!important;
}
.intel-panel { max-width:960px;padding:clamp(1.25rem,3vw,2.25rem);border:1px solid var(--site-line);border-left:2px solid var(--site-accent);background:rgba(8,8,8,.64); }
.intel-panel p { max-width:var(--content-narrow); }
.intel-item { border:0;border-top:1px solid var(--site-line);border-radius:0;background:transparent; }
.grid { display:block; }
.project { display:grid;grid-template-columns:130px minmax(220px,.9fr) 1.2fr auto;gap:clamp(1rem,3vw,3rem);min-height:0;padding:2rem .25rem;border:0;border-top:1px solid var(--site-line);border-radius:0;background:transparent; }
.project:last-child { border-bottom:1px solid var(--site-line); }
.project h3,.project p,.project-action { margin:0;padding:0; }
.project h3 { font-family:var(--font-display);font-size:1.7rem;line-height:1;text-transform:uppercase; }
.project:hover,.project:focus-visible { border-color:var(--site-line-strong);background:rgba(179,19,27,.045);box-shadow:none;transform:translateX(4px); }
.project-index,.project-action { color:var(--site-warm);font-family:var(--font-mono); }
.sentinel-card,.sentinel-panel,.sentinel-launch-panel { border-color:var(--site-line);border-radius:0;background:rgba(8,8,8,.62);box-shadow:none; }
.sentinel-card { border-top:2px solid var(--site-accent); }
.sentinel-card div { color:var(--site-text-strong);font-family:var(--font-display); }
.sentinel-status { border:1px solid var(--site-line);border-radius:0;background:var(--site-panel); }
.sentinel-launch-panel { border-left:2px solid var(--site-accent); }
.sentinel-launch-kicker { color:var(--site-warm); }
.sentinel-launch-panel strong { color:var(--site-text-strong); }
.sentinel-map-launch { border:1px solid var(--site-accent);border-radius:0;background:var(--site-accent);color:white; }
.sentinel-map-launch:hover,.sentinel-map-launch:focus-visible { background:var(--site-accent-bright);box-shadow:none; }

.ops-header { border:0;border-top:3px solid var(--site-accent);border-bottom:1px solid var(--site-line);background:transparent;box-shadow:none; }
.ops-header>div:first-child { flex:1;text-align:center; }
.ops-header .eyebrow { text-align:center; }
.ops-header h1 { font-size:clamp(3.2rem,8vw,7rem);text-shadow:none; }
.back-link,.gov-back {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.7rem;
    min-height:44px;
    margin-bottom:1.25rem;
    padding:.7rem 1rem .7rem 2rem;
    border:1px solid var(--site-line-medium);
    border-radius:var(--radius-small,4px);
    background:linear-gradient(90deg,rgba(179,19,27,.14),rgba(255,255,255,.025));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.015),0 10px 28px rgba(0,0,0,.24);
    color:var(--site-text);
    font-family:var(--font-mono);
    font-size:.68rem;
    font-weight:600;
    letter-spacing:.08em;
    line-height:1;
    text-decoration:none;
    text-transform:uppercase;
    transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);
}
.back-link::before,.gov-back::before {
    content:"";
    position:absolute;
    left:.8rem;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--site-red-bright);
    box-shadow:0 0 5px var(--site-red-bright),0 0 15px rgba(221,32,41,.62);
}
.back-link:hover,.back-link:focus-visible,.gov-back:hover,.gov-back:focus-visible {
    border-color:rgba(221,32,41,.72);
    background:linear-gradient(90deg,rgba(179,19,27,.28),rgba(179,19,27,.07));
    box-shadow:0 12px 32px rgba(0,0,0,.3),0 0 24px rgba(179,19,27,.16);
    color:var(--site-text-strong);
    transform:translateY(-2px);
}
.back-link:hover::before,.back-link:focus-visible::before,.gov-back:hover::before,.gov-back:focus-visible::before {
    box-shadow:0 0 6px var(--site-red-bright),0 0 20px rgba(221,32,41,.9);
}
.ops-status,.passive-badge,.inspector-panel,.control-panel,.map-stage,.event-panel { border-color:var(--site-line);border-radius:0;background:var(--site-panel);box-shadow:none; }
.map-stage { border-top:2px solid var(--site-accent); }
.metric-strip article { border-radius:0; }
.ops-footer { border-color:var(--site-line); }
.governance-page { font-family:var(--font-body); }
.gov-hero { border-top-color:var(--site-accent);text-align:center; }
.gov-hero h1 { max-width:880px;font-size:clamp(3.5rem,9vw,7.5rem); }
.gov-hero>p:not(.section-kicker) { margin-right:auto;margin-left:auto; }
.gov-principles { justify-content:center; }
.gov-grid { gap:1px;background:var(--site-line); }
.source-card { border:0;border-radius:0;background:var(--site-panel-solid); }
.source-card:hover { background:var(--site-panel-alt); }
.gov-detail { border:0;border-top:3px solid var(--site-accent);border-radius:0;background:var(--site-panel-solid); }
.gov-search-row input { min-height:48px;border-radius:0; }
.gov-filters button { min-height:40px; }
@media(max-width:850px) {
    .hero { min-height:70vh; }
    nav { overflow-x:visible;justify-content:center;scrollbar-width:thin; }
    nav a { flex:0 0 auto; }
    .project { grid-template-columns:90px 1fr; }
    .project p,.project-action { grid-column:2; }
}
@media(max-width:560px) {
    .hero { width:min(100% - 24px,var(--content-width));padding-top:6rem; }
    .hero .brand-wordmark__primary { font-size:clamp(3.25rem,17vw,5rem); }
    .hero .brand-wordmark__secondary { padding:0;font-size:clamp(2rem,11vw,3.4rem); }
    .card,#sentinel-dashboard { width:calc(100% - 24px); }
    .project { display:block;padding:1.6rem .2rem; }
    .project h3 { margin:1rem 0; }
    .project-action { display:block;margin-top:1.25rem; }
}
@media(prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
}

/* ============================================================
   PROMPT-SUPPLIED CINEMATIC EDITORIAL COMPATIBILITY LAYER
   Mapped to this repository's existing public class names.
   No intro, background, WebGL, map, or JavaScript hook is renamed.
   ============================================================ */
:root {
    --site-bg-raised:#101010;
    --site-panel-strong:rgba(18,18,18,.94);
    --site-text-soft:#c7c3bc;
    --site-red:var(--site-accent);
    --site-red-bright:var(--site-accent-bright);
    --site-red-dark:var(--site-accent-dark);
    --site-red-soft:rgba(175,17,25,.16);
    --site-line-medium:rgba(255,255,255,.17);
    --content-wide:1440px;
    --page-padding:clamp(1.25rem,4vw,4rem);
    --section-space:clamp(5rem,10vw,9rem);
    --radius-small:4px;
    --radius-medium:8px;
    --shadow-small:0 12px 35px rgba(0,0,0,.24);
    --shadow-medium:0 24px 70px rgba(0,0,0,.38);
    --shadow-red:0 0 42px rgba(175,17,25,.12);
    --transition-fast:160ms ease;
    --transition-normal:260ms ease;
}

html {
    min-width:320px;
    scroll-padding-top:6rem;
    background:var(--site-bg);
}

::selection { color:#fff;background:var(--site-red); }

* {
    scrollbar-width:thin;
    scrollbar-color:var(--site-red-dark) var(--site-bg-soft);
}
*::-webkit-scrollbar { width:10px;height:10px; }
*::-webkit-scrollbar-track { background:var(--site-bg-soft); }
*::-webkit-scrollbar-thumb { border:3px solid var(--site-bg-soft);border-radius:999px;background:var(--site-red-dark); }
*::-webkit-scrollbar-thumb:hover { background:var(--site-red); }

/* Actual repository shells corresponding to the supplied generic containers. */
.hero,
nav,
.card,
#sentinel-dashboard,
.ops-shell,
.gov-shell {
    width:min(100% - (var(--page-padding) * 2),var(--content-width));
    margin-inline:auto;
}

.ops-shell { width:min(100% - (var(--page-padding) * 2),var(--content-wide)); }
.gov-hero>p:not(.section-kicker),.panel-description,.map-instructions,.inspector-intro {
    max-width:var(--content-narrow);
    margin-inline:auto;
    color:var(--site-text-soft);
    text-align:center;
}

section[id] { scroll-margin-top:7rem; }

/* Center the real page and section heading structures. */
.hero,
.brand-wordmark,
.card>.editorial-kicker,
.card>.glitch-title,
.card>h2,
#sentinel-dashboard>.editorial-kicker,
#sentinel-dashboard>.sentinel-title,
#sentinel-dashboard>.intel-subtitle,
.capabilities-heading,
.gov-hero,
.ops-header>div:first-child,
.map-stage-heading,
.panel-heading {
    text-align:center;
}

.glitch-title,
.sentinel-title,
.card>h2,
.capabilities-heading h2,
.gov-hero h1,
.ops-header h1,
.map-stage-heading h2,
.panel-heading h2 {
    text-wrap:balance;
}

.intel-subtitle,
.panel-description,
.map-instructions {
    margin-right:auto;
    margin-left:auto;
}

.capabilities-heading {
    grid-template-columns:1fr;
    justify-items:center;
    max-width:960px;
    margin-inline:auto;
}
.capabilities-heading p { max-width:760px;text-align:center; }

/* Center controls and action groups without changing their bindings. */
.gov-search-row,
.gov-filters,
.gov-actions,
.sentinel-launch-panel,
.control-actions,
.resource-actions,
.url-entry {
    justify-content:center;
}
.gov-search-row { align-items:center;flex-direction:column;text-align:center; }
.gov-search-row>div { margin-inline:auto; }
.gov-search-row label,#source-count { text-align:center; }
.gov-filters { margin-inline:auto; }
.gov-detail__head { align-items:center;text-align:center; }
.gov-detail__head>div { flex:1; }
.gov-actions { align-items:center; }

/* Real card/feed names corresponding to the prompt's card systems. */
.project,
.source-card,
.expertise-card,
.capability-unit,
.tool-tile,
.sentinel-card,
.metric-strip article,
.intel-item,
.inspector-panel {
    transition:transform var(--transition-normal),border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal);
}
.source-card,
.expertise-card,
.tool-tile,
.sentinel-card,
.metric-strip article,
.inspector-panel {
    border-color:var(--site-line);
    background:var(--site-panel);
}
.source-card:hover,
.expertise-card:hover,
.tool-tile:hover {
    border-color:var(--site-line-medium);
    box-shadow:var(--shadow-medium),var(--shadow-red);
    transform:translateY(-4px);
}

.project,
.source-card,
.expertise-card,
.tool-tile,
.sentinel-card,
.metric-strip article {
    text-align:center;
}
.project {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.9rem;
    width:100%;
    padding:2.25rem clamp(1rem,4vw,3rem);
    text-align:center;
}
.project h3 { max-width:680px;margin:0 auto; }
.project p,.source-card p { max-width:760px;margin-inline:auto; }
.project:hover,.project:focus-visible { transform:translateY(-4px); }
.project-action,.source-card button,.gov-action,.project-link { justify-self:center;align-self:center; }
.source-card__top { justify-content:center;flex-wrap:wrap; }
.source-card__authority { margin-top:auto; }

.expertise-grid,.tool-grid,.sentinel-grid,.metric-strip,.gov-grid {
    margin-right:auto;
    margin-left:auto;
}
.expertise-card h3,.tool-tile,.sentinel-card h3,.sentinel-card div { text-align:center; }
.tool-tile { justify-content:center; }
.capability-units { justify-items:center;width:100%; }
.capability-unit {
    grid-template-columns:1fr;
    justify-items:center;
    width:100%;
    padding:2rem clamp(1rem,4vw,3rem);
    text-align:center;
}
.capability-unit>div,.capability-unit ul { width:100%;text-align:center; }
.capability-unit ul { justify-content:center; }
.capability-unit.unit-primary { padding-left:clamp(1rem,4vw,3rem);border-left:0;border-top:2px solid var(--site-warm); }

.expertise-block,.toolset-block { width:100%;text-align:center; }
.expertise-grid,.tool-grid { justify-content:center; }
.expertise-card { display:flex;flex-direction:column;align-items:center;justify-content:center; }
.expertise-meter { width:100%; }

/* Intelligence feed hierarchy and centered loading/empty states. */
.intel-panel { margin-right:auto;margin-left:auto;text-align:center; }
.intel-panel>h2,.intel-panel>.panel-description { text-align:center; }
.intel-feed,.intel-item { width:100%;margin-inline:auto; }
.intel-item { text-align:center; }
.intel-item h3,.intel-item p { margin-right:auto;margin-left:auto; }
.sentinel-status,#source-status,.empty-history,.map-loading {
    text-align:center;
}

/* Sentinel and Inspector page framing. Maps themselves are untouched. */
.ops-header { justify-content:center; }
.ops-header>div:first-child { max-width:980px; }
.ops-header .back-link { justify-content:center; }
.ops-status,.passive-badge { margin-inline:auto; }
.metric-strip { justify-content:center; }
.map-stage-heading { align-items:center;justify-content:center; }
.map-stage-heading>div { flex:1; }
.map-stage-heading>p { text-align:center; }
.panel-heading { align-items:center;justify-content:center; }
.panel-heading>div { flex:1; }
.inspector-layout,.operations-grid { margin-inline:auto; }
.inspector-primary,.inspector-secondary { min-width:0; }
.submission-panel form { margin-inline:auto; }
.submission-panel label,.field-help,.scope-notice { text-align:center; }
.scope-notice ul { display:inline-block;text-align:left; }
.result-heading { align-items:center;text-align:center; }
.result-heading>div { flex:1; }
.assessment-grid article,.result-columns article,.future-grid article { text-align:center; }
.technical-list { margin-inline:auto; }

/* Homepage Sentinel modules and viewer need centered geometry, not only centered type. */
.sentinel-grid { justify-items:stretch; }
.sentinel-card {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}
.sentinel-panel { text-align:center; }
.sentinel-panel>h2,.sentinel-panel>.map-instructions { text-align:center; }
.sentinel-launch-panel {
    flex-direction:column;
    align-items:center;
    text-align:center;
}
.sentinel-launch-panel>div { width:100%; }
.sentinel-launch-panel p { margin-right:auto;margin-left:auto; }
#viewer-content { width:100%;margin-inline:auto;text-align:center; }
#viewer-content>* { margin-right:auto;margin-left:auto; }
#resume,#contact { text-align:center; }
#resume .project-link { display:inline-flex; }

/* Resource detail and catalog content. */
.gov-detail { margin-right:auto;margin-left:auto; }
.gov-detail h2,.gov-detail h3,.gov-detail p { text-align:center; }
.gov-detail__grid { text-align:center; }
.gov-detail ul { display:inline-block;text-align:left; }
.gov-footer { text-align:center; }

@media(max-width:1024px) {
    .gov-detail__grid,.result-columns { grid-template-columns:1fr; }
    .project { display:flex; }
}

@media(max-width:820px) {
    :root { --section-space:clamp(4rem,14vw,6rem); }
    .hero,nav,.card,#sentinel-dashboard,.ops-shell,.gov-shell { width:calc(100% - (var(--page-padding) * 2)); }
    .hero { min-height:760px; }
    .project { gap:.85rem; }
    .sentinel-launch-panel,.url-entry { align-items:stretch;flex-direction:column; }
    .gov-detail__head { flex-direction:column; }
}

@media(max-width:560px) {
    :root { --page-padding:1rem; }
    .hero { min-height:700px;padding-top:7rem;padding-bottom:4rem; }
    .gov-actions,.control-actions { align-items:stretch;flex-direction:column; }
    .gov-actions>* { width:100%;text-align:center; }
    .expertise-grid,.tool-grid,.gov-grid { grid-template-columns:1fr; }
}

@media(prefers-contrast:more) {
    :root {
        --site-text:#fff;
        --site-text-strong:#fff;
        --site-text-soft:#efefef;
        --site-muted:#c7c7c7;
        --site-line:rgba(255,255,255,.32);
        --site-line-medium:rgba(255,255,255,.48);
        --site-line-strong:rgba(255,255,255,.7);
    }
}

@media print {
    nav,#ufo-top,.ops-status,.passive-badge,.control-panel { display:none!important; }
    body { color:#111;background:#fff; }
    .hero,.card,#sentinel-dashboard,.ops-shell,.gov-shell { width:100%;max-width:none; }
    .card,.source-card,.project,.inspector-panel { color:#111;background:#fff;border:1px solid #aaa;box-shadow:none; }
    h1,h2,h3,h4,p,li,td,th { color:#111!important; }
}

/* ============================================================
   MOBILE FUNCTIONAL RECOVERY
   Keep late visual overrides from changing map geometry or
   covering the resume download target.
   ============================================================ */
.card::before,
#sentinel-dashboard::before {
    pointer-events:none;
}

#resume .project-link {
    position:relative;
    z-index:4;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:min(100%,240px);
    min-height:48px;
    margin:1rem auto 0;
    padding:.85rem 1.25rem;
    border:1px solid var(--site-red);
    border-radius:var(--radius-small);
    background:var(--site-red);
    color:#fff;
    pointer-events:auto;
    touch-action:manipulation;
}

#resume .project-link:hover,
#resume .project-link:focus-visible,
#resume .project-link:active {
    border-color:var(--site-red-bright);
    background:var(--site-red-bright);
    color:#fff;
}

/* Resume stays inside the site until the visitor explicitly downloads it. */
.resume-viewer {
    position:fixed;
    z-index:10002;
    inset:0;
    display:none;
    overflow:auto;
    padding:clamp(1rem,3vw,2.5rem);
    background:rgba(0,0,0,.88);
}

.resume-viewer:target { display:block; }

.resume-viewer__panel {
    width:min(1180px,100%);
    min-height:calc(100vh - clamp(2rem,6vw,5rem));
    margin:0 auto;
    padding:clamp(1rem,2.5vw,2rem);
    border:1px solid var(--site-line-strong);
    border-top:3px solid var(--site-accent);
    background:var(--site-bg);
    box-shadow:0 24px 70px rgba(0,0,0,.55);
}

.resume-viewer__header,.resume-viewer__footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}

.resume-viewer__header { margin-bottom:1rem; }
.resume-viewer__header h2 { margin:.25rem 0 0;color:var(--site-text-strong);font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);line-height:1;text-transform:uppercase; }
.resume-viewer__header .editorial-kicker { margin:0; }

.resume-viewer__document {
    display:block;
    width:100%;
    height:clamp(580px,78vh,980px);
    border:1px solid var(--site-line-strong);
    background:#fff;
}

.resume-viewer__footer { margin-top:1rem; }
.resume-viewer__back,.resume-viewer__download {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:.7rem 1rem;
    border:1px solid var(--site-line-strong);
    color:var(--site-text-strong);
    font-family:var(--font-mono);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.08em;
    text-decoration:none;
    text-transform:uppercase;
}

.resume-viewer__download { border-color:var(--site-accent);background:var(--site-accent);color:#fff; }
.resume-viewer__back:hover,.resume-viewer__back:focus-visible { border-color:var(--site-accent-bright);color:#fff; }
.resume-viewer__download:hover,.resume-viewer__download:focus-visible { background:var(--site-accent-bright);color:#fff; }

@media(max-width:560px) {
    .resume-viewer { padding:.5rem; }
    .resume-viewer__header,.resume-viewer__footer { align-items:stretch;flex-direction:column; }
    .resume-viewer__header .resume-viewer__back { width:100%; }
    .resume-viewer__document { height:70vh; }
    .resume-viewer__footer > * { width:100%; }
}

@media(max-width:820px) {
    body:not(.intro-active) { overflow-x:hidden; }

    .ops-shell {
        width:100%;
        max-width:none;
        padding:8px;
    }

    .operations-grid {
        display:flex;
        min-width:0;
        min-height:0;
        flex-direction:column;
    }

    .control-panel { order:1; }
    .map-stage {
        order:2;
        display:grid;
        min-width:0;
        grid-template-rows:auto auto;
    }
    .event-panel { order:3; }

    .map-frame {
        position:relative;
        width:100%;
        height:clamp(520px,68svh,720px);
        min-width:0;
        min-height:520px;
        overflow:hidden;
        isolation:isolate;
    }

    #sentinel-map {
        position:absolute;
        z-index:1;
        inset:0;
        width:100%;
        height:100%;
        min-height:0;
        pointer-events:auto;
    }

    #sentinel-map .maplibregl-map,
    #sentinel-map .maplibregl-canvas-container,
    #sentinel-map .maplibregl-canvas,
    #sentinel-map .maplibregl-control-container,
    #sentinel-map .leaflet-pane,
    #sentinel-map .leaflet-control-container {
        width:100%;
        height:100%;
        pointer-events:auto;
    }

    .scanline,
    .fullscreen-map-help {
        pointer-events:none;
    }

    .map-loading.is-hidden {
        visibility:hidden;
        pointer-events:none;
    }

    #resume {
        position:relative;
        isolation:isolate;
        overflow:visible;
    }

    #resume .project-link {
        width:min(100%,320px);
    }
}

@media(max-width:520px) {
    .map-stage {
        grid-template-rows:auto auto;
    }

    .map-frame {
        height:clamp(500px,62svh,650px);
        min-height:500px;
    }
}
