.navbar{z-index:100;background:linear-gradient(135deg, var(--green-dark), var(--green-base));border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem clamp(2.5rem,3vw,1.75rem);display:flex;position:sticky;top:0;box-shadow:0 6px 22px -10px #2a4a148c}.navbar .navbar-logo{flex-shrink:0;align-items:center;text-decoration:none;display:flex}.navbar .navbar-logo img{width:auto;height:54px;transition:transform var(--dur-mid,.28s) var(--ease-soft,ease)}.navbar .navbar-logo:hover img{transform:scale(1.05)rotate(-1deg)}.navbar .navbar-logo:active img{transform:scale(.98)}.navbar .navbar-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.navbar .navbar-nav .btn{white-space:nowrap;transition:background-color var(--dur-fast,.2s) ease, border-color var(--dur-fast,.2s) ease, color var(--dur-fast,.2s) ease, transform var(--dur-fast,.2s) var(--ease-soft,ease);padding:clamp(6px,.7vw,9px) clamp(10px,1.2vw,18px);font-size:clamp(11px,1.1vw,14px)}.navbar .navbar-nav .btn:hover{transform:translateY(-2px)}.navbar .navbar-nav .btn:active{transform:translateY(0)scale(.97)}.navbar .navbar-nav .btn-outline-primary{color:var(--white);background:#ffffff0f;border-color:#ffffff80}.navbar .navbar-nav .btn-outline-primary:hover{border-color:var(--white);background:#ffffff29}.navbar .nav-active{font-weight:700;border-color:var(--white)!important;color:var(--white)!important;background:#ffffff38!important}.navbar .navbar-hamburger{cursor:pointer;z-index:101;width:40px;height:40px;transition:border-color var(--dur-fast,.2s) ease, background var(--dur-fast,.2s) ease;background:#ffffff14;border:2px solid #fff9;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;padding:6px 7px;display:none}.navbar .navbar-hamburger span{background:var(--white);width:100%;height:2px;transition:transform .28s var(--ease-soft,ease), opacity .2s ease;transform-origin:50%;border-radius:2px;display:block}.navbar .navbar-hamburger:hover{border-color:var(--white);background:#ffffff29}.navbar .navbar-hamburger.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.navbar .navbar-hamburger.is-open span:nth-child(2){opacity:0}.navbar .navbar-hamburger.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.navbar .navbar-overlay,.navbar .navbar-brand{display:none}@media (width>=861px){.navbar{animation:navbar-drop .45s var(--ease-soft,ease) both}}@media (width<=860px){.navbar{padding:.6rem 1rem}.navbar .navbar-hamburger{display:flex}.navbar .navbar-nav{background:linear-gradient(160deg, var(--green-dark), var(--green-base));width:min(280px,80vw);height:100%;transition:right .3s var(--ease-soft,ease);z-index:100;flex-flow:column;justify-content:flex-start;align-items:stretch;gap:.6rem;padding:5rem 1.25rem 2rem;position:fixed;top:0;right:-100%;overflow-y:auto;box-shadow:-8px 0 30px #2a4a1459}.navbar .navbar-nav.is-open{right:0}.navbar .navbar-nav .btn{justify-content:center;padding:12px 20px!important;font-size:14px!important}.navbar .navbar-nav .btn-primary{margin-top:.85rem}.navbar .navbar-nav.is-open .btn{animation:navbar-item-in .32s var(--ease-soft,ease) both}.navbar .navbar-nav.is-open .btn:first-child{animation-delay:40ms}.navbar .navbar-nav.is-open .btn:nth-child(2){animation-delay:.1s}.navbar .navbar-nav.is-open .btn:nth-child(3){animation-delay:.16s}.navbar .navbar-nav.is-open .btn:nth-child(4){animation-delay:.22s}.navbar .navbar-nav .navbar-brand{justify-content:center;align-items:flex-end;margin-top:auto;padding-top:2.5rem;display:flex}.navbar .navbar-nav .navbar-brand img{opacity:.92;width:clamp(120px,38vw,150px);height:auto}.navbar .navbar-nav.is-open .navbar-brand{animation:navbar-item-in .45s var(--ease-soft,ease) .26s both}.navbar .navbar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99;background:#1a1c2e73;animation:.25s both navbar-fade;display:block;position:fixed;inset:0}}@keyframes navbar-drop{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes navbar-fade{0%{opacity:0}to{opacity:1}}@keyframes navbar-item-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.navbar,.navbar-overlay,.navbar .navbar-nav.is-open .btn,.navbar .navbar-nav.is-open .navbar-brand{animation:none!important}.navbar .navbar-logo img,.navbar .navbar-nav .btn{transition:none}}.footer-container{background:linear-gradient(135deg, var(--green-dark), var(--green-base));color:#fff;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;font-size:.8rem;display:flex}.footer-container .logos{height:3.5rem}.footer-container a{color:#fff;margin:0 .5rem;text-decoration:none;transition:color .3s}.footer-container a:hover{color:var(--color-secondary)}@media (width<=768px){.footer-container a{flex-direction:column;gap:1rem}}.login-page{font-family:var(--font-body);flex:1;justify-content:center;align-items:center;padding:clamp(1.25rem,4vw,3rem);display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:920px;box-shadow:0 30px 70px -34px var(--main-color-50);grid-template-columns:.85fr 1fr;display:grid;overflow:hidden}.login-aside{isolation:isolate;justify-content:center;gap:var(--space-md);color:var(--white);background:var(--gradient-warm);flex-direction:column;padding:clamp(2rem,4vw,3rem);display:flex;position:relative;overflow:hidden}.login-aside:after{content:"";z-index:-1;background:radial-gradient(420px 240px at 16% 8%,#79c14373 0%,#0000 60%),radial-gradient(360px 220px at 110% 100%,#79c14347 0%,#0000 58%);position:absolute;inset:0}.login-aside__aura{z-index:-1;pointer-events:none;position:absolute;inset:0}.login-aside__aura .login-orbit{fill:none;stroke-width:1.3px;position:absolute}.login-aside__aura .login-orbit ellipse{fill:none;stroke:inherit;vector-effect:non-scaling-stroke}.login-aside__aura .login-orbit--one{stroke:#9dd46e8c;width:280px;height:280px;animation:58s linear infinite login-spin;top:-70px;right:-60px}.login-aside__aura .login-orbit--two{stroke:#ffffff38;width:260px;height:260px;animation:76s linear infinite reverse login-spin;bottom:-90px;left:-70px}.login-aside__logo{width:clamp(120px,12vw,156px);height:auto}.login-aside__tagline{max-width:18rem;font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(1.25rem,1.8vw,1.6rem);font-style:italic;font-weight:500;line-height:1.3}.login-aside__chips{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.login-aside__chips li{border-radius:var(--radius-pill);letter-spacing:.01em;background:#ffffff24;border:1px solid #ffffff38;padding:.35rem .75rem;font-size:.78rem;font-weight:600}.login-main{justify-content:center;gap:var(--space-md);flex-direction:column;padding:clamp(2rem,4vw,3.25rem);display:flex}.login-head .login-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin-bottom:.5rem;font-size:.78rem;font-weight:700;display:inline-block}.login-head .login-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;line-height:1.1}.login-head .login-sub{color:var(--ink-muted);margin-top:.6rem;font-size:.98rem;line-height:1.6}.login-form{gap:var(--space-sm);flex-direction:column;display:flex}.login-btn{width:100%;box-shadow:0 12px 26px -12px var(--main-color-50);transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-mid) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);gap:.5rem;margin-top:.4rem}.login-btn svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:1.15em;height:1.15em;transition:transform var(--dur-mid) var(--ease-soft)}.login-btn:hover{transform:translateY(-2px)}.login-btn:hover svg{transform:translate(4px)}.login-btn:active{transform:translateY(0)scale(.98)}.error-message{border-radius:var(--radius-sm);background:var(--color-danger-light);color:var(--color-danger-dark);border:1px solid #fca5a5;margin:0;padding:.7rem .95rem;font-size:.85rem;font-weight:600}.login-rise{opacity:0;animation:login-rise var(--dur-slow) var(--ease-soft) forwards}@keyframes login-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes login-spin{to{transform:rotate(360deg)}}@media (width<=760px){.login-card{grid-template-columns:1fr;max-width:480px}.login-aside{align-items:center;gap:var(--space-sm);flex-direction:row;padding:clamp(1.4rem,5vw,2rem)}.login-aside__tagline{font-size:1.1rem}.login-aside__chips{display:none}}@media (width<=420px){.login-aside{text-align:left;flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.login-rise{opacity:1;animation:none;transform:none}.login-orbit,.login-btn,.login-btn svg{transition:none!important;animation:none!important}}.forbidden{font-family:var(--font-body);flex:1;justify-content:center;align-items:center;padding:clamp(1.5rem,4vw,3rem);display:flex}.forbidden__card{text-align:center;align-items:center;gap:var(--space-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-card);flex-direction:column;padding:clamp(2.25rem,5vw,3.25rem);display:flex}.forbidden__badge{background:var(--tint-green);width:4rem;height:4rem;color:var(--green-dark);border-radius:50%;place-items:center;display:grid}.forbidden__badge svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:2rem;height:2rem}.forbidden__code{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:clamp(3rem,9vw,4.5rem);font-weight:600;line-height:1}.forbidden__title{font-family:var(--font-display);color:var(--ink);font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:600}.forbidden__text{max-width:30rem;color:var(--ink-muted);font-size:.98rem;line-height:1.65}.forbidden__actions{justify-content:center;gap:var(--space-xs);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.forbidden__actions .btn{transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-soft)}.forbidden__actions .btn:hover{transform:translateY(-2px)}.forbidden__actions .btn:active{transform:translateY(0)scale(.98)}.forbidden-rise{opacity:0;animation:forbidden-rise var(--dur-slow) var(--ease-soft) forwards}@keyframes forbidden-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.forbidden-rise{opacity:1;animation:none;transform:none}.forbidden__actions .btn{transition:none}}html{scroll-behavior:smooth}.home{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--space-2xs:.375rem;--space-xs:.625rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--space-3xl:8rem;--radius-sm:14px;--radius-md:20px;--radius-lg:28px;--radius-xl:40px;--radius-pill:999px;--ease-soft:cubic-bezier(.22, .61, .36, 1);--dur-fast:.2s;--dur-mid:.28s;--dur-slow:.34s;--ink:var(--navy-darkest);--ink-soft:var(--navy-dark);--ink-muted:var(--navy-light);--surface:var(--white);--tint-green:var(--green-lightest);--tint-navy:var(--navy-lightest);--line:var(--gray-200);--doodle-color:var(--navy-base);--doodle-opacity:.06;--doodle-size:600px;--shadow-card:0 1px 2px #363a5f0a, 0 14px 34px #363a5f14;--shadow-card-hover:0 2px 6px #363a5f14, 0 26px 54px #363a5f29;--shadow-screen:0 30px 80px -28px #363a5f73;--glow-green:0 14px 30px -12px #79c1438c;--hero-offset:6.5rem;--hero-media-cap:74vh;isolation:isolate;width:100%;padding:clamp(1rem, 2.5vw, 2rem) var(--page-gutter) clamp(4rem, 8vw, 7rem);font-family:var(--font-body);color:var(--ink);background:radial-gradient(900px 540px at 88% -8%, var(--tint-green) 0%, transparent 62%), radial-gradient(820px 520px at 4% 14%, var(--tint-navy) 0%, transparent 58%), linear-gradient(180deg, #fff 0%, #fbfdff 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;position:relative;overflow-x:clip}.home h1,.home h2,.home h3{font-family:var(--font-display);letter-spacing:-.018em;font-weight:600;line-height:1.08}.home a:focus-visible,.home button:focus-visible{outline:3px solid var(--main-color-30);outline-offset:4px;border-radius:var(--radius-sm)}.home .btn{transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, box-shadow var(--dur-mid) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);will-change:transform}.home .btn:hover{transform:translateY(-2px)}.home .btn:active{transform:translateY(0)scale(.975)}.home .home-cta{box-shadow:0 12px 26px -10px var(--main-color-50);gap:.55rem}.home .home-cta svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:1.1em;height:1.1em;transition:transform var(--dur-mid) var(--ease-soft)}.home .home-cta:hover svg{transform:translate(4px)}.home-aura{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-aura:before{content:"";background-color:var(--doodle-color);opacity:var(--doodle-opacity);-webkit-mask:url(/assets/background-CpEAaMfu.png) 50% 0/var(--doodle-size) auto repeat;-webkit-mask:url(/assets/background-CpEAaMfu.png) 50% 0/var(--doodle-size) auto repeat;mask:url(/assets/background-CpEAaMfu.png) 50% 0/var(--doodle-size) auto repeat;position:absolute;inset:0;-webkit-mask-position:50% 0;mask-position:50% 0}.home-aura .home-orbit{fill:none;stroke-width:1.4px;opacity:.4;position:absolute}.home-aura .home-orbit ellipse{fill:none;stroke:inherit;stroke-width:inherit;vector-effect:non-scaling-stroke}.home-aura .home-orbit--one{width:clamp(360px,42vw,620px);height:clamp(360px,42vw,620px);stroke:var(--green-base);animation:64s linear infinite home-spin;top:-120px;right:-90px}.home-aura .home-orbit--two{width:clamp(320px,38vw,560px);height:clamp(320px,38vw,560px);stroke:var(--navy-light);opacity:.26;animation:88s linear infinite reverse home-spin;bottom:-160px;left:-120px}.home-hero{min-height:calc(100svh - var(--hero-offset));max-width:var(--page-max);grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(2.5rem,5vw,5rem);margin:0 auto;padding-block:clamp(1rem,3vh,2.5rem);display:grid}.home-hero__content{max-width:36rem}.home-hero__title{margin:clamp(.5rem,1.5vh,1.25rem) 0 0;font-size:clamp(2.3rem,5vw,3.7rem)}.home-hero__title .home-mark{color:var(--green-dark);white-space:nowrap;position:relative}.home-hero__title .home-mark:after{content:"";z-index:-1;border-radius:var(--radius-pill);background:var(--green-lighter);opacity:.7;transform-origin:0;height:.34em;animation:home-underline var(--dur-slow) var(--ease-soft) .7s forwards;position:absolute;bottom:.08em;left:-.06em;right:-.06em;transform:scaleX(0)}.home-hero__subtitle{max-width:33rem;color:var(--ink-muted);margin:clamp(.75rem,2vh,1.4rem) 0 0;font-size:clamp(1.05rem,1.4vw,1.22rem);line-height:1.65}.home-hero__actions{gap:var(--space-sm);flex-wrap:wrap;margin-top:clamp(1rem,2.5vh,2rem);display:flex}.home-hero__visual{justify-self:center;position:relative}.home-eyebrow{border-radius:var(--radius-pill);background:var(--tint-green);border:1px solid var(--green-lighter);color:var(--green-darkest);letter-spacing:.02em;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.home-eyebrow svg{width:1rem;height:1rem;fill:var(--green-base);animation:home-twinkle 3.2s var(--ease-soft) infinite}.home-chips{flex-wrap:wrap;gap:.6rem;margin:clamp(1rem,2.5vh,2rem) 0 0;padding:0;list-style:none;display:flex}.home-chip{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);box-shadow:var(--shadow-card);cursor:default;transition:transform var(--dur-mid) var(--ease-soft), box-shadow var(--dur-mid) var(--ease-soft), border-color var(--dur-fast) ease, color var(--dur-fast) ease;align-items:center;gap:.5rem;padding:.5rem .95rem;font-size:.88rem;font-weight:600;display:inline-flex}.home-chip:before{content:"";background:var(--green-base);border-radius:50%;width:.5rem;height:.5rem}.home-chip:hover{box-shadow:var(--glow-green);border-color:var(--green-lighter);color:var(--ink);transform:translateY(-3px)}.home-screen{width:min(100%, 560px, var(--hero-media-cap));border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-screen);animation:home-float 7s var(--ease-soft) infinite;position:relative;overflow:hidden}.home-screen__bar{background:var(--tint-navy);border-bottom:1px solid var(--line);align-items:center;gap:.45rem;padding:.85rem 1.1rem;display:flex}.home-screen__bar span{background:var(--navy-lighter);border-radius:50%;width:.7rem;height:.7rem}.home-screen__bar span:first-child{background:var(--green-light)}.home-screen__bar span:nth-child(2){background:var(--color-warning);opacity:.7}.home-screen__view{aspect-ratio:16/10;background:var(--tint-navy)}.home-screen__view img{object-fit:cover;width:100%;height:100%;display:block}.home-spark{filter:drop-shadow(0 6px 14px #363a5f2e);place-items:center;display:grid;position:absolute}.home-spark svg{width:100%;height:100%}.home-spark--a{width:2.4rem;height:2.4rem;top:-1.1rem;left:-1.1rem}.home-spark--a svg{fill:var(--green-base)}.home-spark--a{animation:home-twinkle 3.6s var(--ease-soft) infinite}.home-spark--b{width:1.7rem;height:1.7rem;bottom:-.8rem;right:1.4rem}.home-spark--b svg{fill:var(--navy-light)}.home-spark--b{animation:home-twinkle 4.4s var(--ease-soft) .6s infinite}.home-section{max-width:var(--page-max);margin:0 auto;padding-top:clamp(4.5rem,10vw,8rem);scroll-margin-top:2rem}.home-section__head{text-align:center;max-width:42rem;margin:0 auto}.home-section__eyebrow{margin-bottom:var(--space-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);font-size:.82rem;font-weight:700;display:inline-block}.home-section__title{color:var(--ink);font-size:clamp(1.9rem,3.6vw,2.9rem)}.home-section__lead{margin:var(--space-md) auto 0;max-width:46rem;color:var(--ink-soft);font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.65}.home-audience-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:clamp(1.25rem,2.4vw,1.9rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}.home-audience-context{text-align:center;letter-spacing:.01em;max-width:52rem;color:var(--ink-muted);margin:clamp(2rem,4vw,2.75rem) auto 0;font-size:.95rem;font-weight:600}.home-card{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:transform var(--dur-mid) var(--ease-soft), box-shadow var(--dur-mid) var(--ease-soft), border-color var(--dur-mid) ease;flex-direction:column;align-items:flex-start;padding:clamp(1.6rem,2.6vw,2.2rem);display:flex}.home-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--green-lighter);transform:translateY(-4px)scale(1.02)}.home-card__icon{width:3.4rem;height:3.4rem;margin-bottom:var(--space-md);border-radius:var(--radius-md);background:var(--tint-green);color:var(--green-dark);transition:transform var(--dur-mid) var(--ease-soft);place-items:center;display:grid}.home-card__icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.65rem;height:1.65rem}.home-card:hover .home-card__icon{transform:scale(1.08)rotate(-3deg)}.home-card__title{color:var(--ink);font-size:1.3rem}.home-card__text{margin-top:var(--space-xs);color:var(--ink-muted);font-size:1rem;line-height:1.6}.home-competency-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}.home-competency{text-align:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:transform var(--dur-mid) var(--ease-soft), box-shadow var(--dur-mid) var(--ease-soft), border-color var(--dur-mid) ease;flex-direction:column;padding:clamp(1.5rem,2.6vw,2rem) 1.1rem;display:flex}.home-competency:hover{box-shadow:var(--shadow-card-hover);border-color:var(--green-lighter);transform:translateY(-4px)scale(1.02)}.home-competency__icon{background:var(--tint-green);width:3.2rem;height:3.2rem;color:var(--green-dark);transition:transform var(--dur-mid) var(--ease-soft);border-radius:50%;place-items:center;display:grid}.home-competency__icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.55rem;height:1.55rem}.home-competency:hover .home-competency__icon{transform:scale(1.08)}.home-competency__title{color:var(--ink);font-size:1.1rem}.home-competency__text{color:var(--ink-muted);font-size:.92rem;line-height:1.5}.home-step-grid{counter-reset:step;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.6rem);margin-top:clamp(2.5rem,5vw,3.5rem);padding:0;list-style:none;display:grid}.home-step{padding-top:var(--space-md);position:relative}.home-step:before{content:"";top:calc(1.5rem + var(--space-md));background:repeating-linear-gradient(90deg, var(--green-light) 0 8px, transparent 8px 16px);opacity:.7;width:calc(100% - 4.8rem);height:2px;position:absolute;left:calc(50% + 2.4rem)}.home-step:last-child:before{display:none}.home-step__num{width:3rem;height:3rem;margin:0 auto var(--space-md);background:var(--surface);border:2px solid var(--green-base);color:var(--green-dark);font-family:var(--font-display);box-shadow:0 8px 20px -8px var(--main-color-30);border-radius:50%;place-items:center;font-size:1.35rem;font-weight:600;display:grid}.home-step__title{text-align:center;color:var(--ink);font-size:1.25rem}.home-step__text{margin:var(--space-xs) auto 0;text-align:center;max-width:18rem;color:var(--ink-muted);font-size:.98rem;line-height:1.6}.home-resource-grid{grid-template-columns:repeat(2,1fr);gap:clamp(1.25rem,2.6vw,2rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}.home-resource{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:transform var(--dur-mid) var(--ease-soft), box-shadow var(--dur-mid) var(--ease-soft), border-color var(--dur-mid) ease;flex-direction:column;align-items:flex-start;padding:clamp(1.8rem,3vw,2.6rem);display:flex}.home-resource:hover{box-shadow:var(--shadow-card-hover);border-color:var(--green-lighter);transform:translateY(-4px)scale(1.02)}.home-resource__icon{width:3.6rem;height:3.6rem;margin-bottom:var(--space-md);border-radius:var(--radius-md);background:var(--tint-green);color:var(--green-dark);transition:transform var(--dur-mid) var(--ease-soft);place-items:center;display:grid}.home-resource__icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.8rem;height:1.8rem}.home-resource:hover .home-resource__icon{transform:scale(1.08)}.home-resource__title{color:var(--ink);font-size:1.4rem}.home-resource__text{margin-top:var(--space-xs);color:var(--ink-muted);font-size:1.02rem;line-height:1.65}.home-final{max-width:1120px;margin:clamp(4.5rem,10vw,8rem) auto 0}.home-final__card{border-radius:var(--radius-xl);text-align:center;color:var(--white);background:var(--gradient-warm);box-shadow:0 40px 90px -36px var(--main-color-70);padding:clamp(2.75rem,6vw,5rem) clamp(1.5rem,5vw,4rem);position:relative;overflow:hidden}.home-final__glow{z-index:0;pointer-events:none;background:radial-gradient(620px 320px at 82% -10%,#79c1436b 0%,#0000 60%),radial-gradient(520px 280px at 8% 120%,#79c14338 0%,#0000 60%);position:absolute;inset:0}.home-final__title,.home-final__text,.home-final__actions{z-index:1;position:relative}.home-final__title{color:var(--white);font-size:clamp(2rem,4vw,3rem)}.home-final__text{max-width:34rem;margin:var(--space-md) auto 0;color:#ffffffdb;font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.6}.home-final__actions{justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.home-reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease-soft), transform var(--dur-slow) var(--ease-soft);transform:translateY(28px)}.home-reveal.is-visible{opacity:1;transform:none}.home-rise{opacity:0;animation:home-rise var(--dur-slow) var(--ease-soft) forwards}.d-1{animation-delay:50ms}.d-2{animation-delay:.14s}.d-3{animation-delay:.23s}.d-4{animation-delay:.32s}.d-5{animation-delay:.41s}@keyframes home-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes home-float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes home-spin{to{transform:rotate(360deg)}}@keyframes home-twinkle{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}@keyframes home-underline{to{transform:scaleX(1)}}@media (width<=920px){.home-hero{text-align:center;grid-template-columns:1fr;gap:clamp(2.5rem,7vw,3.5rem);min-height:auto;padding-block:0}.home-hero__content{max-width:none}.home-hero__subtitle{margin-inline:auto}.home-hero__actions,.home-hero .home-chips{justify-content:center}.home-step-grid{grid-template-columns:1fr;max-width:24rem;margin-inline:auto}.home-step:before{display:none}}@media (width<=760px){.home-resource-grid{grid-template-columns:1fr}}@media (width<=560px){.home-hero__actions{flex-direction:column}.home-hero__actions .btn{width:100%}.home-final__actions{flex-direction:column}.home-final__actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home .home-rise,.home .home-screen,.home .home-orbit,.home .home-spark svg,.home .home-eyebrow svg,.home .home-mark:after{animation:none!important}.home .home-rise{opacity:1;transform:none}.home .home-mark:after{transform:scaleX(1)}.home .btn,.home .home-card,.home .home-card__icon,.home .home-competency,.home .home-competency__icon,.home .home-resource,.home .home-resource__icon,.home .home-chip,.home .home-cta svg{transition:none}.home-reveal{opacity:1;transition:none;transform:none}}.ModalStyle .overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ModalStyle .overlay.position_center{justify-content:center;align-items:center}.ModalStyle .overlay.position_aside-right{justify-content:flex-end;align-items:stretch}.ModalStyle .overlay.position_aside-left{justify-content:flex-start;align-items:stretch}.ModalStyle .overlay.position_bottom-sheet{justify-content:center;align-items:flex-end}.ModalStyle .modal{background:#fff;border-radius:12px;flex-direction:column;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.ModalStyle .modal.size_s{width:min(400px,90vw)}.ModalStyle .modal.size_m{width:min(560px,90vw)}.ModalStyle .modal.size_l{width:min(800px,90vw)}.ModalStyle .modal.size_xl{width:min(1100px,95vw)}.ModalStyle .modal.size_full{border-radius:0;width:100vw;height:100vh;max-height:100vh}.ModalStyle .modal.pos_aside-right{border-radius:12px 0 0 12px;height:100%;max-height:100vh}.ModalStyle .modal.pos_aside-left{border-radius:0 12px 12px 0;height:100%;max-height:100vh}.ModalStyle .modal.pos_bottom-sheet{border-radius:12px 12px 0 0;width:100%;max-width:100vw;max-height:85vh}.ModalStyle .header{background:var(--navy-base);border-bottom:1px solid #e5e7eb;border-radius:12px 12px 0 0;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.ModalStyle .title{color:#fff;margin:0;font-size:1rem;font-weight:600}.ModalStyle .closeButton{cursor:pointer;color:#fff;background:#ffffff26;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:background .15s;display:flex}.ModalStyle .closeButton:hover{background:#ffffff40}.ModalStyle .description{color:#6b7280;margin:0;padding:.75rem 1.25rem 0;font-size:.875rem}.ModalStyle .body{flex:1;padding:1.25rem;overflow-y:auto}.ModalStyle .footer{background:#f9fafb;border-top:1px solid #e5e7eb;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;padding:1rem 1.25rem;display:flex}.games-container .games-header{animation:games-rise var(--dur-slow) var(--ease-soft) both;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:clamp(1.75rem,3.5vw,2.5rem);display:flex}.games-container .games-header__intro{max-width:40rem}.games-container .games-header__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin-bottom:.4rem;font-size:.78rem;font-weight:700;display:inline-block}.games-container .games-header__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.9rem,4vw,2.7rem);font-weight:600;line-height:1.05}.games-container .games-header__sub{color:var(--ink-muted);margin-top:.5rem;font-size:.98rem;line-height:1.6}.games-container .games-add-btn{box-shadow:0 10px 22px -12px var(--main-color-50);transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-soft);flex-shrink:0}.games-container .games-add-btn:hover{transform:translateY(-2px)}.games-container .games-add-btn:active{transform:translateY(0)scale(.98)}.games-container .games-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(1.1rem,2.2vw,1.6rem);display:grid}.games-container .game-card{border:1px solid var(--line);border-radius:var(--radius-md);background-color:var(--surface);box-shadow:var(--shadow-card);opacity:0;animation:games-rise var(--dur-slow) var(--ease-soft) forwards;transition:transform var(--dur-mid) var(--ease-soft), box-shadow var(--dur-mid) var(--ease-soft), border-color var(--dur-mid) ease;flex-direction:column;display:flex;overflow:hidden}.games-container .game-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--green-lighter);transform:translateY(-6px)}.games-container .game-card:hover .game-cover{transform:scale(1.05)}.games-container .game-card .game-cover-wrapper{flex-shrink:0;position:relative;overflow:hidden}.games-container .game-card .game-cover-wrapper:after{content:"";pointer-events:none;background:linear-gradient(#1a1c2e42,#0000);height:70px;position:absolute;inset:0 0 auto}.games-container .game-card .game-cover{object-fit:cover;width:100%;height:180px;transition:transform var(--dur-slow) var(--ease-soft);display:block}.games-container .game-card .game-overlay-btns{z-index:1;gap:6px;display:flex;position:absolute;top:10px;right:10px}.games-container .game-card .game-overlay-btn{-webkit-backdrop-filter:blur(8px);width:36px;height:36px;color:var(--navy-base);cursor:pointer;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-soft);background:#ffffffd1;border:1px solid #ffffffb3;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 4px 12px #1a1c2e2e}.games-container .game-card .game-overlay-btn:hover{transform:translateY(-1px)}.games-container .game-card .game-overlay-btn:active{transform:scale(.94)}.games-container .game-card .game-overlay-btn--edit:hover{background:var(--color-warning-light);color:var(--color-warning-dark)}.games-container .game-card .game-overlay-btn--delete:hover{background:var(--color-danger-light);color:var(--color-danger)}.games-container .game-card .game-content{flex-direction:column;flex:1;gap:6px;padding:1.1rem 1.25rem .9rem;display:flex}.games-container .game-card .game-content .game-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.2rem;font-weight:600}.games-container .game-card .game-content .game-description-wrapper{flex-direction:column;gap:4px;display:flex}.games-container .game-card .game-content .game-description-wrapper .game-description{color:var(--gray-600);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.games-container .game-card .game-content .game-description-wrapper .game-description-info-btn{cursor:pointer;color:var(--green-dark);transition:opacity var(--dur-fast) ease;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;padding:0;font-size:.78rem;font-weight:600;display:inline-flex}.games-container .game-card .game-content .game-description-wrapper .game-description-info-btn:hover{text-decoration:underline}.games-container .game-card .game-content .game-description-wrapper .game-description-info-btn svg{flex-shrink:0;width:13px;height:13px}.games-container .game-card .game-actions{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:auto;padding:.85rem 1rem 1rem;display:flex}.games-container .game-card .game-play-btn{width:100%;box-shadow:0 10px 22px -14px var(--main-color-50);transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft);gap:8px}.games-container .game-card .game-play-btn:hover{box-shadow:0 14px 26px -14px var(--main-color-50);transform:translateY(-2px)}.games-container .game-card .game-play-btn:active{transform:translateY(0)scale(.98)}.games-container .game-card .game-tools{gap:6px;display:flex}.games-container .game-card .game-tools:empty{display:none}.games-container .game-card .game-tool-btn{border-radius:var(--radius-sm);background:var(--gray-100);min-width:0;min-height:40px;color:var(--ink-soft);transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-soft);flex:1 1 0;gap:5px;padding:6px 8px;font-size:12px}.games-container .game-card .game-tool-btn svg{flex-shrink:0}.games-container .game-card .game-tool-btn:hover{background:var(--green-lightest);color:var(--green-dark)}.games-container .game-card .game-tool-btn:active{transform:scale(.97)}.games-container .game-card:first-child{animation-delay:40ms}.games-container .game-card:nth-child(2){animation-delay:.1s}.games-container .game-card:nth-child(3){animation-delay:.16s}.games-container .game-card:nth-child(4){animation-delay:.22s}.games-container .game-card:nth-child(5){animation-delay:.28s}.games-container .game-card:nth-child(6){animation-delay:.34s}@keyframes games-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.games-container .games-header,.games-container .game-card{opacity:1;transform:none;animation:none!important}.games-container .game-card,.games-container .games-add-btn,.games-container .game-cover,.games-container .game-play-btn,.games-container .game-tool-btn,.games-container .game-overlay-btn{transition:none}.games-container .game-card:hover .game-cover{transform:none}}.game-desc-popover-overlay{z-index:9998;background:0 0;position:fixed;inset:0}.game-desc-popover{z-index:9999;color:#f8fafc;white-space:normal;word-break:break-word;background:#1e293b;border-radius:10px;max-width:280px;padding:12px 15px;font-size:.82rem;line-height:1.65;animation:.15s popover-in;position:fixed;box-shadow:0 8px 28px #00000040}.game-desc-popover .game-desc-popover-arrow{border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;position:absolute}.game-desc-popover .game-desc-popover-arrow.arrow-down{border-top:7px solid #1e293b;bottom:-7px}.game-desc-popover .game-desc-popover-arrow.arrow-up{border-bottom:7px solid #1e293b;top:-7px}@keyframes popover-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.games-modal .generate-token-form{flex-direction:column;gap:.5rem;display:flex}.games-modal .generate-token-form label{color:var(--navy-dark);margin-top:8px;font-size:13px;font-weight:600}.games-modal .generate-token-form .field{color:var(--navy-darkest);background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.games-modal .generate-token-form .field:focus{border-color:var(--navy-base);box-shadow:0 0 0 3px var(--main-color-10);background:#fff;outline:none}.games-modal .generate-token-form .qr-container{border:1px solid var(--gray-200);background:#fff;border-radius:12px;justify-content:center;margin-top:12px;padding:16px;display:flex}.games-modal-footer{flex-wrap:wrap;gap:8px;display:flex}.tokens-empty{color:var(--gray-600);text-align:center;padding:1.5rem 0;font-size:14px}.tokens-list{flex-direction:column;gap:1rem;display:flex}.token-item{border:1px solid var(--gray-200);border-radius:10px;flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.token-item--active{background:#f0fdf4;border-color:#86efac}.token-item--inactive{opacity:.8;background:#fff7f7;border-color:#fca5a5}.token-item .token-info{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.token-item .token-info .token-code{color:var(--navy-dark);letter-spacing:2px;font-family:monospace;font-size:1rem;font-weight:700}.token-item .token-info .token-status{border-radius:99px;padding:2px 10px;font-size:11px;font-weight:700}.token-item .token-info .token-status.status-active{color:#15803d;background:#bbf7d0}.token-item .token-info .token-status.status-expired{color:#b91c1c;background:#fecaca}.token-item .token-info .token-status.status-exhausted{color:#c2410c;background:#fed7aa}.token-item .token-details{color:var(--gray-600);flex-wrap:wrap;gap:.4rem 1.25rem;font-size:12px;display:flex}.token-item .token-details strong{color:var(--navy-dark)}.token-item .token-link-row .field{color:var(--navy-darkest);background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:7px 10px;font-size:12px}.token-item .token-actions{flex-wrap:wrap;gap:6px;display:flex}.token-item .token-actions .btn{padding:6px 10px;font-size:11px}.delete-confirm-text{color:var(--navy-dark);margin:0;padding:.5rem 0;font-size:14px;line-height:1.6}.manual-modal{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:70vh;padding:.5rem;display:flex;overflow:hidden}.manual-modal .manual-image{object-fit:contain;pointer-events:none;border-radius:8px;max-width:100%;max-height:100%;transition:transform .1s}.manual-modal .manual-pdf{border:none;border-radius:8px;width:100%;height:100%}.manual-zoom-controls{align-items:center;gap:4px;display:flex}.manual-zoom-controls .manual-zoom-label{color:var(--navy-dark);text-align:center;min-width:38px;font-size:12px;font-weight:600}@media (width<=640px){.games-container{padding:1.25rem .75rem}.games-container .games-header{flex-direction:column;align-items:stretch}.games-container .games-add-btn{width:100%}.games-container .games-list{grid-template-columns:1fr;gap:1rem}.games-container .game-card .game-cover{height:160px}.games-container .game-card .game-tool-btn{min-height:42px;font-size:11px}.games-modal-footer{flex-wrap:wrap}.games-modal-footer .btn,.token-item .token-actions .btn{flex:auto;justify-content:center}}.add-game-container{--page-max:680px}.add-game-container .add-game-header{text-align:center;animation:add-game-rise var(--dur-slow) var(--ease-soft) both;margin-bottom:clamp(1.5rem,3vw,2.25rem)}.add-game-container .add-game-header__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin-bottom:.5rem;font-size:.78rem;font-weight:700;display:inline-block}.add-game-container .add-game-header__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:600;line-height:1.1}.add-game-container .add-game-header__sub{color:var(--ink-muted);margin-top:.55rem;font-size:.98rem;line-height:1.6}.add-game-container .add-game-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:add-game-rise var(--dur-slow) var(--ease-soft) 80ms both;flex-direction:column;gap:1.25rem;padding:clamp(1.5rem,3.5vw,2.25rem);display:flex}.add-game-container .label-hint{color:var(--gray-600);margin-left:4px;font-size:11px;font-weight:400}.add-game-container .form-error-banner{background:var(--color-danger-light);color:var(--color-danger-dark);border-radius:var(--radius-sm);border:1px solid #fca5a5;padding:.7rem .95rem;font-size:.85rem;font-weight:600}.add-game-container .submit-btn{width:100%;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-mid) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);box-shadow:0 12px 26px -12px var(--main-color-50);margin-top:.5rem}.add-game-container .submit-btn:hover{transform:translateY(-2px)}.add-game-container .submit-btn:active{transform:translateY(0)scale(.98)}@keyframes add-game-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.add-game-container{padding:1.25rem .85rem}.add-game-container .add-game-form{border-radius:var(--radius-md);padding:1.35rem 1.1rem}}@media (prefers-reduced-motion:reduce){.add-game-container .add-game-header,.add-game-container .add-game-form{opacity:1;animation:none;transform:none}.add-game-container .submit-btn{transition:none}}.play{background:var(--navy-darkest);flex:1;min-height:70vh;display:flex;position:relative}.play__frame{border:none;flex:1;width:100%;margin:0;padding:0}.play__back{z-index:5;border-radius:var(--radius-pill,999px);color:var(--ink);font-family:var(--font-body);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.6;transition:opacity var(--dur-fast,.2s) ease, transform var(--dur-fast,.2s) var(--ease-soft,ease);background:#ffffffeb;align-items:center;gap:.4rem;padding:.55rem .95rem;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex;position:absolute;top:1rem;left:1rem;box-shadow:0 10px 26px -10px #00000080}.play__back svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:1.05em;height:1.05em}.play__back:hover{opacity:1;transform:translateY(-2px)}.play__back:active{transform:translateY(0)scale(.97)}.play__loading{z-index:4;background:var(--navy-darkest);color:#ffffffd1;font-family:var(--font-body);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:.95rem;font-weight:600;display:flex;position:absolute;inset:0}.play__dots{gap:.5rem;display:flex}.play__dots span{background:var(--green-base);width:.7rem;height:.7rem;animation:play-pulse 1.1s var(--ease-soft,ease) infinite;border-radius:50%}.play__dots span:nth-child(2){animation-delay:.16s}.play__dots span:nth-child(3){animation-delay:.32s}.play--invalid{color:var(--white);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:2rem}.play--invalid p{font-family:var(--font-display);font-size:clamp(1.3rem,3vw,1.7rem);font-weight:600}@keyframes play-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.play__dots span{opacity:.7;animation:none}.play__back{transition:none}}.users-container .users-header{animation:users-rise var(--dur-slow,.34s) var(--ease-soft,ease) both;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:clamp(1.5rem,3vw,2.25rem);display:flex}.users-container .users-header__intro{max-width:40rem}.users-container .users-header__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin-bottom:.4rem;font-size:.78rem;font-weight:700;display:inline-block}.users-container .users-header__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.9rem,4vw,2.7rem);font-weight:600;line-height:1.05}.users-container .users-header__sub{color:var(--ink-muted);margin-top:.5rem;font-size:.98rem;line-height:1.6}.users-container .users-add-btn{box-shadow:0 10px 22px -12px var(--main-color-50);transition:background-color var(--dur-fast,.2s) ease, border-color var(--dur-fast,.2s) ease, transform var(--dur-fast,.2s) var(--ease-soft,ease);flex-shrink:0}.users-container .users-add-btn:hover{transform:translateY(-2px)}.users-container .users-add-btn:active{transform:translateY(0)scale(.98)}.users-container .users-table-wrapper{-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg,28px);box-shadow:var(--shadow-card);border:1px solid var(--line);background:var(--surface);animation:users-rise var(--dur-slow,.34s) var(--ease-soft,ease) 80ms both;overflow-x:auto}.users-container .users-table{border-collapse:collapse;width:100%;min-width:680px;font-size:14px}.users-container .users-table th{background:var(--navy-base);color:#fff;text-align:center;white-space:nowrap;padding:13px 14px;font-size:13px;font-weight:600}.users-container .users-table th:first-child{border-radius:var(--radius-lg,28px) 0 0 0}.users-container .users-table th:last-child{border-radius:0 var(--radius-lg,28px) 0 0}.users-container .users-table td{border-bottom:1px solid var(--gray-200);text-align:center;vertical-align:middle;color:var(--navy-darkest,#111827);padding:11px 14px}.users-container .users-table tr:last-child td{border-bottom:none}.users-container .users-table tr:hover td{background:#f8fafc}.users-container .users-empty{text-align:center;color:var(--gray-600);padding:2rem 0;font-size:14px}.users-container .user-username{color:var(--navy-base);font-weight:600}.users-container .role-badge{color:#1d4ed8;background:#dbeafe;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.users-container .no-role{color:var(--gray-600);font-size:12px}.users-container .status-badge{border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.users-container .status-badge.status-active{color:#15803d;background:#bbf7d0}.users-container .status-badge.status-inactive{color:#b91c1c;background:#fecaca}.users-container .user-actions{white-space:nowrap;justify-content:center;gap:6px;display:flex}.users-container .user-actions .btn{padding:5px 10px}.user-form{flex-direction:column;gap:1rem;padding:.25rem 0;display:flex}.user-form .form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.user-form .form-group{flex-direction:column;gap:4px;display:flex}.user-form .form-group label{color:var(--navy-dark);font-size:13px;font-weight:600}.user-form .form-group .label-hint{color:var(--gray-600);margin-left:4px;font-size:11px;font-weight:400}.user-form .form-group .field{color:var(--navy-darkest);background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.user-form .form-group .field:focus{border-color:var(--navy-base);box-shadow:0 0 0 3px var(--main-color-10);background:#fff;outline:none}.user-form .form-group .field.touched{border-color:#ef4444}.user-form .form-group select.field{cursor:pointer}.user-form .form-group .field-error{color:#ef4444;font-size:11px;font-weight:500}.user-form .form-check label{cursor:pointer;color:var(--navy-dark);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.user-form .form-check label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.user-form .status-checklist{border:1.5px solid var(--gray-200);background:#fafafa;border-radius:8px;flex-direction:row;gap:0;width:fit-content;padding:8px 12px;display:flex}.user-form .permissions-checklist{border:1.5px solid var(--gray-200);background:#fafafa;border-radius:8px;flex-flow:wrap;gap:0;display:flex;overflow:hidden}.user-form .permissions-checklist .perm-check-item{cursor:pointer;border-bottom:1px solid var(--gray-200);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 12px;transition:background .1s;display:flex}.user-form .permissions-checklist .perm-check-item:last-child{border-bottom:none}.user-form .permissions-checklist .perm-check-item:hover:not(.disabled){background:#f0f4f8}.user-form .permissions-checklist .perm-check-item.disabled{cursor:not-allowed;opacity:.6}.user-form .permissions-checklist .perm-check-item input[type=checkbox]{width:15px;height:15px;cursor:inherit;accent-color:var(--navy-base);flex-shrink:0;margin:0}.user-form .permissions-checklist .perm-check-item .perm-name{color:var(--navy-darkest);letter-spacing:.01em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12.5px}.users-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=640px){.users-container{padding:1.25rem .85rem}.users-container .users-header{flex-direction:column;align-items:stretch}.users-container .users-add-btn{width:100%}.users-container .users-table-wrapper{box-shadow:none;background:0 0;border:none;border-radius:0;overflow:visible}.users-container .users-table{min-width:0;display:block}.users-container .users-table thead{display:none}.users-container .users-table tbody{display:block}.users-container .users-table tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md,20px);box-shadow:var(--shadow-card);margin-bottom:1rem;padding:.35rem;display:block}.users-container .users-table tr:hover td{background:0 0}.users-container .users-table td{text-align:right;border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .85rem;display:flex}.users-container .users-table td:before{content:attr(data-label);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);text-align:left;flex-shrink:0;font-size:.72rem;font-weight:700}.users-container .users-table td:last-child{border-bottom:none}.users-container .users-table .user-actions{justify-content:flex-end}.users-container .users-table .user-actions:before{margin-right:auto}.users-container .users-table .users-empty{text-align:center;justify-content:center}.users-container .users-table .users-empty:before{display:none}.user-form .form-row{grid-template-columns:1fr}}@keyframes users-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.users-container .users-header,.users-container .users-table-wrapper{opacity:1;animation:none;transform:none}.users-container .users-add-btn{transition:none}}.ludo-loader{align-items:center;gap:var(--space-sm);font-family:var(--font-body);flex-direction:column;display:flex}.ludo-loader__ring{--ring-size:48px;--ring-thickness:4px;width:var(--ring-size);height:var(--ring-size);flex:none;position:relative}.ludo-loader__ring:before,.ludo-loader__ring:after{content:"";border-radius:50%;position:absolute;inset:0}.ludo-loader__ring:before{border:var(--ring-thickness) solid var(--navy-lightest)}.ludo-loader__ring:after{background:conic-gradient(var(--green-base), transparent 72%);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--ring-thickness)), #000 calc(100% - var(--ring-thickness)));-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--ring-thickness)), #000 calc(100% - var(--ring-thickness)));mask:radial-gradient(farthest-side, transparent calc(100% - var(--ring-thickness)), #000 calc(100% - var(--ring-thickness)));animation:.85s linear infinite ludo-loader-spin}.ludo-loader__label{letter-spacing:.01em;color:var(--ink-soft);text-align:center;animation:ludo-loader-breathe 1.6s var(--ease-soft) infinite;font-size:.95rem;font-weight:600}@keyframes ludo-loader-spin{to{transform:rotate(360deg)}}@keyframes ludo-loader-breathe{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.ludo-loader__ring:after{animation:1.4s ease-in-out infinite ludo-loader-breathe}.ludo-loader__label{opacity:.85;animation:none}}.loading-overlay{z-index:9999;padding:var(--space-lg);background:var(--main-color-50);-webkit-backdrop-filter:blur(10px)saturate(1.05);backdrop-filter:blur(10px)saturate(1.05);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-mid) var(--ease-soft), visibility var(--dur-mid) var(--ease-soft), backdrop-filter var(--dur-mid) var(--ease-soft);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}.loading-overlay__card{padding:var(--space-lg) var(--space-xl);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);box-shadow:var(--shadow-screen);opacity:0;transition:opacity var(--dur-slow) var(--ease-soft), transform var(--dur-slow) var(--ease-soft);background:#ffffffe0;border:1px solid #ffffffa6;justify-content:center;align-items:center;display:flex;transform:translateY(10px)scale(.96)}.loading-overlay.is-visible .loading-overlay__card{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.loading-overlay,.loading-overlay__card{transition:opacity var(--dur-fast) linear}.loading-overlay__card{transform:none}}.App{text-align:center}.App-logo{pointer-events:none;height:40vmin}@media (prefers-reduced-motion:no-preference){.App-logo{animation:20s linear infinite App-logo-spin}}:root{--navy-darkest:#1a1c2e;--navy-dark:#252840;--navy-base:#363a5f;--navy-light:#5c6190;--navy-lighter:#a8abbf;--navy-lightest:#eeeef5;--green-darkest:#2a4a14;--green-dark:#4a7a20;--green-base:#79c143;--green-light:#9dd46e;--green-lighter:#c8ecaa;--green-lightest:#eff9e5;--white:#fff;--gray-100:#f4f4f5;--gray-200:#e4e4e7;--gray-400:#a1a1aa;--gray-600:#52525b;--gray-800:#27272a;--primary-color:var(--navy-base);--secondary-color:var(--green-base);--text-dark:var(--navy-darkest);--text-medium:var(--navy-dark);--background-soft:var(--navy-lighter);--background-neutral:var(--navy-lightest);--main-color:var(--navy-base);--main-color-10:#363a5f1a;--main-color-20:#363a5f33;--main-color-30:#363a5f4d;--main-color-50:#363a5f80;--main-color-70:#363a5fb3;--main-color-90:#363a5fe6;--shadow-light:0 2px 8px var(--main-color-20);--shadow-medium:0 4px 15px var(--main-color-30);--shadow-heavy:0 8px 25px var(--main-color-50);--shadow-inset:inset 0 2px 4px var(--main-color-20);--gradient-main:linear-gradient(135deg, var(--navy-base), var(--navy-light));--gradient-warm:linear-gradient(135deg, var(--navy-dark), var(--navy-base));--gradient-soft:linear-gradient(135deg, var(--navy-lighter), var(--navy-lightest));--gradient-full:linear-gradient(90deg, var(--navy-darkest) 0%, var(--navy-dark) 25%, var(--navy-base) 50%, var(--navy-light) 75%, var(--navy-lightest) 100%);--color-success:#79c143;--color-success-dark:#4a7a20;--color-success-light:#eff9e5;--color-danger:#dc2626;--color-danger-dark:#991b1b;--color-danger-light:#fee2e2;--color-warning:#f59e0b;--color-warning-dark:#b45309;--color-warning-light:#fef3c7;--color-orange:#ea580c;--color-orange-dark:#9a3412;--color-orange-light:#ffedd5;--color-info:var(--navy-base);--color-info-dark:var(--navy-dark);--color-info-light:var(--navy-lightest);--btn-radius:6px;--btn-font-weight:600;--btn-transition:background-color .2s, border-color .2s, opacity .2s;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--space-2xs:.375rem;--space-xs:.625rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--space-3xl:8rem;--radius-sm:14px;--radius-md:20px;--radius-lg:28px;--radius-xl:40px;--radius-pill:999px;--ease-soft:cubic-bezier(.22, .61, .36, 1);--dur-fast:.2s;--dur-mid:.28s;--dur-slow:.34s;--ink:var(--navy-darkest);--ink-soft:var(--navy-dark);--ink-muted:var(--navy-light);--surface:var(--white);--tint-green:var(--green-lightest);--tint-navy:var(--navy-lightest);--line:var(--gray-200);--doodle-color:var(--navy-base);--doodle-opacity:.05;--doodle-size:600px;--shadow-card:0 1px 2px #363a5f0a, 0 14px 34px #363a5f14;--shadow-card-hover:0 2px 6px #363a5f14, 0 26px 54px #363a5f29;--shadow-screen:0 30px 80px -28px #363a5f73;--page-max:1200px;--page-gutter:clamp(1.25rem, 5vw, 2rem)}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}.page{width:100%;max-width:var(--page-max);padding:clamp(1.75rem, 4vw, 3rem) var(--page-gutter);margin-inline:auto}body{font-family:var(--font-body);color:var(--text-dark);background-color:#fbfdff;background-image:radial-gradient(900px 540px at 88% -6%, var(--green-lightest) 0%, transparent 60%), radial-gradient(820px 520px at 4% 12%, var(--navy-lightest) 0%, transparent 56%), linear-gradient(180deg, #fff 0%, #fbfdff 100%);background-repeat:no-repeat;background-attachment:fixed;line-height:1.6}.main-Container{grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.main-Container:before{content:"";z-index:-1;pointer-events:none;background-color:var(--doodle-color);opacity:var(--doodle-opacity);-webkit-mask:url(/assets/background-CpEAaMfu.png) 50% 0 / var(--doodle-size) auto repeat;-webkit-mask:url(/assets/background-CpEAaMfu.png) 50% 0 / var(--doodle-size) auto repeat;mask:url(/assets/background-CpEAaMfu.png) 50% 0 / var(--doodle-size) auto repeat;position:fixed;inset:0}.container-fluid{flex-direction:column;display:flex}.App-header{color:#fff;background-color:#282c34;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn{border-radius:var(--btn-radius);font-weight:var(--btn-font-weight);cursor:pointer;transition:var(--btn-transition);white-space:nowrap;border:2px solid #0000;justify-content:center;align-items:center;gap:6px;font-family:inherit;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-xsm{padding:4px 6px;font-size:10px}.btn-sm{padding:6px 10px;font-size:12px}.btn-m{padding:9px 16px;font-size:14px}.btn-l{padding:12px 24px;font-size:16px}.btn-xl{padding:clamp(13px,1.4vw,16px) clamp(22px,3vw,32px);font-size:clamp(16px,1.4vw,18px)}.btn-primary{background-color:var(--navy-base);color:var(--white);border-color:var(--navy-base)}.btn-primary:hover{background-color:var(--navy-dark);border-color:var(--navy-dark)}.btn-primary:active{background-color:var(--navy-darkest)}.btn-secondary{background-color:var(--green-base);color:var(--white);border-color:var(--green-base)}.btn-secondary:hover{background-color:var(--green-dark);border-color:var(--green-dark)}.btn-secondary:active{background-color:var(--green-darkest)}.btn-outline-primary{color:var(--navy-base);border-color:var(--navy-base);background-color:#0000}.btn-outline-primary:hover{background-color:var(--navy-lightest)}.btn-outline-secondary{color:var(--green-dark);border-color:var(--green-base);background-color:#0000}.btn-outline-secondary:hover{background-color:var(--green-lightest)}.btn-success{background-color:var(--color-success);color:var(--white);border-color:var(--color-success)}.btn-success:hover{background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.btn-danger{background-color:var(--color-danger);color:var(--white);border-color:var(--color-danger)}.btn-danger:hover{background-color:var(--color-danger-dark);border-color:var(--color-danger-dark)}.btn-danger-outline{color:var(--color-danger);border-color:var(--color-danger);background-color:#0000}.btn-danger-outline:hover{background-color:var(--color-danger-light)}.btn-warning{background-color:var(--color-warning);color:var(--white);border-color:var(--color-warning)}.btn-warning:hover{background-color:var(--color-warning-dark);border-color:var(--color-warning-dark)}.btn-warning-outline{color:var(--color-warning);border-color:var(--color-warning);background-color:#0000}.btn-warning-outline:hover{background-color:var(--color-warning-light)}.btn-orange{background-color:var(--color-orange);color:var(--white);border-color:var(--color-orange)}.btn-orange:hover{background-color:var(--color-orange-dark);border-color:var(--color-orange-dark)}.btn-ghost{color:var(--gray-600);background-color:#0000;border-color:#0000}.btn-ghost:hover{background-color:var(--gray-100);color:var(--gray-800)}.btn-white{background-color:var(--white);color:var(--navy-base);border-color:var(--white)}.btn-white:hover{background-color:var(--gray-100)}.btn-outline-white{color:var(--white);background-color:#0000;border-color:#ffffff8c}.btn-outline-white:hover{border-color:var(--white);background-color:#ffffff1f}.form-group{flex-direction:column;gap:6px;display:flex;position:relative}.form-group label{color:var(--navy-dark);font-size:13px;font-weight:600}.form-group input,.form-group textarea,.form-group select{border:1.5px solid var(--gray-200);color:var(--navy-darkest);box-sizing:border-box;background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .18s,box-shadow .18s}:is(.form-group input,.form-group textarea,.form-group select):focus{border-color:var(--navy-base);box-shadow:0 0 0 3px var(--main-color-10);outline:none}:is(.form-group input,.form-group textarea,.form-group select):user-invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc26261a}:is(.form-group input,.form-group textarea,.form-group select).touched:invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc26261a}:is(.form-group input,.form-group textarea,.form-group select).touched:invalid~.field-error{display:block}:is(.form-group input,.form-group textarea,.form-group select):user-invalid~.field-error{display:block}.form-group input[type=file]{cursor:pointer;padding:7px 10px}.form-group input[type=file]:user-invalid{border-color:var(--color-danger)}.form-group input[type=file].touched:invalid~.field-error{display:block}.form-group input[type=file]:user-invalid~.field-error{display:block}.form-group .field-error{color:var(--color-danger);letter-spacing:.02em;margin-top:-2px;font-size:11px;font-weight:600;display:none}.form-group:has(input[required]) label:after{content:" *";color:var(--color-danger);font-weight:700}.form-group:has(textarea[required]) label:after{content:" *";color:var(--color-danger);font-weight:700}.form-group:has(select[required]) label:after{content:" *";color:var(--color-danger);font-weight:700}
