/* v15: portfolio-introduction inspired entry + Elite-inspired heading reveals */
.v15-intro{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 44%,#22222a 0%,#111216 75%);color:#f4f0e9;isolation:isolate;transition:opacity .85s cubic-bezier(.18,.85,.25,1),visibility 0s .85s;}
.v15-intro:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49.95%,rgba(205,164,101,.1) 50%,transparent 50.05%),radial-gradient(circle at center,transparent 22%,rgba(0,0,0,.3) 80%)}
.v15-intro.v15-dismissed{opacity:0;visibility:hidden;pointer-events:none}
.v15-intro-center{position:relative;text-align:center;width:min(92vw,680px);transform:translateY(0);animation:v15-center-up 1.05s 1.35s cubic-bezier(.22,.8,.25,1) both}
.v15-intro-logo{height:210px;position:relative;display:grid;place-items:center;margin-bottom:24px}
.v15-intro-wings{position:absolute;width:160px;height:160px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-45deg) scale(.65);animation:v15-assemble 1s .38s cubic-bezier(.22,.8,.24,1) both}
.v15-intro-wing{position:absolute;width:90px;height:90px;border:9px solid #cba16d;filter:drop-shadow(0 0 12px rgba(190,143,91,.14));}
.v15-left{border-right:0;border-bottom:0;top:15px;left:6px;transform:translateX(-100vw) rotate(-15deg);animation:v15-left-wing .75s .05s cubic-bezier(.15,.85,.3,1) forwards}
.v15-right{border-left:0;border-top:0;bottom:15px;right:6px;transform:translateX(100vw) rotate(15deg);animation:v15-right-wing .75s .05s cubic-bezier(.15,.85,.3,1) forwards}
.v15-intro-letters{position:relative;font-size:clamp(70px,12vw,116px);line-height:1;font-weight:800;letter-spacing:-.09em;display:flex;align-items:baseline;gap:.06em;text-shadow:0 10px 40px rgba(0,0,0,.25)}
.v15-intro-letters span{display:inline-block;opacity:0;transform:translateY(20px) scale(.82);animation:v15-letter .65s 1.02s cubic-bezier(.15,.9,.26,1.05) forwards}
.v15-intro-letters span:nth-child(2){color:#d7ae79;animation-delay:1.14s}.v15-intro-letters i{font-style:normal;color:#c99a5e;opacity:0;animation:v15-dot .3s 1.5s forwards}
.v15-intro-name{font-size:clamp(21px,4.6vw,48px);font-weight:400;letter-spacing:.2em;line-height:1.2;margin:0 0 15px;color:#f3eee7;opacity:0;transform:translateY(15px);animation:v15-text .7s 1.55s ease-out forwards}
.v15-intro-name strong{font-weight:800}
.v15-intro-sub{font-size:clamp(9px,1.4vw,12px);letter-spacing:.21em;color:#aba6a0;opacity:0;transform:translateY(15px);animation:v15-text .6s 1.76s ease-out forwards}
.v15-intro-sub b{color:#d4ad79;margin:0 .5em}
.v15-intro-line{width:0;height:1px;background:linear-gradient(90deg,transparent,#cda56d,transparent);margin:30px auto 0;animation:v15-line .7s 1.9s ease-out forwards}
.v15-intro-skip{position:absolute;top:clamp(22px,4vw,52px);right:clamp(22px,4vw,52px);z-index:3;background:transparent;color:#d9d4ca;border:1px solid rgba(220,198,164,.28);font-size:10px;letter-spacing:.16em;padding:13px 16px;cursor:pointer}
.v15-intro-skip:hover,.v15-intro-skip:focus-visible{border-color:#d4ad79;color:white}
.v15-intro-bottom{position:absolute;bottom:36px;left:clamp(22px,4vw,52px);right:clamp(22px,4vw,52px);display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.2em;color:#a19a90}
@keyframes v15-left-wing{to{transform:translateX(0) rotate(0)}}@keyframes v15-right-wing{to{transform:translateX(0) rotate(0)}}
@keyframes v15-assemble{from{transform:translate(-50%,-50%) rotate(-140deg) scale(.38);opacity:.5}to{transform:translate(-50%,-50%) rotate(-45deg) scale(.75);opacity:1}}
@keyframes v15-letter{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes v15-dot{to{opacity:1}}
@keyframes v15-text{to{opacity:1;transform:translateY(0)}}@keyframes v15-line{to{width:min(250px,60vw)}}@keyframes v15-center-up{from{transform:translateY(7vh)}to{transform:translateY(-2vh)}}
/* On every section activation: the heading arrives in pieces and its copy follows. */
@media(prefers-reduced-motion:no-preference){
  main#main>section[id].deck-active.v15-enter .section-number,
  main#main>section[id].deck-active.v15-enter .section-label h2,
  main#main>section[id].deck-active.v15-enter .section-heading h2,
  main#main>section[id].deck-active.v15-enter #contact-title,
  main#main>section[id].deck-active.v15-enter .journey-heading h2{animation:v15-title-in .9s cubic-bezier(.17,.86,.22,1) both}
  main#main>section[id].deck-active.v15-enter .section-number{animation-delay:.04s}
  main#main>section[id].deck-active.v15-enter .section-label h2,
  main#main>section[id].deck-active.v15-enter .section-heading h2,
  main#main>section[id].deck-active.v15-enter #contact-title,
  main#main>section[id].deck-active.v15-enter .journey-heading h2{animation-delay:.14s}
  main#main>section[id].deck-active.v15-enter .section-heading>p,
  main#main>section[id].deck-active.v15-enter .section-body>p,
  main#main>section[id].deck-active.v15-enter .journey-heading>p,
  main#main>section[id].deck-active.v15-enter .contact-section>p{animation:v15-copy-in .9s .28s ease-out both}
  main#main>section[id].deck-active.v15-enter .skill-card,
  main#main>section[id].deck-active.v15-enter .education-item,
  main#main>section[id].deck-active.v15-enter .credential-statline>div,
  main#main>section[id].deck-active.v15-enter .contact-links>a{animation:v15-card-in .75s cubic-bezier(.16,.88,.27,1) both;animation-delay:calc(.24s + var(--v15-order,0)*.095s)}
  #experience.deck-active.v15-enter .journey-head{animation:v15-copy-in .85s .12s both}
  #experience .journey-card.is-current .journey-company,#experience .journey-card.is-current h3,#experience .journey-card.is-current .journey-card-main p{animation:v15-copy-in .7s ease-out both}
  #experience .journey-card.is-current h3{animation-delay:.08s}
  #experience .journey-card.is-current .journey-card-main p{animation-delay:.17s}
}
@keyframes v15-title-in{from{opacity:0;transform:translate3d(0,46px,0) skewY(2deg);filter:blur(8px)}to{opacity:1;transform:translateZ(0) skewY(0);filter:blur(0)}}
@keyframes v15-copy-in{from{opacity:0;transform:translateY(26px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes v15-card-in{from{opacity:0;transform:translateY(38px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.v15-intro-logo{height:170px}.v15-intro-bottom{font-size:8px}.v15-intro-name{letter-spacing:.13em}}
@media(prefers-reduced-motion:reduce){.v15-intro-center,.v15-intro-wings,.v15-intro-wing,.v15-intro-letters span,.v15-intro-letters i,.v15-intro-name,.v15-intro-sub,.v15-intro-line{animation:none!important;opacity:1!important;transform:none!important}.v15-intro-line{width:220px!important}.v15-intro{transition:none!important}}
