@font-face{font-family:lxgw wenkai;src:url(/fonts/LXGWWenKai-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:maple mono;src:url(/fonts/MapleMono-NF-CN-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--somnus-font-sans:"LXGW WenKai", ui-sans-serif, system-ui, sans-serif;--somnus-font-mono:"Maple Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--hb-font-heading:var(--somnus-font-sans);--hb-font-body:var(--somnus-font-sans);--hb-font-nav:var(--somnus-font-sans);--hb-font-family-sans:var(--somnus-font-sans);--somnus-bg-mask:linear-gradient(to bottom, #000 0%, #000 45%, rgb(0 0 0 / 0.76) 66%, transparent 100%);--somnus-bg-scroll-opacity:1}html{background:#fafafa}.dark{background:#0a0a0a}body{--somnus-bg-base-opacity:0.78;font-family:var(--somnus-font-sans);position:relative;isolation:isolate;background:0 0!important}body::before{content:"";position:absolute;top:0;left:50%;z-index:-2;width:100vw;height:min(1e3px,145vh);pointer-events:none;background-image:url(/img/blowfish-background.svg);background-position:50% 0;background-repeat:no-repeat;background-size:auto 1e3px;opacity:calc(var(--somnus-bg-base-opacity) * var(--somnus-bg-scroll-opacity));transform:translateX(-50%);-webkit-mask-image:var(--somnus-bg-mask);mask-image:var(--somnus-bg-mask)}body::after{content:"";position:absolute;top:0;left:50%;z-index:-1;width:100vw;height:min(1e3px,145vh);pointer-events:none;background:linear-gradient(to bottom,rgb(250 250 250/8%),rgb(250 250 250/.54) 68%,rgb(250 250 250/.9));opacity:var(--somnus-bg-scroll-opacity);transform:translateX(-50%);-webkit-mask-image:var(--somnus-bg-mask);mask-image:var(--somnus-bg-mask)}.dark body{--somnus-bg-base-opacity:0.28}.dark body::before{filter:saturate(.85)brightness(.74)}.dark body::after{background:linear-gradient(to bottom,rgb(10 10 10/.36),rgb(10 10 10/.78) 64%,rgb(10 10 10/.94))}h1,h2,h3,h4,h5,h6,.navbar-brand,[id^=card-title-]{font-family:var(--somnus-font-sans);font-weight:600}code,pre,kbd,samp{font-family:var(--somnus-font-mono);font-variant-ligatures:contextual}mjx-container[display=true]{overflow-x:auto;overflow-y:hidden;margin:1.35rem 0;padding:.9rem 1rem;border:1px solid rgb(148 163 184/.24);border-radius:.75rem;background:rgb(255 255 255/.68);box-shadow:0 12px 36px rgb(15 23 42/6%);text-align:center}mjx-container[display=true]>mjx-math{display:inline-block;min-width:max-content;max-width:none}mjx-container[display=true]::-webkit-scrollbar{height:6px}mjx-container[display=true]::-webkit-scrollbar-thumb{border-radius:999px;background:rgb(148 163 184/.48)}.dark mjx-container[display=true]{border-color:rgb(148 163 184/.18);background:rgb(15 23 42/.48);box-shadow:0 12px 36px rgb(0 0 0/.18)}.dark mjx-container[display=true]::-webkit-scrollbar-thumb{background:rgb(148 163 184/.34)}@media(max-width:640px){mjx-container[display=true]{margin:1.1rem -.25rem;padding:.8rem .75rem}}.encrypted-content{position:relative;overflow:hidden;margin:2rem 0;padding:1.25rem;border:1px solid rgb(148 163 184/.28);border-radius:.75rem;background:rgb(255 255 255/.86);box-shadow:0 18px 50px rgb(15 23 42/8%)}.dark .encrypted-content{border-color:rgb(148 163 184/.22);background:rgb(15 23 42/.82);box-shadow:0 18px 50px rgb(0 0 0/.22)}.encrypted-content:not(.encrypted-unlock):not(.is-unlocked){background:linear-gradient(135deg,rgb(79 70 229/8%),transparent 46%),rgb(255 255 255/.9)}.dark .encrypted-content:not(.encrypted-unlock):not(.is-unlocked){background:linear-gradient(135deg,rgb(129 140 248/.16),transparent 46%),rgb(15 23 42/.86)}.encrypted-content__header{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.encrypted-content__eyebrow{margin:0 0 .25rem;color:#64748b;font-size:.8rem}.dark .encrypted-content__eyebrow{color:#94a3b8}.encrypted-content h2{margin:0}.encrypted-content [hidden]{display:none!important}.encrypted-content__form{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr)auto;gap:.75rem;align-items:end}.encrypted-content__form label{display:grid;gap:.5rem;margin:0;color:#475569}.dark .encrypted-content__form label{color:#cbd5e1}.encrypted-content__form input{width:100%;min-height:42px;padding:.55rem .7rem;border:1px solid rgb(148 163 184/.45);border-radius:.5rem;color:#0f172a;background:#fff}.dark .encrypted-content__form input{color:#f8fafc;background:#020617}.encrypted-content__form button{min-height:42px;padding:0 1rem;border:0;border-radius:.5rem;color:#fff;background:#4f46e5;cursor:pointer}.encrypted-content__locked-preview{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center;margin-top:1.25rem;padding:.9rem 1rem;border:1px dashed rgb(99 102 241/.38);border-radius:.625rem;color:#64748b;background:rgb(248 250 252/.76)}.dark .encrypted-content__locked-preview{color:#94a3b8;background:rgb(2 6 23/.45)}.encrypted-unlock .encrypted-content__locked-preview{display:none}.encrypted-content.is-unlocked .encrypted-content__locked-preview{border-style:solid}.encrypted-content__lock-mark{min-width:72px;padding:.35rem .5rem;border:1px solid rgb(99 102 241/.42);border-radius:.5rem;color:#4f46e5;font-family:var(--somnus-font-mono);font-size:.76rem;text-align:center;letter-spacing:.08em}.encrypted-content.is-unlocked .encrypted-content__lock-mark{color:#fff;background:#4f46e5}.encrypted-content__cipher-lines{display:grid;gap:.2rem;min-width:0;overflow:hidden;font-family:var(--somnus-font-mono);font-size:.82rem;line-height:1.35;white-space:nowrap;mask-image:linear-gradient(90deg,#000 72%,transparent)}.encrypted-unlock__clear{margin-top:.75rem;padding:0;border:0;color:#64748b;background:0 0;cursor:pointer}.encrypted-unlock__clear:hover{color:#4f46e5}.encrypted-content__status{position:relative;z-index:1;min-height:1.4em;margin:.75rem 0 0;color:#64748b}.encrypted-content__output{position:relative;z-index:1;margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgb(148 163 184/.28)}@media(max-width:640px){.encrypted-content__form,.encrypted-content__locked-preview{grid-template-columns:1fr}.encrypted-content__lock-mark{width:fit-content}}