.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-none);text-decoration:none;border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--white);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--outline{background-color:transparent;color:var(--color-text);border-color:var(--color-border-strong)}.btn--outline:hover:not(:disabled){background-color:var(--color-bg-tertiary);border-color:var(--color-text-tertiary)}.btn--ghost{background-color:transparent;color:var(--color-text);border-color:transparent}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.btn--lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.form-label--required::after{content:' *';color:var(--color-error)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--color-border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input--error{border-color:var(--color-error)}.form-input--error:focus{box-shadow:0 0 0 3px rgb(239 68 68 / .2)}.form-hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.form-error{font-size:var(--text-sm);color:var(--color-error)}.card{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-card)}.card--interactive{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.feature-card{padding:var(--space-6);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.feature-card__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:var(--space-4);background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-lg)}.feature-card__title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.feature-card__description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.alert{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm)}.alert--success{background-color:rgb(34 197 94 / .1);color:var(--color-success);border:1px solid rgb(34 197 94 / .2)}.alert--error{background-color:rgb(239 68 68 / .1);color:var(--color-error);border:1px solid rgb(239 68 68 / .2)}.alert--warning{background-color:rgb(245 158 11 / .1);color:var(--color-warning);border:1px solid rgb(245 158 11 / .2)}.alert--info{background-color:rgb(59 130 246 / .1);color:var(--color-info);border:1px solid rgb(59 130 246 / .2)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--color-text);border-radius:var(--radius-lg);transition:background-color var(--transition-fast)}.theme-toggle:hover{background-color:var(--color-bg-tertiary)}.theme-toggle__icon--moon{display:none}[data-theme=dark] .theme-toggle__icon--sun{display:none}[data-theme=dark] .theme-toggle__icon--moon{display:block}@media (prefers-color-scheme:dark){[data-theme=system] .theme-toggle__icon--sun{display:none}[data-theme=system] .theme-toggle__icon--moon{display:block}}.btn--social{width:100%;padding:var(--space-3) var(--space-4);background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-weight:var(--font-medium)}.btn--social:hover:not(:disabled){background-color:var(--color-bg-tertiary);border-color:var(--color-border-strong)}.btn--social svg{width:20px;height:20px}.btn--discord{background-color:#5865f2;border-color:#5865f2;color:var(--white)}.btn--discord:hover:not(:disabled){background-color:#4752c4;border-color:#4752c4}.btn--roblox{background-color:red;border-color:red;color:var(--white)}.btn--roblox:hover:not(:disabled){background-color:#c00;border-color:#c00}.divider{display:flex;align-items:center;gap:var(--space-4);color:var(--color-text-tertiary);font-size:var(--text-sm)}.divider::after,.divider::before{content:'';flex:1;height:1px;background-color:var(--color-border)}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge--success{background-color:rgb(34 197 94 / .1);color:var(--color-success)}.badge--error{background-color:rgb(239 68 68 / .1);color:var(--color-error)}.hero__eyebrow{font-size:var(--text-sm);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:var(--space-4)}.hero__stats{display:flex;gap:var(--space-8);margin-top:var(--space-10);justify-content:center;flex-wrap:wrap}.hero__stat{text-align:center}.hero__stat-number{display:block;font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-primary);line-height:1}.hero__stat-label{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-1)}.testimonials{padding:var(--space-20) 0;background-color:var(--color-bg-secondary)}.testimonial-card{max-width:800px;margin:0 auto;padding:var(--space-8);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-align:center}.testimonial-card__quote{font-size:var(--text-lg);font-style:italic;color:var(--color-text);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}.testimonial-card__quote::before{content:'"';font-size:var(--text-4xl);color:var(--color-primary);opacity:.3;line-height:0;vertical-align:-.4em;margin-right:var(--space-1)}.testimonial-card__author{display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.testimonial-card__avatar{width:56px;height:56px;border-radius:var(--radius-full);object-fit:cover}.testimonial-card__info{text-align:left}.testimonial-card__name{display:block;font-size:var(--text-base);font-weight:var(--font-semibold);font-style:normal;color:var(--color-text)}.testimonial-card__role{display:block;font-size:var(--text-sm);color:var(--color-text-secondary)}#page-loader{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .2s}#page-loader.page-loader--active{opacity:1}.page-loader__bar{height:100%;width:0;background:linear-gradient(90deg,var(--color-primary),var(--primary-400));animation:page-loading 1.5s ease-in-out infinite}@keyframes page-loading{0%{width:0;margin-left:0}50%{width:70%;margin-left:0}100%{width:100%;margin-left:0}}#app-content{animation:fadeIn .2s ease-out}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}