/* Dependencies: local Nunito font files and shared Pulselio brand assets. */
@font-face { font-family: 'Nunito'; src: url('/fonts/nunito-variable.ttf') format('truetype'); font-weight: 200 900; font-style: normal; font-display: swap; }
:root { --ink:#080a10; --muted:#626a7c; --blue:#3267f5; --indigo:#4a3ff2; --purple:#7052f4; --line:#e3e7f0; --wash:#f2f4ff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 82% 5%,rgba(112,82,244,.12),transparent 24rem),linear-gradient(135deg,#fbfaf7,#f4f7ff 58%,#fff8fb); font-family: 'Nunito',system-ui,sans-serif; }
a { color: inherit; }
.head { width:min(1060px,calc(100% - 36px)); height:76px; margin:auto; display:flex; justify-content:space-between; align-items:center; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; font-size:20px; font-weight:900; letter-spacing:-.03em; }
.brand img { width:40px; height:40px; border-radius:12px; box-shadow:0 8px 24px rgba(74,63,242,.2); }
.back { padding:10px 14px; color:var(--indigo); background:rgba(255,255,255,.75); border:1px solid var(--line); border-radius:12px; font-size:13px; font-weight:800; text-decoration:none; }
.shell { width:min(1060px,calc(100% - 36px)); margin:22px auto 90px; display:grid; grid-template-columns:250px minmax(0,1fr); gap:56px; align-items:start; }
.side { position:sticky; top:28px; padding:24px; border:1px solid rgba(255,255,255,.95); border-radius:22px; background:rgba(255,255,255,.68); box-shadow:0 20px 60px rgba(35,43,72,.07); }
.side strong { display:block; margin-bottom:16px; font-size:13px; }
.side nav { display:flex; flex-direction:column; gap:10px; }
.side nav a { color:var(--muted); font-size:12px; text-decoration:none; }
.side nav a:hover { color:var(--indigo); }
.legal { padding:48px clamp(24px,6vw,72px) 70px; border:1px solid rgba(255,255,255,.95); border-radius:30px; background:rgba(255,255,255,.82); box-shadow:0 30px 90px rgba(35,43,72,.08); }
.tag { color:var(--indigo); text-transform:uppercase; letter-spacing:.12em; font-size:11px; font-weight:900; }
h1 { margin:12px 0 8px; font-size:clamp(40px,6vw,66px); line-height:1; letter-spacing:-.05em; }
.date { margin:0 0 42px; color:var(--muted); font-size:13px; }
.summary { padding:20px 22px; border-radius:18px; background:var(--wash); color:#3c4355; line-height:1.65; }
h2 { margin:46px 0 12px; font-size:24px; letter-spacing:-.025em; scroll-margin-top:24px; }
h3 { margin:26px 0 8px; font-size:17px; }
p,li { color:#555e70; font-size:15px; line-height:1.75; }
ul { padding-left:22px; }
li + li { margin-top:8px; }
.callout { margin-top:30px; padding:20px 22px; border-left:4px solid var(--indigo); border-radius:0 16px 16px 0; background:#f5f6ff; }
.mail { color:var(--indigo); font-weight:800; overflow-wrap:anywhere; }
.foot { width:min(1060px,calc(100% - 36px)); margin:0 auto; padding:28px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; color:#858c9b; font-size:11px; }
.foot nav { display:flex; gap:16px; }
.foot a { text-decoration:none; }
:focus-visible { outline:3px solid rgba(50,103,245,.42); outline-offset:4px; border-radius:6px; }
@media (max-width:760px) { .shell { grid-template-columns:1fr; gap:18px; } .side { position:static; } .side nav { display:grid; grid-template-columns:1fr 1fr; } .legal { padding:36px 24px 52px; } .foot { flex-direction:column; } }
@media (max-width:480px) { .back { font-size:0; } .back::after { content:'Home'; font-size:13px; } .side nav { grid-template-columns:1fr; } h1 { font-size:42px; } }
