@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Outfit:wght@300;400;500;600;700;800;900&display=swap");:root{--color-base-00: #fefefe;--color-base-00-rgb: 254, 254, 254;--color-base-05: #fcfcfc;--color-base-10: #f5f5f6;--color-base-20: #ebebed;--color-base-30: #d8d8db;--color-base-40: #bfbfc4;--color-base-50: #b5b5bb;--color-base-60: #8c8c96;--color-base-70: #737380;--color-base-80: #6b6b78;--color-base-90: #484854;--color-base-100: #3a3a44;--color-accent: #2563eb;--color-accent-hover: #134cca;--color-accent-faint: rgba(37,99,235,0.15);--text-normal: var(--color-base-90);--text-muted: var(--color-base-70);--text-faint: var(--color-base-50);--background-primary: var(--color-base-05);--background-secondary: var(--color-base-10);--border-color: rgba(0,0,0,0.092);--border-color-hover: rgba(0,0,0,0.114);--code-background: rgba(0,0,0,0.03);--code-border: rgba(0,0,0,0.06);--link-color: var(--color-accent);--link-color-hover: var(--color-base-100);--color-red: #ef4444;--color-orange: #f59e0b;--color-yellow: #facc15;--color-green: #10b981;--color-cyan: #06b6d4;--color-blue: #3b82f6;--color-purple: #8b5cf6;--color-pink: #ec4899;--shadow-xs: 0 1px 2px 0 rgba(0,0,0,0.05);--shadow-s: 0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px -1px rgba(0,0,0,0.1);--shadow-m: 0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--shadow-code: 0 1px 2px 0 rgba(0,0,0,0.05);--shadow-hover: 0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1)}.dark{--color-base-00: #1a1a1e;--color-base-00-rgb: 26, 26, 30;--color-base-05: #1e1e22;--color-base-10: #242428;--color-base-20: #2c2c32;--color-base-30: #3c3c46;--color-base-40: #54545e;--color-base-50: #606068;--color-base-60: #8c8c96;--color-base-70: #b5b5bb;--color-base-80: #c9c9cd;--color-base-90: #e1e1e4;--color-base-100: #f5f5f6;--color-accent: #60a5fa;--color-accent-hover: #91c1fc;--color-accent-faint: rgba(96,165,250,0.15);--border-color: rgba(255,255,255,0.092);--border-color-hover: rgba(255,255,255,0.114);--code-background: rgba(255,255,255,0.03);--code-border: rgba(255,255,255,0.06);--color-red: #f87171;--color-orange: #fbbf24;--color-yellow: #fde047;--color-green: #34d399;--color-cyan: #22d3ee;--color-blue: #60a5fa;--color-purple: #a78bfa;--color-pink: #f472b6}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}.mermaid{margin:2rem 0;display:flex;justify-content:center}.mermaid svg{display:block;margin-left:auto;margin-right:auto}pre.mermaid{text-align:center}body{font-family:'Inter', system-ui, -apple-system, sans-serif;font-size:1.05rem;font-weight:400;line-height:1.7;color:var(--text-normal);background-color:var(--background-primary);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;transition:background-color 0.3s ease, color 0.3s ease}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}@media screen and (max-width: 600px){h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:7.5px}}img{max-width:100%;vertical-align:middle}figure>img{display:block;margin:0 auto}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-family:'Outfit', sans-serif;color:var(--text-normal);letter-spacing:-0.02em;line-height:1.25}h1{font-weight:325;font-size:1.85em}h2{font-weight:575;font-size:1.45em}h3{font-weight:575;font-size:1.25em}h4{font-weight:650;font-size:1.15em}h5{font-weight:675;font-size:1.0875em}h6{font-weight:700;font-size:1em}a{color:var(--link-color);text-decoration:none;transition:color 200ms cubic-bezier(0.4, 0, 0.2, 1)}a:visited{color:var(--link-color);opacity:0.85}a:hover{color:var(--link-color-hover);text-decoration:none}blockquote{color:var(--text-muted);border-left:3px solid var(--color-accent);background-color:var(--code-background);padding:12px 16px;margin:16px 0;border-radius:6px;font-size:1em;letter-spacing:0;font-style:italic}blockquote>:last-child{margin-bottom:0}pre,code{font-size:0.9em;font-family:'SF Mono', 'JetBrains Mono', 'Roboto Mono', Menlo, Monaco, Consolas, monospace;border:1px solid var(--code-border);border-radius:8px;background-color:var(--code-background)}code{padding:2px 6px}pre{padding:16px;overflow-x:auto;box-shadow:var(--shadow-code);line-height:1.5}pre>code{border:0;padding-right:0;padding-left:0;background-color:transparent}.page-content table,.post-content table,table{width:100%;margin-bottom:30px;border-collapse:separate;border-spacing:0;border:1px solid var(--border-color);border-radius:6px;overflow:hidden;font-size:0.95em;background-color:var(--color-base-00);box-shadow:var(--shadow-xs)}.page-content table th,.page-content table td,.post-content table th,.post-content table td,table th,table td{padding:12px 16px;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);vertical-align:middle}.page-content table th:last-child,.page-content table td:last-child,.post-content table th:last-child,.post-content table td:last-child,table th:last-child,table td:last-child{border-right:0}.page-content table th:first-child,.page-content table td:first-child,.post-content table th:first-child,.post-content table td:first-child,table th:first-child,table td:first-child{text-align:left !important}.page-content table th:nth-child(n+2),.page-content table td:nth-child(n+2),.post-content table th:nth-child(n+2),.post-content table td:nth-child(n+2),table th:nth-child(n+2),table td:nth-child(n+2){text-align:center !important}.page-content table th,.post-content table th,table th{background-color:var(--background-secondary);color:var(--text-normal);font-weight:750;text-transform:uppercase;font-size:0.85em;letter-spacing:0.05em;border-bottom:2px solid var(--border-color);white-space:nowrap}.page-content table tr:last-child td,.post-content table tr:last-child td,table tr:last-child td{border-bottom:0}.page-content table tbody tr:nth-child(even),.post-content table tbody tr:nth-child(even),table tbody tr:nth-child(even){background-color:rgba(0,0,0,0.02)}.page-content table tbody tr:hover,.post-content table tbody tr:hover,table tbody tr:hover{background-color:var(--color-accent-faint)}@media screen and (max-width: 600px){.page-content table,.post-content table,table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}.wrapper{max-width:-webkit-calc(800px - (30px * 2));max-width:calc(800px - (30px * 2));margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media screen and (max-width: 800px){.wrapper{max-width:-webkit-calc(800px - (30px));max-width:calc(800px - (30px));padding-right:15px;padding-left:15px}}@media screen and (max-width: 600px){.wrapper{padding-right:12px;padding-left:12px}}.wrapper:after,.footer-col-wrapper:after{content:"";display:table;clear:both}.icon>svg{display:inline-block;width:16px;height:16px;vertical-align:middle}.icon>svg path{fill:#8c8c96}.source-badge{margin:0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background-color:var(--background-secondary);color:var(--text-muted);transition:all 200ms cubic-bezier(0.25, 0.1, 0.25, 1);text-decoration:none !important;border:1px solid var(--border-color)}.source-badge i{font-size:0.9em}.source-badge:hover{background-color:var(--color-accent-faint);color:var(--color-accent);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}th:nth-child(3),td:nth-child(3){text-align:center !important;vertical-align:middle;white-space:nowrap}th:nth-child(3)>*,td:nth-child(3)>*{display:inline-flex;vertical-align:middle}.text-center{text-align:center !important}td i.fa-solid,td i.fas,td i.fab{display:inline-block;text-align:center;vertical-align:middle}.site-header{border-top:none;border-bottom:1px solid var(--border-color);min-height:70px;background-color:rgba(var(--color-base-00-rgb, 255, 255, 255), 0.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);position:sticky;top:0;z-index:1000;transition:all 200ms ease}@media screen and (max-width: 600px){.site-header{min-height:60px}}.site-title{font-family:'Outfit', sans-serif;font-size:1.4rem;font-weight:700;line-height:70px;letter-spacing:-0.03em;margin-bottom:0;float:left;transition:all 200ms cubic-bezier(0.4, 0, 0.2, 1)}@media screen and (max-width: 600px){.site-title{line-height:60px;font-size:1.2rem}}.site-title,.site-title:visited{color:var(--text-normal)}.site-title:hover{color:var(--color-accent);opacity:0.8}.site-nav{float:right;line-height:70px}@media screen and (max-width: 600px){.site-nav{line-height:60px}}.site-nav .nav-trigger{display:none}.site-nav .menu-icon{display:none}@media screen and (max-width: 600px){.site-nav .menu-icon{display:block;float:right;width:36px;height:26px;line-height:0;padding-top:20px;text-align:center;cursor:pointer}.site-nav .menu-icon>svg{width:18px;height:15px}.site-nav .menu-icon>svg path{fill:var(--text-normal)}}@media screen and (max-width: 600px){.site-nav .trigger{display:none;position:absolute;top:55px;right:0;background-color:var(--color-base-00);border:1px solid var(--border-color);border-radius:12px;padding:8px 0;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);min-width:180px;z-index:10}}@media screen and (max-width: 600px){.site-nav .nav-trigger:checked ~ .trigger{display:block}}.site-nav .page-link{color:var(--text-normal);line-height:1.6;font-weight:500;font-size:0.95rem;padding:8px 16px;border-radius:12px;transition:all 200ms cubic-bezier(0.25, 0.1, 0.25, 1)}.site-nav .page-link:not(:last-child){margin-right:4px}@media screen and (max-width: 600px){.site-nav .page-link:not(:last-child){margin-right:0}}@media screen and (max-width: 600px){.site-nav .page-link{display:block;padding:10px 20px;border-radius:0}.site-nav .page-link:hover{background-color:var(--color-accent-faint)}}@media screen and (max-width: 800px){.site-nav .page-link:hover{color:var(--color-accent);background-color:var(--color-accent-faint)}}.site-nav .dropdown{display:inline-block;position:relative}.site-nav .dropdown:hover .dropdown-content{display:block;opacity:1;transform:translateY(0)}@media screen and (max-width: 600px){.site-nav .dropdown{display:block}.site-nav .dropdown:hover .dropdown-content{position:static;display:block;box-shadow:none;border:none;background:transparent;padding-left:20px}}.site-nav .dropdown .dropbtn{cursor:pointer;padding-right:24px;position:relative}.site-nav .dropdown .dropbtn::after{content:"▼";font-size:0.6em;position:absolute;right:8px;top:50%;transform:translateY(-50%);opacity:0.7}.site-nav .dropdown .dropdown-content{display:none;position:absolute;background-color:var(--color-base-00);min-width:200px;box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);border-radius:12px;border:1px solid var(--border-color);z-index:1000;top:100%;right:0;left:auto;transform:translateY(10px);padding:8px 0;opacity:0;transition:all 200ms cubic-bezier(0.25, 0.1, 0.25, 1)}.site-nav .dropdown .dropdown-content::before{content:"";position:absolute;top:-6px;right:24px;left:auto;transform:none;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--border-color)}.site-nav .dropdown .dropdown-content .page-link{display:block;margin:0;border-radius:0;white-space:nowrap;text-align:center}.site-nav .dropdown .dropdown-content .page-link:hover{background-color:var(--color-accent-faint)}@media screen and (max-width: 600px){.site-nav .dropdown .dropdown-content{position:static;transform:none;border:none;box-shadow:none;opacity:1;display:block;padding:0 0 0 15px}.site-nav .dropdown .dropdown-content::before{display:none}.site-nav .dropdown .dropdown-content .page-link{padding:8px 0;font-size:0.9em}}.site-footer{border-top:1px solid var(--border-color);padding:32px 0;background-color:var(--background-secondary);margin-top:32px}.footer-heading{font-size:1.125em;font-weight:650;margin-bottom:16px;color:var(--text-normal)}.contact-list,.social-media-list{list-style:none;margin-left:0}.contact-list li,.social-media-list li{margin-bottom:8px}.contact-list a,.social-media-list a{color:var(--text-muted)}.contact-list a:hover,.social-media-list a:hover{color:var(--color-accent)}.footer-col-wrapper{font-size:0.9375em;color:var(--text-muted);margin-left:-15px}.footer-col{float:left;margin-bottom:16px;padding-left:15px}.footer-col-1{width:-webkit-calc(35% - (30px / 2));width:calc(35% - (30px / 2))}.footer-col-2{width:-webkit-calc(20% - (30px / 2));width:calc(20% - (30px / 2))}.footer-col-3{width:-webkit-calc(45% - (30px / 2));width:calc(45% - (30px / 2))}@media screen and (max-width: 800px){.footer-col-1,.footer-col-2{width:-webkit-calc(50% - (30px / 2));width:calc(50% - (30px / 2))}.footer-col-3{width:-webkit-calc(100% - (30px / 2));width:calc(100% - (30px / 2))}}@media screen and (max-width: 600px){.footer-col{float:none;width:-webkit-calc(100% - (30px / 2));width:calc(100% - (30px / 2))}}.page-content{padding:30px 0}.page-heading{font-size:20px}.post-list{margin-left:0;list-style:none}.post-list>li{margin-bottom:32px;padding:32px;background-color:var(--color-base-00);border:1px solid var(--border-color);border-radius:18px;box-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px -1px rgba(0,0,0,0.1);transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);position:relative;overflow:hidden}@media screen and (max-width: 600px){.post-list>li{padding:24px;margin-bottom:24px;border-radius:16px}}.post-list>li::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--color-accent);opacity:0;transition:opacity 0.3s ease}.post-list>li:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);border-color:rgba(37,99,235,0.2);transform:translateY(-4px) scale(1.01)}@media screen and (max-width: 600px){.post-list>li:hover{transform:none;scale:1}}.post-list>li:hover::before{opacity:1}.post-meta{font-size:14px;color:var(--text-muted);font-weight:550;margin-bottom:8px}.post-link{display:block;font-size:1em;font-weight:650;color:var(--text-normal);line-height:1.3}.post-link:hover{color:var(--color-accent)}.post-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.post-title{font-size:2.5em;font-weight:325;letter-spacing:-0.5px;line-height:1.2;color:var(--text-normal)}@media screen and (max-width: 800px){.post-title{font-size:2em}}.post-content{margin-bottom:32px;text-align:justify;text-justify:inter-word;hyphens:auto;word-break:break-word;overflow-wrap:break-word;line-height:1.6}@media screen and (max-width: 600px){.post-content{text-align:justify}}.post-content p{text-align:justify;margin-bottom:16px}@media screen and (max-width: 600px){.post-content p{text-align:justify}}.post-content h2{font-size:1.45em;font-weight:575;margin-top:32px;margin-bottom:16px}@media screen and (max-width: 800px){.post-content h2{font-size:1.75em}}.post-content h3{font-size:1.25em;font-weight:575;margin-top:24px;margin-bottom:12px}@media screen and (max-width: 800px){.post-content h3{font-size:1.375em}}.post-content h4{font-size:1.15em;font-weight:650;margin-top:16px;margin-bottom:12px}@media screen and (max-width: 800px){.post-content h4{font-size:1.125em}}.post-content blockquote{position:relative;padding:1.25rem 1.5rem;border-left:4px solid var(--color-accent);background:var(--color-base-10);color:var(--text-normal);border-radius:12px;box-shadow:var(--shadow-s);font-style:normal;margin:2rem 0}.post-content blockquote::before{content:"\f05a";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:-10px;left:-10px;background:var(--color-accent);color:white;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:11px;box-shadow:var(--shadow-s)}.post-content blockquote.alert-important{border-left-color:#ef4444;background:rgba(239,68,68,0.05)}.post-content blockquote.alert-important::before{content:"\f06a";background:#ef4444}.post-content blockquote.alert-tip{border-left-color:#10b981;background:rgba(16,185,129,0.05)}.post-content blockquote.alert-tip::before{content:"\f0eb";background:#10b981}.post-content blockquote.alert-caution{border-left-color:#f59e0b;background:rgba(245,158,11,0.05)}.post-content blockquote.alert-caution::before{content:"\f071";background:#f59e0b}.post-content blockquote.alert-note{border-left-color:var(--color-accent);background:var(--color-accent-faint)}.post-content blockquote.alert-note::before{content:"\f05a";background:var(--color-accent)}.post-content blockquote p{margin-bottom:0 !important}.scan-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:1.5rem;margin:2rem 0}.scan-grid .scan-card{background:var(--color-base-00);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);text-decoration:none;display:flex;flex-direction:column;gap:0.75rem;box-shadow:var(--shadow-s)}.scan-grid .scan-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-l);border-color:var(--color-accent);background:var(--color-accent-faint)}.scan-grid .scan-card h3{margin:0;font-size:1.1rem;color:var(--color-accent);text-align:left !important}.scan-grid .scan-card p{margin:0;font-size:0.9rem;color:var(--text-muted);text-align:left !important}.scan-grid .scan-card .badge{align-self:flex-start;padding:4px 10px;background:var(--color-accent-faint);color:var(--color-accent);border-radius:20px;font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.5px}.post-tags{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1rem}.post-header .post-tags{margin-bottom:2rem}.tag-link{display:inline-block;padding:0.25rem 0.75rem;background:var(--color-accent-faint);color:var(--color-accent);border-radius:9999px;text-decoration:none;font-size:0.7rem;font-weight:700;font-family:'Outfit', sans-serif;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);border:1px solid transparent}.tag-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-s);text-decoration:none;opacity:0.9}.post-header .tag-link{font-size:0.75rem;padding:0.3rem 0.85rem}.tag-wip{background:rgba(245,158,11,0.15) !important;color:var(--color-orange, #f59e0b) !important;border-color:rgba(245,158,11,0.3) !important}.tag-wip:hover{background:rgba(245,158,11,0.25) !important}.dark .tag-wip{background:rgba(251,191,36,0.15) !important;color:#fbbf24 !important;border-color:rgba(251,191,36,0.3) !important}.dark .tag-wip:hover{background:rgba(251,191,36,0.25) !important}.highlight{background:#fff}.highlighter-rouge .highlight{background:#eef}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}
