@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg-deep: #08070d;--bg-surface: #0f0e16;--bg-card: #15131d;--bg-card-hover: #1a1724;--bg-elevated: #211d2d;--purple-200: #ddd6fe;--purple-300: #c4b5fd;--purple-400: #a78bfa;--purple-500: #8b5cf6;--purple-600: #7c3aed;--purple-700: #5b21b6;--signal-accent: #b9a4ff;--on-accent: #100d18;--status-warn: #fbbf24;--status-error: #f87171;--text-primary: #f4f1fa;--text-secondary: #aaa4b8;--text-muted: #857f91;--text-faint: #5f5a6b;--border-subtle: rgba(255, 255, 255, .07);--border-default: rgba(196, 181, 253, .16);--border-strong: rgba(196, 181, 253, .34);--line: rgba(255, 255, 255, .08);--line-dashed: rgba(255, 255, 255, .09);--surface: linear-gradient(180deg, rgba(30, 27, 41, .8), rgba(17, 15, 24, .8));--surface-solid: linear-gradient(180deg, #1c1927, #110f18);--surface-inset: rgba(6, 5, 10, .5);--surface-raised: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));--bevel: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 -1px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 16px 40px -14px rgba(0, 0, 0, .6);--shadow-lg: 0 32px 90px -28px rgba(0, 0, 0, .75);--ring: 0 0 0 3px rgba(167, 139, 250, .26);--accent-shadow: inset 0 1px 0 rgba(255, 255, 255, .42), inset 0 -1px 0 rgba(16, 13, 24, .16), 0 10px 28px -10px rgba(139, 92, 246, .75);--glow-sm: var(--ring);--glow-md: var(--shadow-md);--glow-text: none;--gradient-brand: var(--purple-400);--font-sans: "Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, "SFMono-Regular", Consolas, monospace;--max-width: 1320px;--nav-height: 76px;--gutter: clamp(20px, 4vw, 54px);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:var(--nav-height);scrollbar-width:thin;scrollbar-color:var(--purple-600) var(--bg-deep);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{position:relative;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-x:hidden;isolation:isolate;background:var(--bg-deep);color:var(--text-primary);font-family:var(--font-sans);line-height:1.6;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}button,input,select,textarea{font:inherit;letter-spacing:inherit}button{color:inherit;background:none;border:none;cursor:pointer}u{text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:#f4f1fa66}::selection{background:#8b5cf66b;color:#fff}:focus-visible{outline:2px solid var(--purple-300);outline-offset:3px}.skip-link{position:fixed;top:12px;left:12px;z-index:3000;padding:10px 16px;border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-primary);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--purple-600);border:3px solid var(--bg-deep);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--purple-500)}.icon{display:block;flex:none;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46' viewBox='0 0 46 46'%3E%3Ccircle cx='2' cy='2' r='.8' fill='%23a78bfa' fill-opacity='.26'/%3E%3C/svg%3E");opacity:.62}main,.footer{position:relative;z-index:1}main{width:100%;flex:1 0 auto}.network-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.44}.snake-line{fill:none;stroke:#a78bfa53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--snake-span) 1;stroke-dashoffset:var(--snake-span);vector-effect:non-scaling-stroke;animation:snakeTravel var(--snake-duration) linear infinite;animation-delay:var(--snake-delay)}.snake-node{fill:var(--signal-accent);stroke:#c4b5fd47;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:snakeConnect var(--snake-duration) linear infinite;animation-delay:var(--node-delay)}@keyframes snakeTravel{0%{stroke-dashoffset:var(--snake-span);opacity:0}8%{opacity:.68}84%{opacity:.54}to{stroke-dashoffset:-1;opacity:0}}@keyframes snakeConnect{0%,to{opacity:0;transform:scale(1)}2.5%{opacity:.45;transform:scale(2)}8%{opacity:0;transform:scale(1)}}.cursor-glow{position:fixed;top:0;left:0;z-index:0;width:340px;height:340px;border-radius:50%;background:#7c3aed21;filter:blur(72px);opacity:0;pointer-events:none;will-change:transform;transition:opacity .22s ease}.cursor-glow.visible{opacity:1}.cursor-dot,.cursor-trail{position:fixed;top:0;left:0;z-index:10050;display:block;border-radius:50%;opacity:0;pointer-events:none;will-change:transform;scale:.6;transition:opacity .12s ease,scale .14s var(--ease-out)}.cursor-dot{width:14px;height:14px;border:2px solid rgba(255,255,255,.82);background:var(--purple-400);box-shadow:0 0 10px #a78bfaf2,0 0 24px #7c3aedb8}.cursor-trail{width:8px;height:8px;background:#a78bfac7;box-shadow:0 0 9px #8b5cf685}.cursor-dot.visible,.cursor-trail.visible{opacity:var(--trail-opacity, 1);scale:1}@media(pointer:fine)and (min-width:561px)and (prefers-reduced-motion:no-preference){html.has-custom-cursor:not(.use-native-cursor),html.has-custom-cursor:not(.use-native-cursor) *{cursor:none!important}}.navbar{position:fixed;top:14px;left:50%;z-index:1000;width:min(calc(100% - 28px),1420px);height:58px;transform:translate(-50%)}.nav-container{display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;padding:5px 6px 5px 7px;border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-full);background:#0e0d14db;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:var(--bevel),0 18px 50px -14px #000000b3;transition:background-color .24s ease,border-color .24s ease}.navbar.scrolled .nav-container{border-color:#ffffff1c;background:#0b0a10ed}.nav-brand{display:flex;align-items:center;flex-shrink:0;gap:9px;padding-right:8px;border-radius:var(--radius-full)}.nav-avatar{flex:none;width:32px;height:32px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #ffffff1f;transition:box-shadow .2s ease}.nav-brand:hover .nav-avatar{box-shadow:0 0 0 1px var(--purple-400),0 0 0 4px #a78bfa29}.nav-brand-info{display:flex;flex-direction:column;line-height:1}.nav-brand-name{color:var(--text-primary);font-size:.875rem;font-weight:600;letter-spacing:-.015em}.nav-brand-handle{display:none}.nav-links{position:relative;display:flex;flex-wrap:nowrap;gap:2px;isolation:isolate}.nav-link{position:relative;z-index:1;padding:7px 12px;border-radius:var(--radius-full);color:var(--text-secondary);font-size:.8125rem;font-weight:500;white-space:nowrap;transition:color .15s ease,background-color .15s ease}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-links:not(.has-indicator) .nav-link:hover{background:#ffffff0e}.nav-links:not(.has-indicator) .nav-link.active{background:#8b5cf647;box-shadow:inset 0 0 0 1px #c4b5fd29}.nav-indicator,.nav-hover{position:absolute;top:0;left:0;z-index:0;width:var(--w, 0px);height:100%;border-radius:var(--radius-full);pointer-events:none;transform:translate(var(--x, 0px))}.nav-indicator{background:#8b5cf642;box-shadow:inset 0 0 0 1px #c4b5fd2e,inset 0 1px #ffffff14;opacity:0}.nav-links.has-active .nav-indicator{opacity:1}.nav-hover{background:#ffffff0f;opacity:0;transition:opacity .18s ease}.nav-links.is-hovering .nav-hover{opacity:1;transition:opacity .18s ease,transform .32s var(--ease-out),width .32s var(--ease-out)}.nav-links.is-ready .nav-indicator{transition:opacity .2s ease,transform .42s var(--ease-out),width .42s var(--ease-out)}.nav-right{display:flex;align-items:center;flex-shrink:0;gap:12px}.nav-location{display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:.75rem;white-space:nowrap}.nav-location:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--signal-accent);box-shadow:0 0 10px #a78bfa80}.nav-clock{color:var(--text-secondary);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums;letter-spacing:0}.nav-cta{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 17px;border-radius:var(--radius-full);background:var(--purple-400);color:var(--on-accent);font-size:.8125rem;font-weight:600;white-space:nowrap;box-shadow:var(--accent-shadow);cursor:pointer;transition:transform .16s var(--ease-out),background-color .16s ease}.nav-cta:hover{background:var(--purple-300);transform:translateY(-1px)}.nav-hamburger{position:relative;display:none;width:44px;height:44px;flex:none;border-radius:var(--radius-full);transition:background-color .15s ease}.nav-hamburger:hover{background:#ffffff0d}.nav-hamburger span{position:absolute;top:50%;left:50%;width:18px;height:1.5px;margin:-.75px 0 0 -9px;border-radius:2px;background:var(--text-primary);transition:transform .32s var(--ease-out),opacity .2s ease}.nav-hamburger span:nth-child(1){transform:translateY(-4px)}.nav-hamburger span:nth-child(2){opacity:0}.nav-hamburger span:nth-child(3){transform:translateY(4px)}.nav-hamburger.open span:nth-child(1){transform:rotate(45deg)}.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg)}.mobile-menu{position:fixed;top:80px;left:14px;right:14px;z-index:999;display:none;flex-direction:column;gap:2px;max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);overflow-y:auto;padding:8px;border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-2xl);background:#0e0d14f2;backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:var(--bevel),var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.97);transform-origin:top right;transition:opacity .18s ease,transform .26s var(--ease-out),visibility 0s linear .26s}.mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .2s ease,transform .36s var(--ease-out),visibility 0s}.mobile-link,.mobile-cta{border-radius:var(--radius-lg);opacity:0;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,background-color .15s ease,color .15s ease}.mobile-menu.open .mobile-link,.mobile-menu.open .mobile-cta{opacity:1;transform:none;transition:opacity .26s ease,transform .42s var(--ease-out),background-color .15s ease,color .15s ease;transition-delay:calc(var(--i, 0) * 30ms + 40ms),calc(var(--i, 0) * 30ms + 40ms),0s,0s}.mobile-menu>:nth-child(2){--i: 1}.mobile-menu>:nth-child(3){--i: 2}.mobile-menu>:nth-child(4){--i: 3}.mobile-menu>:nth-child(5){--i: 4}.mobile-menu>:nth-child(6){--i: 5}.mobile-menu>:nth-child(7){--i: 6}.mobile-menu>:nth-child(8){--i: 7}.mobile-link{padding:13px 16px;color:var(--text-secondary);font-size:1rem;font-weight:500}.mobile-link:hover{background:#ffffff0d;color:var(--text-primary)}.mobile-link.active{background:#8b5cf633;color:var(--text-primary);box-shadow:inset 0 0 0 1px #c4b5fd24}.mobile-cta{margin-top:6px;padding:13px 16px;background:var(--purple-400);color:var(--on-accent);font-size:1rem;font-weight:600;text-align:center;box-shadow:inset 0 1px #fff6;cursor:pointer}.section-container{max-width:var(--max-width);margin:0 auto;padding-inline:var(--gutter)}.section-eyebrow,.card-index{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;line-height:1.2;letter-spacing:.1em;text-transform:uppercase}.section-eyebrow{color:var(--purple-300)}.section-eyebrow:before{content:"";width:5px;height:5px;border-radius:1.5px;background:currentColor;box-shadow:0 0 10px #c4b5fd99}.card-index{color:var(--text-muted)}.gradient-text{color:var(--purple-300)}.text-glow{color:var(--purple-300);font-weight:560}a.text-glow{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:#c4b5fd59;text-underline-offset:3px;transition:color .15s ease,text-decoration-color .15s ease}a.text-glow:hover{color:var(--purple-200);text-decoration-color:currentColor}a.text-glow u{text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius-full);font-size:.9375rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:transform .16s var(--ease-out),background-color .16s ease,border-color .16s ease,color .16s ease}.btn-primary{background:var(--purple-400);color:var(--on-accent);box-shadow:var(--accent-shadow)}.btn-primary:hover{background:var(--purple-300);transform:translateY(-1px)}.btn-secondary{border-color:#ffffff1a;background:#ffffff0a;color:var(--text-primary);box-shadow:var(--bevel)}.btn-secondary:hover{border-color:#ffffff2e;background:#ffffff12;transform:translateY(-1px)}.btn .icon{font-size:1.05em}.icon-nudge{transition:transform .24s var(--ease-out)}:is(a,button):hover>.icon-nudge{transform:translate(3px)}.nav-cta:active,.btn:active,.action-button:active,.back-btn:active,.copy-btn:active,.mobile-cta:active{transform:scale(.97)}.action-button-container{display:flex;justify-content:center;margin:24px 0}.action-button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);background:#ffffff0a;color:var(--text-primary);font-size:.875rem;font-weight:600;box-shadow:var(--bevel);transition:transform .16s var(--ease-out),background-color .16s ease,border-color .16s ease}.action-button:hover{border-color:var(--border-strong);background:#ffffff12;transform:translateY(-1px)}.action-button img{width:18px;height:18px;object-fit:contain}.action-button .arrow-swap{color:var(--text-muted);transition:color .16s ease}.action-button:hover .arrow-swap{color:var(--text-primary)}.back-btn{display:inline-flex;align-items:center;gap:8px;height:38px;margin-bottom:28px;padding:0 16px 0 12px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);background:#ffffff08;color:var(--text-secondary);font-size:.8125rem;font-weight:550;box-shadow:var(--bevel);transition:color .16s ease,border-color .16s ease,background-color .16s ease,transform .16s var(--ease-out)}.back-btn:hover{border-color:var(--border-strong);background:#ffffff0f;color:var(--text-primary)}.back-btn .icon{font-size:1rem;transition:transform .26s var(--ease-out)}.back-btn:hover .icon{transform:translate(-3px)}.arrow-swap{--out-x: 100%;--out-y: -100%;position:relative;display:inline-block;flex:none;width:1em;height:1em;overflow:hidden}.arrow-swap-right{--out-x: 100%;--out-y: 0%}.arrow-swap-left{--out-x: -100%;--out-y: 0%}.arrow-swap .icon{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:transform .38s var(--ease-out)}.arrow-swap .icon:last-child{transform:translate(calc(var(--out-x) * -1),calc(var(--out-y) * -1))}:is(a,button,[role=button]):hover .arrow-swap .icon:first-child{transform:translate(var(--out-x),var(--out-y))}:is(a,button,[role=button]):hover .arrow-swap .icon:last-child{transform:none}:is(.project-card,.social-card,.tool-card){isolation:isolate}:is(.project-card,.social-card,.tool-card):before,:is(.project-card,.social-card,.tool-card):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .32s ease}:is(.project-card,.social-card,.tool-card):before{top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(520px circle at var(--mx, 50%) var(--my, -20%),rgba(139,92,246,.11),transparent 42%)}:is(.project-card,.social-card,.tool-card):after{top:-1px;right:-1px;bottom:-1px;left:-1px;padding:1px;background:radial-gradient(280px circle at var(--mx, 50%) var(--my, -20%),rgba(196,181,253,.6),transparent 62%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}:is(.project-card,.social-card,.tool-card):hover:before,:is(.project-card,.social-card,.tool-card):hover:after{opacity:1}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:none;align-items:center;justify-content:center;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;border:0;background:transparent;color:inherit;opacity:0;transition-property:opacity,display,overlay;transition-duration:.22s;transition-timing-function:ease;transition-behavior:allow-discrete}.modal[open]{display:flex;opacity:1}.modal::backdrop{background:#0403089e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition-property:opacity,display,overlay;transition-duration:.22s;transition-behavior:allow-discrete}.modal[open]::backdrop{opacity:1}.modal-content{position:relative;width:min(420px,100%);padding:22px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-2xl);background:var(--surface-solid);box-shadow:var(--bevel),0 40px 100px -20px #000c,0 0 0 1px #0006;transform:translateY(12px) scale(.96);filter:blur(6px);transition:transform .34s var(--ease-out),filter .26s ease}.modal[open] .modal-content{transform:none;filter:none}@starting-style{.modal[open],.modal[open]::backdrop{opacity:0}.modal[open] .modal-content{transform:translateY(12px) scale(.96);filter:blur(6px)}}.modal-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding-right:40px}.modal-avatar img{width:48px;height:48px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #ffffff24}.modal-content h2{font-size:1.25rem;font-weight:600;letter-spacing:-.025em;line-height:1.2}.modal-header p{margin-top:3px;color:var(--text-muted);font-size:.8125rem;line-height:1.45}.modal-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--text-muted);font-size:1.125rem;transition:color .15s ease,background-color .15s ease,transform .2s var(--ease-out)}.modal-close:hover{background:#ffffff12;color:var(--text-primary);transform:rotate(90deg)}.contact-item{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding:10px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-inset)}.contact-item:last-child{margin-bottom:0}.contact-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--bevel)}.contact-icon img{width:20px;height:20px}.contact-text{display:flex;flex:1;flex-direction:column;min-width:0;line-height:1.25}.contact-text small{color:var(--text-muted);font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase}.contact-text strong{overflow:hidden;font-size:.9375rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.copy-btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px 0 11px;border-radius:var(--radius-full);background:var(--purple-400);color:var(--on-accent);font-size:.8125rem;font-weight:600;box-shadow:inset 0 1px #fff6;transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out)}.copy-btn:hover{background:var(--purple-300)}.copy-btn.copied{background:var(--purple-200)}.copy-btn.failed{background:var(--status-error);color:#1c0606}.copy-icons{position:relative;width:15px;height:15px}.copy-icons .icon{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;stroke-width:2;transition:opacity .2s ease,transform .32s var(--ease-spring),filter .2s ease}.copy-icons .icon:last-child,.copy-btn.copied .copy-icons .icon:first-child{opacity:0;transform:scale(.4) rotate(-30deg);filter:blur(3px)}.copy-btn.copied .copy-icons .icon:last-child{opacity:1;transform:none;filter:none}.copy-label.is-swapping{animation:textSwap .32s var(--ease-out)}@keyframes textSwap{0%{opacity:0;filter:blur(4px);transform:translateY(3px)}}.copy-btn .arrow-swap{font-size:15px}#backToTop{position:fixed;right:24px;bottom:24px;z-index:900;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#0e0d14e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);font-size:1.125rem;box-shadow:var(--bevel),var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.9);cursor:pointer;transition:opacity .2s ease,transform .3s var(--ease-out),visibility 0s linear .3s,border-color .15s ease}#backToTop.visible{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .2s ease,transform .3s var(--ease-out),visibility 0s,border-color .15s ease}#backToTop:hover{border-color:var(--border-strong)}#backToTop:active{transform:scale(.94)}#backToTop>.icon{transition:transform .26s var(--ease-out)}#backToTop:hover>.icon{transform:translateY(-2px)}.back-to-top-ring{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;transform:rotate(-90deg);pointer-events:none}.back-to-top-ring circle{fill:none;stroke:var(--purple-400);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--progress, 0))}.section-divider{width:100%;height:0;margin:32px 0;border:0;border-top:1px dashed var(--line-dashed)}.spoiler{padding:1px 6px;border-radius:5px;background-color:var(--bg-elevated);background-image:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.08) 50%,transparent 65%);background-size:250% 100%;color:transparent;text-align:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;animation:spoilerShimmer 2.6s linear infinite;transition:color .3s ease,background-color .3s ease}.spoiler:not(.revealed) *{color:transparent!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important;border-color:transparent!important}.spoiler.revealed{background-color:#ffffff0a;background-image:none;color:var(--text-primary);cursor:text;-webkit-user-select:text;user-select:text;animation:spoilerReveal .48s var(--ease-out)}.spoiler:focus-visible{outline:2px solid var(--purple-300);outline-offset:2px}@keyframes spoilerShimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes spoilerReveal{0%{filter:blur(6px)}}.animate-on-scroll{opacity:0;transform:translateY(18px);filter:blur(4px);transition:opacity .64s var(--ease-out),transform .64s var(--ease-out),filter .64s var(--ease-out);transition-delay:var(--delay, 0s)}.animate-on-scroll.visible{opacity:1;transform:none;filter:none}.page-section{animation:sectionFadeIn .28s var(--ease-out)}.page-section.fade-out{animation:sectionFadeOut .18s ease forwards}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(10px)}}@keyframes sectionFadeOut{to{opacity:0;transform:translateY(-6px)}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px);filter:blur(8px)}}.footer{flex-shrink:0;margin-top:96px;padding:36px 0 30px;border-top:1px solid var(--border-subtle);background:linear-gradient(180deg,#0d0c13b3,#08070deb)}.footer:before{content:"";position:absolute;top:-1px;left:50%;width:min(620px,80%);height:1px;background:linear-gradient(90deg,transparent,rgba(196,181,253,.5),transparent);transform:translate(-50%)}.footer-container{display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px 32px;max-width:var(--max-width);margin:0 auto;padding-inline:var(--gutter)}.footer-brand{display:flex;align-items:center;gap:10px;font-size:.9375rem;font-weight:600;letter-spacing:-.015em}.footer-avatar{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 1px #ffffff1f}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 24px;color:var(--text-muted);font-size:.8125rem}.footer-links a{transition:color .15s ease}.footer-links a:hover{color:var(--text-primary)}.footer-meta{display:flex;flex-wrap:wrap;grid-column:1 / -1;justify-content:space-between;gap:8px 24px;padding-top:20px;border-top:1px dashed var(--line-dashed);color:var(--text-muted);font-size:.75rem}.footer-credit-link{color:var(--purple-300);font-weight:600;transition:color .15s ease}.footer-credit-link:hover{color:var(--purple-200)}@media(max-width:1240px){.navbar{width:min(calc(100% - 24px),760px)}.nav-container{padding-inline:7px 5px}.nav-links,.nav-right{display:none}.nav-hamburger{display:block}.mobile-menu{display:flex}}@media(max-width:560px){.navbar{top:10px;width:calc(100% - 20px)}.mobile-menu{top:76px;left:10px;right:10px}.nav-brand-name{font-size:.8125rem}.cursor-glow,.cursor-dot,.cursor-trail{display:none}#backToTop{right:16px;bottom:16px}.footer-container{grid-template-columns:1fr}.footer-links{justify-content:flex-start}.footer-meta{flex-direction:column}}@media(max-width:480px){.modal-content{padding:18px}.contact-item{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}.snake-line{animation:none!important;stroke-dashoffset:0;stroke-dasharray:var(--snake-span) 1;opacity:.14}.snake-node{animation:none!important;opacity:0;transform:none}.spoiler{animation:none!important}.cursor-dot,.cursor-trail{display:none}}
