/* Glasshaus "editorial dark" theme: dark canvas, inset rounded panels, light serif headlines,
   mono uppercase labels, flat light buttons with arrows. Loaded after page styles. */
:root{
  --bg:#07090C; --panel:#0D1218; --panel-2:#0A0E13; --raise:#121921;
  --fg:#E8ECEA; --fg-2:#C3CCCF; --muted:#97A3AB; --line:rgba(232,236,234,.10); --line-2:rgba(232,236,234,.18);
  --accent:#4FB3BF; --accent-hover:#6CC4CE; --accent-ink:#7CCFD8; --ink:var(--fg);
  --serif:"Fraunces","Iowan Old Style",Georgia,serif;
  --sans:"Outfit",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r-panel:28px;
}
html{background:var(--bg)}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.6}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(232,236,234,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(232,236,234,.022) 1px,transparent 1px);
  background-size:72px 72px}
main,footer,.site-nav{position:relative;z-index:1}
.site-nav{position:absolute;z-index:6}
a{color:var(--accent-ink)}
strong,b{font-weight:500}

/* type */
h1,h2,.gh-tagline,.need-k,.rec-k,.case-list strong,.teaser strong{font-family:var(--serif);font-optical-sizing:auto}
h1{font-weight:300;letter-spacing:-.02em;line-height:1.06;color:var(--fg)}
h2{font-weight:300;letter-spacing:-.015em;line-height:1.12;color:var(--fg);font-size:clamp(2rem,3.6vw,2.9rem)}
h1 em,h2 em,.gh-tagline em{font-style:italic;font-weight:300;color:var(--accent)}
h3{font-family:var(--sans);font-weight:500;color:var(--fg)}
.eyebrow,.crumbs,.broll-note,.tag,.case dt{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem}
.eyebrow{color:var(--accent)}
.eyebrow a{color:inherit}
.lede{color:var(--fg-2);font-weight:300}
.gallery-note,.cta-note,.case-note{color:var(--muted)}

/* nav */
.site-nav{padding:26px 0}
.site-nav a.brand{font-family:var(--sans);font-weight:500;text-transform:uppercase;letter-spacing:.24em;font-size:.82rem;color:var(--fg)}
.site-nav a{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;color:var(--fg-2)}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--fg);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px}
.site-nav ul{gap:8px 30px}

/* buttons */
.btn{min-height:46px;padding:0 20px;border-radius:4px;background:var(--fg);color:#0A0E13;
  font:500 .76rem/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;gap:12px;transition:background .2s,color .2s,transform .2s}
.btn::after{content:"\2192";font-family:var(--sans);font-size:1rem;letter-spacing:0;transition:transform .2s}
.btn:hover{background:#fff;color:#0A0E13}
.btn:hover::after{transform:translateX(3px)}
.btn-ghost{background:transparent;color:var(--fg);border:1px solid var(--line-2);box-shadow:none;margin-left:0}
.btn-ghost:hover{background:rgba(232,236,234,.06);color:var(--fg)}
.form .btn{justify-self:start}

/* hero: inset rounded panel */
.hero,.hero.compact{margin:14px 14px 0;border-radius:var(--r-panel);overflow:hidden;
  background:radial-gradient(900px 520px at 80% 0%,rgba(79,179,191,.10) 0%,rgba(79,179,191,0) 60%),linear-gradient(180deg,#0E141B 0%,#090C10 100%);
  border:1px solid var(--line)}
.hero.compact{padding:136px 0 64px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(232,236,234,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(232,236,234,.035) 1px,transparent 1px);
  background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 90% at 75% 10%,#000 0%,transparent 75%);mask-image:radial-gradient(70% 90% at 75% 10%,#000 0%,transparent 75%)}
.hero>.wrap{position:relative;z-index:1}
.hero.compact h1#gh-h1{font-size:clamp(2.3rem,5vw,4rem);max-width:19ch}
.gh-tagline{font-style:italic;font-weight:300;color:var(--accent);font-size:clamp(1.35rem,2.4vw,1.8rem)}
.highlights{border-top:1px solid var(--line);color:var(--fg-2);font-weight:300}
.highlights li+li::before{background:var(--accent)}
.reviewed-by{color:var(--muted)}
.crumbs{color:var(--muted)}
.hero-video::after{background:linear-gradient(90deg,rgba(7,9,12,.94) 0%,rgba(7,9,12,.82) 48%,rgba(7,9,12,.5) 100%)}
.portrait{border-radius:20px;box-shadow:0 0 0 1px var(--line)}
.portrait::after{background:linear-gradient(180deg,rgba(7,9,12,0) 60%,rgba(7,9,12,.4) 100%)}

/* sections: stacked rounded panels */
.section,.contact,.recognition{margin:14px;border-radius:var(--r-panel);background:var(--panel);border:1px solid var(--line);padding:104px 0}
.section.alt{background:var(--panel-2)}
.section h2{margin-bottom:40px}
.about-copy p{color:var(--fg-2);font-weight:300}
.about-copy h3{font-size:1.08rem;margin:28px 0 8px}

/* cards and lists */
.cards li,.coverage li{background:var(--raise);border:1px solid var(--line);border-radius:18px}
.cards li::before,.coverage li::before{background:var(--accent);height:2px}
.cards h3,.points h3,.coverage strong,.creds strong,.items strong,.expertise strong,.need-stats h3,.rec h3{color:var(--fg);font-weight:500}
.cards p,.points p,.coverage span,.creds span,.items span,.expertise span,.need-stats p:not(.need-k),.rec p:not(.rec-k),.practices-lede{color:var(--muted)}
.creds li,.points li,.expertise li,.items li:first-child{border-top-color:var(--accent);border-top-width:1px}
.items li{border-bottom-color:var(--line)}
.need-stats li{border-left-color:var(--line)}
.need-k,.rec-k{font-weight:300;color:var(--accent)}
.recognition{background:linear-gradient(160deg,#0F1820 0%,#0A0E13 60%)}
.recognition::before{border-radius:inherit}
.rec li{border-left-color:var(--line)}
.tile{border-radius:20px;background:var(--panel)}
.tile::after{background:linear-gradient(180deg,rgba(7,9,12,0) 55%,rgba(7,9,12,.85) 100%)}
.tile figcaption{font-weight:500}
figure img,figure picture img{border-radius:18px}

/* contact and form */
.contact{border-top:1px solid var(--line)}
.contact-copy p{color:var(--fg-2)}
.icon-link{color:var(--fg)}
.icon-link svg{color:var(--accent)}
.form label{color:var(--fg-2);font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.form input,.form textarea,.form select{background:var(--panel-2);color:var(--fg);border:1px solid var(--line-2);border-radius:6px;font-family:var(--sans);font-weight:300;letter-spacing:0;text-transform:none;font-size:1rem}
.form input::placeholder,.form textarea::placeholder{color:#6F7B83}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(79,179,191,.25)}

/* footer */
.footer{background:transparent;color:var(--muted);padding:40px 0 48px;font-size:.9rem}
.footer a{color:var(--fg-2)}
.foot{justify-content:center;text-align:center;gap:10px 28px}

/* cases pages */
.page-head{margin:14px 14px 0;border-radius:var(--r-panel);background:linear-gradient(180deg,#0E141B 0%,#090C10 100%);border:1px solid var(--line)}
.case-list,.case-list li{border-color:var(--line)}
.case-list a,.teaser a{color:var(--fg)}
.tag{background:rgba(79,179,191,.12);color:var(--accent-ink)}

/* motion: gentle rise on load, off for reduced motion */
@keyframes gh-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero .wrap>*:not(.hero-video){animation:gh-rise .7s cubic-bezier(.2,.7,.2,1) both}
.hero .wrap>*:nth-child(2){animation-delay:.06s}.hero .wrap>*:nth-child(3){animation-delay:.12s}
.hero .wrap>*:nth-child(4){animation-delay:.18s}.hero .wrap>*:nth-child(5){animation-delay:.24s}
.hero .wrap>*:nth-child(n+6){animation-delay:.3s}
@media (prefers-reduced-motion:reduce){.hero .wrap>*{animation:none}.btn,.btn::after{transition:none}}

@media (max-width:820px){
  .section,.contact,.recognition{margin:10px;padding:68px 0;border-radius:22px}
  .hero,.hero.compact,.page-head{margin:10px 10px 0;border-radius:22px}
  .hero.compact{padding-top:140px}
}

/* home hero: darkened scanner still, faded into the panel */
.hero.compact.hero-home{background-color:#0A0E13;background-image:
  linear-gradient(90deg,#0A0E13 0%,rgba(10,14,19,.96) 40%,rgba(10,14,19,.72) 68%,rgba(10,14,19,.6) 100%),
  linear-gradient(0deg,#0A0E13 0%,rgba(10,14,19,0) 40%),
  url("/assets/glasshaus/video/cmr-broll-poster.jpg");
  background-image:
  linear-gradient(90deg,#0A0E13 0%,rgba(10,14,19,.96) 40%,rgba(10,14,19,.72) 68%,rgba(10,14,19,.6) 100%),
  linear-gradient(0deg,#0A0E13 0%,rgba(10,14,19,0) 40%),
  image-set(url("/assets/glasshaus/video/cmr-broll-poster.webp") type("image/webp"),url("/assets/glasshaus/video/cmr-broll-poster.jpg") type("image/jpeg"));
  background-size:auto,auto,auto 100%;background-position:0 0,0 0,95% center;background-repeat:no-repeat}
@media (max-width:820px){.hero.compact.hero-home{background-image:linear-gradient(180deg,rgba(10,14,19,.72) 0%,#0A0E13 60%),url("/assets/glasshaus/video/cmr-broll-poster.webp");background-size:auto,cover;background-position:0 0,center top}}
/* single column when the hero has no portrait (thanks page) */
.hero-inner:not(:has(.portrait)){display:flex!important;flex-direction:column;align-items:flex-start;gap:0}
