/* DSE QA layer (2026-10-19): engineered details on the existing light editorial design.
   Palette unchanged: paper #f5f5f7, ink #17181b, navy #101d2e, link #235f99, gold #e5a511.
   Scoped to body[data-dse-qa]. Selectors starting with "html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa]" are expanded by the build to
   html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] so page-specific rules outrank the terminal layer. */
body[data-dse-qa]{--q-ink:#17181b;--q-navy:#101d2e;--q-link:#235f99;--q-gold:#e5a511;--q-gold-line:#d39e1a;--q-line:#dedfe3;--q-paper:#f5f5f7;--q-mono:"Cascadia Mono","SF Mono",Consolas,"Liberation Mono",monospace;--q-grid:rgba(16,29,46,.06);--qx:62%;--qy:38%}

/* ---------- blueprint paper: fine grid + a soft light that follows the pointer (home) ---------- */
body[data-dse-qa] :is(.hero,.connected-section,.closing-cta){background-color:var(--q-paper);background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:28px 28px;background-position:center top}
body[data-dse-qa] .hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(720px 460px at var(--qx) var(--qy),rgba(229,165,17,.16),transparent 62%),radial-gradient(900px 520px at 88% 8%,rgba(35,95,153,.11),transparent 60%)}
body[data-dse-qa] .closing-cta{position:relative;overflow:hidden}
body[data-dse-qa] .closing-cta::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(640px 320px at 78% 60%,rgba(229,165,17,.12),transparent 65%)}
body[data-dse-qa] .closing-grid{position:relative}

/* ---------- header: gold hairline once the page scrolls ---------- */
body[data-dse-qa] :is(.site-header,.dse-ed-site-header){position:sticky;top:0}
body[data-dse-qa] :is(.site-header,.dse-ed-site-header)::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--q-gold) 18%,var(--q-gold) 82%,transparent);opacity:0;transition:opacity .5s;pointer-events:none}
body[data-dse-qa] .site-header.is-scrolled::after,body[data-dse-qa].q-scrolled .dse-ed-site-header::after{opacity:1}
body[data-dse-qa] .brand img{transition:transform .5s cubic-bezier(.2,.7,.1,1),box-shadow .5s;border-radius:8px}
body[data-dse-qa] .brand:hover img{transform:rotate(-4deg) scale(1.06);box-shadow:0 0 0 2px rgba(229,165,17,.45)}

/* ---------- hero: the headline gets the terminal cursor, the art replaces the stock camera ---------- */
body[data-dse-qa][data-q-page="home"] .hero h1>span:last-of-type::after{content:"";display:inline-block;width:.42em;height:.76em;margin-left:.1em;vertical-align:-.06em;background:var(--q-gold);animation:q-blink 1.1s steps(1) infinite}
@keyframes q-blink{50%{opacity:0}}
body[data-dse-qa] .hero-visual :is(.x-orbit,.x-rings){display:none}
body[data-dse-qa] .q-hero-art{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center;padding:18px 10px 62px}
body[data-dse-qa] .q-hero-art svg{width:100%;height:100%;max-height:600px;overflow:hidden;filter:drop-shadow(0 30px 40px rgba(16,29,46,.14))}
body[data-dse-qa] .q-hero-art .q-frame{position:absolute;inset:14px 2px 58px;pointer-events:none;border-radius:4px;background:linear-gradient(var(--q-navy),var(--q-navy)) left top/22px 1.5px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) left top/1.5px 22px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) right top/22px 1.5px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) right top/1.5px 22px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) left bottom/22px 1.5px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) left bottom/1.5px 22px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) right bottom/22px 1.5px no-repeat,linear-gradient(var(--q-navy),var(--q-navy)) right bottom/1.5px 22px no-repeat;opacity:.55}
body[data-dse-qa] .q-hero-art .q-scan{position:absolute;left:2px;right:2px;top:14px;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(229,165,17,.95),transparent);opacity:0;animation:q-scan 7.5s ease-in-out infinite}
@keyframes q-scan{0%{top:14px;opacity:0}6%{opacity:.95}46%{top:calc(100% - 60px);opacity:.95}52%{opacity:0}100%{top:14px;opacity:0}}
body[data-dse-qa] .q-hero-art .q-readout{position:absolute;left:14px;top:22px;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--q-line);border-radius:6px;background:rgba(255,255,255,.9);font:600 11px/1 var(--q-mono);color:#52565e;letter-spacing:.02em}
body[data-dse-qa] .q-hero-art .q-readout i{width:6px;height:6px;border-radius:50%;background:#2fb26b;box-shadow:0 0 0 0 rgba(47,178,107,.5);animation:q-ping 2.4s infinite}
@keyframes q-ping{70%{box-shadow:0 0 0 7px rgba(47,178,107,0)}100%{box-shadow:0 0 0 0 rgba(47,178,107,0)}}
body[data-dse-qa] .q-link{animation:q-flow 1.5s linear infinite}
@keyframes q-flow{to{stroke-dashoffset:-24}}
body[data-dse-qa] .q-packet{filter:drop-shadow(0 0 4px rgba(229,165,17,.9))}
body[data-dse-qa] .q-pulse{transform-origin:center;transform-box:fill-box;animation:q-pulse 2.8s ease-out infinite}
body[data-dse-qa] .q-pulse:nth-of-type(2){animation-delay:.9s}body[data-dse-qa] .q-pulse:nth-of-type(3){animation-delay:1.8s}
@keyframes q-pulse{0%{transform:scale(.5);opacity:.95}100%{transform:scale(3.2);opacity:0}}
body[data-dse-qa] .hero-visual figcaption{font-family:var(--q-mono);font-size:11px;letter-spacing:.01em}

/* ---------- section indices (home): mono "02 // expertise" above each heading ---------- */
body[data-dse-qa] .q-idx{display:flex;align-items:center;gap:10px;margin:0 0 16px;font:600 12px/1 var(--q-mono);letter-spacing:.03em;color:#7a7e86;text-transform:lowercase;letter-spacing:.02em}
body[data-dse-qa] .q-idx::before{content:"";width:22px;height:1.5px;background:var(--q-gold)}
body[data-dse-qa] .q-idx b{color:var(--q-navy);font-weight:700}
body[data-dse-qa] .connected-heading .q-idx,body[data-dse-qa] .closing-grid .q-idx{justify-content:flex-start}
body[data-dse-qa] .connected-heading .q-idx{justify-content:center}
body[data-dse-qa] .local-content .q-idx{color:#c9d3df}body[data-dse-qa] .local-content .q-idx b{color:#f2c766}

/* ---------- HUD corners on cards (an inserted <i>, so nothing fights the existing pseudo-elements) ---------- */
body[data-dse-qa] .q-rel{position:relative}
body[data-dse-qa] .q-hud{position:absolute;inset:10px;z-index:3;pointer-events:none;opacity:0;transition:opacity .35s,inset .35s;background:linear-gradient(var(--q-gold),var(--q-gold)) left top/18px 1.5px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) left top/1.5px 18px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) right top/18px 1.5px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) right top/1.5px 18px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) left bottom/18px 1.5px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) left bottom/1.5px 18px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) right bottom/18px 1.5px no-repeat,linear-gradient(var(--q-gold),var(--q-gold)) right bottom/1.5px 18px no-repeat}
body[data-dse-qa] :is(.x-card,.x-paths-card,.q-layer,.q-fig,[class$="-card"],[class*="-card "],[class$="-step"],[class*="-step "],[class$="-stat"],[class*="-stat "]):hover>.q-hud{opacity:1;inset:7px}
body[data-dse-qa] [class$="-hero-card"]>.q-hud{opacity:.5;inset:12px}
body[data-dse-qa] .x-card{transition:transform .35s cubic-bezier(.2,.7,.1,1),box-shadow .35s,background .35s,border-color .35s}
body[data-dse-qa] .x-card:hover{border-color:rgba(229,165,17,.55)}
body[data-dse-qa] .button{box-shadow:0 0 0 1px rgba(229,165,17,0);transition:background .15s,box-shadow .3s}
body[data-dse-qa] .button:hover{box-shadow:0 0 0 1px rgba(229,165,17,.55),0 12px 30px -18px rgba(16,29,46,.6)}

/* ---------- provenance tags on single pictures: real DSE work vs. illustration ---------- */
body[data-dse-qa] .q-tag{position:absolute;left:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:6px;background:rgba(16,29,46,.78);color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important;font:600 11px/1 var(--q-mono);letter-spacing:.01em;pointer-events:none;backdrop-filter:blur(4px);opacity:0;transform:translateY(4px);transition:opacity .4s,transform .4s}
body[data-dse-qa] .q-tag i{width:6px;height:6px;border-radius:50%;background:var(--q-gold)}
body[data-dse-qa] .q-tagged:hover>.q-tag,body[data-dse-qa].q-touch .q-tag{opacity:1;transform:none}

/* ---------- interior: terminal windows get an active-window gold edge; the hero card breathes ---------- */
body[data-dse-qa].dse-premium-interior [class$="-hero-card"]{box-shadow:0 1px 0 rgba(229,165,17,.0),0 30px 80px -50px rgba(16,29,46,.45);transition:box-shadow .6s}
body[data-dse-qa].dse-premium-interior [class$="-hero-card"]:hover{box-shadow:0 0 0 1px rgba(229,165,17,.35),0 36px 90px -50px rgba(16,29,46,.55)}
body[data-dse-qa].dse-premium-interior :is([class$="-image-card"],[class$="-video-card"],[class*="-showcase"]) img{transition:transform .9s cubic-bezier(.2,.7,.1,1)}
body[data-dse-qa].dse-premium-interior :is([class$="-image-card"],[class$="-video-card"],[class*="-showcase"]):hover img{transform:scale(1.025)}

/* ---------- even rows: the interior layer top-aligns its card grids (align-items:start), so cards in one row ended at
   different heights. Cards now share the row height; pictures beside copy centre on a plate inside a full-height card;
   gallery pictures share one aspect ratio. ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class*="-grid"],.dse-contact-paths,.dse-cro-shell){align-items:stretch!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class*="-grid"],.dse-contact-paths,.dse-cro-shell)>:is([class*="-card"],[class*="-path"],[class*="-step"],[class*="-copy"],[class*="-best-fit"],[class*="-showcase"],article,.card){align-self:stretch!important;height:auto!important;min-height:0!important;box-sizing:border-box}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-grid"]>:is([class$="-image-card"],[class*="-image-card "]){display:flex!important;flex-direction:column;justify-content:center;overflow:hidden;background-color:#fbfbfc!important;background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px)!important;background-size:16px 16px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-grid"]>:is([class$="-image-card"],[class*="-image-card "])>img{display:block;width:100%!important;height:auto!important;max-height:100%;object-fit:contain!important;margin:0!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-grid"]>:is([class$="-image-card"],[class*="-image-card "])>img[data-dse-imagery="generated"]{padding:14px;box-sizing:border-box}
/* service cards that open with a picture share one picture height, so their headings line up across the row */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-grid"]>[class*="-card"]>img:first-child{width:100%!important;height:auto!important;aspect-ratio:4/3;object-fit:contain!important;background-color:#fbfbfc!important;background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px)!important;background-size:16px 16px!important;padding:12px;box-sizing:border-box}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class$="-gallery"],[class*="-gallery "],[class$="-image-stack"],[class$="-image-row"],[class$="-photo-grid"])>img,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class$="-gallery"],[class*="-gallery "],[class$="-image-stack"],[class$="-image-row"],[class$="-photo-grid"])>*>img{width:100%!important;height:auto!important;aspect-ratio:4/3;object-fit:cover!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class$="-gallery"],[class*="-gallery "],[class$="-image-stack"],[class$="-image-row"],[class$="-photo-grid"]) img[data-dse-imagery="generated"]{object-fit:contain!important;background-color:#eef1f5!important}

/* ---------- interior heroes: a drawn view of the page's own system replaces the generic node console ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .dse-s-console{display:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] main :is(div,section,article):has(>h1){max-width:1180px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior{position:relative;z-index:1;height:auto!important;display:block!important;margin:26px 0 0;padding:42px 10px 14px!important;border:1px solid var(--q-line);border-radius:12px;background-color:#fff;background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:22px 22px;overflow:hidden;box-shadow:0 30px 60px -50px rgba(16,29,46,.55)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior::before{content:attr(data-q-title);position:absolute;left:0;right:0;top:0;height:32px;display:flex;align-items:center;padding:0 12px 0 58px;box-sizing:border-box;background-color:var(--q-navy);background-image:radial-gradient(circle at 18px 16px,var(--q-gold) 0 4px,transparent 4.5px),radial-gradient(circle at 32px 16px,rgba(245,245,247,.32) 0 4px,transparent 4.5px),radial-gradient(circle at 46px 16px,rgba(245,245,247,.32) 0 4px,transparent 4.5px);font:500 11px/1 var(--q-mono);color:rgba(245,245,247,.8);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior::after{content:"design view";position:absolute;right:12px;top:0;height:32px;display:flex;align-items:center;font:500 11px/1 var(--q-mono);color:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior svg{display:block;width:100%;height:auto;max-height:none;filter:none;overflow:visible}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-frame{inset:40px 8px 10px;opacity:.4}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-scan{top:40px;animation-name:q-scan2}
@keyframes q-scan2{0%{top:40px;opacity:0}6%{opacity:.95}46%{top:calc(100% - 8px);opacity:.95}52%{opacity:0}100%{top:40px;opacity:0}}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-readout{left:auto;right:10px;top:auto;bottom:10px}
/* interior.css gives the hero-inner wrappers gap:60px for a two-column layout; terminal.css then turns them into a 7-row grid,
   so every row inherited a 60px gap (≈360px of air between kicker, headline, copy, buttons and the proof strip). Rows get normal margins back. */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .dse-t-split{row-gap:0!important;column-gap:40px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .dse-t-split>:is([class$="-proof"],[class*="-proof "],[class*="-hero-proof"]){margin-top:30px!important}
@media (min-width:1000px){
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .dse-t-split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;column-gap:44px!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .dse-t-split>.q-hero-art--interior{grid-column:2;grid-row:1/span 6;align-self:center;margin-top:0}
  /* the drawing never grows past the copy beside it: cap it so the hero window stays compact */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .dse-t-split>.q-hero-art--interior svg{max-height:420px;width:auto;max-width:100%;margin:0 auto}
  /* physical security: the side column centres beside the (now taller) intro card instead of leaving a hole under it */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="physical-security"] main .dse-ps-intro{align-items:center!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="physical-security"] main .dse-ps-intro-side{align-self:center!important}
  /* photo heroes (intrusion, about, cybersecurity): the picture card centres beside the copy instead of stretching into an empty box */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class$="-hero-image"],.hero-media){align-self:center!important;height:auto!important;min-height:0!important;aspect-ratio:auto!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class$="-hero-image"],.hero-media) img{display:block;width:100%!important;height:auto!important;object-fit:contain!important}
  /* software pages: the aside already fills the right column, so the copy card stays single-column and the generic console is dropped */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page^="custom-software"] .dse-s-console,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page^="website-"] .dse-s-console,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-website-hosting"] .dse-s-console{display:none!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-software-hero-copy.dse-t-split{display:block!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-software-hero-shell{align-items:center!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="physical-security"] .dse-ps-intro-card>.q-hero-art--interior svg{max-height:400px;width:auto;max-width:100%;margin:0 auto}
  /* managed workstations: the proof strip moves under both columns (build), the picture centres beside the copy, no stretched empty card */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero{align-items:center!important;row-gap:28px!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-hero-copy{grid-column:1;grid-row:1}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-hero-image{grid-column:2;grid-row:1;align-self:center;height:auto!important;min-height:0!important;aspect-ratio:auto!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero-image img{display:block;width:100%!important;height:auto!important;object-fit:contain!important;aspect-ratio:3/2}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-proof{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0!important}
}
/* the strip sits outside the terminal window now, so it carries its own quiet card styling */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-proof .dse-workstation-proof-item{padding:14px 16px;border:1px solid var(--q-line);border-radius:10px;background:#fff}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-proof strong{display:block;margin:0 0 6px;font:700 13px/1.3 var(--q-mono);color:var(--q-link)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-proof span{display:block;font:500 12.5px/1.55 var(--q-mono);color:#52565e}
@media (min-width:1000px){
  /* the physical-security intro already shares its row with a side column: the drawing goes under the copy instead of splitting the card */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="physical-security"] .dse-ps-intro-card.dse-t-split{display:block!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="physical-security"] .dse-ps-intro-card>.q-hero-art--interior{margin:28px 0 26px}
}
@media (max-width:999px){
  /* single column: copy, picture, then the proof strip */
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="managed-workstation"] main .dse-workstation-hero>.dse-workstation-proof{order:3;margin-top:20px!important}
}
/* the palette button lives in the desktop nav; on phones a compact copy sits next to the menu toggle */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] :is(.desktop-nav,.dse-ed-desktop-nav) .q-cmdk{margin:0 0 0 10px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk.q-cmdk--mobile{display:none;margin:0 10px 0 0;padding:8px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk--mobile kbd,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk--mobile .q-cmdk-txt{display:none}
@media (max-width:900px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk.q-cmdk--mobile{display:inline-flex}}

/* callouts in the drawing are links to the matching section; the title bar shows drawing coordinates while hovering */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump{cursor:pointer;outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump text{transition:fill .2s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump:hover text,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump:focus-visible text{fill:var(--q-link)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump:hover rect,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-jump:focus-visible rect{stroke:var(--q-gold);stroke-width:2.2}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior.q-has-coords::after{display:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-coords{position:absolute;right:12px;top:0;height:32px;display:flex;align-items:center;font:500 11px/1 var(--q-mono);color:var(--q-gold);letter-spacing:.02em;pointer-events:none;font-variant-numeric:tabular-nums}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-target-flash{box-shadow:0 0 0 2px var(--q-gold)!important;transition:box-shadow .3s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-jump-hint{position:absolute;left:12px;bottom:10px;font:500 10.5px/1 var(--q-mono);color:#9a9ea6;pointer-events:none}

/* ---------- command palette: every page, section and question, Ctrl+K ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk{display:inline-flex;align-items:center;gap:7px;margin:0 14px 0 0;padding:7px 10px;border:1px solid var(--q-line);border-radius:8px;background:#fff;font:600 11.5px/1 var(--q-mono);color:#52565e;cursor:pointer;transition:border-color .25s,box-shadow .25s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk:focus-visible{border-color:rgba(229,165,17,.7);box-shadow:0 0 0 3px rgba(229,165,17,.18);outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk kbd{font:600 10px/1 var(--q-mono);padding:3px 5px;border:1px solid var(--q-line);border-bottom-width:2px;border-radius:4px;background:var(--q-paper);color:var(--q-navy)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk .q-cmdk-ico{position:relative;width:11px;height:11px;border:1.6px solid currentColor;border-radius:50%;box-sizing:border-box}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk .q-cmdk-ico::after{content:"";position:absolute;width:6px;height:1.6px;background:currentColor;right:-5px;bottom:-2px;transform:rotate(45deg);transform-origin:left center}
@media (max-width:900px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk{margin-right:8px;padding:8px}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk kbd,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk .q-cmdk-txt{display:none}}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal{position:fixed;inset:0;z-index:1000;display:none;align-items:flex-start;justify-content:center;padding:10vh 16px 16px;background:rgba(16,29,46,.55);backdrop-filter:blur(6px)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal.is-open{display:flex}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-box{width:min(720px,100%);max-height:78vh;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.4);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-bar,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-in,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-foot{flex:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-bar{display:flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 60px;background-color:var(--q-navy);background-image:radial-gradient(circle at 18px 18px,var(--q-gold) 0 4.5px,transparent 5px),radial-gradient(circle at 34px 18px,rgba(245,245,247,.32) 0 4.5px,transparent 5px),radial-gradient(circle at 50px 18px,rgba(245,245,247,.32) 0 4.5px,transparent 5px);font:500 12px/1 var(--q-mono);color:rgba(245,245,247,.8)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-bar em{margin-left:auto;font-style:normal;color:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-in{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--q-line)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-in b{font:700 16px/1 var(--q-mono);color:var(--q-gold-line)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-in input{flex:1;min-width:0;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;font:500 16px/1.3 var(--q-mono)!important;color:var(--q-ink)!important;-webkit-text-fill-color:var(--q-ink)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-in input::placeholder{color:#9a9ea6}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-list{list-style:none;margin:0;padding:8px;overflow:auto;flex:1;overscroll-behavior:contain}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-group{padding:12px 10px 4px;font:700 10.5px/1 var(--q-mono);letter-spacing:.08em;text-transform:uppercase;color:#9a9ea6}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item{margin:0;padding:0}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:center;padding:9px 12px;border-left:3px solid transparent;border-radius:8px;text-decoration:none!important;color:var(--q-ink)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item .q-pal-t{font-weight:600;font-size:14px;line-height:1.3;color:var(--q-navy)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item .q-pal-s{grid-column:1;font:500 11.5px/1.4 var(--q-mono);color:#7a7e86!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item .q-pal-u{grid-column:2;grid-row:1/span 2;font:500 11px/1 var(--q-mono);color:#9a9ea6!important;white-space:nowrap}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item mark{background:rgba(229,165,17,.3);color:inherit;border-radius:2px;padding:0 1px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item.is-active a,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item a:hover{background:var(--q-paper);border-left-color:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-foot{display:flex;flex-wrap:wrap;gap:16px;padding:10px 16px;border-top:1px solid var(--q-line);background:var(--q-paper);font:500 11px/1 var(--q-mono);color:#7a7e86}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-foot kbd{font:600 10px/1 var(--q-mono);padding:2px 5px;margin-right:2px;border:1px solid var(--q-line);border-bottom-width:2px;border-radius:4px;background:#fff;color:var(--q-navy)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-foot .q-pal-count{margin-left:auto}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-empty{padding:28px 16px;text-align:center;font:500 13px/1.5 var(--q-mono);color:#7a7e86}
body[data-dse-qa].q-pal-open{overflow:hidden}
@media (max-width:760px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal{padding:12px}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-box{max-height:86vh}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-item .q-pal-u{display:none}}

/* ---------- managed technology cluster: the stack bar under every hero ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar{display:flex;align-items:center;gap:4px;width:100%;max-width:1240px;margin:18px auto 0;padding:6px;box-sizing:border-box;border:1px solid var(--q-line);border-radius:12px;background:#fff;box-shadow:0 14px 30px -26px rgba(16,29,46,.5);counter-reset:ql;overflow-x:auto;scrollbar-width:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar::-webkit-scrollbar{display:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar-label{flex:none;padding:8px 12px 8px 8px;margin-right:4px;border-right:1px solid var(--q-line);font:600 11px/1 var(--q-mono);color:#7a7e86!important;-webkit-text-fill-color:#7a7e86!important;letter-spacing:.04em;white-space:nowrap}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar a{counter-increment:ql;flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:8px;font:600 12px/1 var(--q-mono)!important;color:var(--q-navy)!important;-webkit-text-fill-color:var(--q-navy)!important;text-decoration:none!important;white-space:nowrap;transition:background .25s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar a::before{content:counter(ql,decimal-leading-zero);color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line);font-weight:700}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar a:hover{background:var(--q-paper)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar a[aria-current="page"]{background:var(--q-navy);color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stackbar a[aria-current="page"]::before{color:var(--q-gold);-webkit-text-fill-color:var(--q-gold)}

/* ---------- /msp/: the managed stack, as a list wired to a drawing ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack .q-stack-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:28px 44px;align-items:center;margin-top:8px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layers{list-style:none!important;margin:0!important;padding:0!important;display:flex;flex-direction:column;gap:8px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer{position:relative;margin:0!important;padding:0!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer::before,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer::after{display:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a{display:grid;grid-template-columns:46px minmax(0,1fr) auto;grid-template-areas:"idx name go" "idx sub go";column-gap:14px;row-gap:3px;align-items:center;padding:12px 14px;border:1px solid var(--q-line)!important;border-radius:10px;background:#fff;text-decoration:none!important;transition:transform .3s cubic-bezier(.2,.7,.1,1),border-color .3s,box-shadow .3s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a::before,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a::after{display:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer.is-on>a{transform:translateX(6px);border-color:rgba(229,165,17,.6)!important;box-shadow:0 18px 30px -26px rgba(16,29,46,.6)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer-idx{grid-area:idx;display:flex;align-items:center;justify-content:center;height:36px;border:1px solid var(--q-line);border-radius:8px;background:var(--q-paper);font:700 12px/1 var(--q-mono)!important;color:var(--q-gold-line)!important;-webkit-text-fill-color:var(--q-gold-line)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer-name{grid-area:name;font:700 15px/1.25 inherit;font-family:inherit!important;color:var(--q-navy)!important;-webkit-text-fill-color:var(--q-navy)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer-sub{grid-area:sub;font:500 12px/1.5 var(--q-mono)!important;color:#52565e!important;-webkit-text-fill-color:#52565e!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer-go{grid-area:go;font:600 11px/1 var(--q-mono)!important;color:var(--q-link)!important;-webkit-text-fill-color:var(--q-link)!important;white-space:nowrap}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack-art{margin:0!important;position:relative;padding:0;overflow:visible;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack-art svg{display:block;width:100%;height:auto;overflow:visible!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack-art figcaption{margin-top:10px;font:600 11px/1.4 var(--q-mono)!important;color:#7a7e86!important;-webkit-text-fill-color:#7a7e86!important;text-align:center}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-slab{transition:transform .35s cubic-bezier(.2,.7,.1,1),filter .35s;transform-box:fill-box;transform-origin:center}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-slab.is-on{transform:translateY(-8px);filter:drop-shadow(0 0 5px rgba(229,165,17,.8))}
@media (max-width:900px){
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack .q-stack-grid{grid-template-columns:1fr}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-stack-art{order:-1;max-width:440px;margin:0 auto!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"idx name" "idx sub" "idx go"}
}

/* ---------- /financial/: the catalog reads as a branch spec sheet ---------- */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] .dse-fin-proof{counter-reset:qf}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] .dse-fin-proof-item strong::before{counter-increment:qf;content:"0" counter(qf) "  ";font:700 11px/1 var(--q-mono);color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line);letter-spacing:.06em}
/* sticky spec index */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump{position:sticky;top:64px;z-index:20;margin:0 0 28px!important;padding:0!important;border:1px solid var(--q-line)!important;border-radius:12px!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(8px);box-shadow:0 14px 30px -24px rgba(16,29,46,.55)!important;overflow:hidden}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump-inner{display:flex!important;flex-wrap:nowrap!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;overflow-x:auto;scrollbar-width:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump-inner::-webkit-scrollbar{display:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump span{display:flex;align-items:center;padding:0 14px 0 16px;margin:0!important;border-right:1px solid var(--q-line);font:600 11px/1 var(--q-mono)!important;color:#7a7e86!important;-webkit-text-fill-color:#7a7e86!important;letter-spacing:.04em;text-transform:lowercase;white-space:nowrap;flex:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump a{position:relative;flex:none;display:flex;align-items:center;gap:8px;padding:14px 16px!important;margin:0!important;border:0!important;border-right:1px solid var(--q-line)!important;border-radius:0!important;background:transparent!important;font:600 12px/1 var(--q-mono)!important;color:var(--q-navy)!important;-webkit-text-fill-color:var(--q-navy)!important;text-decoration:none!important;white-space:nowrap;transition:background .25s,color .25s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump a::before{content:attr(data-q-idx);color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line);font-weight:700}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump a:hover{background:var(--q-paper)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump a.is-active{background:var(--q-navy)!important;color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump a.is-active::before{color:var(--q-gold);-webkit-text-fill-color:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump .q-progress{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--q-gold);transition:width .15s linear;pointer-events:none}
/* category header + its product sheet read as one window */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band{margin-bottom:0!important;padding-bottom:30px!important;border-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band+.dse-fin-grid-3{margin-top:0!important;margin-bottom:40px!important;padding-top:30px!important;border-top:1px dashed var(--q-line)!important;border-top-left-radius:0!important;border-top-right-radius:0!important;box-shadow:0 34px 48px -40px rgba(16,29,46,.45)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band+.dse-fin-grid-3::before{display:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head{max-width:none!important;margin:0 0 26px!important;display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:0 40px;align-items:start;text-align:left!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head>:not(.q-sheet){grid-column:1}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head>p{max-width:720px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head .q-sheet{grid-column:2;grid-row:1/span 4;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:150px;padding:16px 18px;border:1px solid var(--q-line);border-radius:12px;background-color:var(--q-paper);background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:16px 16px;font-family:var(--q-mono)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet b{font:700 46px/1 var(--q-mono);letter-spacing:-.04em;color:var(--q-navy);-webkit-text-fill-color:var(--q-navy)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet b::after{content:" / 04";font-size:14px;letter-spacing:0;color:#9a9ea6;-webkit-text-fill-color:#9a9ea6;font-weight:600}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet span{font:600 12px/1.4 var(--q-mono);color:#52565e;-webkit-text-fill-color:#52565e;text-transform:lowercase}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet i{display:block;height:1.5px;background:linear-gradient(90deg,var(--q-gold),transparent)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet em{font:700 10.5px/1.4 var(--q-mono);font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line)}
/* the three illustrations per category become a framed contact strip */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-gallery{gap:14px!important}
/* the frame carries the same gradient as the illustrations' own backdrop, so portrait pieces sit in it without visible letterboxing */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-fig{display:block;position:relative;overflow:hidden;border:1px solid var(--q-line);border-radius:10px;background:linear-gradient(160deg,#f4f7fb 0%,#e9eff6 55%,#dbe4ee 100%)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-fig img{display:block;width:100%!important;height:250px!important;padding:0!important;margin:0!important;object-fit:contain!important;border:0!important;border-radius:0!important;background:transparent!important;transition:transform .9s cubic-bezier(.2,.7,.1,1)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-fig:hover img{transform:scale(1.03)}
/* product cards: a lit plate, a part number, a compact spec body */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-grid-3{gap:18px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-card{border-radius:12px!important;overflow:hidden;background:#fff!important;transition:transform .35s cubic-bezier(.2,.7,.1,1),box-shadow .35s,border-color .35s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-card:hover{transform:translateY(-3px);border-color:rgba(229,165,17,.6)!important;box-shadow:0 26px 40px -30px rgba(16,29,46,.55)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-plate{position:relative;display:block;height:196px;padding:24px 26px 20px;box-sizing:border-box;background-color:#fbfbfc;background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:16px 16px;border-bottom:1px solid var(--q-line)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-plate::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 50% 60%,rgba(229,165,17,.1),transparent 70%);pointer-events:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-plate img{position:relative;display:block;width:100%!important;height:100%!important;padding:0!important;margin:0!important;object-fit:contain!important;background:transparent!important;border:0!important;border-radius:0!important;filter:drop-shadow(0 14px 12px rgba(16,29,46,.2));transition:transform .5s cubic-bezier(.2,.7,.1,1)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-card:hover .q-plate img{transform:translateY(-3px) scale(1.03)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-part{position:absolute;left:12px;top:10px;z-index:2;font:700 11px/1 var(--q-mono);font-style:normal;color:#7a7e86;letter-spacing:.04em}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-part b{color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-plate::after{content:attr(data-q-kind);position:absolute;right:12px;top:10px;z-index:2;font:600 10px/1 var(--q-mono);color:#9a9ea6;letter-spacing:.08em;text-transform:uppercase}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-body{padding:16px 18px 18px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-body h3{font-size:15.5px!important;margin:0 0 8px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-body p{font-size:13.5px!important;line-height:1.6!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-body a{padding-top:14px!important;font-size:12.5px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-body a::after{content:" \2192";color:var(--q-gold-line);-webkit-text-fill-color:var(--q-gold-line)}
@media (max-width:1080px){
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-fig img{height:220px!important}
}
@media (max-width:760px){
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head{grid-template-columns:1fr}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-band-head .q-sheet{grid-column:1;grid-row:auto;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;min-height:0;margin-top:16px;padding:12px 14px}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet b{font-size:30px}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-sheet i{display:none}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-fig img{height:200px!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .q-plate{height:170px;padding:22px 22px 16px}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-jump{top:58px}
}

/* ---------- QA notice on forms ---------- */
body[data-dse-qa] .q-form-note{margin:0 0 16px;padding:10px 14px;border:1px solid var(--q-line);border-left:3px solid var(--q-gold);border-radius:8px;background:#fff;font:500 12.5px/1.55 var(--q-mono);color:#52565e}

/* ---------- motion safety ---------- */
@media (max-width:760px){
  /* phones: the art keeps its own aspect ratio and the caption drops into the flow below it, so nothing overlaps */
  body[data-dse-qa] .hero-visual{height:auto!important;margin-top:14px}
  body[data-dse-qa] .q-hero-art{height:auto;aspect-ratio:900/760;padding:4px 0 0;display:block}
  body[data-dse-qa] .q-hero-art svg{display:block;max-height:none}
  body[data-dse-qa] .q-hero-art .q-readout{left:6px;top:8px;font-size:10px}
  body[data-dse-qa] .q-hero-art .q-frame{inset:4px 0 0}
  body[data-dse-qa] .q-hero-art .q-scan{top:4px}
  body[data-dse-qa] .hero-visual figcaption{position:static;margin:10px 0 0;text-align:center}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior{aspect-ratio:auto;padding:40px 6px 10px!important}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior::after{display:none}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-readout{left:auto;right:8px;top:auto;bottom:8px;font-size:10px}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-frame{inset:38px 6px 8px}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-art] .q-hero-art--interior .q-scan{top:38px}
}
@media (prefers-reduced-motion:reduce){
  body[data-dse-qa] .hero h1>span:last-of-type::after{animation:none}
  body[data-dse-qa] .q-hero-art .q-scan{display:none}
  body[data-dse-qa] .q-link,body[data-dse-qa] .q-pulse,body[data-dse-qa] .q-readout i{animation:none}
  body[data-dse-qa] .q-tag{opacity:1;transform:none}
  html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-slab,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-layer>a,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa][data-q-page="financial"] main .dse-fin-product-card{transition:none}
}
/* hardening 2026-10-22: forms are switched off on the preview (CSP form-action 'none'); say so above each form */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-form-off{margin:0 0 14px;padding:10px 14px;border:1px solid #d6dbe4;border-radius:8px;background:#f5f7fa;color:#33404f;font-size:14px;line-height:1.45}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] button[disabled],html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] input[type="submit"][disabled],html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] button[aria-disabled="true"],html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] input[type="submit"][aria-disabled="true"]{cursor:not-allowed;opacity:.55}

/* level-up 2026-10-22 ---------------------------------------------------------------------------------------- */
/* header find button: the interior header styles every button white-on-navy at 48px; keep the find pill readable */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk{color:#52565e!important;-webkit-text-fill-color:#52565e!important;background:#fff!important;font:600 11.5px/1 var(--q-mono)!important;height:auto!important;min-height:0!important;width:auto!important;min-width:0!important;padding:7px 10px!important;border:1px solid var(--q-line)!important;border-radius:8px!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk:focus-visible{border-color:rgba(229,165,17,.7)!important;box-shadow:0 0 0 3px rgba(229,165,17,.18)!important}
@media (max-width:900px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-cmdk{padding:9px!important}}
/* generated art keeps its own callouts: the live-feed overlay becomes a window title bar above the picture */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .hero-media.q-hudbar{display:flex!important;flex-direction:column;padding:0!important;overflow:hidden;border-radius:16px!important;background:#fff;border:1px solid var(--q-line)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>.dse-s-hud{position:relative!important;inset:auto!important;order:-1;display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 10px 54px;background:var(--q-navy);min-height:36px;z-index:1}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>.dse-s-hud::before{left:16px!important;top:50%!important;right:auto!important;bottom:auto!important;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--q-gold)!important;box-shadow:13px 0 0 #3b4658,26px 0 0 #3b4658}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>.dse-s-hud span,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>.dse-s-hud b{position:static!important;padding:0!important;background:none!important;font:600 11px/1.2 var(--q-mono)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>img{display:block;width:100%!important;height:auto!important;border-radius:0!important;margin:0!important}
/* drawn heroes on phones: the coordinate readout owns the bottom edge; the jump hint goes (labels are still links) */
@media (max-width:640px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-jump-hint{display:none!important}}
/* click-to-load video: nothing loads from YouTube until play is pressed */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .dse-it-video-frame:has(>.q-video){padding:0!important;height:auto!important;aspect-ratio:auto!important;background:none!important;border:0!important;box-shadow:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video{position:relative!important;inset:auto!important;height:auto!important;display:flex;flex-direction:column;width:100%;max-width:880px;margin:0 auto;border:1px solid var(--q-line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 22px 50px -34px rgba(16,29,46,.5)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;background:var(--q-navy);font:500 11.5px/1 var(--q-mono);color:rgba(245,245,247,.82)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-bar i{width:8px;height:8px;border-radius:50%;background:#3b4658}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-bar i:first-child{background:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-bar span{margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(245,245,247,.86)!important;-webkit-text-fill-color:rgba(245,245,247,.86)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9;margin:0;padding:24px!important;border:0;border-radius:0!important;box-shadow:none!important;cursor:pointer;color:var(--q-navy)!important;-webkit-text-fill-color:var(--q-navy)!important;background-color:var(--q-paper)!important;background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px)!important;background-size:28px 28px!important;font:600 13px/1.3 var(--q-mono)!important;text-transform:none!important;letter-spacing:0!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play span{color:var(--q-navy)!important;-webkit-text-fill-color:var(--q-navy)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play b{position:relative;width:76px;height:76px;border-radius:50%;background:var(--q-navy);box-shadow:0 0 0 8px rgba(229,165,17,.16);transition:transform .25s,box-shadow .25s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play b::after{content:"";position:absolute;left:31px;top:24px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play small{max-width:42ch;font:500 11px/1.45 var(--q-mono)!important;color:#6b6f78!important;-webkit-text-fill-color:#6b6f78!important;text-align:center}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play:hover b,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play:focus-visible b{transform:scale(1.06);box-shadow:0 0 0 12px rgba(229,165,17,.22)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play:focus-visible{outline:2px solid var(--q-gold);outline-offset:-4px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-out{align-self:flex-end;margin:0;padding:8px 14px;font:500 11px/1 var(--q-mono);color:var(--q-link)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video.is-playing .q-video-out{display:none}
/* 404 */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404{display:block;padding:clamp(48px,9vh,110px) 20px clamp(64px,12vh,140px);background-color:var(--q-paper);background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:32px 32px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-win{width:min(760px,100%);margin:0 auto}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-bar{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;background:var(--q-navy);font:500 12px/1 var(--q-mono);color:rgba(245,245,247,.8)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-bar i{width:9px;height:9px;border-radius:50%;background:#3b4658}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-bar i:first-child{background:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-bar span{margin-left:8px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-body{padding:clamp(22px,4vw,40px)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-line,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-err{margin:0 0 6px;font:500 14px/1.5 var(--q-mono);color:var(--q-ink);word-break:break-all}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-line b,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find b{color:var(--q-gold)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-err{color:#a1361f}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-err em{font-style:normal;color:#8a8e96}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404 h1{margin:22px 0 10px;font:700 clamp(28px,4.4vw,44px)/1.1 var(--q-mono);letter-spacing:-.02em;color:var(--q-ink)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-note{margin:0 0 22px;max-width:56ch;font:400 16px/1.6 Inter,system-ui,sans-serif;color:#52565e}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find{display:flex;align-items:center;gap:10px;margin:0 0 24px;padding:8px 8px 8px 14px;border:1px solid var(--q-line);border-radius:10px;background:var(--q-paper)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find label{font:600 13px/1 var(--q-mono);color:var(--q-navy);white-space:nowrap}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find input{flex:1;min-width:0;border:0;background:transparent;font:500 14px/1.4 var(--q-mono);color:var(--q-ink);outline:none;padding:6px 0}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find button{padding:9px 14px;border:0;border-radius:8px;background:var(--q-navy);color:#fff;font:600 12px/1 var(--q-mono);cursor:pointer}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-find:focus-within{border-color:rgba(229,165,17,.7);box-shadow:0 0 0 3px rgba(229,165,17,.18)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:0;padding:0;list-style:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-links a{display:block;padding:10px 12px;border:1px solid var(--q-line);border-radius:8px;font:500 13px/1.2 var(--q-mono);color:var(--q-link);text-decoration:none;transition:border-color .2s,background .2s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-links a:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-404-links a:focus-visible{border-color:rgba(229,165,17,.7);background:#fffaf0}
/* keyboard shortcuts (?) */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys{position:fixed;inset:0;z-index:1001;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(16,29,46,.55);backdrop-filter:blur(6px)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys.is-open{display:flex}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-box{width:min(520px,100%);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-bar{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 8px 0 16px;background:var(--q-navy);font:500 12px/1 var(--q-mono);color:rgba(245,245,247,.82)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-bar button{width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:#f5f5f7;font:600 16px/1 var(--q-mono);cursor:pointer}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-bar button:focus-visible,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-bar button:hover{background:rgba(255,255,255,.12);outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0;padding:18px 20px 20px;font:500 13px/1.4 var(--q-mono);color:var(--q-ink)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys dt{white-space:nowrap}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys dd{margin:0;color:#52565e}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys kbd{display:inline-block;min-width:20px;padding:3px 6px;margin-right:3px;border:1px solid var(--q-line);border-bottom-width:2px;border-radius:5px;background:var(--q-paper);font:600 11px/1 var(--q-mono);color:var(--q-navy);text-align:center}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-keys-pending{position:fixed;right:18px;bottom:18px;z-index:1001;padding:8px 12px;border-radius:8px;background:var(--q-navy);color:#f5f5f7;font:600 12px/1 var(--q-mono);box-shadow:0 12px 30px -12px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:reduce){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-video-play b{transition:none}}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-pal-note{padding:10px 18px 4px;font:500 11.5px/1.4 var(--q-mono);color:#8a5a00}
/* provenance tag: a theme rule repaints spans inside hero media off-white; keep the tag's dark pill */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-tag{background:rgba(16,29,46,.82)!important;color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-hudbar>.q-tag{left:auto!important;right:12px!important}
/* section links (#) and the status toast */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main h2[id]{scroll-margin-top:150px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-anchor{display:inline-flex!important;align-items:center;justify-content:center;width:1.25em!important;height:1.25em!important;min-width:0!important;min-height:0!important;margin:0 0 0 .3em!important;padding:0!important;border:1px solid transparent!important;border-radius:6px!important;background:transparent!important;box-shadow:none!important;color:var(--q-gold)!important;-webkit-text-fill-color:var(--q-gold)!important;font:600 .62em/1 var(--q-mono)!important;text-transform:none!important;letter-spacing:0!important;vertical-align:.2em;cursor:pointer;opacity:0;transition:opacity .2s,border-color .2s,background .2s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] h2:hover>.q-anchor,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-anchor:focus-visible{opacity:1}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-anchor:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-anchor:focus-visible{border-color:rgba(229,165,17,.6)!important;background:rgba(229,165,17,.1)!important;outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa].q-touch .q-anchor{opacity:.5}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-toast{position:fixed;left:50%;bottom:22px;z-index:1004;max-width:calc(100vw - 32px);padding:9px 14px;border-radius:8px;background:var(--q-navy);color:#f5f5f7;font:600 12px/1.3 var(--q-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 14px 34px -14px rgba(0,0,0,.55);opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .25s,transform .25s}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-toast.is-on{opacity:1;transform:translate(-50%,0)}
/* picture viewer */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-zoomable{cursor:zoom-in}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-zoomable:focus-visible{outline:2px solid var(--q-gold)!important;outline-offset:3px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa].q-view-open{overflow:hidden}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view{position:fixed;inset:0;z-index:1003;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(16,29,46,.72);backdrop-filter:blur(6px)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view.is-open{display:flex}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-box{display:flex;flex-direction:column;width:min(1180px,100%);max-height:calc(100vh - 32px);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-bar{display:flex;align-items:center;gap:12px;flex:none;height:38px;padding:0 6px 0 62px;background-color:var(--q-navy);background-image:radial-gradient(circle at 18px 19px,var(--q-gold) 0 4.5px,transparent 5px),radial-gradient(circle at 34px 19px,rgba(245,245,247,.32) 0 4.5px,transparent 5px),radial-gradient(circle at 50px 19px,rgba(245,245,247,.32) 0 4.5px,transparent 5px);font:500 12px/1 var(--q-mono);color:rgba(245,245,247,.85)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(245,245,247,.85)!important;-webkit-text-fill-color:rgba(245,245,247,.85)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-count{color:var(--q-gold)!important;-webkit-text-fill-color:var(--q-gold)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view button{display:inline-flex!important;align-items:center;justify-content:center;min-width:0!important;min-height:0!important;padding:0!important;border:0!important;box-shadow:none!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-x{width:30px!important;height:30px!important;border-radius:6px!important;background:transparent!important;color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important;font:600 18px/1 var(--q-mono)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-x:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-x:focus-visible{background:rgba(255,255,255,.14)!important;outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-stage{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:0;padding:14px 56px;background-color:var(--q-paper);background-image:linear-gradient(var(--q-grid) 1px,transparent 1px),linear-gradient(90deg,var(--q-grid) 1px,transparent 1px);background-size:28px 28px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-img{display:block;max-width:100%;max-height:calc(100vh - 170px);width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 18px 40px -26px rgba(16,29,46,.55)}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-prev,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-next{position:absolute!important;top:50%;width:40px!important;height:40px!important;margin-top:-20px;border-radius:50%!important;background:rgba(16,29,46,.82)!important;color:#f5f5f7!important;-webkit-text-fill-color:#f5f5f7!important;font:600 22px/1 var(--q-mono)!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-prev{left:10px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-next{right:10px}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-prev:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-next:hover,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-prev:focus-visible,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-next:focus-visible{background:var(--q-navy)!important;box-shadow:0 0 0 3px rgba(229,165,17,.45)!important;outline:none}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-cap{flex:none;margin:0;padding:10px 16px;border-top:1px solid var(--q-line);background:#fff;font:500 12.5px/1.45 var(--q-mono);color:#52565e}
@media (max-width:640px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view{padding:8px}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-stage{padding:10px 8px 54px}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-prev,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-next{top:auto;bottom:8px;margin-top:0}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] .q-view-img{max-height:calc(100vh - 190px)}}/* picture-only cards beside a text card: no stretched empty box under the picture (2026-10-22). The even-rows rule
   stretched every grid child; a card holding only pictures now hugs them and sits level with the middle of the text.
   (Sticky would be nicer but the theme's overflow:hidden wrappers disable it.) */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-grid"] > :is([class*="image"],[class*="gallery"],[class*="showcase"],[class*="media"]):has(img):not(:has(h1,h2,h3,h4,h5,h6,p,li,figcaption,a,button,label)){align-self:center!important;height:auto!important;min-height:0!important}/* photo strips (e.g. /cameras/ three captioned photos): one 4:3 shape, so pictures and captions line up across the row; drawings are never cropped */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main [class*="-strip"] > figure > img:not([data-dse-imagery="generated"]){aspect-ratio:4/3!important;width:100%!important;height:auto!important;object-fit:cover!important}

/* /card-readers/ card pairs (2026-10-22): every card picture in one 4:3 frame, so headings, text and buttons line up across each
   pair. Photos fill the frame; the square reader shot sits whole on its own black; drawings are never cropped. */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-ac-card > .dse-ac-card-img > img{aspect-ratio:4/3!important;width:100%!important;height:auto!important;object-fit:cover!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-ac-card > .dse-ac-card-img > img[src*="Untitled-design-8-b7c701f3"]{object-fit:contain!important;background:#000!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-ac-card > .dse-ac-card-img > img[data-dse-imagery="generated"]{object-fit:contain!important;background:#e4ebf3!important}
/* buttons on one line across a row of cards (2026-10-22): the button row sits at the bottom of every card, keeping each card's
   own minimum gap above it (/card-readers/, /managed-networks/, /voice-solutions/, /msp/, /contact-us/, /managed-workstation/) */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-ac-card-body > .dse-ac-actions:last-child,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-net-card-body > .dse-net-actions:last-child{margin-top:auto!important;padding-top:22px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-tv-card-body > .dse-tv-actions:last-child{margin-top:auto!important;padding-top:24px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-it-card-body > .dse-it-button-row:last-child,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-contact-path > .dse-contact-actions:last-child{margin-top:auto!important}
/* two block cards become columns for that. Their paragraph/list margins used to collapse (20 + 30 showed as 30), so the list's top
   margin drops to 10px to keep the spacing identical. The small label keeps its own width, and 6px above it stands in for the text
   line it used to sit in (5-7px depending on font size), so everything stays within 1px of before */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(.dse-workstation-card,.dse-contact-card){display:flex!important;flex-direction:column!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-workstation-card > .dse-workstation-label,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-contact-card > .dse-contact-label{align-self:flex-start!important;margin-top:6px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-workstation-card > .dse-workstation-list,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-contact-card > .dse-contact-list{margin-top:10px!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-workstation-card > .dse-workstation-actions,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-contact-card > .dse-contact-actions{margin-top:auto!important}/* polish pass 2 (2026-10-22), from a 50-page sweep at 1440/1180/768/375 */
/* running text without stubby last lines (102 single-word last lines under a quarter of the width at 1440px, 2 after);
   card headings balance like the interior pages' headings already do */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(p,li,figcaption,dd,blockquote){text-wrap:pretty}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(h3,h4){text-wrap:balance}
/* service-area cards: one height per row (the grid aligned them to the top, so 241-315px cards stood side by side).
   Directory cards with long municipality lists keep their own height */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .grid:not(:has(> .card > ul)) > .card{align-self:stretch!important}
/* no lone card on a last row */
/* four-card service-area grids go 4, 2 or 1 across, never 3 + 1 (24px gap: four 245px columns need 1052px) */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .grid:has(> .card:nth-child(4):last-child){grid-template-columns:repeat(auto-fit,minmax(max(245px,min(40%,calc((1052px - 100%) * 999))),1fr))!important}
/* five launch steps: one row of five where there is room, otherwise three over two */
@media (min-width:1181px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-launch-steps:has(> :nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media (min-width:681px) and (max-width:1180px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-launch-steps:has(> :nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))!important}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-launch-steps:has(> :nth-child(5):last-child) > :nth-child(-n+3){grid-column:span 2!important}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-launch-steps:has(> :nth-child(5):last-child) > :nth-child(n+4){grid-column:span 3!important}}
/* five software steps / service families: three over two where the theme drops to two columns */
@media (min-width:681px) and (max-width:1080px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(.dse-software-process,.dse-software-grid):has(> :nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))!important}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(.dse-software-process,.dse-software-grid):has(> :nth-child(5):last-child) > :nth-child(-n+3){grid-column:span 2!important}html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is(.dse-software-process,.dse-software-grid):has(> :nth-child(5):last-child) > :nth-child(n+4){grid-column:span 3!important}}
/* /partners/: the seventh category spans its row instead of sitting alone */
@media (min-width:681px){html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-partner-category-grid > :nth-child(7):last-child{grid-column:1 / -1!important}}/* FAQ accordions (about 20 pages). The terminal skin's "Q.01  " label lost its two spaces inside the flex question row, so it
   ran into the text ("Q.01Can DSE..."); it now keeps them and sits on the question's first line. The 10px-rounded question
   boxes were packed with no gap (doubled borders, notched corners, flush against the divider line): 12px apart, 16px below it */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class*="-faq-item"],.dse-launch-faq-item) > summary::before{white-space:pre!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class*="-faq-item"],.dse-launch-faq-item) > summary{align-items:baseline!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main :is([class*="-faq-list"],.dse-launch-faq-grid).dse-faq-accordion:has(> details[class*="-faq-item"]){gap:12px!important;padding-top:16px!important}
/* in those boxes the question and answer started right at the left border (the padding was made for plain divider lists):
   18px in, matching the + on the right */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main details:is([class*="-faq-item"],.dse-launch-faq-item) > summary,html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main details:is([class*="-faq-item"],.dse-launch-faq-item) > :not(summary){padding-left:18px!important}
/* software-page FAQs showed two open indicators (the browser's triangle and the theme's +): keep the + */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-software-faq summary{list-style:none!important}
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-software-faq summary::-webkit-details-marker{display:none}
/* software-page section labels: the "//" sat on a cyan block; plain gold like every other page */
html:is(#dse-t,*):is(#dse-q,*) body[data-dse-qa] main .dse-cro-kicker::before{background:none!important}