/* Reference artwork, shade and edge layers. Text stays above every light layer. */
body:has(.page-home) { background: #07090b; }
body:has(.page-home) .fractal-backdrop { display: none; }
body:has(.page-home)::before, body:has(.page-home)::after { content: none; }
body:has(.page-home) .site-header { background: #07090b; box-shadow: none; border-bottom: 1px solid #ffffff12; }
body:has(.page-home) .site-header::before, body:has(.page-home) .site-header::after { content: none; }
#main .page-ebook .ebook-hero::before, #main .page-pdv .detail-hero::before {
  background-image: linear-gradient(90deg,rgba(5,7,9,.94),rgba(5,7,9,.28) 75%),linear-gradient(0deg,rgba(5,7,9,.84),rgba(5,7,9,.12) 64%),var(--page-image);
}
#main .page-home { min-height: 0; background: #040506; }
#main .home-towers { width: 100%; max-width: none; margin: 0; padding: 0; height: calc(100svh - 47px); height: calc(100dvh - 47px); min-height: 0; background: #040506; }
#main .home-towers::before, #main .home-towers::after,
#main .home-towers .portal-grid::before, #main .home-towers .portal-grid::after,
#main .home-towers .portal-card::before, #main .home-towers .portal-card::after { content: none; display: none; }
#main .home-towers .portal-grid { display: flex; flex-direction: row; gap: 0; width: 100%; height: 100%; min-height: 0; perspective: none; }
#main .home-towers .portal-card {
  position: relative; display: block; flex: 1 1 0; height: 100%; min-width: 0; padding: 0;
  isolation: isolate; overflow: hidden; border: 0; border-right: 1px solid #ffffff14;
  border-radius: 0; background: #020303; box-shadow: none; transform: none;
  filter: none; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  -webkit-box-reflect: unset;
  transition: flex .62s cubic-bezier(.2,.82,.18,1), transform .45s, box-shadow .45s;
}
#main .home-towers .portal-card:last-child { border-right: 0; }
#main .home-towers .portal-card .portal-photo {
  position: absolute; z-index: 0; inset: -6%; width: 112%; height: 112%; max-width: none;
  object-fit: cover; opacity: 1; filter: saturate(.48) brightness(.55) contrast(1.08) !important;
  transform: translate3d(var(--mx,0px),var(--my,0px),0) scale(1.06);
  transition: transform .18s linear, filter .4s;
}
#main .portal-shade, #main .portal-edge, #main .portal-light {
  position: absolute; inset: 0; display: block; pointer-events: none;
}
#main .portal-shade {
  z-index: 1; background: linear-gradient(180deg, #0000001a, #0000002e 46%, #000000b3);
  transition: opacity .45s;
}
#main .portal-edge {
  z-index: 2;
  background: linear-gradient(90deg, rgba(245,237,221,.14), rgba(245,237,221,.025) 14%, transparent 30%, transparent 78%, rgba(0,0,0,.45));
  box-shadow: inset 1px 0 rgba(255,255,255,.13), inset -1px 0 rgba(0,0,0,.7);
  transition: opacity .45s;
}
#main .portal-light {
  z-index: 3; opacity: .3; mix-blend-mode: screen;
  background: linear-gradient(110deg, transparent 10%, rgba(230,213,181,.055) 28%, rgba(255,245,224,.2) 48%, rgba(242,222,184,.065) 61%, transparent 84%),
    radial-gradient(ellipse 100% 70% at var(--pointer-x,50%) var(--pointer-y,45%), rgba(231,212,178,.17), transparent 78%);
  transition: opacity .45s;
}
#main .home-towers .portal-card .portal-content {
  position: absolute; z-index: 5; inset: 0; width: auto; max-width: none; padding: 20px 16px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0; text-align: center; transform: none; pointer-events: none;
}
#main .portal-copy { position: relative; display: block; width: 100%; max-width: 330px; transition: transform .35s; }
#main .home-towers .portal-card .portal-index {
  position: static; display: block; margin: 0 0 16px; color: #ffffff8c;
  font-family: 'DM Sans',sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .2em;
}
#main .home-towers .portal-card .portal-content strong {
  display: block; width: 100%; max-width: none; margin: 0;
  font-family: 'Cal Sans','DM Sans',sans-serif; font-size: clamp(23px,2.25vw,44px);
  line-height: .98; letter-spacing: -.025em; font-weight: 400; color: #fff; text-wrap: balance;
  text-shadow: 0 2px 20px rgba(0,0,0,.45);
}
#main .home-towers .portal-analysis .portal-content strong { font-size: clamp(20px,1.85vw,36px); }
#main .home-towers .portal-budget .portal-content strong { font-size: clamp(19px,1.7vw,32px); }
#main .portal-details { position: absolute; top: calc(100% + 18px); left: 0; right: 0; display: block; opacity: 0; transform: translateY(10px); transition: opacity .3s,transform .3s; }
#main .home-towers .portal-card .portal-description { position: static; display: block; max-width: 260px; margin: 0 auto; opacity: 1; transform: none; color: #ffffffd4; font-size: 12px; line-height: 1.55; }
#main .portal-enter { display: block; margin-top: 14px; color: #e5d2b3; font-size: 9px; letter-spacing: .18em; }
#main .home-towers .portal-grid:has(.portal-card:is(:hover,:focus-visible)) .portal-card:not(:hover):not(:focus-visible) { flex: .86 1 0; filter: none; }
#main .home-towers .portal-grid:has(.portal-card:is(:hover,:focus-visible)) .portal-card:not(:hover):not(:focus-visible) .portal-photo { filter: saturate(.35) brightness(.31) contrast(1.08) !important; }
#main .home-towers .portal-grid:has(.portal-card:is(:hover,:focus-visible)) .portal-card:not(:hover):not(:focus-visible) .portal-light { opacity: .08; }
#main .home-towers .portal-card:is(:hover,:focus-visible) {
  flex: 1.65 1 0; z-index: 8; transform: translateY(-4px);
  box-shadow: -34px 0 48px #00000076,34px 0 48px #00000076;
}
#main .home-towers .portal-card:is(:hover,:focus-visible) .portal-photo { filter: saturate(.92) brightness(.78) contrast(1.04) !important; }
#main .home-towers .portal-card:is(:hover,:focus-visible) .portal-light { opacity: 1; }
#main .home-towers .portal-card:is(:hover,:focus-visible) .portal-copy { transform: translateY(-8px); }
#main .home-towers .portal-card:is(:hover,:focus-visible) .portal-details { opacity: 1; transform: none; }
#main .home-towers .portal-card:focus-visible { outline: 1px solid #e5d2b3; outline-offset: -2px; }
@media (max-width: 760px) {
  #main .home-towers { height: calc(100svh - 40px); height: calc(100dvh - 40px); min-height: 0; padding: 0; }
  #main .home-towers .portal-grid { flex-direction: column; }
  #main .home-towers .portal-card,
  #main .home-towers .portal-card:is(:hover,:focus-visible),
  #main .home-towers .portal-grid:has(.portal-card:is(:hover,:focus-visible)) .portal-card:not(:hover):not(:focus-visible) { flex: 1 1 0; height: auto; min-height: 0; transform: none; box-shadow: none; border-right: 0; border-bottom: 1px solid #ffffff1c; }
  #main .home-towers .portal-card .portal-content { padding: 6px 28px; }
  #main .home-towers .portal-card .portal-index { position: absolute; top: 0; left: -15px; margin: 0; font-size: 6px; }
  #main .home-towers .portal-card .portal-content strong { font-size: clamp(17px,4.5vw,25px); line-height: 1.05; }
  #main .portal-copy { max-width: 480px; }
  #main .home-towers .portal-card:is(:hover,:focus-visible) .portal-copy { transform: none; }
  #main .portal-details { position: static; margin-top: 5px; opacity: 1; transform: none; }
  #main .home-towers .portal-card .portal-description { max-width: none; font-size: 10px; line-height: 1.2; }
  #main .portal-enter { display: none; }
  #main .portal-light { opacity: .45; }
  #main .home-towers .portal-card .portal-photo { transform: scale(1.06) !important; transform-origin: center; }
  #main .portal-shade { background: linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 32%,rgba(0,0,0,.16) 72%,rgba(0,0,0,.5)); }
  #main .home-towers .portal-card .portal-photo,
  #main .home-towers .portal-grid:has(.portal-card:is(:hover,:focus-visible)) .portal-card:not(:hover):not(:focus-visible) .portal-photo { filter: saturate(.48) brightness(.55) contrast(1.08) !important; }
}
@media (prefers-reduced-motion: reduce) {
  #main .home-towers .portal-card, #main .home-towers .portal-card .portal-photo,
  #main .portal-light, #main .portal-copy, #main .portal-details { transition: none; }
  #main .home-towers .portal-card .portal-photo { transform: scale(1.06) !important; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 760px) {
  #main .home-towers .portal-card .portal-photo { transform: scale(1.06) !important; }
}

/* The supplied analysis landing page already includes its own header and footer. */
body:has(.page-analysis) { overflow: hidden; background: #0f0f10; }
body:has(.page-analysis) .fractal-backdrop,
body:has(.page-analysis) .site-header,
body:has(.page-analysis) .site-footer,
body:has(.page-analysis) .aiva-cursor { display: none !important; }
body:has(.page-analysis) > .skip-link { display: none !important; }
body:has(.page-analysis) main#main { height: 100dvh; margin: 0; padding: 0; overflow: hidden; }
body:has(.page-analysis) #main .page-analysis { width: 100%; max-width: none; height: 100%; min-height: 0; margin: 0; overflow: hidden; }
#main .analysis-embedded { position: relative; width: 100%; height: 100%; min-height: 100dvh; overflow: hidden; background: #0f0f10; }
#main .analysis-embedded iframe { display: block; width: 100%; height: 100%; min-height: 100dvh; border: 0; background: #0f0f10; }
#main .analysis-page-back { position: absolute; z-index: 10; top: 82px; left: clamp(16px,3vw,42px); display: inline-flex; align-items: center; gap: 9px; min-height: 36px; padding: 0 13px; border: 1px solid #ffffff38; border-radius: 24px; color: #fff; background: #0b0c0d9e; backdrop-filter: blur(16px); font: 600 10px/1 'DM Sans',sans-serif; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; box-shadow: inset 0 1px #ffffff30,0 5px 18px #0006; }
#main .analysis-page-back:hover { background: #ffffff1c; border-color: #ffffff80; }
@media(max-width:760px) { #main .analysis-page-back { top: 74px; left: 13px; min-height: 32px; font-size: 9px; } }
