/* scene.css — Tesla-style full-bleed photo scenes, parallax, bands, galleries */
:root{--ease:cubic-bezier(.2,.7,.2,1)}

/* ---------- photo hero for every inner page ---------- */
.sc-hero{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:min(64vh,620px);color:#fff;background:#0a0e1a;padding:calc(var(--nav-h) + 6vh) 24px 56px}
.sc-hero>*:not(.sc-bg){position:relative;z-index:2}
.sc-bg{position:absolute;inset:-8% 0;z-index:0;background-size:cover;background-position:center;will-change:transform;transform:translate3d(0,0,0) scale(1.08)}
.sc-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,10,22,.72) 0%,rgba(7,10,22,.42) 45%,rgba(7,10,22,.82) 100%)}
.sc-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:1;background:linear-gradient(0deg,rgba(255,255,255,.0),transparent);pointer-events:none}
.sc-hero h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.45)}
.sc-hero p,.sc-hero .hb-copy p{color:rgba(255,255,255,.88)}
.sc-hero .f-seg{background:rgba(255,255,255,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.sc-hero .f-seg button{color:rgba(255,255,255,.88)}
.sc-hero .f-seg button.on{background:#fff;color:var(--ink)}
.sc-hero .c-chip{background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(8px)}
.sc-hero .hb-file{color:rgba(255,255,255,.75)}
.sc-hero .hb-hero-in{width:100%}
.sc-hero.hb-hero{display:block;min-height:min(72vh,680px);padding-top:calc(var(--nav-h) + 8vh);background:#0a0e1a}
.sc-hero.hb-hero .hb-hero-in{position:relative;z-index:2}
.sc-hero.hub-hero .sc-bg::after{background:linear-gradient(160deg,rgba(11,14,20,.86),rgba(22,38,79,.74))}
.sc-hero.hub-hero{min-height:0}
/* scroll cue */
.sc-cue{position:absolute!important;left:50%;bottom:22px;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.7);border-radius:14px;z-index:5;opacity:.85}
.sc-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:scCue 1.8s ease-in-out infinite}
@keyframes scCue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* ---------- parallax statement band ---------- */
.sc-band{position:relative;overflow:hidden;isolation:isolate;color:#fff;min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;background:#080b16;margin:0}
.sc-band .sc-bg{inset:-14% 0}
.sc-band .sc-bg::after{background:linear-gradient(180deg,rgba(6,9,20,.7),rgba(6,9,20,.38) 50%,rgba(6,9,20,.78))}
.sc-band .sc-in{position:relative;z-index:2;padding:80px 24px;max-width:860px}
.sc-band .sc-k{font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.85;font-weight:600}
.sc-band h2{font-size:clamp(30px,5vw,60px);font-weight:500;line-height:1.14;letter-spacing:-.015em;margin:14px 0 16px;text-shadow:0 2px 28px rgba(0,0,0,.5)}
.sc-band p{font-size:clamp(15px,1.6vw,19px);opacity:.92;max-width:600px;margin:0 auto 30px}
.sc-band .btn{min-width:200px}
.sc-band.cta{min-height:56vh}
.sc-band.cta.compact{min-height:44vh}

/* ---------- counters strip ---------- */
.sc-num{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#0c1020;color:#fff;max-width:none}
.sc-num>div{padding:68px 24px;text-align:center;border-right:1px solid rgba(255,255,255,.09);position:relative;overflow:hidden}
.sc-num>div:last-child{border-right:0}
.sc-num>div::before{content:"";position:absolute;left:50%;top:0;width:0;height:2px;background:linear-gradient(90deg,transparent,#7aa2ff,transparent);transition:width 1.2s var(--ease) .2s;transform:translateX(-50%)}
.sc-num>div.fx-in::before{width:80%}
.sc-num b{display:block;font-size:clamp(46px,6.4vw,92px);font-weight:500;letter-spacing:-.03em;line-height:1;background:linear-gradient(180deg,#fff,#9db7ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.sc-num b small{font-size:.32em;margin-left:6px;font-weight:500;letter-spacing:0;-webkit-text-fill-color:#9db7ff}
.sc-num span{display:block;margin-top:14px;font-size:14px;opacity:.82;max-width:220px;margin-inline:auto}

/* ---------- field cards (3 practice areas) ---------- */
.sc-fields{padding:96px 16px 0;max-width:1480px;margin:0 auto}
.sc-fields>h2,.sc-gal-h h2{font-size:clamp(28px,3.4vw,46px);font-weight:500;letter-spacing:-.015em;text-align:center}
.sc-fields>p,.sc-gal-h p{text-align:center;color:var(--gray);max-width:560px;margin:10px auto 36px}
.sc-fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sc-fcard{position:relative;border-radius:14px;overflow:hidden;min-height:68vh;color:#fff;display:flex;align-items:flex-end;isolation:isolate;background:#0a0e1a}
.sc-fcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--ease),filter .6s;filter:saturate(.95)}
.sc-fcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,8,18,.88) 0%,rgba(5,8,18,.2) 55%,rgba(5,8,18,.25));transition:opacity .4s}
.sc-fcard:hover img{transform:scale(1.07);filter:saturate(1.15)}
.sc-fcard .in{padding:34px;transform:translateY(34px);transition:transform .6s var(--ease)}
.sc-fcard:hover .in{transform:none}
.sc-fcard .n{font-size:13px;letter-spacing:.2em;opacity:.8;font-weight:600}
.sc-fcard h3{font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.2;margin:8px 0 10px}
.sc-fcard p{opacity:.9;max-width:380px;font-size:15px}
.sc-fcard .m{display:inline-block;margin-top:16px;font-weight:500;opacity:0;transform:translateX(-10px);transition:.5s var(--ease)}
.sc-fcard:hover .m{opacity:1;transform:none}
@media(hover:none){.sc-fcard .in{transform:none}.sc-fcard .m{opacity:1;transform:none}}

/* ---------- gallery (drag / scroll strip) ---------- */
.sc-gal{padding:110px 0 0}
.sc-gal-h{padding:0 24px}
.sc-strip{display:flex;gap:16px;overflow-x:auto;padding:8px 16px 28px;scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.sc-strip::-webkit-scrollbar{display:none}
.sc-strip.drag{cursor:grabbing;scroll-snap-type:none}
.sc-shot{position:relative;flex:0 0 min(78vw,520px);aspect-ratio:4/5;border-radius:14px;overflow:hidden;scroll-snap-align:center;color:#fff;background:#0a0e1a}
.sc-shot:nth-child(even){aspect-ratio:4/4.4;align-self:flex-end}
.sc-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease);-webkit-user-drag:none;user-select:none;pointer-events:none}
.sc-shot:hover img{transform:scale(1.06)}
.sc-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,8,18,.75),transparent 50%)}
.sc-shot figcaption{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;font-size:20px;font-weight:500;line-height:1.3}
.sc-shot figcaption small{display:block;font-size:12px;letter-spacing:.16em;opacity:.8;margin-bottom:4px;font-weight:600}

/* ---------- reveal variants (extends fx.css) ---------- */
.sc-up{opacity:0;transform:translateY(46px);transition:opacity 1s ease,transform 1s var(--ease)}
.sc-up.fx-in{opacity:1;transform:none}
.sc-up[data-d="1"]{transition-delay:.1s}.sc-up[data-d="2"]{transition-delay:.2s}.sc-up[data-d="3"]{transition-delay:.3s}
.sc-mask{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
.sc-mask.fx-in{clip-path:inset(0 0 0 0)}

/* ---------- home upgrades: photo tiles / services / panels ---------- */
.tile{background-size:cover!important;background-position:center;isolation:isolate}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,8,18,.88),rgba(5,8,18,.15) 65%);transition:opacity .4s}
.tile.t1{background-image:url(../assets/photos/px-students.jpg)!important}
.tile.t2{background-image:url(../assets/photos/px-grad.jpg)!important}
.tile.t3{background-image:url(../assets/photos/px-team.jpg)!important}
.tile.t4{background-image:url(../assets/photos/px-lecture.jpg)!important}
.tile{transition:transform .35s var(--ease),box-shadow .35s}
.tile:hover{box-shadow:0 24px 50px rgba(0,0,0,.28)}
.tile h4,.tile p{transition:transform .5s var(--ease)}
.tile:hover h4{transform:translateY(-4px)}
.services{position:relative;overflow:hidden;isolation:isolate;background:#080d1c!important;min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.services::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../assets/photos/px-ct-room.jpg) center/cover;opacity:.55;transform:scale(1.06);transition:transform 2s var(--ease)}
.services:hover::before{transform:scale(1.14)}
.services::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 140% at 80% 20%,rgba(28,58,122,.78),rgba(8,13,28,.9) 65%)}
.panel img{transition:transform 1.6s var(--ease),filter .6s}
.panel:hover img{transform:scale(1.07);filter:saturate(1.12)}
.panel .in{transition:transform .6s var(--ease)}
.panel:hover .in{transform:translateY(-6px)}
.card{position:relative;overflow:hidden}
.card::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--blue);transition:width .5s var(--ease)}
.card:hover::after{width:100%}

/* ---------- inner pages: cards & links get life ---------- */
.f-card,.c-grp,.c-stat,.c-box,.sv-card,.hub-card,.hub-doc,.d-year,.d-m{transition:transform .35s var(--ease),box-shadow .35s}
.f-card .f-ph img{transition:transform 1.4s var(--ease),filter .6s}
.f-card:hover .f-ph img{transform:scale(1.07)}
.f-sec h2::before{transition:height .6s var(--ease)}
.f-sec:hover h2::before{height:38px}
/* faculty page: section lead-in photo strip */
.sc-lead{position:relative;height:38vh;min-height:240px;border-radius:14px;overflow:hidden;margin:56px 0 0;isolation:isolate;display:flex;align-items:flex-end}
.sc-lead .sc-bg{inset:-12% 0}
.sc-lead .sc-bg::after{background:linear-gradient(0deg,rgba(5,8,18,.75),rgba(5,8,18,.1))}
.sc-lead span{position:relative;z-index:2;color:#fff;padding:28px 32px;font-size:clamp(20px,2.4vw,30px);font-weight:500;max-width:640px;line-height:1.3}

/* ---------- responsive ---------- */
@media(max-width:980px){
 .sc-num{grid-template-columns:1fr 1fr}.sc-num>div{padding:46px 16px;border-bottom:1px solid rgba(255,255,255,.09)}
 .sc-fgrid{grid-template-columns:1fr}.sc-fcard{min-height:56vh}.sc-fcard .in{transform:none}.sc-fcard .m{opacity:1;transform:none}
}
@media(max-width:720px){
 .sc-hero{min-height:56vh;padding:calc(var(--nav-h) + 4vh) 18px 44px}
 .sc-band{min-height:64vh}.sc-fields{padding-top:64px}.sc-gal{padding-top:72px}
 .sc-shot{flex-basis:80vw}.sc-lead{margin-top:36px}.sc-bg{inset:-4% 0}
}
@media(prefers-reduced-motion:reduce){
 .sc-bg{transform:none!important}.sc-up,.sc-mask{opacity:1;transform:none;clip-path:none}
 .sc-cue::after{animation:none}
}
.soon.sc-hero{min-height:100vh;gap:14px}
.soon.sc-hero h1{color:#fff}.soon.sc-hero p{color:rgba(255,255,255,.85)}
.hub-hero.sc-hero{padding-bottom:56px}
.sc-hero strong,.sc-hero .c-tag{color:#bcd0ff!important}
.sc-hero h1,.sc-hero p{text-shadow:0 2px 20px rgba(0,0,0,.55)}
