@font-face{
  font-family:'Taurus Display';
  src:url('../fonts/display.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap;
}
@font-face{
  font-family:'General Sans';
  src:url('../fonts/GeneralSans-Variable.woff2') format('woff2');
  font-weight:200 700;
  font-display:swap;
}

:root{
  --bg:#0A0A0C;
  --bg-2:#0E0E11;
  --line:#1E1E23;
  --line-2:#2A2A30;
  --bone:#E8E6E1;
  --dim:#8B8B92;
  --dim-2:#66666D;
  --red:#9C1D1D;
  --red-up:#B42222;
  --r:5px;
  --display:'Taurus Display',sans-serif;
  --body:'General Sans',sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{color-scheme:dark}
body{
  background:var(--bg);
  color:var(--bone);
  font-family:var(--body);
  font-weight:380;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-synthesis:none;
}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--bone);outline-offset:3px;border-radius:2px}

.shell{max-width:1320px;margin:0 auto;padding:0 48px}

.duo b{font-weight:500;color:var(--bone)}
.duo span{color:var(--dim)}

/* ---------- boot ---------- */

.boot{display:none}
html.pre-boot .boot,
html.booting .boot{
  display:flex;
  position:fixed;
  inset:0;
  z-index:80;
  align-items:center;
  justify-content:center;
  background:var(--bg);
}
.boot-inner{display:flex;flex-direction:column;align-items:center;gap:44px}
.boot-inner img{width:min(56vw,264px);height:auto}
.boot-btn{
  background:var(--red);
  color:var(--bone);
  font-weight:500;
  font-size:15px;
  letter-spacing:.01em;
  padding:15px 34px;
  border-radius:var(--r);
  transition:background .18s ease,transform .12s ease;
}
.boot-btn:hover{background:var(--red-up)}
.boot-btn:active{transform:scale(.98)}

html.booting .boot{background:transparent;pointer-events:none;transition:background .7s ease .35s}
html.booting .boot-inner{opacity:0;transition:opacity .24s ease}

html.pre-boot .site-head{transform:translateY(-102%)}
html.booting .site-head{transform:translateY(0);transition:transform .5s cubic-bezier(.22,.8,.3,1) 1.2s}

html.pre-boot .hero-video,
html.pre-boot .hero-still{filter:brightness(0)}
html.booting .hero-video,
html.booting .hero-still{filter:brightness(1);transition:filter 1.1s cubic-bezier(.33,0,.2,1) .25s}

html.pre-boot .hero-copy{opacity:0;transform:translateY(14px)}
html.booting .hero-copy{opacity:1;transform:none;transition:opacity .6s ease .95s,transform .6s cubic-bezier(.22,.8,.3,1) .95s}

html.boot-instant *{transition:none!important}

/* ---------- header ---------- */

.site-head{
  position:absolute;
  top:0;left:0;right:0;
  z-index:40;
  background:linear-gradient(180deg,rgba(10,10,12,.62),rgba(10,10,12,0));
}
.head-row{display:flex;align-items:center;gap:36px;height:72px}
.brand img{width:150px;height:auto}
.main-nav{display:flex;gap:28px;margin-left:12px}
.main-nav a{font-size:14.5px;font-weight:450;color:var(--bone);opacity:.85;transition:opacity .15s ease}
.main-nav a:hover{opacity:1}
.head-actions{margin-left:auto;display:flex;align-items:center;gap:22px}
.head-tel{font-size:14.5px;font-weight:450;color:var(--dim);transition:color .15s ease}
.head-tel:hover{color:var(--bone)}
.btn-line{
  font-size:14.5px;font-weight:500;
  padding:10px 20px;
  border:1px solid var(--line-2);
  border-radius:var(--r);
  background:rgba(10,10,12,.35);
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.btn-line:hover{background:var(--bone);border-color:var(--bone);color:#121214}

/* ---------- hero ---------- */

.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden}
.hero-video,.hero-still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-still{display:none}
.hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,12,.42) 0%,rgba(10,10,12,.18) 42%,rgba(10,10,12,.86) 100%);
}
.hero-copy{position:relative;z-index:2;width:100%;padding-top:120px;padding-bottom:72px}
h1{
  font-family:var(--display);
  font-weight:440;
  font-size:clamp(38px,6.1vw,82px);
  line-height:1.03;
  letter-spacing:.004em;
  text-transform:uppercase;
  max-width:18ch;
}
.hero-copy .duo{margin-top:22px;font-size:18px;max-width:52ch}

/* ---------- numbered doc section ---------- */

.doc-sec{padding:104px 0 120px}
.doc-head{
  display:flex;align-items:baseline;gap:16px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.doc-num{font-family:var(--display);font-weight:430;font-size:15px;color:var(--dim-2);letter-spacing:.1em}
.doc-label{font-family:var(--display);font-weight:430;font-size:15px;letter-spacing:.14em;text-transform:uppercase}
.lead{margin-top:30px;font-size:19px;max-width:56ch}

/* ---------- source list ---------- */

.source{display:grid;grid-template-columns:minmax(280px,36%) 1fr;gap:56px;margin-top:52px;align-items:start}
.source-list{list-style:none}
.source-list li{border-bottom:1px solid var(--line)}
.source-list li:first-child{border-top:1px solid var(--line)}
.src{
  display:block;width:100%;text-align:left;
  font-family:var(--display);
  font-weight:430;
  font-size:clamp(20px,1.8vw,25px);
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--dim-2);
  padding:19px 2px 19px 0;
  position:relative;
  transition:color .18s ease,padding-left .18s ease;
}
.src:hover{color:var(--bone)}
.src.is-active{color:var(--bone);padding-left:20px}
.src.is-active::before{
  content:"";
  position:absolute;left:0;top:50%;
  width:3px;height:26px;
  transform:translateY(-50%);
  background:var(--red);
}
.display{min-width:0}
.display-panel{
  position:relative;
  aspect-ratio:16/10;
  border:1px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  background:var(--bg-2);
}
.feed{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  opacity:0;
  transition:opacity .26s ease;
}
.feed.is-live{opacity:1}
.display-caption{margin-top:14px;font-size:14px;color:var(--dim)}

/* ---------- footer ---------- */

.site-foot{border-top:1px solid var(--line);padding:72px 0 56px}
.foot-grid{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:start}
.foot-copy .duo{font-size:19px;max-width:44ch}
.foot-tel{
  display:block;
  font-family:var(--display);
  font-weight:440;
  font-size:clamp(26px,3vw,38px);
  margin-top:26px;
  letter-spacing:.01em;
}
.foot-tel:hover{color:#fff}
.foot-mail{display:inline-block;margin-top:8px;font-size:16px;color:var(--dim);transition:color .15s ease}
.foot-mail:hover{color:var(--bone)}
.foot-meta{display:flex;flex-direction:column;gap:14px;align-items:flex-end;text-align:right}
.foot-meta img{width:150px;height:auto;opacity:.9}
.foot-meta span{font-size:13.5px;color:var(--dim-2)}

/* ---------- responsive ---------- */

@media (max-width:900px){
  .shell{padding:0 24px}
  .main-nav{display:none}
  .btn-line{display:none}
  .head-tel{color:var(--bone)}
  .head-row{height:64px}
  .hero-video{display:none}
  .hero-still{display:block}
  .hero-copy{padding-bottom:56px}
  .doc-sec{padding:72px 0 84px}
  .source{grid-template-columns:1fr;gap:28px}
  .display{order:-1}
  .src{font-size:19px;padding-top:15px;padding-bottom:15px}
  .foot-grid{grid-template-columns:1fr;gap:36px}
  .foot-meta{align-items:flex-start;text-align:left}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important}
}
