@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap");:root{--bg-main: #f8fafc;--bg-secondary: #f8fafc;--text-main: #334155;--text-muted: #64748b;--text-code-inline: #0f172a;--card-bg: #ffffff;--border-color: #e2e8f0;--btn-timbul-shadow: #cbd5e1;--accent-main: #f59e0b;--accent-teal: #14b8a6;--accent-orange: #f97316;--accent-lime: #84cc16;--accent-combined: #d71212;--grid-color: rgba(245, 158, 11, 0.08);--shadow-pop: rgba(15, 23, 42, 0.1);--terminal-bg: #0f172a;--terminal-header: #1e293b;--terminal-text: #94a3b8;--toc-bg: #ffffff;--toc-border: #e2e8f0;--toc-active-bg: rgba(20, 184, 166, 0.1);--inline-code-bg: rgba(20, 184, 166, 0.1);--inline-code-text: #0f766e}[data-theme="dark"]{--bg-main: #0d1117;--bg-secondary: #111827;--text-main: #f1f5f9;--text-muted: #94a3b8;--text-code-inline: #f1f5f9;--card-bg: #1f2937;--border-color: #374151;--btn-timbul-shadow: #0d1117;--accent-main: #fbbf24;--accent-teal: #2dd4bf;--accent-orange: #fb923c;--accent-lime: #a3e635;--accent-combined: #d71212;--grid-color: rgba(251, 191, 36, 0.12);--shadow-pop: rgba(0, 0, 0, 0.5);--terminal-bg: #020617;--terminal-header: #0f172a;--terminal-text: #64748b;--toc-bg: #1f2937;--toc-border: #374151;--toc-active-bg: rgba(45, 212, 191, 0.12);--inline-code-bg: rgba(45, 212, 191, 0.1);--inline-code-text: #2dd4bf}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:"Quicksand",sans-serif;background-color:var(--bg-main);color:var(--text-main);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;position:relative;transition:background-color 0.25s ease, color 0.25s ease;line-height:1.7}body::before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background-image:radial-gradient(var(--grid-color) 2px, transparent 2px);background-size:30px 30px;z-index:-1;animation:moveGrid 30s linear infinite;transform:translateZ(0);will-change:transform;pointer-events:none}@keyframes moveGrid{0%{transform:translateY(0) rotate(0deg) translateZ(0)}100%{transform:translateY(30px) rotate(1deg) translateZ(0)}}h1,h2,h3,h4,h5,h6{font-family:"Quicksand",sans-serif;font-weight:700;color:var(--text-main);line-height:1.3}h1{font-size:clamp(1.6rem, 4vw, 2.4rem)}h2{font-size:clamp(1.3rem, 3vw, 1.9rem)}h3{font-size:clamp(1.1rem, 2.5vw, 1.5rem)}h4{font-size:1.1rem}p{line-height:1.75;color:var(--text-main);margin-bottom:16px}a{color:var(--accent-teal);text-decoration:none;transition:color 0.2s}a:hover{color:var(--accent-main)}ul,ol{padding-left:24px;margin-bottom:16px}ul li,ol li{margin-bottom:4px;line-height:1.7}blockquote{border-left:4px solid var(--accent-teal);padding:8px 16px;margin:24px 0;background:var(--toc-bg);border-radius:0 8px 8px 0;color:var(--text-muted);font-style:italic}hr{border:none;border-top:2px solid var(--border-color);margin:40px 0}img{max-width:100%;height:auto;border-radius:16px}table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:0.9rem}table th,table td{padding:8px 16px;text-align:left;border-bottom:2px solid var(--border-color)}table th{background:var(--toc-bg);font-weight:700;color:var(--accent-teal)}table tr:hover td{background:var(--toc-active-bg)}.page-wrapper{flex:1;display:flex;flex-direction:column}.container{width:100%;max-width:900px;margin:0 auto;padding:0 24px}.container--wide{max-width:1200px;margin:0 auto;padding:0 24px}.prose img,article img{max-width:100%;height:auto;display:block;margin:32px auto;border-radius:12px;box-shadow:0 10px 25px -5px rgba(0,0,0,0.08);border:1px solid var(--border-color);cursor:zoom-in;transition:transform 0.2s ease, box-shadow 0.2s ease}.prose img:hover,article img:hover{transform:translateY(-2px);box-shadow:0 15px 30px -5px rgba(0,0,0,0.15)}.img-modal{display:none;position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background-color:rgba(15,23,42,0.85);backdrop-filter:blur(5px);opacity:0;transition:opacity 0.3s ease;align-items:center;justify-content:center}.img-modal.show{opacity:1}.img-modal-content{max-width:90%;max-height:90vh;border-radius:8px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5);object-fit:contain;cursor:zoom-out;transform:scale(0.95);transition:transform 0.3s ease}.img-modal.show .img-modal-content{transform:scale(1)}.btn-elevated{background:var(--card-bg);border:3px solid var(--border-color);border-radius:18px;box-shadow:0 6px 0 var(--btn-timbul-shadow);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--text-main);font-family:"Quicksand",sans-serif;font-weight:700;font-size:1rem;transition:transform 0.1s ease-in-out, box-shadow 0.1s ease-in-out, border-color 0.1s ease-in-out, color 0.1s ease-in-out}.btn-elevated:hover{transform:translateY(-2px);border-color:var(--accent-teal);box-shadow:0 8px 0 var(--accent-teal);color:var(--accent-teal)}.btn-elevated:active{transform:translateY(6px);box-shadow:0 0 0 var(--accent-teal)}.btn-elevated.btn-icon{width:50px;height:50px;font-size:1.4rem}.btn-elevated.btn-teal{border-color:var(--accent-teal);box-shadow:0 6px 0 var(--accent-teal);color:var(--accent-teal)}.btn-elevated.btn-teal:hover{box-shadow:0 10px 0 var(--accent-teal)}.btn-elevated.btn-teal:active{box-shadow:0 0 0 var(--accent-teal)}.btn-elevated.btn-orange{border-color:var(--accent-orange);box-shadow:0 6px 0 var(--accent-orange);color:var(--accent-orange)}.btn-elevated.btn-orange:hover{box-shadow:0 10px 0 var(--accent-orange)}.btn-elevated.btn-orange:active{box-shadow:0 0 0 var(--accent-orange)}.btn-elevated.btn-close-modal{background-color:var(--accent-orange);color:white;border-color:#be5105;box-shadow:0 6px 0 #be5105}.btn-elevated.btn-close-modal:hover{color:white;box-shadow:0 10px 0 #be5105}.btn-elevated.btn-close-modal:active{box-shadow:0 0 0 #be5105}.status-badge{background-color:var(--card-bg);color:var(--accent-teal);padding:8px 22px;border-radius:999px;display:inline-block;font-weight:700;font-size:0.9rem;border:2px solid var(--accent-teal);box-shadow:0 4px 0 var(--accent-teal);transition:transform 0.2s, box-shadow 0.2s}.status-badge:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--accent-teal)}.tag{display:inline-block;padding:5px 12px;border-radius:8px;font-size:0.78rem;font-weight:700;color:#ffffff;border:2px solid rgba(255,255,255,0.25);letter-spacing:0.03em;text-transform:uppercase}.tag.pwn{background-color:var(--accent-orange)}.tag.web{background-color:var(--accent-teal)}.tag.rev{background-color:var(--accent-lime);color:#1a1a1a}.tag.misc{background-color:var(--accent-main);color:#1a1a1a}.tag.crypto{background-color:#8b5cf6}.tag.forensics{background-color:#ec4899}.tag.combined{background-color:var(--accent-combined)}.site-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px;position:relative;z-index:100}.site-header .header-brand{font-size:1.1rem;font-weight:700;color:var(--text-main);text-decoration:none;font-family:"Fira Code","Courier New",Courier,monospace}.site-header .header-brand span{color:var(--accent-main)}.site-header .header-brand:hover{color:var(--accent-teal)}.site-header .header-actions{display:flex;gap:12px;align-items:center}.site-header .btn-icon .fa-sun{color:var(--accent-main)}.site-header .btn-icon .fa-moon{color:var(--accent-main)}.site-header .btn-icon .fa-bars{color:var(--accent-teal)}.site-header .btn-icon .fab.fa-github{color:var(--accent-teal)}.terminal-card{background-color:var(--terminal-bg);border:3px solid var(--border-color);border-radius:16px;width:100%;max-width:720px;overflow:hidden;box-shadow:0 10px 0 var(--btn-timbul-shadow),0 20px 40px var(--shadow-pop);text-align:left;transition:box-shadow 0.2s, transform 0.2s}.terminal-card:hover{transform:translateY(-4px);box-shadow:0 14px 0 var(--btn-timbul-shadow),0 24px 48px var(--shadow-pop)}.terminal-card .terminal-header{background-color:var(--terminal-header);padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:2px solid rgba(255,255,255,0.05)}.terminal-card .terminal-dot{width:13px;height:13px;border-radius:50%}.terminal-card .terminal-dot.dot-red{background-color:var(--accent-orange)}.terminal-card .terminal-dot.dot-yellow{background-color:var(--accent-main)}.terminal-card .terminal-dot.dot-green{background-color:var(--accent-lime)}.terminal-card .terminal-title{margin:0 auto;padding-right:54px;color:var(--terminal-text);font-size:0.82rem;font-family:"Fira Code","Courier New",Courier,monospace}.terminal-card .terminal-body{padding:24px 40px;font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.92rem;line-height:1.7;color:#cbd5e1}.terminal-card .terminal-body .prompt{color:#84cc16;font-weight:600}.terminal-card .terminal-body .command{color:#14b8a6;font-weight:600}.terminal-card .terminal-body .output{margin-top:8px;color:#94a3b8;font-family:"Quicksand",sans-serif;font-size:0.95rem}.terminal-card .terminal-body .highlight{color:#f59e0b;font-weight:700}.profile-section{display:flex;flex-direction:column;align-items:center;margin:24px 24px 40px;position:relative;z-index:10;gap:24px}.profile-section .profile-title{font-size:clamp(1.5rem, 4vw, 2.4rem);color:var(--text-main);display:flex;align-items:center;gap:10px;font-family:"Fira Code","Courier New",Courier,monospace;font-weight:700}.profile-section .profile-title .title-tilde{color:var(--accent-main)}.profile-section .blinking-cursor{display:inline-block;width:12px;height:clamp(22px, 3vw, 30px);background-color:var(--accent-main);animation:blink 1s step-end infinite;vertical-align:middle;border-radius:2px}@keyframes blink{50%{opacity:0}}.writeup-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(270px, 1fr));gap:24px;margin-top:24px}.writeup-card{background:var(--card-bg);border:4px solid;border-radius:16px;padding:24px;text-align:left;text-decoration:none;display:block;color:inherit;transition:transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out}.writeup-card h3{margin:8px 0;font-size:1.1rem;color:var(--text-main);line-height:1.4}.writeup-card p{color:var(--text-muted);font-size:0.9rem;line-height:1.6;margin-bottom:0}.writeup-card .card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;font-size:0.8rem;color:var(--text-muted);font-family:"Fira Code","Courier New",Courier,monospace}.writeup-card .card-meta .meta-date{display:flex;align-items:center;gap:4px}.writeup-card.card-pwn{border-color:var(--accent-orange);box-shadow:0 8px 0 var(--accent-orange)}.writeup-card.card-pwn:hover{transform:translateY(-8px);box-shadow:0 14px 0 var(--accent-orange),0 4px 24px rgba(249,115,22,0.25)}.writeup-card.card-web{border-color:var(--accent-teal);box-shadow:0 8px 0 var(--accent-teal)}.writeup-card.card-web:hover{transform:translateY(-8px);box-shadow:0 14px 0 var(--accent-teal),0 4px 24px rgba(20,184,166,0.25)}.writeup-card.card-rev{border-color:var(--accent-lime);box-shadow:0 8px 0 var(--accent-lime)}.writeup-card.card-rev:hover{transform:translateY(-8px);box-shadow:0 14px 0 var(--accent-lime),0 4px 24px rgba(132,204,22,0.2)}.writeup-card.card-misc{border-color:var(--accent-main);box-shadow:0 8px 0 var(--accent-main)}.writeup-card.card-misc:hover{transform:translateY(-8px);box-shadow:0 14px 0 var(--accent-main),0 4px 24px rgba(245,158,11,0.25)}.writeup-card.card-crypto{border-color:#8b5cf6;box-shadow:0 8px 0 #8b5cf6}.writeup-card.card-crypto:hover{transform:translateY(-8px);box-shadow:0 14px 0 #8b5cf6,0 4px 24px rgba(139,92,246,0.25)}.writeup-card.card-combined{border-color:var(--accent-combined);box-shadow:0 8px 0 var(--accent-combined)}.writeup-card.card-combined:hover{transform:translateY(-8px);box-shadow:0 14px 0 var(--accent-combined),0 4px 24px rgba(219,26,26,0.25)}.writeup-card.card-combined .card-meta .card-read{color:var(--accent-combined)}@media (max-width: 768px){.writeup-card.card-combined{box-shadow:0 6px 0 var(--accent-combined)}.writeup-card.card-combined:hover{box-shadow:0 10px 0 var(--accent-combined)}}.category-title{text-align:center;margin-bottom:24px;color:var(--accent-main);font-weight:700;font-family:"Fira Code","Courier New",Courier,monospace;font-size:1.1rem;letter-spacing:0.05em}.category-title .fa-flag{margin:0 8px}.modal-overlay{display:none;position:fixed;inset:0;background-color:rgba(15,23,42,0.85);z-index:1000;justify-content:center;align-items:center;backdrop-filter:blur(4px)}.modal-overlay.is-open{display:flex}.modal-overlay .modal-content{background:var(--bg-main);border:4px solid var(--accent-teal);border-radius:20px;width:92%;max-width:420px;overflow:hidden;box-shadow:0 20px 60px var(--shadow-pop);transform:scale(0.9) translateY(20px);opacity:0;transition:transform 0.25s ease-out, opacity 0.25s ease-out}.modal-overlay.is-open .modal-content{transform:scale(1) translateY(0);opacity:1}.modal-overlay .modal-header{background-color:var(--accent-teal);padding:18px;text-align:center;font-weight:700;font-size:1.2rem;color:white;font-family:"Fira Code","Courier New",Courier,monospace;letter-spacing:0.08em;display:flex;justify-content:center;align-items:center;gap:10px}.modal-overlay .modal-body{padding:24px;display:flex;flex-direction:column;gap:8px}.modal-overlay .menu-item{width:100%;padding:14px 16px;font-size:1rem;justify-content:flex-start;gap:14px;border-radius:16px;text-decoration:none;font-family:"Quicksand",sans-serif}.modal-overlay .menu-item i{width:26px;text-align:center}.modal-overlay .menu-item.orange-text i{color:var(--accent-orange)}.modal-overlay .menu-item.teal-text i{color:var(--accent-teal)}.modal-overlay .menu-item.lime-text i{color:var(--accent-lime)}.modal-overlay .menu-item.yellow-text i{color:var(--accent-main)}.post-layout{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:start;max-width:1100px;margin:0 auto;padding:0 24px}@media (max-width: 1024px){.post-layout{grid-template-columns:1fr}}.post-content-col{min-width:0;order:1}.toc-sidebar{order:2;position:sticky;top:24px}@media (max-width: 1024px){.toc-sidebar{display:none;order:0}}.toc-sidebar .toc-inner{background:var(--toc-bg);border:3px solid var(--border-color);border-radius:16px;padding:16px 24px;box-shadow:0 6px 0 var(--btn-timbul-shadow)}.toc-sidebar .toc-inner .toc-heading{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--accent-teal);margin-bottom:8px;font-family:"Fira Code","Courier New",Courier,monospace;display:flex;align-items:center;gap:8px}.toc-sidebar .toc-inner .toc-heading::before{content:"▸";color:var(--accent-main)}.toc-sidebar .toc-inner #markdown-toc,.toc-sidebar .toc-inner .toc-list{list-style:none;padding:0;margin:0}.toc-sidebar .toc-inner #markdown-toc li,.toc-sidebar .toc-inner .toc-list li{margin:0;border-left:2px solid var(--border-color);transition:border-color 0.2s}.toc-sidebar .toc-inner #markdown-toc li:hover,.toc-sidebar .toc-inner .toc-list li:hover{border-left-color:var(--accent-teal)}.toc-sidebar .toc-inner #markdown-toc li a,.toc-sidebar .toc-inner .toc-list li a{display:block;padding:6px 8px;font-size:0.85rem;color:var(--text-muted);text-decoration:none;transition:color 0.2s, background 0.2s;border-radius:0 8px 8px 0;line-height:1.4}.toc-sidebar .toc-inner #markdown-toc li a:hover,.toc-sidebar .toc-inner .toc-list li a:hover{color:var(--accent-teal);background:var(--toc-active-bg)}.toc-sidebar .toc-inner #markdown-toc li ul,.toc-sidebar .toc-inner #markdown-toc li ol,.toc-sidebar .toc-inner .toc-list li ul,.toc-sidebar .toc-inner .toc-list li ol{list-style:none;padding:0;margin:0}.toc-sidebar .toc-inner #markdown-toc li ul li a,.toc-sidebar .toc-inner #markdown-toc li ol li a,.toc-sidebar .toc-inner .toc-list li ul li a,.toc-sidebar .toc-inner .toc-list li ol li a{padding-left:24px;font-size:0.8rem}.toc-accordion{display:none;margin-bottom:24px;border:3px solid var(--accent-teal);border-radius:16px;overflow:hidden;box-shadow:0 6px 0 var(--accent-teal)}@media (max-width: 1024px){.toc-accordion{display:block}}.toc-accordion .toc-accordion-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--toc-bg);border:none;cursor:pointer;font-family:"Quicksand",sans-serif;font-weight:700;font-size:0.9rem;color:var(--accent-teal)}.toc-accordion .toc-accordion-toggle .toc-chevron{transition:transform 0.3s;font-size:0.8rem}.toc-accordion .toc-accordion-toggle[aria-expanded="true"] .toc-chevron{transform:rotate(180deg)}.toc-accordion .toc-accordion-body{max-height:0;overflow:hidden;transition:max-height 0.35s ease;background:var(--toc-bg)}.toc-accordion .toc-accordion-body.is-open{max-height:500px}.toc-accordion .toc-accordion-body #markdown-toc,.toc-accordion .toc-accordion-body .toc-list{list-style:none;padding:8px 16px 16px;margin:0}.toc-accordion .toc-accordion-body #markdown-toc li,.toc-accordion .toc-accordion-body .toc-list li{margin:0}.toc-accordion .toc-accordion-body #markdown-toc li a,.toc-accordion .toc-accordion-body .toc-list li a{display:block;padding:5px 0;font-size:0.88rem;color:var(--text-muted);text-decoration:none;border-bottom:1px dashed var(--border-color)}.toc-accordion .toc-accordion-body #markdown-toc li a:hover,.toc-accordion .toc-accordion-body .toc-list li a:hover{color:var(--accent-teal)}.toc-accordion .toc-accordion-body #markdown-toc li ul,.toc-accordion .toc-accordion-body #markdown-toc li ol,.toc-accordion .toc-accordion-body .toc-list li ul,.toc-accordion .toc-accordion-body .toc-list li ol{list-style:none;padding-left:16px;margin:0}.toc-accordion .toc-accordion-body #markdown-toc li ul li a,.toc-accordion .toc-accordion-body #markdown-toc li ol li a,.toc-accordion .toc-accordion-body .toc-list li ul li a,.toc-accordion .toc-accordion-body .toc-list li ol li a{font-size:0.82rem}.post-header{margin-bottom:40px}.post-header .post-title{font-size:clamp(1.6rem, 4vw, 2.5rem);line-height:1.25;margin-bottom:16px}.post-header .post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--text-muted);font-size:0.88rem;font-family:"Fira Code","Courier New",Courier,monospace;margin-bottom:16px}.post-header .post-meta .post-meta-sep{color:var(--border-color)}.post-header .post-tags{display:flex;gap:4px;flex-wrap:wrap}.prose h2{font-size:1.6rem;margin:40px 0 16px;padding-bottom:8px;border-bottom:3px solid var(--accent-teal);color:var(--text-main)}.prose h3{font-size:1.25rem;margin:24px 0 8px;color:var(--accent-teal)}.prose h4{font-size:1.05rem;margin:16px 0 4px;color:var(--accent-main)}.prose p{margin-bottom:16px}.prose code:not([class]){background:var(--inline-code-bg);color:var(--inline-code-text);padding:2px 7px;border-radius:8px;font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.88em;border:1px solid rgba(20,184,166,0.2)}div.highlighter-rouge,figure.highlight{background:var(--terminal-bg);border:1px solid rgba(255,255,255,0.1);border-radius:12px;margin:24px 0;overflow:hidden;box-shadow:0 12px 24px rgba(0,0,0,0.3);position:relative;z-index:1}div.highlighter-rouge .code-header,figure.highlight .code-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:rgba(255,255,255,0.02);border-bottom:1px solid rgba(255,255,255,0.05)}div.highlighter-rouge .code-header .mac-dots,figure.highlight .code-header .mac-dots{display:flex;gap:8px}div.highlighter-rouge .code-header .mac-dots span,figure.highlight .code-header .mac-dots span{width:12px;height:12px;border-radius:50%;display:inline-block}div.highlighter-rouge .code-header .mac-dots span.red,figure.highlight .code-header .mac-dots span.red{background:#ff5f56}div.highlighter-rouge .code-header .mac-dots span.yellow,figure.highlight .code-header .mac-dots span.yellow{background:#ffbd2e}div.highlighter-rouge .code-header .mac-dots span.green,figure.highlight .code-header .mac-dots span.green{background:#27c93f}div.highlighter-rouge .code-header .code-lang,figure.highlight .code-header .code-lang{font-family:var(--font-sans, sans-serif);font-weight:600;font-size:0.8rem;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.5px;flex-grow:1;text-align:left;margin-left:16px}div.highlighter-rouge .code-header .code-actions,figure.highlight .code-header .code-actions{display:flex;gap:12px;color:rgba(255,255,255,0.5)}div.highlighter-rouge .code-header .code-actions button,figure.highlight .code-header .code-actions button{background:none;border:none;color:inherit;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color 0.2s}div.highlighter-rouge .code-header .code-actions button:hover,figure.highlight .code-header .code-actions button:hover{color:#fff}div.highlighter-rouge .code-header .code-actions button svg,figure.highlight .code-header .code-actions button svg{width:18px;height:18px;fill:currentColor}div.highlighter-rouge .highlight,figure.highlight .highlight{background:transparent !important;border:none !important;margin:0;padding:0;box-shadow:none !important}div.highlighter-rouge pre,figure.highlight pre{margin:0;background:transparent;font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.88rem;line-height:1.6;overflow:visible}div.highlighter-rouge>.highlight>pre,figure.highlight>.highlight>pre{padding:16px;overflow-x:auto}div.highlighter-rouge>.highlight>pre::-webkit-scrollbar,figure.highlight>.highlight>pre::-webkit-scrollbar{height:6px}div.highlighter-rouge>.highlight>pre::-webkit-scrollbar-track,figure.highlight>.highlight>pre::-webkit-scrollbar-track{background:transparent}div.highlighter-rouge>.highlight>pre::-webkit-scrollbar-thumb,figure.highlight>.highlight>pre::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:3px}div.highlighter-rouge table.highlighttable,div.highlighter-rouge table.rouge-table,figure.highlight table.highlighttable,figure.highlight table.rouge-table{border-collapse:collapse;margin:0;width:100%;display:table}div.highlighter-rouge table.highlighttable td,div.highlighter-rouge table.rouge-table td,figure.highlight table.highlighttable td,figure.highlight table.rouge-table td{padding:0;margin:0;border:none;vertical-align:top}div.highlighter-rouge table.highlighttable .linenos,div.highlighter-rouge table.highlighttable .rouge-gutter,div.highlighter-rouge table.rouge-table .linenos,div.highlighter-rouge table.rouge-table .rouge-gutter,figure.highlight table.highlighttable .linenos,figure.highlight table.highlighttable .rouge-gutter,figure.highlight table.rouge-table .linenos,figure.highlight table.rouge-table .rouge-gutter{color:rgba(255,255,255,0.3);background:transparent;text-align:right;width:1%;white-space:nowrap;padding-right:16px}div.highlighter-rouge table.highlighttable .linenos pre,div.highlighter-rouge table.highlighttable .rouge-gutter pre,div.highlighter-rouge table.rouge-table .linenos pre,div.highlighter-rouge table.rouge-table .rouge-gutter pre,figure.highlight table.highlighttable .linenos pre,figure.highlight table.highlighttable .rouge-gutter pre,figure.highlight table.rouge-table .linenos pre,figure.highlight table.rouge-table .rouge-gutter pre{color:inherit;padding:16px 0 16px 16px;overflow:visible;user-select:none}div.highlighter-rouge table.highlighttable .code>.highlight>pre,div.highlighter-rouge table.highlighttable .code>pre,div.highlighter-rouge table.highlighttable .rouge-code>.highlight>pre,div.highlighter-rouge table.highlighttable .rouge-code>pre,div.highlighter-rouge table.rouge-table .code>.highlight>pre,div.highlighter-rouge table.rouge-table .code>pre,div.highlighter-rouge table.rouge-table .rouge-code>.highlight>pre,div.highlighter-rouge table.rouge-table .rouge-code>pre,figure.highlight table.highlighttable .code>.highlight>pre,figure.highlight table.highlighttable .code>pre,figure.highlight table.highlighttable .rouge-code>.highlight>pre,figure.highlight table.highlighttable .rouge-code>pre,figure.highlight table.rouge-table .code>.highlight>pre,figure.highlight table.rouge-table .code>pre,figure.highlight table.rouge-table .rouge-code>.highlight>pre,figure.highlight table.rouge-table .rouge-code>pre{padding:16px 16px 16px 0;overflow-x:auto}div.highlighter-rouge table.highlighttable .code>.highlight>pre::-webkit-scrollbar,div.highlighter-rouge table.highlighttable .code>pre::-webkit-scrollbar,div.highlighter-rouge table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar,div.highlighter-rouge table.highlighttable .rouge-code>pre::-webkit-scrollbar,div.highlighter-rouge table.rouge-table .code>.highlight>pre::-webkit-scrollbar,div.highlighter-rouge table.rouge-table .code>pre::-webkit-scrollbar,div.highlighter-rouge table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar,div.highlighter-rouge table.rouge-table .rouge-code>pre::-webkit-scrollbar,figure.highlight table.highlighttable .code>.highlight>pre::-webkit-scrollbar,figure.highlight table.highlighttable .code>pre::-webkit-scrollbar,figure.highlight table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar,figure.highlight table.highlighttable .rouge-code>pre::-webkit-scrollbar,figure.highlight table.rouge-table .code>.highlight>pre::-webkit-scrollbar,figure.highlight table.rouge-table .code>pre::-webkit-scrollbar,figure.highlight table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar,figure.highlight table.rouge-table .rouge-code>pre::-webkit-scrollbar{height:6px}div.highlighter-rouge table.highlighttable .code>.highlight>pre::-webkit-scrollbar-track,div.highlighter-rouge table.highlighttable .code>pre::-webkit-scrollbar-track,div.highlighter-rouge table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar-track,div.highlighter-rouge table.highlighttable .rouge-code>pre::-webkit-scrollbar-track,div.highlighter-rouge table.rouge-table .code>.highlight>pre::-webkit-scrollbar-track,div.highlighter-rouge table.rouge-table .code>pre::-webkit-scrollbar-track,div.highlighter-rouge table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar-track,div.highlighter-rouge table.rouge-table .rouge-code>pre::-webkit-scrollbar-track,figure.highlight table.highlighttable .code>.highlight>pre::-webkit-scrollbar-track,figure.highlight table.highlighttable .code>pre::-webkit-scrollbar-track,figure.highlight table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar-track,figure.highlight table.highlighttable .rouge-code>pre::-webkit-scrollbar-track,figure.highlight table.rouge-table .code>.highlight>pre::-webkit-scrollbar-track,figure.highlight table.rouge-table .code>pre::-webkit-scrollbar-track,figure.highlight table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar-track,figure.highlight table.rouge-table .rouge-code>pre::-webkit-scrollbar-track{background:transparent}div.highlighter-rouge table.highlighttable .code>.highlight>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.highlighttable .code>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.highlighttable .rouge-code>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.rouge-table .code>.highlight>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.rouge-table .code>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar-thumb,div.highlighter-rouge table.rouge-table .rouge-code>pre::-webkit-scrollbar-thumb,figure.highlight table.highlighttable .code>.highlight>pre::-webkit-scrollbar-thumb,figure.highlight table.highlighttable .code>pre::-webkit-scrollbar-thumb,figure.highlight table.highlighttable .rouge-code>.highlight>pre::-webkit-scrollbar-thumb,figure.highlight table.highlighttable .rouge-code>pre::-webkit-scrollbar-thumb,figure.highlight table.rouge-table .code>.highlight>pre::-webkit-scrollbar-thumb,figure.highlight table.rouge-table .code>pre::-webkit-scrollbar-thumb,figure.highlight table.rouge-table .rouge-code>.highlight>pre::-webkit-scrollbar-thumb,figure.highlight table.rouge-table .rouge-code>pre::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:3px}div.highlighter-rouge .c,div.highlighter-rouge .c1,div.highlighter-rouge .cm,div.highlighter-rouge .cs,figure.highlight .c,figure.highlight .c1,figure.highlight .cm,figure.highlight .cs{color:#64748b;font-style:italic}div.highlighter-rouge .k,div.highlighter-rouge .kd,div.highlighter-rouge .kn,div.highlighter-rouge .kr,figure.highlight .k,figure.highlight .kd,figure.highlight .kn,figure.highlight .kr{color:#c084fc;font-weight:600}div.highlighter-rouge .n,div.highlighter-rouge .na,figure.highlight .n,figure.highlight .na{color:#94a3b8}div.highlighter-rouge .nb,div.highlighter-rouge .bp,figure.highlight .nb,figure.highlight .bp{color:#14b8a6}div.highlighter-rouge .nc,div.highlighter-rouge .nf,figure.highlight .nc,figure.highlight .nf{color:#60a5fa}div.highlighter-rouge .s,div.highlighter-rouge .s1,div.highlighter-rouge .s2,div.highlighter-rouge .sa,figure.highlight .s,figure.highlight .s1,figure.highlight .s2,figure.highlight .sa{color:#84cc16}div.highlighter-rouge .m,div.highlighter-rouge .mi,div.highlighter-rouge .mf,figure.highlight .m,figure.highlight .mi,figure.highlight .mf{color:#f59e0b}div.highlighter-rouge .o,div.highlighter-rouge .ow,figure.highlight .o,figure.highlight .ow{color:#f97316}div.highlighter-rouge .p,figure.highlight .p{color:#94a3b8}div.highlighter-rouge .nv,div.highlighter-rouge .vi,figure.highlight .nv,figure.highlight .vi{color:#f472b6}div.highlighter-rouge .si,figure.highlight .si{color:#14b8a6}div.highlighter-rouge .gd,figure.highlight .gd{color:#f97316;background:rgba(249,115,22,0.1)}div.highlighter-rouge .gi,figure.highlight .gi{color:#84cc16;background:rgba(132,204,22,0.1)}div.highlighter-rouge .gh,div.highlighter-rouge .gu,figure.highlight .gh,figure.highlight .gu{color:#f59e0b;font-weight:700}div.highlighter-rouge .err,figure.highlight .err{color:white;background-color:#f97316}div.highlighter-rouge .linenos,div.highlighter-rouge .gl,figure.highlight .linenos,figure.highlight .gl{color:#334155;padding-right:16px;user-select:none;border-right:1px solid #1e293b}p>code,li>code,td>code{background:var(--inline-code-bg);color:var(--inline-code-text);padding:2px 7px;border-radius:8px;font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.88em;border:1px solid rgba(20,184,166,0.2)}.timeline-page{max-width:1000px;margin:0 auto;padding:0 24px 64px}.timeline-page .page-heading{text-align:center;margin-bottom:40px}.timeline-page .page-heading h1{font-family:"Fira Code","Courier New",Courier,monospace;font-size:clamp(1.6rem, 4vw, 2.4rem);color:var(--text-main)}.timeline-page .page-heading h1 span{color:var(--accent-main)}.timeline-page .page-heading p{color:var(--text-muted);margin-top:8px;font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.9rem}.timeline{position:relative;padding:8px 0}.timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(to bottom, var(--accent-teal), var(--accent-main), var(--accent-orange));transform:translateX(-50%);border-radius:3px}@media (max-width: 768px){.timeline::before{left:20px}}.timeline-item{display:flex;justify-content:flex-end;padding-right:calc(50% + 25px);margin-bottom:40px;position:relative}.timeline-item:nth-child(even){justify-content:flex-start;padding-right:0;padding-left:calc(50% + 25px)}.timeline-item:nth-child(even) .timeline-card{text-align:left}.timeline-item:nth-child(even) .timeline-dot{left:50%;right:auto}@media (max-width: 768px){.timeline-item{justify-content:flex-start;padding-right:0;padding-left:52px}.timeline-item:nth-child(even){padding-left:52px}.timeline-item .timeline-dot,.timeline-item:nth-child(even) .timeline-dot{left:10px;right:auto}}.timeline-dot{position:absolute;right:50%;top:20px;width:22px;height:22px;border-radius:50%;border:3px solid var(--bg-main);transform:translateX(50%);z-index:2;box-shadow:0 0 0 3px currentColor;transition:transform 0.2s}.timeline-dot.dot-pwn{background-color:var(--accent-orange);color:var(--accent-orange)}.timeline-dot.dot-web{background-color:var(--accent-teal);color:var(--accent-teal)}.timeline-dot.dot-rev{background-color:var(--accent-lime);color:var(--accent-lime)}.timeline-dot.dot-misc{background-color:var(--accent-main);color:var(--accent-main)}.timeline-dot.dot-combined{background-color:var(--accent-combined);color:var(--accent-combined)}@media (max-width: 768px){.timeline-dot{transform:translateX(0)}}.timeline-item:hover .timeline-dot{transform:translateX(50%) scale(1.3)}@media (max-width: 768px){.timeline-item:hover .timeline-dot{transform:translateX(0) scale(1.3)}}.timeline-card{background:var(--card-bg);border:4px solid;border-radius:16px;padding:24px;max-width:500px;min-width:300px;width:100%;box-shadow:0 8px 0;transition:transform 0.2s, box-shadow 0.2s;text-align:right}@media (max-width: 768px){.timeline-card{max-width:100%;text-align:left}}.timeline-card.card-pwn{border-color:var(--accent-orange);box-shadow:0 8px 0 var(--accent-orange)}.timeline-card.card-pwn:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--accent-orange)}.timeline-card.card-web{border-color:var(--accent-teal);box-shadow:0 8px 0 var(--accent-teal)}.timeline-card.card-web:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--accent-teal)}.timeline-card.card-rev{border-color:var(--accent-lime);box-shadow:0 8px 0 var(--accent-lime)}.timeline-card.card-rev:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--accent-lime)}.timeline-card.card-misc{border-color:var(--accent-main);box-shadow:0 8px 0 var(--accent-main)}.timeline-card.card-misc:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--accent-main)}.timeline-card.card-combined{border-color:var(--accent-combined);box-shadow:0 8px 0 var(--accent-combined)}.timeline-card.card-combined:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--accent-combined)}.timeline-card .tc-name{font-size:1.1rem;font-weight:700;margin-bottom:6px;color:var(--text-main)}.timeline-card .tc-date{font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.78rem;color:var(--text-muted);margin-bottom:8px}.timeline-card .tc-rank{font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.88rem;font-weight:700;color:var(--accent-main);margin-bottom:4px}.timeline-card .tc-platform{font-size:0.8rem;color:var(--text-muted);margin-bottom:8px}.timeline-card .tc-highlight{font-size:0.85rem;color:var(--text-muted);border-top:2px dashed var(--border-color);padding-top:8px;margin-top:8px;font-style:italic;line-height:1.5}.timeline-card .tc-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px;justify-content:flex-end}@media (max-width: 768px){.timeline-card .tc-tags{justify-content:flex-start}}.timeline-card .tc-link{display:inline-flex;align-items:center;gap:5px;font-size:0.8rem;font-family:"Fira Code","Courier New",Courier,monospace;color:var(--accent-teal);text-decoration:none;margin-top:4px}.timeline-card .tc-link:hover{color:var(--accent-main)}.site-footer{text-align:center;padding:40px 24px;color:var(--text-muted);font-size:0.85rem;font-family:"Fira Code","Courier New",Courier,monospace;border-top:2px solid var(--border-color);margin-top:auto}.site-footer a{color:var(--accent-teal)}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted);font-family:"Fira Code","Courier New",Courier,monospace;font-size:0.88rem;text-decoration:none;margin-bottom:24px;transition:color 0.2s}.back-link:hover{color:var(--accent-teal)}.empty-state{text-align:center;padding:64px 24px;color:var(--text-muted);font-family:"Fira Code","Courier New",Courier,monospace}.empty-state .empty-icon{font-size:3rem;margin-bottom:16px;opacity:0.5}@media (max-width: 640px){.site-header{padding:16px}.profile-section{margin:16px 16px 24px}.container{padding:0 16px}.terminal-card .terminal-body{padding:16px;font-size:0.85rem}.writeup-grid{grid-template-columns:1fr}}.view-all-wrap{display:flex;justify-content:center;margin-top:40px}.btn-view-all{padding:12px 28px;gap:10px;font-size:0.95rem;border-color:var(--accent-teal);box-shadow:0 6px 0 var(--accent-teal);color:var(--accent-teal)}.btn-view-all .view-all-count{background:var(--accent-teal);color:var(--bg-main);font-size:0.75rem;font-weight:700;padding:2px 8px;border-radius:999px;font-family:"Fira Code","Courier New",Courier,monospace}.btn-view-all:hover{color:var(--accent-teal);box-shadow:0 10px 0 var(--accent-teal)}.btn-view-all:hover .view-all-count{background:var(--accent-main)}.btn-view-all:active{box-shadow:0 0 0 var(--accent-teal)}.allposts-header{margin:8px 0 24px}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:24px;border-bottom:2px solid var(--border-color)}.filter-btn{background:var(--card-bg);border:3px solid var(--border-color);border-radius:999px;padding:7px 16px;font-family:"Quicksand",sans-serif;font-weight:700;font-size:0.85rem;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:all 0.15s;box-shadow:0 4px 0 var(--btn-timbul-shadow)}.filter-btn .filter-count{background:var(--border-color);color:var(--text-muted);font-size:0.72rem;padding:1px 7px;border-radius:999px;font-family:"Fira Code","Courier New",Courier,monospace;transition:background 0.15s, color 0.15s}.filter-btn:hover{border-color:var(--accent-teal);color:var(--accent-teal);box-shadow:0 6px 0 var(--accent-teal);transform:translateY(-2px)}.filter-btn:hover .filter-count{background:var(--accent-teal);color:var(--bg-main)}.filter-btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--accent-teal)}.filter-btn.active{border-color:var(--accent-teal);color:var(--accent-teal);box-shadow:0 4px 0 var(--accent-teal)}.filter-btn.active .filter-count{background:var(--accent-teal);color:var(--bg-main)}.filter-btn.filter-pwn.active{border-color:var(--accent-orange);color:var(--accent-orange);box-shadow:0 4px 0 var(--accent-orange)}.filter-btn.filter-pwn.active .filter-count{background:var(--accent-orange);color:#fff}.filter-btn.filter-web.active{border-color:var(--accent-teal);color:var(--accent-teal);box-shadow:0 4px 0 var(--accent-teal)}.filter-btn.filter-web.active .filter-count{background:var(--accent-teal);color:var(--bg-main)}.filter-btn.filter-rev.active{border-color:var(--accent-lime);color:var(--accent-lime);box-shadow:0 4px 0 var(--accent-lime)}.filter-btn.filter-rev.active .filter-count{background:var(--accent-lime);color:#111}.filter-btn.filter-misc.active{border-color:var(--accent-main);color:var(--accent-main);box-shadow:0 4px 0 var(--accent-main)}.filter-btn.filter-misc.active .filter-count{background:var(--accent-main);color:#111}.filter-btn.filter-crypto.active{border-color:#8b5cf6;color:#8b5cf6;box-shadow:0 4px 0 #8b5cf6}.filter-btn.filter-crypto.active .filter-count{background:#8b5cf6;color:#fff}.filter-btn.filter-forensics.active{border-color:#ec4899;color:#ec4899;box-shadow:0 4px 0 #ec4899}.filter-btn.filter-forensics.active .filter-count{background:#ec4899;color:#fff}.filter-btn.filter-combined.active{border-color:var(--accent-combined);color:var(--accent-combined);box-shadow:0 4px 0 var(--accent-combined)}.filter-btn.filter-combined.active .filter-count{background:var(--accent-combined);color:#fff}
