:root{color:#f2f7ff;background:#050c17;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#lab-portal{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit}.portal-shell{--portal-header: 58px;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 50% 15%,rgba(22,139,255,.14),transparent 34%),linear-gradient(145deg,#07111f,#030914 72%)}.portal-header{position:relative;z-index:20;height:var(--portal-header);display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,auto) minmax(220px,1fr);align-items:center;gap:18px;padding:0 22px;background:#050f1df5;border-bottom:1px solid rgba(70,154,220,.34);box-shadow:0 10px 28px #00000042;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.portal-brand,.portal-current,.portal-nav-button{display:flex;align-items:center}.portal-brand{gap:11px;min-width:0}.portal-brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#9ee8ff;background:radial-gradient(circle at 35% 30%,#39c9ff,#1168bb 58%,#08172a 60%);box-shadow:0 0 18px #39c9ff47}.portal-brand strong{display:block;font-size:16px;letter-spacing:.04em;white-space:nowrap}.portal-brand small{display:block;color:#6e99ba;font-size:9px;letter-spacing:.18em;margin-top:2px}.portal-current{min-width:0;justify-content:center;gap:10px;color:#b8cee2;font-size:13px}.portal-current b{max-width:min(36vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f5faff;font-size:14px}.portal-edition{flex:none;padding:4px 8px;border:1px solid rgba(57,201,255,.32);border-radius:999px;color:#7edcff;font-size:10px;letter-spacing:.08em}.portal-header-actions{display:flex;justify-content:flex-end;gap:9px}.portal-nav-button,.portal-home-button{min-height:42px;border:1px solid rgba(67,145,205,.42);border-radius:8px;color:#dff6ff;background:#0d253dc7;cursor:pointer;transition:border-color .18s,background .18s,color .18s}.portal-nav-button{gap:8px;padding:0 15px}.portal-home-button{display:flex;align-items:center;gap:8px;padding:0 12px}.portal-header-actions .v2-icon{width:18px;height:18px;flex:none}.portal-nav-button:hover,.portal-nav-button:focus-visible,.portal-home-button:hover,.portal-home-button:focus-visible{border-color:#39c9ff;background:#168bff33;color:#fff;outline:none}.portal-nav-button[aria-expanded=true]{border-color:#39c9ff;box-shadow:0 0 18px #168bff29}.portal-stage{--portal-drawer-width: min(720px,92vw);position:relative;height:calc(100% - var(--portal-header));overflow:hidden}.portal-shell[data-runtime=v2]{--portal-header: 0px}.portal-shell[data-runtime=v2]>.portal-header{display:none}.portal-frame{display:block;width:100%;height:100%;border:0;background:#07111f}.portal-frame[hidden],.portal-welcome[hidden],.portal-scrim[hidden],.portal-loading[hidden]{display:none}.portal-welcome{height:100%;overflow:auto;overscroll-behavior:contain;padding:26px 32px;background-image:radial-gradient(circle at 7% 19%,#8ac9f75c 0 .7px,transparent 1.3px),radial-gradient(circle at 68% 41%,#8ac9f745 0 .6px,transparent 1.2px),radial-gradient(circle at 43% 83%,#8ac9f72e 0 .8px,transparent 1.4px);background-size:263px 241px,397px 313px,541px 389px}.portal-lobby{max-width:1520px;margin:0 auto}.portal-lobby-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.portal-lobby-head h1{margin:0;font-size:28px;line-height:1.4;letter-spacing:.02em}.portal-lobby-head p{margin:6px 0 0;color:#9cb5ca;font-size:14px;line-height:1.6}.portal-lobby-count{color:#79bfdc;font-size:13px;white-space:nowrap}.portal-lobby .portal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.portal-lobby .portal-chapter{min-height:114px;padding:15px}.portal-lobby .portal-section+.portal-section{margin-top:24px}.portal-scrim{position:absolute;z-index:28;inset:0 var(--portal-drawer-width) 0 0;border:0;background:#01070e8f;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default}.portal-drawer{position:absolute;z-index:30;top:0;right:0;width:var(--portal-drawer-width);height:100%;padding:22px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;background:linear-gradient(160deg,#0c1d31fb,#050e1bfb);border-left:1px solid rgba(57,201,255,.34);box-shadow:-24px 0 60px #00000070;visibility:hidden;transform:translate(102%);transition:transform .22s ease}.portal-drawer.is-open{visibility:visible;transform:translate(0)}.portal-drawer-head{position:sticky;z-index:1;top:-22px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;margin-top:-14px;margin-bottom:0;background:#0b1b2eee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-drawer-head h2{margin:0 0 5px;font-size:22px}.portal-drawer-head p{margin:0;color:#7597b4;font-size:12px}.portal-close{flex:none;width:44px;height:44px;border:1px solid rgba(84,145,190,.38);border-radius:8px;color:#bcd5e8;background:#0b1f34b8;cursor:pointer}.portal-section+.portal-section{margin-top:18px}.portal-section h3{display:flex;align-items:center;gap:12px;margin:0 0 10px;color:#c9e4f4;font-size:16px;font-weight:600}.portal-section h3>span{padding:2px 7px;color:#7fa9c5;background:#1a375055;border-radius:4px;font-size:11px;font-weight:400}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.portal-chapter{min-width:0;min-height:100px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px;padding:12px;text-align:left;border:1px solid rgba(58,111,153,.4);border-radius:10px;color:#dfeef9;background:linear-gradient(145deg,#10253ce8,#09172ae8);cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.portal-chapter:hover,.portal-chapter:focus-visible{transform:translateY(-1px);border-color:#39c9ffbf;outline:none}.portal-chapter.is-active{border-color:#39c9ff;background:linear-gradient(135deg,#168bff33,#0d2b46d6)}.portal-topic-icon{width:32px;height:32px;display:grid;place-items:center;color:#7bdcff;background:#14395477;border:1px solid #32638566;border-radius:8px}.portal-topic-icon .v2-icon{width:21px;height:21px}.portal-chapter-copy{min-width:0}.portal-chapter-copy strong{display:block;font-size:15px;line-height:1.5}.portal-chapter-copy small{display:block;overflow:hidden;margin-top:5px;color:#93afc5;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.portal-card-footer{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #28466166;padding-top:8px}.portal-generation{color:#84a6c0;font-size:11px}.portal-chapter[data-runtime=v2] .portal-generation{color:#77c8e5}.portal-enter{color:#95d7f3;font-size:11px;white-space:nowrap}.portal-enter b{margin-left:3px;font-size:15px}.portal-chapter.is-active .portal-enter{color:#d8f8ff}.portal-chapter.is-active .portal-enter:before{content:"当前 · "}.portal-drawer-home{display:flex;align-items:center;gap:9px;width:100%;margin:4px 0 18px;padding:10px 12px;min-height:42px;border:1px solid #30668a;border-radius:8px;color:#b6e9ff;background:#12355066;cursor:pointer;text-align:left}.portal-drawer-home .v2-icon{width:18px;height:18px}.portal-drawer-home>span{margin-left:auto}.portal-shell button:focus-visible{outline:2px solid #7bdcff;outline-offset:2px}.portal-shell[data-runtime=legacy]{--portal-header: 42px}.portal-shell[data-runtime=legacy] .portal-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:0 14px;box-shadow:none}.portal-shell[data-runtime=legacy] .portal-brand{display:none}.portal-shell[data-runtime=legacy] .portal-current{justify-content:flex-start}.portal-shell[data-runtime=legacy] .portal-current b{max-width:none}.portal-shell[data-runtime=legacy] .portal-current>span{display:none}.portal-shell[data-runtime=legacy] .portal-header-actions button{min-height:32px;font-size:12px;border-radius:6px}.portal-loading{position:absolute;z-index:10;inset:0;display:grid;place-items:center;color:#8fcce5;background:#07111f}@media(max-width:1500px){.portal-welcome{padding:16px 24px}.portal-lobby-head{margin-bottom:16px}.portal-lobby-head h1{font-size:25px}.portal-lobby-head p{margin-top:3px;font-size:13px}.portal-lobby .portal-chapter{min-height:100px;padding:11px;gap:7px 9px}.portal-lobby .portal-grid{gap:9px}.portal-lobby .portal-section+.portal-section{margin-top:18px}.portal-lobby .portal-section h3{margin-bottom:8px}}@media(max-width:1100px){.portal-lobby .portal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.portal-header{grid-template-columns:minmax(160px,1fr) auto;padding:0 12px}.portal-shell[data-runtime=welcome] .portal-current,.portal-shell:not([data-runtime]) .portal-current{display:none}.portal-brand small{display:none}.portal-stage{--portal-drawer-width: min(680px,96vw)}.portal-lobby .portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.portal-shell{--portal-header: 54px}.portal-brand strong{font-size:13px}.portal-brand-mark{display:none}.portal-header-actions{gap:5px}.portal-header-actions button{padding:0 8px;gap:5px;font-size:12px}.portal-header-actions .v2-icon{display:none}.portal-stage{--portal-drawer-width: 100%}.portal-drawer{padding:16px}.portal-drawer-head{top:-16px}.portal-grid,.portal-lobby .portal-grid{grid-template-columns:1fr}.portal-welcome{padding:18px 14px}.portal-lobby-head{align-items:start}.portal-lobby-count{display:none}.portal-lobby-head h1{font-size:23px}.portal-shell[data-runtime=legacy] .portal-current b{font-size:12px}.portal-shell[data-runtime=legacy] .portal-header{padding-inline:8px;gap:6px}}@media(prefers-reduced-motion:reduce){.portal-drawer,.portal-chapter{transition:none}}
