:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#11131c;--ink-2:#191d29;--paper:#f4f7f4;--paper-soft:#f4f7f4c7;--muted:#aeb7c7;--line:#f4f7f42b;--cobalt:#3d7cff;--ember:#ff5b3d;--jade:#62d6a3;--panel:#11131ca8;--radius:8px;background:var(--ink);color:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;width:100%;max-width:100%;overflow-x:clip}body{background:radial-gradient(circle at 72% 8%,#3d7cff33,#0000 28rem),linear-gradient(135deg,#11131c 0%,#18151a 45%,#0f1714 100%);width:100%;min-width:320px;max-width:100%;margin:0;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:72px 72px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 78%);mask-image:linear-gradient(#000,#0000 78%)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--jade);outline-offset:4px}#orbit-canvas{z-index:0;width:100%;height:100%;position:fixed;inset:0}.label-layer{z-index:2;pointer-events:none;position:fixed;inset:0}.scene-label{color:#f4f7f4db;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11131c8f;border:1px solid #f4f7f433;border-radius:999px;align-items:center;min-height:24px;padding:4px 8px;font-size:.72rem;line-height:1;transition:opacity .18s;display:inline-flex;position:absolute;transform:translate(-200px,-200px)}.site-header,main,.site-footer{z-index:3;position:relative}.site-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#11131cd1,#11131c00);justify-content:space-between;align-items:center;gap:24px;padding:18px clamp(18px,4vw,56px);display:flex;position:fixed;top:0;left:0;right:0}.brand{letter-spacing:0;font-weight:800}nav{color:var(--paper-soft);align-items:center;gap:clamp(12px,2vw,28px);font-size:.9rem;display:flex}nav a{position:relative}nav a:after{content:"";transform-origin:0;background:var(--ember);height:1px;transition:transform .18s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}nav a:hover:after{transform:scaleX(1)}.hero{grid-template-columns:minmax(520px,.92fr) minmax(280px,.44fr);align-items:center;gap:clamp(28px,4vw,56px);min-height:86svh;padding:clamp(112px,13vh,150px) clamp(18px,6vw,88px) clamp(48px,7vh,76px);display:grid}.hero-copy{max-width:760px}.kicker,.eyebrow{color:var(--jade);text-transform:uppercase;margin:0 0 14px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.4}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;text-wrap:balance;overflow-wrap:break-word;max-width:10.8ch;margin-bottom:26px;font-size:clamp(4.7rem,6.65vw,7.25rem);line-height:.88}h2{letter-spacing:0;text-wrap:balance;overflow-wrap:break-word;margin-bottom:0;font-size:clamp(2rem,4.8vw,4.8rem);line-height:.96}h3{letter-spacing:0;margin-bottom:12px;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.05}.lead{max-width:680px;color:var(--paper-soft);font-size:clamp(1.05rem,1.8vw,1.42rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.button{border:1px solid var(--line);border-radius:var(--radius);justify-content:center;align-items:center;min-height:48px;padding:0 18px;font-weight:750;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{color:var(--paper);background:linear-gradient(135deg,#62d6a33d,#3d7cff1f),#11131cc7;border-color:#62d6a38f;box-shadow:0 14px 36px #62d6a338}.button.secondary{background:#f4f7f40f}.signal-panel{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f4f7f40f;grid-template-columns:1fr;align-self:end;gap:1px;display:grid;overflow:hidden;transform:translateY(-34px)}.signal-panel>div{background:#11131cad;gap:4px;padding:18px;display:grid}.metric{font-size:clamp(2.1rem,4vw,3.4rem);font-weight:850;line-height:.9}.label{color:var(--muted);font-size:.86rem}.section{max-width:100%;padding:clamp(64px,10vw,128px) clamp(18px,6vw,88px);overflow-x:clip}.section-head{gap:12px;max-width:1040px;margin-bottom:clamp(28px,5vw,56px);display:grid}.section-head-centered{text-align:center;margin-inline:auto}.work-section,.timeline-section{background:#11131cf0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#11131cb8;flex-direction:column;align-items:flex-start;min-height:360px;padding:clamp(20px,3vw,28px);transition:transform .18s,border-color .18s,background .18s;display:flex}.project-card:hover{background:#191d29d6;border-color:#62d6a380;transform:translateY(-4px)}.project-card.featured{background:linear-gradient(135deg,#ff5b3d2e,#0000 48%),#11131cc2}.project-brand{align-items:center;gap:14px;min-height:74px;margin-bottom:12px;display:flex}.project-brand-urbiscan span{color:var(--paper);font-size:1.42rem;font-weight:850;line-height:1}.project-logo{object-fit:contain;object-position:left center;filter:drop-shadow(0 12px 26px #00000042);width:min(230px,76%);height:70px;margin-bottom:12px}.project-logo-square{object-fit:contain;object-position:center;background:#f4f7f4f0;border-radius:8px;width:78px;height:78px;padding:8px}.project-link{color:var(--jade);margin-bottom:20px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem}.project-card h3{margin-top:0}.project-card p,.timeline p{color:var(--paper-soft);line-height:1.62}.download-chips{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.download-chip{min-height:34px;color:var(--paper);background:#e5383b2e;border:1px solid #e5383b7a;border-radius:999px;justify-content:center;align-items:center;padding:0 13px;font-size:.84rem;font-weight:800;display:inline-flex}.tag-list{flex-wrap:wrap;gap:8px;margin:auto 0 0;padding:22px 0 0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);color:var(--paper-soft);border-radius:999px;padding:7px 10px;font-size:.82rem}.systems-section{border-block:1px solid var(--line);background:linear-gradient(135deg,#62d6a31c,#0000 34%),linear-gradient(315deg,#3d7cff24,#0000 38%),#11131cf5}.systems-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(30px,6vw,86px);display:grid}.systems-copy{position:sticky;top:110px}.systems-copy h2{max-width:9ch;margin-bottom:24px}.systems-copy p{max-width:540px;color:var(--paper-soft);font-size:clamp(1.06rem,1.7vw,1.32rem);line-height:1.58}.systems-board{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f4f7f40a;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.systems-board article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:232px;padding:clamp(22px,3vw,32px)}.systems-board article:nth-child(2n){border-right:0}.systems-board article:nth-last-child(-n+2){border-bottom:0}.systems-board span{color:var(--jade);text-transform:uppercase;margin-bottom:34px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;display:inline-flex}.systems-board h3{max-width:12ch}.systems-board p{color:var(--paper-soft);margin-bottom:0;line-height:1.6}.timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid;position:relative}.timeline:before{content:"";background:var(--line);height:1px;position:absolute;top:26px;left:0;right:0}.timeline article{padding-top:56px;position:relative}.timeline-dot{border:3px solid var(--ink);background:var(--jade);border-radius:50%;width:18px;height:18px;position:absolute;top:17px;left:0;box-shadow:0 0 0 1px #62d6a399}.contact-section{border-block:1px solid var(--line);background:linear-gradient(90deg,#3d7cff2e,#ff5b3d21),#11131cc7;justify-content:space-between;align-items:end;gap:32px;display:flex}.mail-link{border-radius:var(--radius);min-height:56px;color:var(--ink);background:var(--jade);white-space:nowrap;border:1px solid #f4f7f452;justify-content:center;align-items:center;padding:0 18px;font-weight:850;display:inline-flex}.site-footer{color:var(--muted);background:var(--ink);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:26px clamp(18px,6vw,88px);display:flex}@media (width<=980px){.hero,.systems-layout,.contact-section{grid-template-columns:1fr}.systems-copy{position:static}.systems-copy h2{max-width:12ch}.project-grid,.timeline,.systems-board{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card.featured{grid-column:span 2}.signal-panel{max-width:520px;transform:translateY(54px)}.timeline:before{display:none}}@media (width<=680px){.site-header{align-items:flex-start;position:absolute}nav{flex-wrap:wrap;justify-content:flex-end;max-width:230px;font-size:.82rem}.hero{min-height:88svh;padding-top:146px}.hero-copy{max-width:100%}h1{max-width:100%;font-size:clamp(3rem,13vw,3.55rem);line-height:.94}.lead{max-width:100%;font-size:1.05rem}.project-grid,.timeline,.systems-board{grid-template-columns:1fr}.systems-board article,.systems-board article:nth-child(2n),.systems-board article:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--line);min-height:auto}.systems-board article:last-child{border-bottom:0}.systems-board span{margin-bottom:18px}.project-card,.project-card.featured{grid-column:auto;min-height:260px}.project-logo{width:min(210px,82%);height:58px}.project-logo-square{width:64px;height:64px}.project-brand{min-height:62px}.project-brand-urbiscan span{font-size:1.16rem}.signal-panel{width:100%;transform:none}.contact-section{flex-direction:column;align-items:flex-start;gap:22px}.mail-link{width:100%;max-width:100%;min-height:46px;color:var(--paper);white-space:normal;overflow-wrap:anywhere;background:linear-gradient(135deg,#62d6a32e,#3d7cff1a),#11131cbd;border-color:#62d6a375;padding:0 14px;font-size:.98rem}.scene-label{display:none}#orbit-canvas{opacity:.72}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
