/* Shared reset + motion primitives (agency site and showcase demos) */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-60px;z-index:1000;padding:10px 16px;background:#fff;color:#000;border-radius:4px;transition:top .2s}
.skip:focus{top:16px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
/* split words */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.swi{display:inline-block;will-change:transform}
.js [data-reveal]:not([data-stagger]),.js [data-reveal][data-stagger]>*,.js [data-intro] [data-fade]{visibility:hidden}
.js [data-split]{visibility:hidden}
.js [data-split]:has(.sw){visibility:visible}
.js [data-split] .swi{transform:translateY(110%)}
/* image frames */
.media{position:relative;overflow:hidden}
.media>img{width:100%;height:100%;object-fit:cover}
.media>img[data-parallax]{height:118%;margin-top:-9%}
/* page veil */
.veil{position:fixed;inset:0;z-index:999;pointer-events:none;background:var(--veil,#0e0d0b);transform:scaleY(1);transform-origin:top;transition:transform .9s cubic-bezier(.77,0,.18,1)}
body.is-ready .veil{transform:scaleY(0)}
body.is-leaving .veil{transform:scaleY(1);transform-origin:bottom;transition-duration:.5s}
@media (prefers-reduced-motion:reduce){.veil{display:none}*{animation:none!important;transition:none!important}}
/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:998;pointer-events:none;width:0;height:0}
.cursor span{position:absolute;left:0;top:0;display:grid;place-items:center;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:var(--cursor-bg,#f3eee4);color:var(--cursor-fg,#0e0d0b);font-size:12px;letter-spacing:.14em;text-transform:uppercase;transform:scale(0);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.cursor.is-active span{transform:scale(1)}
/* showcase bar (on demo sites) */
.sc-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px;background:rgba(15,14,12,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f2ede3;font:500 12.5px/1 'Inter Tight',system-ui,sans-serif;box-shadow:0 20px 40px -12px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.08);white-space:nowrap}
.sc-bar a,.sc-bar span{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:99px}
.sc-back:hover{background:rgba(255,255,255,.08)}
.sc-note{color:#b5ad9f}
.sc-cta{background:#c3a46c;color:#0f0e0c;transition:background .3s}
.sc-cta:hover{background:#f2ede3}
@media (max-width:640px){.sc-bar .sc-note{display:none}}
.in-frame .sc-bar{display:none}
