:root{--color-bg:#110e18;--color-surface:#1c1726;--color-border:#2e2541;--color-text:#e8e4ef;--color-text-muted:#a09bb0;--color-primary:#6b3fa0;--color-primary-hover:#8555c2;--color-accent:#d48a2e;--color-accent-hover:#e9a64a;--color-title:#c2611a;--color-success:#2d7a3a;--color-success-soft:rgba(45,122,58,.1);--color-error:#b43c3c;--color-error-soft:rgba(180,60,60,.1);--font-body:"Segoe UI",system-ui,-apple-system,sans-serif;--font-display:"MedievalSharp",cursive;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1080px;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--shadow-sm:0 1px 3px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.3);--shadow-lg:0 8px 24px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;overflow-x:hidden;overflow-y:scroll;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:1.6;min-height:100vh}img{display:block;height:auto;max-width:100%}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}button{background:none;border:none;cursor:pointer;font-family:inherit}h1,h2,h3,h4{color:var(--color-title);font-family:var(--font-display);font-weight:400;line-height:1.2}.container{margin-inline:auto;max-width:var(--container-xl);padding-inline:var(--space-lg);width:100%}@media(max-width:600px){.container{padding-inline:.75rem}}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.btn{border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:.75rem 1.75rem;text-decoration:none;transition:background var(--transition-base),transform .1s ease}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.5}@keyframes shimmer{0%{box-shadow:0 0 8px #6b3fa066,0 0 20px #6b3fa026,0 0 6px #d48a2e1a}50%{box-shadow:0 0 18px #8555c2b3,0 0 40px #8555c24d,0 0 14px #d48a2e4d}to{box-shadow:0 0 8px #6b3fa066,0 0 20px #6b3fa026,0 0 6px #d48a2e1a}}.btn-glow{animation:shimmer 3s ease-in-out infinite;background:#110e1899;border:2px solid var(--color-primary);border-radius:8px;color:var(--color-accent);cursor:pointer;display:inline-block;font-family:var(--font-display);font-size:1.4rem;padding:.9rem 2.2rem;text-decoration:none;text-shadow:0 0 10px rgba(212,138,46,.4);transition:transform var(--transition-fast),border-color var(--transition-base),color var(--transition-base)}.btn-glow:hover{animation:shimmer 1.5s ease-in-out infinite;border-color:var(--color-primary-hover);color:var(--color-accent-hover);text-shadow:0 0 14px rgba(212,138,46,.6);transform:translateY(-2px)}.form-group{margin-bottom:var(--space-lg)}.form-label{color:var(--color-text);display:block;font-weight:600;margin-bottom:var(--space-xs)}.form-label .required{color:var(--color-accent);font-size:.875rem;font-weight:400}.form-input,.form-textarea{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-body);font-size:1rem;padding:.75rem 1rem;transition:border-color var(--transition-fast);width:100%}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #d48a2e26;outline:none}.form-textarea{min-height:120px;resize:vertical}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.page-enter-active{transition:opacity .17s ease,transform .17s ease}.page-leave-active{transition:opacity .14s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:600px){.btn-glow{font-size:.95rem;padding:.55rem 1.3rem}}
