/* ==========================================================================
   US-Leptozan — us-leptozan.com
   Prefix: opc-   |   Ledger system: no cards, no boxes, dotted leaders
   Shares no prefix, typeface, palette or layout device with any other build.
   ========================================================================== */

:root{
  --opc-ink:#1A1D23;
  --opc-ink-2:#262A32;
  --opc-page:#F2F4F7;
  --opc-sheet:#FFFFFF;
  --opc-rule:#D9DEE5;
  --opc-blood:#7A2E39;
  --opc-steel:#4A6FA5;
  --opc-grey:#5F6873;
  --opc-pale:#E7EBF0;

  --opc-wide:1160px;
  --opc-text:700px;
  --opc-bar:56px;
  --opc-head:"Archivo","Segoe UI",Arial,sans-serif;
  --opc-body:"Source Serif 4",Georgia,"Times New Roman",serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--opc-page);color:var(--opc-ink);
  font-family:var(--opc-body);font-size:18px;line-height:1.68;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  padding-bottom:var(--opc-bar);
}
img{max-width:100%;height:auto;display:block}
svg{display:block}
a{color:var(--opc-blood)}
[id]{scroll-margin-top:86px}
h1,h2,h3,h4{margin:0;font-family:var(--opc-head);font-weight:700;line-height:1.1;
  letter-spacing:-.03em}
h1{font-size:clamp(36px,5.4vw,68px);font-weight:800}
h2{font-size:clamp(26px,3.4vw,44px)}
h3{font-size:19px;font-weight:700;letter-spacing:-.01em}
h4{font-size:15px;font-weight:700;letter-spacing:.01em}
p{margin:0 0 1.1em}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--opc-blood);outline-offset:4px}

/* ---------- scaffolding ---------- */
.opc-skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--opc-ink);
  color:#fff;padding:12px 20px}
.opc-skip:focus{left:0;top:0}
.opc-frame{width:min(var(--opc-wide),91vw);margin-inline:auto}
.opc-text{width:min(var(--opc-text),91vw);margin-inline:auto}
.opc-soft{color:var(--opc-grey)}
.opc-tiny{font-family:var(--opc-head);font-size:12.5px;line-height:1.6;
  color:var(--opc-grey);font-weight:400}
.opc-num{font-family:var(--opc-head);font-variant-numeric:tabular-nums}

/* ---------- masthead ---------- */
.opc-strip{background:var(--opc-ink);color:#9AA4B1;font-family:var(--opc-head);
  font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.opc-strip__in{display:flex;flex-wrap:wrap;gap:5px 30px;justify-content:center;
  padding:8px 0}
.opc-strip b{color:#fff;font-weight:600}

.opc-bar{position:sticky;top:0;z-index:60;background:rgba(242,244,247,.97);
  backdrop-filter:blur(8px);border-bottom:2px solid var(--opc-ink)}
.opc-bar__in{display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:9px 0}
.opc-bar__id img{width:94px;height:auto}
.opc-menu{display:flex;align-items:center;gap:22px}
.opc-menu a{color:var(--opc-ink);text-decoration:none;font-family:var(--opc-head);
  font-size:13.5px;font-weight:500}
.opc-menu a:hover{color:var(--opc-blood)}
.opc-open{display:none;background:none;border:2px solid var(--opc-ink);width:44px;
  height:34px;cursor:pointer;padding:0;font-family:var(--opc-head);font-size:11px;
  font-weight:700;color:var(--opc-ink)}

/* ---------- buttons: square, heavy, no radius ---------- */
.opc-do{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--opc-blood);color:#fff;text-decoration:none;
  font-family:var(--opc-head);font-weight:700;font-size:15px;letter-spacing:-.01em;
  padding:15px 30px;border:2px solid var(--opc-blood);
  transition:background .15s,border-color .15s,color .15s}
.opc-do:hover{background:#5E222B;border-color:#5E222B;color:#fff}
.opc-do--s{padding:9px 17px;font-size:12.5px}
.opc-do--l{padding:18px 38px;font-size:17px}
.opc-do--w{width:100%}
.opc-do--line{background:transparent;color:var(--opc-ink);border-color:var(--opc-ink)}
.opc-do--line:hover{background:var(--opc-ink);color:#fff;border-color:var(--opc-ink)}
.opc-do--steel{background:var(--opc-steel);border-color:var(--opc-steel)}
.opc-do--steel:hover{background:#3B5A87;border-color:#3B5A87}
.opc-do--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.opc-do--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.opc-dos{display:flex;gap:12px;flex-wrap:wrap}
.opc-ref{color:var(--opc-blood);font-weight:600;text-decoration:none;
  border-bottom:1px solid currentColor}

/* ---------- sections: heavy top rule, no boxes ---------- */
.opc-part{padding:clamp(46px,5.4vw,86px) 0;border-top:2px solid var(--opc-ink)}
.opc-part--hair{border-top:1px solid var(--opc-rule)}
.opc-part--dark{background:var(--opc-ink);color:var(--opc-page);border-top:0}
.opc-part--dark h2,.opc-part--dark h3{color:#fff}
.opc-part--dark p,.opc-part--dark .opc-soft{color:#A3ADBA}
.opc-part--sheet{background:var(--opc-sheet)}

.opc-label{display:block;font-family:var(--opc-head);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--opc-blood);
  margin-bottom:12px}
.opc-part--dark .opc-label{color:#C9848E}
.opc-part h2+p{margin-top:16px;max-width:62ch;color:var(--opc-grey);font-size:19px}
.opc-part--dark h2+p{color:#A3ADBA}

/* ---------- the ledger row: the signature device ---------- */
.opc-ledger{margin:30px 0 0}
.opc-ledger li{display:flex;align-items:baseline;gap:10px;padding:13px 0;
  border-bottom:1px solid var(--opc-rule);font-size:17px}
.opc-ledger li:first-child{border-top:1px solid var(--opc-rule)}
.opc-ledger .opc-k{flex:0 1 auto}
.opc-ledger .opc-lead{flex:1 1 auto;border-bottom:1px dotted var(--opc-rule);
  transform:translateY(-4px);min-width:18px}
.opc-ledger .opc-v{flex:0 0 auto;font-family:var(--opc-head);font-weight:700;
  font-variant-numeric:tabular-nums}
.opc-ledger .opc-v--blood{color:var(--opc-blood)}
.opc-ledger .opc-v--steel{color:var(--opc-steel)}
.opc-part--dark .opc-ledger li{border-bottom-color:#39404A}
.opc-part--dark .opc-ledger li:first-child{border-top-color:#39404A}
.opc-part--dark .opc-lead{border-bottom-color:#39404A}

/* ---------- lead block ---------- */
.opc-lead-in{background:var(--opc-sheet);padding:clamp(40px,5vw,80px) 0;
  border-bottom:2px solid var(--opc-ink)}
.opc-lead-in__g{display:grid;grid-template-columns:1.12fr .88fr;
  gap:clamp(28px,4vw,60px);align-items:center}
.opc-lead-in h1 em{font-style:normal;color:var(--opc-blood)}
.opc-lead-in__p{font-size:20px;color:var(--opc-grey);margin:22px 0 28px;max-width:52ch}
.opc-lead-in__shot{text-align:center;position:relative}
.opc-lead-in__shot img{width:min(360px,84%);margin-inline:auto}
.opc-price-tag{display:inline-block;font-family:var(--opc-head);font-weight:800;
  font-size:15px;letter-spacing:-.01em;background:var(--opc-ink);color:#fff;
  padding:9px 20px;margin-top:16px}

/* ---------- split comparison ---------- */
.opc-split{display:grid;grid-template-columns:1fr 1px 1fr;gap:clamp(20px,3vw,44px);
  margin-top:32px}
.opc-split__rule{background:var(--opc-rule)}
.opc-split h3{margin-bottom:10px}
.opc-split p{font-size:16.5px;color:var(--opc-grey);margin:0}
.opc-side-k{display:block;font-family:var(--opc-head);font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.opc-side-k--a{color:var(--opc-blood)}
.opc-side-k--b{color:var(--opc-steel)}

/* ---------- plates ---------- */
.opc-plate{margin:34px 0;background:var(--opc-sheet);
  border-top:2px solid var(--opc-ink);border-bottom:1px solid var(--opc-rule)}
.opc-part--sheet .opc-plate{background:var(--opc-page)}
.opc-part--dark .opc-plate{background:var(--opc-ink-2);border-top-color:#C9848E;
  border-bottom-color:#39404A}
.opc-plate__hd{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:13px 22px;border-bottom:1px solid var(--opc-rule);font-family:var(--opc-head);
  font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--opc-grey)}
.opc-plate__hd b{color:var(--opc-ink);font-weight:700}
.opc-part--dark .opc-plate__hd{border-bottom-color:#39404A;color:#8C96A3}
.opc-part--dark .opc-plate__hd b{color:#fff}
.opc-plate__bd{padding:clamp(18px,2.6vw,30px) 22px}
.opc-plate__bd svg{width:100%;height:auto}
.opc-plate__ft{padding:12px 22px;border-top:1px dotted var(--opc-rule);
  font-family:var(--opc-head);font-size:12px;line-height:1.6;color:var(--opc-grey)}
.opc-part--dark .opc-plate__ft{border-top-color:#39404A;color:#8C96A3}
.opc-pan{overflow-x:auto}
@media(max-width:880px){.opc-pan svg{min-width:660px}}

/* ---------- runs of text ---------- */
.opc-stack{display:grid;gap:clamp(22px,3vw,40px)}
.opc-stack--2{grid-template-columns:repeat(2,1fr)}
.opc-stack--3{grid-template-columns:repeat(3,1fr)}
.opc-item{border-top:2px solid var(--opc-ink);padding-top:16px}
.opc-part--dark .opc-item{border-top-color:#C9848E}
.opc-item h3{margin-bottom:9px}
.opc-item p{font-size:16.5px;color:var(--opc-grey);margin:0}
.opc-part--dark .opc-item p{color:#A3ADBA}

.opc-pull{font-family:var(--opc-head);font-weight:700;font-size:clamp(21px,2.4vw,29px);
  line-height:1.3;letter-spacing:-.02em;margin:34px 0;padding-left:22px;
  border-left:5px solid var(--opc-blood)}
.opc-part--dark .opc-pull{border-left-color:#C9848E}

.opc-flags{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.opc-flags span{font-family:var(--opc-head);font-size:12px;font-weight:600;
  border:1px solid var(--opc-rule);padding:7px 14px;color:var(--opc-grey);
  background:var(--opc-sheet)}

/* ---------- sheet table ---------- */
.opc-scroll{overflow-x:auto;background:var(--opc-sheet);
  border-top:2px solid var(--opc-ink);border-bottom:1px solid var(--opc-rule)}
.opc-tbl{min-width:620px;font-size:16.5px}
.opc-tbl th{background:var(--opc-ink);color:#fff;text-align:left;
  font-family:var(--opc-head);font-size:11.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:14px 20px}
.opc-tbl td{padding:15px 20px;border-bottom:1px solid var(--opc-rule);
  font-variant-numeric:tabular-nums}
.opc-tbl tbody tr:last-child td{border-bottom:0}
.opc-tbl tbody tr.opc-mark td{background:#F7F0F1}
.opc-tbl td:first-child{font-family:var(--opc-head);font-weight:600;font-size:15.5px}

/* ---------- choices (pricing) ---------- */
.opc-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,36px);
  margin-top:34px}
.opc-choice{border-top:3px solid var(--opc-rule);padding-top:20px;display:flex;
  flex-direction:column}
.opc-choice--take{border-top-color:var(--opc-blood)}
.opc-choice__n{font-family:var(--opc-head);font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--opc-grey)}
.opc-choice--take .opc-choice__n{color:var(--opc-blood)}
.opc-choice h3{font-size:24px;margin:6px 0 2px}
.opc-choice__len{font-size:15px;color:var(--opc-grey);margin-bottom:16px}
.opc-choice__shot{height:146px;display:grid;place-items:center;margin-bottom:16px}
.opc-choice__shot img{max-height:146px;width:auto}
.opc-choice__big{font-family:var(--opc-head);font-size:44px;font-weight:800;
  line-height:1;margin:0;font-variant-numeric:tabular-nums}
.opc-choice__big sup{font-size:20px;vertical-align:super}
.opc-choice__big em{font-style:normal;font-size:14px;color:var(--opc-grey);
  font-weight:500;font-family:var(--opc-body)}
.opc-choice__go{margin-top:auto;padding-top:18px}
.opc-choice__pay{width:148px;margin-top:14px}

/* ---------- accounts ---------- */
.opc-says{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(22px,3vw,40px);
  margin-top:32px}
.opc-say{border-top:1px solid var(--opc-rule);padding-top:18px}
.opc-say p{font-size:17px;margin:0 0 14px}
.opc-say footer{display:flex;gap:12px;align-items:center}
.opc-say img{width:40px;height:40px;object-fit:cover;flex:0 0 40px}
.opc-say b{display:block;font-family:var(--opc-head);font-size:14px}
.opc-say span{font-family:var(--opc-head);font-size:12px;color:var(--opc-grey)}

/* ---------- questions ---------- */
.opc-asks{border-top:2px solid var(--opc-ink);margin-top:30px}
.opc-ask{border-bottom:1px solid var(--opc-rule)}
.opc-ask h3{margin:0;font-size:17.5px;font-family:var(--opc-head);font-weight:600}
.opc-ask__b{width:100%;display:flex;justify-content:space-between;align-items:center;
  gap:18px;background:none;border:0;padding:19px 0;cursor:pointer;font:inherit;
  color:var(--opc-ink);text-align:left}
.opc-ask__b i{font-style:normal;font-family:var(--opc-head);font-size:20px;
  font-weight:400;color:var(--opc-blood);line-height:1;transition:transform .2s}
.opc-ask__b[aria-expanded="true"] i{transform:rotate(45deg)}
.opc-ask__a{display:none;padding:0 0 22px;max-width:70ch}
.opc-ask.is-out .opc-ask__a{display:block}
.opc-ask__a p{font-size:16.5px;color:var(--opc-grey);margin:0}

/* ---------- seals ---------- */
.opc-seals{display:flex;gap:clamp(18px,3vw,44px);justify-content:center;
  flex-wrap:wrap;align-items:center;margin-top:32px}
.opc-seals img{width:clamp(58px,7vw,80px);mix-blend-mode:multiply;opacity:.78}

/* ---------- close ---------- */
.opc-close__g{display:grid;grid-template-columns:.85fr 1.15fr;
  gap:clamp(26px,4vw,56px);align-items:center}

/* ---------- fixed bar ---------- */
.opc-dock{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--opc-ink);
  border-top:3px solid var(--opc-blood)}
.opc-dock__in{display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:var(--opc-bar);padding:7px 0}
.opc-dock__t{color:#fff;font-family:var(--opc-head);font-size:14px;margin:0;
  line-height:1.3}
.opc-dock__t span{display:block;font-size:12px;font-weight:400;color:#9AA4B1}
.opc-up{position:fixed;right:15px;bottom:calc(var(--opc-bar) + 13px);z-index:65;
  width:40px;height:40px;border:2px solid var(--opc-ink);background:var(--opc-sheet);
  color:var(--opc-ink);cursor:pointer;display:none;place-items:center;
  font-family:var(--opc-head);font-size:12px;font-weight:700}
.opc-up.is-up{display:grid}

/* ---------- colophon ---------- */
.opc-foot{background:var(--opc-ink);color:#8C96A3;
  padding:clamp(42px,5vw,70px) 0 24px;font-size:15px}
.opc-foot a{color:#A3ADBA;text-decoration:none}
.opc-foot a:hover{color:#fff}
.opc-foot__g{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;
  gap:clamp(22px,3vw,46px)}
.opc-foot__id{width:98px;margin-bottom:16px;filter:brightness(0) invert(1);opacity:.9}
.opc-foot h2{font-family:var(--opc-head);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;margin:0 0 13px;font-weight:700}
.opc-foot ul{display:grid;gap:9px;font-size:14.5px}
.opc-foot__flags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.opc-foot__flags span{font-family:var(--opc-head);font-size:11.5px;
  border:1px solid #39404A;padding:6px 13px}
.opc-foot__fine{border-top:1px solid #39404A;margin-top:34px;padding-top:24px;
  font-family:var(--opc-head);font-size:12.5px;line-height:1.72;color:#79838F}
.opc-foot__fine b{color:#A3ADBA}
.opc-foot__end{margin-top:18px;padding-top:16px;border-top:1px solid #39404A;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-family:var(--opc-head);font-size:12px}

/* ---------- responsive ---------- */
.opc-lead-in__g>*,.opc-close__g>*,.opc-stack>*,.opc-choices>*,.opc-says>*{min-width:0}
@media(max-width:1000px){
  .opc-lead-in__g,.opc-close__g{grid-template-columns:1fr}
  .opc-close__shot{display:none}
  .opc-choices{grid-template-columns:1fr}
  .opc-split{grid-template-columns:1fr}
  .opc-split__rule{display:none}
  .opc-open{display:block}
  .opc-menu{position:absolute;top:100%;left:0;right:0;background:var(--opc-page);
    border-bottom:2px solid var(--opc-ink);flex-direction:column;align-items:stretch;
    gap:0;padding:6px 4.5vw 18px;display:none}
  .opc-menu.is-out{display:flex}
  .opc-menu a{padding:13px 0;border-bottom:1px solid var(--opc-rule)}
  .opc-menu .opc-do{margin-top:13px;justify-content:center;border-bottom:0}
  .opc-foot__g{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  :root{--opc-bar:66px}
  body{font-size:17px}
  .opc-stack--2,.opc-stack--3,.opc-says,.opc-foot__g{grid-template-columns:1fr}
  .opc-ledger li{flex-wrap:wrap}
  .opc-ledger .opc-lead{min-width:40px}
  .opc-dock__t span{display:none}
}

/* ==========================================================================
   Reveal + plate motion — CSS only; JS adds .opc-in
   ========================================================================== */
[data-opc-in]{opacity:0;transform:translateY(20px);
  transition:opacity .55s ease,transform .55s ease}
[data-opc-in].opc-in{opacity:1;transform:none}

/* treemap tiles wipe open from the left */
.opc-tile{transform-box:fill-box;transform-origin:left center;transform:scaleX(0);
  transition:transform .9s cubic-bezier(.22,1,.36,1)}
.opc-in .opc-tile{transform:scaleX(1)}

/* unit-chart dots fade in as a wave */
.opc-pip{opacity:0;transition:opacity .5s ease}
.opc-in .opc-pip{opacity:1}

/* slope lines draw themselves */
.opc-slope{stroke-dasharray:640;stroke-dashoffset:640;
  transition:stroke-dashoffset 1.4s ease .2s}
.opc-in .opc-slope{stroke-dashoffset:0}
.opc-node{opacity:0;transition:opacity .4s ease .9s}
.opc-in .opc-node{opacity:1}

/* dumbbell ranges stretch out from their left stop */
.opc-range{transform-box:fill-box;transform-origin:left center;transform:scaleX(0);
  transition:transform 1s cubic-bezier(.22,1,.36,1)}
.opc-in .opc-range{transform:scaleX(1)}
.opc-cap{opacity:0;transition:opacity .35s ease .8s}
.opc-in .opc-cap{opacity:1}

@media(prefers-reduced-motion:reduce){
  [data-opc-in]{opacity:1;transform:none}
  .opc-tile,.opc-range{transform:none}
  .opc-pip,.opc-node,.opc-cap{opacity:1}
  .opc-slope{stroke-dashoffset:0}
}
