:root{--surface:#070a14;--heading:#ecedf2;--text:#9599ab;--text-soft:#636780;--accent:#818cf8;--border:#ffffff0f;--border-light:#ffffff0a;--glass:#ffffff08;--glass-hover:#ffffff0d;--code-bg:#0d111f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:60px}body{background:var(--surface);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}::selection{color:#fff;background:#818cf84d}code,pre{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.875em}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.4s cubic-bezier(.16,1,.3,1) both fadeSlideUp}@keyframes itemFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:.35s cubic-bezier(.16,1,.3,1) both itemFadeIn}.gradient-text{background:linear-gradient(135deg,#a5b4fc 0%,#818cf8 25%,#a78bfa 50%,#f9a8d4 75%,#a5b4fc 100%) 0 0/200% 200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:8s infinite shimmer}@keyframes shimmer{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:16px;transition:all .25s}.glass-card:hover{background:var(--glass-hover);border-color:#ffffff1a}.bg-base{z-index:-5;background:var(--surface);position:fixed;inset:0}.bg-glow{z-index:-4;pointer-events:none;background:radial-gradient(65% 55% at 25% 15%,#818cf81a 0%,#0000 65%),radial-gradient(45% 40% at 75% 75%,#c084fc0f 0%,#0000 55%),radial-gradient(35% 30%,#6366f108 0%,#0000 50%);position:fixed;inset:0}.bg-grid{z-index:-3;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(70% 60%,#000 25%,#0000 70%);mask-image:radial-gradient(70% 60%,#000 25%,#0000 70%)}.bg-noise{z-index:-2;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.code-block{background:var(--code-bg);border:1px solid var(--border);color:#cdd6f4;border-radius:12px;padding:20px 24px;font-size:14px;line-height:1.7;overflow-x:auto}.code-block .copy-btn{border:1px solid var(--border);color:var(--text-soft);cursor:pointer;opacity:0;background:#ffffff0a;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11px;transition:opacity .2s,background .15s;position:absolute;top:12px;right:12px}.code-block:hover .copy-btn{opacity:1}.code-block .copy-btn:hover{color:var(--heading);background:#ffffff14}.code-keyword{color:#cba6f7}.code-func{color:#89b4fa}.code-string{color:#a6e3a1}.code-number{color:#fab387}.code-comment{color:#6c7086;font-style:italic}.code-operator{color:#89dceb}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff1f}.code-window{background:var(--code-bg);border:1px solid #ffffff14;border-radius:12px;overflow:hidden;box-shadow:0 8px 40px #0000004d}.code-window-header{border-bottom:1px solid var(--border-light);background:#ffffff08;align-items:center;gap:8px;padding:12px 16px;display:flex}.code-window-dot{border-radius:50%;width:10px;height:10px}.code-window-body{color:#cdd6f4;white-space:pre;padding:20px 24px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.8;overflow-x:auto}.progress-bar{z-index:200;background:linear-gradient(90deg,#818cf8,#a78bfa);width:0;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}kbd{color:var(--text-soft);background:#ffffff0f;border:1px solid #ffffff14;border-radius:4px;padding:2px 6px;font-family:inherit;font-size:11px;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid #818cf826;border-top-color:#818cf8;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}
