/* Dr Marinus - Crazy Websites concept redesign
   Brand tokens held exactly from the Studio Manager guideline.
   Display face is the one deliberate deviation (Bricolage Grotesque). */

:root{
  /* department pair - swapped live by app.js */
  --a:#008DB3; --b:#3BBB9A;
  /* neutrals - never change */
  --ink:#0E2A33; --body:#3D5560; --soft:#6E8088;
  --line:#D9E2E5; --line-soft:#EAF0F2; --canvas:#F5F9FA; --paper:#FFFFFF;
  --red:#FA0904;
  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-xl:28px; --r-pill:999px;
  --sh-sm:0 1px 2px rgba(20,40,50,.04), 0 2px 6px rgba(20,40,50,.04);
  --sh-md:0 1px 2px rgba(20,40,50,.04), 0 8px 24px rgba(20,40,50,.06);
  --sh-lg:0 2px 6px rgba(0,80,110,.08), 0 24px 60px rgba(0,80,110,.10);
  --f-display:'Bricolage Grotesque',system-ui,sans-serif;
  --f-ui:'Inter Tight',system-ui,sans-serif;
  --f-body:'Manrope',system-ui,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --ebar:38px;
}

/* smooth handled in JS, never CSS - blinds deep-link + the critic */
html{scroll-behavior:auto}
*{box-sizing:border-box}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:var(--f-body);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

h1,h2,.h-lg{font-family:var(--f-display);color:var(--ink);margin:0;letter-spacing:-.02em;font-weight:800}
.h-lg{font-size:clamp(30px,5vw,56px);line-height:1.02}
.accent{color:var(--b);transition:color .5s ease}
.accent-red{color:var(--red)}
.kick{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);margin:0 0 14px;transition:color .5s ease}
.lede{font-size:clamp(16px,2vw,19px);line-height:1.5;max-width:640px;margin:18px 0 0}

/* ---------- EMERGENCY BAR ---------- */
.ebar{
  position:fixed;top:0;left:0;right:0;height:var(--ebar);z-index:70;
  background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
}
.ebar a{color:#fff;font-weight:500}
.ebar-dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1);opacity:.9}18%{transform:scale(1.5);opacity:1}36%{transform:scale(1)}}

/* ---------- THE GATE (signature) ---------- */
.gate{position:fixed;inset:var(--ebar) 0 0;z-index:60;background:var(--paper);overflow:hidden}
.gate.done{pointer-events:none}
.gate-mark{position:absolute;inset:0;display:grid;place-items:center;z-index:3;pointer-events:none}
.gate-line{width:190px;height:190px;overflow:visible}
.gate-line path,.gate-line circle{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.gate-logo{position:absolute;width:min(380px,62vw);opacity:0}

.doors{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);z-index:1}
.door{
  position:relative;overflow:hidden;cursor:pointer;border:0;padding:0;
  display:flex;flex-direction:column;justify-content:flex-end;
  /* NOTE: doors sit IN PLACE by default. The off-screen start is set by GSAP
     (gsap.set in runGate) so that if JS or the CDN fails the doors are simply
     there, never a blank white screen with invisible white copy on it. */
  transition:filter .32s ease,flex .3s ease;
}
.door-inner{display:block;padding:34px 26px;color:#fff;text-align:left;position:relative;z-index:2}
.door-name{display:block;font-family:var(--f-display);font-weight:800;font-size:clamp(19px,2.1vw,28px);line-height:1.05;letter-spacing:-.02em}
.door-tag{display:block;font-family:var(--f-body);font-size:13.5px;line-height:1.4;opacity:.9;margin-top:10px;max-width:22ch}
.door-count{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-top:14px;display:block}
.door-go{position:absolute;top:28px;right:26px;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.16);display:grid;place-items:center;color:#fff;font-size:14px;
  transform:scale(.6);opacity:0;transition:transform .3s ease,opacity .3s ease;z-index:2}
.doors.live .door:hover .door-go,.doors.live .door:focus-visible .door-go{transform:scale(1);opacity:1}
.doors.live .door:hover,.doors.live .door:focus-visible{filter:saturate(1.25) brightness(1.06)}
.doors.live:hover .door:not(:hover){filter:saturate(.4) brightness(.94)}
.door:focus-visible{outline:3px solid #fff;outline-offset:-6px}

.gate-copy{position:absolute;left:0;right:0;top:46%;transform:translateY(-50%);z-index:4;text-align:center;
  padding:0 28px;pointer-events:none}
/* scrim so the white headline is legible even mid-transition */
.gate-copy::before{content:"";position:absolute;inset:-14% -10%;z-index:-1;
  background:radial-gradient(ellipse at center, rgba(10,30,40,.34), transparent 68%)}
.gate-copy h1{font-size:clamp(38px,7vw,86px);line-height:.94;color:var(--paper);text-shadow:0 2px 30px rgba(10,30,40,.28)}
.gate-copy .kick{color:rgba(255,255,255,.85)}
.gate-copy .accent{color:#fff}
.gate-sub{color:rgba(255,255,255,.92);font-size:15px;margin:18px 0 0;text-shadow:0 1px 14px rgba(10,30,40,.4)}

/* the flood */
.flood{position:fixed;inset:0;z-index:65;pointer-events:none;clip-path:circle(0 at 50% 50%);background:var(--a)}

/* ---------- HEADER ---------- */
.site-head{
  position:sticky;top:var(--ebar);z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:24px;
  padding:12px 28px;opacity:0;transform:translateY(-8px);
}
.brand img{height:44px;width:auto}
.nav{margin-left:auto;display:flex;gap:26px;font-family:var(--f-ui);font-weight:600;font-size:14.5px;color:var(--ink)}
.nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--b)}
.dept-pin{
  display:inline-flex;align-items:center;gap:9px;border:1.5px solid var(--line);background:var(--paper);
  border-radius:var(--r-pill);padding:8px 15px;font-family:var(--f-ui);font-weight:600;font-size:13px;color:var(--ink);cursor:pointer;
}
.dept-pin:hover{border-color:var(--a)}
.pin-dot{width:12px;height:12px;border-radius:4px;background:linear-gradient(135deg,var(--a),var(--b));transition:background .5s ease}
@media(max-width:820px){.nav{display:none}}

/* ---------- BANDS ---------- */
.band{padding:96px 0;border-top:1px solid var(--line-soft)}
.band.tight{padding:44px 0}
.band.wash{background:
  radial-gradient(ellipse 900px 520px at 88% 6%, color-mix(in srgb, var(--b) 14%, transparent), transparent 62%),
  radial-gradient(ellipse 1000px 620px at 10% 2%, color-mix(in srgb, var(--a) 12%, transparent), transparent 58%),
  var(--canvas);
  transition:background .6s ease}

.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px;min-height:36px}
.chip{
  font-family:var(--f-ui);font-weight:600;font-size:12.5px;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 15px;
}
.chip-skel{width:104px;height:34px;border-radius:var(--r-pill);background:var(--line-soft)}

.dept-switch{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.ds{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;border:1.5px solid var(--line);
  background:var(--paper);border-radius:var(--r-pill);padding:9px 17px;
  font-family:var(--f-ui);font-weight:600;font-size:13.5px;color:var(--ink);
}
.ds i{width:12px;height:12px;border-radius:4px;display:block;font-style:normal}
.ds[aria-pressed="true"]{border-color:transparent;color:#fff}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;text-align:left}
.stats b{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,4vw,42px);color:var(--a);display:block;line-height:1;transition:color .5s ease}
.stats span{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-top:8px;display:block}

.hero-photo{margin:38px 0 0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);position:relative}
.hero-photo img{width:100%;height:clamp(240px,44vw,520px);object-fit:cover}
.hero-photo figcaption{position:absolute;left:20px;bottom:16px;color:#fff;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.5)}

.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:18px;margin-top:34px}
.tm{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .28s ease,box-shadow .28s ease}
.tm:hover{transform:translateY(-6px);box-shadow:var(--sh-md)}
.tm-ph{aspect-ratio:1/1;overflow:hidden;background:var(--line-soft)}
.tm-ph img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.tm-b{padding:15px 16px 18px}
.tm-n{font-family:var(--f-display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.2}
.tm-r{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-top:7px}

.place-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:34px}
.place-grid figure{margin:0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm)}
.place-grid img{width:100%;height:260px;object-fit:cover}

.loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:34px}
.loc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.loc h3{font-family:var(--f-display);font-weight:700;font-size:21px;color:var(--ink);margin:0 0 8px}
.loc p{font-size:14px;margin:0;color:var(--soft)}
.loc .cl{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);display:block;margin-bottom:12px}

.band.emergency{background:var(--ink);border-top:0}
.band.emergency .kick{color:var(--red)}
.band.emergency .h-lg{color:#fff}
.band.emergency .lede{color:#9FB4BC}

.btn{
  display:inline-flex;align-items:center;gap:11px;background:var(--a);color:#fff;text-decoration:none;
  font-family:var(--f-ui);font-weight:700;font-size:15px;padding:16px 28px;border-radius:var(--r-pill);
  border:0;cursor:pointer;margin-top:26px;transition:background .5s ease,transform .2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn i{width:22px;height:22px;border-radius:50%;background:var(--b);display:grid;place-items:center;font-style:normal;font-size:12px;transition:background .5s ease}
.btn-red{background:var(--red)}
.btn-red i{background:#fff;color:var(--red)}

.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:860px){.contact-wrap{grid-template-columns:1fr}}
.contact-list{list-style:none;padding:0;margin:28px 0 0}
.contact-list li{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-soft)}
.cl{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);min-width:88px}
.contact-list a{text-decoration:none;color:var(--ink);font-weight:600;font-family:var(--f-ui)}

.form{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm)}
.demo-note{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin:0 0 18px}
.form label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-bottom:14px}
.form input,.form select,.form textarea{
  width:100%;margin-top:7px;font-family:var(--f-body);font-size:15px;color:var(--ink);
  background:#FAFCFD;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--a)}

.site-foot{background:var(--ink);color:#9FB4BC;padding:60px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr}}
.foot-logo{width:190px;filter:brightness(0) invert(1);opacity:.94}
.foot-note{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-top:16px}
.site-foot a{color:#fff;text-decoration:none;font-family:var(--f-ui);font-weight:600;font-size:14.5px}
.site-foot .cl{color:#6E8088;margin-bottom:10px}
#footDepts{display:block;font-size:14px;line-height:1.9}
.badge{margin-top:40px;padding-top:22px;border-top:1px solid #24424C;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6E8088}

.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;gap:1px;background:var(--line)}
.action-bar a{flex:1;text-align:center;padding:15px;text-decoration:none;font-family:var(--f-ui);font-weight:700;font-size:15px}
.ab-call{background:var(--a);color:#fff;transition:background .5s ease}
.ab-wa{background:#25D366;color:#0B2E17}
@media(max-width:820px){.action-bar{display:flex}body{padding-bottom:54px}}

.cursor{position:fixed;top:0;left:0;width:16px;height:16px;border-radius:50%;
  background:var(--b);pointer-events:none;z-index:80;opacity:0;mix-blend-mode:multiply;
  transition:background .5s ease,width .2s ease,height .2s ease}
@media(pointer:coarse){.cursor{display:none}}

.reveal{opacity:0;transform:translateY(26px)}
.js .team-grid .tm{opacity:0;transform:translateY(20px)}

@media(max-width:760px){
  .doors{grid-template-columns:repeat(2,1fr)}
  .gate-copy{top:38%}
  .door-inner{padding:20px 16px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .gate{display:none}
  .site-head{opacity:1;transform:none}
  .reveal,.js .team-grid .tm{opacity:1;transform:none}
  .cursor{display:none}
}


/* === Crazy Websites PREVIEW watermark - REMOVE at go-live === */
.cw-preview-wm{position:fixed;inset:0;z-index:2147483646;pointer-events:none;
  background-repeat:repeat;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0MjAnIGhlaWdodD0nMjgwJz48dGV4dCB4PScyNCcgeT0nMTYwJyBmb250LWZhbWlseT0nQXJpYWwnIGZvbnQtc2l6ZT0nMjQnIGZvbnQtd2VpZ2h0PSc3MDAnIGZpbGw9JyM4YThhOGEnIGZpbGwtb3BhY2l0eT0nMC4yMCcgdHJhbnNmb3JtPSdyb3RhdGUoLTI4IDIxMCAxNDApJz5QUkVWSUVXICAgY3Jhenl3ZWJzaXRlcy5jby56YTwvdGV4dD48L3N2Zz4=");}
.cw-preview-ribbon{position:fixed;top:30px;right:-72px;z-index:2147483647;pointer-events:none;
  transform:rotate(45deg);background:#FFE500;color:#0B0B0F;
  font-family:'Inter Tight',Arial,sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;padding:8px 84px;box-shadow:0 3px 14px rgba(0,0,0,.4);}
/* === end preview watermark === */

/* embed-aware: cap viewport-height blocks inside the rep dashboard iframe */
html.cw-embedded .gate{height:760px;position:absolute}
