.shell{--sb-w:72px;--sb-w-open:252px;--sb-pad:12px;--sb-band-1:#1d2127;--sb-band-2:#11141a;--sb-paper:#f3f1ec;--sb-ink-2:#f3f1ecb8;--sb-ink-3:#f3f1ec75;--sb-hair:#f3f1ec17;--sb-accent:#7fa8dd;--sb-accent-deep:#1b4d8f;--sb-ease:cubic-bezier(.22, .8, .24, 1);--sb-dur:.26s;grid-template-columns:var(--sb-w) minmax(0, 1fr);grid-template-rows:minmax(0,1fr);height:100dvh;min-height:0;display:grid;overflow:hidden}:is(html:has(.shell),body:has(.shell)){overscroll-behavior:none;height:100%;overflow:hidden}.shell>.main{overscroll-behavior:contain;scrollbar-gutter:stable;grid-area:1/2;min-width:0;height:100%;min-height:0;padding:34px 42px 64px;overflow:hidden auto}.sb{--sb-row:clamp(32px, 4.4vh, 38px);--sb-gap:clamp(6px, 1.6vh, 14px);--sb-vpad:clamp(8px, 1.8vh, 16px);z-index:50;width:var(--sb-w);height:100%;min-height:0;padding:var(--sb-vpad) var(--sb-pad);color:var(--sb-ink-2);font-family:var(--ff-body);background:linear-gradient(180deg, var(--sb-band-1) 0%, var(--sb-band-2) 100%);box-shadow:inset -1px 0 0 var(--sb-hair);cursor:pointer;-webkit-user-select:none;user-select:none;transition:width var(--sb-dur) var(--sb-ease), box-shadow var(--sb-dur) var(--sb-ease);flex-direction:column;grid-area:1/1;display:flex;position:relative;overflow:hidden}.sb:not(.is-collapsed){width:var(--sb-w-open);box-shadow:inset -1px 0 0 var(--sb-hair), 18px 0 40px -18px #080a0e8c}.sb-head{padding:0 0 var(--sb-gap);border-bottom:1px solid var(--sb-hair);flex-direction:column;flex:none;gap:4px;display:flex;position:relative}.sb-brand{height:32px;padding-left:calc((var(--sb-w) - 2 * var(--sb-pad) - 24px) / 2);color:var(--sb-paper);white-space:nowrap;border-radius:7px;outline:none;align-items:center;gap:10px;display:flex;overflow:hidden}.sb-brand:focus-visible{outline:2px solid var(--sb-accent);outline-offset:-2px}.sb-mark{flex:none;width:24px;height:24px}.sb-word{font-family:var(--login-title-font);font-synthesis:none;letter-spacing:-.035em;font-optical-sizing:auto;font-size:21px;font-weight:600;line-height:1.16}.sb-word-flow{color:var(--sb-accent)}.sb-tag{height:12px;padding-left:calc((var(--sb-w) - 2 * var(--sb-pad) - 24px) / 2);font-family:var(--ff-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--sb-ink-3);white-space:nowrap;flex:none;font-size:9px;line-height:12px;overflow:hidden}.sb-word,.sb-tag,.sb-lbl,.sb-group-title,.sb-colophon{transition:opacity var(--sb-dur) var(--sb-ease)}.sb.is-collapsed .sb-word,.sb.is-collapsed .sb-tag,.sb.is-collapsed .sb-lbl,.sb.is-collapsed .sb-group-title,.sb.is-collapsed .sb-colophon{opacity:0}.sb-nav{gap:var(--sb-gap);min-height:0;padding:var(--sb-gap) 0;scrollbar-width:none;flex-direction:column;flex:auto;display:flex;overflow:hidden auto}.sb-nav::-webkit-scrollbar{width:0;height:0;display:none}.sb-group{flex-direction:column;flex:none;gap:1px;min-width:0;display:flex}.sb-group-title{height:12px;padding-left:calc((var(--sb-w) - 2 * var(--sb-pad) - 18px) / 2);font-family:var(--ff-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--sb-ink-3);white-space:nowrap;flex:none;margin:0 0 3px;font-size:9px;line-height:12px;overflow:hidden}.sb-link{box-sizing:border-box;width:100%;height:var(--sb-row);color:var(--sb-ink-2);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;align-items:center;padding:0 10px 0 0;font-size:13.5px;font-weight:500;line-height:1;text-decoration:none;transition:background .16s,color .16s;display:flex;position:relative;overflow:hidden}.sb-link .ico{flex:0 0 calc(var(--sb-w) - 2 * var(--sb-pad));opacity:.8;width:18px;height:18px;transition:opacity .16s,color .16s}.sb-lbl{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.sb-link:hover{color:var(--sb-paper);background:#f3f1ec0e}.sb-link:hover .ico{opacity:1}.sb-link:focus-visible{outline:2px solid var(--sb-accent);outline-offset:-2px}.sb-link.is-active{color:var(--sb-paper);background:linear-gradient(90deg,#7fa8dd29,#7fa8dd0a)}.sb-link.is-active:before{content:"";background:var(--sb-accent);border-radius:2px;width:2px;position:absolute;top:25%;bottom:25%;left:0}.sb-link.is-active .ico{opacity:1;color:var(--sb-accent)}.sb-foot{border-top:1px solid var(--sb-hair);flex-direction:column;flex:none;gap:clamp(4px,1vh,8px);padding-top:clamp(6px,1.2vh,10px);display:flex}.sb-colophon{padding-left:calc((var(--sb-w) - 2 * var(--sb-pad) - 18px) / 2);font-family:var(--ff-mono);letter-spacing:.1em;color:#f3f1ec52;white-space:nowrap;flex:none;font-size:8.5px;line-height:13px;overflow:hidden}@media (max-height:760px){.sb-colophon{display:none}}@media (max-height:680px){.sb-tag{display:none}.sb{--sb-row:32px;--sb-gap:6px}}@media (max-height:560px){.sb-group-title{display:none}.sb{--sb-row:30px;--sb-gap:4px;--sb-vpad:6px}.sb-group+.sb-group{border-top:1px solid var(--sb-hair);padding-top:4px}}@media (max-height:420px){.sb{--sb-row:26px;--sb-gap:2px;--sb-vpad:4px}.sb-brand{height:26px}}@media (max-width:900px){.shell>.main{padding:22px 14px 48px}.sb:not(.is-collapsed){box-shadow:inset -1px 0 0 var(--sb-hair), 0 0 0 100vmax #0a0c106b}}@media (max-width:560px){.shell{--sb-w:56px;--sb-w-open:236px;--sb-pad:8px}}@media (prefers-reduced-motion:reduce){.sb,.sb *{transition:none!important}}.env-badge{z-index:10000;color:#fff;font:600 11px/1.4 var(--font-mono,ui-monospace, monospace);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#c2410c;border-radius:0 0 6px 6px;padding:2px 12px 3px;position:fixed;top:0;left:50%;transform:translate(-50%)}.env-badge:before{content:"";background:#c2410c;height:3px;position:fixed;top:0;left:0;right:0}
.bf-mark{overflow:visible}.bf-win{opacity:0;animation-duration:var(--bf-cycle,4.5s);animation-timing-function:cubic-bezier(.4,0,.2,1);animation-iteration-count:infinite;animation-fill-mode:none}.bf-floor-0{animation-name:bf-floor-0}.bf-floor-1{animation-name:bf-floor-1}.bf-floor-2{animation-name:bf-floor-2}@keyframes bf-floor-0{0%,8%{opacity:0}20%,80%{opacity:1}92%,to{opacity:0}}@keyframes bf-floor-1{0%,28%{opacity:0}40%,80%{opacity:1}92%,to{opacity:0}}@keyframes bf-floor-2{0%,48%{opacity:0}60%,80%{opacity:1}92%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.bf-win{animation:none}}
