/* =====================================================================
   instagrambanservice.pro — "SIGNAL DESK"

   Deep plum-black stock, one magenta signal, one coral counter-signal.
   Instagram-adjacent without reproducing Meta's brand gradient: the hue
   appears as an EDGE, a RULE or a small FILL, never as a full-bleed wash.

   Shares no palette, no grid and no hero device with the sixteen siblings:
   X is black + terminal, Telegram is slate + channel UI, WhatsApp is dark
   green + chat thread, Delete Social is black + emerald, Nullify is
   near-black + serif, RNSR is near-black + gold serif, Retract is cream
   broadsheet, and the predecessor was light lavender + the literal IG
   gradient + a bento mosaic.
   ===================================================================== */

@font-face{
  font-family:"Dossier Read"; font-style:normal; font-weight:400 600; font-display:swap;
  src:url("/atlas/face/read-9d21.woff2") format("woff2");
}
@font-face{
  font-family:"Dossier Record"; font-style:normal; font-weight:500 700; font-display:swap;
  src:url("/atlas/face/record-9d21.woff2") format("woff2");
}
@font-face{
  font-family:"Dossier Read Fallback"; font-style:normal; font-weight:400 600;
  src:local("Segoe UI"),local("Roboto"),local("Helvetica Neue"); size-adjust:100%;
  ascent-override:96%; descent-override:24%;
}

:root{
  /* ---- stock: four layers, each a step out of the plum ------------- */
  --dsr-stock:#13101A;      /* page ground                                  */
  --dsr-band:#191423;       /* raised band / alternating row                */
  --dsr-card:#20192C;       /* card, table body, widget                     */
  --dsr-card2:#281F36;      /* card header, hover                           */

  /* ---- text: three tiers, no fourth -------------------------------- */
  --dsr-ink:#F7F4FA;        /* headings                       17.4:1        */
  --dsr-body:#C9C2D6;       /* running prose                   9.9:1        */
  --dsr-muted:#968CAA;      /* apparatus, captions             5.3:1        */

  /* ---- rules: never carry text ------------------------------------- */
  --dsr-rule:rgba(247,244,250,.10);
  --dsr-rule2:rgba(247,244,250,.20);
  --dsr-edge:rgba(247,244,250,.34);

  /* ---- signal ------------------------------------------------------- */
  --dsr-signal:#FF3D7F;     /* the magenta. Fills and edges.                */
  --dsr-link:#FF7CA5;       /* links on stock                  6.4:1        */
  --dsr-signal-w:rgba(255,61,127,.13);
  --dsr-coral:#FF8A4C;      /* counter-signal, ordinals        7.2:1        */
  --dsr-glow:0 0 0 1px rgba(255,61,127,.35), 0 10px 30px -12px rgba(255,61,127,.45);

  /* ---- state hues: chips and rows ONLY, never decoration ------------ */
  --dsr-filed:#57D9A3;   --dsr-filed-w:rgba(87,217,163,.14);
  --dsr-held:#F2C14E;    --dsr-held-w:rgba(242,193,78,.14);
  --dsr-closed:#FF7A6B;  --dsr-closed-w:rgba(255,122,107,.14);

  /* ---- contact channels: AA-verified against white labels ---------- */
  --dsr-tg:#0F6E9E;      --dsr-tg-hi:#1583B9;
  --dsr-wa:#0B7A45;      --dsr-wa-hi:#0E9354;

  /* ---- geometry ----------------------------------------------------- */
  --dsr-pad:24px;
  --dsr-shell:71rem;
  --dsr-doc:50.25rem;    /* = 24 pad + 70 bleed + 616 measure + 70 + 24, exactly */
  --dsr-bleed:70px;      /* how far a record may exceed the reading measure */
  --dsr-measure:38.5rem;
  --dsr-r:14px;             /* one radius, used sparingly                  */
  --dsr-r-sm:9px;

  --dsr-face:"Dossier Read","Dossier Read Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --dsr-rec:"Dossier Record",ui-monospace,"SF Mono",Consolas,monospace;
}

/* ===== reset ======================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
body{
  margin:0; background:var(--dsr-stock); color:var(--dsr-body);
  font-family:var(--dsr-face); font-size:1.09375rem; line-height:1.74;
  font-synthesis:none; overflow-x:clip; overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
/* one very soft plum bloom, top-right. No second light source. */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(46rem 30rem at 82% -8%, rgba(255,61,127,.10), transparent 68%),
    radial-gradient(38rem 26rem at 6% 4%, rgba(255,138,76,.055), transparent 70%);
}
img,svg{ max-width:100%; height:auto; display:block; }
figure,blockquote{ margin:0; }   /* UA gives both a 40px inline margin */
h1,h2,h3,h4{ font-family:var(--dsr-face); color:var(--dsr-ink); margin:0; font-weight:600; }
h1{ font-size:clamp(2.15rem,1.25rem + 3.1vw,3.4rem); line-height:1.08; letter-spacing:-.028em;
    max-width:19ch; text-wrap:balance; margin:0 0 16px; }
h2{ font-size:clamp(1.4rem,1.18rem + .8vw,1.7rem); line-height:1.22; letter-spacing:-.018em;
    text-wrap:balance; scroll-margin-top:92px; }
h3{ font-size:1.09375rem; line-height:1.4; letter-spacing:-.006em; margin:30px 0 10px;
    scroll-margin-top:92px; }
h4{ font-size:.9375rem; line-height:1.4; color:var(--dsr-ink); margin:22px 0 10px; }
p{ margin:0 0 1.15em; text-wrap:pretty; hyphens:none; }
strong{ font-weight:600; color:var(--dsr-ink); }
em,i{ font-style:normal; font-weight:600; color:var(--dsr-ink); }
a{ color:var(--dsr-link); }
::selection{ background:rgba(255,61,127,.30); color:#fff; }
:focus-visible{ outline:2px solid var(--dsr-signal); outline-offset:3px; border-radius:4px; }
table{ border-collapse:collapse; font-variant-numeric:tabular-nums; }
[id]{ scroll-margin-top:92px; }

/* ===== record face utilities ======================================== */
.stub,.crumbs,.docline,.foot-bottom,th,.railnav a,.ord,.cite,.tape-no,.chip,.casedata{
  font-family:var(--dsr-rec); font-feature-settings:"tnum" 1;
}
.stub{ display:block; font-size:.6875rem; font-weight:600; letter-spacing:.17em;
       text-transform:uppercase; line-height:1; color:var(--dsr-muted); }
.ord{ font-size:.8125rem; font-weight:600; line-height:1; color:var(--dsr-coral);
      letter-spacing:.12em; }
.notch{ height:1px; margin:30px 0; background:var(--dsr-rule); }

/* ===== shell ======================================================== */
.shell{ width:100%; max-width:var(--dsr-shell); margin-inline:auto; padding-inline:var(--dsr-pad); }
.shell-doc{ max-width:var(--dsr-doc); }
@supports (padding:max(0px)){
  .shell{ padding-left:max(var(--dsr-pad),env(safe-area-inset-left));
          padding-right:max(var(--dsr-pad),env(safe-area-inset-right)); }
}

/* ===== skip link ==================================================== */
.skip{ position:absolute; left:-9999px; }
.skip:focus{ position:fixed; left:10px; top:10px; z-index:200; background:var(--dsr-signal);
  color:#140A10; padding:11px 16px; border-radius:var(--dsr-r-sm); font-weight:600; }

/* ===== header ======================================================= */
.mast{ position:relative; z-index:20; border-bottom:1px solid var(--dsr-rule); }
.mast-top{ display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:64px; }
.mark{ display:inline-flex; align-items:center; gap:11px; color:var(--dsr-ink); text-decoration:none;
       font-size:1rem; font-weight:600; letter-spacing:-.015em; }
/* The mark is a record seen from its filing edge: a magenta rule is the edge
   it is indexed on, the widest bar is the index tab, and the ragged rules
   below are the contents. Drawn as rectangles so the favicon, the PWA icon and
   this glyph are the same object. It replaced a magenta-to-coral gradient
   squircle carrying "IBS" at 10px — which was illegible, was the same object
   as the fake-account avatar in the hero card, and sat in Instagram's own
   trade-dress family of a pink-to-orange gradient in a rounded square. */
.mark-glyph{ width:28px; height:28px; flex:0 0 auto; }
.mark b{ font-weight:600; color:inherit; }
.railnav ul{ display:flex; align-items:center; flex-wrap:nowrap; gap:26px; list-style:none;
  margin:0; padding:0; }
.railnav li{ flex:0 0 auto; }
.railnav a{ display:inline-block; white-space:nowrap; font-size:.6875rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase; color:var(--dsr-muted); text-decoration:none;
  padding:6px 0; border-bottom:2px solid transparent; transition:color .15s; }
.railnav a:hover,.railnav a[aria-current="page"]{ color:var(--dsr-ink); border-bottom-color:var(--dsr-signal); }

/* ===== identity strip =============================================== */
.casebar{ border-bottom:1px solid var(--dsr-rule); background:var(--dsr-band); }
.casebar .shell{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:42px; }
.casedata{ margin:0; font-size:.6875rem; letter-spacing:.11em; text-transform:uppercase;
  color:var(--dsr-muted); }
.casedata i{ font-style:normal; color:var(--dsr-rule2); padding:0 9px; }
.casebar-acts{ display:flex; gap:9px; flex:0 0 auto; }
.casepair{ display:none; }

/* sticky contact bar */
.perch{ position:fixed; inset:0 0 auto 0; z-index:90; background:var(--dsr-stock);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--dsr-rule);
  transform:translateY(-102%); transition:transform .26s cubic-bezier(.3,.7,.3,1); }
.perch .shell{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:56px; }
/* the condensed bar had an empty middle band and no navigation at all */
.perch-nav{ flex:1 1 auto; margin-inline:26px; overflow:hidden; }
@media (max-width:1100px){ .perch-nav{ display:none; } }
/* on a phone the top band repeats the hero's buttons — keep them (they must
   stay above the fold) but make that instance the quiet one */
@media (max-width:860px){
  .casepair .btn{ min-height:38px; padding:.4rem .9rem; font-size:.8125rem;
    background:transparent; color:var(--dsr-ink); box-shadow:inset 0 0 0 1px var(--dsr-rule2); }
  .casepair .btn svg{ width:15px; height:15px; }
}
.perch.is-up{ transform:none; }

/* ===== buttons ====================================================== */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:50px; padding:.8rem 1.4rem; border-radius:var(--dsr-r-sm);
  font-family:var(--dsr-face); font-size:.9375rem; font-weight:600; letter-spacing:.005em;
  text-decoration:none; border:1px solid transparent; cursor:pointer; white-space:nowrap;
  transition:transform .14s, filter .18s; }
.btn:hover{ transform:translateY(-1px); }
.btn svg{ width:17px; height:17px; flex:0 0 auto; }
.btn-tg{ background:var(--dsr-tg); color:#fff; }
.btn-tg:hover{ background:var(--dsr-tg-hi); }
.btn-wa{ background:var(--dsr-wa); color:#fff; }
.btn-wa:hover{ background:var(--dsr-wa-hi); }
.btn-sm{ min-height:34px; padding:.35rem .8rem; font-size:.75rem; border-radius:7px; }
.btn-sm svg{ width:14px; height:14px; }
.btn-lg{ min-height:58px; padding:1rem 1.7rem; font-size:1.0125rem; }
.act-btns{ display:flex; flex-wrap:wrap; gap:11px; }

/* ===== HERO (homepage) ============================================== */
.hero{ padding-block:clamp(2.4rem,5vw,4.2rem) clamp(2rem,4vw,3.2rem); }
.hero-grid{ display:grid; gap:clamp(2rem,4vw,3.4rem); align-items:start; }
@media (min-width:1040px){ .hero-grid{ grid-template-columns:1.06fr .94fr; align-items:center; } }
.kicker{ display:inline-flex; align-items:flex-start; gap:9px; font-family:var(--dsr-rec);
  font-size:.6875rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase;
  color:var(--dsr-link); background:var(--dsr-signal-w); border:1px solid rgba(255,61,127,.26);
  border-radius:999px; padding:.4rem .85rem; margin-bottom:20px; }
.kicker::before{ content:""; width:6px; height:6px; margin-top:.44em; border-radius:50%;
  background:var(--dsr-signal); box-shadow:0 0 0 3px rgba(255,61,127,.22); flex:0 0 auto; }
.hero h1{ font-size:clamp(2.25rem,1.35rem + 3.1vw,3.4rem); max-width:17ch; }
.hero h1 span{ color:var(--dsr-signal); }
.hero .intro{ font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem); color:var(--dsr-body);
  max-width:46ch; margin:0 0 26px; }
.hero-acts{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.hero-acts .btn{ flex:1 1 0; min-width:10.5rem; }
.hero-trust{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:0 0 22px; padding:0; list-style:none; }
.hero-trust li{ display:flex; align-items:center; gap:8px; font-size:.875rem; color:var(--dsr-muted); }
.hero-trust li::before{ content:""; width:16px; height:16px; flex:0 0 auto; border-radius:50%;
  background:var(--dsr-signal-w) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF7CA5' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center/9px 9px no-repeat;
  box-shadow:inset 0 0 0 1px rgba(255,61,127,.45); }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.tags li{ font-family:var(--dsr-rec); font-size:.6875rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--dsr-muted); border:1px solid var(--dsr-rule2); border-radius:999px; padding:.32rem .74rem; }

/* ---- the case widget ---------------------------------------------- */
.probe{ background:var(--dsr-card); border:1px solid var(--dsr-rule2); border-radius:var(--dsr-r);
  overflow:hidden; }
.probe-top{ display:flex; align-items:center; gap:10px; padding:13px 16px;
  background:var(--dsr-card2); border-bottom:1px solid var(--dsr-rule); }
.probe-top .stub{ flex:1 1 auto; letter-spacing:.13em; }
.chip{ display:inline-flex; align-items:center; width:max-content; justify-self:start;
  font-size:.625rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  border-radius:999px; padding:.28rem .62rem; white-space:nowrap; }
.chip-open{ color:var(--dsr-link); background:var(--dsr-signal-w); box-shadow:inset 0 0 0 1px rgba(255,61,127,.34); }
.chip-filed{ color:var(--dsr-filed); background:var(--dsr-filed-w); box-shadow:inset 0 0 0 1px rgba(87,217,163,.34); }
.chip-held{ color:var(--dsr-held); background:var(--dsr-held-w); box-shadow:inset 0 0 0 1px rgba(242,193,78,.34); }
.chip-closed{ color:var(--dsr-closed); background:var(--dsr-closed-w); box-shadow:inset 0 0 0 1px rgba(255,122,107,.34); }
.probe-who{ display:flex; align-items:center; gap:12px; padding:16px; border-bottom:1px solid var(--dsr-rule); }
.probe-ava{ width:42px; height:42px; flex:0 0 auto; border-radius:50%;
  background:var(--dsr-card2); box-shadow:inset 0 0 0 1px var(--dsr-rule2);
  display:grid; place-items:center; font-family:var(--dsr-rec); font-weight:700; font-size:.8125rem;
  color:var(--dsr-muted); }
.probe-id{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.probe-id b{ font-size:.9375rem; color:var(--dsr-ink); font-weight:600; }
.probe-id i{ font-style:normal; font-size:.75rem; color:var(--dsr-muted); }
.probe-rows{ list-style:none; margin:0; padding:6px 0; }
.probe-rows li{ display:flex; justify-content:space-between; gap:14px; padding:8px 16px;
  border-bottom:1px solid var(--dsr-rule); font-size:.875rem; }
.probe-rows li:last-child{ border-bottom:0; }
.probe-k{ color:var(--dsr-muted); flex:0 0 auto; }
.probe-v{ color:var(--dsr-ink); text-align:right; }
.probe-steps{ list-style:none; margin:0; padding:12px 16px; border-top:1px solid var(--dsr-rule);
  display:grid; gap:11px; }
.probe-steps li{ display:flex; align-items:center; gap:10px; font-size:.875rem; color:var(--dsr-muted); }
.probe-steps li::before{ content:""; width:16px; height:16px; flex:0 0 auto; border-radius:50%;
  box-shadow:inset 0 0 0 1px var(--dsr-rule2); }
.probe-steps li.done{ color:var(--dsr-body); }
.probe-steps li.done::before{ background:var(--dsr-signal-w) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF7CA5' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center/9px 9px no-repeat;
  box-shadow:inset 0 0 0 1px rgba(87,217,163,.55); }
.probe-steps li.live{ color:var(--dsr-ink); }
.probe-steps li.live::before{ background:var(--dsr-held-w); box-shadow:inset 0 0 0 1px rgba(242,193,78,.6),0 0 0 4px rgba(242,193,78,.10); }
.probe-foot{ margin:0; padding:12px 16px 15px; border-top:1px solid var(--dsr-rule);
  font-size:.78125rem; color:var(--dsr-muted); background:rgba(255,255,255,.015); }

/* ===== article grid ================================================= */
/* One centred column. There is no apparatus gutter: it cost 104px of empty
   width down every page to carry a two-character ordinal, and the progress
   line drawn in it read as a stray mark rather than as structure. The ordinal
   now sits inline above its heading, which is what the phone layout always
   did and what actually looked right. */
.file{ padding-block:clamp(1.8rem,3.5vw,2.8rem) clamp(2.4rem,5vw,4rem); }
.row{ display:block; }
.col{ min-width:0; max-width:var(--dsr-measure); margin-inline:auto; }
.gut{ display:none; }

.crumbs{ font-size:.6875rem; letter-spacing:.11em; text-transform:uppercase;
  color:var(--dsr-muted); margin-bottom:20px; }
.crumbs a{ color:var(--dsr-muted); text-decoration:none; border-bottom:1px solid var(--dsr-rule2); }
.crumbs a:hover{ color:var(--dsr-ink); }
.docline{ font-size:.75rem; letter-spacing:.06em; color:var(--dsr-muted); margin:0 0 20px; }
.docline i{ font-style:normal; color:var(--dsr-rule2); }
.intro{ font-size:1.15rem; line-height:1.62; color:var(--dsr-body); margin:0 0 26px; }

/* answer capsule */
.doc-answer{ background:var(--dsr-card); border:1px solid var(--dsr-rule2);
  border-left:3px solid var(--dsr-signal);
  border-radius:var(--dsr-r); padding:20px 22px 4px; margin:0 0 22px; }
.doc-answer .stub{ margin-bottom:10px; color:var(--dsr-link); }
.doc-answer p{ margin:0 0 16px; color:var(--dsr-ink); font-size:1.09375rem; line-height:1.66; }

/* inline contact line */
.act-line{ border:1px solid var(--dsr-rule2); border-left:3px solid var(--dsr-coral);
  border-radius:var(--dsr-r); padding:18px 20px; margin:0 0 26px; background:var(--dsr-band); }
.act-line p{ margin:0 0 14px; color:var(--dsr-body); font-size:.96875rem; }
.act-line .act-btns{ display:grid; grid-template-columns:1fr 1fr; }
@media (max-width:520px){ .act-line .act-btns{ grid-template-columns:1fr; } }
.act-line .stub{ margin-bottom:9px; color:var(--dsr-muted); }

/* at-a-glance */
.doc-facts{ list-style:none; margin:0 0 26px; padding:0; display:grid; gap:1px;
  background:var(--dsr-rule); border:1px solid var(--dsr-rule); border-radius:var(--dsr-r);
  overflow:hidden; }
.doc-facts li{ background:var(--dsr-band); padding:13px 17px; font-size:.9375rem; color:var(--dsr-body);
  display:flex; gap:11px; }
.doc-facts li::before{ content:""; width:5px; height:5px; margin-top:.62em; flex:0 0 auto;
  border-radius:50%; background:var(--dsr-signal); }

/* contents tape */
.contents{ border-top:1px solid var(--dsr-rule); border-bottom:1px solid var(--dsr-rule);
  padding:20px 0; margin:0 0 30px; }
.contents .stub{ margin-bottom:14px; }
.contents ol{ list-style:none; margin:0; padding:0; columns:2; column-gap:34px; }
@media (max-width:620px){ .contents ol{ columns:1; } }
.contents li{ break-inside:avoid; margin-bottom:9px; }
.contents a{ display:flex; gap:11px; font-size:.90625rem; color:var(--dsr-body); text-decoration:none;
  line-height:1.44; }
.contents a:hover{ color:var(--dsr-link); }
.tape-no{ flex:0 0 auto; font-size:.6875rem; color:var(--dsr-coral); padding-top:.30em; }

/* section heads — the ordinal sits above its heading, in the measure */
.entry{ margin-top:46px; padding-top:26px; border-top:1px solid var(--dsr-rule); }
.entry:first-of-type{ margin-top:36px; }
.entry h2{ margin:0 0 14px; }
.entry .ord{ display:block; margin-bottom:10px; }

/* prose */
.doc-lede{ font-size:1.09375rem; line-height:1.66; color:var(--dsr-ink); }
.doc p,.doc li{ color:var(--dsr-body); }
.doc ul,.doc ol{ padding-left:1.3rem; margin-block:0 1.15em; }
/* Component lists are grids and rows, not prose bullets. These selectors are
   (0,2,0) so they outrank the prose rule above, which is (0,1,1). */
.doc .doc-facts,.doc .register,.doc .contents ol,.doc .doc-sources ol,
.doc .probe-rows,.doc .probe-steps,.doc .slab ul,.doc .doc-steps{ padding-left:0; }
.doc li{ margin-bottom:.55em; }
.doc li::marker{ color:var(--dsr-signal); }
/* component lists are grids or rows, not prose bullets — the prose margin
   above would otherwise open a gap inside every 1px-gap grid */
.doc-facts li,.slab li,.register li,.contents li,.probe-rows li,.probe-steps li,
.doc-sources li,.foot li{ margin-bottom:0; }
.doc-facts li::marker,.slab li::marker,.register li::marker,.contents li::marker{ content:""; }
.doc-steps{ list-style:none; counter-reset:s; padding-left:0!important; }
.doc-steps li{ counter-increment:s; position:relative; padding-left:42px; margin-bottom:15px; }
.doc-steps li::before{ content:counter(s,decimal-leading-zero); position:absolute; left:0; top:.24em;
  font-family:var(--dsr-rec); font-size:.75rem; font-weight:700; color:var(--dsr-muted);
  width:28px; }

/* callouts */
.doc-note,.doc-warn,.doc-check{ border-radius:var(--dsr-r); padding:17px 20px; margin-block:26px;
  border:1px solid var(--dsr-rule2); background:var(--dsr-band); }
.doc-note p:last-child,.doc-warn p:last-child,.doc-check p:last-child{ margin-bottom:0; }
.doc-note .stub,.doc-warn .stub,.doc-check .stub{ margin-bottom:9px; }
.doc-note{ border-left:3px solid var(--dsr-rule2); }
.doc-warn{ border-left:3px solid var(--dsr-coral); background:rgba(255,138,76,.06); }
.doc-warn .stub{ color:var(--dsr-coral); }
.doc-check{ border-left:3px solid var(--dsr-signal); background:transparent; }
.doc-check .stub{ color:var(--dsr-link); }

.doc-pull{ margin-block:32px; padding:0 0 0 22px; border-left:3px solid var(--dsr-signal);
  font-size:1.28rem; line-height:1.44; letter-spacing:-.014em; color:var(--dsr-ink); font-weight:600; }

/* tables */
.doc-table-wrap{ overflow-x:auto; border:1px solid var(--dsr-rule2); border-radius:var(--dsr-r);
  margin-block:30px; max-width:100%; }
/* A record — table, figure, index — is allowed past the reading measure, but
   SYMMETRICALLY, so the column keeps one optical centre. */
@media (min-width:1000px){
  .doc-table-wrap,.doc-figure,.duo,.docket,.register,.lanes{
    width:calc(100% + var(--dsr-bleed) * 2);
    max-width:none;
    margin-inline:calc(var(--dsr-bleed) * -1);
  }
}
.doc-table-wrap table{ width:100%; min-width:38rem; background:var(--dsr-card); font-size:.90625rem; }
.doc-table-wrap th,.doc-table-wrap td{ text-align:left; padding:12px 15px; vertical-align:top;
  border-bottom:1px solid var(--dsr-rule); }
.doc-table-wrap thead th{ font-size:.6875rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--dsr-muted); background:var(--dsr-card2); white-space:nowrap; }
.doc-table-wrap tbody td:first-child{ color:var(--dsr-ink); font-weight:600; }
.doc-table-wrap tbody tr:last-child td{ border-bottom:0; }
.doc-table-wrap td{ color:var(--dsr-body); }

/* figures */
.doc-figure{ margin-block:32px; }
.doc-figure img{ width:100%; border:1px solid var(--dsr-rule2); border-radius:var(--dsr-r);
  background:var(--dsr-card); }
.doc-figure figcaption{ margin-top:11px; font-size:.8125rem; line-height:1.5; color:var(--dsr-muted); }
@media (min-width:1000px){ .doc-figure figcaption{ margin-inline:var(--dsr-bleed); } }

/* sources ledger */
.doc-sources{ margin-top:48px; border-top:1px solid var(--dsr-rule2); padding-top:26px; }
.doc-sources ol{ list-style:none; margin:0; padding:0; counter-reset:src; }
.doc-sources li{ counter-increment:src; display:grid; grid-template-columns:30px 1fr; gap:12px;
  padding:13px 0; border-bottom:1px solid var(--dsr-rule); }
.doc-sources li::before{ content:counter(src,decimal-leading-zero); font-family:var(--dsr-rec);
  font-size:.6875rem; color:var(--dsr-muted); padding-top:.28em; }
.doc-sources b{ display:block; font-size:.75rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--dsr-muted); font-weight:600; margin-bottom:3px; font-family:var(--dsr-rec); }
.doc-sources a{ color:var(--dsr-body); font-size:.9375rem; }
.doc-sources .cite{ display:block; margin-top:4px; font-size:.71875rem; letter-spacing:.06em;
  color:var(--dsr-muted); }
.doc-sources a:hover{ color:var(--dsr-link); }

/* FAQ.
   The answers stay open in the DOM rather than hiding inside <details>: this
   content is written to be extracted by answer engines, and a collapsed
   accordion is both worse for that and worse for a reader skimming for their
   own question. Styled as a stack of records instead. */
.doc-faq{ margin-top:48px; }
.doc-faq .qa{ border:1px solid var(--dsr-rule2); border-radius:var(--dsr-r);
  background:var(--dsr-band); padding:18px 20px; margin-bottom:10px; }
.doc-faq .qa h3{ margin:0 0 8px; font-size:1rem; color:var(--dsr-ink); }
.doc-faq .qa p{ margin:0; color:var(--dsr-body); font-size:.96875rem; }

/* ===== article links ================================================ */
.doc a{ color:var(--dsr-link); }
.doc p > a, .doc li > a, .doc td > a, .doc figcaption > a,
.doc blockquote a, .doc .doc-sources a{
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-thickness:1px; text-decoration-color:rgba(255,124,165,.42);
}
.doc p > a:hover, .doc li > a:hover, .doc td > a:hover, .doc .doc-sources a:hover{
  color:var(--dsr-ink); text-decoration-color:var(--dsr-signal);
}
.doc .contents li > a, .doc .register li > a, .doc .crumbs a{ text-decoration:none; }
.doc a.btn, .doc a.btn:visited, .doc a.btn:hover{ color:#fff; text-decoration:none; }

/* ===== hub / contact components ===================================== */
.duo,.docket,.lanes{ display:grid; gap:1px; background:var(--dsr-rule);
  border:1px solid var(--dsr-rule); border-radius:var(--dsr-r); overflow:hidden; margin-block:26px; }
@media (min-width:760px){ .duo,.lanes{ grid-template-columns:1fr 1fr; } }
.duo > *,.docket > *,.lanes > *{ background:var(--dsr-band); padding:22px; }
.docket-row{ display:grid; gap:6px; }
.docket-row p b{ display:block; margin-bottom:4px; color:var(--dsr-ink); }
.docket-row .stub{ color:var(--dsr-muted); }
.val{ font-family:var(--dsr-rec); font-size:.96875rem; color:var(--dsr-ink); word-break:break-word; }

.register{ list-style:none; margin-block:26px 0; padding:0; display:grid; gap:1px;
  background:var(--dsr-rule); border:1px solid var(--dsr-rule); border-radius:var(--dsr-r);
  overflow:hidden; }
.register li{ background:var(--dsr-band); transition:background .16s; }
.register li:hover{ background:var(--dsr-card2); }
.register a{ display:grid; grid-template-columns:44px 1fr; gap:14px; padding:20px 22px;
  text-decoration:none; }
.register .tape-no{ padding-top:.28em; }
.register b{ display:block; font-size:1.03125rem; font-weight:600; color:var(--dsr-ink);
  letter-spacing:-.012em; margin-bottom:6px; line-height:1.34; }
.register li:hover b{ color:var(--dsr-link); }
/* the row is <a><span.tape-no><span><b>title</b><span>summary</span></span></a>;
   the summary carries no class, so target it structurally rather than by name */
.register b + span{ display:block; font-size:.90625rem; color:var(--dsr-muted); line-height:1.56; }

.copybtn{ display:inline-flex; align-items:center; align-self:center; gap:7px; min-height:38px;
  padding:.4rem .8rem;
  background:transparent; border:1px solid var(--dsr-rule2); border-radius:7px; color:var(--dsr-body);
  font-family:var(--dsr-rec); font-size:.75rem; cursor:pointer; }
.copybtn:hover{ color:var(--dsr-ink); border-color:var(--dsr-edge); }
.copybtn.grabbed{ color:var(--dsr-filed); border-color:rgba(87,217,163,.5); }

/* ===== closing slab ================================================= */
.slab{ border-top:1px solid var(--dsr-rule); border-bottom:1px solid var(--dsr-rule);
  background:var(--dsr-band); padding-block:clamp(2.4rem,5vw,3.6rem); }
.slab .stub{ margin-bottom:14px; color:var(--dsr-link); }
.slab h2{ margin:0 0 20px; max-width:20ch; }
.slab ul{ list-style:none; margin:0 0 22px; padding:0; display:grid; gap:1px;
  background:var(--dsr-rule); border:1px solid var(--dsr-rule); border-radius:var(--dsr-r);
  overflow:hidden; max-width:52rem; }
.slab li{ background:var(--dsr-stock); padding:14px 18px; color:var(--dsr-body); font-size:.96875rem; }
.slab .no{ max-width:52rem; color:var(--dsr-muted); font-size:.9375rem; }
.slab .no strong{ color:var(--dsr-closed); }

/* ===== limit strip + footer ========================================= */
.limit-strip{ border-top:1px solid var(--dsr-rule); padding-block:20px; }
.limit-strip p{ margin:0; font-size:.8125rem; line-height:1.6; color:var(--dsr-muted); max-width:78ch; }
.foot{ border-top:1px solid var(--dsr-rule); padding-block:clamp(2.4rem,5vw,3.4rem) 24px;
  background:var(--dsr-band); }
.foot-grid{ display:grid; gap:32px; }
@media (min-width:760px){ .foot-grid{ grid-template-columns:repeat(4,1fr); } }
.foot h4{ font-family:var(--dsr-rec); font-size:.6875rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--dsr-muted); margin:0 0 15px; font-weight:600; }
.foot ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.foot li{ font-size:.90625rem; line-height:1.5; }
.foot a:not(.btn){ color:var(--dsr-body); text-decoration:none; }
.foot a:not(.btn):hover{ color:var(--dsr-link); }
.foot .val{ font-size:.875rem; }
.foot-acts{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:16px; max-width:20rem; }
/* The "what this is not" column: chip, then the claim hanging off it. Without
   the grid the second line wrapped back under the chip and read as a mistake. */
.foot li:has(> .chip){ display:grid; grid-template-columns:4.6rem 1fr; gap:9px;
  align-items:start; color:var(--dsr-muted); }
.foot li > .chip{ justify-self:start; }
.foot li > .chip{ margin-top:.18em; }
.foot-annot{ margin:30px 0 0; max-width:82ch; font-size:.84375rem; line-height:1.62;
  color:var(--dsr-muted); }
.foot-bottom{ border-top:1px solid var(--dsr-rule); margin-top:32px; padding-top:20px;
  display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:space-between;
  font-size:.71875rem; letter-spacing:.06em; color:var(--dsr-muted); }

/* ===== 404 ========================================================== */
.void{ padding-block:clamp(3.4rem,9vw,7rem); text-align:center; }
.void .plate{ font-family:var(--dsr-rec); font-size:clamp(3.4rem,11vw,6rem); font-weight:700;
  color:var(--dsr-signal); line-height:1; letter-spacing:-.03em; margin-bottom:18px; }
.void h1{ margin-inline:auto; max-width:22ch; }
.void p{ margin-inline:auto; max-width:48ch; color:var(--dsr-muted); }
.void .doc-facts{ max-width:32rem; margin-inline:auto; }
.void .doc-facts li{ justify-content:center; }
.void .doc-facts li::before{ display:none; }
.void .act-btns{ justify-content:center; margin-top:26px; }

/* ===== responsive =================================================== */
@media (max-width:1039px){
  .probe{ max-width:34rem; }
}
@media (max-width:860px){
  .railnav{ order:3; width:calc(100% + var(--dsr-pad) * 2); margin-inline:calc(var(--dsr-pad) * -1);
    overflow-x:auto; scrollbar-width:none; border-top:1px solid var(--dsr-rule); }
  .railnav::-webkit-scrollbar{ display:none; }
  .railnav ul{ padding:11px var(--dsr-pad); gap:22px; }
  .railnav{ -webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);
            mask-image:linear-gradient(90deg,#000 90%,transparent); }
  .mast-top{ flex-wrap:wrap; min-height:0; padding-top:14px; }
  .casebar .casebar-acts{ display:none; }
  .casepair{ display:flex; gap:10px; padding:14px var(--dsr-pad); border-bottom:1px solid var(--dsr-rule);
    background:var(--dsr-band); }
  .casepair .btn{ flex:1 1 0; }
  .perch .shell{ min-height:52px; }
  .perch .mark{ font-size:.875rem; }
}
@media (max-width:620px){
  :root{ --dsr-pad:18px; }
  .railnav a{ letter-spacing:.08em; }
  body{ font-size:1.0625rem; }
  .hero{ padding-top:1.8rem; }
  .hero-acts .btn{ flex:1 1 100%; }
  .doc-table-wrap table{ min-width:32rem; }
  .register a{ grid-template-columns:34px 1fr; gap:10px; padding:17px 16px; }
  .foot-grid{ gap:26px; }
}
