/* ANON Cambodia — motion layer. Everything here is decorative and disabled for prefers-reduced-motion. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: m-vt-out .32s cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root) { animation: m-vt-in .55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes m-vt-out { to { opacity: 0; transform: translateY(-12px); } }
@keyframes m-vt-in { from { opacity: 0; transform: translateY(18px); } }

/* scroll reveals */
.js-motion [data-reveal] { opacity: 0; transform: translate3d(0,44px,0); transition: opacity 1s cubic-bezier(.2,.8,.2,1) var(--rd,0ms), transform 1s cubic-bezier(.2,.8,.2,1) var(--rd,0ms), background .3s ease, border-color .3s ease, color .3s ease, box-shadow .3s ease !important; }
.js-motion [data-reveal]:has(.m-split) { transform: none; }
.js-motion [data-reveal].m-in { opacity: 1; transform: none; }

/* image unveil */
.js-motion [data-reveal-img] { clip-path: inset(14% 8% 14% 8%); transition: clip-path 1.3s cubic-bezier(.2,.8,.2,1); }
.js-motion [data-reveal-img] img { scale: 1.16; transition: scale 1.7s cubic-bezier(.2,.8,.2,1); }
.js-motion [data-reveal-img].m-in { clip-path: inset(0); }
.js-motion [data-reveal-img].m-in img { scale: 1; }
.js-motion [data-tilt] { transition: clip-path 1.3s cubic-bezier(.2,.8,.2,1), rotate .6s cubic-bezier(.2,.8,.2,1), transform .5s cubic-bezier(.2,.8,.2,1) !important; }

/* word-by-word headings */
.m-split .m-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.m-split .m-wi { display: inline-block; transform: translateY(108%); transition: transform 1.05s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--wi,0) * 45ms + var(--rd,0ms)); }
.m-split.m-in .m-wi { transform: none; }

/* scroll progress + smart nav */
.m-progress { position: fixed; left: 0; top: 0; width: 100%; height: 2px; background: #1E6B38; transform-origin: 0 50%; transform: scaleX(0); z-index: 70; pointer-events: none; }
.js-motion [data-nav] { transition: background .35s ease, color .35s ease, box-shadow .35s ease, transform .5s cubic-bezier(.2,.8,.2,1) !important; }
.m-nav-hidden [data-nav] { transform: translateY(-100%); }
.js-motion [data-toolbar] { transition: top .5s cubic-bezier(.2,.8,.2,1); }
.m-nav-hidden [data-toolbar] { top: 0 !important; }
@media (min-width: 1024px) {
  .js-motion [data-sidebar] { transition: top .5s cubic-bezier(.2,.8,.2,1); }
  .m-nav-hidden [data-sidebar] { top: 88px !important; }
}

/* seal cursor + incense motes (fine pointers only, created by JS) */
.m-cursor { position: fixed; left: 0; top: 0; width: 64px; height: 64px; margin: -32px 0 0 -32px; pointer-events: none; z-index: 120; opacity: 0; transition: opacity .35s ease; will-change: transform; }
.m-cursor.on { opacity: 1; }
.m-cursor .m-ring { position: absolute; inset: 0; background: #1E6B38; opacity: .85; -webkit-mask: url(../img/seal-ring.webp) center/contain no-repeat; mask: url(../img/seal-ring.webp) center/contain no-repeat; transition: background .35s ease, scale .5s cubic-bezier(.2,.8,.2,1), opacity .35s ease; will-change: rotate; }
.m-cursor .m-core { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #1E6B38; box-shadow: 0 0 12px 3px rgba(30,107,56,.45); transition: background .35s ease, box-shadow .35s ease, opacity .3s ease, scale .4s cubic-bezier(.2,.8,.2,1); }
.m-cursor .m-mark { position: absolute; inset: 29%; background: #1E6B38; -webkit-mask: url(../img/anon-mark.webp) center/contain no-repeat; mask: url(../img/anon-mark.webp) center/contain no-repeat; opacity: 0; scale: .5; transition: opacity .35s ease, scale .5s cubic-bezier(.2,.8,.2,1), background .35s ease; }
.m-cursor.hover .m-ring { scale: 1.32; opacity: 1; }
.m-cursor.hover .m-core { opacity: 0; scale: 0; }
.m-cursor.hover .m-mark { opacity: 1; scale: 1; }
.m-cursor.down .m-ring { scale: .86; }
.m-cursor.dark .m-ring, .m-cursor.dark .m-mark { background: #E6EDE8; }
.m-cursor.dark .m-core { background: #FAF9F6; box-shadow: 0 0 14px 4px rgba(250,249,246,.45); }
.m-mote { position: fixed; left: 0; top: 0; width: 4px; height: 4px; margin: -2px 0 0 -2px; border-radius: 50%; pointer-events: none; z-index: 119; background: #1E6B38; box-shadow: 0 0 8px 2px rgba(30,107,56,.35); }
.m-mote.dark { background: #FAF9F6; box-shadow: 0 0 10px 3px rgba(250,249,246,.4); }

/* button shimmer */
.m-sheen { position: relative; overflow: hidden; isolation: isolate; }
.m-sheen::after { content: ""; position: absolute; top: 0; bottom: 0; left: -80%; width: 50%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-20deg); pointer-events: none; }
.m-sheen:hover::after { left: 140%; transition: left .9s cubic-bezier(.2,.8,.2,1); }

/* card glare */
.ptile, [data-tilt] { transform-style: preserve-3d; }
.ptile::after, [data-tilt]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 1; background: radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.4), transparent 45%); opacity: 0; transition: opacity .35s ease; }
.ptile:hover::after, [data-tilt]:hover::after { opacity: 1; }
.js-motion .ptile { transition: box-shadow .4s ease, rotate .6s cubic-bezier(.2,.8,.2,1) !important; }

/* hero life */
.js-motion [data-hero-art] img { animation: m-float 7s ease-in-out infinite; }
@keyframes m-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
[data-hero-art] > div[style*="polygon(38% 0"] { animation: m-shaft 5s ease-in-out infinite; }
@keyframes m-shaft { 0%, 100% { opacity: .7; } 50% { opacity: 1; } }
div:hover > div[style*="animation:marquee"] { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .m-cursor, .m-mote, .m-progress { display: none; }
}
