:root{color-scheme:dark;--bg:#090d10;--surface:#11171c;--surface-raised:#151d23;--text:#eef2f3;--muted:#a8b2b7;--line:#28343b;--line-bright:#3d5360;--accent:#8fb7cc;--accent-bright:#c4e2f0;--accent-soft:#172630;--accent-glow:#75a6c02e;--max:72rem;--narrow:46rem}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{color:var(--text);background:radial-gradient(circle at 82% -8%, #476b8029, transparent 31rem), var(--bg);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65;overflow-x:hidden}a{color:var(--accent);text-underline-offset:.22em;text-decoration-color:#5f7889}a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.shell{width:min(calc(100% - 2.5rem), var(--max));margin-inline:auto}.narrow{max-width:var(--narrow)}.skip-link{z-index:10;background:var(--text);color:var(--bg);padding:.7rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{z-index:30;border-bottom:1px solid var(--line);backdrop-filter:blur(18px);background:#090d10db;position:sticky;top:0}.header-inner,.footer-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:5rem;display:flex}.wordmark{color:var(--text);letter-spacing:-.025em;font-size:1.02rem;font-weight:680;text-decoration:none}.site-header ul{gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.site-header nav a,.site-footer nav a{color:var(--muted);font-size:.92rem;text-decoration:none;transition:color .18s;position:relative}.site-header nav a:after{background:var(--accent);content:"";opacity:0;height:1px;transition:opacity .18s,transform .18s;position:absolute;bottom:-.45rem;left:0;right:0;transform:scaleX(.35)}.site-header nav a:hover,.site-footer nav a:hover{color:var(--text)}.site-header nav a:hover:after,.site-header a[aria-current=page]:after{opacity:1;transform:scaleX(1)}.site-header a[aria-current=page]{color:var(--text)}.hero{isolation:isolate;background:linear-gradient(90deg,#090d10fa 0%,#090d10e0 38%,#090d1033 73%),radial-gradient(circle at 78% 42%,#537f9726,#0000 28rem);align-items:center;min-height:clamp(35rem,72vh,47rem);padding:clamp(6.5rem,12vw,9.5rem) 0;display:grid;position:relative;overflow:hidden}.hero:after{z-index:-1;background:linear-gradient(transparent, var(--bg));content:"";pointer-events:none;height:9rem;position:absolute;inset:auto 0 0}.hero .shell{z-index:2;position:relative}.hero h1{text-shadow:0 0 2rem #9bc5db0f;max-width:10ch;font-size:clamp(3.4rem,7vw,5.9rem);font-weight:520}h1,h2,h3{letter-spacing:-.035em;margin:0 0 1rem;line-height:1.12}h1{max-width:12ch;font-size:clamp(3rem,9vw,7rem)}h2{font-size:clamp(2rem,4vw,3.4rem)}h3{font-size:1.35rem}p{margin:0 0 1.25rem}.hero-copy,.lede{max-width:42rem;color:var(--muted);font-size:clamp(1.15rem,2vw,1.4rem)}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.72rem;font-size:.76rem;font-weight:700;display:flex}.eyebrow:before{background:linear-gradient(90deg, var(--accent), #8fb7cc2e);content:"";flex:none;width:1.8rem;height:2px;box-shadow:0 0 .75rem #8fb7cc59}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{border:1px solid var(--line-bright);background:#11171cb8;justify-content:center;align-items:center;min-height:2.8rem;padding:.55rem 1rem;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s,box-shadow .18s,transform .18s;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff06}.button.primary{color:#f7fbfc;background:linear-gradient(135deg,#47677a,#779db2);border-color:#8bb5cb;box-shadow:0 .8rem 2.5rem #466f852e}.button:not(.primary){color:var(--accent)}.button.disabled{color:#747b7a;cursor:not-allowed}.section,.page{padding-block:clamp(4.5rem,9vw,8rem)}.page-header{margin-bottom:3.5rem}.page-header h1{font-size:clamp(2.8rem,7vw,5.2rem)}.section-heading{margin-bottom:2.2rem}.section-heading h2{font-size:clamp(1.9rem,3.5vw,2.9rem);font-weight:560}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem;display:grid}.app-grid{grid-template-columns:repeat(2,minmax(0,26rem))}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:radial-gradient(circle at 88% -12%, var(--accent-glow), transparent 11rem), linear-gradient(145deg, var(--surface-raised), var(--surface));border:1px solid var(--line);flex-direction:column;min-height:16rem;padding:1.75rem;transition:border-color .22s,box-shadow .22s,transform .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 1.25rem 3rem #00000017,inset 0 1px #ffffff05}.card:before{border-top:1px solid var(--accent);border-right:1px solid var(--accent);content:"";opacity:.65;width:1rem;height:1rem;position:absolute;top:.72rem;right:.72rem}.card:after{background:linear-gradient(90deg, transparent, var(--accent-bright), transparent);height:1px;box-shadow:0 0 1rem var(--accent);content:"";opacity:0;transition:opacity .22s;position:absolute;top:-1px;left:12%;right:12%}.card p{color:var(--muted)}.card-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.3rem;display:flex}.card-heading p{margin:0}.status-badge{background:var(--accent-soft);letter-spacing:.04em;border:1px solid #3d5667;width:fit-content;padding:.22rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex;color:var(--accent)!important}.platform{text-align:right;font-size:.82rem}.card h3 a{color:var(--text)}.card h3{align-items:center;gap:.8rem;font-size:1.48rem;font-weight:560;display:flex}.card h3:before{background:linear-gradient(var(--accent-bright), #51788d);content:"";flex:none;width:3px;height:1.35em;box-shadow:0 0 .8rem #8fb7cc59}.card-description{max-width:35ch}.project-note,.section-note{color:var(--muted);font-size:.88rem}.project-note{margin-top:-.55rem}.section-note{max-width:48rem;margin:-1.5rem 0 2.5rem}.section-link{margin-top:1.5rem}.public-work{border-top:1px solid var(--line)}.home-section.public-work{border-top:0}.work-group+.work-group{border-top:1px solid var(--line);margin-top:clamp(4.5rem,9vw,8rem);padding-top:clamp(4.5rem,9vw,8rem)}.card-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:1rem;margin-top:auto;padding-top:1.4rem;font-size:.9rem;font-weight:650;display:flex}.app-details{max-width:var(--narrow)}.meta{color:var(--muted);font-size:.9rem}.split{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,7rem);display:grid}.home-section.split{border:1px solid var(--line);background:linear-gradient(120deg, #2c485721, transparent 48%), var(--surface);margin-block:clamp(3rem,7vw,6rem);padding-inline:clamp(1.5rem,4vw,3rem);box-shadow:0 1.5rem 4rem #0000001a}.current-field{z-index:-1;color:var(--accent);pointer-events:none;position:absolute;inset:0 -8% 0 24%}.current-field svg{width:100%;height:100%;display:block}.current-field-lines path,.current-field-flow{vector-effect:non-scaling-stroke}.current-field-lines path{stroke-width:1px}.current-field-flow{stroke-width:1.7px;stroke-dasharray:.16 .84;animation:9s linear infinite current-travel}.current-field-nodes circle{filter:drop-shadow(0 0 .45rem #b8d9eae6);opacity:.82;transform-box:fill-box;transform-origin:50%;animation:3.8s ease-in-out infinite current-node-pulse}.current-field-nodes circle:nth-child(2){animation-delay:-1.3s}.current-field-nodes circle:nth-child(3){animation-delay:-2.4s}.current-divider{z-index:2;pointer-events:none;width:100%;height:4.25rem;margin-block:-2.125rem;position:relative;overflow:hidden}.current-divider svg{width:100%;height:100%;display:block;overflow:visible}.current-divider-base,.current-divider-flow{fill:none;vector-effect:non-scaling-stroke}.current-divider-base{stroke:var(--line-bright);stroke-width:1px;opacity:.72}.current-divider-flow{stroke:var(--accent);stroke-width:1.3px;stroke-dasharray:.08 .92;filter:drop-shadow(0 0 .35rem #8fb7cca6);animation:12s linear infinite current-travel}@keyframes current-travel{to{stroke-dashoffset:-1px}}@keyframes current-node-pulse{0%,to{opacity:.38;transform:scale(.72)}50%{opacity:1;transform:scale(1.18)}}.site-footer{border-top:1px solid var(--line);color:var(--muted)}.site-footer p{margin:0}.site-footer nav{gap:1.25rem;display:flex}.facts{gap:1rem;margin:0 0 3rem;display:flex}.facts div{border-top:1px solid var(--line);min-width:12rem;padding:1rem}dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}dd{margin:0}.notice{border-left:3px solid var(--accent);background:var(--surface);margin:2rem 0;padding:1rem 1.2rem}.legal h2,.prose h2{margin-top:2.8rem;font-size:1.65rem}.prose h3{margin-top:2rem}.legal p,.prose p{color:#c9cecd}.link-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.link-list li{border-bottom:1px solid var(--line)}.link-list a{padding:1.2rem 0;font-size:1.2rem;display:block}@media (hover:hover){.button:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 .8rem 2rem #416b8124}.button.primary:hover{background:linear-gradient(135deg,#52768a,#87afc4);box-shadow:0 1rem 3rem #5386a13d}.card:hover{border-color:#506b7a;transform:translateY(-4px);box-shadow:0 1.6rem 4rem #0003,0 0 2.5rem #4c799114,inset 0 1px #ffffff08}.card:hover:after{opacity:.78}}@media (width<=64rem){.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.current-field{opacity:.8;inset-inline:32% -22%}}@media (width<=42rem){.app-grid{grid-template-columns:1fr}.hero{background:linear-gradient(90deg,#090d10fa,#090d10ad),radial-gradient(circle at 80% 38%,#537f9724,#0000 20rem);min-height:36rem;padding-block:6rem}.hero h1{font-size:clamp(3.2rem,16vw,4.5rem)}.current-field{opacity:.54;inset:0 -70% 0 10%}.current-divider{height:3rem;margin-block:-1.5rem}.header-inner{flex-direction:column;align-items:flex-start;padding-block:1.2rem}.site-header ul{flex-wrap:wrap;gap:1rem}.split{grid-template-columns:1fr}.home-section.split{margin-inline:1.25rem}.facts{flex-direction:column}.footer-inner{flex-direction:column;align-items:flex-start;padding-block:2rem}.site-footer nav{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
