:root{--bg:#121013;--text:#BCBBBD;--primary:#9542CD;--secondary:#84E543;--accent:#FFA411;--line:rgba(188,187,189,.16);--drift:0px;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit}a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--secondary);outline-offset:5px}::selection{background:var(--primary);color:white}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:var(--secondary);color:var(--bg);padding:15px}.skip:focus{top:12px}.topbar{position:relative;z-index:2;margin:0 2.4%;height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font-size:20px;font-weight:750;letter-spacing:-.8px}.brand-mark{font-size:38px;color:var(--primary);margin-right:14px}.dev{font-weight:400;color:#88818c}nav{display:flex;gap:42px;font-size:13px}nav span{color:var(--secondary);margin-left:14px}.github-link{border:1px solid var(--line);padding:12px 18px;border-radius:30px}.scene{position:absolute;inset:0 0 auto;height:850px;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 70% 30%,#39204770,transparent 48%),linear-gradient(#121013 10%,#171322 55%,#251c38 69%,#121013 100%)}.stars{position:absolute;inset:0;transform:translateY(calc(var(--drift) * -.2));background-image:radial-gradient(1px 1px at 10% 22%,#fff 99%,transparent),radial-gradient(1px 1px at 33% 32%,#c4a4e3 99%,transparent),radial-gradient(1.5px 1.5px at 76% 17%,#fff 99%,transparent),radial-gradient(1px 1px at 91% 42%,#fff 99%,transparent),radial-gradient(1px 1px at 58% 8%,#fff 99%,transparent);background-size:387px 277px;opacity:.65;animation:twinkle 7s ease-in-out infinite alternate}.moon{position:absolute;width:135px;height:135px;border-radius:50%;top:210px;left:73%;background:radial-gradient(circle at 36% 30%,#f3e8dd,#bfb0d3 67%,#74618a);box-shadow:0 0 80px #b9a0db22,inset -22px -12px 20px #61507160;transform:translateY(calc(var(--drift) * -.3))}.moon:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 28% 42%,#a092b52b 0 12%,transparent 13%),radial-gradient(circle at 60% 70%,#6d5c8128 0 13%,transparent 14%)}.planet{position:absolute;top:180px;left:51%;width:24px;height:24px;background:#a4846655;border-radius:50%;transform:rotate(-28deg)}.planet:after{content:"";position:absolute;inset:7px -13px;border:1px solid #d1a2ba77;border-radius:50%}.horizon{position:absolute;top:61%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#af79d070,transparent);box-shadow:0 0 65px 28px #9542cd17}.ocean{position:absolute;inset:61% 0 0;background:repeating-linear-gradient(178deg,transparent 0 18px,#b490ca12 19px,transparent 21px 34px),radial-gradient(ellipse at 77% 0,#c6b0e840,transparent 24%),linear-gradient(#20192f88,#121013);transform-origin:top;animation:tide 16s ease-in-out infinite alternate}.wave{position:absolute;width:150%;height:190px;left:-25%;bottom:-70px;border-radius:48% 55% 0 0;background:#121013;transform:rotate(-4deg)}.wave-two{bottom:-100px;background:#1b172455;animation:swell 18s ease-in-out infinite alternate}.hero{height:690px;min-height:610px;position:relative;padding:64px 5% 0 4%;display:flex;justify-content:space-between}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.4px;display:flex;align-items:center;gap:10px}.signal{width:6px;height:6px;background:var(--secondary);border-radius:50%;box-shadow:0 0 12px #84e54360}h1{font-size:clamp(80px,9.2vw,148px);letter-spacing:-8px;line-height:.94;color:#ede9ef;margin:34px 0 24px;font-weight:650}h1>span:first-of-type{color:var(--primary)}h1 .period{display:inline-block;color:var(--secondary);font-size:38px;vertical-align:top;margin:12px 0 0 28px;animation:rotate 40s linear infinite}.intro{font-size:17px;line-height:1.6;color:#aaa2b3}.explore{display:inline-flex;gap:40px;align-items:center;font-size:12px;margin-top:14px;border-bottom:1px solid #a68fbf66;padding-bottom:14px}.explore span{color:var(--secondary);font-size:20px}.scene-caption{align-self:flex-end;text-align:right;margin-bottom:150px}.scene-caption>span{font-size:9px;letter-spacing:2px;color:#b7a6c5}.scene-caption p{font-size:24px;font-weight:300;line-height:1.45;color:#d2c6db}.scene-caption .coordinates{font-size:8px;color:#94859f}.hero-bottom{position:absolute;bottom:24px;left:2.4%;right:2.4%;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#817889}.projects{position:relative;padding:65px 2.4% 30px;background:linear-gradient(#121013ed,#121013)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}h2{font-size:clamp(29px,3vw,44px);color:#e4dfe9;letter-spacing:-1.6px;font-weight:500;margin:15px 0}.accent{color:var(--secondary)}.section-heading>p{font-size:12px;line-height:1.8;color:#8d8694}.toolbar{display:flex;align-items:center;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.search{display:flex;align-items:center;gap:12px;flex:1}.search>span{font-size:26px;color:#9d8caa}.search input{width:100%;max-width:420px;background:transparent;color:var(--text);border:0;font-size:13px;padding:8px}.sort{display:flex;gap:10px;align-items:center;font-size:11px;color:#89818f}.sort select{border:0;background:var(--bg);color:#d2c9da;padding:7px;max-width:180px}.count{font-size:10px;color:#a795b5;white-space:nowrap}.status{font-size:11px;color:#91859c;min-height:18px;margin:18px 0}.repo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.repo-card{position:relative;display:flex;flex-direction:column;min-height:268px;padding:26px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#201a27a0,#18151c);transition:transform .25s,border-color .25s,box-shadow .25s;overflow:hidden}.repo-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,#9542cd18,transparent 70%);opacity:0;transition:opacity .25s}.repo-card:hover{transform:translateY(-5px);border-color:#9542cd88;box-shadow:0 18px 45px #0004}.repo-card:hover:before{opacity:1}.card-top{position:relative;display:flex;justify-content:space-between;align-items:center;color:#a981c7}.repo-icon{font-family:monospace;font-size:23px}.card-number{font-size:9px;letter-spacing:1.5px;color:#72647e}.repo-card h3{position:relative;font-size:21px;font-weight:550;letter-spacing:-.6px;color:#e2dbe9;margin:25px 0 10px;overflow-wrap:anywhere}.repo-card p{font-size:12px;color:#9c91a6;line-height:1.8;margin:0 0 28px;flex:1;position:relative}.card-meta{position:relative;display:flex;align-items:center;gap:15px;font-size:10px;color:#9b90a6}.language{display:flex;gap:7px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}.card-arrow{margin-left:auto;font-size:19px;color:var(--secondary);transition:transform .25s}.repo-card:hover .card-arrow{transform:translate(3px,-3px)}.archive{color:var(--accent);font-size:9px;margin-left:10px}.empty{grid-column:1/-1;padding:45px 0;color:#aca0b6}.project-end{display:flex;justify-content:space-between;gap:20px;padding:35px 0;font-size:9px;letter-spacing:1px;color:#756c7d}.project-end a{color:#b7a8c4}footer{margin:0 2.4%;padding:30px 0;display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);font-size:10px;color:#81758c}footer .brand{font-size:32px;color:var(--primary);gap:15px}.footer-name{font-size:12px;color:var(--text);letter-spacing:0}footer>a:last-child{margin-left:auto}@keyframes twinkle{to{opacity:.3}}@keyframes tide{to{transform:translateX(14px) scaleX(1.04)}}@keyframes swell{to{transform:translateY(-15px) rotate(2deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@media(min-width:1800px){.repo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hero{padding-left:4%}}@media(max-width:900px){.repo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-caption{margin-bottom:145px}.scene-caption p{font-size:18px}.moon{left:72%;width:95px;height:95px}h1{letter-spacing:-5px}.hero{height:650px}.topbar{height:80px}}@media(max-width:580px){.topbar{margin:0 5%;height:76px}.brand{font-size:17px}.brand-mark{font-size:32px}nav{gap:15px}nav>a:not(.github-link){display:none}.github-link{font-size:11px;padding:9px 14px}.hero{height:670px;padding:54px 6% 0}.eyebrow{font-size:8px;letter-spacing:1.7px}h1{font-size:88px;margin-top:40px}.hero h1 .period{font-size:25px;margin-left:16px}.intro{font-size:14px}.moon{top:442px;left:74%;width:65px;height:65px}.planet{top:135px;left:82%;width:16px;height:16px}.scene{height:820px}.scene-caption{display:none}.hero-bottom{left:6%;right:6%;font-size:6px;letter-spacing:1px}.projects{padding:40px 4% 15px}.section-heading>p{display:none}h2{font-size:29px}.toolbar{flex-wrap:wrap;gap:12px}.search{flex-basis:100%}.sort{flex:1}.repo-grid{grid-template-columns:1fr}.repo-card{min-height:250px}.project-end{flex-direction:column;font-size:8px}footer{margin:0 4%;gap:10px;flex-wrap:wrap}footer p{display:none}footer>a:last-child{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.stars,.moon{transform:none}}


.living-ocean{position:absolute;inset:0;width:100%;height:100%;transform:translateY(calc(var(--drift) * -.045));mask-image:linear-gradient(transparent 57%,#000 62%,#000 88%,transparent 100%)}.ocean{opacity:.4}.wave-one{opacity:.65}.wave-two{opacity:.5}@media(prefers-reduced-motion:reduce){.living-ocean{transform:none}}
/* A fixed lunar surface, with independently sparkling stars around it. */
.moon{background:transparent url('moon.svg') center/contain no-repeat;box-shadow:0 0 80px #b9a0db22;animation:none}.moon:after{display:none}.stars{animation:none;opacity:1;background-image:none}.twinkle-star{position:absolute;width:var(--size);height:var(--size);border-radius:50%;background:#eae0ff;opacity:.25;box-shadow:0 0 5px #d3b5ee55;animation:star-sparkle var(--duration) ease-in-out var(--delay) infinite}.bright-star{background:#fff5e6;box-shadow:0 0 8px #dabcfaaa}.bright-star:before,.bright-star:after{content:'';position:absolute;background:#dfc9f5;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.bright-star:before{width:1px;height:8px}.bright-star:after{height:1px;width:8px}@keyframes star-sparkle{0%,100%{opacity:.18;scale:.75}45%{opacity:.45;scale:1}60%{opacity:1;scale:1.15}75%{opacity:.4;scale:.9}}@media(prefers-reduced-motion:reduce){.twinkle-star{animation:none;opacity:.6}}
/* Quiet starlight; the moon remains completely stationary. */
.moon{transform:none!important;animation:none!important;transition:none!important}.twinkle-star{opacity:.48;animation-name:quiet-twinkle;animation-duration:calc(var(--duration) * 2);box-shadow:0 0 3px #d3b5ee22}.bright-star{box-shadow:0 0 4px #dabcfa33}.bright-star:before,.bright-star:after{opacity:.3}.bright-star:before{height:5px}.bright-star:after{width:5px}@keyframes quiet-twinkle{0%,100%{opacity:.4}50%{opacity:.57}}@media(prefers-reduced-motion:reduce){.twinkle-star{animation:none;opacity:.48}}

/* Two vertical chapters: a full-screen seascape, then the workshop. */
html{scroll-snap-type:y mandatory;scroll-padding-top:0}.topbar{position:absolute;top:0;left:0;right:0}.hero{height:100svh;min-height:520px;padding:clamp(140px,22svh,240px) 5% 0 4%;scroll-snap-align:start;scroll-snap-stop:always}.hero h1{margin:0;font-size:clamp(86px,10vw,160px)}.scene{height:100svh;min-height:520px}.moon{top:26%;left:76%;width:clamp(85px,10vw,150px);height:clamp(85px,10vw,150px)}.planet{top:20%;left:57%}.hero-bottom{bottom:28px;justify-content:center}.hero-bottom a{display:flex;align-items:center;gap:18px;padding:14px;color:#b6a7c4}.hero-bottom a span{color:var(--secondary);font-size:18px}.projects{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;padding-top:48px}.living-ocean{transform:none;mask-image:linear-gradient(transparent 57%,#000 62%,#000 94%,transparent 100%)}.wave{display:none}footer{scroll-snap-align:end}@media(max-width:580px){.hero{padding:clamp(130px,21svh,190px) 6% 0;min-height:520px}.hero h1{font-size:clamp(74px,20vw,108px)}.hero h1 .period{font-size:24px;margin:8px 0 0 15px}.moon{top:42%;left:74%;width:66px;height:66px}.planet{top:16%;left:80%}.scene{height:100svh;min-height:520px}.hero-bottom{bottom:18px}.hero-bottom a{font-size:8px;letter-spacing:2px}.projects{padding-top:30px}}@media(max-height:550px) and (min-width:581px){.hero{padding-top:115px}.hero h1{font-size:85px}.moon{top:25%;width:80px;height:80px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
