/* Marcu Manufacturing
   Layout: machined metal. Graphite bands and brushed-silver bands alternate;
   chrome lettering carries the headlines; photos sit in greyscale and warm to
   colour on hover. No accent colour: the palette is grey from end to end. */

@font-face{font-family:"Archivo";src:url("fonts/archivo-latin-wdth-normal.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  color-scheme:dark;

  /* one grey ramp, biased a touch cool like bare steel */
  --g-950:#0c0d0f;
  --g-900:#14161a;
  --g-850:#1a1d21;
  --g-800:#22252a;
  --g-700:#31353b;
  --g-600:#484d55;
  --g-500:#6b717a;
  --g-400:#969ba3;
  --g-300:#bcc0c6;
  --g-200:#d8dbdf;
  --g-100:#ebedef;
  --g-50:#f6f7f8;
  --white:#ffffff;

  /* translucent greys for glass, veils and highlights */
  --veil-strong:rgba(12,13,15,.93);
  --veil:rgba(12,13,15,.74);
  --veil-soft:rgba(12,13,15,.3);
  --veil-none:rgba(12,13,15,0);
  --glass:rgba(255,255,255,.06);
  --glass-line:rgba(255,255,255,.16);
  --hair-light:rgba(255,255,255,.5);
  --hair-dark:rgba(12,13,15,.035);
  --shine:rgba(255,255,255,.85);
  --shine-none:rgba(255,255,255,0);
  --shadow:rgba(0,0,0,.45);

  /* polished and dark-steel lettering */
  --chrome:linear-gradient(180deg,#ffffff 0%,#e4e7ea 30%,#a1a6ae 49%,#f2f4f6 57%,#bcc0c6 80%,#8f949c 100%);
  --steel:linear-gradient(180deg,#4a4f57 0%,#14161a 48%,#484d55 56%,#22252a 100%);

  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"IBM Plex Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;

  --fs-label:.8125rem;
  --fs-body:1.0625rem;
  --fs-lead:1.1875rem;
  --fs-h3:1.375rem;
  --fs-h2:clamp(1.9rem,1.1rem + 3vw,3.25rem);
  --fs-h1:clamp(2.05rem,.9rem + 5.6vw,5.5rem);
  --fs-giant:clamp(2rem,.9rem + 3.6vw,4.1rem);

  --gutter:clamp(16px,4vw,40px);
  --maxw:1200px;
  --band-pad:clamp(4rem,2rem + 7vw,7.5rem);
  --header-row:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px;-webkit-text-size-adjust:100%}
[hidden]{display:none!important}
body{margin:0;background:var(--g-900);color:var(--g-100);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.band--light :focus-visible{outline-color:var(--g-950)}

.wrap{width:100%;max-width:calc(var(--maxw) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.band{position:relative;padding-block:var(--band-pad)}
.band--deep{background:var(--g-950)}
.band--light{color:var(--g-950);background:
  repeating-linear-gradient(90deg,var(--hair-light) 0 1px,var(--hair-dark) 1px 2px,var(--shine-none) 2px 5px),
  linear-gradient(180deg,var(--g-50) 0%,var(--g-200) 100%)}
.band--gears{background:
  linear-gradient(180deg,var(--g-900) 0%,var(--veil) 30%,var(--veil) 70%,var(--g-900) 100%),
  url("img/gears.jpg") center/cover no-repeat var(--g-900)}

.skip{position:absolute;left:var(--gutter);top:-100px;z-index:60;background:var(--g-50);color:var(--g-950);padding:.6rem 1rem;font-weight:600}
.skip:focus{top:8px}

/* ---------- type roles ---------- */
.label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--g-400)}
.band--light .label{color:var(--g-600)}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance}
h1{font-size:var(--fs-h1);font-weight:900;font-stretch:122%;line-height:.98;letter-spacing:-.02em;text-transform:uppercase}
h2{font-size:var(--fs-h2);font-weight:850;font-stretch:118%;line-height:1.04;letter-spacing:-.015em;text-transform:uppercase}
h3{font-size:var(--fs-h3);font-weight:750;font-stretch:112%;line-height:1.15}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--g-300)}
.band--light .lead{color:var(--g-600)}
.prose{display:grid;gap:1.05em;align-content:start;max-width:62ch}
.section-head{display:grid;gap:1rem;max-width:48rem;margin-bottom:clamp(2.25rem,1.4rem + 2.5vw,3.75rem)}
.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;align-content:start}
.num{font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}

.chrome,.steel{display:inline;-webkit-box-decoration-break:clone;box-decoration-break:clone;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.chrome{background-image:var(--chrome);filter:drop-shadow(0 2px 1px var(--shadow))}
.steel{background-image:var(--steel)}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .chrome{background:none;color:var(--g-100);-webkit-text-fill-color:currentColor}
  .steel{background:none;color:var(--g-950);-webkit-text-fill-color:currentColor}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.25rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:2px;font:600 1rem/1.2 var(--font-body);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),filter .25s,border-color .25s,background-color .25s}
.btn--chrome{color:var(--g-950);background:linear-gradient(180deg,var(--white) 0%,var(--g-200) 46%,var(--g-300) 54%,var(--g-100) 100%);border-color:var(--white);box-shadow:0 10px 30px -12px var(--shadow)}
.btn--chrome:hover{filter:brightness(1.08);transform:translateY(-2px)}
.btn--line{color:var(--g-100);border-color:var(--g-500);background:var(--glass)}
.btn--line:hover{border-color:var(--g-200);transform:translateY(-2px)}
.band--light .btn--line{color:var(--g-950);border-color:var(--g-500);background:transparent}

/* ---------- header ---------- */
.site-header{position:sticky;top:calc(-1 * var(--header-row));z-index:50;background:var(--veil-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.header-grid{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"brand phone" "nav nav";align-items:center;column-gap:1rem}
.brand{grid-area:brand;display:flex;align-items:center;height:var(--header-row)}
.brand img{height:56px;width:auto}
.header-phone{grid-area:phone;justify-self:end;display:grid;justify-items:end;text-decoration:none;line-height:1.25}
.header-phone .label{font-size:.6875rem}
.header-phone .num{font-size:1.0625rem;color:var(--g-50)}
.site-nav{grid-area:nav;min-width:0;margin-inline:calc(-1 * var(--gutter));border-top:1px solid var(--g-800)}
.site-nav ul{display:flex;gap:.25rem;overflow-x:auto;padding-inline:calc(var(--gutter) - .7rem);scrollbar-width:none}
.site-nav ul::-webkit-scrollbar{display:none}
.site-nav a{display:block;padding:.85rem .7rem;font-size:.9375rem;font-weight:500;white-space:nowrap;text-decoration:none;color:var(--g-400);transition:color .2s}
.site-nav a:hover,.site-nav a[aria-current="true"]{color:var(--white)}

/* scroll gauge: a rule along the header's lower edge with a sliding jaw */
.gauge{position:relative;overflow:hidden;height:7px;background:
  linear-gradient(90deg,var(--g-500) 1px,var(--shine-none) 1px) 0 100%/80px 7px repeat-x,
  linear-gradient(90deg,var(--g-700) 1px,var(--shine-none) 1px) 0 100%/8px 4px repeat-x,
  var(--g-950);border-top:1px solid var(--g-800)}
.gauge-fill{position:absolute;inset:auto 0 0 0;height:2px;background:linear-gradient(90deg,var(--g-500),var(--white));transform-origin:0 50%;transform:scaleX(var(--scroll,0))}
.gauge-jaw{position:absolute;bottom:0;left:calc(var(--scroll,0) * 100%);width:3px;height:7px;margin-left:-1.5px;background:var(--white);box-shadow:0 0 10px var(--shine)}

@media (min-width:1040px){
  html{scroll-padding-top:120px}
  .site-header{top:0}
  .header-grid{grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav phone";column-gap:2rem}
  .brand{height:92px}
  .brand img{height:68px}
  .site-nav{margin-inline:0;border-top:0}
  .site-nav ul{justify-content:center;padding-inline:0}
  .site-nav a{padding:1.6rem .8rem}
}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;display:grid;align-content:end;gap:clamp(2.5rem,1.5rem + 4vw,5rem);min-height:min(88vh,900px);padding-block:clamp(4rem,2rem + 9vw,9rem) clamp(1.5rem,1rem + 2vw,3rem);background:var(--g-950)}
.hero-media{position:absolute;inset:-8% 0;z-index:-2;transform:translate3d(0,calc(var(--hero-shift,0) * 1px),0)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:68% 42%;animation:hero-settle 22s var(--ease) both}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(180deg,var(--veil-soft) 0%,var(--veil-none) 30%,var(--veil-none) 55%,var(--g-900) 100%),
  linear-gradient(90deg,var(--veil-strong) 0%,var(--veil) 42%,var(--veil-soft) 78%,var(--veil-soft) 100%)}
@keyframes hero-settle{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.hero-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;justify-items:start}
.hero-copy .label{color:var(--g-300)}
.hero-copy .lead{max-width:36rem;color:var(--g-200)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}
.sheen{position:relative}
.sheen .chrome{background-image:linear-gradient(100deg,var(--shine-none) 42%,var(--shine) 50%,var(--shine-none) 58%),var(--chrome);background-size:55% 100%,100% 100%;background-repeat:no-repeat;background-position:-140% 0,0 0;animation:sheen 7s 1.2s ease-in-out infinite}
@keyframes sheen{0%{background-position:-140% 0,0 0}28%,100%{background-position:320% 0,0 0}}
@media (max-width:719px){
  .hero::before{background:linear-gradient(180deg,var(--veil) 0%,var(--veil) 60%,var(--g-900) 100%)}
  .hero-media img{object-position:60% 40%}
}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));border:1px solid var(--glass-line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.facts > div{padding:1.15rem 1.4rem;box-shadow:1px 0 0 var(--glass-line),0 1px 0 var(--glass-line);min-width:0}
.facts dt{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--g-400)}
.facts dd{font-weight:500;margin-top:.25rem;color:var(--g-50)}

/* ---------- ticker ---------- */
.ticker{overflow:hidden;padding-block:clamp(1.25rem,1rem + 1.5vw,2.25rem);background:var(--g-900);border-block:1px solid var(--g-800)}
.ticker-track{display:flex;width:max-content}
.ticker-group{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3.5rem);padding-right:clamp(1.5rem,3vw,3.5rem);font-family:var(--font-display);font-weight:900;font-stretch:125%;font-size:clamp(2.6rem,1rem + 7vw,7rem);line-height:1;text-transform:uppercase;white-space:nowrap}
.ticker-group li:nth-child(odd){-webkit-text-stroke:1.5px var(--g-500);color:transparent}
.ticker-group li:nth-child(even){color:var(--g-700)}
.is-rolling .ticker-track{animation:roll-3 60s linear infinite}
@keyframes roll-3{to{transform:translate3d(-33.3333%,0,0)}}

/* ---------- split layouts ---------- */
.split{display:grid;gap:clamp(2.25rem,1rem + 4vw,5rem);align-items:start}
.split > *{min-width:0}
@media (min-width:920px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.split--wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}

.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}
.tags li{font-family:var(--font-mono);font-size:var(--fs-label);padding:.45rem .75rem;border:1px solid var(--g-400);color:var(--g-800)}

/* photo collage */
.collage{position:relative;aspect-ratio:10/9;max-width:34rem;width:100%}
.aside{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;align-content:start}
.collage figure{position:absolute;border:6px solid var(--g-50);background:var(--g-50);box-shadow:0 30px 60px -24px var(--shadow);transition:transform .5s var(--ease)}
.collage img{width:100%;filter:grayscale(1) contrast(1.05);transition:filter .5s}
.collage figure:hover{z-index:5}
.collage figure:hover img{filter:grayscale(0)}
.collage .c-1{left:0;top:6%;width:74%;transform:rotate(-2.5deg)}
.collage .c-2{right:0;top:0;width:44%;transform:rotate(3deg)}
.collage .c-3{right:4%;bottom:0;width:52%;transform:rotate(1.5deg)}
.collage .c-1:hover{transform:rotate(0) scale(1.03)}
.collage .c-2:hover{transform:rotate(0) scale(1.05)}
.collage .c-3:hover{transform:rotate(0) scale(1.05)}

/* ---------- capacity ---------- */
.drawing{width:100%;border:1px solid var(--g-700);background:var(--g-900)}
.dw-grid{stroke:var(--g-700);stroke-opacity:.6;stroke-width:1;fill:none}
.dw-sheet{fill:url(#dw-grid-pattern)}
.dw-part{fill:var(--g-950);fill-opacity:.55;stroke:var(--g-50);stroke-width:2.25}
.dw-min{fill:var(--g-50);stroke:none}
.dw-center{stroke:var(--g-400);stroke-width:1;stroke-dasharray:14 4 3 4;fill:none}
.dw-dim{stroke:var(--g-400);stroke-width:1;fill:none}
.dw-arrow{fill:var(--g-400);stroke:none}
.dw-text{font-family:var(--font-mono);font-size:15px;fill:var(--g-100)}
.dw-text--dim{font-size:18px;font-weight:500}
.dw-text--title{font-weight:500;letter-spacing:.06em}
.dw-text--note{font-size:13.5px;fill:var(--g-400)}
.drawing.will-draw .dw-part{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0}
.drawing.will-draw .dw-fade{opacity:0}
.drawing.will-draw.is-in .dw-part{stroke-dashoffset:0;fill-opacity:.55;transition:stroke-dashoffset 1.8s var(--ease),fill-opacity 1s 1.2s}
.drawing.will-draw.is-in .dw-fade{opacity:1;transition:opacity .9s 1.1s}
.drawing-note{margin-top:.8rem;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--g-400)}

.caps{display:grid;gap:0;border-top:1px solid var(--g-700)}
.caps > div{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;padding-block:1.5rem;border-bottom:1px solid var(--g-700)}
.caps dt{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--g-400)}
.caps dd{font-family:var(--font-display);font-weight:900;font-stretch:120%;font-size:var(--fs-giant);line-height:1;letter-spacing:-.02em;white-space:nowrap}

/* ---------- services: expanding panels ---------- */
.panels{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.panel{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:24rem;min-width:0;padding:1.5rem;border:1px solid var(--g-700);background:var(--g-850);cursor:default}
.panel > img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.5) contrast(1.1);transform:scale(1.04);transition:filter .7s,transform 1.2s var(--ease)}
.panel::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--veil-none) 0%,var(--veil-soft) 35%,var(--veil-strong) 100%)}
.panel-body{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem}
.panel-spec{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--g-300)}
.panel-spec b{display:block;font-weight:500;font-size:1.0625rem;color:var(--white);letter-spacing:0}
.panel-spec span{letter-spacing:.12em;text-transform:uppercase}
.panel h3{color:var(--white)}
.panel-text{color:var(--g-200);font-size:1rem;line-height:1.55}
.panel:hover > img,.panel:focus-visible > img,.panel.is-active > img{filter:grayscale(.15) brightness(.62) contrast(1.05);transform:scale(1)}
@media (min-width:1000px){
  .panels.is-accordion{display:flex;gap:10px}
  .panels.is-accordion .panel{flex:1 1 0;min-height:33rem;padding:1.4rem 1rem;cursor:pointer;transition:flex-grow .7s var(--ease),border-color .4s}
  .panels.is-accordion .panel.is-active{flex-grow:3.4;border-color:var(--g-400);cursor:default}
  .panels.is-accordion .panel-text{width:27rem;max-width:none;max-height:0;opacity:0;overflow:hidden;transition:opacity .25s,max-height .5s}
  .panels.is-accordion .panel.is-active .panel-text{max-height:14rem;opacity:1;transition:opacity .6s .3s,max-height .7s}
  .panels.is-accordion .panel.is-active{padding-inline:1.6rem}
  .panels.is-accordion .panel:not(.is-active) h3{font-size:1rem;font-stretch:100%;overflow-wrap:anywhere}
}
.note{margin-top:2rem;max-width:62ch;color:var(--g-400)}

/* ---------- process ---------- */
.steps{position:relative;display:grid;gap:2.25rem 2rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));counter-reset:step}
.steps > li{position:relative;display:grid;gap:.7rem;align-content:start;padding-top:1.4rem;border-top:2px solid var(--g-950);counter-increment:step;min-width:0}
.steps > li::before{content:"0" counter(step);font-family:var(--font-display);font-weight:900;font-stretch:120%;font-size:3.25rem;line-height:1;background-image:var(--steel);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--g-800)}
.steps p{color:var(--g-700)}
.vocab{margin-top:2.75rem;display:grid;gap:.6rem;padding:1.25rem 1.4rem;border:1px solid var(--g-400);font-family:var(--font-mono);font-size:.9375rem;color:var(--g-800)}
.vocab dt{display:inline;font-weight:500;color:var(--g-600)}
.vocab dd{display:inline}

/* ---------- photo reel ---------- */
.reel{display:grid;gap:14px;overflow:hidden}
.reel-row{overflow-x:auto;scrollbar-width:none}
.reel-row::-webkit-scrollbar{display:none}
.reel-track{display:flex;width:max-content}
.reel-group{display:flex;gap:14px;padding-right:14px}
.reel-group li{width:clamp(15rem,24vw,26.25rem);overflow:hidden;border:1px solid var(--g-700);background:var(--g-850)}
.reel-group img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.82);transition:filter .5s,transform .8s var(--ease)}
.reel-group li:hover img{filter:grayscale(0);transform:scale(1.06)}
.is-rolling .reel-row{overflow:hidden}
.is-rolling .reel-track{animation:roll-3 70s linear infinite}
.is-rolling .reel-row--back .reel-track{animation-direction:reverse;animation-duration:84s}
.is-rolling .reel-row:hover .reel-track{animation-play-state:paused}

/* ---------- equipment ---------- */
.machines{border-top:1px solid var(--g-600)}
.machines li{display:grid;gap:.3rem;padding:1.05rem 0;border-bottom:1px solid var(--g-700);transition:padding-left .4s var(--ease),background-color .4s}
.machines .m-name{font-family:var(--font-display);font-weight:800;font-stretch:116%;font-size:clamp(1.25rem,.9rem + 1.5vw,2rem);line-height:1.1;text-transform:uppercase;color:var(--g-300);transition:color .3s}
.machines .m-type{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--g-400)}
.machines li:hover{padding-left:1rem;background:var(--glass)}
.machines li:hover .m-name{color:var(--white)}
.plain-list{display:grid;gap:.45rem;margin-top:.8rem}
.plain-list li{padding-left:1.2rem;position:relative}
.plain-list li::before{content:"";position:absolute;left:0;top:.72em;width:.6rem;height:1.5px;background:var(--g-400)}

/* ---------- about ---------- */
.timeline{display:grid;gap:2rem;border-left:2px solid var(--g-950);padding-left:1.75rem}
.timeline li{display:grid;gap:.35rem;position:relative}
.timeline li::before{content:"";position:absolute;left:calc(-1.75rem - 7px);top:.45em;width:12px;height:12px;background:var(--g-950);transform:rotate(45deg)}
.timeline .when{font-family:var(--font-display);font-weight:850;font-stretch:118%;font-size:1.5rem;line-height:1.1;text-transform:uppercase}
.timeline p{color:var(--g-700)}
.pull{font-family:var(--font-display);font-weight:800;font-stretch:114%;font-size:clamp(1.5rem,1rem + 1.9vw,2.4rem);line-height:1.12;text-transform:uppercase;text-wrap:balance;padding-top:1.5rem;border-top:2px solid var(--g-950)}
.band--light .prose{color:var(--g-800)}

/* ---------- contact ---------- */
.phone-big{display:inline-block;font-family:var(--font-display);font-weight:900;font-stretch:120%;font-size:clamp(2rem,.6rem + 3.4vw,4rem);line-height:1.1;letter-spacing:-.02em;text-decoration:none;white-space:nowrap}
.details{display:grid;gap:1.5rem 2.5rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.details dt{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--g-400)}
.details dd{margin-top:.25rem;font-size:var(--fs-lead);font-weight:500;overflow-wrap:anywhere}
.details a{text-decoration-color:var(--g-500);text-underline-offset:.22em}
.details a:hover{text-decoration-color:var(--white)}
.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.place{display:grid;gap:14px}
.place figure{overflow:hidden;border:1px solid var(--g-700)}
.place figure img{width:100%;filter:grayscale(1) contrast(1.05);transition:filter .5s}
.place figure:hover img{filter:grayscale(0)}
.place figcaption{padding:.7rem 1rem;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--g-400);background:var(--g-950)}
.map-slot{display:grid;place-items:center;gap:.8rem;align-content:center;aspect-ratio:16/9;max-width:100%;padding:1rem;text-align:center;border:1px dashed var(--g-600);background:var(--glass)}
.map-slot.is-loaded{display:block;padding:0;border-style:solid}
.map-frame{display:block;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.map-note{font-size:.9375rem;color:var(--g-300)}

/* ---------- footer: a drawing title block ---------- */
.site-footer{padding-block:0 2rem;background:var(--g-950)}
.titleblock{display:grid;border:1px solid var(--g-700);grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr))}
.titleblock > div{padding:1.1rem 1.25rem;min-width:0;box-shadow:1px 0 0 var(--g-700),0 1px 0 var(--g-700)}
.titleblock .tb-brand{display:flex;align-items:center}
.titleblock .tb-brand img{height:58px;width:auto}
.tb-label{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--g-400)}
.tb-value{margin-top:.25rem;font-size:.9375rem;line-height:1.45;overflow-wrap:anywhere}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:1.4rem;font-size:.875rem;color:var(--g-400)}
.legal ul{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.legal a{text-decoration:none}
.legal a:hover{color:var(--white)}

/* ---------- reveal on scroll (set up by main.js; content is visible without it) ---------- */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-waiting{opacity:0;transform:translate3d(0,34px,0)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero-media{transform:none}
}
@media print{
  .site-header,.map-slot,.ticker,.reel{display:none}
}
