/* ── Tokens ── */
:root {
  --sand:    #E0D0BF;
  --cream:   #FEF7E3;
  --tan:     #DCAF86;
  --caramel: #BF825C;
  --cocoa:   #A76C4E;
  --ink:     #2a1f17;
  --ink-2:   #5a473a;
  --ink-3:   #8a7565;
  --ink-4:   #b09a85;
  --line:    rgba(167,108,78,.12);
  --glass:   color-mix(in oklab, white 58%, transparent);
  --glass-b: color-mix(in oklab, white 72%, transparent);
  --gshadow: 0 1px 0 rgba(255,255,255,.75) inset,
             0 -1px 0 rgba(167,108,78,.08) inset,
             0 24px 48px -20px rgba(90,55,30,.18),
             0 6px 20px -8px rgba(90,55,30,.12);
  --ease:    cubic-bezier(0.16,1,0.3,1);
}

/* ── Reset ── */
*,::before,::after { box-sizing:border-box; margin:0; padding:0 }
html { -webkit-font-smoothing:antialiased; scroll-behavior:smooth }
body {
  font-family:"Geist",ui-sans-serif,system-ui,sans-serif;
  background:linear-gradient(180deg,var(--cream),#fbf1d9 40%,#f5e7c8 80%,#f1dcb4 100%);
  color:var(--ink);
  min-height:100dvh;
  overflow-x:hidden;
  letter-spacing:-0.005em;
}
::selection { background:var(--caramel); color:var(--cream) }
a { color:inherit; text-decoration:none }
input,button { font:inherit; border:none; outline:none; background:none; color:inherit; cursor:pointer }

/* ── Background blobs ── */
.blobs { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden }
.blob  { position:absolute; border-radius:50%; filter:blur(90px); mix-blend-mode:multiply }
.b1 { width:600px; height:600px; background:var(--tan);     right:-160px; top:-100px;  opacity:.4  }
.b2 { width:500px; height:500px; background:var(--caramel); left:-100px;  bottom:0;    opacity:.28 }
.b3 { width:420px; height:420px; background:var(--sand);    left:40%;     top:40%;     opacity:.45 }

/* ── Keyframes ── */
@keyframes navIn {
  from { transform:translateY(-130%) }
  to   { transform:translateY(0) }
}
@keyframes fadeUp {
  from { opacity:0; transform:translateY(16px) }
  to   { opacity:1; transform:translateY(0) }
}
@keyframes lineIn {
  from { transform:scaleX(0) }
  to   { transform:scaleX(1) }
}
@keyframes dotPulse {
  0%,100% { box-shadow:0 0 0 4px color-mix(in oklab,var(--caramel) 25%,transparent) }
  50%     { box-shadow:0 0 0 9px color-mix(in oklab,var(--caramel) 0%, transparent) }
}

/* ── Nav island ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:center;
  padding:20px 24px; pointer-events:none;
}
.nav-inner {
  display:flex; align-items:center; gap:6px;
  padding:6px 6px 6px 18px;
  background:var(--glass);
  backdrop-filter:blur(32px) saturate(180%);
  -webkit-backdrop-filter:blur(32px) saturate(180%);
  border:1px solid var(--glass-b);
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset,
             0 -1px 0 rgba(167,108,78,.06) inset,
             0 16px 48px -16px rgba(90,55,30,.22),
             0 4px 16px -6px rgba(90,55,30,.12);
  border-radius:999px; pointer-events:all; white-space:nowrap;
  animation:navIn .9s var(--ease) .1s both;
}
.nav-sep   { width:1px; height:18px; background:var(--line); margin:0 6px; flex-shrink:0 }
.nav-links { display:flex; gap:2px }
.nav-links a {
  font-size:13.5px; color:var(--ink-3); padding:7px 12px; border-radius:999px;
  transition:color .2s, background .2s;
}
.nav-links a:hover,
.nav-links a[aria-current] { color:var(--ink); background:rgba(167,108,78,.07) }
.nav-login {
  font-size:13.5px; color:var(--ink-3); padding:7px 14px; border-radius:999px;
  transition:color .2s, background .2s;
}
.nav-login:hover { color:var(--ink); background:rgba(167,108,78,.07) }
.nav-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 18px; border-radius:999px; font-size:13.5px; font-weight:500;
  background:linear-gradient(180deg,var(--caramel),var(--cocoa));
  color:var(--cream);
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset, 0 5px 14px -5px rgba(167,108,78,.55);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.nav-btn:hover {
  transform:translateY(-1px);
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset, 0 8px 20px -6px rgba(167,108,78,.65);
}
.nav-badge {
  display:inline-flex; align-items:center; gap:5px;
  font-family:"Geist Mono"; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--cocoa); padding:4px 10px; border-radius:999px; margin-right:2px;
  background:color-mix(in oklab,var(--caramel) 12%,transparent);
  border:1px solid color-mix(in oklab,var(--caramel) 22%,transparent);
}
.nav-badge-dot {
  width:5px; height:5px; border-radius:50%;
  background:var(--caramel); animation:dotPulse 2.4s ease-in-out infinite;
}
.nav-logo img { height:20px; width:auto; display:block }
@media(max-width:900px) { .nav-links,.nav-sep,.nav-badge { display:none } }
@media(max-width:600px) { .nav-login { display:none } }

/* ── Layout ── */
.container { max-width:1140px; margin:0 auto; padding:0 40px }
.wrap      { position:relative; z-index:3 }
@media(max-width:768px) { .container { padding:0 24px } }

/* ── Buttons ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 24px; border-radius:999px; font-size:14px; font-weight:500;
  background:linear-gradient(180deg,var(--caramel),var(--cocoa));
  color:var(--cream);
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset, 0 10px 28px -10px rgba(167,108,78,.65);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.btn-primary:hover {
  transform:translateY(-2px);
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset, 0 16px 36px -10px rgba(167,108,78,.72);
}
.btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 22px; border-radius:999px; font-size:14px; font-weight:500;
  background:var(--glass); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-b); box-shadow:var(--gshadow); color:var(--ink-2);
  transition:transform .4s var(--ease), color .2s;
}
.btn-ghost:hover { transform:translateY(-2px); color:var(--ink) }

/* ── Footer (dark) ── */
.footer { padding:64px 0 40px; margin-top:80px; background:linear-gradient(160deg,#100804,#1e120a) }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px }
@media(max-width:900px) { .footer-grid { grid-template-columns:1fr 1fr; gap:36px } .footer-brand { grid-column:1/-1 } }
@media(max-width:480px) { .footer-grid { grid-template-columns:1fr } }
.footer-logo     { margin-bottom:14px }
.footer-tagline  { font-size:14px; color:rgba(254,247,227,.42); line-height:1.6; max-width:28ch; margin-bottom:20px }
.footer-socials  { display:flex; gap:8px }
.social-a {
  width:36px; height:36px; border-radius:10px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; color:rgba(254,247,227,.45);
  transition:color .2s, transform .3s var(--ease), background .2s;
}
.social-a:hover { color:var(--cream); background:rgba(255,255,255,.12); transform:translateY(-3px) }
.footer-col-h {
  font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(254,247,227,.35); margin-bottom:16px; font-family:"Geist Mono";
}
.footer-col-links { list-style:none; display:flex; flex-direction:column; gap:10px }
.footer-col-links a { font-size:14px; color:rgba(254,247,227,.45); transition:color .2s }
.footer-col-links a:hover { color:var(--cream) }
.footer-bottom {
  border-top:1px solid rgba(255,255,255,.07); padding-top:28px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
  font-size:13px; color:rgba(254,247,227,.28);
}
.footer-bottom-links { display:flex; gap:24px }
.footer-bottom-links a { color:rgba(254,247,227,.28); transition:color .2s }
.footer-bottom-links a:hover { color:rgba(254,247,227,.7) }

/* ── Legal pages ── */
.scene { position:relative; z-index:2; max-width:740px; margin:0 auto; padding:120px 24px 80px }
.page-hd { padding-bottom:40px; position:relative }
.page-hd::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background:var(--line); transform:scaleX(0); transform-origin:left;
  animation:lineIn .75s var(--ease) 1.06s both;
}
.page-hd .eyebrow    { opacity:0; animation:fadeUp .55s var(--ease) .62s both }
.page-hd .page-title { opacity:0; animation:fadeUp .6s  var(--ease) .76s both }
.page-hd .page-meta  { opacity:0; animation:fadeUp .5s  var(--ease) .9s  both }
.eyebrow {
  font-family:"Geist Mono"; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--cocoa); display:inline-flex; align-items:center; gap:8px; margin-bottom:14px;
}
.eyebrow .dot {
  width:6px; height:6px; border-radius:50%; background:var(--caramel); flex-shrink:0;
  box-shadow:0 0 0 4px color-mix(in oklab,var(--caramel) 25%,transparent);
}
.page-title { font-size:clamp(32px,6vw,52px); font-weight:500; letter-spacing:-.04em; line-height:1.05; margin-bottom:10px }
.page-meta  { font-size:15px; color:var(--ink-3) }
.legal-sec {
  padding:36px 0; border-bottom:1px solid var(--line);
  opacity:0; transform:translateY(18px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
}
.legal-sec.visible { opacity:1; transform:translateY(0) }
.legal-sec:last-of-type { border-bottom:none }
.legal-sec h2 {
  font-family:"Geist Mono"; font-size:10px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--cocoa); margin-bottom:18px;
}
.legal-sec p,
.legal-sec address { font-size:15px; line-height:1.8; color:var(--ink-2); font-style:normal }
.legal-sec p + p   { margin-top:12px }
.legal-sec ul,
.legal-sec ol      { font-size:15px; line-height:1.8; color:var(--ink-2); padding-left:20px; margin-top:10px }
.legal-sec li      { margin-bottom:6px }
.legal-sec a       { color:var(--caramel); text-decoration:underline; text-underline-offset:3px }
.legal-sec a:hover { color:var(--cocoa) }
.legal-sec strong  { font-weight:500; color:var(--ink) }
.back-link {
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:var(--ink-3); margin-top:44px;
  transition:color .2s var(--ease);
}
.back-link:hover { color:var(--ink) }
@media(max-width:480px) {
  .scene      { padding:100px 20px 60px }
  .page-title { font-size:clamp(28px,8vw,40px) }
  .legal-sec  { padding:28px 0 }
}

/* ── Print (legal pages) ── */
.print-hd { display:none }
@media print {
  * { animation:none !important; transition:none !important }
  .nav, .footer, .blobs { display:none !important }
  body { background:#fff !important; color:#111; -webkit-print-color-adjust:exact; print-color-adjust:exact }
  .scene { padding:0 !important; max-width:none !important }
  .print-hd { display:block; margin-bottom:16pt }
  .print-top { display:flex; justify-content:space-between; align-items:flex-end; padding-bottom:7pt }
  .print-wordmark { height:17pt; display:block }
  .print-addr { font-family:"Geist Mono",monospace; font-size:6.5pt; color:#555; line-height:1.6; text-align:right }
  .print-rule { border:none; border-top:.5pt solid #aaa; margin:0 }
  .page-hd { border-bottom:.5pt solid #ccc !important; padding-bottom:13pt }
  .page-hd::after { display:none !important }
  .eyebrow { font-size:6.5pt !important; letter-spacing:.16em; color:#888; opacity:1 !important; margin-bottom:5pt }
  .eyebrow .dot { box-shadow:none !important; width:4px; height:4px }
  .page-title { font-size:19pt !important; letter-spacing:-.015em !important; opacity:1 !important; transform:none !important; margin-bottom:4pt }
  .page-meta { font-size:8pt; color:#666; opacity:1 !important }
  .legal-sec { opacity:1 !important; transform:none !important; border-bottom:.4pt solid #ddd; page-break-inside:avoid; padding:10pt 0; orphans:3; widows:3 }
  .legal-sec:last-of-type { border-bottom:none; padding-bottom:0 }
  .legal-sec h2 { color:#777; font-size:6.5pt; letter-spacing:.14em; margin-bottom:6pt; page-break-after:avoid }
  .legal-sec p, .legal-sec address { font-size:10pt; color:#111; line-height:1.5; font-style:normal }
  .legal-sec p + p { margin-top:5pt }
  .legal-sec ul, .legal-sec ol { font-size:10pt; color:#111; line-height:1.5; padding-left:13pt; margin-top:4pt }
  .legal-sec li { margin-bottom:2pt }
  .legal-sec a { color:#BF825C; text-decoration:none }
  .legal-sec strong { color:#000 }
  .back-link { display:none !important }
  @page { margin:1.8cm 2cm; size:A4 }
}
