:root{--color-obsidian:#101010;--color-carbon:#080808;--color-chalk:#f3f3f3;--color-smoke:#9c9c9c;--color-ash:#c1c1c1;--color-graphite:#212121;--color-iron:#474747;--color-signal-white:#fff;--color-compass-gold:#6f6759;--color-card-slate:#3b3d45;--color-pulse-green:#98ff38;--font-aeonik:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-input:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-caption:13px;--leading-caption:2.69;--text-body:16px;--leading-body:1.25;--text-heading-xs:18px;--leading-heading-xs:1.31;--text-subheading:21px;--leading-subheading:.95;--text-heading-sm:23px;--leading-heading-sm:1.07;--text-heading:34px;--leading-heading:1.03;--text-heading-lg:44px;--leading-heading-lg:1.07;--tracking-heading-lg:-.31px;--text-display:63px;--leading-display:1.05;--tracking-display:-.69px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--section-gap:80px;--radius-tags:4px;--radius-cards:8px;--radius-icons:99px;--radius-buttons:9999px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-aeonik);background-color:var(--color-obsidian);color:var(--color-chalk);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{width:100%;max-width:1200px;padding:0 var(--spacing-24);margin:0 auto}@media (width>=768px){.container{padding:0 var(--spacing-40)}}.section{width:100%}.section-divider{background-color:var(--color-graphite);width:100%;height:1px;margin:var(--section-gap) 0}.section-header{margin-bottom:var(--spacing-48)}.text-display{font-size:clamp(36px, 6vw, var(--text-display));line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--color-chalk);font-weight:400}.text-heading-lg{font-size:clamp(28px, 5vw, var(--text-heading-lg));line-height:var(--leading-heading-lg);letter-spacing:var(--tracking-heading-lg);color:var(--color-chalk);font-weight:400}.text-heading{font-size:clamp(24px, 4vw, var(--text-heading));line-height:var(--leading-heading);color:var(--color-chalk);font-weight:400}.text-heading-sm{font-size:var(--text-heading-sm);line-height:var(--leading-heading-sm);color:var(--color-chalk);font-weight:400}.text-subheading{font-size:var(--text-subheading);line-height:var(--leading-subheading);color:var(--color-chalk);font-weight:400}.text-body{font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-smoke);font-weight:400}.text-meta{font-family:var(--font-input);letter-spacing:-.022em;text-transform:uppercase;color:var(--color-smoke);font-size:13px;font-weight:400}.text-eyebrow{font-family:var(--font-input);letter-spacing:-.022em;text-transform:uppercase;color:var(--color-ash);font-size:14px;display:block}.text-chalk{color:var(--color-chalk)}.text-smoke{color:var(--color-smoke)}.text-ash{color:var(--color-ash)}.text-gold{color:var(--color-compass-gold)}.text-obsidian{color:var(--color-obsidian)}.card-portfolio{border:1px solid var(--color-graphite);border-radius:var(--radius-cards);padding:var(--spacing-24);background:0 0;transition:border-color .3s}.card-portfolio:hover{border-color:var(--color-iron)}.card-service{border-left:1px solid var(--color-graphite);border-bottom:1px solid var(--color-graphite);border-right:1px solid var(--color-graphite);padding:var(--spacing-48);background:0 0}.btn{justify-content:center;align-items:center;gap:var(--spacing-8);font-family:var(--font-aeonik);text-transform:uppercase;font-size:14px;font-weight:400;transition:opacity .2s,background .2s;display:inline-flex}.btn-primary{background:var(--color-signal-white);color:var(--color-obsidian);border-radius:var(--radius-buttons);padding:var(--spacing-12) var(--spacing-24)}.btn-primary:hover{opacity:.8}.btn-ghost{color:var(--color-signal-white);border:1px solid var(--color-signal-white);border-radius:var(--radius-cards);padding:10px var(--spacing-20);background:0 0}.btn-ghost:hover{background:#ffffff1a}.status-pill{border:1px solid var(--color-graphite);border-radius:var(--radius-tags);padding:var(--spacing-8) 14px;align-items:center;gap:var(--spacing-8);font-family:var(--font-aeonik);color:var(--color-smoke);text-transform:uppercase;letter-spacing:.5px;background:#1a1a1a;font-size:12px;display:inline-flex}.status-dot{background-color:var(--color-pulse-green);border-radius:50%;width:6px;height:6px}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-8{gap:var(--spacing-8)}.gap-16{gap:var(--spacing-16)}.gap-24{gap:var(--spacing-24)}.mt-8{margin-top:var(--spacing-8)}.mt-16{margin-top:var(--spacing-16)}.mt-24{margin-top:var(--spacing-24)}.mt-40{margin-top:var(--spacing-40)}.mt-48{margin-top:var(--spacing-48)}.mb-8{margin-bottom:var(--spacing-8)}.mb-16{margin-bottom:var(--spacing-16)}.mb-24{margin-bottom:var(--spacing-24)}.mb-40{margin-bottom:var(--spacing-40)}.mb-48{margin-bottom:var(--spacing-48)}.text-center{text-align:center}.top-nav{background-color:var(--color-obsidian);border-bottom:1px solid var(--color-graphite);z-index:100;align-items:center;height:80px;display:flex;position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;width:100%;display:flex}.nav-left{align-items:center;gap:var(--spacing-40);display:flex}.brand{color:var(--color-chalk);letter-spacing:-.02em;font-size:18px;font-weight:400}.desktop-only{display:none!important}@media (width>=1024px){.desktop-only{display:flex!important}.mobile-menu-btn{display:none!important}}.nav-links{gap:var(--spacing-24)}.nav-link{font-family:var(--font-aeonik);color:var(--color-smoke);text-transform:uppercase;font-size:14px;transition:color .2s}.nav-link:hover{color:var(--color-chalk)}.nav-right{align-items:center;gap:var(--spacing-16);display:flex}.mobile-menu-btn{color:var(--color-chalk);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mobile-menu{background-color:var(--color-obsidian);border-bottom:1px solid var(--color-graphite);width:100%;padding:var(--spacing-24);position:absolute;top:80px;left:0;box-shadow:0 10px 30px #00000080}.mobile-menu-links{gap:var(--spacing-16);flex-direction:column;display:flex}.mobile-nav-link{font-family:var(--font-aeonik);color:var(--color-chalk);text-transform:uppercase;padding:var(--spacing-8) 0;border-bottom:1px solid var(--color-carbon);font-size:16px}.hero-section{padding-top:60px;padding-bottom:0;position:relative;overflow:hidden}.hero-layout{align-items:center;gap:var(--spacing-40);z-index:10;flex-direction:column-reverse;display:flex;position:relative}@media (width>=992px){.hero-layout{justify-content:space-between;align-items:center;gap:var(--spacing-48);flex-direction:row}}.hero-content{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}@media (width>=992px){.hero-content{text-align:left;align-items:flex-start}}.hero-subtitle{max-width:600px;margin:0 auto;margin-top:var(--spacing-24)}@media (width>=992px){.hero-subtitle{margin:var(--spacing-24) 0 0 0}}.hero-actions{gap:var(--spacing-16);margin-top:var(--spacing-40);flex-wrap:wrap;justify-content:center;display:flex}@media (width>=992px){.hero-actions{justify-content:flex-start}}.hero-image-container{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:280px;height:280px;display:flex;position:relative}@media (width>=992px){.hero-image-container{width:400px;height:400px}}.hero-image-glow{z-index:0;background:radial-gradient(circle,#98ff3826 0%,#0000 70%);width:120%;height:120%;animation:4s infinite alternate pulse-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-image-wrapper{z-index:1;background:linear-gradient(135deg,#98ff384d 0%,#ffffff0d 100%);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;animation:6s ease-in-out infinite float;display:flex;position:relative}.hero-image{aspect-ratio:1;object-fit:cover;object-position:top center;background-color:#0000;border-radius:50%;width:100%;height:100%}.cursor-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#98ff3826 0%,#0000 60%);border-radius:50%;width:600px;height:600px;position:absolute;top:-300px;left:-300px}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}@keyframes pulse-glow{0%{opacity:.5;transform:translate(-50%,-50%)scale(.9)}to{opacity:1;transform:translate(-50%,-50%)scale(1.1)}}.dot-map-container{z-index:0;background-image:radial-gradient(circle at center, var(--color-chalk) 1px, transparent 1.5px);opacity:.15;pointer-events:none;background-size:16px 16px;width:100%;height:100%;position:absolute;top:0;left:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 80%);mask-image:radial-gradient(#000 20%,#0000 80%)}.floating-metric{-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-cards);z-index:20;background:#101010b3;border:1px solid #ffffff1a;flex-direction:column;align-items:center;padding:12px 20px;display:flex;position:absolute;box-shadow:0 8px 32px #0000004d}.hero-metric-value{font-family:var(--font-aeonik);color:var(--color-chalk);margin-bottom:4px;font-size:24px;font-weight:500;line-height:1}.hero-metric-label{font-family:var(--font-input);color:var(--color-pulse-green);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.metric-1{animation:4s ease-in-out infinite float-badge;top:5%;left:-10%}.metric-2{animation:4s ease-in-out 1s infinite float-badge;bottom:15%;right:0%}.metric-3{animation:4s ease-in-out 2s infinite float-badge;top:65%;left:-10%}@keyframes float-badge{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.manifesto-container{justify-content:center;padding:40px 0;display:flex;position:relative}.manifesto-glow{z-index:0;pointer-events:none;background:radial-gradient(circle,#98ff380d 0%,#0000 70%);width:80%;height:80%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.manifesto-block{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff05;border:1px solid #ffffff0d;border-radius:16px;max-width:700px;margin:0 auto;padding:48px;position:relative;box-shadow:0 20px 40px #0003}.manifesto-quote-icon{color:var(--color-pulse-green);opacity:.2;font-family:serif;font-size:60px;line-height:1;position:absolute;top:24px;left:32px}.manifesto-heading{color:var(--color-signal-white);text-align:left;border-left:3px solid var(--color-pulse-green);margin-bottom:32px;padding-left:20px;font-size:clamp(24px,4vw,32px);font-weight:500;line-height:1.2}.manifesto-body{flex-direction:column;gap:24px;line-height:1.7;display:flex}.manifesto-text{color:var(--color-ash);text-align:left;font-size:16px}.manifesto-footer{justify-content:flex-start;align-items:center;gap:16px;margin-top:40px;display:flex}@media (width<=768px){.manifesto-block{padding:32px 24px}.manifesto-heading{font-size:20px}}.services-grid{border-top:1px solid var(--color-graphite);grid-template-columns:1fr;display:grid}@media (width>=768px){.services-grid{grid-template-columns:repeat(2,1fr)}}.timeline-container{max-width:800px;margin:0 auto;padding:40px 0;position:relative}.timeline-container:before{content:"";background:var(--color-graphite);z-index:1;width:2px;position:absolute;top:0;bottom:0;left:24px}@media (width>=768px){.timeline-container:before{left:50%;transform:translate(-50%)}}.timeline-item{justify-content:flex-end;align-items:center;width:100%;margin-bottom:60px;display:flex;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background:var(--color-obsidian);border:3px solid var(--color-pulse-green);z-index:2;border-radius:50%;width:16px;height:16px;transition:all .3s;position:absolute;left:24px;transform:translate(-50%);box-shadow:0 0 10px #98ff3866}.timeline-item:hover .timeline-dot{background:var(--color-pulse-green);transform:translate(-50%)scale(1.3)}.timeline-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;text-align:left;background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;width:calc(100% - 60px);padding:32px;transition:all .4s;position:relative}.timeline-content:hover{border-color:#98ff3833;transform:translateY(-4px);box-shadow:0 10px 30px #0000004d}.timeline-date{color:var(--color-pulse-green);font-family:var(--font-input);font-size:13px;font-weight:500;position:absolute;top:-30px;left:60px}@media (width>=768px){.timeline-item:nth-child(odd){justify-content:flex-start}.timeline-item:nth-child(2n){justify-content:flex-end}.timeline-dot{left:50%}.timeline-content{width:calc(50% - 40px)}.timeline-date{text-align:right;width:calc(50% - 60px);top:50%;left:auto;right:calc(50% + 40px);transform:translateY(-50%)}.timeline-item:nth-child(2n) .timeline-date{text-align:left;left:calc(50% + 40px);right:auto}}.projects-grid{gap:var(--spacing-24);grid-template-columns:1fr;display:grid}@media (width>=768px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.pt-48{padding-top:var(--spacing-48)}.project-card{padding:var(--spacing-32) var(--spacing-24);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:center;height:100%;transition:all .4s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:#98ff384d;transform:translateY(-8px);box-shadow:0 20px 40px #0006,0 0 20px #98ff380d}.project-card:before{content:"";opacity:0;pointer-events:none;background:linear-gradient(#ffffff08 0%,#fff0 100%);width:100%;height:100%;transition:opacity .4s;position:absolute;top:0;left:0}.project-card:hover:before{opacity:1}.project-category-pill{font-family:var(--font-input);letter-spacing:1px;text-transform:uppercase;color:var(--color-chalk);background:#ffffff0d;border-radius:100px;margin-bottom:16px;padding:4px 10px;font-size:11px}.project-card:hover .pill-research{color:var(--color-pulse-green);background:#98ff3826}.project-card:hover .pill-web3{color:#38b6ff;background:#38b6ff26}.project-card:hover .pill-mobile{color:#ff5757;background:#ff575726}.publications-list{gap:var(--spacing-24);grid-template-columns:1fr;display:grid}@media (width>=768px){.publications-list{grid-template-columns:repeat(2,1fr)}}.footer-bar{margin-top:calc(var(--section-gap) * 1.5);padding:var(--spacing-48) 0 var(--spacing-32);border-top:1px solid var(--color-graphite);width:100%}.footer-top{gap:var(--spacing-40);text-align:center;flex-direction:column;align-items:center;display:flex}.footer-brand{align-items:center}.footer-metrics{justify-content:center}@media (width>=768px){.footer-top{text-align:left;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.footer-brand{align-items:flex-start}.footer-metrics{justify-content:flex-end}}.footer-email-large{font-family:var(--font-aeonik);color:var(--color-signal-white);letter-spacing:-.02em;font-size:clamp(24px,4vw,40px);font-weight:400;line-height:1.1;text-decoration:none;transition:opacity .3s}.footer-email-large:hover{opacity:.7}.footer-metrics{gap:var(--spacing-32);flex-wrap:wrap;display:flex}.metric-item{gap:var(--spacing-8);flex-direction:column;display:flex}.metric-value{font-family:var(--font-aeonik);color:var(--color-chalk);letter-spacing:-.02em;font-size:32px;font-weight:300;line-height:1}.metric-label{font-family:var(--font-input);color:var(--color-smoke);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.footer-bottom{gap:var(--spacing-24);padding-top:var(--spacing-32);border-top:1px solid var(--color-graphite);flex-direction:column;display:flex}@media (width>=768px){.footer-bottom{flex-direction:row;justify-content:space-between;align-items:center}}.footer-copyright{font-family:var(--font-input);color:var(--color-smoke);font-size:12px}.footer-links{gap:var(--spacing-24);flex-wrap:wrap;display:flex}.footer-link{font-family:var(--font-input);color:var(--color-smoke);text-transform:uppercase;letter-spacing:.02em;font-size:13px;text-decoration:none;transition:color .3s}.footer-link:hover{color:var(--color-signal-white)}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1}
