:root{--bg:#04070a;--bg-2:#071219;--text:#e6f4f6;--muted:#6f8a93;--dim:#14262e;--accent:#2ee6dc;--accent-2:#5cd8ff;--accent-glow:#2ee6dc6b;--danger:#ff6f57;--danger-glow:#ff6f5761;--font-display:"Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--ease:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stage{background:radial-gradient(120% 90% at 50% 34%, var(--bg-2), var(--bg) 68%);justify-content:center;align-items:center;width:100%;min-height:100svh;display:flex;position:relative;overflow:hidden}.aura{pointer-events:none;background:radial-gradient(38% 34% at 50% 40%,#2ee6dc17,#0000 70%),radial-gradient(30% 26% at 22% 74%,#5cd8ff0e,#0000 72%);position:absolute;inset:-25%}.grain{pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url(/textures/grain.png);background-size:180px;position:absolute;inset:0}.hud{z-index:3;justify-content:space-between;align-items:center;padding:clamp(18px,3.4vw,30px) clamp(20px,4vw,40px);display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:.42em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.title{z-index:2;letter-spacing:-.02em;text-align:center;color:var(--text);opacity:.94;pointer-events:none;font-size:clamp(30px,7.4vw,58px);font-weight:500;line-height:1;position:absolute;top:clamp(72px,15vh,158px);left:0;right:0}.note{text-align:center;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);opacity:.55;transition:opacity .5s var(--ease-soft);font-size:12px;position:absolute;bottom:clamp(20px,4vw,36px);left:0;right:0}.dl:not([data-state=idle])~.note{opacity:0}.dl{z-index:2;flex-direction:column;align-items:center;display:flex;position:relative}.dl__box{aspect-ratio:1;width:min(430px,86vw);position:relative}.dl__svg{width:100%;height:100%;display:block;overflow:visible}.rail{stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.rail--track{stroke:var(--dim)}.rail--fill{stroke:var(--accent);filter:drop-shadow(0 0 7px var(--accent-glow));stroke-dasharray:1 1;stroke-dashoffset:0}.dl[data-state=error] .rail--fill{stroke:var(--danger);filter:drop-shadow(0 0 7px var(--danger-glow))}.arrow{fill:var(--accent);filter:drop-shadow(0 0 8px var(--accent-glow))}.canopy{filter:drop-shadow(0 0 8px var(--accent-glow));opacity:0}.canopy__dome{fill:var(--accent)}.canopy__lines{stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round}.dl[data-state=error] .arrow,.dl[data-state=error] .canopy__dome{fill:var(--danger)}.dl[data-state=error] .arrow,.dl[data-state=error] .canopy{filter:drop-shadow(0 0 8px var(--danger-glow))}.dl[data-state=error] .canopy__lines{stroke:var(--danger)}.check{stroke:var(--accent);stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px var(--accent-glow));opacity:0}.dl__btn{aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;width:29%;transition:transform .34s var(--ease), opacity .28s var(--ease-soft);background:0 0;border:0;border-radius:50%;padding:0;position:absolute;top:52.08%;left:50%;transform:translate(-50%,-50%)}.dl__btn:focus-visible{outline:2px solid var(--accent-2);outline-offset:8px}.dl__btn:hover{transform:translate(-50%,-50%)scale(1.05)}.dl__btn:active{transform:translate(-50%,-50%)scale(.94)}.dl[data-state=downloading] .dl__btn,.dl[data-state=landing] .dl__btn,.dl[data-state=cancelling] .dl__btn{opacity:0;pointer-events:none}.dl[data-state=complete] .dl__btn{width:24%;top:55%}.dl[data-state=error] .dl__btn{width:30%;top:58%}.dl__cancel{cursor:pointer;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-soft), transform .3s var(--ease), color .2s;background:0 0;border:0;padding:8px 14px;font-family:inherit;font-size:11px;position:absolute;bottom:2%;left:50%;transform:translate(-50%)translateY(6px)}.dl__cancel:hover{color:var(--text)}.dl__cancel:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:4px}.dl[data-state=downloading] .dl__cancel{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.dl__meter{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dl__pct,.dl__state{text-align:center;pointer-events:none;position:absolute;left:0;right:0}.dl__pct{font-family:var(--font-mono);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--muted);opacity:0;transition:opacity .3s var(--ease-soft);font-size:clamp(12px,3vw,14px);font-weight:500;top:72.5%}.dl__state{letter-spacing:.13em;color:var(--muted);opacity:0;transition:opacity .4s var(--ease-soft), transform .4s var(--ease);font-size:clamp(12px,3vw,14px);font-weight:500;top:44.5%;transform:translateY(6px)}.dl[data-state=downloading] .dl__pct,.dl[data-state=landing] .dl__pct,.dl[data-state=complete] .dl__pct,.dl[data-state=error] .dl__pct{opacity:1}.dl[data-state=complete] .dl__state,.dl[data-state=error] .dl__state{opacity:1;transform:translateY(0)}.dl[data-state=error] .dl__state{color:var(--danger);top:40.5%}.dl__file{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);justify-content:center;align-items:baseline;gap:10px;margin-top:clamp(2px,1.4vw,10px);font-size:12px;display:flex}.dl__size{opacity:.6}.dl__size:empty{display:none}@media (prefers-reduced-motion:reduce){.dl__btn,.dl__cancel,.dl__pct,.dl__state,.note{transition-duration:.01ms}.dl__btn:hover,.dl__btn:active{transform:translate(-50%,-50%)}.canopy,.dl[data-state=downloading] .rig,.dl[data-state=landing] .rig,.dl[data-state=cancelling] .rig,.dl[data-state=error] .rig,.dl[data-state=complete] .arrow{display:none}.dl__state{transform:none}}@media (width<=520px){.dl__box{width:min(360px,88vw)}.title{margin-bottom:4px}}@media (height<=640px){.dl__box{width:min(320px,74vh)}.note{display:none}}
