:root{--color-bg: #030712;--color-surface: #111827;--color-surface-glass: rgba(30, 41, 59, .8);--color-gold: #FCD34D;--color-gold-hover: #F59E0B;--color-gold-glow: rgba(252, 211, 77, .3);--color-primary: #3b82f6;--color-primary-glow: rgba(59, 130, 246, .5);--color-accent: #6366f1;--color-accent-glow: rgba(99, 102, 241, .5);--color-text: #f8fafc;--color-text-muted: #94a3b8;--color-border: #334155;--font-main: "Outfit", sans-serif;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 8px;--shadow-neu-flat: 5px 5px 10px #0b111f, -5px -5px 10px #233147;--shadow-neu-pressed: inset 5px 5px 10px #0b111f, inset -5px -5px 10px #233147;--shadow-glow: 0 0 25px var(--color-primary-glow);--shadow-card: 0 20px 50px -10px rgba(0, 0, 0, .5)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--color-bg);color:var(--color-text);overflow-x:hidden;line-height:1.6}a{text-decoration:none;color:inherit}html{scroll-behavior:smooth}.container{max-width:1280px;margin:0 auto;padding:0 24px}.glass{background:#ffffffb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.text-gradient{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;border-radius:100px;font-weight:600;font-size:1rem;transition:all .3s ease;cursor:pointer;border:none;outline:none}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;box-shadow:0 4px 15px var(--color-primary-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px var(--color-primary-glow)}.btn-glass{background:#fff9;border:1px solid rgba(0,0,0,.1);color:var(--color-text);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-weight:600}.btn-glass:hover{background:#fff3;transform:translateY(-2px)}.magic-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer}.magic-text{color:#fff;z-index:20}.mic-wave{width:6px;height:6px;background:var(--color-primary);border-radius:50%;animation:wave 1s ease-in-out infinite}@keyframes wave{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(2);opacity:1}}.patronus-perimeter{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;opacity:0;z-index:10}.patronus-perimeter.running{opacity:1}.patronus-runner{position:absolute;width:200px;height:auto;filter:drop-shadow(0 0 20px rgba(100,200,255,.8));offset-path:path("M0,0 L100%,0 L100%,100% L0,100% Z");animation:none;opacity:0}.patronus-perimeter.running .patronus-runner{animation:borderRun 3s linear forwards}@keyframes borderRun{0%{top:10%;left:-200px;opacity:0;transform:scaleX(1)}10%{opacity:1}40%{top:10%;left:100%;transform:scaleX(1)}41%{transform:scaleX(-1)}50%{top:80%;left:100%;transform:scaleX(-1)}90%{top:80%;left:-200px;opacity:1;transform:scaleX(-1)}to{top:80%;left:-400px;opacity:0}}.patronus-runner-gsap{opacity:0;transition:opacity 1s ease-in-out}.magic-overlay.trigger .patronus-runner-gsap{opacity:1}.flash-whiteout{position:absolute;top:50%;left:50%;width:0;height:0;background:#fff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;z-index:5}.magic-overlay.trigger .flash-whiteout{animation:flashExpand 2s ease-out forwards}.magic-overlay.trigger{animation:fadeOutOverlay 1s ease-in-out 1.5s forwards}@keyframes flashExpand{0%{width:0;height:0;opacity:1}10%{opacity:1;box-shadow:0 0 100px 50px #fff}40%{width:300vmax;height:300vmax;opacity:1}to{width:300vmax;height:300vmax;opacity:0}}@keyframes fadeOutOverlay{to{opacity:0;visibility:hidden}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.animate-fade-in{animation:fadeIn .8s ease-out forwards}.animate-float{animation:float 6s ease-in-out infinite}
