:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--t);font:17px/1.47 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .7s var(--ease),color .7s var(--ease)}
html.tx *,html.tx *::before,html.tx *::after{transition:background-color .7s var(--ease),color .7s var(--ease),border-color .7s var(--ease),box-shadow .7s var(--ease),fill .7s,stroke .7s!important}
a{color:inherit;text-decoration:none;cursor:pointer}
.hide{display:none!important}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px;position:relative;z-index:2}
.orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:var(--orb);transition:opacity .8s var(--ease)}
.orbs i{position:absolute;border-radius:50%;filter:blur(120px);will-change:transform;animation:drift 40s ease-in-out infinite alternate}
.orbs i:nth-child(1){width:60vmax;height:60vmax;left:-20%;top:-30%;background:radial-gradient(circle,#0a84ff,transparent 68%);opacity:.5}
.orbs i:nth-child(2){width:55vmax;height:55vmax;right:-25%;top:10%;background:radial-gradient(circle,#bf5af2,transparent 68%);opacity:.42;animation-delay:-14s}
.orbs i:nth-child(3){width:50vmax;height:50vmax;left:10%;bottom:-40%;background:radial-gradient(circle,#ff375f,transparent 68%);opacity:.3;animation-delay:-26s}
@keyframes drift{to{transform:translate3d(9vmax,7vmax,0) scale(1.16)}}
#bar{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#64d2ff,#0a84ff,#bf5af2,#ff375f);z-index:80}
.grad{background:linear-gradient(95deg,#64d2ff,#0a84ff 30%,#bf5af2 62%,#ff375f);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slow 14s ease-in-out infinite alternate}
@keyframes slow{to{background-position:100% 0}}
@keyframes fade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes word{from{opacity:0;transform:translateY(70px);filter:blur(18px)}to{opacity:1;transform:none;filter:none}}
@keyframes shake{20%,60%{transform:translateX(-9px)}40%,80%{transform:translateX(9px)}}
button{font:inherit;font-size:1rem;cursor:pointer;color:var(--t);border:0;background:none;border-radius:980px;padding:12px 26px;transition:transform .7s var(--ease),background .5s}
button:hover{transform:scale(1.04)}button:active{transform:scale(.97)}
.btn{font-weight:500;font-size:1.05rem}
.btn.blue{background:var(--blue);color:#fff}.btn.blue:hover{background:#0077ed}
.btn.ghost{background:var(--tint)}
.btn.solid{background:var(--t);color:var(--inv)}
.lnk{color:var(--link);font-size:1.15rem;margin-left:10px}.lnk:hover{text-decoration:underline}
input,textarea{font:inherit;font-size:1.05rem;color:var(--t);background:var(--tint);border:1px solid transparent;border-radius:18px;padding:16px 20px;width:100%;outline:0;transition:border-color .5s,box-shadow .5s}
input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 5px rgba(0,113,227,.2)}
::placeholder{color:var(--m)}
textarea{min-height:200px;font-size:1.3rem;line-height:1.5;resize:vertical}
/* Scroll reveal only engages if the effects module loaded (class .fx), so content never stays hidden. */
.fx .rv{opacity:0;transform:translateY(60px) scale(.985);filter:blur(12px);transition:opacity 1.3s var(--ease),transform 1.3s var(--ease),filter 1.3s var(--ease);transition-delay:var(--d,0s)}
.fx .rv.in{opacity:1;transform:none;filter:none}
.ey{font-size:1.15rem;font-weight:600;color:#ff9f0a;margin-bottom:14px}
.sub{font-size:clamp(1.25rem,2.4vw,1.9rem);color:var(--m);max-width:760px;letter-spacing:-.015em;margin:0}
.lab{font-size:.82rem;font-weight:600;color:var(--m);text-transform:uppercase;letter-spacing:.12em}
.dim{color:var(--m);font-size:1.15rem}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.row input{flex:1;min-width:170px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fx .rv{opacity:1;transform:none;filter:none}}
