/* Orion · base compartilhada (página inicial + painel) */
@font-face { font-family: "Neohellenic"; src: url(fonts/gfs-neohellenic-latin-400-normal.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Neohellenic"; src: url(fonts/gfs-neohellenic-latin-700-normal.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Neohellenic"; src: url(fonts/gfs-neohellenic-latin-400-italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F; }
@font-face { font-family: "Neohellenic"; src: url(fonts/gfs-neohellenic-greek-400-normal.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0370-03FF, U+1F00-1FFF; }
@font-face { font-family: "Neohellenic"; src: url(fonts/gfs-neohellenic-greek-700-normal.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0370-03FF, U+1F00-1FFF; }
@font-face { font-family: "JetBrains Mono"; src: url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2190-21FF, U+2212; }
@font-face { font-family: "JetBrains Mono"; src: url(fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2"); font-weight: 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2190-21FF, U+2212; }
@font-face { font-family: "JetBrains Mono"; src: url(fonts/jetbrains-mono-greek-400-normal.woff2) format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0370-03FF; }
@font-face { font-family: "JetBrains Mono"; src: url(fonts/jetbrains-mono-greek-700-normal.woff2) format("woff2"); font-weight: 700; font-display: swap; unicode-range: U+0370-03FF; }

:root {
  --ink: #070a12; --ink-2: #0c111d; --ink-3: #131a2a; --ink-4: #1c2538;
  --cream: #ede3cf; --cream-2: #cbc2ae; --stone: #8f8b7f; --stone-2: #5f6272;
  --gold: #c9a45c; --gold-2: #8f7440; --ember: #e2703a; --rigel: #9cc2ff; --lapis: #2b4478;
  --line: rgba(237, 227, 207, .12); --line-2: rgba(237, 227, 207, .24); --line-gold: rgba(201, 164, 92, .38);
  --ok: #9fd4a8; --warn: #e8c37a; --bad: #e8907f;
  --serif: "Neohellenic", "Gill Sans", "Trebuchet MS", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ease: cubic-bezier(.2, .7, .1, 1);
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ink); color: var(--cream); font: 15px/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
img, svg, canvas { display: block; max-width: 100%; }
::selection { background: var(--gold); color: var(--ink); }
.mono { font-family: var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Marca: o Cinturão de Órion num losango */
.mark { width: 24px; height: 24px; color: var(--gold); display: grid; place-items: center; flex: none; }
.mark svg { width: 100%; height: 100%; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font: 700 19px/1 var(--serif); letter-spacing: .32em; text-transform: uppercase; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; padding: 11px 18px; font: 700 11.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background .25s, color .25s, border-color .25s, transform .25s var(--ease), box-shadow .25s; }
.btn.cream { background: var(--gold); color: var(--ink); }
.btn.cream:hover { background: #dcb970; box-shadow: 0 0 24px rgba(201,164,92,.35); }
.btn.line { border-color: var(--line-2); color: var(--cream); background: transparent; }
.btn.line:hover { border-color: var(--gold); color: var(--gold); }
.btn.ghost { background: transparent; color: var(--stone); padding: 9px 10px; }
.btn.ghost:hover { color: var(--cream); }
.btn.sm { padding: 8px 12px; font-size: 10.5px; }
.btn.xs { padding: 6px 9px; font-size: 10px; }
.btn.danger { color: var(--bad); border-color: rgba(232,144,127,.35); background: transparent; }
.btn[disabled] { opacity: .45; pointer-events: none; }
.btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.6; }

/* Grão */
.grain { position: fixed; inset: -50%; pointer-events: none; z-index: 200; opacity: .05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.2s steps(6) infinite; }
@keyframes grain { 0%{transform:translate(0,0)} 20%{transform:translate(-3%,2%)} 40%{transform:translate(2%,-4%)} 60%{transform:translate(-4%,-2%)} 80%{transform:translate(3%,4%)} 100%{transform:translate(0,0)} }

/* Títulos em pixel (o texto real fica por baixo para leitores de tela) */
.px { position: relative; }
.px canvas.pxc { position: absolute; left: 0; top: 0; pointer-events: none; }
.px.ready { color: transparent !important; }

/* Moldura de prancha de atlas (marcas de graus) */
.plate-frame { position: relative; }
.plate-frame::before { content: ""; position: absolute; inset: 0; pointer-events: none; border: 1px solid var(--line-gold);
  background:
    repeating-linear-gradient(90deg, var(--line-gold) 0 1px, transparent 1px 24px) top / 100% 6px no-repeat,
    repeating-linear-gradient(90deg, var(--line-gold) 0 1px, transparent 1px 24px) bottom / 100% 6px no-repeat,
    repeating-linear-gradient(0deg, var(--line-gold) 0 1px, transparent 1px 24px) left / 6px 100% no-repeat,
    repeating-linear-gradient(0deg, var(--line-gold) 0 1px, transparent 1px 24px) right / 6px 100% no-repeat; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
