/* Pointer-driven positioning uses the CTA's existing gradient stops unchanged. */
.cta{background:radial-gradient(ellipse at var(--cta-x,75%) var(--cta-y,0%),#8602fd32,transparent 68%),var(--surface)}
html[data-theme="light"] .cta{background:radial-gradient(ellipse at var(--cta-x,75%) var(--cta-y,0%),#8602fd16,transparent 70%),#f2ecfa}
.cta:before{transform:translate3d(var(--cta-dx,0px),var(--cta-dy,0px),0);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.cta:after{background-position:var(--cta-dot-x,0px) var(--cta-dot-y,0px);transition:background-position .4s ease}
.cta:focus-within:before{transform:translate3d(0,6px,0)}
/* Expandable question cards retain the browser's native disclosure behavior. */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:100%;align-items:start}
.faq details{padding:0;margin:0;border:1px solid var(--line);border-radius:9px;background:#8602fd04;transition:border-color .25s,background .25s,transform .25s,box-shadow .25s;overflow:hidden}
.faq summary{position:relative;list-style:none;padding:23px 65px 23px 23px;font-size:15px;font-weight:600;line-height:1.55;cursor:pointer;min-height:88px;display:flex;align-items:center}
.faq summary::-webkit-details-marker{display:none}.faq summary::marker{content:''}
.faq summary:after{content:'+';display:grid;place-items:center;position:absolute;right:21px;top:50%;width:27px;height:27px;margin-top:-13.5px;border:1px solid var(--line);border-radius:50%;font-size:21px;font-weight:400;line-height:1;color:var(--accent);transition:transform .25s,border-color .25s,color .25s}
.faq details:hover{border-color:#b681ff77;box-shadow:0 8px 28px #8602fd12;transform:translateY(-2px)}
.faq details:hover summary:after{border-color:#ff599580;color:#ff5995}
.faq details[open]{background:#8602fd0c;border-color:#b681ff77}
.faq details[open] summary:after{transform:rotate(45deg);border-color:#b681ff77}
.faq details p{padding:0 23px 24px;margin:0;font-size:14px;line-height:1.85;color:var(--muted)}
.faq details[open] p{animation:faq-answer-in .25s ease-out}
@keyframes faq-answer-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.footer-bottom{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.portfolio-copyright{text-align:center}
.brief-service-editor{padding:12px 0 18px;border-bottom:1px solid var(--line);margin-bottom:22px}.brief-service-editor summary{font-size:13px;color:var(--accent)}.brief-service-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.brief-service-picker label{display:flex;align-items:center;gap:8px;padding:11px 9px;border:1px solid var(--line);border-radius:4px;font-size:11px;line-height:1.4;cursor:pointer}.brief-service-picker input{width:15px;height:15px;flex-shrink:0;margin:0;accent-color:#8602fd}.brief-service-picker label:has(input:checked){border-color:#b681ff77;background:#8602fd16}.contact-brief-card{border:1px solid var(--line);border-radius:10px;padding:30px;background:#8602fd0a}.contact-brief-card h3{margin-top:0}.contact-brief-card p{font-size:15px;line-height:1.8;color:var(--muted)}
@media(max-width:700px){.faq{grid-template-columns:1fr}.faq summary{min-height:78px;font-size:14px;padding:21px 60px 21px 21px}.brief-service-picker{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.cta:before,.cta:after,.faq details,.faq summary:after{transition:none!important}.faq details:hover{transform:none}.faq details[open] p{animation:none}.cta:focus-within:before{transform:none}}

/* Native anchor navigation stays smooth without intercepting wheel or touch input. */
html{scroll-behavior:smooth;scroll-padding-top:104px}
.audit-float{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:9;display:flex;align-items:center;gap:14px;isolation:isolate;padding:14px 20px;border:1px solid #ffffff30;border-radius:999px;background:#8602fd;color:#fff;box-shadow:0 8px 32px #8602fd40;transition:transform .3s ease,box-shadow .3s ease;animation:audit-glow 4s ease-in-out infinite}
.audit-float:before{content:'';position:absolute;inset:0;border-radius:inherit;z-index:-1;background:linear-gradient(110deg,transparent 20%,#ffffff28 48%,transparent 75%);background-size:240% 100%;background-position:150% 0;transition:background-position .65s ease}
.audit-copy{display:grid;gap:3px}.audit-copy strong{font-size:13px;letter-spacing:.1px}.audit-copy small{font-size:10px;letter-spacing:1px;opacity:.85}.audit-spark{font-size:23px;color:#ffb6d1;transition:transform .45s ease}.audit-arrow{font-size:20px;transition:transform .3s ease}
.audit-float:hover,.audit-float:focus-visible{transform:translateY(-5px);box-shadow:0 14px 40px #8602fd60;animation-play-state:paused}.audit-float:hover:before,.audit-float:focus-visible:before{background-position:-50% 0}.audit-float:hover .audit-spark,.audit-float:focus-visible .audit-spark{transform:rotate(90deg)}.audit-float:hover .audit-arrow,.audit-float:focus-visible .audit-arrow{transform:translateY(3px)}
.dialog-open .audit-float{visibility:hidden}
@keyframes audit-glow{0%,100%{box-shadow:0 8px 32px #8602fd40,0 0 0 0 #ff599500}50%{box-shadow:0 8px 32px #8602fd55,0 0 0 7px #ff599518}}
@media(max-width:600px){html{scroll-padding-top:88px}.audit-float{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));padding:12px 16px;gap:11px}.audit-copy strong{font-size:12px}.audit-spark{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.audit-float{animation:none}.audit-float,.audit-float:before,.audit-spark,.audit-arrow{transition:none}.audit-float:hover,.audit-float:focus-visible,.audit-float:hover .audit-spark,.audit-float:focus-visible .audit-spark,.audit-float:hover .audit-arrow,.audit-float:focus-visible .audit-arrow{transform:none}}
