*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#0D1117;color:#ADBAC7;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.75}a{color:#539BF5;text-decoration:none}a:hover{text-decoration:underline}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #94c7ff;outline-offset:5px}h1,h2,h3{color:#CDD9E5;line-height:1.25}h1{font-size:clamp(32px,5vw,58px);letter-spacing:-1.5px;margin:18px 0}h2{font-size:24px}p{margin:0 0 14px}.wrap{max-width:1120px;margin:auto;padding:0 28px}.topbar{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #25303e}.topbar a{font-size:15px;padding:10px 0;min-height:44px}.brand{color:#cdd9e5;font-weight:650;letter-spacing:.5px}.toplinks{display:flex;gap:22px}.hero{padding:54px 0 35px;max-width:760px}.eyebrow{color:#86b9ee;font-size:15px;letter-spacing:2px}.hero p{font-size:18px;max-width:610px}.muted{color:#93a4b6}.section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 18px}.section-label h2{font-size:18px;margin:0}.section-label span{font-size:15px;color:#93a4b6}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #2a3544;border-radius:20px;background:#131b26;color:#adbac7;transition:transform .18s,border-color .18s}.card:hover{text-decoration:none;transform:translateY(-4px);border-color:#539bf5}.art{background:radial-gradient(ellipse at top,#1c2a3c,#131b26);border-bottom:1px solid #25303e}.art svg{display:block;width:100%;height:auto}.card-body{padding:24px;display:flex;flex:1;flex-direction:column}.tag{font-size:15px;color:#86b9ee}.card h2{margin:10px 0 14px;font-size:24px}.card p{font-size:16px;flex:1}.card .go{color:#a5ceff;display:flex;justify-content:space-between;border-top:1px solid #293747;margin-top:20px;padding-top:17px;font-weight:600}.method{margin:32px 0;display:flex;gap:30px;align-items:center;padding:24px 28px;border:1px solid #25303e;border-radius:16px}.method h2{font-size:18px;white-space:nowrap;margin:0}.method p{margin:0;font-size:16px}.credit{font-size:15px;line-height:1.7;color:#93a4b6;margin:24px 0}.credit a{color:#91bce9}.footer{border-top:1px solid #25303e;text-align:center;padding:22px 16px 26px;color:#93a4b6;font-size:15px;margin-top:30px}.footer a{color:#93a4b6}.footer img{vertical-align:-3px;margin-right:5px}.lab-wrap{max-width:1320px}.lab-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 15px}.lab-intro h1{font-size:30px;letter-spacing:0;margin:0 0 6px}.lab-intro p{margin:0}.actions{display:flex;gap:10px;flex-shrink:0}button,.button{border:1px solid #3a506b;background:#19283b;color:#c7e1ff;border-radius:10px;padding:10px 16px;font:inherit;font-size:15px;min-height:46px;cursor:pointer}button:hover{background:#223852}.guide{border:1px solid #2a3544;border-radius:12px;padding:12px 18px;margin-bottom:18px;background:#121b26}.guide summary{cursor:pointer;color:#cdd9e5;min-height:32px}.guide ol{margin:14px 0 4px;padding-left:25px}.guide li{margin:8px 0}.stage{position:relative;border:1px solid #354151;border-radius:14px;overflow:hidden;background:#111821;height:min(65vw,660px);min-height:390px}.stage iframe{width:100%;height:100%;border:0;display:block}.status{padding:22px;color:#cdd9e5;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#111821;pointer-events:none}.status[hidden]{display:none}.hint{font-size:15px;margin:10px 0;color:#93a4b6}.focus .guide,.focus .lab-intro p,.focus .hint{display:none}.focus .lab-intro{padding:12px 0}.focus .lab-intro h1{font-size:22px;margin:0}.focus .stage{height:calc(100dvh - 188px);min-height:300px}.focus .topbar{min-height:58px}.focus .credit{margin:10px 0}.prose{max-width:820px;padding:35px 0}.prose h1{font-size:36px}.prose h2{margin-top:30px;font-size:22px}.prose li{margin:10px 0}table{width:100%;border-collapse:collapse;margin:20px 0}td,th{text-align:left;padding:12px 10px;border-bottom:1px solid #2a3544}th{color:#cdd9e5}@media(max-width:760px){.wrap{padding:0 18px}.hero{padding:32px 0 20px}.hero p{font-size:16px}.cards{grid-template-columns:1fr}.card{display:grid;grid-template-columns:112px minmax(0,1fr)}.art{display:flex;align-items:center;justify-content:center;border-bottom:0;border-right:1px solid #25303e}.art svg{width:175px;flex-shrink:0}.card-body{padding:20px 17px}.card h2{font-size:23px}.card .go{margin-top:8px;padding-top:12px}.method{display:block;padding:20px;margin:24px 0}.method h2{margin-bottom:10px}.lab-intro{display:block}.actions{margin-top:14px}.lab-intro h1{font-size:28px}.stage{height:60vw;min-height:240px}.focus .stage{height:calc(100dvh - 240px);min-height:240px}.credit{font-size:15px}.topbar{min-height:65px}.toplinks{gap:15px}.section-label{align-items:start}.footer span{display:none}.footer a{display:inline-block}.prose table{font-size:15px}.prose th,.prose td{padding:10px 5px}}@media(prefers-reduced-motion:reduce){.card{transition:none}.card:hover{transform:none}}
/* Viewport player: leave only one compact toolbar above the simulation. */
body.focus{overflow:hidden;overscroll-behavior:none}
.focus .lab-wrap{position:fixed;z-index:10;top:var(--player-top,0px);left:0;width:100%;height:var(--player-height,100vh);max-width:none;padding:0;background:#0D1117;display:flex;flex-direction:column;overflow:hidden}
.focus .topbar{height:56px;min-height:56px;flex-shrink:0;justify-content:flex-start;gap:20px;padding:0 240px 0 max(12px,env(safe-area-inset-left));border-bottom:1px solid #25303e}
.focus .topbar a{white-space:nowrap}
.focus .toplinks a[href="credits.html"]{display:none}
.focus main{display:flex;flex-direction:column;flex:1;min-height:0}
.focus .lab-intro{position:absolute;top:4px;right:max(8px,env(safe-area-inset-right));padding:0;display:block}
.focus .lab-intro>div:first-child{display:none}
.focus .actions{margin:0;gap:8px}
.focus .actions button{min-height:46px;padding:6px 12px}
.focus .stage{height:auto;min-height:0;flex:1;border:0;border-radius:0;margin:0}
.focus .credit,.focus .footer{display:none}
@media(max-width:530px){.focus .topbar{gap:10px;padding-right:192px;padding-left:8px}.focus .actions{gap:6px}.focus .actions button{padding:6px 8px}.focus .toplinks{gap:0}}

.age-section{margin-top:46px}.age-note{margin:24px 0;color:#93a4b6;font-size:15px}@media(max-width:530px){.section-label{flex-direction:column;gap:8px}}

.browse-nav{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 30px}.browse-nav a{display:inline-block}.section-label h2{scroll-margin-top:24px}
