/* ==========================================================================
   DAC — shared site styles
   Loaded by every page: design tokens, nav, hero, footer, buttons.
   Page-specific rules live in assets/css/page-*.css, which load after
   this file and therefore win on conflicts.
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
::selection{background:var(--brand);color:#fff}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 1.25rem}
@media(min-width:768px){
  .wrap{padding:0 2.5rem}
}
@media(min-width:1280px){
  .wrap{padding:0 3rem}
}
.rv.in{opacity:1;transform:none}
#bar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--brand);z-index:60;transition:width .1s linear}
/* ── NAV ── */
nav.sc{background:rgba(237,238,245,.85);backdrop-filter:blur(20px);border-bottom-color:var(--line);padding:.7rem 0}
.nav-in{position:relative;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;
        width:100%;max-width:1200px;margin:0 auto;padding:0 1.25rem}
@media(min-width:768px){
  .nav-in{padding:0 2.5rem}
}
@media(min-width:1280px){
  .nav-in{padding:0 3rem}
}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;min-height:42px;flex-shrink:0}
.brand img{width:28px;height:28px;user-select:none}
.brand b{font-family:'Outfit';font-size:1.35rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.brand i{display:none;font-style:normal;border-left:1px solid rgba(0,0,0,.1);padding-left:.55rem;
         font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
@media(min-width:640px){
  .brand i{display:block}
}
.nav-links{display:none;gap:.1rem}
@media(min-width:1180px){
  .nav-links{display:flex}
}
.nav-links a{padding:.5rem .7rem;border-radius:999px;font-size:.79rem;color:var(--body);text-decoration:none;white-space:nowrap;transition:.2s}
.nav-links a:hover{color:#000;background:rgba(255,255,255,.75)}
.nav-act{display:flex;align-items:center;gap:.55rem;flex-shrink:0}
.ghost:hover{background:#fff;color:var(--ink);border-color:rgba(0,0,0,.3)}
.burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;
        border:1px solid rgba(0,0,0,.1);border-radius:999px;background:#fff;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}
@media(min-width:1180px){
  .burger{display:none}
}
.burger div{position:relative;width:16px;height:12px}
.burger span{position:absolute;left:0;height:1.5px;width:100%;background:var(--ink);border-radius:2px}
.burger span:nth-child(1){top:0}
.burger span:nth-child(2){top:50%;transform:translateY(-50%)}
.burger span:nth-child(3){bottom:0}
/* full-screen menu — a direct child of <body>. Never put it inside <nav>:
   nav has backdrop-filter, which becomes the containing block for position:fixed
   and would clip this overlay to the height of the navbar. */
.menu{position:fixed;inset:0;z-index:100;background:#EDEEF5;display:flex;flex-direction:column;
      overflow-y:auto;opacity:0;pointer-events:none;transition:opacity .25s}
.menu.open{opacity:1;pointer-events:auto}
@media(min-width:1180px){
  .menu{display:none}
}
.menu-top{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem}
@media(min-width:768px){
  .menu-top{padding:1rem 2.5rem}
}
.menu-list{flex:1;padding:.5rem 1.25rem 2.5rem}
@media(min-width:768px){
  .menu-list{padding:.5rem 2.5rem 2.5rem}
}
.menu-list a{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;
             border-bottom:1px solid var(--line);font-family:'Outfit';font-size:1.25rem;
             color:var(--ink);text-decoration:none;transition:color .2s}
.menu-list a:hover{color:var(--brand)}
.menu-cta{display:flex;justify-content:center!important;margin-top:1.5rem;border:none!important;
          background:var(--ink);color:#fff!important;border-radius:999px;padding:.95rem!important;font-size:1rem!important}
/* ── HERO ── */
.hero{position:relative;overflow:hidden;padding:8.5rem 0 3rem}
@media(min-width:768px){
  .hero{padding:10rem 0 3.5rem}
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
h1 em{font-style:italic;background:linear-gradient(120deg,#C558FF,#B026FF 45%,#8A12D8);
      -webkit-background-clip:text;background-clip:text;color:transparent}
/* ── DOC LAYOUT (terms pages) ── */
/* ── FORM (partner page) ── */
.two{display:grid;grid-template-columns:1fr;gap:1rem}
.f{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.f label i{font-style:normal;color:var(--brand)}
.f input::placeholder,.f textarea::placeholder{color:#c7c7d0}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(176,38,255,.11)}
.f select{cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:2.4rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23B026FF' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center}
.err{display:none;font-size:.73rem;color:var(--err)}
.f.bad input,.f.bad select,.f.bad textarea{border-color:var(--err);box-shadow:0 0 0 4px rgba(220,38,38,.07)}
.f.bad .err{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.sp{animation:spin 1s linear infinite}
.setup.on{display:block}
.setup b{display:block;font-family:'Outfit';font-size:.85rem;color:#B91C1C;margin-bottom:.3rem}
.setup p{font-size:.82rem;color:var(--body);line-height:1.7}
.setup code{background:#fff;border:1px solid var(--line);border-radius:.3rem;padding:.05rem .35rem;
            font-family:ui-monospace,monospace;font-size:.78rem;color:var(--brand-deep)}
.done.on{display:block;animation:in .5s cubic-bezier(.22,1,.36,1)}
@keyframes in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.done .go:hover{background:var(--ink);border-color:var(--ink)}
/* ── FOOTER ── */
footer{background:var(--dark);color:#fff;padding:3.5rem 0 1.75rem;position:relative;z-index:10}
.fg{display:grid;grid-template-columns:1fr;gap:2.25rem}
@media(min-width:768px){
  .fg{grid-template-columns:1.6fr 1fr 1.2fr}
}
.fb{display:flex;align-items:center;gap:.5rem;margin-bottom:.9rem}
.fb img{width:30px;height:30px}
.fb b{font-family:'Outfit';font-size:1.3rem;font-weight:600}
.fa{color:#a1a1aa;font-size:.85rem;line-height:1.75;max-width:22rem}
.ft{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.1rem}
.ft span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:.22rem .7rem;font-size:.68rem;color:#d4d4d8}
footer h4{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#71717a;margin-bottom:.9rem;font-weight:600}
.fl{display:flex;flex-direction:column}
.fl a{display:inline-flex;align-items:center;min-height:33px;color:#a1a1aa;font-size:.84rem;text-decoration:none;transition:.2s}
.fl a:hover{color:var(--brand-lite)}
footer .col p{color:#a1a1aa;font-size:.84rem;line-height:1.7;margin-bottom:.7rem}
.fbot{border-top:1px solid rgba(255,255,255,.1);margin-top:2.5rem;padding-top:1.4rem;
      display:flex;flex-wrap:wrap;justify-content:space-between;gap:.7rem;
      color:#71717a;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}
.fbot a{color:#71717a;text-decoration:none}
.fbot a:hover{color:var(--brand-lite)}
/* ── COOKIE ── */
.ck{position:fixed;bottom:1rem;left:1rem;right:1rem;z-index:70;max-width:27rem;background:#fff;
    border:1px solid rgba(176,38,255,.25);border-radius:1rem;padding:1.2rem;
    box-shadow:0 24px 60px -20px rgba(0,0,0,.3);display:none}
@media(min-width:640px){
  .ck{left:1.5rem;right:auto;bottom:1.5rem}
}
.ck.on{display:block;animation:in .4s cubic-bezier(.22,1,.36,1)}
.ck h3{font-family:'Outfit';font-size:.93rem;font-weight:600;margin-bottom:.3rem}
.ck p{font-size:.79rem;line-height:1.6;color:var(--body);margin-bottom:.9rem}
.ck .r{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
.ck button{cursor:pointer;border-radius:999px;padding:.48rem 1.1rem;font-family:'Inter';font-size:.77rem;font-weight:500;transition:.2s}
.ck .a{background:var(--brand);color:#fff;border:1px solid var(--brand)}
.ck .a:hover{background:var(--ink);border-color:var(--ink)}
.ck .d{background:transparent;color:var(--body);border:1px solid rgba(0,0,0,.12)}
.ck .m{margin-left:auto;font-size:.71rem;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}
