/* Shared interaction and layout refinements. Content stays visible without JavaScript. */
:root{--motion-fast:180ms;--motion-ease:cubic-bezier(.2,.7,.25,1)}
html{scroll-behavior:smooth;scroll-padding-top:25px}body{overflow-wrap:break-word}img,svg{max-width:100%}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}
.button,.text-link,nav a,.signout,.cancel,.filter-links a{transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}
input,textarea,select{transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background-color var(--motion-fast);max-width:100%;min-width:0}
input:focus,textarea:focus,select:focus{box-shadow:0 0 0 4px #76b76c14}
.button:active{transform:translateY(0) scale(.98)}.text-link:hover{color:#1e8a43}.panel,.stat,.request-card,.features>article{transition:border-color .25s,box-shadow .25s,transform .25s}
@media(hover:hover) and (pointer:fine){.features>article:hover{transform:translateY(-6px);box-shadow:0 16px 35px #1b502410;border-color:#bdd5b2}.stat:hover{transform:translateY(-3px);border-color:#bdd5b2;box-shadow:0 10px 24px #1b502408}.request-card:hover{border-color:#bed2b3}.app-sidebar nav a:hover{transform:translateX(3px)}.button:hover{box-shadow:0 7px 18px #0f55241a}.text-link:hover{transform:translateX(3px)}}
.motion-ready .reveal{transition:opacity .65s var(--motion-ease),transform .65s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-waiting{opacity:0;transform:translateY(22px)}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
.intro h1,.auth-story h1{animation:soft-arrival .7s var(--motion-ease) both}.intro .actions{animation:soft-arrival .7s .12s var(--motion-ease) both}.intro>small{animation:soft-arrival .7s .2s var(--motion-ease) both}
.scene .float{animation:card-arrival .8s .2s var(--motion-ease) backwards}.scene .team{animation-delay:.3s}
@keyframes soft-arrival{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-arrival{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes busy-spin{to{transform:rotate(360deg)}}
.menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:10px 13px;border:1px solid #bcd3b6;border-radius:9px;background:#fff;color:#285735;font:500 12px 'DM Sans',Arial,sans-serif;cursor:pointer}.menu-toggle .menu-symbol{display:block;width:15px;height:12px;position:relative;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}.menu-toggle .menu-symbol:after{content:'';position:absolute;left:0;right:0;top:4px;border-top:1.5px solid currentColor}.menu-toggle[aria-expanded=true] .menu-symbol{border-bottom:0;transform:rotate(45deg);height:0}.menu-toggle[aria-expanded=true] .menu-symbol:after{top:-1.5px;transform:rotate(90deg)}
.hero .menu-toggle{background:#ffffff08;border-color:#ffffff30;color:#d9ead9}.menu-toggle:focus-visible{outline:3px solid #a291d2;outline-offset:4px}
nav a[aria-current=location]{color:#72e48e}.app-sidebar nav a[aria-current=page]{background:#d7eacb;color:#31763d}
.button.is-pending{opacity:.75;pointer-events:none}.button.is-pending:before{content:'';display:inline-block;width:12px;height:12px;margin-right:9px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:busy-spin .7s linear infinite}
.request-list,.stat-grid,.team-layout,.features,.steps,.faq-grid{min-width:0}.stat-grid>*,.team-layout>*,.overview>*,.features>*,.form-grid>*{min-width:0}.reason,.directory-person,.user-card{overflow-wrap:anywhere}.app-main{width:100%}.app-main>section,.app-main>div{max-width:100%}.auth-layout{min-height:100svh}.auth-story{min-width:0}.auth-form{min-width:0}.auth-form .info{overflow-wrap:anywhere}.table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}.auth-panel label,.app-main label{font-size:13px}.auth-panel input,.app-main input,.app-main textarea,.app-main select{font-size:16px}.form-panel .button,.review-form .button{min-height:44px}details{transition:background-color .2s}details[open]{background:#f8faf5;border-radius:8px}summary{min-height:30px}summary:after{transition:transform .2s}.app-top{flex-wrap:wrap}
@media(min-width:761px) and (max-width:1000px){.hero header{flex-wrap:wrap;gap:16px}.hero header nav{order:3;width:100%;justify-content:center;padding-top:12px;border-top:1px solid #ffffff12}.hero header>.small{margin-left:auto}.scene{height:auto;padding-top:15px}.scene .dashboard{width:90%;min-height:0}.scene .float{display:none}.scene .sidebar{width:110px}.scene .dash-heading{flex-wrap:wrap}.scene .workspace{padding:12px 16px}.scene .dash-heading h3{font-size:13px}.features{grid-template-columns:1fr 1fr}.features>article:last-child{grid-column:1/-1;max-width:530px;width:100%;justify-self:center}.auth-story{padding:28px;min-height:640px}.auth-story h1{font-size:48px}.auth-panel{padding:25px}.app-layout .stat-grid{grid-template-columns:1fr 1fr}.app-layout .panel-heading{align-items:start}.app-layout .panel-heading .text-link{max-width:100px}.welcome{flex-wrap:wrap}}
@media(max-width:760px){.hero header{gap:10px}.has-menu>.menu-toggle{display:inline-flex}.hero header>.menu-toggle{margin-left:auto}.hero header>.small{margin-left:0;min-height:44px;padding:10px 14px}.hero header.has-menu>nav{display:none;width:100%;order:4;flex-direction:column;align-items:stretch;gap:3px;padding:10px;background:#ffffff06;border:1px solid #ffffff14;border-radius:10px}.hero header.has-menu>nav.menu-open{display:flex;animation:soft-arrival .2s ease-out}.hero header nav a{padding:11px 13px;min-height:44px;font-size:13px;border-radius:6px}.hero header nav a:hover{background:#ffffff0a}.hero .brand{font-size:24px}.intro{padding-top:36px}.intro h1{font-size:clamp(34px,7.3vw,47px);letter-spacing:-1.8px}.intro>p:not(.eyebrow){font-size:12px}.intro .eyebrow{font-size:7px;letter-spacing:1px}.intro>small{font-size:9px}.actions{flex-wrap:wrap}.actions .button{min-height:44px;font-size:12px}.trust p{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px}.trust p span{margin:0 3px}.section .copy,.steps p,.features article>p,details p{font-size:13px}.section .eyebrow{font-size:8px}.text-link{font-size:12px}.closing .button{min-height:44px;font-size:12px}.faq summary{font-size:13px;min-height:44px}.features{grid-template-columns:1fr}.app-sidebar.has-menu{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.app-sidebar.has-menu>.brand{margin:0}.app-sidebar.has-menu>nav{grid-column:1/-1;display:none;flex-direction:column;padding-top:4px}.app-sidebar.has-menu>nav.menu-open{display:flex;animation:soft-arrival .2s ease-out}.app-sidebar.has-menu>nav a{font-size:13px;padding:12px;min-height:44px}.app-sidebar.has-menu>.sidebar-bottom{grid-column:1/-1;width:100%;margin-top:2px}.signout{min-height:40px;padding:8px}.app-top{font-size:11px;row-gap:5px}.auth-layout{display:block}.auth-story{min-height:300px}.auth-story>div{padding:12px 0 0}.auth-story h1{font-size:40px}.auth-panel{padding:33px 18px 40px}.auth-form h2{font-size:28px}.auth-story .eyebrow{font-size:8px}.auth-story p:not(.eyebrow){font-size:12px}.auth-panel .button{min-height:46px;font-size:13px}.app-main{padding:0 16px}.app-main .stat>span{font-size:11px}.app-main .stat{padding:18px}.app-main .badge{font-size:10px}.app-main .page-heading>p:last-child,.app-main .welcome p:not(.eyebrow){font-size:13px}.request-card-top{flex-wrap:wrap}.request-card-top>.badge{flex-shrink:0}.request-card-top p{font-size:12px}.request-card .reason{font-size:13px}.request-card .muted,.review-note{font-size:11px}.button-group .button{flex:1;white-space:normal}.filter-links{gap:7px}.filter-links a{font-size:11px;min-height:40px;display:inline-flex;align-items:center}.directory-person small{font-size:12px}.app-footer{line-height:1.9}.features .art{max-width:100%}}
@media(max-width:390px){.hero header>.brand{font-size:22px}.hero header>.brand>b{width:21px;height:24px;font-size:20px}.hero header>.small{font-size:10px;padding:9px 11px}.hero header>.menu-toggle{font-size:0;width:42px;min-width:42px;padding:10px;gap:0}.hero header{padding:5px 2px;gap:7px}.intro h1{font-size:34px}.intro>p:not(.eyebrow) br{display:none}.section{padding-left:16px;padding-right:16px}.section h2{font-size:28px}.scene .sidebar{display:none}.scene .dash-heading{flex-wrap:wrap}.scene .request{font-size:8px;padding:7px 9px}.scene .dash-heading h3{font-size:12px;max-width:none}.scene .stats article>span{font-size:7px}.scene .stats strong small{font-size:6px}.scene .workspace{padding:12px}.scene table{font-size:8px}.scene .badge{font-size:7px}.scene .topbar{font-size:8px}.scene .dash-heading p{font-size:8px;max-width:none}.scene .demo{font-size:7px}.scene .requests .row h4{font-size:10px}.scene .requests .row>span{font-size:7px}.scene th,.scene td{padding:7px 5px}.auth-story{padding:24px}.auth-story h1{font-size:36px}.app-main .panel{padding:15px}.app-main .request-card{padding:14px}.app-main .stat-grid{gap:8px}.app-main .stat{padding:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .reveal.is-waiting{opacity:1;transform:none}.button.is-pending:before{border-right-color:currentColor}}
/* Motion for the restored green dashboard hero. */
@keyframes dashboard-drift{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes dashboard-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.scene .dashboard{animation:soft-arrival .7s .15s var(--motion-ease) backwards}
.scene .float{animation:card-arrival .8s .2s var(--motion-ease) backwards,dashboard-drift 7s 1s ease-in-out infinite}.scene .team{animation-delay:.35s,1.4s}
.scene .float:hover{animation-play-state:paused}
.scene .progress:after,.scene .stats i:after{transform-origin:left;animation:dashboard-line .9s .45s ease-out backwards}
.hero nav a{border-radius:5px}.hero nav a:focus-visible{outline-color:#8de59b}
@media(max-width:500px){.hero-copy,.intro{min-width:0}.hero header nav a{min-height:44px}.intro .actions{gap:10px}.scene .stats strong small{line-height:1.4}.scene .dashboard{border-radius:10px 10px 0 0}}
@media(prefers-reduced-motion:reduce){.scene .dashboard,.scene .float,.scene .progress:after,.scene .stats i:after{animation:none!important;translate:none}}
