/* Finite entrances and deliberate hover feedback; original artwork stays uncropped. */
.project-form .form-action button:disabled{opacity:1;cursor:wait;background:#b8ff00;color:#fff;box-shadow:0 0 0 4px #b8ff0026,0 10px 32px #b8ff0033;display:flex;align-items:center;justify-content:center;gap:12px}
.project-form .submit-spinner{display:inline-block;flex:0 0 20px;width:20px;height:20px;box-sizing:border-box;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:submit-spin .75s linear infinite}
.project-form.is-submitting{outline:1px solid #b8ff0066;outline-offset:8px}
.project-form #form-status.is-loading{padding:16px 18px;border:1px solid #b8ff0066;border-radius:12px;background:#b8ff001a;color:#efffc7;font-size:14px;line-height:1.7}
@keyframes submit-spin{to{transform:rotate(360deg)}}
.project-form [aria-invalid="true"]{border-color:#b8ff00;background:#b8ff0012;box-shadow:0 0 0 1px #b8ff00}
.field-hint{display:block;color:#efffc7;font-size:13px;font-weight:400;line-height:1.6;margin-top:8px;letter-spacing:-.02em}.field-hint[hidden]{display:none}
dialog.submission-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:44px 32px 28px;border:1px solid #efffc7;border-radius:24px;background:#f8faff;color:#1f1f1f;text-align:center;box-shadow:0 32px 100px #0006;overflow:auto}
.submission-dialog::backdrop{background:#0e0e0ecc;backdrop-filter:blur(8px)}
.submission-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 24px;border-radius:50%;background:#b8ff00;color:white;font-size:30px;box-shadow:0 8px 28px #b8ff0035}
.submission-dialog .submission-eyebrow{font-size:10px;letter-spacing:.16em;color:#b8ff00;margin:0 0 14px}
.submission-dialog h2{font-size:clamp(22px,5vw,28px);letter-spacing:-.05em;line-height:1.3;margin:0 0 16px}
.submission-dialog #submission-description{font-size:15px;line-height:1.85;color:#676767;margin:0 0 30px}
.submission-dialog button{position:static;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px;border:0;border-radius:12px;background:#b8ff00;color:#fff;font:inherit;cursor:pointer;transition:background .2s,box-shadow .2s}
.submission-dialog button:hover{background:#b8ff00;box-shadow:0 8px 24px #b8ff0030}
.submission-dialog[open]{animation:work-in .3s ease-out}
.service-chooser{display:flex;flex-wrap:wrap;gap:10px;margin:32px 4vw 48px}
.service-row{scroll-margin-top:100px}.form-preparation{font-size:14px;line-height:1.8;color:#c6c6c6;margin:0 0 28px}
.service-chooser p{flex-basis:100%;font-size:16px}
.service-chooser button,.service-chooser a{font:inherit;font-size:14px;color:inherit;border:1px solid currentColor;background:transparent;padding:13px 18px;border-radius:30px;text-decoration:none;cursor:pointer}
.service-chooser button:hover,.service-chooser button:focus-visible,.service-chooser a:hover{background:#fff;color:#b8ff00}
:is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid #efffc7;outline-offset:5px}
.hero h1>span{animation:headline-in 1s cubic-bezier(.16,1,.3,1) both}
.hero h1>span:nth-child(2){animation-delay:.13s}.hero h1>span:nth-child(3){animation-delay:.26s}
.hero-kicker,.hero-bottom{animation:headline-in 1s .35s both}
.demo-work{animation:work-in .65s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--item-index,0)*65ms)}
.top-cta,.package-inquiry,.work-more,.work-tabs button,.service-chooser button{transition:background .25s,color .25s,box-shadow .3s,transform .3s}
.top-cta span,.work-more span{display:inline-block;transition:transform .3s}
.service-packages article{position:relative;transition:transform .35s,box-shadow .35s;background-image:radial-gradient(280px circle at var(--pointer-x,50%) var(--pointer-y,0%),#ffffff26,transparent 75%)}
.service-row summary h3{transition:transform .35s}.service-row summary b{transition:transform .35s}.service-row[open] summary b{transform:rotate(45deg)}
.demo-work:focus-visible{outline-offset:4px}.demo-work:focus-visible span{opacity:1}
.scroll-progress{position:fixed;z-index:1000;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,#b8ff00,#efffc7);transform:scaleX(0);transform-origin:left;pointer-events:none}
@media(hover:hover) and (pointer:fine){
 .top-cta:hover{box-shadow:0 0 30px #b8ff0055;transform:translateY(-2px)}
 .top-cta:hover span{transform:translate(3px,-3px)}
 .work-more:hover span{transform:translate(4px,4px)}
 .work-tabs button:hover{transform:translateY(-3px)}
 .service-row summary:hover h3{transform:translateX(10px)}
 .service-packages article:hover{transform:translateY(-5px);box-shadow:0 16px 32px #27272726}
 .package-inquiry:hover{box-shadow:0 8px 20px #17171733;transform:translateY(-2px)}
 .demo-work:hover{box-shadow:0 0 0 3px #b8ff00,0 18px 40px #0005}
}
@keyframes headline-in{from{opacity:0;transform:translateY(28px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes work-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:600px){.service-chooser{gap:8px}.service-chooser button,.service-chooser a{font-size:13px;padding:12px 14px}.demo-work span{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.orbit{translate:none!important}}
