/* ==========================================================================
   Maroony / S. Chase Productions
   Palette and typeface are fixed by brand/terms.md — cyan #05C7F2 on black,
   Montserrat 400-900. The warm accent carries the orange half of the grade.
   Section order follows the pitch deck, page for page.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

:root{
  --ink:#000000; --ink-raise:#08090C; --ink-card:#101319; --ink-card-2:#161A22;

  --cyan:#05C7F2; --cyan-2:#12A7E8; --cyan-3:#1E86DA; --blue-4:#2A63C4; --blue-5:#3341A8;
  --ember:#FF8A2B; --ember-2:#F2600B;

  --paper:#EEF4F8; --paper-2:#B9C6D1; --paper-3:#7C8B98;

  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.18);
  --cyan-glow:rgba(5,199,242,.28);

  --rule-w:1320px;
  --pad-x:clamp(20px,4.5vw,64px);
  --sect-y:clamp(76px,9vw,144px);

  --t-fast:160ms cubic-bezier(.4,0,.2,1);
  --t:260ms cubic-bezier(.4,0,.2,1);

  color-scheme:dark;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0; background:var(--ink); color:var(--paper);
  font:400 16px/1.65 Montserrat,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--cyan); text-decoration:none; }
a:hover{ color:#5BDCFA; }
:focus-visible{ outline:2px solid var(--cyan); outline-offset:3px; border-radius:2px; }

.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--cyan); color:#00161D;
       font-weight:700; padding:12px 20px; border-radius:0 0 4px 0; }
.skip:focus{ left:0; }

/* ---------- primitives ------------------------------------------------- */

.wrap{ position:relative; z-index:2; width:100%; max-width:var(--rule-w);
       margin-inline:auto; padding-inline:var(--pad-x); }
.section{ position:relative; padding-block:var(--sect-y); overflow:hidden; isolation:isolate; }
.section--hair{ border-top:1px solid var(--line); }

/* a cool wash behind selected sections */
.tint::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(76% 66% at 12% -4%, rgba(5,199,242,.24), transparent 62%),
    radial-gradient(64% 58% at 94% 98%, rgba(42,99,196,.22), transparent 64%);
}
.tint--warm::before{
  background:
    radial-gradient(74% 64% at 88% 2%,  rgba(255,138,43,.22), transparent 62%),
    radial-gradient(68% 60% at 4% 94%,  rgba(5,199,242,.19), transparent 64%);
}

.eyebrow{ display:flex; align-items:center; gap:12px; font-size:11px; font-weight:700;
          letter-spacing:.26em; text-transform:uppercase; color:var(--cyan); margin:0 0 18px; }
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--cyan); flex:none; }

h1,h2,h3,h4{ font-weight:800; line-height:1.08; letter-spacing:-.02em; margin:0; text-wrap:balance; }
h2{ font-size:clamp(31px,4.4vw,54px); }
h3{ font-size:clamp(20px,2.2vw,27px); letter-spacing:-.01em; }

.lede{ font-size:clamp(17px,1.5vw,20px); line-height:1.62; color:var(--paper-2); max-width:64ch; margin:20px 0 0; }
.muted{ color:var(--paper-3); }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px;
      padding:0 26px; cursor:pointer; font:700 13px/1 Montserrat,sans-serif; letter-spacing:.13em;
      text-transform:uppercase; border-radius:3px; border:1px solid transparent;
      transition:background var(--t),color var(--t),border-color var(--t),transform var(--t-fast); }
.btn:active{ transform:translateY(1px); }
.btn--solid{ background:var(--cyan); color:#00161D; }
.btn--solid:hover{ background:#5BDCFA; color:#00161D; }
.btn--ghost{ border-color:var(--line-2); color:var(--paper); background:transparent; }
.btn--ghost:hover{ border-color:var(--cyan); color:var(--cyan); background:rgba(5,199,242,.07); }
.btn--ember{ background:var(--ember); color:#2A1200; }
.btn--ember:hover{ background:#FFA155; color:#2A1200; }
.btn[disabled]{ opacity:.55; cursor:progress; }

/* ---------- cinema hardware -------------------------------------------
   Reels, film strip, clapper, a camera body, a fresnel on a stand. Drawn as
   masks so each one can be tinted to the palette rather than sitting grey. */

.el{
  position:absolute; z-index:1; pointer-events:none; user-select:none;
  background:currentColor;
  -webkit-mask:var(--src) center/contain no-repeat;
          mask:var(--src) center/contain no-repeat;
}
.el--cyan { color:var(--cyan); }
.el--ember{ color:var(--ember); }
.el--pale { color:#CFE4F0; }

.el-reel  { --src:url("../img/el-reel.png"); }
.el-clap  { --src:url("../img/el-clapper.png"); }
.el-crane { --src:url("../img/el-crane.png"); }
.el-cam   { --src:url("../img/el-camera.png"); }
.el-strip { --src:url("../img/el-strip-h.png"); }
.el-light { --src:url("../img/el-light.svg"); }
.el-sprk  { --src:url("../img/el-sprockets.svg"); }

/* a big outlined keyword per block */
.mark{
  position:absolute; z-index:0; pointer-events:none; user-select:none; white-space:nowrap;
  font-size:clamp(58px,12.5vw,176px); font-weight:900; letter-spacing:-.045em; line-height:.78;
  text-transform:uppercase; color:transparent;
  -webkit-text-stroke:1.5px rgba(255,138,43,.26);
  left:var(--pad-x); top:clamp(26px,4.6vw,58px);
}
.mark--cyan{ -webkit-text-stroke-color:rgba(5,199,242,.22); }
.mark--low { top:auto; bottom:clamp(18px,3vw,44px); left:auto; right:var(--pad-x); }
@supports not (-webkit-text-stroke:1px red){ .mark{ display:none; } }

.hi{ color:var(--cyan); }
.hi-warm{ color:var(--ember); }

/* the run-in name that follows the drop cap */
.lead-in{ color:var(--cyan); font-weight:700; }
.lead-in--warm{ color:var(--ember); }

/* Walk of Fame plaques behind the collaborators */
.el--tile{ -webkit-mask-repeat:repeat; mask-repeat:repeat;
           -webkit-mask-size:340px 340px; mask-size:340px 340px;
           -webkit-mask-position:0 0; mask-position:0 0; }
.el-stars{ --src:url("../img/el-stars.svg"); }

/* a button that carries a second line of status */
.btn--stack{ flex-direction:column; gap:4px; min-height:58px; padding:10px 30px; line-height:1.1; }
.btn--stack small{ font-size:9px; font-weight:700; letter-spacing:.2em; opacity:.7; }

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

.hdr{
  position:sticky; top:0; z-index:100;
  background:rgba(0,0,0,.94);
  -webkit-backdrop-filter:blur(16px) saturate(1.35); backdrop-filter:blur(16px) saturate(1.35);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(5,199,242,.10), 0 14px 34px -22px #000;
}
.hdr__in{ display:flex; align-items:center; gap:20px; min-height:88px;
          max-width:var(--rule-w); margin-inline:auto; padding-inline:var(--pad-x); }
.hdr__logo{ display:flex; align-items:center; gap:12px; flex:none; }
.hdr__logo img{ width:58px; height:58px; object-fit:cover; border-radius:50%; }
.hdr__logo b{ font-size:12px; font-weight:800; letter-spacing:.2em; text-transform:uppercase;
              color:var(--paper); line-height:1.25; }
.hdr__logo span{ display:block; font-size:9px; font-weight:600; letter-spacing:.28em; color:var(--paper-3); }

.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav a{ display:inline-flex; align-items:center; min-height:44px; padding:0 13px; font-size:12px;
        font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--paper-2);
        border-radius:3px; transition:color var(--t),background var(--t); }
.nav a:hover{ color:var(--paper); background:rgba(255,255,255,.07); }
.nav a[aria-current="true"]{ color:var(--cyan); }
.nav .btn{ min-height:40px; padding:0 18px; margin-left:10px; font-size:11px; }

.burger{ display:none; margin-left:auto; width:46px; height:46px; flex:none; background:transparent;
         border:1px solid var(--line-2); border-radius:3px; color:var(--paper); cursor:pointer;
         align-items:center; justify-content:center; }
.burger svg{ width:20px; height:20px; }

@media (max-width:1040px){
  .burger{ display:inline-flex; }
  .nav{ position:fixed; inset:88px 0 auto 0; margin:0; flex-direction:column; align-items:stretch;
        gap:0; background:rgba(0,0,0,.98); border-bottom:1px solid var(--line);
        padding:8px var(--pad-x) 22px; max-height:calc(100dvh - 88px); overflow:auto; }
  .nav[hidden]{ display:none; }
  .nav a{ min-height:52px; font-size:14px; border-bottom:1px solid rgba(255,255,255,.05); border-radius:0; }
  .nav .btn{ margin:14px 0 0; min-height:50px; }
}

/* ---------- the two title blocks --------------------------------------- */

.bigtitle{
  font-weight:900; letter-spacing:-.045em; line-height:.84; margin:0; text-transform:uppercase;
  background:linear-gradient(178deg,#FFFFFF 8%,#CFE9F5 42%,var(--cyan-3) 118%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 0 72px var(--cyan-glow);
}
.bigtitle--hero{ font-size:clamp(46px,10.6vw,148px); }
@media (max-width:520px){ .bigtitle--hero{ font-size:34px; letter-spacing:-.03em; } }
.bigtitle--film{ font-size:clamp(58px,15vw,206px); }

.hero{ position:relative; isolation:isolate; overflow:hidden; background:var(--ink); }
.hero__art{ position:absolute; inset:0; z-index:-3; }
.hero__art img{ width:100%; height:100%; object-fit:cover; object-position:center 44%;
                filter:grayscale(.22) contrast(1.14) brightness(.78) saturate(1.1); }
.hero__grade{ position:absolute; inset:0; z-index:-2; mix-blend-mode:color;
  background:
    radial-gradient(128% 100% at 92% 96%, rgba(242,96,11,.88), transparent 66%),
    radial-gradient(96% 76% at 14% 4%,   rgba(255,138,43,.42), transparent 62%); }
.hero__scrim{ position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.56) 0%, rgba(0,0,0,.22) 30%, rgba(0,0,0,.84) 76%, #000 100%),
    linear-gradient(to right,  rgba(0,0,0,.88) 0%, rgba(0,0,0,.36) 48%, rgba(0,0,0,.70) 100%); }
.hero__in{ position:relative; z-index:2; max-width:var(--rule-w); margin-inline:auto;
           padding:clamp(76px,11vw,150px) var(--pad-x) clamp(52px,6.5vw,86px); }
.hero__kicker{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; font-size:11px;
               font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--paper-2);
               margin-bottom:22px; }
.hero__meta{ line-height:1.9; }
.tag--live{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px;
            border:1px solid rgba(255,138,43,.45); border-radius:999px; color:var(--ember);
            background:rgba(255,138,43,.10); }
.tag--live::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--ember); }
.hero__sub{ font-size:clamp(16px,1.6vw,21px); line-height:1.55; color:var(--paper); max-width:48ch;
            margin:26px 0 0; font-weight:500; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero__cred{ margin-top:40px; padding-top:22px; border-top:1px solid var(--line); display:flex;
             flex-wrap:wrap; gap:8px 30px; font-size:11px; font-weight:600; letter-spacing:.14em;
             text-transform:uppercase; color:var(--paper-3); }
.hero__cred b{ color:var(--paper-2); font-weight:700; }

/* ---------- stat strip ------------------------------------------------- */

.strip{ border-block:1px solid var(--line); background:linear-gradient(180deg,#05070A,#000); position:relative; overflow:hidden; }
.strip__in{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr);
            max-width:var(--rule-w); margin-inline:auto; padding-inline:var(--pad-x); }
.strip__cell{ padding:30px 22px 30px 0; border-right:1px solid var(--line); }
.strip__cell:last-child{ border-right:0; }
.strip__cell:not(:first-child){ padding-left:26px; }
.strip__n{ font-size:clamp(26px,3.4vw,42px); font-weight:800; letter-spacing:-.03em; line-height:1;
           color:var(--cyan); font-variant-numeric:tabular-nums; }
.strip__l{ margin-top:10px; font-size:10.5px; font-weight:600; letter-spacing:.17em;
           text-transform:uppercase; color:var(--paper-3); line-height:1.5; }
@media (max-width:760px){
  .strip__in{ grid-template-columns:repeat(2,1fr); }
  .strip__cell{ padding:24px 18px; border-bottom:1px solid var(--line); }
  .strip__cell:nth-child(2n){ border-right:0; }
  .strip__cell:nth-last-child(-n+2){ border-bottom:0; }
  .strip__cell:not(:first-child){ padding-left:18px; }
}

/* ---------- portrait + prose ------------------------------------------- */

.split{ display:grid; grid-template-columns:minmax(0,360px) minmax(0,1fr);
        gap:clamp(30px,4.5vw,68px); align-items:start; margin-top:46px; }
.split--flip{ grid-template-columns:minmax(0,1fr) minmax(0,380px); }
@media (max-width:900px){ .split,.split--flip{ grid-template-columns:1fr; } }

.frame{ position:relative; border-radius:5px; overflow:hidden; border:1px solid var(--line-2);
        background:var(--ink-card);
        box-shadow:0 36px 76px -30px rgba(0,0,0,.95), 0 0 0 1px rgba(5,199,242,.12), 0 0 80px -26px var(--cyan-glow); }
.frame img{ width:100%; }
.frame__cap{ padding:14px 18px; border-top:1px solid var(--line); font-size:10.5px; font-weight:600;
             letter-spacing:.14em; text-transform:uppercase; color:var(--paper-3); line-height:1.75; }
.frame__cap b{ color:var(--paper-2); }

.prose p{ color:var(--paper-2); font-size:16.5px; line-height:1.78; margin:0 0 18px; max-width:66ch; }
.prose p:last-child{ margin-bottom:0; }
.prose--drop p:first-of-type::first-letter{ float:left; font-size:62px; font-weight:800; line-height:.82;
                                            margin:6px 12px 0 0; color:var(--cyan); }

.quote{ margin:0; padding:28px 0 0; border-top:1px solid var(--line); }
.quote blockquote{ margin:0; font-size:clamp(17px,1.75vw,22px); line-height:1.6; font-weight:500;
                   color:var(--paper); max-width:62ch; }
.quote blockquote::before{ content:"\201C"; color:var(--ember); font-size:1.4em; line-height:0;
                           vertical-align:-.28em; margin-right:.06em; }
.quote blockquote::after{ content:"\201D"; color:var(--ember); font-size:1.4em; line-height:0;
                          vertical-align:-.28em; margin-left:.04em; }
.quote figcaption{ margin-top:18px; font-size:11px; font-weight:700; letter-spacing:.2em;
                   text-transform:uppercase; color:var(--paper-3); }

/* ---------- key/value grids -------------------------------------------- */

.spec{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:0; margin-top:36px;
       background:var(--ink-raise); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.spec--two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.spec__i{ padding:18px 20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.spec__i--wide{ grid-column:span 2; }
@media (max-width:560px){
  .spec,.spec--two{ grid-template-columns:1fr; }
  .spec__i--wide{ grid-column:span 1; }
}
.spec__k{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-3); }
.spec__v{ margin-top:8px; font-size:15px; font-weight:600; color:var(--paper); line-height:1.5; }
.spec__v.is-num{ color:var(--cyan); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }

/* ---------- names / pills ---------------------------------------------- */

.names{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.name{ padding:10px 17px; border:1px solid rgba(5,199,242,.34); border-radius:999px; font-size:13.5px;
       font-weight:600; letter-spacing:.01em; color:#D6ECF6; background:rgba(5,199,242,.13);
       transition:border-color var(--t),color var(--t),background var(--t); }
.name:hover{ border-color:rgba(5,199,242,.75); color:#FFFFFF; background:rgba(5,199,242,.24); }
.names .more{ border-color:rgba(255,138,43,.38); background:rgba(255,138,43,.10); color:#F3D2B4; }

.pills{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.pill{ padding:9px 16px; border:1px solid var(--line-2); border-radius:999px; font-size:12px;
       font-weight:600; letter-spacing:.06em; color:var(--paper-2); }

/* ---------- notes ------------------------------------------------------ */

.note{ display:flex; gap:14px; align-items:flex-start; border:1px solid rgba(5,199,242,.28);
       border-left:3px solid var(--cyan); background:rgba(5,199,242,.05); border-radius:0 4px 4px 0;
       padding:18px 22px; margin-top:30px; }
.note svg{ width:19px; height:19px; flex:none; margin-top:2px; color:var(--cyan); }
.note p{ margin:0; font-size:14px; line-height:1.65; color:var(--paper-2); }
.note b{ color:var(--paper); }
.note--warm{ border-color:rgba(255,138,43,.28); border-left-color:var(--ember); background:rgba(255,138,43,.055); }
.note--warm svg{ color:var(--ember); }

/* ---------- poster shelves --------------------------------------------- */

.shelf{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(182px,1fr); gap:18px;
        overflow-x:auto; padding:4px 4px 22px; margin-top:34px; scroll-snap-type:x mandatory;
        overscroll-behavior-x:contain; scrollbar-color:var(--cyan-3) var(--ink-card); }
.shelf::-webkit-scrollbar{ height:8px; }
.shelf::-webkit-scrollbar-track{ background:var(--ink-card); border-radius:99px; }
.shelf::-webkit-scrollbar-thumb{ background:var(--cyan-3); border-radius:99px; }
.shelf--wrap{ grid-auto-flow:row; grid-template-columns:repeat(auto-fill,minmax(min(182px,100%),1fr));
              overflow:visible; scroll-snap-type:none; }
.tile{ scroll-snap-align:start; margin:0; }
.tile img{ width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:3px; border:1px solid var(--line);
           filter:grayscale(.2) contrast(1.05); transition:filter var(--t),transform var(--t),border-color var(--t); }
.tile:hover img{ filter:none; transform:translateY(-4px); border-color:rgba(5,199,242,.45); }
.tile__t{ margin-top:12px; font-size:13px; font-weight:700; line-height:1.35; }
.tile__m{ display:block; margin-top:6px; font-size:12px; font-weight:700; color:var(--ember);
          font-variant-numeric:tabular-nums; }
.tile__s{ display:block; margin-top:5px; font-size:11.5px; color:var(--paper-3); font-variant-numeric:tabular-nums; }

/* ---------- table ------------------------------------------------------ */

.tbl-wrap{ margin-top:44px; overflow-x:auto; border:1px solid var(--line); border-radius:4px; background:var(--ink-raise); }
table{ width:100%; min-width:580px; border-collapse:collapse; font-variant-numeric:tabular-nums; }
caption{ text-align:left; padding:18px 22px; font-size:13px; color:var(--paper-3); border-bottom:1px solid var(--line); }
th,td{ padding:13px 22px; text-align:right; font-size:14px; border-bottom:1px solid rgba(255,255,255,.055); }
th:first-child,td:first-child{ text-align:left; }
thead th{ position:sticky; top:0; background:#05070A; z-index:1; font-size:10px; font-weight:700;
          letter-spacing:.17em; text-transform:uppercase; color:var(--paper-3); border-bottom:1px solid var(--line); }
tbody tr{ transition:background var(--t-fast); }
tbody tr:hover{ background:rgba(5,199,242,.045); }
tbody td:first-child{ font-weight:600; color:var(--paper); }
td.mult{ color:var(--ember); font-weight:700; }
tfoot td{ background:#05070A; font-weight:800; color:var(--paper); border-bottom:0; border-top:1px solid var(--line-2); }
tfoot td.mult{ color:var(--cyan); }

.kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); gap:16px; margin-top:26px; }
.kpi{ border:1px solid var(--line); border-radius:4px; padding:20px; background:var(--ink-raise); }
.kpi b{ display:block; font-size:27px; font-weight:800; color:var(--cyan); letter-spacing:-.02em;
        font-variant-numeric:tabular-nums; }
.kpi span{ display:block; margin-top:8px; font-size:10px; font-weight:600; letter-spacing:.16em;
           text-transform:uppercase; color:var(--paper-3); }

/* ---------- cast ------------------------------------------------------- */

.lead{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); gap:20px; margin-top:36px; }
.lead__i{ display:grid; grid-template-columns:160px minmax(0,1fr); align-items:center; gap:26px;
          border-radius:4px; overflow:hidden; border:1px solid var(--line-2);
          background:linear-gradient(150deg,rgba(5,199,242,.13),rgba(255,138,43,.06) 70%,transparent),var(--ink-card); }
.lead__i img{ width:100%; height:100%; min-height:220px; object-fit:cover; object-position:center 18%; }
.lead__i > div{ padding:26px 26px 26px 0; }
.lead__r{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); }
.lead__n{ margin-top:10px; font-size:clamp(22px,2.5vw,30px); font-weight:800; letter-spacing:-.02em; line-height:1.1; }
.lead__c{ margin-top:10px; font-size:13px; color:var(--paper-3); line-height:1.6; }
@media (max-width:460px){
  .lead__i{ grid-template-columns:1fr; }
  .lead__i img{ min-height:0; aspect-ratio:16/10; object-position:center 22%; }
  .lead__i > div{ padding:24px; }
}

.faces{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(172px,100%),1fr)); gap:18px; margin-top:30px; }
.faces figure{ margin:0; }
.faces img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 16%; border-radius:4px;
            border:1px solid var(--line); filter:grayscale(.5) contrast(1.08) brightness(.94);
            transition:filter var(--t),border-color var(--t),transform var(--t); }
.faces figure:hover img{ filter:none; border-color:rgba(5,199,242,.45); transform:translateY(-3px); }
.faces figcaption{ display:block; padding-top:12px; }
.face__n{ display:block; font-size:15.5px; font-weight:700; letter-spacing:-.01em; }
.face__c{ display:block; margin-top:6px; font-size:12px; line-height:1.55; color:var(--paper-3); }

/* ---------- team ------------------------------------------------------- */

.team{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:38px; align-items:stretch; }
@media (min-width:760px){ .team{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.card{ background:var(--ink-card); border:1px solid var(--line); border-radius:4px; padding:28px;
       transition:border-color var(--t),transform var(--t),background var(--t); }
.card:hover{ border-color:rgba(5,199,242,.4); transform:translateY(-3px); background:var(--ink-card-2); }
.card__av{ width:68px; height:68px; border-radius:50%; object-fit:cover; margin-bottom:14px;
           border:1px solid var(--line-2); filter:grayscale(.28) contrast(1.05); }
.card__r{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); }
.card__n{ margin-top:10px; font-size:19px; font-weight:800; letter-spacing:-.01em; }
.card__b{ margin-top:14px; font-size:14px; line-height:1.72; color:var(--paper-2); }

/* ---------- slate ------------------------------------------------------ */

.alloc{ margin-top:38px; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.alloc__row{ display:grid; grid-template-columns:minmax(0,1fr) 96px 140px; gap:20px; align-items:center;
             padding:20px 24px; border-bottom:1px solid var(--line); position:relative; background:var(--ink-raise); }
.alloc__row:last-child{ border-bottom:0; }
.alloc__bar{ position:absolute; inset:0 auto 0 0; z-index:0;
             background:linear-gradient(90deg,rgba(5,199,242,.30),rgba(51,65,168,.16));
             border-right:2px solid var(--cyan); }
.alloc__row--tot .alloc__bar{ display:none; }
.alloc__row > *:not(.alloc__bar){ position:relative; z-index:1; }
.alloc__n{ font-size:15px; font-weight:600; min-width:0; overflow-wrap:anywhere; }
.alloc__n small{ display:block; margin-top:5px; font-size:12px; font-weight:400; color:var(--paper-3); }
.alloc__p{ text-align:right; font-size:15px; font-weight:700; color:var(--cyan); font-variant-numeric:tabular-nums; }
.alloc__a{ text-align:right; font-size:15px; font-weight:700; font-variant-numeric:tabular-nums; }
.alloc__row--tot{ background:#05070A; }
.alloc__row--tot .alloc__n{ font-weight:800; letter-spacing:.04em; text-transform:uppercase; font-size:13px; }
@media (max-width:640px){
  .alloc__row{ grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; }
  .alloc__a{ grid-column:1/-1; text-align:left; color:var(--paper-2); font-size:14px; }
}

/* ---------- contact + form --------------------------------------------- */

.contact{ display:grid; grid-template-columns:1fr; gap:0; margin-top:20px;
          background:var(--ink-raise); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.contact__i{ padding:22px 24px; border-bottom:1px solid var(--line); }
.contact__i:last-child{ border-bottom:0; }
.contact__k{ font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-3); }
.contact__v{ margin-top:10px; font-size:15px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }

.form{ display:grid; gap:18px; }
.form__row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:18px; }
.field label{ display:block; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
              color:var(--paper-3); margin-bottom:9px; }
.field label .req{ color:var(--ember); }
.field input,.field textarea{
  width:100%; min-height:50px; padding:13px 16px; background:#05070A; color:var(--paper);
  border:1px solid var(--line-2); border-radius:3px; font:500 15px/1.5 Montserrat,sans-serif;
  transition:border-color var(--t),box-shadow var(--t); }
.field textarea{ min-height:130px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:#55636F; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(5,199,242,.18); }
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{ border-color:var(--ember); }
.field__err{ margin:8px 0 0; font-size:12.5px; color:var(--ember); }
.field__err:empty{ display:none; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form__msg{ margin:0; padding:14px 16px; border-radius:3px; font-size:13.5px; line-height:1.6;
            border:1px solid var(--line-2); background:var(--ink-raise); color:var(--paper-2); }
.form__msg:empty{ display:none; }
.form__msg[data-state="ok"]{ border-color:rgba(79,209,139,.4); background:rgba(79,209,139,.08); color:#CFEFDD; }
.form__msg[data-state="err"]{ border-color:rgba(255,138,43,.4); background:rgba(255,138,43,.08); }

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

.ftr{ border-top:1px solid var(--line); background:#020304; padding-block:48px 40px; position:relative; overflow:hidden; }
.ftr__in{ position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:28px 48px; align-items:flex-start; }
.ftr__brand{ display:flex; align-items:center; gap:14px; }
.ftr__brand img{ width:76px; height:76px; border-radius:50%; object-fit:cover; }
.ftr__brand b{ font-size:12px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.ftr__brand span{ display:block; font-size:9px; letter-spacing:.28em; color:var(--paper-3); }
.ftr__legal{ flex:1 1 420px; font-size:12px; line-height:1.8; color:var(--paper-3); }
.ftr__legal b{ color:var(--paper-2); }
.ftr__bottom{ margin-top:34px; padding-top:22px; border-top:1px solid var(--line); display:flex;
              flex-wrap:wrap; gap:12px 28px; justify-content:space-between; font-size:11px;
              letter-spacing:.08em; color:var(--paper-3); }

/* ---------- investor login --------------------------------------------- */

.gate{ min-height:100dvh; display:grid; place-items:center; padding:40px var(--pad-x); position:relative; isolation:isolate; overflow:hidden; }
.gate__art{ position:absolute; inset:0; z-index:-2; }
.gate__art img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.6) brightness(.3) contrast(1.1); }
.gate__scrim{ position:absolute; inset:0; z-index:-1;
  background:radial-gradient(70% 60% at 50% 40%,rgba(5,199,242,.13),transparent 70%),
             linear-gradient(180deg,rgba(0,0,0,.82),rgba(0,0,0,.96)); }
.gate__box{ width:100%; max-width:440px; background:rgba(10,13,18,.9);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--line-2); border-radius:5px; padding:clamp(30px,5vw,44px);
  box-shadow:0 40px 90px -30px #000; }
.gate__logo{ display:flex; align-items:center; gap:13px; margin-bottom:30px; }
.gate__logo img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.gate__logo b{ font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.gate__logo span{ display:block; font-size:9px; letter-spacing:.28em; color:var(--paper-3); }
.gate h1{ font-size:26px; }
.gate__sub{ margin:12px 0 30px; font-size:14px; line-height:1.65; color:var(--paper-3); }
.gate .field{ margin-bottom:20px; }
.gate .btn{ width:100%; }
.gate__msg{ margin-top:20px; padding:14px 16px; border-radius:3px; font-size:13px; line-height:1.6;
            border:1px solid rgba(255,138,43,.35); background:rgba(255,138,43,.07); color:var(--paper-2); }
.gate__back{ display:block; margin-top:26px; text-align:center; font-size:12px; letter-spacing:.1em;
             text-transform:uppercase; color:var(--paper-3); }
.gate__back:hover{ color:var(--cyan); }

/* ---------- phones ------------------------------------------------------
   Kept at the end of the sheet so these win over the component rules above. */

@media (max-width:560px){

  /* two posters and two faces per row, not one giant column */
  .shelf--wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .faces{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .tile__t{ font-size:12.5px; }
  .tile__s,.face__c{ font-size:11.5px; }

  /* the track record restacks as cards — the multiple is the number that
     matters and it was sitting off the right edge of a scrolling table */
  .tbl-wrap{ border:0; border-radius:0; background:transparent; overflow:visible; }
  table{ min-width:0; display:block; }
  caption{ display:block; padding:0 0 18px; border-bottom:0; font-size:12.5px; line-height:1.6; }
  thead{ display:none; }
  tbody,tfoot{ display:block; }
  tbody tr,tfoot tr{
    display:block; padding:15px 17px; margin-bottom:10px;
    border:1px solid var(--line); border-radius:4px; background:var(--ink-raise);
  }
  tfoot tr{ border-color:var(--line-2); background:#05070A; margin-bottom:0; }
  tbody tr:hover{ background:var(--ink-raise); }
  tbody td,tfoot td{
    display:flex; justify-content:space-between; align-items:baseline; gap:16px;
    padding:5px 0; border:0; text-align:right; font-size:14px;
  }
  tbody td::before,tfoot td::before{
    content:attr(data-label); flex:none;
    font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
    color:var(--paper-3);
  }
  tbody td:first-child,tfoot td:first-child{
    display:block; text-align:left; font-size:15.5px; font-weight:700;
    padding:0 0 10px; margin-bottom:8px; border-bottom:1px solid var(--line);
  }
  tbody td:first-child::before,tfoot td:first-child::before{ content:none; }

  /* two stat tiles per row instead of five stacked slabs */
  .kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .kpi{ padding:16px; }
  .kpi b{ font-size:22px; }

  /* buttons reach the full measure, so they line up */
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .hero__cta .btn{ width:100%; }
  .form button[type="submit"]{ width:100%; }

  /* 10px uppercase with wide tracking is a squint on a phone */
  .eyebrow,.hero__kicker,.hero__cred,.frame__cap,
  .spec__k,.lead__r,.card__r,.contact__k,.kpi span,
  .field label,.strip__l,.ftr__bottom{ font-size:11px; }
  .btn--stack small,.hdr__logo span,.ftr__brand span,.gate__logo span{ font-size:10px; }
  .card__b,.lead__c,.prose p{ font-size:15px; }

  /* inline links deserve a thumb-sized hit area */
  .tap{ display:inline-block; padding:11px 2px; }
}

@media (max-width:400px){
  .faces,.shelf--wrap{ gap:10px; }
  .hdr__logo img{ width:48px; height:48px; }
  .hdr__in{ min-height:76px; gap:12px; }
  .nav{ inset:76px 0 auto 0; max-height:calc(100dvh - 76px); }
}

/* ---------- reveal ------------------------------------------------------ */

.rv{ opacity:0; transform:translateY(18px); transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1); }
.rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .rv{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
@media print{ .hdr,.nav,.el,.mark,.hero__art{ display:none !important; } body{ background:#fff; color:#000; } }
