/* deckhaus v1.2e — the premium layer: page fades, cursor, smooth scroll. Shared by every page. */

/* page-to-page: a soft cross-fade, never a black frame */
@view-transition{navigation:auto}
::view-transition-group(root){animation-duration:.7s}
::view-transition-old(root){animation:dh-vt-out .5s cubic-bezier(.4,0,.2,1) both}
::view-transition-new(root){animation:dh-vt-in .8s cubic-bezier(.16,1,.3,1) both}
@keyframes dh-vt-out{to{opacity:0;transform:scale(.99);filter:blur(4px)}}
@keyframes dh-vt-in{from{opacity:0;transform:translateY(16px) scale(1.005)}}
/* fallback for browsers without cross-document view transitions */
html.dh-fb body{animation:dh-in .8s cubic-bezier(.16,1,.3,1) both}
html.dh-leave body{transition:opacity .45s cubic-bezier(.4,0,.2,1),filter .45s,transform .45s;opacity:0;filter:blur(4px);transform:scale(.995)}
@keyframes dh-in{from{opacity:0;transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}html.dh-fb body{animation:none}}

/* smooth scroll (Lenis) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* the cursor */
@media (hover:hover) and (pointer:fine){
  html.dh-cur,html.dh-cur *{cursor:none!important}
  html.dh-cur input,html.dh-cur textarea,html.dh-cur select,html.dh-cur [contenteditable]{cursor:text!important}
}
.dh-c{position:fixed;left:0;top:0;z-index:2147483000;pointer-events:none;mix-blend-mode:difference;will-change:transform}
.dh-c-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;transition:opacity .25s,width .3s,height .3s,margin .3s}
.dh-c-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(255,255,255,.85);transition:width .45s cubic-bezier(.16,1,.3,1),height .45s cubic-bezier(.16,1,.3,1),margin .45s cubic-bezier(.16,1,.3,1),opacity .3s,border-color .3s,background .3s}
.dh-c-lab{position:fixed;left:0;top:0;z-index:2147483001;pointer-events:none;will-change:transform}
.dh-c-lab span{display:inline-block;transform:translate(-50%,-50%) scale(.6);opacity:0;padding:12px 18px;border-radius:40px;background:#F4F4EF;color:#0A0A0B;font:500 11px/1 ui-monospace,'IBM Plex Mono',Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s;box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}
html.dh-c-on-link .dh-c-ring{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(255,255,255,.08)}
html.dh-c-on-link .dh-c-dot{opacity:0}
html.dh-c-on-lab .dh-c-ring{opacity:0}
html.dh-c-on-lab .dh-c-dot{opacity:0}
html.dh-c-on-lab .dh-c-lab span{transform:translate(-50%,-50%) scale(1);opacity:1}
html.dh-c-down .dh-c-ring{width:30px;height:30px;margin:-15px 0 0 -15px}
html.dh-c-hidden .dh-c,html.dh-c-hidden .dh-c-lab{opacity:0}
@media (hover:none),(pointer:coarse){.dh-c,.dh-c-lab{display:none}}

/* magnetic buttons */
.dh-mag{transition:transform .5s cubic-bezier(.16,1,.3,1)}

/* v1.3 — touch: bigger hit areas for small links, no visual change */
@media (pointer:coarse){
  .xft a,footer a,.lfoot a,.lback,.k-back,.wordmark,.lmark{padding-block:12px;margin-block:-12px}
  .ltoc a{padding-block:8px;margin-block:-8px}
  .why3 .wseg button{padding-block:14px;margin-block:-14px}
  .ovl .x,[data-close].x{min-width:44px;min-height:44px}
}

/* v1.3 — no side section index: the page reads on its own, the rail only competed with the content */
.dhr{display:none!important}

/* v1.3 — nav never wraps: the availability chip goes first, then the links fold into the menu (tablets, small laptops) */
.nav .nav-links a,.nav .btn,.nav .wordmark{white-space:nowrap}
@media (max-width:1320px){.nav .avail{display:none!important}}
@media (max-width:1100px){
  .nav .nav-links{display:none!important}
  .nav .nav-btn{display:inline-flex!important;width:44px;height:44px}
  .nav .nav-in>.btn{margin-left:auto;margin-right:10px}
}
