:root{--ground:#050407;--text:#F6F3EE;--quiet:#A8A1B3;--accent:#A774FF;--gold:#F2A900}
.creed > div:nth-child(1){--i:0}.creed > div:nth-child(2){--i:1}.creed > div:nth-child(3){--i:2}
.orbit.wide{aspect-ratio:1000/470}
.orbit.wide .hub{left:50.00%;top:50.00%}
.orbit.wide .stage.s0{left:12.00%;top:50.00%}
.orbit.wide .stage.s1{left:35.55%;top:20.48%}
.orbit.wide .stage.s2{left:64.48%;top:20.49%}
.orbit.wide .stage.s3{left:88.00%;top:50.03%}
.orbit.wide .stage.s4{left:64.45%;top:79.52%}
.orbit.wide .stage.s5{left:35.52%;top:79.51%}
.orbit.compact{aspect-ratio:360/290}
.orbit.compact .hub{left:50.00%;top:51.03%}
.orbit.compact .stage.s0{left:27.22%;top:51.03%}
.orbit.compact .stage.s1{left:38.94%;top:28.12%}
.orbit.compact .stage.s2{left:61.08%;top:28.14%}
.orbit.compact .stage.s3{left:72.78%;top:51.03%}
.orbit.compact .stage.s4{left:61.06%;top:73.94%}
.orbit.compact .stage.s5{left:38.92%;top:73.93%}
.kardashev .humanity{left:24.27%}
.kardashev .t0{left:0}
.kardashev .gold{width:24.27%}
.kardashev .t1{left:33.33%}
.kardashev .t2{left:66.67%}
.kardashev .t3{left:100.00%}
.kardashev .line.armed.here .track{transition:clip-path 1.2s cubic-bezier(0.65,0,0.35,1)}
.kardashev .line.armed.here .gold{transition:clip-path 0.8s var(--ease) 1.2s}
.kardashev .line.armed.here .now{transition:opacity .5s var(--ease) 1.85s,transform .7s var(--ease) 1.85s,filter .9s var(--ease) 2.00s}
.kardashev .line.armed.here .humanity{transition-delay:1.90s}
.kardashev .line.armed.here .now{animation:breathe 2.4s ease-in-out 2.90s infinite}
.kardashev .line.armed.here .t0{transition-delay:0.00s}
.kardashev .line.armed.here .t1{transition-delay:0.53s}
.kardashev .line.armed.here .t2{transition-delay:0.67s}
.kardashev .line.armed.here .t3{transition-delay:1.20s}

:root { --line: color-mix(in srgb, var(--text) 16%, transparent); --spine: color-mix(in srgb, var(--accent) 60%, transparent); }
.page sub { font-size: .72em; line-height: 0; }
.code-line { color: var(--quiet); margin-bottom: 10px; }
.page .sources { max-width: 40em; color: var(--quiet); }
.page .sources li { overflow-wrap: anywhere; }
.kpage .kardashev { max-width: 34em; margin: 0 0 22px; }
.kpage .ktypes { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 16px; max-width: 820px; }
.kpage .ktypes > li { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--accent) 24%, transparent); padding: 14px 22px 24px;
  background:
    linear-gradient(120deg, color-mix(in srgb, var(--text) 5%, transparent), transparent 38%),
    repeating-linear-gradient(0deg, color-mix(in srgb, var(--accent) 6%, transparent) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, color-mix(in srgb, var(--accent) 6%, transparent) 0 1px, transparent 1px 24px),
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--ground) 82%, transparent) 70%);
  box-shadow: inset 0 0 28px color-mix(in srgb, var(--accent) 14%, transparent), 0 24px 60px -30px color-mix(in srgb, var(--accent) 60%, transparent); }
.kpage .ktypes > li::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(var(--accent), var(--accent)) top left / 16px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top left / 2px 16px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top right / 16px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) top right / 2px 16px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom left / 16px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom left / 2px 16px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom right / 16px 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) bottom right / 2px 16px no-repeat; }
.kpage .ktypes .scan { position: absolute; left: 0; right: 0; top: -30%; height: 30%; pointer-events: none; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 10%, transparent), transparent); animation: scan 7s linear infinite; }
.kpage .ktypes > li:nth-child(2) .scan { animation-delay: -2.3s; }
.kpage .ktypes > li:nth-child(3) .scan { animation-delay: -4.6s; }
.kpage .ktypes .kicker { display: flex; align-items: center; gap: 10px; font: 400 14px/1 "Michroma", sans-serif; color: var(--accent); margin: 4px 0 18px; }
.kpage .ktypes .kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 8px var(--gold); animation: live 3.6s ease-in-out infinite; }
.kpage .ktypes > li:nth-child(2) .kicker::before { animation-delay: -1.2s; }
.kpage .ktypes > li:nth-child(3) .kicker::before { animation-delay: -2.4s; }
.kpage .ktypes .sym { position: absolute; top: 16px; right: 20px; width: 52px; height: 52px; fill: none; stroke: var(--text); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.kpage .ktypes .sym .solid { fill: var(--ground); }
.kpage .ktypes .sym .core { fill: var(--text); stroke: none; }
.kpage .ktypes h3 { font: 400 1em/1.5 "Michroma", sans-serif; margin: 0 0 14px; padding-right: 64px; }
.kpage .ktypes .watts { display: grid; gap: 4px; font: 400 26px/1.2 "Michroma", sans-serif; margin: 0 0 16px; }
.kpage .ktypes .watts b { font-weight: 400; }
.kpage .ktypes .watts sup { font-size: .55em; vertical-align: .75em; line-height: 0; }
.kpage .ktypes .watts span { font: 400 15px/1.4 "Saira", sans-serif; color: var(--quiet); }
.kpage .ktypes p { max-width: 40em; }
.kpage .ktypes .code-line { margin: 18px 0 4px; }
.kpage .ktypes .look { font-size: 1.06em; }
.kpage .ktypes > li > :last-child { margin-bottom: 0; }
.kpage .facts.numbers { max-width: 34em; }
.kpage .facts.numbers dd { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.kpage .page .facts.numbers > div, .kpage .facts.numbers > div { grid-template-columns: 120px 1fr; gap: 2px 20px; padding: 10px 0; }
.kpage .facts.numbers .pow { display: block; font-size: .8em; }
.kpage .facts.numbers .pow sup { font-size: .72em; line-height: 0; }
.kpage .ktypes .facts.flows { margin: 6px 0 16px; }
.kpage .page .facts.numbers.flows > div { grid-template-columns: 1fr; gap: 0; padding: 7px 0; }
@media (min-width: 600px) { .kpage .page .facts.numbers.flows > div { grid-template-columns: 15em 1fr; gap: 2px 20px; } }
.kpage .page .facts.numbers.flows.mix > div { grid-template-columns: 12em 1fr; gap: 2px 20px; padding: 6px 0; }
.kpage .play { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 0; }
.kpage .play .enter { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .kpage .ktypes .scan { display: none; } .kpage .ktypes .kicker::before { animation: none; } }
.page .facts { margin: 0 0 20px; max-width: 820px; }
.page .facts > div { display: grid; gap: 2px 32px; padding: 14px 0; }
.page .facts > div + div { border-top: 1px solid var(--line); }
@media (min-width: 760px) { .page .facts > div { grid-template-columns: 190px 1fr; } }
.page .facts dt { color: var(--quiet); }
.page .facts dd { margin: 0; }
.page .facts dd > :last-child { margin-bottom: 0; }
.page .facts dd ul, .page .facts dd ol { margin-bottom: 0; }
.page .facts .byline { margin: 4px 0 0; }
.page .facts.compact > div { padding: 8px 0; }
.page .facts.compact > div + div { border-top: 0; }
@media (min-width: 760px) { .page .facts.compact > div { grid-template-columns: 150px 1fr; } }
.part, .step { scroll-margin-top: 120px; }
.page .part > h2, .page .step > h2 { margin: 112px 0 14px; }
.study .step, .study .part { scroll-margin-top: 196px; }
@media (min-width: 760px) { .study .step, .study .part { scroll-margin-top: 236px; } }
.steps a.pt:focus-visible, .dive summary:focus-visible, .options button:focus-visible, .clear-filters:focus-visible, .finder .enter:focus-visible { outline: 1px solid var(--accent); outline-offset: 4px; }
.page .dive { margin: 6px 0 22px; max-width: 760px; }
.dive summary { list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 14px; color: var(--accent); }
.dive summary::-webkit-details-marker { display: none; }
.dive summary span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.dive summary::before { content: ""; width: 11px; height: 11px; flex: none; margin-top: .55em; background: linear-gradient(currentColor, currentColor) center / 11px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 11px no-repeat; transition: transform .45s var(--ease); }
.dive[open] summary::before { transform: rotate(45deg); }
.dive > div { padding: 14px 0 2px; }
.page .results.missions .code-line, .page .results.sims .code-line { margin-bottom: 4px; }
.paper-doc .part > h2 { margin-top: 52px; }
.paper-group .code-line { margin-bottom: 4px; }
.study-row .code-line { margin-bottom: 2px; }
