/* ================================================
   BJERRING LIVE — v2.0
   Full redesign: GSAP horizontal services,
   word-reveal statement, cinematic video hero,
   custom cursor, loader, stats counter
   ================================================ */

/* ---- TOKENS ---- */
:root {
  --black:   #080808;
  --off:     #0f0f0f;
  --panel:   #181818;
  --white:   #f0f0f0;
  --dim:     rgba(240,240,240,0.42);
  --accent:  #7aa2d4;
  --border:  rgba(240,240,240,0.07);
  --fh:      'Space Grotesk', sans-serif;
  --fb:      'Inter', sans-serif;
  --nav:     96px;
  --ease:    cubic-bezier(0.16,1,0.3,1);
}

/* ---- RESET ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{
  background:var(--black);
  color:var(--white);
  font-family:var(--fb);
  line-height:1.6;
  overflow-x:hidden;
  cursor:none; /* custom cursor replaces default */
}
@media(pointer:coarse){body{cursor:auto}}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{background:none;border:none;cursor:none;font:inherit;color:inherit}
@media(pointer:coarse){button{cursor:pointer}}

/* ================================================
   LOADER
   ================================================ */

#loader{
  position:fixed;inset:0;z-index:9999;
  background:var(--black);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:40px;
  transition:transform .9s var(--ease);
}
#loader.gone{transform:translateY(-100%)}

#loader-logo{
  width:clamp(80px,12vw,130px);
  filter:invert(1);
  animation:logo-pulse 1.4s ease-in-out infinite;
}
@keyframes logo-pulse{0%,100%{opacity:.55}50%{opacity:1}}

#loader-bar{
  width:clamp(140px,20vw,220px);
  height:1px;
  background:rgba(255,255,255,.12);
  overflow:hidden;
}
#loader-fill{
  height:100%;
  background:var(--accent);
  width:0;
  transition:width 1.3s cubic-bezier(.4,0,.2,1);
}

/* ================================================
   CUSTOM CURSOR
   ================================================ */

#c-dot,#c-ring{
  position:fixed;
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:opacity .3s;
}
#c-dot{
  width:6px;height:6px;
  background:var(--white);
  top:0;left:0;
}
#c-ring{
  width:38px;height:38px;
  border:1px solid rgba(240,240,240,.45);
  top:0;left:0;
  transition:width .35s var(--ease),height .35s var(--ease);
}
.cursor-hover #c-ring{width:60px;height:60px;border-color:var(--accent)}
@media(pointer:coarse){#c-dot,#c-ring{display:none}}

/* ================================================
   NAV
   ================================================ */

#nav{
  position:fixed;inset:0 0 auto;z-index:500;
  display:flex;align-items:center;
  justify-content:space-between;
  padding:0 48px;height:var(--nav);
  transition:background .5s,border-color .5s;
  border-bottom:1px solid transparent;
}
#nav.solid{
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(20px);
  border-color:var(--border);
}
.logo img{
  height:88px;width:auto;
  filter:none;
  background:#f0f0f0;
  border-radius:50%;
  padding:4px;
  transition:opacity .2s;
}
.logo:hover img{opacity:.7}

.nav-links{display:flex;gap:44px}
.nav-links a{
  font-size:.8125rem;letter-spacing:.08em;
  color:var(--dim);transition:color .2s;
}
.nav-links a:hover{color:var(--white)}

.nav-cta{
  font-size:.8125rem;font-weight:600;letter-spacing:.06em;
  border:1px solid rgba(240,240,240,.25);
  padding:10px 24px;border-radius:100px;
  transition:background .2s,border-color .2s,color .2s;
}
.nav-cta:hover{background:var(--white);color:var(--black);border-color:var(--white)}

.burger{
  display:none;flex-direction:column;gap:6px;
  padding:6px;cursor:pointer;
}
.burger span{
  display:block;width:22px;height:1.5px;
  background:var(--white);
  transition:transform .3s,opacity .3s;
  transform-origin:center;
}

/* ================================================
   MOBILE NAV
   ================================================ */

#mnav{
  position:fixed;inset:0;z-index:499;
  background:var(--black);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:36px;
  transform:translateY(-100%);
  transition:transform .55s var(--ease);
}
#mnav.open{transform:translateY(0)}
#mnav a{
  font-family:var(--fh);font-size:clamp(2.5rem,8vw,4.5rem);
  font-weight:700;color:var(--dim);
  transition:color .2s;
}
#mnav a:hover{color:var(--white)}

/* ================================================
   HERO
   ================================================ */

#hero{
  position:relative;height:100vh;min-height:600px;
  overflow:hidden;display:flex;align-items:flex-end;
}

/* videos */
.vids{position:absolute;inset:0;z-index:0}
.vid{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  opacity:0;
  transition:opacity 1.2s ease;
}
.vid.active{opacity:1}

/* dark gradient */
.vignette{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(to top,   rgba(0,0,0,.98) 0%,rgba(0,0,0,.5) 30%,rgba(0,0,0,.1) 60%),
    linear-gradient(to bottom,rgba(0,0,0,.6)  0%,transparent 20%),
    linear-gradient(to right, rgba(0,0,0,.4)  0%,transparent 60%);
}

.hero-c{
  position:relative;z-index:2;
  width:100%;padding:0 48px 72px;
}

.hero-top{
  display:flex;align-items:center;gap:20px;
  margin-bottom:32px;
  opacity:0;animation:fade-in .6s ease 2.1s forwards;
}
.h-logo{height:clamp(40px,5vw,64px);width:auto;filter:invert(1);opacity:.9}
.hero-eyebrow{
  font-size:.75rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--dim);
}

/* title — clip reveal */
.hero-h{
  font-family:var(--fh);
  font-size:clamp(5rem,14vw,13rem);
  font-weight:700;line-height:.9;
  letter-spacing:-.03em;
  margin-bottom:48px;
}
.cw{display:block;overflow:hidden}
.cw b{
  display:block;font-weight:700;font-style:normal;
  transform:translateY(110%);
  animation:slide-up .9s var(--ease) forwards;
  opacity:0;
}
.cw:nth-child(1) b{animation-delay:2.2s}
.cw:nth-child(2) b{animation-delay:2.4s}
.cw:nth-child(3) b{animation-delay:2.6s}
.accent-line b{color:var(--white)}
.accent-line em{font-style:normal;color:var(--accent)}

@keyframes slide-up{
  from{transform:translateY(110%);opacity:0}
  to  {transform:translateY(0);   opacity:1}
}
@keyframes fade-in{
  from{opacity:0;transform:translateY(12px)}
  to  {opacity:1;transform:translateY(0)}
}

.hero-foot{
  display:flex;align-items:center;gap:40px;
  opacity:0;animation:fade-in .6s ease 2.9s forwards;
}

.btn-pill{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--white);color:var(--black);
  font-weight:700;font-size:.875rem;letter-spacing:.04em;
  padding:14px 28px;border-radius:100px;
  transition:opacity .2s,transform .2s;
}
.btn-pill:hover{opacity:.85;transform:translateY(-2px)}

.vid-ui{display:flex;align-items:center;gap:16px}
#vid-num{font-size:.75rem;letter-spacing:.15em;color:var(--dim)}
.vid-bar-wrap{
  width:80px;height:1px;background:rgba(240,240,240,.15);overflow:hidden;
}
#vid-bar{
  height:100%;width:0%;background:var(--accent);
  transition:width .1s linear;
}

/* scroll indicator */
.scroll-ind{
  position:absolute;bottom:36px;right:48px;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:var(--dim);font-size:.6875rem;letter-spacing:.15em;text-transform:uppercase;
  opacity:0;animation:fade-in .6s ease 3.2s forwards;
}
.s-line{
  width:1px;height:52px;
  background:linear-gradient(to bottom,rgba(240,240,240,.4),transparent);
  animation:s-drop 2s ease-in-out infinite;
}
@keyframes s-drop{
  0%,100%{opacity:1;transform:scaleY(1) translateY(0)}
  50%{opacity:.3;transform:scaleY(.7) translateY(8px)}
}

/* ================================================
   MARQUEE
   ================================================ */

#marquee{
  overflow:hidden;border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:16px 0;background:var(--off);
}
.mq-track{
  display:flex;white-space:nowrap;
  animation:mq 28s linear infinite;
}
.mq-track:hover{animation-play-state:paused}
.mq-track span{
  font-family:var(--fh);font-size:.75rem;
  font-weight:700;letter-spacing:.18em;
  color:var(--dim);flex-shrink:0;
}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ================================================
   STATEMENT — word-by-word GSAP
   ================================================ */

#statement{
  padding:160px 48px;
  background:var(--black);
}
.stmt-wrap{max-width:1100px;margin:0 auto}
#stmt-p{
  font-family:var(--fh);
  font-size:clamp(1.75rem,4vw,3.5rem);
  font-weight:400;line-height:1.35;
  letter-spacing:-.01em;
}
/* JS wraps each word in .sw — GSAP controls opacity */
.sw{
  display:inline;opacity:.1;
}

/* ================================================
   SERVICES — GSAP HORIZONTAL PIN
   ================================================ */

/* outer wrapper — height set by GSAP */
#services{position:relative}

/* sticky labels — INSIDE srv-stick so they stay pinned with it */
#srv-labels{
  position:absolute;top:50%;right:48px;z-index:10;
  transform:translateY(-50%);
  display:flex;flex-direction:column;gap:12px;
}
.sl{
  font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(240,240,240,.2);transition:color .4s,transform .4s;
  cursor:default;
}
.sl.active{color:var(--white);transform:translateX(-4px)}

/* sticky container — position:relative so #srv-labels inside it anchors correctly */
#srv-stick{position:relative;overflow:hidden;height:100vh}

/* horizontal track */
#srv-track{
  display:flex;height:100%;
  will-change:transform;
}

/* individual panel */
.srv-panel{
  flex-shrink:0;
  width:100vw;height:100vh;
  position:relative;
  display:flex;align-items:flex-end;
}

.srv-bg{
  position:absolute;inset:0;
  overflow:hidden;
}
.srv-bg img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease);
}
.srv-panel:hover .srv-bg img{transform:scale(1.04)}

.srv-grad{
  position:absolute;inset:0;
  background:
    linear-gradient(to right,rgba(0,0,0,.96) 0%,rgba(0,0,0,.6) 55%,rgba(0,0,0,.1) 100%),
    linear-gradient(to top,  rgba(0,0,0,.5)  0%,transparent 50%);
}

.srv-body{
  position:relative;z-index:1;
  padding:clamp(40px,6vw,96px);
  width:clamp(320px,45%,600px);
  padding-bottom:clamp(60px,8vw,120px);
}

.srv-n{
  display:block;
  font-family:var(--fh);font-size:.6875rem;
  font-weight:700;letter-spacing:.25em;
  color:var(--accent);margin-bottom:24px;
}

.srv-body h2{
  font-family:var(--fh);
  font-size:clamp(4rem,9vw,9rem);
  font-weight:700;line-height:.9;
  letter-spacing:-.03em;
  margin-bottom:28px;
}

.srv-body p{
  font-size:clamp(.9375rem,1.5vw,1.125rem);
  color:var(--dim);line-height:1.75;
  max-width:380px;margin-bottom:40px;
}

.srv-body ul{
  display:flex;flex-direction:column;gap:12px;
}
.srv-body li{
  font-size:.9375rem;color:var(--dim);
  display:flex;align-items:center;gap:16px;
}
.srv-body li::before{
  content:'';flex-shrink:0;
  width:24px;height:1px;
  background:rgba(240,240,240,0.28);
}
.some-bg{
  background:linear-gradient(135deg,#0a0a12 0%,#111128 40%,#0d1a2e 100%);
}
.srv-app-link{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:28px;
  font-family:var(--ff-h);font-size:.9375rem;font-weight:500;
  color:var(--accent);text-decoration:none;letter-spacing:.04em;
  transition:opacity .2s;
}
.srv-app-link:hover{opacity:.7}

/* ================================================
   STATS
   ================================================ */

#stats{
  padding:120px 48px;
  background:var(--off);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.stats-inner{
  max-width:900px;margin:0 auto;
  display:flex;align-items:center;
  justify-content:space-between;gap:40px;
}
.stat{text-align:center;flex:1}
.stat-top{
  display:flex;align-items:baseline;
  justify-content:center;gap:4px;
  margin-bottom:12px;
}
.stat-n{
  font-family:var(--fh);
  font-size:clamp(3.5rem,8vw,6rem);
  font-weight:700;letter-spacing:-.04em;
  line-height:1;
}
.stat-plus{
  font-family:var(--fh);
  font-size:clamp(1.5rem,4vw,2.5rem);
  font-weight:300;color:var(--dim);
}
.stat p{
  font-size:.875rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--dim);
}
.stat-div{
  width:1px;height:80px;
  background:var(--border);
  flex-shrink:0;
}

/* ================================================
   CASES
   ================================================ */

#cases{padding:100px 0 0;background:var(--black)}

.cases-hdr{
  display:flex;align-items:baseline;
  justify-content:space-between;
  padding:0 48px 48px;
}
.cases-hdr h2{
  font-family:var(--fh);
  font-size:clamp(2rem,5vw,3.5rem);
  font-weight:700;letter-spacing:-.02em;
}
.swipe-hint{font-size:.8125rem;letter-spacing:.08em;color:var(--dim)}

.cases-scroll{
  display:flex;gap:16px;
  overflow-x:auto;
  padding:0 48px 80px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.cases-scroll::-webkit-scrollbar{display:none}

.cases-scroll figure{
  flex-shrink:0;
  width:clamp(260px,34vw,480px);
  scroll-snap-align:start;
}
.ci{
  overflow:hidden;border-radius:6px;
}
.ci img{
  width:100%;aspect-ratio:3/4;
  object-fit:cover;
  transition:transform .7s var(--ease);
  display:block;
}
.cases-scroll figure:hover .ci img{transform:scale(1.05)}

.cases-scroll figcaption{
  padding:14px 2px 0;
  font-size:.875rem;color:var(--dim);
  line-height:1.5;
}
.cases-scroll em{
  font-style:normal;color:var(--white);
  display:block;font-weight:500;
  margin-bottom:2px;
}

/* ================================================
   QUOTE
   ================================================ */

#quote{
  padding:140px 48px;
  background:var(--off);
  border-top:1px solid var(--border);
}
.quote-inner{max-width:900px;margin:0 auto}
.q-mark{
  font-family:var(--fh);font-size:6rem;
  line-height:.6;color:var(--white);
  opacity:.12;display:block;margin-bottom:32px;
}
#quote blockquote{
  font-family:var(--fh);
  font-size:clamp(1.5rem,3.5vw,2.25rem);
  font-weight:400;line-height:1.4;
  margin-bottom:44px;
}
#quote cite{
  font-style:normal;font-size:.8125rem;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim);
}

/* ================================================
   CONTACT
   ================================================ */

#contact{
  padding:140px 0;
  background:var(--black);
  border-top:1px solid var(--border);
}
.contact-inner{
  max-width:1140px;margin:0 auto;
  padding:0 48px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;align-items:start;
}

.contact-left h2{
  font-family:var(--fh);
  font-size:clamp(2.5rem,5.5vw,4.5rem);
  font-weight:700;line-height:.95;
  letter-spacing:-.03em;
  margin-bottom:60px;
}
.contact-meta{display:flex;flex-direction:column;gap:14px}
.contact-meta a{
  font-family:var(--fh);font-size:1.125rem;
  font-weight:600;color:var(--accent);
  transition:opacity .2s;
}
.contact-meta a:hover{opacity:.6}

/* floating-label inputs */
.contact-right{display:flex;flex-direction:column;gap:0}

.fi{position:relative;margin-bottom:4px}
.fi input,.fi textarea{
  width:100%;padding:28px 0 10px;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--border);
  color:var(--white);font-family:var(--fb);font-size:1rem;
  outline:none;resize:none;
  transition:border-color .25s;
  caret-color:var(--accent);
}
.fi label{
  position:absolute;top:20px;left:0;
  font-size:.9375rem;color:var(--dim);
  transition:top .2s var(--ease),font-size .2s,color .2s;
  pointer-events:none;
}
.fi input:focus,.fi textarea:focus{border-color:var(--accent)}
.fi input:focus ~ label,
.fi input:not(:placeholder-shown) ~ label,
.fi textarea:focus ~ label,
.fi textarea:not(:placeholder-shown) ~ label{
  top:6px;font-size:.6875rem;letter-spacing:.1em;color:var(--accent);
}

@keyframes fi-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.fi.invalid input,.fi.invalid textarea{border-color:#ff5555}
.fi.invalid label{color:#ff5555}
.fi.invalid{animation:fi-shake .3s var(--ease)}

.btn-submit{
  margin-top:40px;
  display:inline-flex;align-items:center;gap:16px;
  font-family:var(--fh);font-weight:700;font-size:1rem;
  letter-spacing:.04em;color:var(--white);
  border:1px solid var(--border);
  padding:18px 36px;border-radius:100px;
  transition:background .25s,border-color .25s,color .25s,transform .2s;
  cursor:none;
}
.btn-submit:hover{
  background:var(--white);border-color:var(--white);color:var(--black);
  transform:translateY(-2px);
}
@media(pointer:coarse){.btn-submit{cursor:pointer}}

/* ================================================
   FOOTER
   ================================================ */

#footer{
  padding:40px 48px;
  background:var(--off);
  border-top:1px solid var(--border);
  display:flex;align-items:center;
  justify-content:space-between;
}
.ft-left{display:flex;align-items:center;gap:20px}
.ft-left img{height:44px;width:auto;filter:invert(1);opacity:.6}
.ft-left span{font-size:.8125rem;letter-spacing:.1em;color:var(--dim)}
.ft-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ft-right span{font-size:.75rem;letter-spacing:.06em;color:var(--dim)}

/* ================================================
   SCROLL REVEAL HELPER (non-GSAP elements)
   ================================================ */

[data-r]{
  opacity:0;transform:translateY(32px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}
[data-r].in{opacity:1;transform:none}
[data-r="1"]{transition-delay:.1s}
[data-r="2"]{transition-delay:.2s}
[data-r="3"]{transition-delay:.3s}

/* ================================================
   RESPONSIVE
   ================================================ */

@media(max-width:960px){
  /* Kill all GSAP inline transforms on mobile so nothing overlaps */
  .sw,.stat,.cases-hdr h2,.quote-inner,.contact-left h2,.cw b{
    transform:none!important;opacity:1!important;
  }
  /* Kill CSS animations on mobile — opacity:0 start-state otherwise hides hero text */
  .cw b,.hero-top,.hero-foot,.scroll-ind{
    animation:none!important;
    transform:none!important;
    opacity:1!important;
  }
  .cw{overflow:visible}

  .logo img{height:52px}

  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  #nav,#footer{padding:0 24px}
  #nav{height:var(--nav)}

  .hero-c{padding:0 24px 60px;padding-top:calc(var(--nav) + 40px)}
  .hero-h{font-size:clamp(2.25rem,9vw,3.5rem);line-height:1.05}
  .hero-foot{flex-direction:column;align-items:flex-start;gap:24px}
  .scroll-ind{right:24px}

  #statement{padding:80px 24px}
  #srv-labels{display:none}

  /* Services: mobil — billede øverst, tekst nedenunder */
  #srv-stick{position:static;overflow:visible;height:auto}
  #srv-track{flex-direction:column;gap:1px}
  .srv-panel{width:100%;height:auto;display:block;overflow:hidden}
  .srv-bg{position:relative;inset:unset;height:220px;overflow:hidden}
  .srv-bg img{width:100%;height:100%;object-fit:cover}
  .srv-grad{display:none}
  .srv-body{
    position:relative;z-index:auto;
    width:100%;max-width:100%;
    padding:28px 24px 44px;
    background:var(--off);
  }
  .srv-body h2{font-size:clamp(2.5rem,10vw,4rem);margin-bottom:16px}
  .srv-body p{max-width:100%;margin-bottom:20px;font-size:.9375rem}
  .srv-body ul{gap:10px}
  .some-bg{height:220px}

  #stats{padding:80px 24px}
  .stats-inner{flex-direction:column;gap:40px}
  .stat-div{width:80px;height:1px}

  .cases-hdr{padding:0 24px 36px}
  .cases-scroll{padding:0 24px 60px}

  #quote{padding:80px 24px}
  #contact{padding:80px 0}
  .contact-inner{
    grid-template-columns:1fr;gap:56px;padding:0 24px;
  }

  #footer{
    flex-direction:column;align-items:flex-start;
    gap:24px;padding:32px 24px;
  }
  .ft-right{align-items:flex-start}
}

@media(max-width:480px){
  .hero-h{font-size:clamp(2rem,9vw,2.75rem)}
  .logo img{height:44px}
}

/* ================================================
   COOKIE CONSENT
   ================================================ */
.cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:9000;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:var(--panel);border-top:1px solid var(--border);
  padding:18px 40px;
  transform:translateY(100%);
  transition:transform .5s var(--ease);
}
.cookie-banner.visible{transform:translateY(0)}
.cookie-txt{font-size:.825rem;color:var(--dim);max-width:640px;line-height:1.5}
.btn-cookie-ok{
  flex-shrink:0;
  background:var(--accent);color:var(--black);
  border:none;border-radius:6px;
  padding:10px 24px;
  font-size:.825rem;font-weight:700;letter-spacing:.04em;
  cursor:pointer;white-space:nowrap;
  transition:opacity .2s;
}
.btn-cookie-ok:hover{opacity:.85}
@media(max-width:600px){
  .cookie-banner{flex-direction:column;align-items:flex-start;padding:20px 24px}
}

/* ================================================
   CONTACT DRAWER
   ================================================ */
.contact-overlay{
  position:fixed;inset:0;z-index:8000;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;
  transition:opacity .45s var(--ease);
}
.contact-overlay.open{opacity:1;pointer-events:all}

.contact-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:8100;
  width:min(520px,100vw);
  background:var(--panel);
  border-left:1px solid var(--border);
  overflow-y:auto;overflow-x:hidden;
  overscroll-behavior:contain;
  transform:translateX(100%);
  transition:transform .55s var(--ease);
  display:flex;flex-direction:column;
}
.contact-drawer.open{transform:translateX(0)}

.drawer-close{
  position:sticky;top:0;align-self:flex-end;
  margin:24px 24px 0 auto;
  width:42px;height:42px;flex-shrink:0;
  background:rgba(255,255,255,.06);
  border:1px solid var(--border);
  border-radius:50%;
  color:var(--white);font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:background .2s,transform .2s;
  z-index:1;
}
.drawer-close:hover{background:rgba(255,255,255,.14);transform:rotate(90deg)}

.drawer-inner{
  padding:12px 52px 72px;
  display:flex;flex-direction:column;gap:36px;
  flex:1;
}
.drawer-heading{
  font-family:var(--fh);
  font-size:clamp(2.25rem,5vw,3rem);
  font-weight:700;line-height:1.05;letter-spacing:-.03em;
}
.drawer-meta{display:flex;flex-direction:column;gap:10px;margin-top:-12px}
.drawer-meta a{
  color:var(--dim);font-size:.9rem;
  transition:color .2s;
}
.drawer-meta a:hover{color:var(--white)}

.drawer-form{display:flex;flex-direction:column;gap:20px}

.drawer-success{
  text-align:center;color:var(--accent);
  font-size:.9rem;padding:16px 0 0;
  opacity:0;transition:opacity .4s;
}
.drawer-success.visible{opacity:1}
.drawer-success.hidden{display:none}

@media(max-width:600px){
  .drawer-inner{padding:8px 28px 60px}
  .drawer-heading{font-size:2rem}
}
