/* Metric-matched fallbacks (measured): the h1 wraps the same before and after Archivo loads, so the plate does not jump */
@font-face{font-family:"Archivo Cond Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Arial");font-weight:100 900;size-adjust:66.8%}
@font-face{font-family:"Archivo Fallback";src:local("Arial"),local("ArialMT");font-weight:100 900;size-adjust:98.4%}
/* Fieldmark Energy — concept build. Direction: "Industrial" (Swiss industrial print: paper grey, carbon ink, one safety-orange accent). */
:root{
  --paper:#eae8e3;--paper-2:#f4f3ef;--ink:#111;--ink-2:#3b3b38;--mute:#5f5e59;--rule:#111;--hair:rgba(17,17,17,.22);
  --hi:#ff5a1f;--concrete:#d9d9d4;
  --f-head:"Archivo","Archivo Fallback",system-ui,sans-serif;--f-cond:"Archivo","Archivo Cond Fallback",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace;
  --maxw:1320px;--gut:clamp(16px,3vw,32px);--ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box;border-radius:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--f-head);font-stretch:100%;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--f-cond);font-stretch:62%;font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:.9}
.mono,.label{font:500 12px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.label{color:var(--mute)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:60}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--hi);outline-offset:2px}

/* Header */
.top{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:2px solid var(--rule)}
.top-in{display:grid;grid-template-columns:auto 1fr auto auto;align-items:stretch;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;padding-right:24px;border-right:1px solid var(--rule);text-decoration:none;font:800 26px/1 var(--f-cond);font-stretch:62%;letter-spacing:.01em;text-transform:uppercase}
.logo sup{font:500 10px/1 var(--f-mono)}
.logo-mark{width:18px;height:18px;background:var(--hi);box-shadow:inset 0 0 0 3px var(--ink)}
.nav{display:flex}
.nav a{display:flex;align-items:center;padding:0 18px;border-right:1px solid var(--hair);text-decoration:none;font:500 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;transition:background .3s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{background:var(--ink);color:var(--paper)}
.tel{display:flex;align-items:center;padding:0 20px;border-left:1px solid var(--rule);font:600 14px/1 var(--f-mono);text-decoration:none;white-space:nowrap}
.cta{display:flex;align-items:center;gap:12px;padding:0 22px;background:var(--hi);color:var(--ink);font:700 14px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:0;border-left:2px solid var(--rule);cursor:pointer;min-height:48px;transition:background .3s var(--ease),color .3s var(--ease)}
.cta:hover{background:var(--ink);color:var(--hi)}
.cta .arr{font-size:18px}
.burger{display:none;border:0;border-left:1px solid var(--rule);background:var(--paper);width:64px;cursor:pointer;font:600 12px/1 var(--f-mono);letter-spacing:.08em}
.menu{display:none;border-bottom:2px solid var(--rule)}
.menu a{display:block;padding:18px var(--gut);border-top:1px solid var(--hair);font:800 32px/1 var(--f-cond);font-stretch:62%;text-transform:uppercase;text-decoration:none}
.menu.open{display:block}

/* Hero */
.hero{border-bottom:2px solid var(--rule)}
.hero-grid{display:grid;grid-template-columns:7fr 5fr}
.hero-copy{padding:56px 40px 48px 0;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:24px}
.hero h1{font-size:clamp(56px,8.4vw,140px)}
.hero h1 .hl{background:var(--hi);padding:0 .08em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.lede{font-size:20px;line-height:1.5;color:var(--ink-2);max-width:36em}
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:auto}
.specs div{background:var(--paper);padding:14px 16px}
.specs b{display:block;font:800 30px/1 var(--f-cond);font-stretch:62%;margin-top:6px}
.assess{padding:40px 0 40px 40px;display:flex;flex-direction:column}
.assess h2{font-size:40px;margin:10px 0 18px}
form.box{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.f{background:var(--paper-2);padding:10px 14px 12px;display:block}
.f label{display:block;font:500 11px/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.f input,.f select{width:100%;border:0;background:transparent;font:600 18px/1.2 var(--f-head);color:var(--ink);padding:6px 0;min-height:36px;appearance:none;-webkit-appearance:none}
.f select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23111' stroke-width='1.5'/%3E%3C/svg%3E") right 2px center/12px no-repeat}
.f input:focus,.f select:focus{outline:0}
.f:focus-within{background:#fff;box-shadow:inset 4px 0 0 var(--hi)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule)}
form.box .cta{justify-content:space-between;border-left:0;min-height:60px;font-size:15px}
.note{font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-top:12px}

.plate{position:relative;border-bottom:2px solid var(--rule)}
.plate img{width:100%;aspect-ratio:21/8;object-fit:cover}
.plate .tagline{position:absolute;left:var(--gut);bottom:18px;display:flex;flex-wrap:wrap;gap:0;background:var(--paper);border:1px solid var(--rule)}
.plate .tagline span{padding:8px 12px;border-right:1px solid var(--rule);font:500 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.plate .tagline span:last-child{border-right:0;background:var(--hi)}

/* Sections */
.sec{border-bottom:2px solid var(--rule)}
.sec-head{display:grid;grid-template-columns:3fr 9fr;border-bottom:1px solid var(--rule)}
.sec-head .label{padding:22px 0;border-right:1px solid var(--rule)}
.sec-head h2{font-size:clamp(36px,4.2vw,64px);padding:22px 0 22px 28px}
.sec-body{padding:36px 0 48px}

/* Project cards */
.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.proj{background:var(--paper-2);display:flex;flex-direction:column}
.proj img{width:100%;aspect-ratio:4/3;object-fit:cover;border-bottom:1px solid var(--rule);filter:grayscale(.15) contrast(1.05)}
.proj-h{padding:16px 16px 12px;display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px solid var(--hair)}
.proj-h h3{font-size:30px}
.sample{font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:5px 7px;white-space:nowrap}
.proj dl{margin:0;display:grid;grid-template-columns:1fr 1fr}
.proj dl div{padding:12px 16px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.proj dl div:nth-child(2n){border-right:0}
.proj dt{font:500 11px/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.proj dd{margin:4px 0 0;font:800 26px/1 var(--f-cond);font-stretch:62%}
.proj dd.hi{background:var(--ink);color:var(--paper);display:inline-block;padding:2px 6px}

/* Calculator */
.calc{display:grid;grid-template-columns:5fr 7fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.calc-in{background:var(--paper-2);padding:24px}
.calc-in .big{font:800 clamp(64px,8vw,120px)/.85 var(--f-cond);font-stretch:62%;display:flex;align-items:baseline;gap:8px;margin:12px 0 18px}
.calc-in .big small{font:600 16px/1 var(--f-mono)}
input[type=range]{width:100%;appearance:none;-webkit-appearance:none;height:28px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--ink)}
input[type=range]::-moz-range-track{height:4px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:28px;background:var(--hi);border:2px solid var(--ink);margin-top:-12px}
input[type=range]::-moz-range-thumb{width:18px;height:24px;background:var(--hi);border:2px solid var(--ink)}
.calc-in .f{border:1px solid var(--rule);margin-top:14px}
.calc-out{background:var(--paper-2)}
.calc-out table{width:100%;border-collapse:collapse}
.calc-out th,.calc-out td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--hair);vertical-align:baseline}
.calc-out th{font:500 12px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);width:45%}
.calc-out td{font:800 34px/1 var(--f-cond);font-stretch:62%}
.calc-out tr.hi td{background:var(--ink);color:var(--paper)}
.calc-msg{padding:12px 20px;font:500 13px/1.4 var(--f-mono);color:#8a1f00;min-height:1.4em}
.how{border-top:1px solid var(--hair);padding:14px 0 0;margin-top:18px;font-size:14px;color:var(--ink-2)}
.how summary{cursor:pointer;font:600 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}
.how ul{margin:8px 0 0;padding-left:18px}

/* Built for */
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.col{background:var(--paper-2);padding:24px}
.col .idx{font:800 72px/.8 var(--f-cond);font-stretch:62%;color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.col h3{font-size:34px;margin:18px 0 10px}
.col p{color:var(--ink-2)}
.col ul{margin:12px 0 0;padding:0;list-style:none;font:500 12px/1.9 var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.col li::before{content:"/// ";color:var(--mute)}

/* Process */
.proc{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);counter-reset:p}
.proc li{background:var(--paper-2);display:grid;grid-template-columns:120px 1fr 2fr;align-items:baseline}
.proc li::before{counter-increment:p;content:"0" counter(p);font:800 64px/1 var(--f-cond);font-stretch:62%;padding:16px 20px;border-right:1px solid var(--hair)}
.proc h3{font-size:32px;padding:16px 20px}
.proc p{padding:16px 20px;color:var(--ink-2)}

/* Facts band */
.band{background:var(--ink);color:var(--paper)}
.band .sec-head{border-color:rgba(234,232,227,.3)}
.band .sec-head .label{color:#b8b6af;border-color:rgba(234,232,227,.3)}
.band-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(234,232,227,.3);border:1px solid rgba(234,232,227,.3)}
.band-grid div{background:var(--ink);padding:24px}
.band-grid h3{font-size:30px;margin-bottom:10px}
.band-grid p{color:#cfcdc6}
.band-grid a{color:#cfcdc6;font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;display:inline-block;margin-top:12px;padding:6px 0}

/* FAQ */
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:20px;padding:20px 0;font:700 22px/1.2 var(--f-head);min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"[+]";font:600 14px/1 var(--f-mono)}
.faq details[open] summary::after{content:"[–]"}
.faq details p{padding:0 0 22px;color:var(--ink-2);max-width:52em}

/* Close */
.close{background:var(--hi);border-bottom:2px solid var(--rule)}
.close-grid{display:grid;grid-template-columns:1fr 1fr}
.close-grid > div{padding:48px 40px 48px 0;border-right:2px solid var(--rule)}
.close h2{font-size:clamp(56px,7vw,112px)}
.close .lede{color:var(--ink);margin-top:18px}
.close form{padding:48px 0 48px 40px}
.close form.box{background:var(--rule);padding:0}
.close-form{padding:48px 0 48px 40px}
.close .cta{background:var(--ink);color:var(--hi)}
.close .cta:hover{background:var(--paper);color:var(--ink)}
.close .note{color:var(--ink)}

/* Footer */
.foot{padding:36px 0 48px;font-size:15px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.foot-grid > div{background:var(--paper);padding:20px}
.foot a{display:block;text-decoration:none;padding:6px 0}
.foot a:hover{text-decoration:underline}
.foot .fine{font:500 11px/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-top:16px}

/* Inner pages */
.crumbs{font:500 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.crumbs a{color:var(--mute);display:inline-block;padding:10px 0}
.cmp{width:100%;border-collapse:collapse;border:1px solid var(--rule);background:var(--paper-2)}
.cmp th,.cmp td{border:1px solid var(--hair);padding:14px 16px;text-align:left;vertical-align:top}
.cmp thead th{background:var(--ink);color:var(--paper);font:600 12px/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.cmp tbody th{font:500 12px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);width:26%}
.tags{display:flex;flex-wrap:wrap;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.tags span{background:var(--paper-2);padding:10px 14px;font:500 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;flex:1 1 auto}

/* Reveal: a hard wipe, no blur. Gated on html.js so content shows with JS off */
html.js .rv{clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease)}
html.js .rv.in{clip-path:inset(0 0 0 0)}

@media (max-width:1100px){
  .nav{display:none}
  .top-in{grid-template-columns:1fr auto auto auto}
  .burger{display:block}
}
@media (max-width:860px){
  .hero-grid,.close-grid,.calc,.sec-head{grid-template-columns:1fr}
  .hero-copy{padding:36px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .assess{padding:32px 0}
  .projects,.cols,.band-grid,.foot-grid{grid-template-columns:1fr}
  .sec-head .label{border-right:0;border-bottom:1px solid var(--hair);padding:14px 0}
  .sec-head h2{padding:16px 0}
  .proc li{grid-template-columns:1fr}
  .proc li::before{border-right:0;padding-bottom:0}
  .close-grid > div{padding:40px 0 24px;border-right:0}
  .close-form{padding:0 0 40px}
  .plate img{aspect-ratio:4/3}
  .plate .tagline{position:static;border-width:1px 0 0}
}
@media (max-width:640px){
  .tel{display:none}
  .cta.top-cta{display:none}
  .specs{grid-template-columns:1fr 1fr}
  .specs div:last-child{grid-column:1/-1}
  .row2{grid-template-columns:1fr}
  .calc-out td{font-size:28px}
  body{font-size:16px}
  .cmp thead{display:none}
  .cmp tr{display:grid}
  .cmp tbody th{width:auto}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  html.js .rv{clip-path:none}
}

/* Hero video: sits over the still (same box, no layout shift), fades in once playing */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
html.js .hero-video{opacity:0;transition:opacity .6s ease}
html.js .hero-video.on{opacity:1}
.hero-pause{position:absolute;z-index:3;display:none;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;border:0;padding:0}
html.js .hero-pause{display:flex}
.hero-pause svg{width:14px;height:14px;fill:currentColor}
.hero-pause .ic-play,.hero-pause.is-paused .ic-pause{display:none}
.hero-pause.is-paused .ic-play{display:block}
.hero-pause:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media (prefers-reduced-motion:reduce){.hero-video,.hero-pause{display:none!important}}
.plate .hero-video{height:auto;aspect-ratio:21/8}
.hero-pause{right:var(--gut);top:18px;background:var(--paper);color:var(--ink);border:1px solid var(--rule)}
.hero-pause:hover{background:var(--hi)}
@media (max-width:860px){.plate .hero-video{aspect-ratio:4/3}}
