/* Refined travel details and a shared, gentle motion rhythm. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-time:520ms}
html.lenis{scroll-behavior:auto!important}
.ribbon{transform:none;overflow:visible;background:#dceefa;border-color:#b7d2e6}
.ribbon>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(1390px,92%);margin:0 auto;padding:24px 0;gap:22px;font-size:clamp(16px,1.55vw,24px);line-height:1.55}
.ribbon .ribbon-item{display:flex;align-items:center;justify-content:center;gap:15px;min-width:0;color:var(--forest);font:inherit}
.ribbon .ribbon-item>span{font:inherit;color:inherit;white-space:normal;text-wrap:balance}
.ribbon .ribbon-item>i{font-family:var(--sans);font-size:21px;line-height:1;font-style:normal;color:#6293ba;flex:none}
.skill-pills span{font-weight:800!important;color:#214d71;border-color:#aac8df;background:#ffffff45;letter-spacing:.01em}
.contact-footer{position:relative;isolation:isolate;overflow:hidden}
.footer-world-map{position:absolute;width:min(1320px,100%);max-width:none;height:auto;left:50%;top:48%;transform:translate(-50%,-50%);opacity:.19;pointer-events:none;z-index:-2;mix-blend-mode:multiply}
.contact-footer::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#cfe7f830,#cfe7f869 50%,#cfe7f824)}
.footer-grid,.footer-bottom{position:relative;z-index:1}
.contact-details h2{font-size:clamp(32px,3vw,44px);line-height:1.3;text-wrap:balance}
.contact-label{margin-bottom:0}
.contact-apps{display:flex;flex-wrap:wrap;gap:23px;margin-top:21px}
.contact-app{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#274f70;border-radius:20px;padding:4px 2px;transition:transform .45s var(--motion-ease),color .3s}
.contact-app-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#f5fbffdf;border:1px solid #a5c5df88;box-shadow:0 3px 10px #28557708;transition:transform .5s var(--motion-ease),box-shadow .4s,background .3s}
.contact-app svg{display:block;width:23px;height:23px;fill:currentColor}
.contact-app-wechat .contact-app-icon{color:#249646}.contact-app-zalo .contact-app-icon{color:#0875dd}.contact-app-whatsapp .contact-app-icon{color:#258c58}.contact-app-line .contact-app-icon{color:#19943a}
.contact-app:hover .contact-app-icon,.contact-app.copied .contact-app-icon{transform:translateY(-4px) rotate(-5deg);background:white;box-shadow:0 7px 17px #28557718}
.contact-app:active{transform:scale(.96)}
.contact-app-hint{font-size:11px;line-height:1.65;color:#58768f;margin-top:10px}
.contact-app.copied{color:#207a55}.copy-phone.copied{background:#e0f4ed;border-color:#6ba58a}
.contact-details .phone-row{margin-top:22px}.contact-details .contact-location{margin-top:20px}
.button,.text-link,.circle-button,.copy-phone,.country-tabs button,.route-filters button,.language-switch button,.album-grid-photo,.album-thumbs button,.gallery-prev,.gallery-next{transition:transform .45s var(--motion-ease),box-shadow .45s var(--motion-ease),background-color .35s,color .35s,border-color .35s,opacity .35s}
.button:active,.circle-button:active,.copy-phone:active,.route-filters button:active,.language-switch button:active,.country-tabs button:active{transform:scale(.97)}
.button span,.text-link span{transition:transform .5s var(--motion-ease)}
.button:hover span,.text-link:hover span{transform:translate(3px,-2px)}
.desktop-nav a::after{transition:transform .5s var(--motion-ease),opacity .4s}
.route-card,.polaroid,.image-zoom img,.hero-portrait,.about-photo,.feedback-snapshot{transition:transform .7s var(--motion-ease),box-shadow .6s var(--motion-ease),border-color .4s}
.route-grid{align-content:start}
.js-ready .reveal{transition:opacity 950ms var(--motion-ease),transform 950ms var(--motion-ease)}
.mobile-nav{transition:opacity .45s var(--motion-ease),transform .6s var(--motion-ease),visibility .6s}
.mobile-nav a{transition:transform .55s var(--motion-ease),opacity .4s}
.mobile-nav:not(.open) a{transform:translateY(12px);opacity:0}.mobile-nav.open a{transform:none;opacity:1}
.mobile-nav.open a:nth-child(2){transition-delay:35ms}.mobile-nav.open a:nth-child(3){transition-delay:70ms}.mobile-nav.open a:nth-child(4){transition-delay:105ms}.mobile-nav.open a:nth-child(5){transition-delay:140ms}
dialog[open]{animation:harry-dialog-in .48s var(--motion-ease)}
dialog[open]::backdrop{animation:harry-backdrop-in .4s ease}
dialog[data-closing]::backdrop{animation:harry-backdrop-out .28s ease forwards}
@keyframes harry-dialog-in{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes harry-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes harry-backdrop-out{from{opacity:1}to{opacity:0}}
.album-image-wrap .photo-ghost{position:absolute;top:0;left:0;width:100%;pointer-events:none;z-index:1}
.gallery-prev,.gallery-next{z-index:3}
.intro-flight{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden;contain:strict}
.intro-plane{position:absolute;left:-28px;top:-28px;width:56px;height:56px;opacity:0;filter:drop-shadow(0 7px 5px #28557724);will-change:transform,opacity}
.intro-plane svg{display:block;width:100%;height:100%;overflow:visible}
@media(min-width:1500px){.contact-apps{gap:28px}.contact-app{font-size:14px}.contact-app-icon{width:41px;height:41px}.contact-app svg{width:25px;height:25px}}
@media(max-width:1000px){.ribbon>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 30px;padding:24px 0;font-size:21px}.ribbon .ribbon-item{justify-content:flex-start}.footer-world-map{width:135%;top:53%;opacity:.18}}
@media(max-width:640px){.ribbon>div{width:calc(100% - 40px);font-size:17px;gap:18px 20px;padding:25px 0}.ribbon .ribbon-item{align-items:flex-start;gap:9px}.ribbon .ribbon-item>i{font-size:17px;margin-top:5px}.footer-world-map{width:180%;left:40%;top:44%;opacity:.17}.contact-details h2{font-size:32px;max-width:100%}.contact-apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.contact-app{justify-self:start}.contact-app{gap:6px;font-size:12px}.contact-app-icon{width:33px;height:33px;border-radius:10px}.contact-app svg{width:21px;height:21px}.contact-app-hint{font-size:10px}.intro-plane{width:45px;height:45px;left:-22.5px;top:-22.5px}}
@media(max-width:370px){.ribbon>div{grid-template-columns:1fr;font-size:19px;gap:16px}.ribbon .ribbon-item{justify-content:center}.contact-details h2{font-size:29px}.contact-apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.contact-app{justify-self:start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}.intro-flight{display:none}.js-ready .reveal{opacity:1;transform:none}}
