:root{
  --bg:#000000;
  --line:rgba(255,255,255,0.12);
  --white:#f5f5f7;
  --grey:#86868b;
  --grey-dim:#6e6e73;
  --blue:#2997ff;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important; transition:none !important;}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--white);
  font-family:-apple-system, BlinkMacSystemFont, "Inter", "SF Pro Display", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ---------- nav ---------- */
nav.top{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0.72);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
nav.top .inner{
  width:100%;
  max-width:1120px;
  padding-inline:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
nav.top .brand{display:flex;align-items:center;gap:9px;}
nav.top .brand img{width:24px;height:24px;border-radius:6px;}
nav.top .logo{
  font-size:20px;
  font-weight:700;
  letter-spacing:0.01em;
  background:linear-gradient(90deg, #003ea8, #64d2ff);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
nav.top .back{
  font-size:13px;
  color:rgba(245,245,247,0.8);
}
nav.top .back:hover{color:#fff;text-decoration:none;}

/* ---------- content ---------- */
main.legal{
  max-width:760px;
  margin-inline:auto;
  padding:132px 22px 96px;
}
main.legal h1{
  font-size:clamp(2rem, 5vw, 3rem);
  font-weight:700;
  letter-spacing:-0.03em;
  line-height:1.1;
  margin:0 0 10px;
}
.legal-updated{
  font-size:13px;
  color:var(--grey-dim);
  margin:0 0 48px;
}
main.legal section{
  padding-top:34px;
  border-top:1px solid rgba(255,255,255,0.08);
  margin-top:34px;
}
main.legal section:first-of-type{border-top:none;padding-top:0;margin-top:0;}
main.legal h2{
  font-size:1.25rem;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0 0 14px;
}
main.legal p,
main.legal li{
  font-size:0.98rem;
  line-height:1.65;
  color:var(--grey);
}
main.legal p{margin:0 0 14px;}
main.legal strong{color:var(--white);font-weight:600;}
main.legal ul{margin:0 0 14px;padding-left:20px;}
main.legal li{margin-bottom:7px;}

.legal-table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 16px;
  font-size:0.92rem;
}
.legal-table th,
.legal-table td{
  text-align:left;
  padding:11px 12px;
  border:1px solid var(--line);
  color:var(--grey);
  line-height:1.5;
  vertical-align:top;
}
.legal-table th{
  color:var(--white);
  font-weight:600;
  background:rgba(255,255,255,0.04);
}
@media (max-width:560px){
  .legal-table{font-size:0.85rem;}
  .legal-table th,.legal-table td{padding:8px 9px;}
}

/* ---------- footer ---------- */
footer{
  padding:40px 22px 32px;
  border-top:1px solid rgba(255,255,255,0.1);
  background:#000;
}
footer .wrap{
  max-width:1120px;
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  gap:18px;
}
footer .top-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:16px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
footer .brand-line{
  font-size:13px;
  color:var(--grey);
  max-width:44ch;
  line-height:1.5;
}
footer .brand-line strong{color:var(--white);}
footer a.mail{color:var(--blue);font-size:13px;}
footer .fnav{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  font-size:12px;
}
footer .fnav a{color:var(--grey);}
footer .fnav a:hover{color:var(--white);text-decoration:none;}
footer .legal-id{
  font-size:12px;
  color:var(--grey-dim);
  line-height:1.6;
  margin:0;
}
footer .bottom-row{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  font-size:12px;
  color:var(--grey-dim);
}
