/* Home page: full-screen panels with colour-shifting background and directional content transitions */
body.home{background-color:#060B18;transition:background-color 1.2s ease}
html.snap{scroll-snap-type:y mandatory}

.home .panel{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:112px 0 64px;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;background:none}
.home .panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(900px 560px at var(--gx,80%) var(--gy,10%),var(--glow,rgba(59,139,235,.2)),transparent 65%);opacity:0;transition:opacity 1.4s ease}
.home .panel.is-active::before{opacity:1}
.panel__in{position:relative;width:min(1240px,100% - var(--gut)*2);margin-inline:auto}

/* hero keeps its own layout */
.home .hero{padding:120px 0 90px;justify-content:center;background:radial-gradient(1200px 700px at 78% 30%,rgba(23,92,160,.35),transparent 60%),radial-gradient(800px 500px at 10% 90%,rgba(200,169,106,.08),transparent 60%)}
.home .hero::before{display:none}
.home .hero__vignette{background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(6,11,24,.6) 100%)}
.home .hero__grid{transition:transform 1s var(--ease),opacity .8s ease}
.home .hero.is-above .hero__grid,.home .hero.is-above .scrollcue{transform:translateY(-70px);opacity:0}
.home .scrollcue{transition:opacity .6s}
.home .hero.is-above .scrollcue{transform:translateX(-50%)}

/* content enters from the direction of travel, leaves the opposite way */
.home .panel:not(.hero) .reveal{opacity:0;transform:translateY(70px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:0s}
.home .panel:not(.hero).is-above .reveal{transform:translateY(-70px)}
.home .panel:not(.hero).is-active .reveal{opacity:1;transform:none;transition-delay:var(--d,0s)}
.home .panel.is-active .card.reveal:hover{transform:translateY(-8px);transition-delay:0s}

.home .section__head{margin-bottom:40px}
.home .section__head--row{margin-bottom:28px}
.home .section__head h2{font-size:clamp(2.2rem,4.6vw,4rem)}
.home .section__head--row h2{font-size:clamp(2rem,3.6vw,3rem)}
.home .section__head--row .eyebrow{margin-bottom:12px}

/* glance */
.home .stats{margin:0;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.12)}
.home .stat{background:rgba(6,11,24,.35);padding:clamp(28px,4vw,56px) 28px;backdrop-filter:blur(6px)}
.home .stat b{font-size:clamp(3.4rem,7vw,6rem)}
.marquee--panel{position:absolute;left:0;right:0;bottom:0;background:rgba(6,11,24,.3);border-color:rgba(255,255,255,.12)}
.home #glance{padding-bottom:110px}

/* disciplines */
.home .card{min-height:0;height:100%;background:rgba(6,20,30,.45);border-color:rgba(255,255,255,.14);padding-bottom:64px}
.home .card__idx{margin-bottom:34px}
.home .cards{align-items:stretch}

/* ventures */
.home .venture{background:rgba(6,14,32,.42);border-color:rgba(255,255,255,.14)}
.home .venture--prime{background:radial-gradient(600px 300px at 100% 0,rgba(59,139,235,.4),transparent 65%),rgba(6,14,32,.42)}
.home .venture--prime .venture__body{padding:clamp(22px,3vw,38px);gap:10px}
.home .venture--prime h3{font-size:clamp(1.9rem,3.2vw,2.8rem);margin:8px 0 2px}
.home .venture--prime .tags{margin:2px 0 6px}
.home .venture--sm{padding:22px;gap:20px;grid-template-columns:96px 1fr}
.home .venture--sm h3{font-size:1.6rem;margin:8px 0 6px}
.home .venture--sm p{font-size:.88rem;margin-bottom:0}
.home .venture-row{margin-top:14px}
.home .venture__logo{padding:20px}
.home .more{margin-top:24px}

/* journey: heading left, compact timeline right */
.home .journey{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,7vw,110px);align-items:center}
.home .journey .section__head{margin:0}
.home .journey .lead{margin-bottom:0}
.home .timeline li{grid-template-columns:130px 1fr;gap:20px;padding:0 0 26px 30px}
.home .timeline li:last-child{padding-bottom:0}
.home .timeline h3{font:400 1.35rem/1.2 var(--serif)}
.home .timeline h3 small{margin-top:4px;font-size:.85rem;color:#E4CFA0}
.home .timeline li::before{background:#221A12;border-color:var(--brass)}
.home .timeline li:hover::before{background:var(--brass);box-shadow:0 0 0 8px rgba(200,169,106,.18)}

/* voice: compact rows */
.home .voice{gap:14px}
.home .voice__col{padding:24px 26px;background:rgba(10,8,30,.4);border-color:rgba(255,255,255,.14)}
.home .voice__col h3{margin-bottom:6px}
.home .voice li{flex-direction:row;justify-content:space-between;align-items:baseline;gap:18px;padding:10px 0}
.home .voice li b{font-size:.9rem;font-weight:400}
.home .voice li span{font-size:.78rem;text-align:right;flex:0 0 auto;max-width:42%}

/* contact + footer */
.home .panel--end{padding:0;justify-content:flex-start}
.home .end__main{flex:1;display:flex;align-items:center;padding:112px 0 30px;width:100%}
.home .panel--end .contact__big{font-size:clamp(4rem,12vw,10rem);margin:6px 0 44px}
.home .panel--end .footer{background:rgba(0,0,0,.25);border-top-color:rgba(255,255,255,.12);position:relative}

/* dot navigator */
.dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:95;display:flex;flex-direction:column;gap:14px}
.dots button{position:relative;width:12px;height:12px;padding:0;border:0;background:none;cursor:pointer}
.dots button::before{content:"";position:absolute;inset:2px;border-radius:50%;background:rgba(255,255,255,.35);transition:transform .4s var(--ease),background .3s}
.dots button.on::before{background:#fff;transform:scale(1.5)}
.dots button span{position:absolute;right:22px;top:50%;transform:translate(8px,-50%);white-space:nowrap;font:500 .68rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:0;pointer-events:none;transition:opacity .3s,transform .4s var(--ease);text-shadow:0 1px 8px rgba(0,0,0,.6)}
.dots button:hover span,.dots button:focus-visible span{opacity:1;transform:translate(0,-50%)}


/* keep every panel inside one screen on shorter laptops */
@media (min-width:1001px){
  .home .hero__portrait{max-width:min(100%,calc((100svh - 220px)*.76));margin-inline:auto}
}
@media (min-width:1001px) and (max-height:820px){
  .home .panel{padding:92px 0 36px}
  .home .section__head{margin-bottom:22px}
  .home .section__head .lead{margin-top:12px;font-size:1rem}
  .home .card{padding:22px 22px 56px}
  .home .card__idx{margin-bottom:20px}
  .home .venture--prime .tags{display:none}
  .home .venture--prime .venture__body{padding:22px 28px}
  .home .venture--sm{padding:16px}
  .home .more{margin-top:16px}
  .home .voice li{padding:7px 0}
  .home .stat{padding:26px 24px}
}

@media (max-width:1000px){
  .home .journey{grid-template-columns:1fr}
  .home .venture--prime{grid-template-columns:1fr}
  .home .panel{padding:96px 0 56px}
  .home .marquee--panel{position:relative;margin-top:44px}
  .home #glance{padding-bottom:56px}
}
@media (max-width:760px){
  .dots{display:none}
  .home .timeline li{grid-template-columns:1fr;gap:4px}
  .home .voice li{flex-direction:column;gap:2px}
  .home .voice li span{text-align:left;max-width:none}
  .home .venture--sm{grid-template-columns:72px 1fr}
}
@media (prefers-reduced-motion:reduce){
  .home .panel .reveal{opacity:1!important;transform:none!important}
  html.snap{scroll-snap-type:none}
}

.swipe{display:none}
.vcar{display:block}

/* phones: every panel fits one screen; wide content becomes swipeable rows */
@media (max-width:760px){
  .home .panel{padding:84px 0 36px}
  .home .section__head{margin-bottom:18px}
  .home .section__head h2,.home .section__head--row h2{font-size:clamp(1.9rem,8.6vw,2.4rem)}
  .home .section__head .eyebrow{margin-bottom:10px}
  .home .lead{display:none}

  /* hero */
  .home .hero{padding:92px 0 60px}
  .home .hero__title{font-size:clamp(3.4rem,17vw,4.8rem);margin-bottom:22px}
  .home .hero__tag{font-size:1.02rem;margin-bottom:20px}
  .home .chips{margin-bottom:24px}
  .home .hero__portrait{position:absolute;right:-14%;bottom:-30px;width:74%;max-width:none;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 55%);mask-image:linear-gradient(180deg,transparent 0,#000 55%)}
  body.ready.home .hero__portrait{opacity:.4}
  .home .hero .portrait{border-radius:0;border:0;box-shadow:none}
  .home .portrait__tag,.home .orb,.home .scrollcue{display:none}
  .home .hero__copy{position:relative;z-index:1}

  /* glance */
  .home #glance{padding-bottom:36px}
  .home .stat{padding:20px 18px}
  .home .stat b{font-size:3rem}
  .home .marquee--panel{margin-top:28px}

  /* swipeable rows */
  .home .cards,.home .vcar,.home .voice{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut)*-1);padding-inline:var(--gut);padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .home .cards::-webkit-scrollbar,.home .vcar::-webkit-scrollbar,.home .voice::-webkit-scrollbar{display:none}
  .home .card{flex:0 0 82%;scroll-snap-align:center;height:auto;min-height:0;padding:22px 20px 54px}
  .home .card__idx{margin-bottom:18px}
  .home .venture-row{display:contents}
  .home .vcar>.venture,.home .vcar .venture-row>.venture{flex:0 0 86%;scroll-snap-align:center;margin:0}
  .home .venture--prime .venture__logo{order:-1;padding:16px}
  .home .venture--prime .venture__logo img{width:min(220px,70%)}
  .home .venture--prime .venture__body{padding:18px 18px 20px}
  .home .venture--prime .tags,.home .division{display:none}
  .home .venture--sm{grid-template-columns:1fr;gap:12px;padding:18px}
  .home .venture--sm .venture__mark{width:76px}
  .home .venture__mark--wide{width:110px}
  .home .voice__col{flex:0 0 88%;scroll-snap-align:center;padding:18px 18px}
  .home .voice li:nth-child(n+6){display:none}
  .home .voice li{padding:8px 0}
  .home .voice li b{font-size:.86rem}
  .home .voice li span{font-size:.74rem}
  .home .swipe{display:block;color:var(--mute);margin:10px 0 0;text-align:right}
  .home .more{margin-top:14px}

  /* journey */
  .home .journey{gap:14px}
  .home .timeline li{padding:0 0 14px 22px;gap:2px}
  .home .timeline li:not(:first-child) h3 small{display:none}
  .home .timeline h3{font-size:1.08rem}
  .home .timeline time{font-size:.66rem}

  /* contact */
  .home .end__main{padding:84px 0 16px}
  .home .panel--end .contact__big{font-size:clamp(3.4rem,17vw,5rem);margin:4px 0 24px}
  .home .contact__grid{grid-template-columns:1fr 1fr;gap:14px 16px;padding-top:20px}
  .home .contact__grid>div:first-child{grid-column:1/-1}
}

@media (max-width:760px){
  .home .panel--end .footer{padding:18px 0}
  .home .panel--end .footer__in{gap:12px}
  .home .panel--end .footer__brand{display:none}
  .home .panel--end .footer__note{font-size:.68rem;line-height:1.5}
  .home .panel--end .fnav{font-size:.8rem;gap:6px 16px;margin-bottom:6px}
  .home .panel--end .footer__time{display:none}
}
@media (max-width:760px) and (max-height:700px){
  .home .panel{padding:72px 0 24px}
  .home .hero{padding:78px 0 40px}
  .home .hero__title{font-size:clamp(2.9rem,15vw,3.6rem);margin-bottom:14px}
  .home .hero__tag{font-size:.95rem;margin-bottom:14px}
  .home .chips{margin-bottom:16px}
  .home .section__head{margin-bottom:12px}
  .home .venture--prime .venture__body p{display:none}
  .home .voice li:nth-child(n+5){display:none}
  .home .timeline li{padding-bottom:10px}
  .home .end__main{padding:72px 0 10px}
  .home .panel--end .contact__big{margin:0 0 14px}
}
