:root{--bg-0:#05060a;--bg-1:#080a12;--bg-2:#0b0e18;--surface:#ffffff08;--surface-2:#ffffff0e;--stroke:#ffffff16;--stroke-strong:#ffffff29;--text-1:#f2f5fb;--text-2:#a9b3c7;--text-3:#77809a;--blue:#4d8dff;--violet:#8b5cf6;--cyan:#39d5f0;--green:#34d399;--grad:linear-gradient(120deg, var(--blue), var(--violet));--grad-soft:linear-gradient(120deg, #4d8dff24, #8b5cf624);--glow-blue:0 0 44px #4d8dff47;--glow-violet:0 0 44px #8b5cf642;--font-display:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body:"Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", ui-monospace, monospace;--radius:18px;--radius-sm:12px;--nav-h:72px;--ease-out:cubic-bezier(.16, 1, .3, 1);--container:1180px;--gutter:clamp(20px, 5vw, 48px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background:var(--bg-0);color:var(--text-1);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65;overflow-x:hidden}img,svg,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{color:#fff;background:#4d8dff59}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}section{scroll-margin-top:calc(var(--nav-h) + 12px)}.container{width:min(100% - (var(--gutter) * 2), var(--container));margin-left:auto;margin-right:auto}.section{padding-top:max(84px,min(11vw,148px));padding-bottom:max(84px,min(11vw,148px));position:relative}.section--alt{background:radial-gradient(60% 40% at 85% 0%, #8b5cf60d, transparent 70%), var(--bg-1)}.page-bg{z-index:-2;pointer-events:none;background:radial-gradient(52rem 36rem at 12% -8%, #4d8dff1f, transparent 60%), radial-gradient(44rem 34rem at 96% 14%, #8b5cf61a, transparent 62%), radial-gradient(40rem 30rem at 50% 115%, #39d5f00d, transparent 60%), var(--bg-0);position:fixed;top:0;bottom:0;left:0;right:0}.page-grid{z-index:-1;pointer-events:none;background-image:linear-gradient(#ffffff07 1px,#0000 1px),linear-gradient(90deg,#ffffff07 1px,#0000 1px);background-size:72px 72px;position:fixed;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 0,#000 30%,#0000 78%);mask-image:radial-gradient(90% 70% at 50% 0,#000 30%,#0000 78%)}.page-noise{z-index:-1;pointer-events:none;opacity:.032;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;top:0;bottom:0;left:0;right:0}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.08}.grad-text{background:linear-gradient(115deg, #8ab8ff 0%, var(--blue) 30%, var(--violet) 70%, #c4b5fd 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.section-head{margin-bottom:max(40px,min(6vw,64px))}.section-head .kicker{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);align-items:center;gap:10px;margin-bottom:14px;font-size:.78rem;display:inline-flex}.section-head .kicker:before{content:"";background:linear-gradient(90deg, var(--cyan), transparent);width:26px;height:1px}.section-head h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:max(1.9rem,min(4.4vw,3rem));font-weight:700;line-height:1.12}.section-head p.lead{max-width:640px;color:var(--text-2);margin-top:14px;font-size:max(.98rem,min(1.6vw,1.08rem))}.btn{letter-spacing:.01em;transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .35s var(--ease-out), border-color .35s var(--ease-out);will-change:transform;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:14px 26px;font-size:.95rem;font-weight:600;display:inline-flex;position:relative}.btn svg{flex:none;width:17px;height:17px}.btn--primary{color:#fff;background:var(--grad);box-shadow:0 10px 30px -10px #4d8dff8c,inset 0 1px #ffffff40}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 42px -10px #6366f1a6,inset 0 1px #ffffff4d}.btn--ghost{color:var(--text-1);background:var(--surface);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(10px)}.btn--ghost:hover{border-color:var(--stroke-strong);background:var(--surface-2);transform:translateY(-2px)}.btn:active{transform:translateY(0)scale(.98)}.link-pill{font-family:var(--font-mono);border:1px solid var(--stroke);background:var(--surface);color:var(--text-2);transition:.3s var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:.8rem;display:inline-flex}.link-pill svg{width:15px;height:15px}.link-pill:hover{color:#fff;background:#4d8dff1a;border-color:#4d8dff80;transform:translateY(-1px)}.chip{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-2);background:var(--surface);border:1px solid var(--stroke);transition:.3s var(--ease-out);border-radius:999px;align-items:center;gap:7px;padding:6px 13px;font-size:.74rem;display:inline-flex}.chip:hover{color:#fff;background:#8b5cf61a;border-color:#8b5cf673}.chip--accent{color:#cdddff;background:#4d8dff1a;border-color:#4d8dff59}.chip--placeholder{color:var(--text-3);background:0 0;border-style:dashed;border-color:#ffffff38}.chip--placeholder:before{content:"+";color:var(--cyan);font-weight:600}.slot{color:var(--text-3);font-family:var(--font-mono);border:1px dashed #ffffff40;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:.76rem;display:inline-flex}.slot svg{width:14px;height:14px;color:var(--cyan)}.card{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);transition:border-color .4s var(--ease-out), transform .4s var(--ease-out), box-shadow .4s var(--ease-out);position:relative;overflow:hidden}.card:after{content:"";border-radius:inherit;opacity:0;transition:opacity .45s var(--ease-out);background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), #7896ff17, transparent 42%);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.card:hover{border-color:var(--stroke-strong)}.card:hover:after{opacity:1}.tilt{transform-style:preserve-3d;transition:transform .5s var(--ease-out);will-change:transform}.tilt-inner{transform-style:preserve-3d;transform:translateZ(26px)}.navbar{z-index:100;height:var(--nav-h);transition:background .4s var(--ease-out), border-color .4s var(--ease-out), backdrop-filter .4s var(--ease-out);border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar.is-scrolled{-webkit-backdrop-filter:blur(18px)saturate(1.4);border-bottom-color:var(--stroke);background:#05060aad}.navbar__inner{width:min(100% - (var(--gutter) * 2), var(--container));justify-content:space-between;align-items:center;gap:20px;margin-left:auto;margin-right:auto;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:12px;font-size:1.02rem;font-weight:700;display:inline-flex}.brand__mark{background:var(--grad);color:#fff;letter-spacing:.02em;border-radius:11px;place-items:center;width:38px;height:38px;font-size:.82rem;font-weight:700;display:grid;box-shadow:0 6px 18px -6px #6366f199}.brand__name span{color:var(--text-3);font-weight:500}.nav-links{align-items:center;gap:4px;list-style:none;display:flex}.nav-links a{color:var(--text-2);border-radius:999px;padding:9px 14px;font-size:.88rem;font-weight:500;transition:color .3s,background .3s;position:relative}.nav-links a:hover{color:var(--text-1)}.nav-links a.active{color:#fff;background:#788cff1f;box-shadow:inset 0 0 0 1px #788cff40}.nav-links a .dot{background:var(--cyan);opacity:0;width:4px;height:4px;transition:.3s var(--ease-out);border-radius:99px;position:absolute;top:50%;left:10px;translate:0 -50%;scale:0}.nav-links a.active .dot{opacity:1;scale:1}.nav-cta{display:inline-flex}@media (max-width:980px){.nav-links,.nav-cta{display:none}}.nav-burger{border:1px solid var(--stroke);background:var(--surface);width:44px;height:44px;color:var(--text-1);border-radius:12px;place-items:center;display:none}.nav-burger svg{width:20px;height:20px}@media (max-width:980px){.nav-burger{display:grid}}.mobile-menu{z-index:99;-webkit-backdrop-filter:blur(26px)saturate(1.3);padding:var(--gutter);opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out);background:#05060ad1;flex-direction:column;justify-content:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.mobile-menu.open{opacity:1;pointer-events:auto}.mobile-menu a{font-family:var(--font-display);color:var(--text-2);opacity:0;transition:transform .55s var(--ease-out), opacity .55s var(--ease-out), color .3s;border-bottom:1px solid #ffffff0f;align-items:baseline;gap:16px;padding:13px 6px;font-size:max(1.6rem,min(6vw,2.2rem));font-weight:600;display:flex;transform:translateY(18px)}.mobile-menu.open a{opacity:1;transform:translateY(0)}.mobile-menu a:hover,.mobile-menu a.active{color:#fff}.mobile-menu a .idx{font-family:var(--font-mono);color:var(--cyan);font-size:.72rem}.mobile-menu__foot{gap:12px;margin-top:28px;display:flex}.hero{min-height:100svh;padding-top:var(--nav-h);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:clip}.hero__canvas{z-index:0;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.hero__inner{z-index:1;width:min(100% - (var(--gutter) * 2), var(--container));margin-left:auto;margin-right:auto;padding-top:max(40px,min(6vh,72px));padding-bottom:max(40px,min(6vh,72px));position:relative}.hero__badge-row{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:26px;display:flex}.avatar{width:58px;height:58px;font-family:var(--font-display);color:#fff;background:var(--grad);border:2px solid #ffffff2e;border-radius:50%;place-items:center;font-size:1.05rem;font-weight:700;display:grid;overflow:hidden;box-shadow:0 0 0 4px #4d8dff1f,0 10px 26px -8px #6366f18c}.avatar img{object-fit:cover;width:100%;height:100%}.hero__tag{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--stroke);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:9px;padding:8px 15px;font-size:.76rem;display:inline-flex}.hero__tag .pulse{background:var(--green);border-radius:99px;width:7px;height:7px;animation:2.4s infinite pulse;box-shadow:0 0 #34d39999}@keyframes pulse{0%{box-shadow:0 0 #34d39980}70%{box-shadow:0 0 0 9px #34d39900}to{box-shadow:0 0 #34d39900}}.hero h1{margin-bottom:18px;font-size:max(2.6rem,min(7.2vw,4.9rem))}.hero__tagline{font-family:var(--font-display);color:var(--text-1);letter-spacing:-.01em;margin-bottom:18px;font-size:max(1.15rem,min(2.6vw,1.7rem));font-weight:600}.hero__tagline .sep{color:var(--text-3);padding-left:4px;padding-right:4px}.hero__intro{max-width:560px;color:var(--text-2);margin-bottom:34px;font-size:max(1rem,min(1.7vw,1.09rem))}.hero__actions{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:30px;display:flex}.hero__socials{align-items:center;gap:10px;display:flex}.icon-btn{width:44px;height:44px;color:var(--text-2);background:var(--surface);border:1px solid var(--stroke);transition:.32s var(--ease-out);border-radius:13px;place-items:center;display:grid}.icon-btn svg{width:19px;height:19px}.icon-btn:hover{color:#fff;box-shadow:var(--glow-blue);background:#4d8dff1f;border-color:#4d8dff8c;transform:translateY(-3px)}.hero__meta{color:var(--text-3);font-family:var(--font-mono);flex-wrap:wrap;gap:22px;font-size:.78rem;display:flex}.hero__meta span{align-items:center;gap:8px;display:inline-flex}.hero__meta svg{width:14px;height:14px;color:var(--cyan)}.hero__scroll{z-index:1;color:var(--text-3);font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;font-size:.68rem;display:flex;position:absolute;bottom:26px;left:50%;translate:-50%}.hero__scroll .line{background:linear-gradient(to bottom, var(--cyan), transparent);width:1px;height:44px;animation:drip 2.2s var(--ease-out) infinite;transform-origin:top}@keyframes drip{0%{transform:scaleY(0)}45%{transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.orb-fallback{aspect-ratio:1;background:radial-gradient(circle at 32% 30%,#8ab8ff80,#0000 42%),radial-gradient(circle at 68% 64%,#8b5cf666,#0000 46%),radial-gradient(circle,#101527 0%,#0a0d18 62%,#070910 100%);border:1px solid #ffffff12;border-radius:50%;width:max(280px,min(34vw,460px));position:absolute;top:50%;right:8vw;translate:0 -50%;box-shadow:0 0 90px #4d8dff29,inset 0 0 70px #4d8dff1a}.orb-fallback:before{content:"";border:1px dashed #788cff38;border-radius:50%;position:absolute;top:-11%;bottom:-11%;left:-11%;right:-11%}.orb-fallback:after{content:"";border:1px solid #39d5f024;border-radius:50%;position:absolute;top:14%;bottom:14%;left:14%;right:14%}.marquee{background:#ffffff04;border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;padding-top:20px;padding-bottom:20px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000)}.marquee__track{gap:48px;width:-webkit-max-content;width:-moz-max-content;width:max-content;animation:34s linear infinite marquee;display:flex}.marquee__track span{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;align-items:center;gap:48px;font-size:.98rem;font-weight:600;display:inline-flex}.marquee__track span:after{content:"✦";color:var(--blue);font-size:.7rem}@keyframes marquee{to{transform:translate(-50%)}}.about-grid{grid-template-columns:1.25fr .9fr;align-items:start;gap:max(28px,min(4vw,56px));display:grid}.about-copy p+p{color:var(--text-2);margin-top:18px}.about-copy p:first-child{color:var(--text-1);font-size:1.08rem}.about-copy .hl{color:#cdddff;background:linear-gradient(#0000 62%,#4d8dff38 62%);font-weight:500}.about-facts{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px;display:grid}.fact{border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--surface);padding:16px 18px}.fact dt{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);margin-bottom:5px;font-size:.68rem}.fact dd{font-size:.95rem;font-weight:600}.about-side{top:calc(var(--nav-h) + 24px);gap:14px;display:grid;position:-webkit-sticky;position:sticky}.about-card{border-radius:var(--radius);border:1px solid var(--stroke);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:24px}.about-card .who{align-items:center;gap:14px;margin-bottom:16px;display:flex}.about-card .who .avatar{width:50px;height:50px;font-size:.92rem}.about-card .who b{font-family:var(--font-display);font-size:1.02rem}.about-card .who small{color:var(--text-3);font-family:var(--font-mono);font-size:.72rem;display:block}.about-card p{color:var(--text-2);font-size:.92rem}.about-card .acts{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.pillars{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:max(40px,min(6vw,64px));display:grid}.pillar{border-radius:var(--radius);border:1px solid var(--stroke);background:var(--surface);transition:.4s var(--ease-out);padding:22px}.pillar:hover{background:#4d8dff0f;border-color:#4d8dff66;transform:translateY(-4px)}.pillar__icon{color:#cdddff;background:var(--grad-soft);border:1px solid #788cff38;border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:14px;display:grid}.pillar__icon svg{width:20px;height:20px}.pillar h3{font-family:var(--font-display);margin-bottom:7px;font-size:.99rem}.pillar p{color:var(--text-2);font-size:.87rem}.projects-grid{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}.projects-grid .project-card--featured{grid-column:1/-1}.project-card{flex-direction:column;display:flex}.project-card__art{aspect-ratio:16/8.4;border-bottom:1px solid var(--stroke);position:relative;overflow:hidden}.project-card--featured .project-card__art{aspect-ratio:21/7.4}.project-card__art img{object-fit:cover;width:100%;height:100%}.art-gen{background:radial-gradient(120% 130% at 12% 0%, color-mix(in srgb, var(--from) 26%, transparent), transparent 55%), radial-gradient(120% 130% at 90% 110%, color-mix(in srgb, var(--to) 30%, transparent), transparent 55%), #0a0d16;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.art-gen:before{content:"";background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:36px 36px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(80% 90% at 50% 40%,#000,#0000 85%);mask-image:radial-gradient(80% 90% at 50% 40%,#000,#0000 85%)}.art-gen__label{font-family:var(--font-display);letter-spacing:.06em;background:linear-gradient(135deg, var(--from), var(--to));-webkit-text-fill-color:transparent;filter:drop-shadow(0 8px 30px #00000073);-webkit-background-clip:text;background-clip:text;font-size:max(2.4rem,min(6vw,4.2rem));font-weight:700;position:relative}.art-gen__ring{aspect-ratio:1;border:1px dashed #ffffff24;border-radius:50%;width:62%;position:absolute}.art-tag{z-index:2;font-family:var(--font-mono);letter-spacing:.08em;color:#ffffff8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05060a8c;border:1px dashed #fff3;border-radius:7px;padding:4px 9px;font-size:.64rem;position:absolute;bottom:12px;left:14px}.project-card__body{flex-direction:column;flex:1;gap:14px;padding:22px 24px 24px;display:flex}.project-card__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.project-card__top .status{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);white-space:nowrap;background:#39d5f012;border:1px solid #39d5f047;border-radius:999px;padding:5px 11px;font-size:.68rem}.project-card h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.3rem}.project-card--featured h3{font-size:1.55rem}.project-card .tagline{color:var(--text-3);font-family:var(--font-mono);margin-top:-10px;font-size:.78rem}.project-card p.desc{color:var(--text-2);font-size:.93rem}.project-card ul.feats{gap:7px;list-style:none;display:grid}.project-card ul.feats li{color:var(--text-2);padding-left:20px;font-size:.87rem;position:relative}.project-card ul.feats li:before{content:"▹";color:var(--blue);position:absolute;left:2px}.project-card__tech{flex-wrap:wrap;gap:7px;display:flex}.project-card__links{flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px;display:flex}.skills-grid{grid-template-columns:repeat(6,1fr);gap:16px;display:grid}.skill-panel{grid-column:span 2;padding:26px}.skill-panel:first-child,.skill-panel:nth-child(2){grid-column:span 3}.skill-panel__head{align-items:center;gap:13px;margin-bottom:8px;display:flex}.skill-panel__icon{color:#cdddff;background:var(--grad-soft);border:1px solid #788cff38;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.skill-panel__icon svg{width:20px;height:20px}.skill-panel__head h3{font-family:var(--font-display);font-size:1.04rem}.skill-panel__blurb{color:var(--text-3);margin-bottom:16px;font-size:.84rem}.skill-panel__chips{flex-wrap:wrap;gap:8px;display:flex}.skill-note{color:var(--text-3);font-size:.8rem;font-family:var(--font-mono);align-items:center;gap:10px;margin-top:22px;display:flex}.skill-note svg{width:15px;height:15px;color:var(--cyan);flex:none}.timeline{gap:20px;max-width:860px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(#4d8dff8c,#8b5cf64d,#0000);width:1px;position:absolute;top:8px;bottom:8px;left:21px}.tl-item{border-radius:var(--radius);border:1px solid var(--stroke);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:.4s var(--ease-out);padding:22px 24px 22px 66px;position:relative}.tl-item:hover{border-color:#4d8dff61;transform:translate(4px)}.tl-item__node{background:var(--bg-0);border:1px solid #788cff80;border-radius:50%;place-items:center;width:19px;height:19px;display:grid;position:absolute;top:26px;left:12px}.tl-item__node:after{content:"";background:var(--blue);border-radius:99px;width:7px;height:7px}.tl-item--win .tl-item__node{border-color:#ffc454a6;box-shadow:0 0 18px #ffbe5059}.tl-item--win .tl-item__node:after{background:linear-gradient(135deg,#ffd76e,#ff9d3c)}.tl-item__badges{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:5px 12px;font-size:.7rem}.badge--win{color:#ffd76e;background:#ffbe5017;border-color:#ffc45473}.badge--participation{color:#9fd0ff;background:#78aaff14;border-color:#78aaff66}.badge--build{color:#b7f5e3;background:#34d39914;border-color:#34d39966}.tl-item h3{font-family:var(--font-display);margin-bottom:4px;font-size:1.12rem}.tl-item .org{color:var(--text-3);font-family:var(--font-mono);margin-bottom:10px;font-size:.78rem}.tl-item p{color:var(--text-2);max-width:640px;font-size:.92rem}.certs-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px;display:grid}.cert-card__preview{aspect-ratio:16/10;border-bottom:1px solid var(--stroke);position:relative;overflow:hidden}.cert-card__preview img{object-fit:cover;object-position:center top;width:100%;height:100%}.cert-ph{background:radial-gradient(90% 100% at 20% 0,#4d8dff1a,#0000 60%),repeating-linear-gradient(-45deg,#ffffff05 0,#ffffff05 10px,#0000 10px,#0000 20px),#090c15;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.cert-ph__inner{color:var(--text-3);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.cert-ph__inner svg{color:#788cff99;width:34px;height:34px}.cert-ph__inner span{font-family:var(--font-mono);letter-spacing:.08em;font-size:.7rem}.cert-card__body{gap:10px;padding:20px 22px 22px;display:grid}.cert-card__body .type{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-size:.68rem}.cert-card__body h3{font-family:var(--font-display);font-size:1.06rem;line-height:1.3}.cert-card__meta{color:var(--text-2);gap:6px;font-size:.85rem;display:grid}.cert-card__meta div{justify-content:space-between;gap:14px;display:flex}.cert-card__meta dt{color:var(--text-3);font-family:var(--font-mono);font-size:.72rem}.cert-card__meta dd{text-align:right;font-size:.85rem}.cert-card__actions{gap:10px;margin-top:4px;display:flex}.contact-grid{grid-template-columns:1.05fr .95fr;align-items:start;gap:max(28px,min(4vw,56px));display:grid}.contact-cta{border-radius:calc(var(--radius) + 6px);background:radial-gradient(90% 120% at 100% 0%, #8b5cf624, transparent 55%), radial-gradient(80% 100% at 0% 100%, #4d8dff1f, transparent 55%), var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #788cff38;padding:max(28px,min(4vw,44px))}.contact-cta h2{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:16px;font-size:max(1.7rem,min(3.6vw,2.5rem));line-height:1.15}.contact-cta>p{color:var(--text-2);max-width:480px;margin-bottom:26px}.contact-email{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:26px;display:flex}.contact-email .email-line{font-family:var(--font-mono);color:#cdddff;background:#4d8dff12;border:1px solid #4d8dff4d;border-radius:12px;align-items:center;gap:10px;padding:12px 18px;font-size:.95rem;display:inline-flex}.contact-email .email-line svg{width:16px;height:16px;color:var(--blue)}.contact-actions{flex-wrap:wrap;gap:12px;display:flex}.social-cards{gap:12px;display:grid}.social-card{border-radius:var(--radius);border:1px solid var(--stroke);background:var(--surface);transition:.35s var(--ease-out);align-items:center;gap:16px;padding:17px 19px;display:flex}.social-card:hover{background:#4d8dff0f;border-color:#788cff73;transform:translateY(-3px)}.social-card__icon{color:#fff;background:var(--grad-soft);border:1px solid #788cff40;border-radius:13px;flex:none;place-items:center;width:44px;height:44px;display:grid}.social-card__icon svg{width:20px;height:20px}.social-card b{font-family:var(--font-display);font-size:.98rem;display:block}.social-card span{color:var(--text-3);font-family:var(--font-mono);font-size:.75rem}.social-card .arrow{color:var(--text-3);transition:.3s var(--ease-out);margin-left:auto}.social-card .arrow svg{width:17px;height:17px}.social-card:hover .arrow{color:var(--cyan);transform:translate(3px,-3px)}.footer{border-top:1px solid var(--stroke);background:linear-gradient(#0000,#4d8dff08);padding:44px 0 30px}.footer__grid{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.footer__meta{color:var(--text-2);align-items:center;gap:10px;font-size:.9rem;display:flex}.footer__meta svg.heart{color:#ff7ab8;width:15px;height:15px}.footer__bottom{color:var(--text-3);font-family:var(--font-mono);border-top:1px solid #ffffff0d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:26px;padding-top:20px;font-size:.74rem;display:flex}.footer__socials{gap:8px;display:flex}.footer__socials .icon-btn{border-radius:11px;width:38px;height:38px}.footer__socials .icon-btn svg{width:16px;height:16px}.scroll-progress{z-index:120;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress i{transform-origin:0;width:100%;height:100%;transform:scaleX(var(--p,0));background:linear-gradient(90deg, var(--blue), var(--violet), var(--cyan));display:block}.to-top{z-index:90;width:46px;height:46px;color:var(--text-1);border:1px solid var(--stroke-strong);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;transition:.4s var(--ease-out);background:#0a0d18b3;border-radius:14px;place-items:center;display:grid;position:fixed;bottom:22px;right:22px;translate:0 12px}.to-top.show{opacity:1;pointer-events:auto;translate:0}.to-top:hover{box-shadow:var(--glow-blue);border-color:#4d8dff99}.to-top svg{width:18px;height:18px}.cursor-dot,.cursor-ring{z-index:200;pointer-events:none;border-radius:50%;display:none;position:fixed;top:0;left:0;translate:-50% -50%}.cursor-dot{background:#fff;width:7px;height:7px;box-shadow:0 0 12px #fffc}.cursor-ring{width:36px;height:36px;transition:width .28s var(--ease-out), height .28s var(--ease-out), border-color .28s, background .28s;border:1.5px solid #8ab8ff8c}.cursor-ring.hovering{background:#39d5f00f;border-color:#39d5f0cc;width:56px;height:56px}html.custom-cursor,html.custom-cursor a,html.custom-cursor button,html.custom-cursor [role=button]{cursor:none}html.custom-cursor .cursor-dot,html.custom-cursor .cursor-ring{display:block}.reveal{opacity:0;filter:blur(5px);transition:opacity .85s var(--ease-out), transform .85s var(--ease-out), filter .85s var(--ease-out);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform, filter;transform:translateY(30px)}.reveal.is-visible{opacity:1;filter:blur();transform:translateY(0)}@keyframes heroIn{0%{opacity:0;filter:blur(6px);transform:translateY(34px)}to{opacity:1;filter:blur();transform:translateY(0)}}.hero-enter{animation:heroIn 1s var(--ease-out) both;animation-delay:var(--d,0s)}@media (max-width:1080px){.about-grid{grid-template-columns:1fr}.about-side{grid-template-columns:repeat(2,1fr);position:static}}@media (max-width:900px){.projects-grid{grid-template-columns:1fr}.project-card--featured .project-card__art{aspect-ratio:16/9}.skills-grid{grid-template-columns:1fr 1fr}.skill-panel,.skill-panel:first-child,.skill-panel:nth-child(2){grid-column:span 1}.contact-grid{grid-template-columns:1fr}.orb-fallback{opacity:.7;right:-18vw}}@media (max-height:840px){.hero__inner{padding-top:20px;padding-bottom:20px}.hero__badge-row{margin-bottom:16px}.hero h1,.hero__tagline{margin-bottom:12px}.hero__intro{margin-bottom:22px}.hero__actions{margin-bottom:20px}}@media (max-width:640px){:root{--nav-h:64px}.skills-grid,.about-side{grid-template-columns:1fr}.about-facts{grid-template-columns:1fr 1fr}.hero__actions .btn{flex:auto}.timeline:before{left:15px}.tl-item{padding-left:48px}.tl-item__node{left:6px}.hero__scroll{display:none}.to-top{bottom:14px;right:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;filter:none;transform:none}.marquee__track,.hero-enter{animation:none}}@media print{.navbar,.hero__canvas,.cursor-dot,.cursor-ring,.to-top,.scroll-progress,.page-bg,.page-grid,.page-noise,.marquee{display:none!important}body{color:#111;background:#fff}}
