/* Entrance, layered lighting and interaction. Content stays visible without JS. */
.page-ready .site-header{animation:page-enter .85s cubic-bezier(.16,1,.3,1) both}
.page-ready .page-intro{animation:page-enter .85s cubic-bezier(.16,1,.3,1) .07s both}
.page-ready .profile-panel{animation:panel-enter 1.1s cubic-bezier(.16,1,.3,1) .1s both}
.page-ready .contact-panel{animation:panel-enter 1.1s cubic-bezier(.16,1,.3,1) .22s both}
.page-ready .identity{animation:identity-enter 1.4s cubic-bezier(.16,1,.3,1) .16s both}
.reveal-pending{opacity:0;transform:translateY(18px)}
.reveal-pending:focus-within{opacity:1;transform:none}
.reveal-in{animation:page-enter .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0s) both}
@keyframes page-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes panel-enter{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes identity-enter{from{opacity:0;transform:perspective(800px) rotateY(-24deg) translateY(8px)}to{opacity:1;transform:perspective(800px) rotateY(0) translateY(0)}}
.profile-panel{background-image:radial-gradient(ellipse at 25% 13%,#193e473b,transparent 60%);box-shadow:0 24px 55px -35px #031f2a66}
.identity{isolation:isolate;perspective:700px;transform-style:preserve-3d}
.identity-mark{transition:transform .75s cubic-bezier(.16,1,.3,1),filter .7s;transform:rotateX(var(--identity-rx,0deg)) rotateY(var(--identity-ry,0deg)) translateZ(14px)}
.identity-halo{position:absolute;width:172px;height:172px;top:-30px;left:-8px;border:1px solid #61c5b820;border-radius:50%;transform:rotateX(64deg) rotateZ(-24deg);z-index:-1}
.identity-halo:after{content:"";position:absolute;inset:17px;border:1px solid #61c5b812;border-radius:50%;transform:rotateY(35deg)}
.page-ready .orbit-dot{animation:ambient-glow 7s ease-in-out infinite}

@keyframes ambient-glow{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:.9;transform:scale(1.1)}}
.country-card{position:relative;isolation:isolate;transition:transform .65s cubic-bezier(.16,1,.3,1),border-color .45s,box-shadow .5s,background-color .5s;transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d}
.country-card:after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:var(--light-opacity,0);background:radial-gradient(300px circle at var(--light-x,50%) var(--light-y,50%),#65c6b418,transparent 70%);transition:opacity .6s}
.country-card:hover{border-color:#65b8ac66;box-shadow:0 15px 32px -26px #045e5266}
.country-flag{transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .6s;transform:translateZ(10px) rotate(-3deg)}
.country-card:hover .country-flag{transform:translateZ(17px) rotate(1deg);box-shadow:0 8px 16px #153d3717}
.contact-link,.country-social,.copy-button,.theme-toggle,.brand-mark{transition:transform .45s cubic-bezier(.16,1,.3,1),background-color .35s,border-color .35s,box-shadow .45s,color .35s}
.country-social:hover{transform:translateY(-2px);box-shadow:0 6px 12px -8px #0b514f66}.country-social:active,.copy-button:active,.theme-toggle:active{transform:scale(.96)}
.theme-toggle:hover{transform:rotate(12deg)}.theme-toggle .icon{transition:transform .6s cubic-bezier(.16,1,.3,1)}.theme-toggle:active .icon{transform:rotate(-35deg)}
.brand:hover .brand-mark{transform:perspective(500px) rotateY(-9deg) rotateX(5deg)}

.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
::view-transition-old(root){animation:theme-fade .5s ease both}::view-transition-new(root){animation:theme-appear .6s ease both}
@keyframes theme-fade{to{opacity:0}}@keyframes theme-appear{from{opacity:0}to{opacity:1}}
@media(max-width:740px){.identity-halo{width:138px;height:138px;top:-28px;left:-14px}}
@media(prefers-reduced-motion:reduce){.reveal-pending,.reveal-in{opacity:1;transform:none}.country-card,.identity-mark{transform:none!important}*,*:before,*:after{animation:none!important;transition-duration:0s!important}}
.profile-panel.motion-idle .orbit-dot{animation-play-state:paused}
