.projects-page{padding-bottom:clamp(4rem,9vw,8rem)}.projects-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);gap:clamp(2rem,6vw,7rem);align-items:end;border-top:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 78%,transparent);padding:clamp(2rem,7vw,6.5rem) 0 clamp(2rem,5vw,4rem)}.projects-heading>p:first-child,.projects-group>header>p{margin:0 0 1rem;color:var(--accent);font-family:var(--font-google-sans-code),monospace;font-size:.75rem;font-weight:700;letter-spacing:.14em}.projects-heading h1{max-width:16ch;margin:0;color:var(--foreground);font-size:clamp(2.6rem,7vw,6.8rem);font-weight:760;letter-spacing:-.065em;line-height:.96}.projects-heading>p:last-child{max-width:44rem;margin:1.5rem 0 0;color:color-mix(in srgb,var(--foreground) 76%,var(--muted-foreground));font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.85}.projects-summary{display:grid;gap:0;margin:0;border-left:1px solid color-mix(in srgb,var(--border) 78%,transparent)}.projects-summary div{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:baseline;border-bottom:1px solid color-mix(in srgb,var(--border) 64%,transparent);padding:1rem 0 1rem 1.25rem}.projects-summary dt{color:var(--muted-foreground);font-size:.82rem}.projects-summary dd{margin:0;color:var(--foreground);font-family:var(--font-google-sans-code),monospace;font-size:1.15rem;font-weight:700}.projects-index{display:flex;flex-wrap:wrap;gap:.65rem;padding:1.25rem 0}.projects-index a{border:1px solid color-mix(in srgb,var(--border) 80%,transparent);padding:.45rem .8rem;color:var(--muted-foreground);font-size:.84rem;text-decoration:none}.projects-index a:hover,.projects-index a:focus-visible{border-color:var(--accent);color:var(--accent)}.projects-group{padding-top:clamp(3rem,7vw,6rem);scroll-margin-top:5rem}.projects-group>header{display:grid;grid-template-columns:minmax(5rem,.2fr) 1fr;gap:1rem;align-items:end;margin-bottom:1.25rem}.projects-group>header>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid color-mix(in srgb,var(--border) 78%,transparent);padding-bottom:.75rem}.projects-group h2{margin:0;color:var(--foreground);font-size:clamp(1.75rem,4vw,3rem);font-weight:720;letter-spacing:-.035em}.projects-group header span{color:var(--muted-foreground);font-size:.82rem}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem)}.project-card{min-width:0}.project-card-selector{position:relative;display:grid;width:100%;min-height:8rem;overflow:hidden;align-content:space-between;border:1px solid color-mix(in srgb,var(--border) 76%,transparent);padding:clamp(1.25rem,3vw,2rem);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent 48%),repeating-linear-gradient(90deg,transparent 0 2.95rem,color-mix(in srgb,var(--border) 24%,transparent) 3rem),color-mix(in srgb,var(--background) 93%,var(--muted));color:var(--foreground);font:inherit;text-align:left;text-decoration:none;transition:border-color .18s ease,transform .18s ease}.project-card-selector:after{position:absolute;right:-15%;bottom:-35%;width:72%;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 44%,transparent);border-radius:50%;box-shadow:0 0 0 2rem color-mix(in srgb,var(--accent) 5%,transparent),0 0 0 5rem color-mix(in srgb,var(--accent) 4%,transparent);content:""}.project-card-selector span{position:relative;z-index:1;max-width:12ch;font-family:var(--font-google-sans-code),monospace;font-size:clamp(1.15rem,2.5vw,2rem);font-weight:700;letter-spacing:-.05em;line-height:.94}.project-card-selector small{position:relative;z-index:1;color:var(--accent);font-family:var(--font-google-sans-code),monospace;letter-spacing:.12em}.project-card-selector i{position:absolute;top:1.5rem;right:1.5rem;width:.65rem;height:.65rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 .4rem color-mix(in srgb,var(--accent) 13%,transparent)}.project-card-selector:hover,.project-card-selector:focus-visible{border-color:var(--accent);transform:translateY(-.2rem)}.project-copy{padding:1.25rem 0 0}.project-stage{min-width:0;margin-top:clamp(2rem,5vw,4rem);scroll-margin-top:1rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 38%,#263245);background:#071018;color:#e6f4ff;box-shadow:0 1.5rem 5rem #00000038}.project-stage-header{display:flex;min-width:0;align-items:end;justify-content:space-between;gap:1rem;border-bottom:1px solid rgb(126 218 255 / 20%);padding:clamp(1rem,3vw,1.75rem)}.project-stage-header p,.project-stage-header h2{margin:0}.project-stage-header>div>p{color:#79dcff;font-family:var(--font-google-sans-code),monospace;font-size:.7rem;letter-spacing:.14em}.project-stage-header h2{margin-top:.4rem;font-size:clamp(1.2rem,3vw,2rem)}.project-stage-status{max-width:22rem;color:#9fb4c2;font-size:.78rem;text-align:right}.project-stage-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;border-bottom:1px solid rgb(126 218 255 / 20%)}.project-stage-selectors button{min-width:0;border:0;border-right:1px solid rgb(126 218 255 / 14%);border-bottom:1px solid rgb(126 218 255 / 14%);padding:.8rem 1rem;background:transparent;color:#d8e8f2;text-align:left}.project-stage-selectors button:hover,.project-stage-selectors button:focus-visible,.project-stage-selectors button[aria-pressed=true]{background:#40c7ff1f;color:#8ee5ff}.project-stage-selectors span,.project-stage-selectors small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-stage-selectors small{margin-top:.25rem;color:#8aa0ae;font-size:.68rem}.project-stage-viewport{position:relative;display:grid;min-width:0;aspect-ratio:16 / 9;overflow:hidden;place-items:center;background:linear-gradient(rgb(84 196 240 / 7%) 1px,transparent 1px),linear-gradient(90deg,rgb(84 196 240 / 7%) 1px,transparent 1px),#02070b;background-size:2.5rem 2.5rem}.project-stage iframe{width:100%;height:100%;border:0;background:#fff}.project-stage-placeholder{z-index:1;text-align:center}.project-stage-placeholder p{color:#6d8998;font-family:var(--font-google-sans-code),monospace;letter-spacing:.14em}.project-stage-placeholder button,.project-stage-controls button,.project-stage-controls a{display:inline-flex;min-height:2.75rem;align-items:center;border:1px solid #5dd6ff;padding:0 .85rem;background:transparent;color:#91e5ff;font:inherit;font-weight:700;text-decoration:none}.project-stage-scan{position:absolute;z-index:2;top:-10%;right:0;left:0;height:1px;pointer-events:none;background:#78e1ff;box-shadow:0 0 1.2rem #78e1ff;animation:project-stage-scan 4s linear infinite}.project-stage-external-note{margin:0;border-top:1px solid rgb(126 218 255 / 18%);padding:.75rem 1rem;color:#f1c987;font-size:.8rem}.project-stage-controls{display:flex;min-width:0;flex-wrap:wrap;gap:.65rem;border-top:1px solid rgb(126 218 255 / 20%);padding:.8rem 1rem}.project-stage-controls :disabled,.project-stage-controls [aria-disabled=true]{border-color:#42515a;color:#6f818c;pointer-events:none}.project-stage-fullscreen-message{margin:0;border-top:1px solid rgb(126 218 255 / 18%);padding:.7rem 1rem;color:#f1c987;font-size:.8rem}.project-stage:fullscreen{display:grid;width:100vw;height:100vh;grid-template-rows:auto auto minmax(0,1fr) auto auto}.project-stage:fullscreen .project-stage-viewport{aspect-ratio:auto}@keyframes project-stage-scan{to{transform:translateY(1200px)}}.project-status{display:flex;justify-content:space-between;gap:1rem;color:var(--muted-foreground);font-size:.78rem}.project-status span:before{display:inline-block;width:.45rem;height:.45rem;margin-right:.5rem;border-radius:50%;background:var(--accent);content:""}.project-copy h3{margin:.75rem 0 0;color:var(--foreground);font-size:clamp(1.45rem,3vw,2.2rem);font-weight:720;letter-spacing:-.035em}.project-copy>p{margin:.75rem 0 0;color:color-mix(in srgb,var(--foreground) 76%,var(--muted-foreground));line-height:1.75}.project-copy dl{display:grid;grid-template-columns:4.5rem 1fr;gap:.8rem;margin:1rem 0 0;border-top:1px solid color-mix(in srgb,var(--border) 58%,transparent);padding-top:1rem;font-size:.88rem}.project-copy dt{color:var(--accent);font-weight:700}.project-copy dd{margin:0;color:var(--muted-foreground);line-height:1.65}.project-copy ul{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.project-copy li{border:1px solid color-mix(in srgb,var(--border) 72%,transparent);padding:.3rem .55rem;color:var(--muted-foreground);font-family:var(--font-google-sans-code),monospace;font-size:.72rem}.project-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.project-actions a,.projects-more a{display:inline-flex;min-height:2.65rem;align-items:center;border:1px solid var(--accent);padding:0 .9rem;color:var(--accent);font-weight:700;text-decoration:none}.project-actions a:first-child{background:var(--accent);color:var(--accent-foreground)}.project-actions a:hover,.project-actions a:focus-visible,.projects-more a:hover,.projects-more a:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 36%,transparent);outline-offset:3px}.projects-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:clamp(4rem,8vw,8rem);border-top:1px solid color-mix(in srgb,var(--border) 76%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 76%,transparent);padding:1.25rem 0}.projects-more p{margin:0;color:var(--muted-foreground)}@media(max-width:800px){.projects-hero,.projects-grid{grid-template-columns:1fr}.projects-summary{border-left:0}.projects-summary div{padding-left:0}.projects-group>header{grid-template-columns:3rem 1fr}.project-stage-selectors{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.projects-heading h1{font-size:clamp(2.45rem,14vw,4rem)}.projects-group>header>div{display:block}.projects-group header span{display:block;margin-top:.25rem}.project-card-selector{min-height:7rem}.project-stage-header{display:block}.project-stage-status{margin-top:.6rem;text-align:left}.project-stage-selectors{grid-template-columns:1fr}.project-stage-viewport{min-height:13rem;aspect-ratio:auto}}@media(prefers-reduced-motion:reduce){.project-card-selector{transition:none}.project-stage-scan{animation:none}}
