/* ==========================================================================
   IMEX Group — signature motion: vault dial, pin tumbler, roller shutter,
   key-bitting dividers, keyhole cursor, odometer counters, blueprint hovers.
   ========================================================================== */

/* ---------- Vault dial ---------- */
.vault { position: relative; width: 100%; max-width: 460px; margin-inline: auto; aspect-ratio: 1; }
.vault svg { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 40px 60px rgba(0, 0, 0, .45)); }
.vault-ring, .vault-handle { will-change: transform; }
.vault-glow { opacity: 0; transition: opacity 1s var(--ease); }
.vault.is-open .vault-glow { opacity: 1; animation: vault-pulse 2.4s ease-in-out infinite; }
.vault-led { transition: fill .4s; }
.vault.is-open .vault-led { fill: #22C55E; filter: drop-shadow(0 0 6px #22C55E); }
.vault-readout { position: absolute; inset-inline: 0; bottom: -46px; display: flex; justify-content: center; align-items: center; gap: 12px; font-size: 15px; color: #DCE7F0; letter-spacing: .12em; direction: ltr; }
.vault-readout span { padding: 6px 14px; border-radius: 8px; background: rgba(10, 20, 32, .6); border: 1px solid rgba(140, 200, 238, .25); backdrop-filter: blur(6px); min-width: 150px; text-align: center; }
.vault-readout b { font-size: 12px; padding: 5px 10px; border-radius: 99px; background: rgba(220, 38, 38, .18); color: #FCA5A5; letter-spacing: .08em; transition: all .4s; }
.vault.is-open .vault-readout b { background: rgba(34, 197, 94, .18); color: #86EFAC; }
.vault-sm { max-width: 180px; }
.vault-sm .vault-readout { display: none; }
@keyframes vault-pulse { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }

/* ---------- Hero refresh ---------- */
.hero { padding-block: 90px 110px; }
.hero-vault { position: relative; padding-bottom: 50px; }
.hero-vault::before { content: ""; position: absolute; inset: 6%; border-radius: 50%; border: 1px dashed rgba(140, 200, 238, .3); animation: spin 80s linear infinite; }
.hero-vault::after { content: ""; position: absolute; inset: -4%; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .06); }
.hero-vault .float-card { position: absolute; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; background: rgba(255, 255, 255, .95); color: var(--ink); box-shadow: var(--shadow-lg); font-size: 13px; font-weight: 700; white-space: nowrap; }
.hero-vault .float-card small { display: block; font-weight: 500; color: var(--muted); font-size: 11.5px; }
.hero-vault .float-card .icon-tile { width: 36px; height: 36px; border-radius: 10px; }
.hero-vault .float-card .icon-tile .icon { width: 18px; height: 18px; }
.hero-vault .fc-1 { top: 6%; inset-inline-start: -6%; animation: float 6s ease-in-out infinite; }
.hero-vault .fc-2 { bottom: 18%; inset-inline-end: -8%; animation: float 7s ease-in-out infinite 1s; }
.hero h1 .brand-word { position: relative; display: inline-block; }
.hero h1 .brand-word::after { content: ""; position: absolute; inset-inline: 0; bottom: .02em; height: .1em; border-radius: 4px; background: linear-gradient(90deg, #8CC8EE, transparent); transform: scaleX(0); transform-origin: right; animation: underline 1.2s var(--ease) 1.2s forwards; }
[dir="ltr"] .hero h1 .brand-word::after { transform-origin: left; }
@keyframes underline { to { transform: scaleX(1); } }

/* ---------- Key-bitting section dividers ---------- */
.key-divider { position: absolute; inset-inline: 0; top: -63px; height: 64px; z-index: 3; pointer-events: none; line-height: 0; }
.key-divider svg { width: 100%; height: 100%; display: block; }
.key-divider.is-flipped { top: auto; bottom: -63px; transform: scaleY(-1); }
.kd-edge { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s var(--ease); }
.key-divider.is-drawn .kd-edge { stroke-dashoffset: 0; }

/* ---------- Floating hardware ---------- */
.floaters { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.floater { position: absolute; display: block; color: rgba(43, 103, 140, .10); }
.floaters-dark .floater { color: rgba(140, 200, 238, .12); }
.floater svg { width: 100%; height: auto; animation: floater 18s ease-in-out infinite; }
.floater.f-gear svg { animation: spin 40s linear infinite; animation-direction: normal; }
.floater.f-gear:nth-child(even) svg { animation-direction: reverse; }
.section > .container, .dark-section > .container { position: relative; z-index: 1; }
@keyframes floater { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-18px) rotate(calc(var(--spin, 1) * 12deg)); } }

/* ---------- Kinetic marquee band ---------- */
.kinetic { position: relative; overflow: hidden; padding-block: 34px; background: var(--ink); color: #fff; border-block: 1px solid rgba(255, 255, 255, .06); }
.kinetic-row { display: flex; width: max-content; gap: 34px; white-space: nowrap; will-change: transform; }
.kinetic-row + .kinetic-row { margin-top: 10px; }
.kinetic-row span { font-size: clamp(34px, 6vw, 76px); font-weight: 900; line-height: 1.05; letter-spacing: -.01em; display: inline-flex; align-items: center; gap: 34px; }
.kinetic-row .outline { color: transparent; -webkit-text-stroke: 1.5px rgba(140, 200, 238, .65); }
.kinetic-row .solid { color: #fff; }
.kinetic-row .sep { width: .6em; height: .6em; color: #4C93C0; flex-shrink: 0; }
.kinetic::before, .kinetic::after { content: ""; position: absolute; top: 0; bottom: 0; width: 12%; z-index: 2; pointer-events: none; }
.kinetic::before { left: 0; background: linear-gradient(90deg, var(--ink), transparent); }
.kinetic::after { right: 0; background: linear-gradient(-90deg, var(--ink), transparent); }

/* ---------- Pin-tumbler scrollytelling ---------- */
.how { position: relative; height: 320vh; background: linear-gradient(180deg, #0E1A28, #13283D 50%, #0E1A28); color: #B9C7D6; }
.how-sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; overflow: hidden; }
.how-sticky::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(140, 200, 238, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(140, 200, 238, .06) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse at center, #000 40%, transparent 80%); }
.how-grid { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; width: 100%; }
.how h2 { color: #fff; font-size: clamp(28px, 3.4vw, 44px); margin-block: 12px 14px; }
.how .eyebrow { color: #8CC8EE; }
.how-steps { display: grid; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; counter-reset: step; }
.how-step { position: relative; padding: 16px 18px 16px 18px; padding-inline-start: 64px; border-radius: var(--radius); border: 1px solid rgba(255, 255, 255, .08); background: rgba(255, 255, 255, .03); transition: all .5s var(--ease); opacity: .45; }
.how-step::before { counter-increment: step; content: "0" counter(step); position: absolute; inset-inline-start: 16px; top: 16px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-weight: 900; font-size: 13px; background: rgba(255, 255, 255, .06); color: #8CC8EE; transition: all .5s var(--ease); }
.how-step h3 { color: #fff; font-size: 16.5px; margin-bottom: 4px; }
.how-step p { font-size: 13.5px; }
.how-step.is-active { opacity: 1; background: rgba(76, 147, 192, .14); border-color: rgba(140, 200, 238, .4); transform: translateX(-6px); }
[dir="ltr"] .how-step.is-active { transform: translateX(6px); }
.how-step.is-active::before { background: var(--brand); color: #fff; box-shadow: 0 0 0 6px rgba(76, 147, 192, .2); }
.how-step.is-done { opacity: .75; }
.how-step.is-done::before { content: "✓"; background: rgba(34, 197, 94, .2); color: #86EFAC; }
.how-visual { position: relative; }
.how-visual .tumbler { width: 100%; height: auto; overflow: hidden; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .5)); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 100%); mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 100%); }
.how-progress { position: relative; height: 4px; margin-top: 26px; border-radius: 4px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.how-progress i { position: absolute; inset-block: 0; inset-inline-start: 0; width: 0; background: linear-gradient(90deg, var(--brand-400), #22C55E); border-radius: inherit; }
.how-status { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; font-size: 12px; letter-spacing: .1em; direction: ltr; }
.how-status b { color: #FCA5A5; transition: color .4s; }
.how-status b.ok { color: #86EFAC; }
.tumbler .t-shear { transition: stroke .4s; }
.tumbler.is-aligned .t-shear { stroke: #22C55E; filter: drop-shadow(0 0 6px #22C55E); }
.tumbler.is-aligned .t-shear-label { fill: #22C55E; }
.tumbler .t-led { transition: fill .3s; }
.tumbler.is-open .t-led { fill: #22C55E; filter: drop-shadow(0 0 8px #22C55E); }

/* ---------- Section heading key-cut underline ---------- */
.section-head h2 { position: relative; }
.section-head h2::after { content: ""; display: block; width: 92px; height: 12px; margin-top: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 12'%3E%3Cpath d='M0 2h10l4 8 4-8h8l3 6 3-6h10l4 9 4-9h7l3 5 3-5h12l4 8 4-8h9' fill='none' stroke='%232B678C' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat; transform: scaleX(0); transform-origin: right; transition: transform 1s var(--ease) .4s; }
[dir="ltr"] .section-head h2::after { transform-origin: left; }
.section-head.center h2::after { margin-inline: auto; transform-origin: center; }
.section-head h2.is-visible::after, .is-visible .section-head h2::after, .section-head .is-visible h2::after, .section-head [data-reveal].is-visible h2::after { transform: scaleX(1); }
.dark-section .section-head h2::after, .how .section-head h2::after { filter: brightness(2.2); }

/* ---------- Odometer counters ---------- */
.odo { display: inline-flex; direction: ltr; overflow: hidden; vertical-align: bottom; line-height: 1.1; }
.odo-col { display: inline-block; height: 1.1em; overflow: hidden; }
.odo-strip { display: flex; flex-direction: column; transition: transform 2.2s cubic-bezier(.16, 1, .3, 1); }
.odo-strip span { height: 1.1em; display: block; text-align: center; }
.odo-static { display: inline-block; }

/* ---------- Product card: spotlight + blueprint x-ray ---------- */
.product-card::before { content: ""; position: absolute; inset: -1px; z-index: 4; border-radius: inherit; padding: 1.5px; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(260px circle at var(--sx, 50%) var(--sy, 50%), var(--brand-400), transparent 60%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.product-card:hover::before { opacity: 1; }
.product-media .pc-xray { position: absolute; inset: 0; display: grid; place-items: center; background: #133049; clip-path: inset(0 100% 0 0); transition: clip-path .7s var(--ease); z-index: 1; pointer-events: none; }
[dir="rtl"] .product-media .pc-xray { clip-path: inset(0 0 0 100%); }
.product-media .pc-xray img { width: 100%; height: 100%; object-fit: cover; filter: none !important; transform: none !important; }
.product-media .pc-xray::after { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; inset-inline-start: 0; background: #8CC8EE; box-shadow: 0 0 16px 4px rgba(140, 200, 238, .7); opacity: 0; }
.product-card:hover .pc-xray { clip-path: inset(0 0 0 0); }
.product-card:hover .pc-xray::after { animation: xray-scan 1.8s ease-in-out infinite .6s; }
.product-media .xray-tag { position: absolute; bottom: 12px; inset-inline-end: 12px; z-index: 2; padding: 4px 9px; border-radius: 6px; background: rgba(10, 20, 32, .75); color: #8CC8EE; font-size: 10.5px; letter-spacing: .12em; opacity: 0; transform: translateY(6px); transition: all .4s var(--ease) .2s; direction: ltr; }
.product-card:hover .xray-tag { opacity: 1; transform: none; }
.product-badges, .wish-btn { z-index: 3; }
@keyframes xray-scan { 0% { inset-inline-start: 0; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { inset-inline-start: 100%; opacity: 0; } }

/* ---------- Category tile: shackle pops open ---------- */
.cat-tile .icon-tile { position: relative; overflow: visible; }
.cat-tile .icon-tile::after { content: ""; position: absolute; inset: -6px; border-radius: 22px; border: 2px dashed rgba(43, 103, 140, .35); opacity: 0; transform: scale(.8) rotate(0); transition: all .6s var(--ease); }
.cat-tile:hover .icon-tile::after { opacity: 1; transform: scale(1) rotate(45deg); }

/* ---------- Vault CTA ---------- */
.vault-cta { position: relative; overflow: hidden; border-radius: var(--radius-xl); padding: 56px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: center; color: #B9C7D6; background: radial-gradient(600px 300px at 80% 50%, rgba(76, 147, 192, .3), transparent 70%), linear-gradient(130deg, #0E1A28, #1C3B55); box-shadow: var(--shadow-lg); }
.vault-cta h2 { color: #fff; font-size: clamp(26px, 3vw, 38px); margin-block: 10px 12px; }
.vault-cta .eyebrow { color: #8CC8EE; }
.vault-cta .actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.vault-cta .vault { max-width: 300px; }
.vault-cta .vault-readout { display: none; }

/* ---------- Custom keyhole cursor ---------- */
.cursor-dot, .cursor-ring { position: fixed; top: 0; left: 0; z-index: 2000; pointer-events: none; border-radius: 50%; opacity: 0; transition: opacity .3s, width .35s var(--ease), height .35s var(--ease), background-color .3s, border-color .3s; }
.has-cursor .cursor-dot, .has-cursor .cursor-ring { opacity: 1; }
.cursor-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--brand); }
.cursor-ring { width: 36px; height: 36px; margin: -18px 0 0 -18px; border: 1.5px solid rgba(43, 103, 140, .55); display: grid; place-items: center; }
.cursor-ring svg { width: 14px; height: 20px; color: #fff; opacity: 0; transform: scale(.5); transition: all .35s var(--ease); }
/* hovering a link: an outline ring around it, never a filled disc on top of the text */
.cursor-hover .cursor-ring { width: 26px; height: 26px; margin: -13px 0 0 -13px; background: transparent; border: 2px solid #F5B301; box-shadow: 0 0 0 1px rgba(15, 27, 42, .35), 0 0 10px rgba(245, 179, 1, .45); }
.cursor-hover .cursor-ring svg { opacity: 0; }
.cursor-hover .cursor-dot { opacity: 1; background: #F5B301; box-shadow: 0 0 0 1px rgba(15, 27, 42, .4); }
.cursor-text .cursor-ring, .cursor-text .cursor-dot { opacity: 0; }
.cursor-down .cursor-ring { transform: scale(.85); }
.cursor-dark .cursor-ring { border-color: rgba(140, 200, 238, .7); }
.cursor-dark .cursor-dot { background: #8CC8EE; }

/* ---------- Roller-shutter page transition ---------- */
.shutter { position: fixed; inset: 0; z-index: 1500; pointer-events: none; display: flex; flex-direction: column; }
.shutter > i { flex: 1; display: block; background: linear-gradient(180deg, #3A4B5F 0%, #2A394B 45%, #1E2A3B 55%, #2C3B4E 100%); border-bottom: 1px solid #101A26; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); transform: translateY(-110vh); transition: transform .6s cubic-bezier(.7, 0, .3, 1); transition-delay: calc(var(--n) * 28ms); }
/* The logo rides on the middle slat: it comes down with the curtain and goes back up with it. */
.shutter-brand { position: absolute; top: 50%; left: 50%; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; transform: translate(-50%, -50%) translateY(-110vh); transition: transform .6s cubic-bezier(.7, 0, .3, 1) calc(8 * 28ms); }
.shutter-brand .glow-wordmark { width: 240px; max-width: 70vw; }
.shutter.is-down { pointer-events: auto; }
.shutter.is-down > i { transform: none; }
.shutter.is-down .shutter-brand { transform: translate(-50%, -50%); }
html.shutter-in .shutter > i { transform: none; transition: none; }
html.shutter-in .shutter .shutter-brand { transform: translate(-50%, -50%); transition: none; }
.shutter.is-lifting > i { transform: translateY(-110vh); transition-delay: calc((16 - var(--n)) * 24ms); }
.shutter.is-lifting .shutter-brand { transform: translate(-50%, -50%) translateY(-110vh); transition-delay: calc(8 * 24ms); }
/* ---------- Vault-door preloader ---------- */
.vault-loader { position: fixed; inset: 0; z-index: 1600; display: flex; pointer-events: none; }
.vault-loader .door { flex: 1; position: relative; background: linear-gradient(135deg, #2C3A4C, #121D2A); transition: transform 1.1s cubic-bezier(.77, 0, .18, 1); }
.vault-loader .door::before { content: ""; position: absolute; inset: 0; background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 60px); }
.vault-loader .door-left { box-shadow: inset -2px 0 0 #0A121C; }
.vault-loader .door-left .bolts, .vault-loader .door-right .bolts { position: absolute; top: 50%; display: grid; gap: 70px; transform: translateY(-50%); }
.vault-loader .door-left .bolts { right: 0; }
.vault-loader .door-right .bolts { left: 0; }
.vault-loader .bolts span { width: 60px; height: 22px; border-radius: 11px; background: linear-gradient(180deg, #E9EEF3, #7E8891); transition: transform .5s var(--ease); }
.vault-loader .door-left .bolts span { transform: translateX(30px); }
.vault-loader .door-right .bolts span { transform: translateX(-30px); }
.vault-loader .center { position: absolute; top: 50%; left: 50%; width: min(260px, 50vw); transform: translate(-50%, -50%); z-index: 2; transition: opacity .4s, transform 1s var(--ease); }
.vault-loader .center .vault { max-width: none; }
.vault-loader .center .vault-readout { display: none; }
.vault-loader.is-unlocking .bolts span { transform: none !important; }
.vault-loader.is-open .door-left { transform: translateX(-102%); }
.vault-loader.is-open .door-right { transform: translateX(102%); }
.vault-loader.is-open .center { opacity: 0; transform: translate(-50%, -50%) scale(1.4); }
.vault-loader.is-gone, .no-loader .vault-loader { display: none; }
.no-js .vault-loader, .no-js .shutter { display: none; }
/* Hide the native pointer only where the keyhole cursor replaces it. */
.has-cursor body, .has-cursor a, .has-cursor button, .has-cursor label, .has-cursor select { cursor: none; }

/* ---------- Magnetic buttons ---------- */
[data-magnetic] { transition: transform .35s var(--ease); will-change: transform; }

/* ---------- Page head decoration (inner pages) ---------- */
.page-head-card .head-gear { position: absolute; width: 180px; inset-inline-end: 4%; top: 50%; margin-top: -90px; color: rgba(43, 103, 140, .08); animation: spin 30s linear infinite; pointer-events: none; }

@media (max-width: 1024px) {
    .how { height: auto; }
    .how-sticky { position: relative; height: auto; padding-block: 70px; }
    .how-grid { grid-template-columns: 1fr; gap: 30px; }
    .vault-cta { grid-template-columns: 1fr; padding: 34px; text-align: start; }
    .vault-cta .vault { max-width: 220px; }
    .hero-vault { max-width: 380px; margin-inline: auto; }
}
@media (max-width: 760px) {
    .hero-vault { display: block; max-width: 300px; margin-top: 30px; }
    .hero-vault .float-card { display: none; }
    .key-divider { height: 34px; top: -33px; }
    .key-divider.is-flipped { bottom: -33px; }
    .kinetic { padding-block: 22px; }
}
@media (hover: none), (pointer: coarse) {
    .cursor-dot, .cursor-ring { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .vault-loader, .shutter, .cursor-dot, .cursor-ring { display: none !important; }
    .kd-edge { stroke-dashoffset: 0; }
    .how { height: auto; }
    .how-sticky { position: relative; height: auto; padding-block: 70px; }
}

/* Footer hosts a key divider above its top edge. */
.site-footer { overflow: visible; }
.contact-hero .container { position: relative; z-index: 1; }

/* The footer's key-cut edge gets its own space instead of covering the last section's content. */
main { padding-bottom: 64px; }
.page-contact main { padding-bottom: 0; }
.page-contact .site-footer > .key-divider { display: none; }
@media (max-width: 760px) { main { padding-bottom: 34px; } }

/* ---------- Account: partner profile banner ---------- */
.profile-hero { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--radius-xl); padding: 34px 34px 26px; color: #B9C7D6; background: radial-gradient(700px 320px at var(--mx, 85%) var(--my, 10%), rgba(76, 147, 192, .35), transparent 65%), linear-gradient(135deg, #0E1A28, #16283B 55%, #1C3B55); box-shadow: var(--shadow-lg); }
.profile-hero .hero-grid-bg { z-index: -1; }
.ph-gear { position: absolute; width: 240px; inset-inline-end: -60px; top: -70px; color: rgba(140, 200, 238, .08); animation: spin 40s linear infinite; z-index: -1; }
.ph-main { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; position: relative; }
.ph-avatar { position: relative; width: 116px; height: 116px; flex-shrink: 0; display: grid; place-items: center; }
.ph-ring { position: absolute; inset: -8px; border-radius: 50%; border: 2px dashed rgba(140, 200, 238, .55); animation: spin 18s linear infinite; }
.ph-ring::after { content: ""; position: absolute; top: -6px; left: 50%; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: #F5B301; box-shadow: 0 0 10px #F5B301; }
.ph-initials { width: 100%; height: 100%; border-radius: 50%; display: grid; place-items: center; font-size: 38px; font-weight: 900; color: #fff; background: linear-gradient(140deg, var(--brand-400), var(--brand-800)); box-shadow: 0 20px 40px -14px rgba(0, 0, 0, .6), inset 0 2px 0 rgba(255, 255, 255, .2); animation: pop-in .9s var(--ease) both .2s; }
.ph-avatar .online { position: absolute; bottom: 4px; inset-inline-end: 4px; width: 28px; height: 28px; border-radius: 50%; background: #22C55E; border: 4px solid #16283B; display: grid; place-items: center; color: #fff; }
.ph-avatar .online .icon { width: 12px; height: 12px; }
.ph-info { flex: 1; min-width: 260px; }
.ph-welcome { font-size: 13px; color: #8CC8EE; font-weight: 700; }
.ph-info h1 { color: #fff; font-size: clamp(24px, 3vw, 34px); margin-block: 4px 10px; }
.ph-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.ph-info > p { font-size: 14.5px; margin-bottom: 8px; }
.ph-contacts { display: flex; gap: 20px; flex-wrap: wrap; font-size: 13.5px; }
.ph-contacts span { display: inline-flex; align-items: center; gap: 6px; }
.ph-contacts .icon { width: 16px; height: 16px; color: #8CC8EE; }
.ph-logout { align-self: flex-start; }
.ph-stats { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .08); }
.ph-stat { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--radius); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .09); transition: all .4s var(--ease); }
a.ph-stat:hover { background: rgba(255, 255, 255, .1); border-color: rgba(140, 200, 238, .4); transform: translateY(-3px); }
.ph-stat .icon-tile { background: rgba(76, 147, 192, .2); color: #8CC8EE; }
.ph-stat strong { display: block; color: #fff; font-size: 24px; font-weight: 900; line-height: 1.1; }
.ph-stat small { font-size: 12.5px; }
@media (max-width: 1024px) { .ph-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
    .profile-hero { padding: 24px 18px; }
    .ph-main { flex-direction: column; align-items: flex-start; }
    .ph-avatar { width: 92px; height: 92px; }
    .ph-initials { font-size: 30px; }
}

/* ---------- Paint-roller preloader: a roller paints the iMEX wordmark in the logo blue ---------- */
.weld { --p: 0%; --rx: -14%; position: absolute; top: 50%; left: 50%; z-index: 2; width: min(560px, 80vw); aspect-ratio: 732 / 156; transform: translate(-50%, -50%); direction: ltr; container-type: inline-size; }
.weld i { position: absolute; inset: 0; -webkit-mask: var(--wm-fill) center / contain no-repeat; mask: var(--wm-fill) center / contain no-repeat; transition: opacity .5s ease; }
/* pencil marking of the letters still to be painted */
.weld-ghost { -webkit-mask-image: var(--wm-outline) !important; mask-image: var(--wm-outline) !important; background: rgba(255, 255, 255, .22); }
/* faint band the roller leaves on the plate itself; it dries away once the logo is done */
.paint-track {
    position: absolute; left: -4%; top: -15%; height: 130%; width: calc(var(--p) + 4%); border-radius: 1.4cqw;
    background: repeating-linear-gradient(180deg, rgba(76, 147, 192, .09) 0 2px, rgba(76, 147, 192, .17) 2px 5px);
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
    transition: opacity 1s ease;
}
/* the paint: logo blue with a fine roller-nap texture, laid down up to the roller */
.paint-coat {
    background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 4px), linear-gradient(180deg, #43A1D3 0%, #237CAB 42%, #175F87 100%);
    clip-path: inset(0 calc(100% - var(--p)) 0 0);
}
/* wet sheen right behind the roller */
.paint-wet { background: linear-gradient(90deg, rgba(255, 255, 255, 0) calc(var(--p) - 22%), rgba(255, 255, 255, .38) calc(var(--p) - 4%), rgba(255, 255, 255, 0) var(--p)); }
.weld-shine { background: linear-gradient(100deg, rgba(255, 255, 255, 0) 35%, rgba(255, 255, 255, .95) 50%, rgba(255, 255, 255, 0) 65%) no-repeat 100% 0 / 250% 100%; opacity: 0; }
.is-welded .weld-shine { opacity: 1; animation: weld-shine .8s var(--ease) .15s 1 both; }
.is-welded .paint-wet, .is-welded .paint-track, .is-welded .weld-ghost { opacity: 0; }
.is-welded .paint-coat { animation: paint-dry .9s ease 1; }
.paint-tag { position: absolute; top: 116%; left: 0; right: 0; text-align: center; font-size: max(11px, 2.5cqw); font-weight: 700; letter-spacing: .9em; text-transform: uppercase; color: #8CC8EE; opacity: 0; transition: opacity .7s ease .35s, letter-spacing 1s var(--ease) .35s; }
.is-welded .paint-tag { opacity: .9; letter-spacing: .42em; }
.is-welded .roller { opacity: 0; transition: opacity .4s ease .25s; }
/* the roller: a vertical nap cover on a steel frame with a teal grip */
.roller { position: absolute; left: var(--rx); top: -15%; height: 130%; width: 0; z-index: 3; transform: translateY(var(--bob, 0px)); transition: opacity .45s ease; }
.roller-cover {
    position: absolute; top: 0; bottom: 0; left: -3.6cqw; width: 7.2cqw; border-radius: 1.6cqw;
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .17) 0 1.5px, rgba(0, 0, 0, .14) 1.5px 4px) var(--roll, 0px) 0, linear-gradient(90deg, #0F4561, #2A84B6 32%, #5DB4E2 50%, #2A82B4 70%, #0D3D57);
    box-shadow: 0 1.6cqw 3.2cqw rgba(0, 0, 0, .5);
}
.roller-cover::before, .roller-cover::after { content: ""; position: absolute; left: -.5cqw; right: -.5cqw; height: 1.4cqw; border-radius: .6cqw; background: linear-gradient(90deg, #5E6B78, #E6EBF0 50%, #5E6B78); }
.roller-cover::before { top: -.7cqw; }
.roller-cover::after { bottom: -.7cqw; }
.roller-frame { position: absolute; top: calc(100% + .3cqw); left: -2.2cqw; width: 22cqw; height: 35.2cqw; max-width: none; overflow: visible; filter: drop-shadow(0 1.5cqw 1.5cqw rgba(0, 0, 0, .5)); }
.weld-sparks { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; pointer-events: none; }
@keyframes weld-shine { from { background-position: 100% 0; } to { background-position: 0% 0; } }
@keyframes paint-dry { 0% { filter: brightness(1.25) saturate(1.2); } 100% { filter: none; } }
@media (max-width: 760px) { .weld { width: 84vw; } }
/* Weld preloader exit: the plate opens as an iris from the logo, the logo flies onto the header logo */
.weld-plate {
    --r: 0px; --ox: 50%; --oy: 50%;
    position: absolute; inset: 0; z-index: 0;
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 7px), linear-gradient(180deg, rgba(255, 255, 255, .05), transparent 40%, rgba(0, 0, 0, .25)), linear-gradient(135deg, #243240, #0F1822);
    -webkit-mask-image: radial-gradient(circle at var(--ox) var(--oy), transparent var(--r), #000 calc(var(--r) + 1.5px));
    mask-image: radial-gradient(circle at var(--ox) var(--oy), transparent var(--r), #000 calc(var(--r) + 1.5px));
}
/* glowing blue rim of the opening */
.weld-plate::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at var(--ox) var(--oy), transparent calc(var(--r) - 1px), rgba(120, 190, 235, .9) var(--r), rgba(43, 103, 140, .3) calc(var(--r) + 10px), transparent calc(var(--r) + 26px)); opacity: 0; transition: opacity .3s; }
.is-landing .weld-plate::after { opacity: 1; }
.weld-loader { display: block; }
.weld-loader .weld { transition: none; }
.is-landing .weld-ghost, .is-landing .paint-tag { opacity: 0; transition: opacity .25s; }
.is-landing .weld-sparks, .is-landing .roller { opacity: 0; transition: opacity .3s; }
.is-welding .site-header .logo img { opacity: 0; }
.site-header .logo img { transition: opacity .35s ease, height .35s var(--ease), transform .35s var(--ease); }
/* ---------- Hero: glowing company wordmark (replaces the vault dial) ---------- */
.hero-logo { width: 100%; max-width: 500px; margin-inline: auto; aspect-ratio: 1; padding-bottom: 0; display: grid; place-items: center; }
.logo-glow { position: relative; width: 100%; height: 100%; display: grid; place-items: center; align-content: center; gap: 18px; }
.lg-halo { position: absolute; inset: 14%; border-radius: 50%; background: radial-gradient(circle, rgba(76, 147, 192, .55) 0%, rgba(43, 103, 140, .22) 40%, transparent 70%); filter: blur(10px); animation: lg-breathe 4.5s ease-in-out infinite; }
.lg-ring { position: absolute; border-radius: 50%; pointer-events: none; }
.lg-ring-1 { inset: 9%; border: 1px solid rgba(140, 200, 238, .18); }
.lg-ring-2 { inset: 18%; border: 1.5px dashed rgba(140, 200, 238, .3); animation: spin 40s linear infinite; }
.lg-ring-3 { inset: 27%; border: 1px solid rgba(140, 200, 238, .12); }
.lg-ring-2::after { content: ""; position: absolute; top: -5px; left: 50%; width: 9px; height: 9px; margin-left: -4.5px; border-radius: 50%; background: #8CC8EE; box-shadow: 0 0 14px 3px rgba(140, 200, 238, .9); }
.lg-word { position: relative; z-index: 1; width: 86%; aspect-ratio: 732 / 156; direction: ltr; filter: drop-shadow(0 0 18px rgba(76, 147, 192, .55)) drop-shadow(0 20px 30px rgba(0, 0, 0, .45)); animation: lg-glow 4.5s ease-in-out infinite; }
.lg-word i { position: absolute; inset: 0; -webkit-mask: url("../images/wordmark-fill.png") center / contain no-repeat; mask: url("../images/wordmark-fill.png") center / contain no-repeat; }
.lg-metal { background: linear-gradient(180deg, #A9CDE4 0%, #7DB5D8 22%, #4C93C0 58%, #1C4766 100%); }
.lg-edge { -webkit-mask-image: url("../images/wordmark-outline.png") !important; mask-image: url("../images/wordmark-outline.png") !important; background: #B9DDF4; opacity: .7; }
.lg-shine { background: linear-gradient(100deg, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, .95) 50%, rgba(255, 255, 255, 0) 62%) no-repeat 100% 0 / 250% 100%; animation: lg-sweep 4.5s ease-in-out infinite; }
.lg-tag { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; direction: ltr; color: #CFE5F3; font-size: clamp(13px, 1.6vw, 17px); font-weight: 800; font-style: italic; letter-spacing: .18em; text-transform: uppercase; }
.lg-tag::before, .lg-tag::after { content: ""; width: 42px; height: 1.5px; background: linear-gradient(90deg, transparent, #8CC8EE); }
.lg-tag::after { transform: scaleX(-1); }
@keyframes lg-breathe { 0%, 100% { opacity: .65; transform: scale(.94); } 50% { opacity: 1; transform: scale(1.06); } }
@keyframes lg-glow { 0%, 100% { filter: drop-shadow(0 0 12px rgba(76, 147, 192, .45)) drop-shadow(0 20px 30px rgba(0, 0, 0, .45)); } 50% { filter: drop-shadow(0 0 28px rgba(140, 200, 238, .85)) drop-shadow(0 20px 30px rgba(0, 0, 0, .45)); } }
@keyframes lg-sweep { 0%, 35% { background-position: 100% 0; } 75%, 100% { background-position: 0% 0; } }
@media (prefers-reduced-motion: reduce) { .lg-halo, .lg-ring-2, .lg-word, .lg-shine { animation: none; } }

/* ---------- Glowing see-through wordmark (footer, page shutter): outline glow + a light sweeping right to left ---------- */
/* masks inlined so the logo is ready the instant the shutter shows it */
:root { --wm-fill: url("data:image/png;base64,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"); --wm-outline: url("data:image/png;base64,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"); }
.glow-wordmark { position: relative; display: block; width: 190px; max-width: 100%; aspect-ratio: 732 / 156; }
.glow-wordmark::before, .glow-wordmark > i {
    position: absolute; inset: 0;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center;
}
.glow-wordmark::before {
    content: ""; z-index: 1;
    -webkit-mask-image: var(--wm-outline); mask-image: var(--wm-outline);
    background: rgba(140, 200, 238, .85);
    filter: drop-shadow(0 0 6px rgba(76, 147, 192, .7));
}
/* One painted layer (no separate GPU strip, which drifted away from the moving shutter).
   The sweep runs on a shared clock (--sweep-sync, set before first paint) so it carries on across pages instead of restarting. */
.glow-wordmark > i {
    display: block; -webkit-mask-image: var(--wm-fill); mask-image: var(--wm-fill);
    background-color: rgba(140, 200, 238, .12);
    background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, .9) 50%, rgba(255, 255, 255, 0) 70%);
    background-size: 250% 100%; background-repeat: no-repeat; background-position: 0% 0;
    animation: glow-sweep-rtl 3s ease-in-out infinite; animation-delay: var(--sweep-sync-3, 0s);
}
@keyframes glow-sweep-rtl { 0% { background-position: 0% 0; } 70%, 100% { background-position: 100% 0; } }
.glow-tag { font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: .32em; text-transform: uppercase; color: rgba(140, 200, 238, .75); direction: ltr; }
.shutter-brand .glow-tag { font-size: 12px; }
.shutter-brand .glow-wordmark > i { animation-duration: 2s; animation-delay: var(--sweep-sync-2, 0s); }
@media (prefers-reduced-motion: reduce) { .glow-wordmark > i { animation: none; } }
