:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ecf3fa;background:#080e19;font-family:Inter,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}#stage{position:fixed;inset:0}canvas{touch-action:none;display:block}header{pointer-events:none;position:absolute;top:32px;left:36px}.eyebrow{color:#79c9cb;letter-spacing:3px;font-size:11px}h1{margin:12px 0;font-size:30px;font-weight:500}header p{color:#8e9fb4;font-size:13px}.panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#101a29dc;border:1px solid #ffffff16;border-radius:18px;width:260px;padding:22px;position:absolute;top:34px;right:30px}.panel h2{margin:0 0 22px;font-size:14px;font-weight:500}.row{justify-content:space-between;margin:18px 0;font-size:13px;display:flex}.row span{color:#a8b5c6}.dot{background:#ffd24b;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.purple{background:#ba9aff}#notice{color:#91a1b6;border-top:1px solid #ffffff16;padding-top:14px;font-size:11px;line-height:1.8}.timeline{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#111c2be8;border:1px solid #ffffff1b;border-radius:22px;width:min(840px,100% - 40px);padding:24px 28px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.topline{justify-content:space-between;align-items:center;gap:16px;display:flex}#time{letter-spacing:2px;font-variant-numeric:tabular-nums;font-size:36px}#phase{color:#95a9c2;margin-left:16px;font-size:13px}.buttons{gap:8px;display:flex}button{color:#dce8f5;cursor:pointer;background:#ffffff08;border:1px solid #ffffff24;border-radius:10px;padding:10px 13px}button:hover{background:#ffffff18}button:focus-visible,input:focus-visible{outline-offset:4px;outline:2px solid #71d6d4}input[type=range]{accent-color:#7fcece;cursor:pointer;width:100%;margin:22px 0 8px}.ticks{color:#7c90aa;justify-content:space-between;font-size:11px;display:flex}.hint{color:#8394a9;font-size:12px;position:absolute;bottom:220px;left:36px}#loading{text-align:center;background:#142034;border-radius:12px;max-width:80%;padding:18px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}#labels{pointer-events:none;position:absolute;inset:0}.label{white-space:nowrap;color:#e7effa;background:#0c152bd9;border:1px solid #ffffff30;border-radius:7px;padding:5px 9px;font-size:11px;position:absolute}.footer{color:#768ba5;margin:14px 0 0;font-size:10px}@media (width<=700px){header{top:18px;left:20px}h1{font-size:24px}.panel{width:205px;padding:14px;top:116px;right:14px}.panel h2{margin-bottom:10px}.row{margin:10px 0}.timeline{padding:18px;bottom:16px}.topline{flex-direction:column;align-items:flex-start}#time{font-size:30px}#phase{font-size:11px}.hint{font-size:10px;bottom:256px;left:20px}.footer{font-size:9px}}.panel{width:310px;padding:20px;top:24px;bottom:265px;right:22px;overflow:auto}.panel h2{margin-bottom:14px;font-size:17px}#summary{color:#becce0;margin:8px 0 18px;font-size:14px;line-height:1.7}.region{text-align:left;border-color:#0000;width:100%;margin:5px 0;padding:9px 10px;font-size:13px;display:block}.region[aria-pressed=true]{background:#ffffff15;border-color:#83c7d475}.region span{max-width:82%;display:inline-block}.region small{float:right;color:#a8bacd;font-size:12px}.region i{border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.meter{background:#ffffff09;height:2px;margin-top:7px}.meter b{height:100%;transition:width .2s;display:block}#detailTitle{margin-bottom:8px;font-size:15px}#detailText{color:#bbcadd;font-size:14px;line-height:1.7}#detailState{color:#80cecc;font-size:12px}.detail{border-top:1px solid #ffffff20;margin-top:18px;padding-top:8px}.toggles{flex-wrap:wrap;gap:16px;margin:14px 0;font-size:13px;display:flex}a{color:#8fdad7}.source{color:#8c9db5;font-size:12px;line-height:1.8}.timeline{width:min(1060px,100% - 40px)}.timeline input[type=range]{margin:10px 0 8px}.footer{font-size:12px;line-height:1.6}.hint{font-size:12px;bottom:270px}#schedule{--cursor:33.333%;border-radius:4px;gap:1px;height:11px;margin:16px 0 4px;display:flex;position:relative}#schedule i{background:#dbc466;flex:1}#schedule .onset,#schedule .rise{background:#b69dde}#schedule .nrem{background:#7759be}#schedule .rem{background:#61cbbc}#schedule:after{content:"";left:var(--cursor);background:#fff;width:2px;height:19px;position:absolute;top:-4px}.legend{color:#a0b0c5;flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;display:flex}.legend b{border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}#phase{font-size:14px}#notice{font-size:12px}header p{font-size:14px}@media (width>=1100px){#stage,#labels{right:310px}.hint{left:36px}header{left:30px}}@media (width<=700px){body{min-height:100svh}.panel{width:210px;max-height:29svh;padding:12px;top:auto;bottom:260px;right:12px}.panel h2{font-size:14px}#summary{margin-bottom:8px;font-size:12px}.timeline{padding:15px;bottom:12px}.topline{gap:8px}.buttons{gap:6px}button{padding:8px 10px}.footer{font-size:11px}.hint{max-width:140px;bottom:272px}.legend{gap:8px;font-size:11px}#phase{margin-left:8px;font-size:12px}.label,.eyebrow{font-size:10px}header p{font-size:12px}}#phaseButtons{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}#phaseButtons button{padding:7px 10px;font-size:12px}#phaseButtons button[aria-pressed=true]{background:#2c666c80;border-color:#7fcece}#phaseNote{color:#95a9c2;margin-top:9px;font-size:12px}.panel{bottom:320px}.hint{bottom:325px}.timeline{padding:18px 24px}#schedule .dawn{background:#b69dde}@media (width<=700px){.panel{max-height:25svh;bottom:370px}.hint{bottom:378px}.timeline{padding:12px}.footer{font-size:10px}#phaseButtons button{padding:5px;font-size:10px}.buttons{flex-wrap:wrap}}#morning,#night,#rem{display:none}.timeline{padding:14px 20px;bottom:16px}.footer{margin-top:10px;font-size:10px}.panel{padding:16px;bottom:265px}#summary{margin-bottom:10px;font-size:12px;line-height:1.55}.row{margin:10px 0;font-size:12px}.toggles{margin:10px 0}.hint{display:none}#phaseNote{margin-top:7px}#schedule{margin-top:10px}#time{font-size:30px}.region{padding:7px 8px;font-size:12px}.slice-controls{width:235px;padding:12px;top:132px}.slice-controls p{font-size:11px}.slice-controls label{font-size:12px}@media (width>=1100px){#stage,#labels{bottom:265px;left:255px;right:332px}}@media (width<=700px){.panel{max-height:23svh;bottom:315px}.slice-controls{width:210px}.timeline{bottom:10px}#phaseButtons{gap:4px}.topline{flex-direction:row;align-items:center}#stage,#labels{bottom:275px}.footer{line-height:1.4}}.slice-controls{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#111c2be8;border:1px solid #ffffff20;border-radius:16px;width:280px;padding:16px;position:absolute;top:145px;left:30px}.slice-controls h2{margin:0 0 12px;font-size:15px}.slice-buttons{grid-template-columns:1fr 1fr;gap:6px;display:grid}.slice-buttons button{padding:9px 5px;font-size:12px}.slice-buttons button[aria-pressed=true]{background:#2c666c80;border-color:#7dd9d3}.slice-controls input[type=range]{margin:12px 0}.slice-controls label{color:#afc1d6;font-size:13px}.slice-position{justify-content:space-between;margin-top:14px;display:flex}.slice-controls p{color:#9bb2ca;margin-bottom:0;font-size:12px;line-height:1.6}.slice-controls button:disabled{opacity:.4;cursor:wait}.slice-controls input:disabled{opacity:.35}.slice-controls output{color:#82d9d3;font-size:13px}@media (width<=700px){.slice-controls{width:230px;padding:12px;top:110px;left:12px}.slice-buttons button{padding:7px 3px;font-size:11px}.slice-controls h2{font-size:14px}.slice-controls p{font-size:11px}.slice-position{margin-top:9px}body{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""brain""timeline""slice""info";display:grid}header{grid-area:title;margin:18px 20px 0;position:relative;inset:auto}#stage,#labels{grid-area:brain;width:100%;min-width:0;height:340px;position:relative;inset:auto}#labels{z-index:1;overflow:hidden}.timeline,.slice-controls,.panel{width:calc(100% - 24px);max-height:none;margin:0 12px 12px;position:relative;inset:auto;transform:none}.timeline{grid-area:timeline}.slice-controls{grid-area:slice}.panel{grid-area:info;overflow:visible}}
