:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0d0f14;--panel:#171a22;--panel-strong:#202532;--text:#f4f2eb;--muted:#a7adb8;--line:#ffffff1a;--accent:#f2c94c;--accent-2:#2d9cdb;--danger:#f05d5e}*{box-sizing:border-box}html,body{min-height:100%}body{background:linear-gradient(160deg, #2d9cdb1f, transparent 34%), linear-gradient(25deg, #f2c94c1a, transparent 32%), var(--background);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.appShell,.detailShell{width:min(1180px,100% - 36px);margin:0 auto;padding:34px 0 48px}.intro{border-bottom:1px solid var(--line);gap:18px;padding:28px 0 30px;display:grid}.topBar,.detailTopBar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.brandLine,.backLink{color:var(--accent);align-items:center;gap:9px;font-size:.92rem;font-weight:700;display:inline-flex}.brandIcon{background-image:url(/icon.png);background-position:50%;background-size:cover;border-radius:8px;flex:none;width:32px;height:32px;box-shadow:0 0 18px #2d9cdb3d}.topActions{flex:none;align-items:center;gap:10px;display:inline-flex}.githubLink{min-height:40px;color:var(--text);border:1px solid var(--line);background:#12161fc7;border-radius:8px;align-items:center;gap:7px;padding:0 12px;font-size:.86rem;font-weight:800;display:inline-flex}.githubLink:hover,.githubLink:focus-visible{color:#101219;background:var(--accent);outline:none}.languageSelector{color:var(--muted);border:1px solid var(--line);background:#12161fc7;border-radius:8px;flex:none;align-items:center;gap:8px;padding:4px;display:inline-flex}.languageSelectorLabel{align-items:center;gap:6px;padding:0 7px;font-size:.82rem;font-weight:800;display:inline-flex}.languageSelectorOptions{align-items:center;gap:3px;display:inline-flex}.languageSelector button{min-height:30px;color:var(--muted);letter-spacing:0;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 9px;font-size:.82rem;font-weight:800}.languageSelector button:hover,.languageSelector button:focus-visible{color:var(--text);outline:none}.languageSelector button.active{color:#101219;background:var(--accent)}.intro h1,.detailHeader h1{letter-spacing:0;max-width:960px;margin:0;font-size:clamp(2.35rem,5vw,5rem);line-height:.98}.intro h1{font-size:clamp(2.25rem,4.4vw,4rem);line-height:1.05}.intro p,.detailHeader p,.solutionCard p{max-width:880px;color:var(--muted);margin:0;line-height:1.75}.catalogNote{border-left:3px solid #f2c94cb3;padding-left:14px;font-size:.96rem}.versionPanel{flex:none;position:relative}.versionPanel summary{min-height:40px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#12161fc7;border-radius:8px;align-items:center;padding:0 11px;list-style:none;display:inline-flex}.versionPanel summary::-webkit-details-marker{display:none}.versionPanel summary:hover,.versionPanel summary:focus-visible{border-color:#f2c94c73;outline:none}.versionPanel summary span{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;font-weight:900}.versionHistory{z-index:20;border:1px solid var(--line);background:#12161ffa;border-radius:8px;gap:14px;width:min(640px,100vw - 36px);padding:16px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 55px #0000006b}.versionHistory h2,.versionHistory h3,.versionHistory p{margin:0}.versionHistory h2{letter-spacing:0;font-size:1rem}.versionHistory>div>p{color:var(--muted);margin-top:5px;line-height:1.65}.versionHistory ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.versionHistory li{border-top:1px solid #ffffff12;grid-template-columns:56px minmax(0,1fr);gap:12px;padding-top:10px;display:grid}.versionHistory li>span{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem;font-weight:900}.versionHistory h3{color:var(--text);letter-spacing:0;font-size:.94rem}.versionHistory li p{color:var(--muted);margin-top:3px;line-height:1.55}.classificationGuide{color:#cfd5dc;background:#ffffff09;border:1px solid #ffffff17;border-radius:8px;max-width:900px;padding:13px 15px}.classificationGuide strong{color:var(--text);margin-bottom:5px;font-size:.9rem;display:block}.classificationGuide p{margin:0;font-size:.94rem}.familyGuide{margin-top:15px}.familyGuide>span{color:var(--muted);margin-bottom:8px;font-size:.82rem;font-weight:800;display:block}.familyGuide dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0;display:grid}.familyGuide div{min-width:0}.familyGuide dt{color:var(--text);font-size:.86rem;font-weight:900}.familyGuide dd{color:var(--muted);margin:3px 0 0;font-size:.88rem;line-height:1.55}.classificationLegend{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.classificationLegend>div>span{color:var(--muted);margin-bottom:7px;font-size:.82rem;font-weight:800;display:block}.dimensionTabs{border:1px solid var(--line);background:#12161fc7;border-radius:8px;align-items:center;gap:6px;width:fit-content;margin-top:22px;padding:4px;display:inline-flex}.dimensionTabs button{min-width:96px;min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:0 13px;display:inline-flex}.dimensionTabs button:hover,.dimensionTabs button:focus-visible{color:var(--text);outline:none}.dimensionTabs button.active{color:#101219;background:var(--accent)}.dimensionTabs strong{min-width:22px;color:inherit;background:#ffffff2e;border-radius:999px;padding:2px 6px;font-size:.78rem}.solutionGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:24px;display:grid}.methodSection{border-top:1px solid var(--line);gap:14px;margin-top:28px;padding:24px 0 0;display:grid}.methodSection h2{letter-spacing:0;margin:0;font-size:1.35rem}.methodSection ul{max-width:920px;color:var(--muted);gap:10px;margin:0;padding-left:1.2rem;line-height:1.75;display:grid}.methodSection li::marker{color:var(--accent)}.sourcePanel{border:1px solid var(--line);background:#20253294;border-radius:8px;gap:10px;max-width:920px;padding:16px;display:grid}.sourcePanel h3{color:var(--text);letter-spacing:0;margin:0;font-size:1rem}.sourcePanel p{color:var(--muted);margin:0;line-height:1.75}.sourcePanel a,.sourceDetail a{width:fit-content;color:var(--accent);align-items:center;gap:7px;font-weight:800;display:inline-flex}.sourcePanel a:hover,.sourcePanel a:focus-visible,.sourceDetail a:hover,.sourceDetail a:focus-visible{color:#ffe08a;outline:none}.referenceList{gap:10px;max-width:920px;display:grid}.referenceList h3{color:var(--text);letter-spacing:0;margin:4px 0 0;font-size:1rem}.referenceList ol{gap:9px;margin:0;padding:0;list-style:none;display:grid}.referenceList li{color:var(--muted);line-height:1.65}.referenceList li span{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem}.referenceList a{color:var(--muted);text-underline-offset:3px;-webkit-text-decoration:underline #f2c94c73;text-decoration:underline #f2c94c73}.referenceList a:hover,.referenceList a:focus-visible{color:var(--text);outline:none}.solutionCard{background:color-mix(in srgb, var(--panel) 92%, white);border:1px solid var(--line);border-radius:8px;flex-direction:column;justify-content:space-between;gap:32px;min-height:260px;padding:22px;transition:border-color .16s,transform .16s,background .16s;display:flex}.solutionCard:hover,.solutionCard:focus-visible{background:var(--panel-strong);border-color:#f2c94c8c;outline:none;transform:translateY(-2px)}.family{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.solutionCard h2{letter-spacing:0;margin:10px 0 12px;font-size:1.5rem;line-height:1.1}.cardTop{justify-content:space-between;align-items:flex-start;gap:14px;min-height:92px;display:flex}.cardTop>div{min-width:0}.orbitThumbnail{width:92px;height:92px;color:var(--line);flex:none}.orbitThumbnailFrame{fill:#ffffff07;stroke:#ffffff17}.orbitThumbnailPath{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45px;opacity:.76}.classificationBadges{flex-wrap:wrap;gap:7px;margin-top:13px;display:flex}.orbitBadge,.stabilityBadge{border:1px solid var(--line);border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:.78rem;font-weight:800;display:inline-flex}.orbitBadge.periodic{color:#76d7ff;background:#2d9cdb21;border-color:#76d7ff57}.orbitBadge.relative-equilibrium{color:#d0b6ff;background:#b38cff21;border-color:#d0b6ff57}.orbitBadge.transient{color:#ff9a9b;background:#f05d5e1f;border-color:#f05d5e61}.stabilityBadge.stable{color:#8be7a7;background:#5cd27b1f;border-color:#8be7a759}.stabilityBadge.unstable{color:#ffd166;background:#f2c94c1f;border-color:#f2c94c61}.stabilityBadge.chaotic{color:#ff9a9b;background:#f05d5e1f;border-color:#f05d5e61}.stabilityBadge.unverified{color:#cfd5dc;background:#cfd5dc14;border-color:#cfd5dc3d}.stabilityText{margin-top:12px;font-size:.9rem}.cardFooter{color:var(--muted);justify-content:space-between;align-items:flex-end;gap:18px;font-size:.84rem;display:flex}.cardFooter svg{color:var(--accent);flex:none}.siteFooter{color:#f4f2eb85;justify-content:center;padding-top:28px;font-size:.82rem;display:flex}.detailHeader{grid-template-columns:120px 1fr;align-items:start;gap:22px;padding:8px 0 22px;display:grid}.detailHeader h1{margin:8px 0 14px;font-size:clamp(2.1rem,4vw,4.4rem)}.stabilityDetail{color:#d5d9df;margin-top:12px}.sourceDetail{margin-top:12px;font-size:.92rem}.simulator{border:1px solid var(--line);background:#101219;border-radius:8px;position:relative;overflow:hidden}.referenceLegend{z-index:1;color:#f4f2ebbd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101219bd;border:1px solid #ffffff1c;border-radius:7px;align-items:center;gap:8px;max-width:min(360px,100% - 24px);padding:8px 10px;font-size:.82rem;display:inline-flex;position:absolute;top:12px;right:12px}.orbitDot{border-radius:50%;flex:none;width:9px;height:9px}.orbitDot.periodic{background:#76d7ff}.orbitDot.relative-equilibrium{background:#d0b6ff}.orbitDot.transient{background:var(--danger)}.simulationCanvas{cursor:grab;touch-action:none;width:100%;height:min(68vh,720px);min-height:430px;display:block}.simulationCanvas.dragging{cursor:grabbing}.controlBar{border-top:1px solid var(--line);background:#171a22f5;gap:10px;padding:12px 12px 16px;display:grid}.controlButtons,.controlStatus{align-items:center;gap:10px;display:flex}.controlButtons{flex-wrap:wrap}.controlStatus{justify-content:space-between;min-width:0}.integratorControl{min-height:34px;color:var(--muted);border:1px solid var(--line);background:#151923;border-radius:7px;align-items:center;gap:6px;padding:3px;font-size:.84rem;display:inline-flex}.integratorControl span{padding:0 7px}.integratorControl button{min-width:54px;min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 10px}.integratorControl button:hover,.integratorControl button:focus-visible{color:var(--text);outline:none}.integratorControl button.active{color:#101219;background:var(--accent)}.iconButton{min-height:38px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#242a36;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:0 13px;display:inline-flex}.iconButton:hover,.iconButton:focus-visible{border-color:#2d9cdbb8;outline:none}.iconButton.active{color:#101219;background:var(--accent);border-color:var(--accent)}.speedControl{min-width:min(100%,360px);color:var(--muted);align-items:center;gap:10px;font-size:.88rem;display:flex}.speedControl input{width:min(34vw,240px);accent-color:var(--accent)}.speedControl strong{min-width:34px;color:var(--text)}.timeReadout{min-width:96px;color:var(--accent);text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.zoomReadout{min-width:96px;color:var(--muted);text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem}@media (max-width:850px){.solutionGrid{grid-template-columns:1fr}.topBar,.detailTopBar{flex-direction:column}.topActions{flex-wrap:wrap;width:100%}.githubLink{flex:none}.versionHistory{width:min(100vw - 24px,640px);left:0;right:auto}.languageSelector{flex-wrap:wrap;width:100%}.languageSelectorOptions{flex-wrap:wrap}.detailHeader,.classificationLegend{grid-template-columns:1fr}.versionHistory li{grid-template-columns:1fr;gap:5px}.familyGuide dl{grid-template-columns:1fr}.controlButtons,.controlStatus{flex-wrap:wrap}.speedControl{flex:100%;min-width:0}.integratorControl{flex:100%;justify-content:flex-start}.speedControl input{flex:1;width:auto}.simulationCanvas{height:58vh;min-height:360px}}@media (max-width:520px){.appShell,.detailShell{width:min(100% - 24px,1180px);padding-top:22px}.intro h1,.detailHeader h1{font-size:2.35rem}.iconButton{flex:calc(50% - 8px);padding-inline:10px}.timeReadout,.zoomReadout{text-align:left;flex:auto;min-width:0}}
