@font-face{
  font-family:"Source Serif 4";
  src:url("assets/source-serif-4.ttf") format("truetype-variations");
  font-weight:200 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("assets/ibm-plex-sans.ttf") format("truetype-variations");
  font-weight:100 700;
  font-style:normal;
  font-display:swap;
}
:root{
  color-scheme: light dark;
  --paper:#ffffff;
  --tint:#f5f7f8;
  --ink:#14181d;
  --body:#242b32;
  --muted:#5f6b74;
  --hairline:#e4e8ec;
  --accent:#0e6b5e;
  --accent-ink:#0b544a;
  --accent-weak:#e9f3f1;
  --accent-line:#bfe0d9;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --header-h:60px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#14171c;
    --tint:#1a1e24;
    --ink:#f1f3f5;
    --body:#c8ced5;
    --muted:#8c96a0;
    --hairline:#272c33;
    --accent:#54b6a6;
    --accent-ink:#7ecabd;
    --accent-weak:#122420;
    --accent-line:#254a43;
  }
}
:root[data-theme="dark"]{
  --paper:#14171c;--tint:#1a1e24;--ink:#f1f3f5;--body:#c8ced5;--muted:#8c96a0;
  --hairline:#272c33;--accent:#54b6a6;--accent-ink:#7ecabd;--accent-weak:#122420;--accent-line:#254a43;
}

*,*::before,*::after{box-sizing:inherit}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 24px + env(safe-area-inset-top,0px)); }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  font-feature-settings:"kern" 1,"liga" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ---------- header ---------- */
.site{
  position:sticky; top:0; z-index:20;
  height:var(--header-h);
  padding-top:env(safe-area-inset-top,0px);
  display:flex; align-items:center;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--hairline);
}
.site .wrap{
  width:100%; max-width:1120px; margin:0 auto;
  padding:0 clamp(20px,5vw,48px);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.brand{ display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); }
.brand svg{ width:22px; height:22px; flex:none; color:var(--accent); }
.brand b{ font-family:var(--serif); font-weight:600; font-size:22px; letter-spacing:-.01em; line-height:1; }
.brand .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); transform:translateY(-1px); }
.brand span{ font-size:12.5px; color:var(--muted); letter-spacing:.02em; }
.crumb{ font-size:13.5px; color:var(--muted); }
.crumb a{ color:var(--muted); text-decoration:none; }
.crumb a:hover{ color:var(--accent-ink); }
@media (max-width:560px){ .brand span{display:none} .crumb{display:none} }

/* ---------- masthead ---------- */
.masthead{ max-width:1120px; margin:0 auto; padding:clamp(48px,7vw,88px) clamp(20px,5vw,48px) clamp(20px,4vw,36px); }
.kicker{ font-size:13px; color:var(--accent-ink); letter-spacing:.04em; margin:0 0 14px; }
h1{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(34px,6vw,52px); line-height:1.06; letter-spacing:-.02em;
  margin:0 0 22px; max-width:16ch;
}
.meta{
  display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center;
  padding-top:20px; border-top:1px solid var(--hairline);
  font-size:14px; color:var(--muted);
}
.meta .u{ color:var(--body); }

/* ---------- layout ---------- */
.layout{
  max-width:1120px; margin:0 auto; padding:0 clamp(20px,5vw,48px) 96px;
  display:grid; grid-template-columns:1fr; gap:40px;
}
@media (min-width:940px){
  .layout{ grid-template-columns:236px minmax(0,1fr); gap:64px; align-items:start; }
}

/* ---------- toc ---------- */
.toc-desktop{ display:none; }
@media (min-width:940px){
  .toc-desktop{
    display:block; position:sticky;
    top:calc(var(--header-h) + 40px + env(safe-area-inset-top,0px));
  }
}
.toc-title{ font-size:12.5px; letter-spacing:.03em; color:var(--muted); margin:0 0 14px; }
.toc-list{ list-style:none; margin:0; padding:0; border-left:1px solid var(--hairline); }
.toc-list a{
  display:block; padding:7px 0 7px 16px; margin-left:-1px;
  border-left:2px solid transparent;
  color:var(--muted); text-decoration:none; font-size:14px; line-height:1.35;
  transition:color .15s ease, border-color .15s ease;
}
.toc-list a:hover{ color:var(--ink); }
.toc-list a.active{ color:var(--accent-ink); border-left-color:var(--accent); font-weight:500; }
.toc-list .n{ color:var(--muted); font-variant-numeric:tabular-nums; margin-right:9px; }
.toc-list a.active .n{ color:var(--accent); }

.toc-mobile{
  border:1px solid var(--hairline); border-radius:10px; background:var(--tint);
  padding:2px 4px;
}
@media (min-width:940px){ .toc-mobile{ display:none; } }
.toc-mobile summary{
  cursor:pointer; list-style:none; padding:14px 14px;
  font-family:var(--serif); font-weight:600; color:var(--ink); font-size:16px;
  display:flex; align-items:center; justify-content:space-between;
}
.toc-mobile summary::-webkit-details-marker{ display:none; }
.toc-mobile summary::after{ content:"+"; color:var(--muted); font-family:var(--sans); font-size:20px; }
.toc-mobile[open] summary::after{ content:"–"; }
.toc-mobile ol{ list-style:none; margin:0; padding:4px 8px 12px; }
.toc-mobile a{ display:block; padding:9px 8px; color:var(--body); text-decoration:none; font-size:15px; border-radius:7px; }
.toc-mobile a:hover{ background:var(--paper); }
.toc-mobile .n{ color:var(--muted); font-variant-numeric:tabular-nums; margin-right:8px; }

/* ---------- content ---------- */
.content{ max-width:720px; }
.lede{
  font-family:var(--serif); font-size:clamp(19px,2.4vw,22px); line-height:1.55;
  color:var(--ink); margin:0 0 8px;
}

section.block{ padding-top:44px; scroll-margin-top:calc(var(--header-h) + 24px); }
section.block:first-of-type{ padding-top:8px; }

.h{ display:flex; align-items:baseline; gap:14px; margin:0 0 16px; }
.h .num{
  flex:none; font-family:var(--serif); font-weight:600; font-size:16px;
  color:var(--accent); font-variant-numeric:tabular-nums;
  width:1.9em; padding-top:2px;
}
h2{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(22px,3.2vw,27px); line-height:1.18; letter-spacing:-.01em; margin:0;
}
.content p{ margin:0 0 16px; }
.content p:last-child{ margin-bottom:0; }
.content a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.content a:hover{ text-decoration-thickness:2px; }
strong{ color:var(--ink); font-weight:600; }

ul.items{ list-style:none; margin:0 0 16px; padding:0; }
ul.items li{ position:relative; padding:0 0 0 22px; margin:0 0 11px; }
ul.items li:last-child{ margin-bottom:0; }
ul.items li::before{
  content:""; position:absolute; left:2px; top:12px;
  width:6px; height:1.5px; background:var(--accent);
}

/* AI section — the distinctive part of this policy */
.ai{
  margin-top:18px; padding:22px 24px;
  background:var(--accent-weak);
  border:1px solid var(--accent-line);
  border-left:3px solid var(--accent);
  border-radius:4px;
}
.ai .cap{ font-size:13px; color:var(--accent-ink); margin:0 0 12px; letter-spacing:.02em; }
.ai ul.items li::before{ background:var(--accent); }

/* contact */
.contact{ margin-top:20px; border-top:1px solid var(--hairline); }
.contact dl{ margin:0; }
.contact .row{ display:grid; grid-template-columns:110px 1fr; gap:18px; padding:16px 0; border-bottom:1px solid var(--hairline); }
.contact dt{ color:var(--muted); font-size:14px; }
.contact dd{ margin:0; color:var(--ink); }
.contact dd a{ color:var(--accent-ink); }
@media (max-width:520px){ .contact .row{ grid-template-columns:1fr; gap:4px; } }

/* ---------- footer ---------- */
footer{ border-top:1px solid var(--hairline); background:var(--tint); }
.foot{
  max-width:1120px; margin:0 auto; padding:40px clamp(20px,5vw,48px) 56px;
  display:flex; flex-wrap:wrap; gap:24px 40px; justify-content:space-between; align-items:flex-start;
}
.foot .id b{ font-family:var(--serif); font-weight:600; font-size:19px; color:var(--ink); }
.foot .id p{ margin:8px 0 0; font-size:13.5px; color:var(--muted); line-height:1.6; }
.foot nav{ display:flex; flex-wrap:wrap; gap:8px 24px; font-size:14px; }
.foot nav a{ color:var(--body); text-decoration:none; }
.foot nav a:hover{ color:var(--accent-ink); }
.foot nav a[aria-current]{ color:var(--accent-ink); }

/* ---------- print ---------- */
@media print{
  .site,.toc-desktop,.toc-mobile,footer{ display:none !important; }
  body{ font-size:11pt; color:#000; background:#fff; }
  .layout{ display:block; padding:0; }
  .content{ max-width:none; }
  a{ color:#000; text-decoration:none; }
  .ai{ background:none; border-color:#000; }
  section.block{ page-break-inside:avoid; }
}
