/* ============================================================
   n//crew · design system — tokens + base + componentes
   mobile-first · dark mode · WCAG 2.1 AA · reduced-motion
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  /* cor — light (paper) */
  --ink:#0A0A0A; --soot:#1A1A1A; --mute:#6B6B68;
  --paper:#FAFAF7; --pure:#FFFFFF; --cream:#EAE6DA;
  --signal:#FF6A1A; --signal-dark:#CC4A00; --signal-50:#FFE9D9;
  --signal-text:#BD4300;
  --bg:var(--paper); --bg-card:var(--pure); --bg-alt:var(--cream);
  --tx:var(--ink); --tx-2:var(--soot); --tx-3:var(--mute);
  --line:rgba(10,10,10,.09); --line-2:rgba(10,10,10,.06);
  /* tipografia */
  --code:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Inter',system-ui,sans-serif;
  --serif:'Fraunces',Georgia,serif;
  /* escala (mobile-first, fluida) */
  --fs-display:clamp(34px,8vw,64px);
  --fs-h2:clamp(28px,5vw,48px);
  --fs-h3:clamp(20px,3vw,26px);
  --fs-body:16px; --fs-small:14px; --fs-micro:12px;
  /* espaçamento 8pt */
  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:32px; --s6:48px; --s7:64px; --s8:96px;
  /* raio + sombra */
  --r-sm:8px; --r-md:14px; --r-lg:18px; --r-pill:999px;
  --shadow-sm:0 2px 8px rgba(10,10,10,.05);
  --shadow-md:0 12px 32px rgba(10,10,10,.10);
  --shadow-lg:0 24px 64px rgba(10,10,10,.16);
  --maxw:1200px;
}
/* dark mode — alternável via [data-theme] (persistido em localStorage) */
[data-theme="dark"]{
  --bg:#0A0A0A; --bg-card:#151513; --bg-alt:#111110;
  --tx:#FAFAF7; --tx-2:#E4E4DF; --tx-3:#9B9B96;
  --line:rgba(250,250,247,.12); --line-2:rgba(250,250,247,.07);
  --signal-50:#3A2113;
  --signal-text:#FFB286;
  --shadow-sm:0 2px 8px rgba(0,0,0,.4);
  --shadow-md:0 12px 32px rgba(0,0,0,.5);
  --shadow-lg:0 24px 64px rgba(0,0,0,.6);
}

/* ---------- reset/base ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:var(--fs-body);background:var(--bg);color:var(--tx);
     line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px;border-radius:4px}
::selection{background:var(--signal);color:#fff}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;
           padding:10px 16px;z-index:999;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
                        transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------- helpers ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
@media(min-width:720px){.wrap{padding:0 28px}}
.em{font-family:var(--serif);font-style:italic;color:var(--signal-text);font-weight:400}
.o{color:var(--signal)}
.eyebrow{font-family:var(--code);font-size:11px;font-weight:600;letter-spacing:2.5px;
         text-transform:uppercase;color:var(--signal-text)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- componentes ---------- */
/* botão */
.btn{font-family:var(--code);font-size:14px;font-weight:600;padding:13px 20px;min-height:44px;
     border-radius:var(--r-sm);border:1px solid transparent;display:inline-flex;align-items:center;
     gap:8px;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--tx);color:var(--bg)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-orange{background:var(--signal-dark);color:#fff}
.btn-orange:hover{background:#A83C00;transform:translateY(-2px);
                  box-shadow:0 12px 28px rgba(255,106,26,.30)}
.btn-ghost{background:transparent;color:var(--tx);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--tx)}
.btn-block{width:100%;justify-content:center}

/* card */
.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);
      padding:var(--s5) var(--s4);transition:transform .2s,box-shadow .25s,border-color .2s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--signal)}
.card .pn{font-family:var(--code);font-size:12px;font-weight:600;color:var(--signal-text);
          letter-spacing:1px;margin-bottom:14px}

/* badge / pill */
.pill{display:inline-block;font-family:var(--code);font-size:11px;font-weight:600;
      padding:6px 14px;border-radius:var(--r-pill);letter-spacing:.5px}
.pill-signal{background:var(--signal-dark);color:#fff}
.pill-soft{background:var(--signal-50);color:var(--signal-dark)}
[data-theme="dark"] .pill-soft{color:#FFB286}

/* formulário */
.field{margin-bottom:var(--s4)}
.field label{display:block;font-weight:600;font-size:var(--fs-small);margin-bottom:8px}
.field .hint{font-size:12.5px;color:var(--tx-3);margin-top:6px}
.input,.select,.textarea{width:100%;padding:13px 14px;font:inherit;font-size:15px;color:var(--tx);
   background:var(--bg-card);border:1.5px solid var(--line);border-radius:var(--r-sm);
   transition:border-color .2s,box-shadow .2s;min-height:48px}
.textarea{min-height:104px;resize:vertical}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--signal);
   box-shadow:0 0 0 3px var(--signal-50)}
.input[aria-invalid="true"],.textarea[aria-invalid="true"],.select[aria-invalid="true"]{border-color:#D33}
.input[aria-invalid="true"]:focus,.textarea[aria-invalid="true"]:focus,.select[aria-invalid="true"]:focus{border-color:#D33;box-shadow:0 0 0 3px rgba(211,51,51,.18)}
.error-msg{color:#C22;font-size:12.5px;margin-top:6px;display:none}
.input[aria-invalid="true"] ~ .error-msg{display:block}
.radio-row{display:flex;flex-wrap:wrap;gap:10px}
.radio-chip input{position:absolute;opacity:0}
.radio-chip span{display:inline-block;padding:11px 16px;border:1.5px solid var(--line);
   border-radius:var(--r-pill);font-size:14px;transition:all .15s;min-height:44px;display:flex;align-items:center}
.radio-chip input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
[data-theme="dark"] .radio-chip input:checked + span{background:var(--paper);color:var(--ink)}
.radio-chip input:focus-visible + span{outline:3px solid var(--signal);outline-offset:2px}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);
        transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:none}
/* fallback: sem JS (ou scripting off) o conteúdo aparece — não fica invisível */
@media (scripting: none){.reveal{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}
