:root { --ink:#171717; --muted:#646464; --paper:#f4f4f1; --white:#fbfbf8; --line:rgba(23,23,23,.16); --display:"Fraunces",Georgia,serif; --body:"DM Sans",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--body); font-size:16px; line-height:1.75; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:4px; }
a:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
::selection { color:var(--white); background:var(--ink); }
.legal-nav { position:relative; z-index:10; height:88px; padding:0 clamp(24px,4vw,72px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(244,244,241,.9); backdrop-filter:blur(14px); }
.legal-logo { font-family:var(--display); font-size:25px; font-weight:600; letter-spacing:-.04em; text-decoration:none; }
.back-link { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:700; text-decoration:none; }
.back-link span { transition:transform .25s ease; }.back-link:hover span { transform:translateX(-5px); }
.legal-layout { width:min(1280px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:230px minmax(0,780px); gap:clamp(60px,9vw,150px); justify-content:center; }
.legal-aside { position:sticky; top:0; height:100vh; padding-top:96px; align-self:start; }
.legal-aside p { margin:0 0 20px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.legal-aside nav { display:flex; flex-direction:column; }
.legal-aside a { padding:8px 0; color:var(--muted); font-size:12px; font-weight:600; text-decoration:none; transition:color .2s,transform .2s; }
.legal-aside a:hover,.legal-aside a.active { color:var(--ink); transform:translateX(5px); }
main { min-width:0; padding:100px 0 130px; }
.legal-kicker { margin-bottom:24px; font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; animation:rise .7s ease both; }
h1 { margin:0; font-family:var(--display); font-size:clamp(58px,8vw,104px); font-weight:500; letter-spacing:-.06em; line-height:.88; animation:rise .85s .08s cubic-bezier(.16,1,.3,1) both; }
.meta { margin:30px 0 64px; color:var(--muted); font-size:13px; animation:rise .85s .16s ease both; }
.intro { margin:0 0 100px; padding:32px 0 0 40px; border-top:1px solid var(--ink); font-family:var(--display); font-size:clamp(23px,3vw,32px); line-height:1.4; animation:rise .85s .22s ease both; }
section { position:relative; scroll-margin-top:30px; padding:62px 0 70px; border-top:1px solid var(--line); opacity:0; transform:translateY(35px); filter:blur(4px); transition:opacity .75s ease,transform .75s cubic-bezier(.16,1,.3,1),filter .6s ease; }
section.visible { opacity:1; transform:none; filter:none; }
.section-number { position:absolute; top:68px; left:-52px; color:var(--muted); font-size:11px; font-weight:700; }
h2 { margin:0 0 30px; font-family:var(--display); font-size:clamp(34px,5vw,52px); font-weight:500; letter-spacing:-.04em; line-height:1; }
p { margin:0 0 18px; }
ul { margin:0 0 20px; padding:0; list-style:none; }
li { position:relative; margin:0; padding:13px 0 13px 26px; border-bottom:1px solid var(--line); }
li::before { content:"—"; position:absolute; left:0; }
strong { font-weight:700; }
.table-wrap { margin:10px 0 30px; overflow-x:auto; border:1px solid var(--ink); border-radius:2px; background:var(--white); }
table { width:100%; min-width:720px; border-collapse:collapse; font-size:13px; line-height:1.55; }
th,td { padding:18px; text-align:left; vertical-align:top; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
th:last-child,td:last-child { border-right:0; } tbody tr:last-child td { border-bottom:0; }
th { color:var(--white); background:var(--ink); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
tbody tr { transition:background .2s; } tbody tr:hover { background:#e9e9e5; }
.contact-section { margin-top:30px; padding:50px; color:var(--white); border:0; background:var(--ink); }
.contact-section .section-number { left:18px; top:20px; color:#aaa; }
.contact-section a { color:var(--white); }
footer { padding:28px clamp(24px,4vw,72px); display:flex; justify-content:space-between; color:#aaa; background:var(--ink); font-size:12px; }
footer a { color:var(--white); }
@keyframes rise { from { opacity:0; transform:translateY(28px); filter:blur(5px); } to { opacity:1; transform:none; filter:none; } }
@media(max-width:900px) { .legal-layout { grid-template-columns:1fr; width:min(760px,calc(100% - 40px)); }.legal-aside { display:none; } main { padding-top:72px; }.section-number { position:static; display:block; margin-bottom:12px; }.intro { padding-left:24px; } }
@media(max-width:600px) { .legal-nav { height:72px; padding:0 20px; } .back-link { font-size:0; }.back-link span { font-size:22px; } main { padding:55px 0 80px; } h1 { font-size:54px; }.intro { margin-bottom:70px; font-size:22px; padding-left:18px; } section { padding:48px 0; }.contact-section { padding:52px 24px 28px; margin-inline:-4px; } footer { flex-direction:column; gap:8px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } section { opacity:1; transform:none; filter:none; } }
