/* ============================================================================
   SADDLE MOSS BRIDGE — draft.css
   CONCEPT: an engineer's BLUEPRINT drawing set for indie sim/build/engineering
            Android games. The whole site is a set of numbered drafting sheets.
   CONSTITUTION
   - Two grounds: blueprint blue #0d3b66 + white/cyan ink #eaf3fb. ONE accent:
     redline coral #ff5b43 (key dimensions, active state, one headline word).
   - Type: Spline Sans Mono = every technical label, dimension, part-code,
     callout, eyebrow (uppercase, tracked). Chivo = headlines (900) + body (400).
   - Surface: fixed fine cyan drafting GRID over the ground; sections are
     bp-sheet panels framed with thin hairlines + a drafting title-block corner.
     No shadows — hairline rules only. Faint blueprint grain overlay.
   - Signature: mono part-code tag [ P-0X ] before every heading + dimension
     lines with |<-->| arrowheads + a title-block on every sheet.
   ========================================================================== */

@font-face{font-family:'Chivo';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/chivo-400.woff2') format('woff2')}
@font-face{font-family:'Chivo';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/chivo-500.woff2') format('woff2')}
@font-face{font-family:'Chivo';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/chivo-700.woff2') format('woff2')}
@font-face{font-family:'Chivo';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/chivo-900.woff2') format('woff2')}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/splinemono-400.woff2') format('woff2')}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/splinemono-500.woff2') format('woff2')}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/splinemono-700.woff2') format('woff2')}

:root{
  --ground:#0d3b66;
  --ground-2:#0a2f52;
  --ground-3:#0f4272;
  --sheet:#0e3c68;
  --ink:#eaf3fb;
  --ink-dim:#b3cee6;
  --ink-faint:#7ba1c6;
  --line:#8ab6dd;
  --line-soft:rgba(138,182,221,.30);
  --line-faint:rgba(138,182,221,.16);
  --grid:rgba(150,193,228,.13);
  --grid-major:rgba(150,193,228,.22);
  --red:#ff5b43;
  --red-dim:#ff8a78;
  --mono:'Spline Sans Mono',ui-monospace,Menlo,Consolas,monospace;
  --sans:'Chivo','Segoe UI',system-ui,sans-serif;
  --wrap:1280px;
  --gap:clamp(18px,3vw,34px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  color:var(--ink);
  background-color:var(--ground);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* --- the blueprint grid, fixed behind everything --- */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px),
    linear-gradient(var(--grid-major) 1.4px,transparent 1.4px),
    linear-gradient(90deg,var(--grid-major) 1.4px,transparent 1.4px);
  background-size:28px 28px,28px 28px,140px 140px,140px 140px;
  background-position:-1px -1px;
}
/* radial vignette so the ground reads like backlit drafting film */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,rgba(23,86,140,.55),transparent 60%),
             radial-gradient(140% 120% at 50% 120%,rgba(5,24,44,.75),transparent 55%);
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--red);color:#20120e}

/* ---------- shared type helpers ---------- */
.mono{font-family:var(--mono)}
.label{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.tag{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  border:1px solid var(--line-soft);
  padding:.32em .7em;
  white-space:nowrap;
}
.tag--red{color:var(--red);border-color:rgba(255,91,67,.5)}

.wrap{width:min(100% - 34px,var(--wrap));margin-inline:auto}

/* dimension line: |<----- 000 mm ----->| */
.bp-dim{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.bp-dim__rule{
  position:relative;
  flex:1 1 auto;
  height:1px;
  background:var(--line-soft);
  min-width:26px;
}
.bp-dim__rule::before,.bp-dim__rule::after{
  content:"";
  position:absolute;
  top:50%;
  width:7px;height:7px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.bp-dim__rule::before{left:0;transform:translateY(-50%) rotate(-45deg)}
.bp-dim__rule::after{right:0;transform:translateY(-50%) rotate(135deg)}
.bp-dim--red .bp-dim__rule{background:rgba(255,91,67,.55)}
.bp-dim--red .bp-dim__rule::before,.bp-dim--red .bp-dim__rule::after{border-color:var(--red)}
.bp-dim--red{color:var(--red-dim)}

/* ---------- header ---------- */
.bp-top{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(9,42,73,.86);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-soft);
}
.bp-top__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  height:66px;
}
.bp-brand{display:flex;align-items:center;gap:12px;min-width:0}
.bp-brand__mark{width:38px;height:38px;flex:0 0 auto;border:1px solid var(--line-soft)}
.bp-brand__txt{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.bp-brand__name{font-weight:900;font-size:1.02rem;letter-spacing:.02em}
.bp-brand__sub{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}
.bp-nav{display:flex;align-items:center;gap:26px}
.bp-nav__link{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-dim);
  position:relative;
  padding:6px 0;
  transition:color .18s;
}
.bp-nav__link::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--red);transition:width .22s;
}
.bp-nav__link:hover,.bp-nav__link:focus-visible{color:var(--ink)}
.bp-nav__link:hover::after,.bp-nav__link:focus-visible::after{width:100%}
.bp-nav__cta{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ground-2);background:var(--ink);padding:.6em 1.1em;font-weight:700;
  border:1px solid var(--ink);transition:background .18s,color .18s;
}
.bp-nav__cta:hover,.bp-nav__cta:focus-visible{background:var(--red);border-color:var(--red);color:#fff}

.bp-burger{
  display:none;
  width:46px;height:40px;
  border:1px solid var(--line-soft);
  background:transparent;
  color:var(--ink);
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;
  cursor:pointer;
}
.bp-burger span{display:block;width:20px;height:1.6px;background:var(--ink);transition:transform .25s,opacity .2s}

/* right slide-in "revision drawer" */
.bp-drawer{
  position:fixed;
  top:0;right:0;bottom:0;
  width:min(86vw,340px);
  background:var(--ground-2);
  border-left:1px solid var(--line);
  transform:translateX(100%);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
  z-index:120;
  padding:22px;
  display:flex;flex-direction:column;
  overflow-y:auto;
}
.bp-drawer.is-open{transform:translateX(0)}
.bp-drawer__head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-soft);padding-bottom:14px;margin-bottom:8px}
.bp-drawer__title{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}
.bp-drawer__close{background:transparent;border:1px solid var(--line-soft);color:var(--ink);width:34px;height:34px;font-size:1rem;cursor:pointer;font-family:var(--mono)}
.bp-drawer__link{
  display:flex;align-items:baseline;gap:14px;
  padding:16px 4px;
  border-bottom:1px dashed var(--line-faint);
  font-size:1.15rem;font-weight:700;
}
.bp-drawer__link span{font-family:var(--mono);font-size:.72rem;font-weight:500;color:var(--red);letter-spacing:.1em}
.bp-drawer__link:hover{color:var(--red-dim)}
.bp-scrim{
  position:fixed;inset:0;background:rgba(4,20,38,.62);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:110;
}
.bp-scrim.is-open{opacity:1;visibility:visible}

/* ---------- generic sheet frame ---------- */
.bp-sheet{position:relative;padding-block:clamp(46px,7vw,86px)}
.bp-sheet__frame{
  position:relative;
  border:1px solid var(--line-soft);
  padding:clamp(20px,3.4vw,44px);
}
/* corner drafting ticks */
.bp-sheet__frame::before,.bp-sheet__frame::after{
  content:"";position:absolute;width:14px;height:14px;pointer-events:none;
}
.bp-sheet__frame::before{top:-1px;left:-1px;border-top:2px solid var(--line);border-left:2px solid var(--line)}
.bp-sheet__frame::after{bottom:-1px;right:-1px;border-bottom:2px solid var(--line);border-right:2px solid var(--line)}

/* title-block strip that sits at the top-right of a sheet frame */
.bp-titleblock{
  position:absolute;
  top:0;right:0;
  transform:translateY(-50%);
  display:flex;
  border:1px solid var(--line-soft);
  background:var(--ground-2);
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.bp-titleblock div{padding:6px 11px;border-left:1px solid var(--line-faint)}
.bp-titleblock div:first-child{border-left:0}
.bp-titleblock b{display:block;color:var(--ink-faint);font-weight:500;font-size:.86em}
.bp-titleblock span{color:var(--ink);font-weight:700}

/* ---------- section heading block ---------- */
.bp-sechead{margin-bottom:clamp(26px,4vw,48px)}
.bp-sechead__code{color:var(--red);border-color:rgba(255,91,67,.5);margin-bottom:18px}
.bp-sechead h2{
  font-size:clamp(1.9rem,5vw,3.3rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.01em;
  margin:0 0 16px;
  text-transform:uppercase;
}
.bp-sechead h2 em{font-style:normal;color:var(--red)}
.bp-sechead__note{max-width:60ch;color:var(--ink-dim);font-size:1.02rem;margin:0}

/* ---------- HERO ---------- */
.bp-hero{position:relative;padding-block:clamp(30px,5vw,60px) clamp(46px,7vw,84px)}
.bp-hero__block{
  border:1px solid var(--line);
  position:relative;
  background:linear-gradient(180deg,rgba(12,52,90,.5),rgba(8,36,63,.5));
}
.bp-hero__strip{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr .8fr;
  border-bottom:1px solid var(--line-soft);
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.bp-hero__strip div{padding:12px 16px;border-left:1px solid var(--line-faint)}
.bp-hero__strip div:first-child{border-left:0}
.bp-hero__strip b{display:block;color:var(--ink-faint);font-weight:500;margin-bottom:3px}
.bp-hero__strip span{color:var(--ink);font-weight:700;font-size:1.05em;letter-spacing:.08em}
.bp-hero__strip .rd{color:var(--red)}

.bp-hero__body{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(20px,3vw,40px);
  padding:clamp(24px,4vw,52px);
  align-items:center;
}
.bp-hero__eyebrow{margin-bottom:22px}
.bp-hero h1{
  font-size:clamp(2.5rem,7.4vw,5.3rem);
  font-weight:900;
  line-height:.94;
  letter-spacing:-.02em;
  margin:0 0 8px;
  text-transform:uppercase;
}
.bp-hero h1 em{font-style:normal;color:var(--red);display:block}
.bp-hero__dims{display:flex;flex-direction:column;gap:9px;margin:26px 0 24px;max-width:440px}
.bp-hero__lede{color:var(--ink-dim);font-size:1.08rem;max-width:52ch;margin:0 0 26px}
.bp-hero__cta{display:flex;flex-wrap:wrap;gap:14px}
.bp-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:.9em 1.5em;border:1px solid var(--ink);cursor:pointer;transition:background .18s,color .18s,border-color .18s;
}
.bp-btn--solid{background:var(--red);border-color:var(--red);color:#fff}
.bp-btn--solid:hover,.bp-btn--solid:focus-visible{background:#fff;color:var(--ground-2);border-color:#fff}
.bp-btn--ghost{color:var(--ink);background:transparent}
.bp-btn--ghost:hover,.bp-btn--ghost:focus-visible{background:var(--ink);color:var(--ground-2)}

/* hero schematic figure */
.bp-hero__fig{position:relative;border:1px solid var(--line-soft);padding:14px;background:rgba(7,32,58,.5)}
.bp-hero__fig figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--line-faint)}
.bp-hero__fig img{
  width:100%;height:auto;display:block;
  filter:grayscale(.2) brightness(.82) contrast(1.05) sepia(.25) hue-rotate(160deg) saturate(1.3);
  mix-blend-mode:screen;opacity:.92;
}
.bp-hero__fig figcaption{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  padding-top:10px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;
}
.bp-hero__callout{
  position:absolute;top:26px;left:26px;
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);
}
.bp-hero__callout::before{content:"";width:8px;height:8px;border:1.5px solid var(--red);border-radius:50%}

/* ---------- CATÁLOGO ---------- */
.bp-cat{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--gap);
}
.bp-card{
  position:relative;
  border:1px solid var(--line-soft);
  padding:22px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:20px;
  background:linear-gradient(180deg,rgba(14,60,104,.35),rgba(9,40,70,.25));
  transition:border-color .2s,transform .2s;
}
.bp-card:hover{border-color:var(--line);transform:translateY(-3px)}
.bp-card__ref{
  position:absolute;top:12px;right:14px;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--ink-faint);
}
.bp-plate{
  position:relative;
  width:88px;height:88px;flex:0 0 auto;
  border:1px solid var(--line);
  padding:6px;
  background:#dbe7f3;
}
.bp-plate img{width:100%;height:100%;object-fit:cover;display:block}
/* leader-line callout dot at the plate corner */
.bp-plate::after{
  content:"";position:absolute;top:-5px;left:-5px;width:9px;height:9px;
  border:1.5px solid var(--red);border-radius:50%;background:var(--ground-2);
}
.bp-card__body{min-width:0}
.bp-card__genre{color:var(--ink-faint);margin-bottom:7px}
.bp-card__name{font-size:1.24rem;font-weight:900;line-height:1.05;margin:0 0 4px;text-transform:uppercase}
.bp-card__meta{
  display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);
  margin-bottom:12px;
}
.bp-card__meta .st{color:var(--red)}
.bp-card__desc{color:var(--ink-dim);font-size:.94rem;margin:0 0 16px}
.bp-card__link{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
  color:var(--ink);border-bottom:1px solid var(--red);padding-bottom:3px;transition:gap .18s,color .18s;
}
.bp-card__link:hover{gap:14px;color:var(--red-dim)}

/* ---------- LEGENDA / SÍMBOLOS (drafting key) ---------- */
.bp-legend__wrap{border:1px solid var(--line-soft);background:rgba(7,32,58,.4)}
.bp-legend{
  display:grid;
  grid-template-columns:repeat(2,1fr);
}
.bp-legend__item{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:center;
  padding:clamp(16px,2vw,22px);
  border-bottom:1px solid var(--line-faint);
  border-right:1px solid var(--line-faint);
}
.bp-legend__item:nth-child(2n){border-right:0}
.bp-legend__sym{
  position:relative;
  width:58px;height:58px;flex:0 0 auto;
  border:1px solid var(--line);
  background:rgba(6,28,52,.55);
  padding:9px;
}
/* leader-line callout dot, echoing the catalogue plates */
.bp-legend__sym::after{
  content:"";position:absolute;top:-5px;left:-5px;width:9px;height:9px;
  border:1.5px solid var(--red);border-radius:50%;background:var(--ground-2);
}
.bp-legend__sym svg{width:100%;height:100%;display:block;overflow:visible}
.bp-legend__sym .s{fill:none;stroke:var(--line);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bp-legend__sym .r{fill:none;stroke:var(--red);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bp-legend__sym .fr{fill:var(--red);stroke:none}
.bp-legend__sym .fs{fill:var(--line);stroke:none}
.bp-legend__def{min-width:0}
.bp-legend__sig{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red);
  display:block;margin-bottom:5px;
}
.bp-legend__term{font-size:1.02rem;font-weight:900;text-transform:uppercase;line-height:1.05;letter-spacing:-.01em;margin:0 0 5px}
.bp-legend__desc{font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;line-height:1.55;color:var(--ink-dim);margin:0}
/* footer strip: scale bar + revision note, like the base of a real sheet */
.bp-legend__foot{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(20px,4vw,48px);
  align-items:center;
  padding:clamp(18px,3vw,30px);
  border-top:1px dashed var(--line-faint);
}
.bp-scale{display:flex;flex-direction:column;gap:10px}
.bp-scale__cap{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);
}
.bp-scale__bar{display:block;width:clamp(200px,26vw,260px);height:auto}
.bp-scale__bar .fs{fill:var(--line)}
.bp-scale__bar .s{fill:none;stroke:var(--line);stroke-width:1.2}
.bp-scale__bar .tx{font-family:var(--mono);fill:var(--ink-faint);letter-spacing:.08em}
.bp-scale__bar .txr{font-family:var(--mono);fill:var(--red-dim);letter-spacing:.08em}
.bp-rev{
  border:1px solid var(--line-soft);
  padding:16px 18px;
  display:flex;flex-direction:column;gap:8px;
}
.bp-rev__row{
  display:flex;justify-content:space-between;gap:14px;align-items:baseline;
  font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);
  border-bottom:1px dashed var(--line-faint);padding-bottom:8px;
}
.bp-rev__row b{color:var(--ink);font-weight:700}
.bp-rev__row .rd{color:var(--red)}
.bp-rev p{margin:0;color:var(--ink-dim);font-size:.9rem}

/* ---------- PLANTA TÉCNICA (node diagram) ---------- */
.bp-plant__wrap{position:relative;border:1px solid var(--line-soft);padding:clamp(18px,3vw,34px);background:rgba(7,32,58,.4)}
.bp-plant__svg{width:100%;height:auto;display:block;overflow:visible}
.bp-plant__legend{
  display:flex;flex-wrap:wrap;gap:14px 26px;margin-top:26px;padding-top:20px;border-top:1px dashed var(--line-faint);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);
}
.bp-plant__legend b{color:var(--red);font-weight:700;margin-right:6px}

/* ---------- COMO FUNCIONA ---------- */
.bp-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.bp-stage{position:relative;border:1px solid var(--line-soft);padding:26px 24px 28px}
.bp-stage__no{
  font-family:var(--mono);font-size:2.6rem;font-weight:700;line-height:1;color:var(--red);
  display:block;margin-bottom:16px;letter-spacing:-.02em;
}
.bp-stage__no small{font-size:.7rem;color:var(--ink-faint);letter-spacing:.14em;display:block;margin-top:8px}
.bp-stage h3{font-size:1.18rem;font-weight:900;text-transform:uppercase;margin:0 0 10px;letter-spacing:-.01em}
.bp-stage p{color:var(--ink-dim);font-size:.95rem;margin:0}
.bp-stage::after{
  content:"";position:absolute;top:34px;right:-1px;width:0;height:0;
}
/* connector arrow between stages */
.bp-stage:not(:last-child) .bp-stage__link{
  position:absolute;top:44px;right:-18px;z-index:2;color:var(--line);font-family:var(--mono);font-size:1rem;
}

/* ---------- RELATÓRIOS (reviews) ---------- */
.bp-reports{columns:3;column-gap:var(--gap)}
.bp-report{
  break-inside:avoid;
  border:1px solid var(--line-soft);
  padding:20px;
  margin-bottom:var(--gap);
  background:rgba(10,44,76,.3);
}
.bp-report__head{
  display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  border-bottom:1px dashed var(--line-faint);padding-bottom:10px;margin-bottom:12px;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);
}
.bp-report__no{color:var(--ink)}
.bp-report__cot{color:var(--red);font-weight:700}
.bp-report p{margin:0 0 14px;color:var(--ink-dim);font-size:.95rem}
.bp-report__by{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
  display:flex;align-items:center;gap:8px;
}
.bp-report__by::before{content:"";width:18px;height:1px;background:var(--red)}

/* ---------- ESPECIFICAÇÕES (spec table) ---------- */
.bp-spec__scroll{overflow-x:auto;border:1px solid var(--line-soft)}
.bp-spec{width:100%;border-collapse:collapse;min-width:680px;font-size:.9rem}
.bp-spec caption{
  text-align:left;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-faint);padding:14px 16px;border-bottom:1px solid var(--line-soft);
}
.bp-spec th,.bp-spec td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line-faint)}
.bp-spec thead th{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;
  border-bottom:1px solid var(--line-soft);
}
.bp-spec tbody tr:hover{background:rgba(14,60,104,.4)}
.bp-spec td.ref{font-family:var(--mono);color:var(--red);font-size:.78rem;letter-spacing:.08em;white-space:nowrap}
.bp-spec td.ttl{font-weight:700}
.bp-spec td.num{font-family:var(--mono);letter-spacing:.06em;white-space:nowrap}
.bp-spec tbody{}

/* ---------- SOBRE (project brief) ---------- */
.bp-brief{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(22px,4vw,52px);align-items:start}
.bp-brief__side{border:1px solid var(--line-soft);padding:22px}
.bp-brief__row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line-faint);
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.bp-brief__row:last-child{border-bottom:0}
.bp-brief__row b{color:var(--ink-faint);font-weight:500}
.bp-brief__row span{color:var(--ink);font-weight:700;text-align:right}
.bp-brief__main h3{font-size:1.4rem;font-weight:900;text-transform:uppercase;margin:0 0 16px;letter-spacing:-.01em}
.bp-brief__main p{color:var(--ink-dim);margin:0 0 16px}
.bp-brief__main p:last-child{margin-bottom:0}
.bp-brief__main strong{color:var(--ink)}

/* ---------- FAQ (numbered technical notes) ---------- */
.bp-notes{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.bp-note{border:1px solid var(--line-soft);padding:22px;position:relative;display:grid;grid-template-columns:auto 1fr;gap:18px}
.bp-note__no{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--red);font-weight:700;white-space:nowrap;padding-top:2px}
.bp-note h3{font-size:1.05rem;font-weight:700;margin:0 0 8px;letter-spacing:-.005em}
.bp-note p{color:var(--ink-dim);font-size:.93rem;margin:0}

/* ---------- CONTACTO (form in title-block frame) ---------- */
.bp-contact{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,rgba(12,52,90,.5),rgba(8,36,63,.45))}
.bp-contact__grid{display:grid;grid-template-columns:.95fr 1.05fr}
.bp-contact__info{padding:clamp(26px,4vw,46px);border-right:1px solid var(--line-soft)}
.bp-contact__info h2{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:900;text-transform:uppercase;margin:16px 0 14px;line-height:1;letter-spacing:-.01em}
.bp-contact__info p{color:var(--ink-dim);margin:0 0 24px;max-width:40ch}
.bp-contact__nap{display:flex;flex-direction:column;gap:0}
.bp-contact__nap div{
  display:flex;gap:14px;padding:13px 0;border-top:1px dashed var(--line-faint);
  font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;
}
.bp-contact__nap b{color:var(--ink-faint);font-weight:500;text-transform:uppercase;min-width:74px;letter-spacing:.14em;font-size:.68rem}
.bp-contact__nap span{color:var(--ink)}
.bp-contact__nap a:hover{color:var(--red-dim)}

.bp-form{padding:clamp(26px,4vw,46px)}
.bp-field{margin-bottom:18px}
.bp-field label{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}
.bp-field input{
  width:100%;padding:13px 14px;background:rgba(6,28,52,.6);border:1px solid var(--line-soft);
  color:var(--ink);font-family:var(--mono);font-size:.9rem;transition:border-color .18s;
}
.bp-field input::placeholder{color:var(--ink-faint);opacity:.7}
.bp-field input:focus{outline:none;border-color:var(--red)}
.bp-consent{display:flex;gap:12px;align-items:flex-start;margin:6px 0 20px;font-size:.84rem;color:var(--ink-dim)}
.bp-consent input{margin-top:3px;width:17px;height:17px;flex:0 0 auto;accent-color:var(--red)}
.bp-consent a{color:var(--ink);border-bottom:1px solid var(--red)}
.bp-form__ok{
  display:none;margin-top:18px;padding:14px 16px;border:1px solid var(--red);
  font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:var(--red-dim);text-transform:uppercase;
}
.bp-form__ok.show{display:block}
.bp-form button{width:100%;justify-content:center}

/* ---------- FOOTER ---------- */
.bp-foot{border-top:1px solid var(--line);margin-top:clamp(46px,7vw,86px);background:rgba(6,28,52,.55)}
.bp-foot__grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:clamp(24px,4vw,52px);
  padding-block:clamp(38px,5vw,60px);
}
.bp-foot__brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.bp-foot__brand img{width:40px;height:40px;border:1px solid var(--line-soft)}
.bp-foot__brand b{font-weight:900;font-size:1.05rem}
.bp-foot p{color:var(--ink-dim);font-size:.92rem;margin:0 0 16px;max-width:36ch}
.bp-foot h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 16px;font-weight:500}
.bp-foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.bp-foot a{font-size:.92rem;color:var(--ink-dim);transition:color .16s}
.bp-foot a:hover{color:var(--red-dim)}
.bp-foot__nap{font-family:var(--mono);font-size:.76rem;color:var(--ink-dim);line-height:1.9;font-style:normal}
.bp-foot__nap b{color:var(--ink-faint);font-weight:500}
.bp-foot__bar{
  border-top:1px solid var(--line-soft);padding-block:20px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);
}
.bp-foot__disc{max-width:70ch;color:var(--ink-faint);font-size:.62rem;line-height:1.7;padding-bottom:22px;font-family:var(--mono);letter-spacing:.04em}

/* ---------- cookie banner ---------- */
.bp-cookie{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:130;
  max-width:560px;margin-inline:auto;
  background:var(--ground-2);border:1px solid var(--line);
  padding:18px 20px;
  display:none;
}
.bp-cookie.show{display:block}
.bp-cookie p{margin:0 0 14px;font-size:.86rem;color:var(--ink-dim)}
.bp-cookie p a{color:var(--ink);border-bottom:1px solid var(--red)}
.bp-cookie__row{display:flex;gap:12px;flex-wrap:wrap}
.bp-cookie__btn{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
  padding:.7em 1.3em;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink);transition:.18s;
}
.bp-cookie__btn--yes{background:var(--red);border-color:var(--red);color:#fff}
.bp-cookie__btn--yes:hover{background:#fff;color:var(--ground-2)}
.bp-cookie__btn--no:hover{border-color:var(--ink);background:rgba(255,255,255,.06)}

/* ---------- misc / legal pages ---------- */
.bp-legal{padding-block:clamp(40px,6vw,72px)}
.bp-legal__frame{border:1px solid var(--line-soft);padding:clamp(24px,4vw,52px);max-width:900px;margin-inline:auto}
.bp-legal h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:900;text-transform:uppercase;margin:0 0 8px;line-height:1}
.bp-legal .updated{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:28px}
.bp-legal h2{font-size:1.2rem;font-weight:900;text-transform:uppercase;margin:32px 0 12px;letter-spacing:-.01em;color:var(--ink)}
.bp-legal h2 .n{font-family:var(--mono);color:var(--red);font-size:.8rem;margin-right:10px}
.bp-legal p,.bp-legal li{color:var(--ink-dim);font-size:.96rem}
.bp-legal ul{padding-left:20px}
.bp-legal li{margin-bottom:8px}
.bp-legal a{color:var(--ink);border-bottom:1px solid var(--red)}
.bp-404{min-height:66vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px 16px}
.bp-404 h1{font-size:clamp(4rem,18vw,11rem);font-weight:900;line-height:.9;margin:0;color:var(--ink)}
.bp-404 .code{color:var(--red)}

/* skip link */
.bp-skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:10px 16px;z-index:200;font-family:var(--mono);font-size:.74rem}
.bp-skip:focus{left:10px;top:10px}

:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1080px){
  .bp-reports{columns:2}
}
@media (max-width:920px){
  .bp-nav{display:none}
  .bp-nav__cta{display:none}
  .bp-burger{display:flex}
  .bp-hero__body{grid-template-columns:1fr}
  .bp-hero__fig{order:-1}
  .bp-brief{grid-template-columns:1fr}
  .bp-stages{grid-template-columns:1fr}
  .bp-stage:not(:last-child) .bp-stage__link{display:none}
  .bp-contact__grid{grid-template-columns:1fr}
  .bp-contact__info{border-right:0;border-bottom:1px solid var(--line-soft)}
  .bp-foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .bp-hero__strip{grid-template-columns:1fr 1fr}
  .bp-hero__strip div:nth-child(1),.bp-hero__strip div:nth-child(2){border-bottom:1px solid var(--line-faint)}
  .bp-cat{grid-template-columns:1fr}
  .bp-legend{grid-template-columns:1fr}
  .bp-legend__item{border-right:0}
  .bp-legend__foot{grid-template-columns:1fr;gap:20px}
  .bp-reports{columns:1}
  .bp-notes{grid-template-columns:1fr}
  .bp-titleblock{position:static;transform:none;margin-bottom:18px;display:inline-flex}
  .bp-hero__strip div:nth-child(3){border-left:0}
}
@media (max-width:520px){
  .bp-card{grid-template-columns:1fr}
  .bp-plate{width:76px;height:76px}
  .bp-foot__grid{grid-template-columns:1fr}
  .bp-hero__callout{display:none}
  .bp-titleblock{font-size:.56rem}
}
