:root{
      --op-bg-deep:#020713;
      --op-text-main:#e5f1ff;
      --op-text-soft:#a0b2d2;
      --op-text-faded:#7d90b2;
      --op-text-bright:#ffffff;

      --op-border-soft:rgba(96,145,220,.9);
      --op-border-soft2:rgba(122,190,255,.45);

      --op-ink:#04101f;
    }

    body{
      margin:0;
      min-height:100vh;
      background:
        radial-gradient(circle at 12% -10%, rgba(121,190,255,.18) 0, transparent 55%),
        radial-gradient(circle at 90% -18%, rgba(98,170,255,.14) 0, transparent 60%),
        linear-gradient(180deg, #020713 0%, #01030b 52%, #000 100%);
      color:var(--op-text-main);
      font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    }

    main{ padding:1.4rem 0 3.5rem; }
    @media (max-width:575.98px){ main{ padding:1.1rem 0 3rem; } }

    a{ color:rgba(148,206,255,.98); text-decoration:none; }
    a:hover{ text-decoration:underline; }

    /* Glass shell (kept subtle; the content is not in a “card”) */
    .op-shell{
      position:relative;
      border-radius:22px;
      border:1px solid rgba(96,145,220,.55);
      background:
        radial-gradient(circle at top left,
          rgba(92,160,255,.16) 0,
          rgba(3,10,24,.65) 45%,
          rgba(1,3,10,.55) 100%);
      box-shadow:
        0 0 0 1px rgba(0,0,0,.97),
        0 28px 60px rgba(5,20,48,.84);
      overflow:hidden;
    }

    /* Soft “page glow” behind text for readability */
    .op-shell::before{
      content:"";
      position:absolute;
      inset:-2px;
      background:
        radial-gradient(circle at 50% 0%,
          rgba(145,214,255,.16) 0,
          rgba(0,0,0,0) 48%),
        linear-gradient(180deg,
          rgba(0,0,0,.35) 0%,
          rgba(0,0,0,.10) 20%,
          rgba(0,0,0,.30) 100%);
      pointer-events:none;
      z-index:0;
    }

    .op-wrap{
      position:relative;
      z-index:1;
      padding: 1.2rem 1.25rem 1.6rem;
    }
    @media (max-width:575.98px){
      .op-wrap{ padding: 1rem 1rem 1.35rem; }
    }

    /* Top meta row */
    .op-meta{
      display:flex;
      flex-wrap:wrap;
      gap:.6rem 1rem;
      align-items:center;
      justify-content:space-between;
      margin-bottom:.85rem;
    }

    .op-kicker{
      display:flex;
      align-items:center;
      gap:.55rem;
      font-size:.78rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color:var(--op-text-faded);
    }

    .op-chiprow{
      display:flex;
      flex-wrap:wrap;
      gap:.45rem;
      align-items:center;
    }

    .op-chip{
      display:inline-flex;
      align-items:center;
      gap:.35rem;
      border-radius:999px;
      padding:.22rem .65rem;
      border:1px solid var(--op-border-soft2);
      background: rgba(3,10,24,.72);
      color: var(--op-text-soft);
      font-size:.76rem;
      letter-spacing:.04em;
      white-space:nowrap;
    }
    .op-chip i{ color: rgba(148,206,255,.92); }

    /* Title */
    .op-title{
      font-size:clamp(1.55rem, 2.8vw, 2.15rem);
      font-weight:700;
      color:var(--op-text-bright);
      margin:0 0 .35rem;
      line-height:1.18;
    }

    .op-subtitle{
      margin:0 0 1.05rem;
      color: var(--op-text-soft);
      font-size:.92rem;
      line-height:1.55;
      max-width: 90ch;
    }

    .op-divider{
      height:1px;
      border-radius:999px;
      background: linear-gradient(90deg, rgba(110,180,255,.08), rgba(110,180,255,.70), rgba(110,180,255,.08));
      margin: 0.85rem 0 1.05rem;
    }

    /* Reading layout */
    .op-reading{
      display:grid;
      grid-template-columns: 1fr;
      gap: 1.15rem;
    }

    /* Optional TOC */
    .op-toc{
      border:1px solid rgba(122,190,255,.35);
      background: rgba(3,10,24,.55);
      border-radius:18px;
      padding: .85rem .95rem;
      box-shadow: inset 0 0 10px rgba(0,0,0,.85);
    }

    .op-toc-title{
      margin:0 0 .55rem;
      font-size:.78rem;
      text-transform:uppercase;
      letter-spacing:.16em;
      color: var(--op-text-faded);
      display:flex;
      align-items:center;
      gap:.45rem;
    }

    .op-toc a{
      display:block;
      padding:.35rem .25rem;
      border-radius:12px;
      color: rgba(148,206,255,.98);
      text-decoration:none;
      font-size:.88rem;
      line-height:1.35;
    }
    .op-toc a:hover{
      background: rgba(148,206,255,.08);
      text-decoration:none;
    }

    /* Policy content typography (purpose-built for long reading) */
    .op-policy{
      color: rgba(229,241,255,.95);
      font-size: 0.98rem;
      line-height: 1.75;
      letter-spacing: .005em;
      max-width: 92ch;
    }

    .op-policy h2{
      margin: 1.25rem 0 .5rem;
      font-size: 1.15rem;
      font-weight: 750;
      color: var(--op-text-bright);
      line-height:1.35;
    }

    .op-policy h3{
      margin: 1rem 0 .45rem;
      font-size: 1.02rem;
      font-weight: 720;
      color: rgba(230,244,255,.98);
      line-height:1.35;
    }

    .op-policy p{ margin: .55rem 0; color: rgba(229,241,255,.92); }

    .op-policy ul, .op-policy ol{
      margin: .55rem 0 .75rem 1.2rem;
      padding:0;
      color: rgba(229,241,255,.92);
    }
    .op-policy li{ margin: .35rem 0; }

    .op-policy strong{ color: rgba(255,255,255,.98); font-weight: 750; }

    .op-policy blockquote{
      margin: .9rem 0;
      padding: .85rem .95rem;
      border-radius: 18px;
      border: 1px solid rgba(122,190,255,.45);
      background: rgba(3,10,24,.62);
      box-shadow: inset 0 0 10px rgba(0,0,0,.86);
      color: rgba(229,241,255,.92);
    }
    .op-policy blockquote p{ margin:0; }

    .op-policy hr{
      border:0;
      height:1px;
      margin: 1.15rem 0;
      background: linear-gradient(90deg, rgba(110,180,255,.08), rgba(110,180,255,.55), rgba(110,180,255,.08));
    }

    .op-policy img{
      max-width:100%;
      height:auto;
      border-radius: 18px;
      border: 1px solid rgba(122,190,255,.35);
      box-shadow: 0 18px 34px rgba(0,0,0,.9);
      margin: .75rem 0;
      display:block;
    }

    .op-callout{
      margin: .95rem 0;
      padding: .85rem .95rem;
      border-radius: 18px;
      border: 1px solid rgba(83,224,179,.55);
      background: rgba(6,25,18,.55);
      box-shadow: inset 0 0 10px rgba(0,0,0,.86);
      color: rgba(196,255,236,.95);
    }

    /* Footer meta */
    .op-footer-meta{
      display:flex;
      flex-wrap:wrap;
      gap:.6rem 1rem;
      align-items:center;
      justify-content:space-between;
      margin-top: 1.1rem;
      padding-top: .95rem;
      border-top: 1px solid rgba(122,190,255,.28);
      color: var(--op-text-faded);
      font-size: .84rem;
    }

    .op-mini-links{
      display:flex;
      flex-wrap:wrap;
      gap:.55rem;
      align-items:center;
    }

    .op-mini-links a{
      color: rgba(148,206,255,.98);
      text-decoration:none;
      padding:.18rem .45rem;
      border-radius: 999px;
      border:1px solid rgba(122,190,255,.28);
      background: rgba(3,10,24,.55);
    }
    .op-mini-links a:hover{
      text-decoration:none;
      border-color: rgba(214,238,255,.65);
      background: rgba(148,206,255,.08);
    }

    /* Two-column option on desktop (TOC + content) */
    @media (min-width: 992px){
      .op-reading{
        grid-template-columns: 320px 1fr;
        align-items:start;
      }
      .op-toc{
        position: sticky;
        top: 1rem;
      }
      .op-policy{
        font-size: 1.02rem;
      }
    }