:root{
  --night:#1B0F2E; --plum:#2A1B45; --paper:#F5F0FA; --paper-2:#ECE3F5;
  --lime:#D6FF4F; --pink:#FF4FA0; --lilac:#B9A8D9; --lilac-text:#F1EBFB;
  --ink-soft:#4a4658; --line:#D9CDEA;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--night);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.7;font-size:16px;}
a{color:var(--night);text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:3px;}
a:hover{text-decoration-thickness:2px;}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:4px;}

.bar{background:var(--night);padding:18px 24px;}
.bar-in{max-width:760px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.bar a{text-decoration:none;}
.wordmark{font-family:'Fraunces',serif;font-weight:600;font-size:22px;color:var(--lilac-text);}
.back{font-size:14px;font-weight:600;color:var(--night);background:var(--lime);padding:9px 16px;border-radius:999px;}

.hero{background:var(--night);color:var(--lilac-text);padding:28px 24px 64px;}
.hero-in{max-width:760px;margin:0 auto;}
.kicker{font-family:'Fraunces',serif;font-style:italic;font-size:18px;color:var(--lime);margin-bottom:10px;}
h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(34px,6vw,52px);line-height:1.08;letter-spacing:-.01em;}
.updated{margin-top:14px;font-size:14px;color:var(--lilac);}

main{max-width:760px;margin:0 auto;padding:48px 24px 90px;}
.summary{background:#fff;border:2px solid var(--night);border-left:8px solid var(--pink);border-radius:14px;padding:22px 24px;margin-bottom:44px;}
.summary h2{margin:0 0 8px;font-size:20px;}
.summary p{color:var(--night);margin:0 0 10px;font-size:16px;}
.summary p:last-child{margin-bottom:0;}
.toc{margin:0 0 44px;padding:0;list-style:none;columns:2;column-gap:32px;font-size:15px;}
.toc li{margin:0 0 6px;break-inside:avoid;}
h2{font-family:'Fraunces',serif;font-weight:600;font-size:26px;line-height:1.2;margin:44px 0 12px;scroll-margin-top:20px;}
h3{font-family:'Fraunces',serif;font-weight:600;font-size:19px;margin:22px 0 6px;}
p{margin:0 0 14px;color:var(--ink-soft);}
ul{margin:0 0 16px;padding-left:22px;color:var(--ink-soft);}
li{margin:0 0 8px;}
strong{color:var(--night);}
.callout{background:var(--paper-2);border-radius:14px;padding:18px 22px;margin:0 0 18px;}
.callout p:last-child{margin-bottom:0;}
.callout p{color:var(--night);}
table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:15px;}
th,td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line);}
th{font-family:'Fraunces',serif;font-weight:600;color:var(--night);background:var(--paper-2);}
td{color:var(--ink-soft);}
.sec-n{color:var(--pink);font-weight:700;}

.foot{background:var(--night);color:var(--lilac);padding:36px 24px 52px;font-size:14px;text-align:center;}
.foot a{color:var(--lilac-text);}
.foot .links{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;}

@media (max-width:640px){
  .toc{columns:1;}
  main{padding-top:36px;}
  h2{font-size:23px;}
}
@media print{
  .bar,.foot,.back{display:none;}
  .hero{background:none;color:var(--night);padding:0 0 10px;}
  .kicker,.updated{color:var(--ink-soft);}
}
