@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&family=Syne:wght@400;700;800&display=swap";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Bpmf Huninn;src:url(/fonts/BpmfHuninn/BpmfHuninn-Regular.ttf) format("truetype")}:root{--bg: #08060f;--bg2: #0e0a17;--bg3: #150f20;--border: #2a1d3e;--border-bright: #3d2a5a;--text: #d4c8e6;--text-dim: #5a4472;--text-bright: #f0eafc;--accent: #c084fc;--accent-dim: #1a0a30;--state-start: #7c3aed;--state-start-glow: #7c3aed40;--state-process: #d97706;--state-process-glow: #92400e40;--state-end: #059669;--state-end-glow: #06523840;--state-error: #dc2626;--state-error-glow: #7f1d1d40;--font-mono: "JetBrains Mono", monospace;--font-display: "Syne", sans-serif;--font-body: "Bpmf Huninn", "JetBrains Mono", monospace;--color-success: var(--state-end);--color-warning: var(--state-process);--color-error: var(--state-error);--shadow-sm: 4px 4px 0px #020105;--shadow-md: 0 4px 16px rgba(0, 0, 0, .6);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .8);--header-height: 60px}html.theme-light{--bg: #f3eeff;--bg2: #e9deff;--bg3: #ded0f5;--border: #b89ed4;--border-bright: #9070bb;--text: #2a1040;--text-dim: #6a4a8a;--text-bright: #180830;--accent: #7c3aed;--accent-dim: #e9d8ff;--state-start: #6d28d9;--state-start-glow: #6d28d920;--state-process: #b45309;--state-process-glow: #92400e20;--state-end: #047857;--state-end-glow: #06523820;--state-error: #b91c1c;--state-error-glow: #7f1d1d20;--shadow-sm: 4px 4px 0px rgba(30, 8, 50, .2);--shadow-md: 0 4px 16px rgba(60, 0, 90, .12);--shadow-lg: 0 10px 40px rgba(60, 0, 90, .15)}body:before{content:"";pointer-events:none;position:fixed;inset:0;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);font-size:13px;line-height:1.5;overflow-x:hidden;display:flex;flex-direction:column;gap:10px;padding-bottom:20px}body>div:first-child:empty{height:0;margin:0;padding:0;flex-shrink:0}h1,h2,h3{font-family:var(--font-body);color:var(--text-bright);font-weight:700;letter-spacing:0;line-height:1.4;margin:0}h1{font-size:1.8em}h2{font-size:1.4em}h3{font-size:1.15em}@keyframes btn-glitch{0%{transform:translate(0);clip-path:inset(0 0 0 0);filter:none}20%{transform:translate(-3px);clip-path:inset(15% 0 55% 0);filter:brightness(1.6)}40%{transform:translate(3px);clip-path:inset(60% 0 10% 0);filter:brightness(1.3)}60%{transform:translate(-2px);clip-path:inset(30% 0 30% 0);filter:brightness(1.1)}80%{transform:translate(1px);clip-path:inset(0 0 0 0);filter:none}to{transform:translate(0);clip-path:inset(0 0 0 0);filter:none}}@keyframes btn-glow{0%{box-shadow:0 0 4px 1px #c084fc4d}50%{box-shadow:0 0 14px 3px #c084fca6,0 0 26px 6px #8b5cf640}to{box-shadow:0 0 4px 1px #c084fc4d}}a{display:inline-block;background-color:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:2px 8px;text-decoration:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;transition:color .2s ease,background-color .2s ease,border-color .2s ease}a:hover{color:var(--text-bright);background-color:var(--accent);animation:btn-glow 1.6s ease-in-out infinite}a.glitching{animation:btn-glitch .18s steps(1) forwards!important}button{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;cursor:pointer;transition:color .2s ease,background-color .2s ease,border-color .2s ease}button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);animation:btn-glow 1.6s ease-in-out infinite}button.glitching{animation:btn-glitch .18s steps(1) forwards!important}.article-base{padding:0;border-radius:0;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}header{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--border);background:#08060ff2;backdrop-filter:blur(8px);transition:all .2s ease}html.theme-light header{background:#f3eefff2}header.stuck{border-radius:0;top:0}header.stuck .nav-btns{border-radius:0}.nav-btns{display:flex;flex-wrap:wrap;background:var(--bg2);justify-content:flex-start;align-items:center;padding:10px 16px;gap:8px;border-bottom:1px solid var(--border);min-height:var(--header-height);transition:all .2s ease}.nav-btns a{background-color:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:6px 14px;font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:0;text-decoration:none;width:fit-content;transition:all .15s}.nav-btns button{background-color:var(--accent-dim);color:var(--accent);border:1px solid var(--border-bright);border-radius:2px;padding:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:all .15s}.nav-btns button svg{color:var(--accent);width:16px;height:16px}.nav-btns a:hover,.nav-btns button:hover{background-color:var(--accent);color:var(--bg);border-color:var(--accent);animation:btn-glow 1.6s ease-in-out infinite}.nav-btns button:hover svg{color:var(--bg)}.nav-btns a.glitching,.nav-btns button.glitching{animation:btn-glitch .18s steps(1) forwards!important}.article-base .content-container{display:flex;gap:10px;flex:1;min-height:0}.article-base .project-title{background-color:var(--bg2);border:1px solid var(--border);padding:10px 16px;font-family:var(--font-body);font-size:15px;font-weight:700;letter-spacing:0;color:var(--text-bright)}.project-title img{width:auto;height:30px;filter:brightness(0) invert(1) sepia(1) saturate(3) hue-rotate(240deg)}.article-base .nav{background-color:var(--bg2);border:1px solid var(--border);border-right:1px solid var(--border);width:clamp(80px,10%,160px);min-height:0;padding:10px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;overflow-y:auto;border-radius:0}.article-base .nav button{background-color:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:0;padding:8px 10px;width:100%;min-height:36px;height:auto;text-align:left;transition:all .15s}.article-base .nav button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);animation:btn-glow 1.6s ease-in-out infinite}.article-base .nav button.glitching{animation:btn-glitch .18s steps(1) forwards!important}.article-base .content-container .content{background-color:var(--bg2);border:1px solid var(--border);padding:16px;flex:1;min-height:0;overflow-y:scroll;scrollbar-color:var(--border-bright) transparent;border-radius:0}.article-base .content-container .content .live-link{background-color:var(--accent-dim);border:1px solid var(--accent);padding:8px 14px;color:var(--accent);font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;border-radius:2px;display:inline-block}.article-base .content-container .content iframe{width:98%;height:90%;border:1px solid var(--border);border-radius:0}.article-list{display:flex;flex-wrap:wrap;list-style:none;background-color:var(--bg2);border:1px solid var(--border);padding:12px;width:fit-content;max-width:100%;gap:10px}.article-btn{display:block;padding:0;background-color:var(--bg3);width:300px;height:150px;border:1px solid var(--border);border-left:3px solid var(--border-bright);border-radius:0;overflow:hidden;position:relative;filter:grayscale(60%) brightness(.8);transition:all .2s}.article-btn:hover{border-color:var(--accent);border-left-color:var(--accent);box-shadow:0 0 16px #c084fc26,var(--shadow-sm);transform:translateY(-4px) translate(-4px);filter:none}.article-btn img{display:block;position:absolute;width:100%;height:100%;object-fit:cover;top:0;left:0;transition:all .2s;opacity:.6}.article-btn:hover img{opacity:.9}.article-btn p{position:absolute;background-color:#08060fd9;color:var(--text-dim);border-top:1px solid var(--border);margin:0;bottom:0;left:0;padding-left:10px;height:24%;width:100%;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;z-index:1;display:flex;align-items:center;transition:all .2s}.article-btn:hover p{color:var(--accent);border-top-color:var(--accent)}:not(pre)>code{font-family:var(--font-mono);font-size:.875em;background-color:var(--accent-dim);color:var(--accent);border:1px solid var(--border-bright);border-radius:2px;padding:1px 6px;white-space:nowrap}html.theme-light :not(pre)>code{background-color:var(--bg3);color:var(--accent);border-color:var(--border)}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}html.theme-light .astro-code,html.theme-light .astro-code span{color:var(--shiki-light)!important;background-color:var(--shiki-light-bg)!important}.astro-code{background-color:var(--bg)!important;border:1px solid var(--border);padding:14px 16px;border-radius:0;overflow-x:auto;font-family:var(--font-mono);font-size:.9em;line-height:1.6;border-left:3px solid var(--accent)}html.theme-light .astro-code{background-color:var(--bg3)!important}.mermaid-diagram{background-color:transparent;border:1px solid var(--border);padding:16px;overflow-x:auto}.mermaid-diagram svg{max-width:100%;height:auto;display:block;margin:0 auto}.content ul,.content ol{padding-left:1.5em;margin:.4em 0}.content ul ul,.content ol ol,.content ul ol,.content ol ul{padding-left:1.5em;margin:.2em 0}.content li{margin:.2em 0}.task-description ul,.task-description ol{padding-left:1.5em;margin:.4em 0}.task-description ul ul,.task-description ol ol,.task-description ul ol,.task-description ol ul{padding-left:1.5em;margin:.2em 0}.task-description li{margin:.2em 0}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-bright)}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@media(max-width:767px){html,body{height:100dvh}body{padding:6px 0;gap:6px}.article-base .content-container{flex-direction:column;flex:1;min-height:0}.article-base .nav{width:100%;flex-direction:row;flex-wrap:wrap;overflow-y:visible;gap:5px;padding:6px}.article-base .nav button{width:auto;flex:1 1 auto;font-size:10px;padding:6px 8px;min-height:32px}.article-base .content-container .content{width:100%;flex:1;min-height:0}.article-btn{width:min(300px,100%)}.article-list{width:100%}header{top:0}header .nav-btns{border-radius:0;padding:6px 10px;gap:4px}.nav-btns a,.nav-btns button{padding:4px 8px;font-size:10px}}@keyframes glitch-out{0%{opacity:1;transform:translate(0);clip-path:inset(0 0 0 0)}20%{opacity:1;transform:translate(-3px);clip-path:inset(10% 0 60% 0)}40%{opacity:1;transform:translate(2px);clip-path:inset(50% 0 15% 0)}60%{opacity:.6;transform:translate(-1px);filter:blur(.5px) brightness(1.3)}to{opacity:0;transform:translate(0);filter:blur(1px)}}@keyframes glitch-in{0%{opacity:0;transform:translate(0);filter:blur(1px)}25%{opacity:.7;transform:translate(3px);clip-path:inset(20% 0 40% 0);filter:blur(.5px) brightness(1.4)}50%{opacity:.9;transform:translate(-2px);clip-path:inset(55% 0 10% 0)}75%{opacity:1;transform:translate(1px);clip-path:inset(0 0 0 0)}to{opacity:1;transform:translate(0);filter:none}}::view-transition-old(root){animation:glitch-out .2s ease forwards}::view-transition-new(root){animation:glitch-in .25s ease forwards}.content img[title=sm]{width:300px;max-width:100%}.content img[title=md]{width:500px;max-width:100%}.content img[title=lg]{width:100%}.content .mermaid-diagram{max-width:700px}.content img{cursor:zoom-in;transition:opacity .15s ease}.content img:hover{opacity:.85}#lightbox{border:1px solid var(--border-bright);background:var(--bg);padding:8px;max-width:90vw;max-height:90vh;box-shadow:0 0 60px #c084fc33}#lightbox::backdrop{background:#08060fd9;backdrop-filter:blur(4px)}#lightbox img{display:block;max-width:85vw;max-height:85vh;width:auto;height:auto;cursor:zoom-out}
