/* =============================================================
   CYVORE NOIR — LEGAL PAGES (Privacy / Terms)
   Concept: a typed case-file document resting in the investigator's
   folder. Dark site chrome (nav + footer) frames a cream paper sheet.
   Loads AFTER noir.css + noir-purple.css.
   ============================================================= */
/* Fonts self-hosted via @fontsource — imported in legal page layouts */

:root{
  --paper:       #efe7d5;   /* aged cream sheet            */
  --paper-edge:  #e4d8bd;   /* manila folder backing       */
  --paper-deep:  #d8c9a8;   /* folder shadow tone          */
  --doc-ink:     #2b2620;   /* typed ink (near-black brown)*/
  --doc-dim:     #6f6555;   /* secondary text              */
  --doc-faint:   #9a8f78;   /* captions / meta             */
  --doc-rule:    rgba(43,38,32,.14);
  --doc-rule-sm: rgba(43,38,32,.08);
  --stamp:       #7a3f8c;   /* purple ink stamp (brand)    */
  --stamp-2:     #8b5cff;
  --f-type:      'Roboto Mono', ui-monospace, monospace;
  --f-typewriter:'Special Elite', 'Roboto Mono', monospace;
  --f-read:      'Spectral', Georgia, 'Times New Roman', serif;
}

/* ---------- page shell ---------- */
body.legal{
  background:var(--bg);
  background-image:
    radial-gradient(140% 90% at 50% -10%, rgba(139,92,255,.10), transparent 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(139,92,255,.05), transparent 60%);
  color:var(--ink);
  min-height:100vh;
}

/* nav always legible over the dark desk */
.legal .nav{
  background:rgba(7,6,11,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hair-soft);
}

/* reading-progress hairline, pinned to the very top */
.read-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--purple-deep), var(--purple-bright));
  box-shadow:0 0 12px var(--purple-glow);
  z-index:9000; transition:width .12s linear;
}

/* ---------- the desk ---------- */
.case-desk{ padding:120px 0 100px; }
.doc-wrap{
  width:100%; max-width:1140px; margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:248px 1fr; gap:44px; align-items:start;
}

/* ---------- folder tab + index card (sticky TOC) ---------- */
.doc-index{ position:sticky; top:104px; }
.idx-card{
  position:relative;
  background:var(--paper-edge);
  border:1px solid var(--paper-deep);
  border-radius:3px;
  padding:20px 20px 22px;
  box-shadow:0 18px 40px -22px rgba(0,0,0,.8);
  background-image:repeating-linear-gradient(transparent 0 26px, var(--doc-rule-sm) 26px 27px);
}
.idx-card::before{   /* manila tab */
  content:"FILE INDEX";
  position:absolute; top:-19px; left:14px;
  background:var(--paper-edge); border:1px solid var(--paper-deep); border-bottom:none;
  border-radius:4px 4px 0 0; padding:4px 14px;
  font-family:var(--f-typewriter); font-size:10px; letter-spacing:.12em; color:var(--doc-dim);
}
.idx-card::after{   /* red paperclip-ish accent on the corner */
  content:""; position:absolute; top:-10px; right:16px; width:14px; height:34px;
  border:2.5px solid #b9b2a2; border-radius:8px; background:transparent;
  box-shadow:0 1px 2px rgba(0,0,0,.3);
}
.idx-title{
  font-family:var(--f-typewriter); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--doc-faint);
  padding-bottom:12px; margin-bottom:6px; border-bottom:1px solid var(--doc-rule);
}
.idx-list{ list-style:none; margin:0; padding:0; counter-reset:toc; }
.idx-list li{ margin:0; }
.idx-list a{
  display:flex; gap:9px; align-items:baseline;
  padding:7px 8px; border-radius:3px;
  font-family:var(--f-read); font-size:13.5px; line-height:1.35; color:var(--doc-dim);
  text-decoration:none; transition:background .15s, color .15s;
}
.idx-list a::before{
  counter-increment:toc; content:counter(toc, decimal-leading-zero);
  font-family:var(--f-type); font-size:10px; color:var(--doc-faint); flex:none; padding-top:2px;
}
.idx-list a:hover{ background:rgba(43,38,32,.06); color:var(--doc-ink); }
.idx-list a.active{
  background:rgba(122,63,140,.12); color:var(--doc-ink);
  box-shadow:inset 2px 0 0 var(--stamp);
}
.idx-list a.active::before{ color:var(--stamp); }

/* ---------- the report (paper sheet) ---------- */
.report{
  position:relative;
  background:var(--paper);
  color:var(--doc-ink);
  border-radius:3px;
  padding:64px clamp(34px, 5vw, 78px) 72px;
  box-shadow:
    0 1px 0 2px var(--paper-edge),
    0 0 0 3px var(--paper-deep),
    0 40px 90px -30px rgba(0,0,0,.85);
  /* faint paper grain + typed ruled feel */
  background-image:
    radial-gradient(120% 60% at 90% 4%, rgba(122,63,140,.05), transparent 45%),
    radial-gradient(60% 40% at 6% 96%, rgba(120,90,40,.06), transparent 55%);
  overflow:hidden;
}
.report::before{  /* punch holes down the left margin */
  content:""; position:absolute; left:18px; top:80px; bottom:80px; width:14px;
  background:
    radial-gradient(circle at 50% 0, var(--bg) 6px, transparent 7px) 0 0/100% 33.33% no-repeat,
    radial-gradient(circle at 50% 50%, var(--bg) 6px, transparent 7px) 0 50%/100% 33.33% no-repeat,
    radial-gradient(circle at 50% 100%, var(--bg) 6px, transparent 7px) 0 100%/100% 33.33% no-repeat;
  opacity:.5; pointer-events:none;
}
.report::after{  /* faint coffee ring, lower-right */
  content:""; position:absolute; right:54px; bottom:120px; width:96px; height:96px;
  border-radius:50%; border:7px solid rgba(120,80,30,.07);
  box-shadow:inset 0 0 0 2px rgba(120,80,30,.04); pointer-events:none;
}

/* letterhead */
.report-head{
  position:relative; z-index:1;
  padding-bottom:26px; margin-bottom:40px;
  border-bottom:2px solid var(--doc-ink);
}
.rh-agency{
  display:flex; align-items:center; gap:11px;
  font-family:var(--f-typewriter); font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--doc-dim);
}
.rh-agency .dot{ width:7px; height:7px; border-radius:50%; background:var(--stamp); flex:none; }
.rh-title{
  font-family:var(--f-typewriter); font-weight:400;
  font-size:clamp(34px, 5.4vw, 56px); line-height:1.02; letter-spacing:.01em;
  color:var(--doc-ink); text-transform:uppercase; margin:18px 0 0;
}
.rh-meta{
  display:flex; flex-wrap:wrap; gap:10px 30px; margin-top:22px;
  font-family:var(--f-type); font-size:11.5px; letter-spacing:.06em; color:var(--doc-dim);
  line-height:1.5;
}
.rh-meta b{ color:var(--doc-ink); font-weight:500; }
.rh-lede{
  font-family:var(--f-read); font-size:16px; line-height:1.7; color:var(--doc-dim);
  margin-top:30px; padding-top:22px; border-top:1px solid var(--doc-rule-sm); max-width:64ch;
}

/* the CONFIDENTIAL stamp */
.stamp-mark{
  position:absolute; z-index:2; top:34px; right:clamp(28px,5vw,64px);
  transform:rotate(7deg);
  border:3px double var(--stamp); border-radius:5px;
  padding:8px 16px 6px; text-align:center; color:var(--stamp);
  opacity:.82; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(122,63,140,.3);
}
.stamp-mark .s1{ font-family:var(--f-typewriter); font-size:18px; letter-spacing:.16em; line-height:1; }
.stamp-mark .s2{ font-family:var(--f-type); font-size:8px; letter-spacing:.24em; margin-top:4px; }
@media (max-width:560px){ .stamp-mark{ display:none; } }

/* sections */
.report section{ position:relative; z-index:1; scroll-margin-top:96px; padding-top:34px; }
.report section + section{ margin-top:8px; }
.sec-head{
  display:flex; align-items:baseline; gap:14px; margin-bottom:18px;
}
.sec-no{
  font-family:var(--f-type); font-size:12px; color:var(--stamp); flex:none;
  border:1px solid rgba(122,63,140,.4); border-radius:3px; padding:2px 7px;
}
.report h2{
  font-family:var(--f-typewriter); font-weight:400;
  font-size:clamp(19px, 2.4vw, 23px); letter-spacing:.04em; text-transform:uppercase;
  color:var(--doc-ink); line-height:1.2;
}
.report h3{
  font-family:var(--f-read); font-weight:600; font-size:16.5px; color:var(--doc-ink);
  margin:24px 0 6px;
}
.report p,
.report li{
  font-family:var(--f-read); font-size:16.5px; line-height:1.78; color:#3a3329;
}
.report p{ margin:0 0 14px; max-width:68ch; }
.report strong, .report b{ color:var(--doc-ink); font-weight:600; }
.report a{ color:var(--stamp); text-decoration:underline; text-underline-offset:2px; }

.report ul{ margin:0 0 16px; padding:0; list-style:none; max-width:68ch; }
.report ul li{
  position:relative; padding:3px 0 3px 24px;
}
.report ul li::before{
  content:""; position:absolute; left:4px; top:13px; width:7px; height:7px;
  background:var(--stamp); transform:rotate(45deg);
}

/* definition list — report glossary */
.defs{ margin:6px 0 8px; border-top:1px solid var(--doc-rule); }
.defs .row{
  display:grid; grid-template-columns:200px 1fr; gap:8px 22px;
  padding:11px 2px; border-bottom:1px solid var(--doc-rule-sm); align-items:baseline;
}
.defs dt{
  font-family:var(--f-type); font-size:13px; font-weight:500; letter-spacing:.02em;
  color:var(--doc-ink); text-transform:uppercase;
}
.defs dd{ margin:0; font-family:var(--f-read); font-size:15.5px; line-height:1.6; color:#3a3329; }
@media (max-width:600px){ .defs .row{ grid-template-columns:1fr; gap:2px; } }

/* product-context margin note (case annotation) */
.annot{
  position:relative; margin:22px 0 26px; padding:18px 22px 18px 24px;
  background:rgba(122,63,140,.06);
  border:1px solid rgba(122,63,140,.22); border-radius:3px;
  box-shadow:inset 3px 0 0 var(--stamp);
}
.annot .tag{
  display:block; font-family:var(--f-type); font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--stamp); margin-bottom:7px;
}
.annot p{ margin:0; font-size:15.5px; color:#3a3329; }
.annot p + p{ margin-top:10px; }

/* contact block — stamped footer of the report */
.contact-block{
  margin-top:14px; padding:22px 24px;
  border:1px dashed var(--doc-rule); border-radius:3px;
  background:rgba(43,38,32,.03);
  display:flex; flex-wrap:wrap; gap:10px 40px;
}
.contact-block .ci{ font-family:var(--f-type); font-size:13px; color:var(--doc-dim); }
.contact-block .ci b{ display:block; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--doc-faint); margin-bottom:3px; font-weight:500; }
.contact-block .ci a{ color:var(--doc-ink); text-decoration:none; }
.contact-block .ci a:hover{ color:var(--stamp); }

/* sign-off line */
.sign-off{
  margin-top:34px; padding-top:20px; border-top:2px solid var(--doc-ink);
  display:flex; justify-content:space-between; align-items:flex-end; gap:18px; flex-wrap:wrap;
}
.sign-off .so-note{ font-family:var(--f-read); font-style:italic; font-size:14px; color:var(--doc-faint); max-width:42ch; }
.sign-off .so-init{ font-family:var(--f-typewriter); font-size:13px; letter-spacing:.12em; color:var(--doc-dim); }

/* cross-link chips to the sibling document */
.doc-switch{
  display:flex; gap:10px; margin:0 auto 26px; max-width:1140px; padding:0 32px;
}
.doc-switch a{
  font-family:var(--f-type); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-dim); text-decoration:none; padding:9px 16px;
  border:1px solid var(--hair); border-radius:999px; transition:.18s;
}
.doc-switch a:hover{ color:var(--ink); border-color:var(--purple); }
.doc-switch a.current{ color:var(--ink); border-color:var(--purple); background:rgba(139,92,255,.08); }

/* back-to-top — a little case tag */
.to-top{
  position:fixed; right:26px; bottom:26px; z-index:7000;
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 15px; border-radius:999px; cursor:pointer;
  background:rgba(13,12,19,.9); border:1px solid var(--hair);
  color:var(--ink-dim); font-family:var(--f-type); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase;
  backdrop-filter:blur(8px); box-shadow:0 12px 30px -12px #000;
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), color .15s, border-color .15s;
}
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ color:var(--ink); border-color:var(--purple); }
.to-top svg{ width:14px; height:14px; transform:rotate(-90deg); }

/* footer: add privacy/terms to links cleanly (inherits site footer styles) */

@media (max-width:900px){
  .doc-wrap{ grid-template-columns:1fr; gap:26px; }
  .doc-index{ position:static; }
  .idx-card{ background-image:none; }
}
