@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--bg:#060a0c;--surface:#0b1014;--surface-hover:#101519;--border:#ffffff0d;--border-hover:#0d948833;--text:#e0e4e2;--muted:#ffffff73;--faint:#ffffff2e;--ghost:#ffffff14;--teal:#0eb49b;--teal-light:#2dd4b0;--teal-dark:#065f50;--teal-glow:#0eb49b0f;--teal-bg:#0eb49b12;--emerald:#34d399;--rose:#fb7185;--r:18px;--display:"Space Grotesk", sans-serif;--body:"Outfit", sans-serif;--mono:"JetBrains Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--body);max-width:100vw;min-height:100vh;font-size:15px;line-height:1.6;overflow-x:hidden}::selection{background:var(--teal-bg);color:var(--teal-light)}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:2px}.bg-depth{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-depth .orb{filter:blur(90px);border-radius:50%;position:absolute}.bg-depth .orb-1{background:radial-gradient(circle,#0eb49b0a 0%,#0000 65%);width:55vw;height:55vw;animation:22s ease-in-out infinite alternate drift-1;top:-8%;left:8%}.bg-depth .orb-2{background:radial-gradient(circle,#065f500b 0%,#0000 65%);width:48vw;height:48vw;animation:28s ease-in-out infinite alternate-reverse drift-2;bottom:-12%;right:-8%}.bg-depth .orb-3{background:radial-gradient(circle,#0eb49b05 0%,#0000 60%);width:35vw;height:35vw;animation:20s ease-in-out infinite alternate drift-3;top:38%;left:50%;transform:translate(-50%)}@keyframes drift-1{0%{transform:translate(0)scale(1)}to{transform:translate(35px,-25px)scale(1.05)}}@keyframes drift-2{0%{transform:translate(0)scale(1)}to{transform:translate(-25px,20px)scale(1.03)}}@keyframes drift-3{0%{transform:translate(-50%)translate(0)}to{transform:translate(-50%)translate(20px,-15px)}}.bg-depth .vignette{background:radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, var(--bg) 100%);position:absolute;inset:0}body:before{content:"";z-index:0;pointer-events:none;opacity:.4;background-image:radial-gradient(#0eb49b14 1px,#0000 1px);background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 20%,#0000 70%);mask-image:radial-gradient(70% 60% at 50% 30%,#000 20%,#0000 70%)}body:after{content:"";z-index:9999;pointer-events:none;opacity:.03;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' 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}.page{z-index:1;max-width:1080px;margin:0 auto;padding:clamp(3rem,8vw,6rem) clamp(1.25rem,4vw,2.5rem);position:relative;overflow:hidden}.grid{grid-template-columns:repeat(4,1fr);gap:12px;max-width:100%;display:grid;overflow:hidden}.grid>*{min-width:0}.span-2{grid-column:span 2}.span-4{grid-column:span 4}.span-2r{grid-area:span 2/span 2}@media (width<=900px){.grid{grid-template-columns:repeat(2,1fr)}.span-4{grid-column:span 2}}@media (width<=540px){.grid{grid-template-columns:1fr}.span-2,.span-4,.span-2r{grid-area:span 1/span 1}.page{padding-left:1rem;padding-right:1rem;overflow:hidden}.btns{gap:6px}.btn{padding:8px 14px;font-size:.72rem}.hero-name{font-size:2.5rem}.stat-val{font-size:1.3rem}.proj-split{gap:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);word-break:break-word;min-width:0;padding:clamp(18px,3vw,28px);transition:background .35s,border-color .35s,transform .35s cubic-bezier(.16,1,.3,1),box-shadow .4s;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,#0000,#ffffff0a,#0000);height:1px;position:absolute;top:0;left:5%;right:5%}.card:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-3px)}.card.glow-teal:hover{box-shadow:0 8px 50px #0eb49b14,inset 0 1px #0eb49b1a}.card.glow-emerald:hover{box-shadow:0 8px 50px #34d3990f,inset 0 1px #34d39914}.card.glow-rose:hover{box-shadow:0 8px 50px #fb71850f,inset 0 1px #fb718514}.card.anim-border:after{content:"";border-radius:calc(var(--r) + 1px);background:conic-gradient(from var(--angle), transparent 60%, var(--teal) 72%, transparent 84%);z-index:-1;opacity:0;transition:opacity .5s;animation:5s linear infinite border-spin;position:absolute;inset:-1px}.card.anim-border:hover:after{opacity:.25}@keyframes border-spin{to{--angle:360deg}}.card-hero{background:radial-gradient(ellipse 60% 50% at 15% 85%, #0eb49b0a 0%, transparent 60%), var(--surface)}.label{font-family:var(--mono);color:var(--faint);letter-spacing:.2em;text-transform:uppercase;font-size:.58rem;font-weight:500}.heading{font-family:var(--display);letter-spacing:-.03em;font-weight:800;line-height:1.1}.sub{color:var(--muted);font-size:.8rem;line-height:1.6}.body-sm{color:var(--faint);overflow-wrap:break-word;font-size:.78rem;line-height:1.65}.mono-sm{font-family:var(--mono);color:var(--faint);font-size:.6rem}.hero-name{font-family:var(--display);letter-spacing:-.04em;background:linear-gradient(145deg, #fff 0%, var(--teal-light) 50%, #0eb49b80 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(3rem,7vw,4.8rem);font-weight:800;line-height:1}.pill{font-family:var(--mono);color:var(--muted);background:#ffffff06;border:1px solid #ffffff0a;border-radius:7px;padding:3px 10px;font-size:.62rem;font-weight:500;transition:background .2s,color .2s,border-color .2s;display:inline-block}.pill:hover{background:var(--teal-bg);color:var(--teal-light);border-color:#0eb49b1f}.pills{flex-wrap:wrap;gap:5px;max-width:100%;display:flex;overflow:hidden}.btn{font-size:.76rem;font-weight:500;font-family:var(--body);cursor:pointer;border:1px solid var(--border);color:var(--muted);background:#ffffff08;border-radius:11px;align-items:center;gap:6px;padding:9px 18px;text-decoration:none;transition:all .25s;display:inline-flex}.btn:hover{color:#fff;border-color:var(--border-hover);background:#ffffff14}.btn.primary{background:linear-gradient(135deg, var(--teal-dark), var(--teal));color:#e2f8f0;border:none;font-weight:600;box-shadow:0 0 20px #0eb49b26}.btn.primary:hover{filter:brightness(1.12);box-shadow:0 0 30px #0eb49b40}.btns{flex-wrap:wrap;gap:8px;display:flex}.pulse{width:8px;height:8px;display:inline-flex;position:relative}.pulse:before{content:"";background:var(--emerald);border-radius:50%;animation:2s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}.pulse:after{content:"";background:var(--emerald);border-radius:50%;width:8px;height:8px;position:relative}@keyframes ping{75%,to{opacity:0;transform:scale(2.5)}}.proj-logo{object-fit:contain;opacity:.65;border-radius:6px;flex-shrink:0;width:26px;height:26px;transition:opacity .3s}.card:hover .proj-logo{opacity:1}.proj-logo-text{width:28px;height:28px;color:var(--rose);opacity:.75;background:#fb71851a;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;transition:opacity .3s;display:flex}.card:hover .proj-logo-text{opacity:1}.num{font-family:var(--mono);font-size:.72rem;font-weight:500}.num-teal{color:var(--teal)}.num-emerald{color:var(--emerald)}.num-rose{color:var(--rose)}.arrow-link{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);background:#ffffff05;border-radius:6px;padding:4px 10px;font-size:.62rem;font-weight:500;text-decoration:none;transition:all .25s}.arrow-link:hover{color:var(--teal-light);background:var(--teal-bg);border-color:#0eb49b40}.stat-val{font-family:var(--display);font-size:1.6rem;font-weight:800;line-height:1}.stat-label{font-family:var(--mono);color:var(--faint);letter-spacing:.05em;margin-top:.25rem;font-size:.52rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.proj-split{gap:2.5rem;display:flex}.proj-split>div{flex:1}@media (width<=700px){.proj-split{flex-direction:column;gap:1.5rem}}.section-label{grid-column:1/-1;padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:.4rem}.footer{text-align:center;grid-column:1/-1;padding:4rem 0 2rem}.footer p{font-family:var(--mono);color:var(--ghost);letter-spacing:.15em;font-size:.56rem}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.justify-between{justify-content:space-between}.mt-xs{margin-top:.3rem}.mt-sm{margin-top:.6rem}.mt-md{margin-top:1rem}.mt-lg{margin-top:1.5rem}.marquee-wrap{padding:1.2rem 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-track{gap:1rem;width:max-content;animation:35s linear infinite marquee;display:flex}.marquee-track:hover{animation-play-state:paused}.marquee-item{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);background:var(--surface);white-space:nowrap;cursor:default;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;font-size:.72rem;font-weight:500;transition:all .3s;display:inline-flex}.marquee-icon{opacity:.5;width:16px;height:16px;transition:opacity .3s,filter .3s}.marquee-item:hover{color:var(--teal-light);background:var(--teal-bg);border-color:#0eb49b40;transform:translateY(-2px);box-shadow:0 4px 20px #0eb49b14}.marquee-item:hover .marquee-icon{opacity:.9;filter:brightness(1.5)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.reveal{opacity:0;filter:blur(4px);transition:opacity .6s cubic-bezier(.16,1,.3,1),filter .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal.visible{opacity:1;filter:blur();transform:translateY(0)}.cursor-glow{background:radial-gradient(circle, var(--teal-glow) 0%, transparent 70%);pointer-events:none;z-index:0;will-change:transform;border-radius:50%;width:300px;height:300px;position:fixed;transform:translate(-50%,-50%)}@media (hover:none) and (pointer:coarse){.cursor-glow{display:none!important}}
