:root {
  --fondo:#0a0a0a; --pannello:#141414; --rialzato:#1a1a1a; --filetto:#2a2a2a;
  --testo:#fff; --testo-2:rgba(255,255,255,.72); --testo-3:rgba(255,255,255,.5);
  --spia:#e10600; --ok:#22c55e;
  --display:'Barlow Condensed', 'Arial Narrow', sans-serif;
  --body:'Barlow', -apple-system, 'Helvetica Neue', sans-serif;
  --t-13:13px; --t-16:16px; --t-19:19px; --t-23:23px; --t-28:28px; --t-33:33px; --t-40:40px;
  --t-display:clamp(96px, 26vw, 140px);
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:40px; --sp-5:64px;
  --dur-1:120ms; --dur-2:200ms; --dur-3:320ms; --ease:cubic-bezier(0,0,.2,1);
}
* { box-sizing:border-box; }
html { color-scheme:dark; scroll-behavior:smooth; scroll-padding-top:var(--sp-2); }
body { margin:0; background:var(--fondo); color:var(--testo); font:400 17px/1.5 var(--body); font-variant-numeric:tabular-nums; }
p,h1,h2,h3,blockquote,figure { margin:0; }
p + p { margin-top:var(--sp-3); }
strong { font-weight:600; }
h1,h2,h3 { font-family:var(--display); font-weight:600; text-transform:uppercase; text-wrap:balance; letter-spacing:.08em; }
h1 { font-size:29px; line-height:1.02; letter-spacing:.02em; }
h2 { font-size:var(--t-28); line-height:1.15; margin-bottom:var(--sp-3); }
h3 { font-size:var(--t-23); line-height:1.2; margin-bottom:var(--sp-2); }
h3 em { font-style:normal; }
a { color:inherit; }
button,input { font:inherit; border-radius:0; }
button,a,input { -webkit-tap-highlight-color:transparent; }
::selection { background:var(--testo); color:var(--fondo); }
:focus-visible { outline:2px solid var(--testo); outline-offset:4px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.glyph { display:block; width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:square; stroke-linejoin:miter; }
.reading { width:100%; max-width:720px; margin-inline:auto; }
.wide { width:100%; max-width:1136px; margin-inline:auto; }
.topbar { background:var(--fondo); border-bottom:1px solid var(--filetto); }
.topbar-inner { max-width:1200px; min-height:48px; padding:var(--sp-1) var(--sp-2); margin:auto; display:flex; align-items:center; }
.wordmark { display:flex; align-items:center; gap:var(--sp-1); font:500 var(--t-13)/1.3 var(--display); letter-spacing:.1em; }
.brand-led { width:6px; height:6px; background:var(--spia); flex:none; }
.hero { padding:var(--sp-3) var(--sp-2) var(--sp-4); }
.hero-inner { width:100%; max-width:1136px; margin-inline:auto; display:grid; gap:var(--sp-3); }
.hero-inner > * { min-width:0; }
.kicker { margin-bottom:var(--sp-2); font:600 var(--t-13)/1.4 var(--display); text-transform:uppercase; letter-spacing:.1em; color:var(--testo-2); }
.kicker em { font-style:normal; }
.subtitle { margin-top:var(--sp-2); }
.hero-intro { margin-top:var(--sp-4); }
.hero .section-marker { margin-bottom:var(--sp-2); }
.cta { display:flex; align-items:center; justify-content:center; width:100%; min-height:52px; padding:var(--sp-2); border:1px solid var(--testo); border-radius:0; background:var(--testo); color:var(--fondo); font:600 var(--t-19)/1.15 var(--display); text-transform:uppercase; letter-spacing:.08em; text-decoration:none; text-align:center; cursor:pointer; transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease); }
.cta:hover:not(:disabled) { background:#d6d6d6; border-color:#d6d6d6; }
.cta:active:not(:disabled) { background:#b8b8b8; border-color:#b8b8b8; }
.cta:disabled { cursor:not-allowed; }
.cta-secondary { background:transparent; border-color:rgba(255,255,255,.35); color:var(--testo); }
.cta-secondary:hover:not(:disabled) { background:var(--testo); color:var(--fondo); }
.micro { margin-top:var(--sp-2); font-size:var(--t-13); line-height:1.5; color:var(--testo-2); }
.section-marker { margin-bottom:var(--sp-3); padding-bottom:var(--sp-1); position:relative; border-bottom:1px solid var(--filetto); font:500 var(--t-13)/1.5 var(--display); letter-spacing:.1em; color:var(--testo); }
.section-marker::after { content:""; position:absolute; bottom:-1px; left:0; width:24px; height:2px; background:var(--spia); }
.instrument-panel,.statement,.callout,blockquote,.form-card,.bio-panel { position:relative; background:var(--pannello); border:1px solid var(--filetto); border-radius:0; }
/* Four 10px corner marks, cut from a 1px border. */
:is(.instrument-panel,.statement,.callout,blockquote,.form-card,.bio-panel)::before,
:is(.instrument-panel,.statement,.callout,blockquote,.form-card,.bio-panel)::after { content:""; position:absolute; inset:-1px; pointer-events:none; border:1px solid var(--testo); clip-path:polygon(0 0,10px 0,10px 1px,1px 1px,1px 10px,0 10px,0 0,100% 0,100% 10px,calc(100% - 1px) 10px,calc(100% - 1px) 1px,calc(100% - 10px) 1px,calc(100% - 10px) 0); }
:is(.instrument-panel,.statement,.callout,blockquote,.form-card,.bio-panel)::after { transform:rotate(180deg); }
.instrument-label { margin-bottom:var(--sp-1); font:500 var(--t-13)/1.4 var(--display); text-transform:uppercase; letter-spacing:.1em; color:var(--testo-2); }
.mappa { position:relative; }
.mappa .instrument-panel { padding:var(--sp-2); }
.engine-header,.engine-row { display:grid; grid-template-columns:minmax(0,1fr) 64px 64px; column-gap:var(--sp-1); }
.engine-header { padding-bottom:var(--sp-2); border-bottom:1px solid var(--filetto); align-items:end; }
.engine-header h2 { font:500 var(--t-13)/1.3 var(--display); letter-spacing:.1em; color:var(--testo-2); margin:0 0 var(--sp-1); }
.engine-header > div { min-width:0; text-align:center; }
.score { display:flex; align-items:baseline; justify-content:center; font:600 var(--t-40)/1 var(--display); letter-spacing:0; }
.score small { font-size:var(--t-13); font-weight:500; color:var(--testo-2); }
.level { display:block; width:100%; height:4px; margin-top:var(--sp-1); }
.level-track { fill:var(--filetto); }
.level-fill { fill:var(--testo); transform-origin:left; }
.engine-weak .level-fill { fill:var(--spia); }
.engine-row { min-height:56px; align-items:center; border-bottom:1px solid var(--filetto); }
.engine-row:last-child { border-bottom:0; }
.part-name { display:flex; align-items:center; gap:var(--sp-1); min-width:0; padding:var(--sp-1) 0; font:400 17px/1.2 var(--body); }
.part-name > span { min-width:0; overflow-wrap:break-word; }
.state-cell { display:flex; justify-content:center; }
.status-dot { display:inline-block; width:12px; height:12px; flex:none; border:1px solid transparent; }
.status-dot.good { background:var(--ok); }
.status-dot.repair { background:var(--spia); clip-path:polygon(0 0,50% 28%,100% 0,72% 50%,100% 100%,50% 72%,0 100%,28% 50%); }
.status-dot.work { border-color:var(--testo); transform:rotate(45deg); }
.engine-legend { display:flex; flex-wrap:wrap; gap:var(--sp-1) var(--sp-2); margin-top:var(--sp-2); font:500 var(--t-13)/1.4 var(--display); letter-spacing:.1em; color:var(--testo-2); }
.engine-legend > span { display:flex; align-items:center; gap:var(--sp-1); }
.engine-legend .status-dot { width:8px; height:8px; }
.section { padding:var(--sp-5) var(--sp-2); border-top:1px solid var(--filetto); }
.audience { background:var(--pannello); padding-block:var(--sp-4); }
.audience-grid { display:grid; gap:var(--sp-2); }
.audience .callout { background:var(--fondo); }
.audience-yes > p > strong:first-child::before,.audience-no > p > strong:first-child::before { content:""; display:inline-block; width:8px; height:8px; background:var(--ok); margin-right:var(--sp-1); vertical-align:middle; }
.audience-no > p > strong:first-child::before { background:var(--spia); }
.audience ul { padding-left:var(--sp-2); margin:var(--sp-2) 0 0; }
.audience li + li { margin-top:var(--sp-2); }
.components h2 { margin-top:var(--sp-2); }
.receive { background:var(--pannello); }
.instrument-list { list-style:none; padding:0; margin:var(--sp-3) 0 var(--sp-4); }
.instrument-list li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:var(--sp-2); padding:var(--sp-3) 0; border-bottom:1px solid var(--filetto); }
.instrument-list li:first-child { border-top:1px solid var(--filetto); }
.instrument-list .glyph { margin-top:4px; }
.instrument-list em { display:block; margin-top:var(--sp-1); color:var(--testo-2); }
.proof { padding:var(--sp-4) var(--sp-2); background:var(--rialzato); border-block:1px solid var(--filetto); }
.proof-inner { max-width:960px; margin:auto; display:grid; gap:var(--sp-3); }
.proof-number { display:block; font:700 var(--t-display)/.9 var(--display); }
.proof p { font-size:var(--t-19); line-height:1.5; max-width:640px; }
.midway { padding:var(--sp-4) var(--sp-2); }
.midway .cta { margin-top:var(--sp-3); }
.statement { padding:var(--sp-3); font:600 var(--t-23)/1.3 var(--display); text-transform:uppercase; letter-spacing:.08em; text-wrap:balance; margin-block:var(--sp-3); }
.statement:last-child { margin-bottom:0; }
.callout,blockquote,.bio-panel { padding:var(--sp-3); }
.story { margin-block:var(--sp-4); }
.mini-bio { background:var(--pannello); }
.bio-panel { background:var(--fondo); }
blockquote { font-size:var(--t-19); line-height:1.5; }
blockquote em { color:var(--testo); }
.window { background:var(--pannello); }
.question-list article { padding-block:var(--sp-3); border-top:1px solid var(--filetto); }
.question-list article:last-child { border-bottom:1px solid var(--filetto); }
.form-card { padding:var(--sp-3); }
.form-intro { margin-bottom:var(--sp-3); }
.form-note { color:var(--testo-2); font-size:var(--t-13); margin-block:var(--sp-2) var(--sp-3); }
fieldset { padding:0; margin:0; border:0; min-width:0; }
.fields { display:grid; gap:var(--sp-3); margin-bottom:var(--sp-3); }
.field { min-width:0; }
.field label { display:block; font:600 var(--t-13)/1.5 var(--display); text-transform:uppercase; letter-spacing:.1em; margin-bottom:var(--sp-1); }
.field input { display:block; width:100%; min-width:0; height:52px; background:var(--rialzato); border:1px solid var(--testo-3); color:var(--testo); padding:0 var(--sp-2); transition:border-color var(--dur-1) var(--ease); }
.field input:focus-visible { border-color:var(--testo); }
.field input:disabled { opacity:1; -webkit-text-fill-color:var(--testo); cursor:not-allowed; }
.postscript { margin-top:var(--sp-4); font-size:var(--t-13); line-height:1.5; color:var(--testo-2); }
footer { border-top:1px solid var(--filetto); padding:var(--sp-3) var(--sp-2); font-size:var(--t-13); color:var(--testo-2); }
/* One scan across the instrument only. All content is final and visible without JS. */
.scanline { position:absolute; inset:0 0 auto; height:1px; background:var(--testo-3); pointer-events:none; }
@media (min-width:800px) {
  :root { --sp-3:32px; --sp-4:60px; --sp-5:96px; }
  body { font-size:18px; line-height:1.55; }
  .topbar-inner { padding-inline:var(--sp-3); }
  h1 { font-size:clamp(40px,4.2vw,64px); }
  .hero { padding:var(--sp-4) var(--sp-3); }
  .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--sp-3); }
  .hero-heading { grid-column:1; grid-row:1; }
  .hero-action { grid-column:1; grid-row:2; }
  .mappa { grid-column:2; grid-row:1 / 3; align-self:center; }
  .mappa .instrument-panel { padding:var(--sp-3); }
  .engine-header,.engine-row { grid-template-columns:minmax(0,1fr) 64px 64px; }
  .part-name { font-size:18px; }
  .engine-row { min-height:64px; }
  .hero-intro { margin-top:var(--sp-5); }
  .section,.proof,.midway,footer { padding-inline:var(--sp-3); }
  .audience-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-3); }
  .proof-inner { grid-template-columns:auto minmax(0,1fr); align-items:center; gap:var(--sp-4); }
  .fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .budget { grid-column:1 / -1; }
}
@media (min-width:1100px) {
  .engine-header,.engine-row { grid-template-columns:minmax(0,1fr) 80px 80px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .scanline { display:none; }
}
