﻿*,*::before,*::after{box-sizing:border-box}html{font-size:16px;line-height:1.7}body{margin:0;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#1a1a1a;background:#f5f0e8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.container{max-width:48rem;margin:0 auto;padding:0 1.5rem}.container.layout-with-sidebar{max-width:64rem;display:grid;grid-template-columns:1fr 220px;gap:3rem}@media (max-width: 800px){.container.layout-with-sidebar{grid-template-columns:1fr;gap:2rem}}.main-content{min-width:0;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.post,.post-list,.taxonomy-single{max-width:100%;overflow:hidden}.lava-lamp{width:80px;height:160px;margin:0 auto 1.5rem;position:relative}.lava-lamp::before,.lava-lamp::after{position:absolute;opacity:0;visibility:hidden;transition:opacity .15s ease-out,visibility .15s ease-out}.lava-lamp::before{content:"Let me brighten your day";top:-45px;left:50%;transform:translateX(-50%);background:#fff;color:#333;padding:8px 12px;border-radius:16px;font-size:.8rem;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.lava-lamp::after{content:"● ● ●";top:-12px;left:50%;transform:translateX(-50%);font-size:6px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.2);letter-spacing:3px;z-index:10}.lava-lamp:hover::before,.lava-lamp:hover::after{opacity:1;visibility:visible}.lamp-cap{position:absolute;top:0;left:50%;transform:translateX(-50%);width:20px;height:15px;background:linear-gradient(180deg, #d4af37, #b8860b, #8b6914);border-radius:6px 6px 2px 2px;z-index:4;box-shadow:0 2px 4px rgba(0,0,0,.3)}.lamp-cap::before{content:"";position:absolute;top:2px;left:50%;transform:translateX(-50%);width:8px;height:4px;background:linear-gradient(180deg, gold, #daa520);border-radius:2px}.lava-lamp-globe{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:45px;height:110px;background:linear-gradient(180deg, rgba(120,80,20,.5) 0%, rgba(150,110,40,.35) 30%, rgba(180,140,60,.25) 50%, rgba(150,110,40,.35) 70%, rgba(120,80,20,.5) 100%);border-radius:40% 40% 48% 48%/25% 25% 45% 45%;overflow:hidden;z-index:2;box-shadow:inset 0 0 15px rgba(80,50,0,.2),0 0 30px rgba(255,180,80,.5),0 0 60px rgba(255,150,50,.3)}.lava-lamp-globe .globe-shine{position:absolute;top:15px;left:3px;width:12px;height:60px;background:linear-gradient(180deg, rgba(255,255,255,.15) 10%, rgba(255,255,255,.05) 50%, rgba(0,0,0,0) 100%);border-radius:50%;z-index:10}.lava-lamp-globe .blob{position:absolute;border-radius:50%;filter:blur(1px);z-index:5}.lava-lamp-globe .blob-1{width:20px;height:20px;background:radial-gradient(ellipse at 40% 40%, #ff9060 0%, #ff5520 50%, #c03000 100%);left:10px;animation:lava-1 9s ease-in-out infinite}.lava-lamp-globe .blob-2{width:14px;height:18px;background:radial-gradient(ellipse at 40% 40%, #ffc060 0%, #ffa000 50%, #e07000 100%);left:18px;animation:lava-2 7s ease-in-out infinite}.lava-lamp-globe .blob-3{width:16px;height:16px;background:radial-gradient(ellipse at 40% 40%, #ff7860 0%, #f04020 50%, #b01000 100%);left:8px;animation:lava-3 11s ease-in-out infinite}.lava-lamp-globe .blob-4{width:10px;height:12px;background:radial-gradient(ellipse at 40% 40%, #ffb090 0%, #ff6840 50%, #c04020 100%);left:22px;animation:lava-4 8s ease-in-out infinite}.lava-lamp-globe .blob-5{width:12px;height:10px;background:radial-gradient(ellipse at 40% 40%, #ffa080 0%, #e06030 50%, #a04020 100%);left:14px;animation:lava-5 13s ease-in-out infinite}.lava-lamp-globe .lava-pool{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:35px;height:15px;background:radial-gradient(ellipse at 50% 80%, #ff6b35 0%, #c2410c 40%, #8b2500 70%, #4a1508 100%);border-radius:50% 50% 45% 45%;animation:pool-pulse 4s ease-in-out infinite;box-shadow:0 0 15px rgba(255,100,50,.5)}.lamp-base{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:65px;height:30px;background:linear-gradient(180deg, #d4af37, #b8860b, #8b6914, #6b5210);border-radius:5px 5px 12px 12px;z-index:3;box-shadow:0 4px 8px rgba(0,0,0,.4)}.lamp-base::before{content:"";position:absolute;top:3px;left:50%;transform:translateX(-50%);width:55px;height:6px;background:linear-gradient(90deg, #5a4510, #8b7320, #5a4510);border-radius:2px}.lamp-base::after{content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:48px;height:14px;background:linear-gradient(180deg, #c9a030, #b8960b, #a07810);border-radius:4px 4px 0 0;z-index:1}.lamp-base .base-glow{position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:40px;height:10px;background:radial-gradient(ellipse, rgba(255,150,50,.6) 0%, rgba(255,100,30,.3) 50%, rgba(0,0,0,0) 70%);border-radius:50%;animation:glow-pulse 3s ease-in-out infinite}@keyframes lava-1{0%, 100%{bottom:8px;transform:scale(1, 1) rotate(0deg);border-radius:50%}15%{bottom:25px;transform:scale(1.2, .8) rotate(5deg);border-radius:45% 55% 50% 50%}30%{bottom:50px;transform:scale(.85, 1.3) rotate(-3deg);border-radius:50% 50% 45% 55%}50%{bottom:80px;transform:scale(.9, 1.2) rotate(0deg);border-radius:48% 52% 50% 50%}70%{bottom:55px;transform:scale(1.1, .9) rotate(4deg);border-radius:52% 48% 50% 50%}85%{bottom:25px;transform:scale(1.15, .85) rotate(-2deg);border-radius:50% 50% 52% 48%}}@keyframes lava-2{0%, 100%{bottom:10px;transform:scale(1) rotate(0deg);border-radius:50%}25%{bottom:40px;transform:scale(.8, 1.25) rotate(-8deg);border-radius:45% 55% 50% 50%}50%{bottom:70px;transform:scale(1.1, .9) rotate(5deg);border-radius:50% 50% 45% 55%}75%{bottom:35px;transform:scale(.9, 1.15) rotate(-3deg);border-radius:52% 48% 48% 52%}}@keyframes lava-3{0%, 100%{bottom:5px;transform:scale(1) rotate(0deg)}20%{bottom:30px;transform:scale(1.15, .85) rotate(10deg)}40%{bottom:65px;transform:scale(.8, 1.3) rotate(-5deg)}55%{bottom:85px;transform:scale(.95, 1.1) rotate(3deg)}75%{bottom:50px;transform:scale(1.1, .9) rotate(-8deg)}90%{bottom:20px;transform:scale(1.05, .95) rotate(5deg)}}@keyframes lava-4{0%, 100%{bottom:12px;transform:scale(1) rotate(0deg)}30%{bottom:45px;transform:scale(.85, 1.2) rotate(-6deg)}60%{bottom:75px;transform:scale(1.1, .85) rotate(8deg)}80%{bottom:30px;transform:scale(.95, 1.1) rotate(-4deg)}}@keyframes lava-5{0%, 100%{bottom:6px;transform:scale(1) rotate(0deg)}25%{bottom:35px;transform:scale(1.2, .8) rotate(12deg)}45%{bottom:60px;transform:scale(.75, 1.35) rotate(-8deg)}65%{bottom:80px;transform:scale(1, 1) rotate(5deg)}85%{bottom:40px;transform:scale(1.1, .9) rotate(-10deg)}}@keyframes pool-pulse{0%, 100%{transform:translateX(-50%) scale(1);opacity:1}50%{transform:translateX(-50%) scale(1.05, .95);opacity:.9}}@keyframes glow-pulse{0%, 100%{opacity:.6;transform:translateX(-50%) scale(1)}50%{opacity:.9;transform:translateX(-50%) scale(1.1)}}.reel-to-reel{margin-top:2rem;padding-bottom:15px;position:relative}.reel-to-reel::before,.reel-to-reel::after{position:absolute;left:50%;opacity:0;visibility:hidden;transition:opacity .15s ease-out,visibility .15s ease-out}.reel-to-reel::before{content:"Keep dancing!";top:20px;transform:translateX(-50%);background:#fff;color:#333;padding:8px 12px;border-radius:8px;font-size:.85rem;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.reel-to-reel::after{content:"";top:48px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg);z-index:9}.reel-to-reel:hover::before,.reel-to-reel:hover::after{opacity:1;visibility:visible}.deck-plate{width:230px;margin:0 auto;background:repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0px, rgba(255,255,255,.02) 1px, rgba(0,0,0,0) 1px, rgba(0,0,0,0) 3px),linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 50%, #2a2a2a 100%);border-radius:8px;padding:10px 10px 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),inset 0 -1px 0 rgba(0,0,0,.3),0 9px 13px -5px rgba(0,0,0,.9);border:1px solid #4a4a4a}.reel-label{font-size:.5rem;letter-spacing:.15em;color:#c2410c;text-align:center;margin-bottom:8px;font-weight:700;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.5)}.reels-row{display:flex;justify-content:space-between;padding:0;margin:0 -5px;position:relative;z-index:2}.reel{width:100px;height:100px;position:relative;animation:spin-reel 4s linear infinite}.reel.reel-right{animation-duration:3s}.reel .tape-wound{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);border-radius:50%;background:repeating-radial-gradient(circle at center, #2a1810 0px, #1a0a05 1px, #3a2015 2px, #2a1810 3px);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}.reel .tape-wound.wound-full{width:90px;height:90px}.reel .tape-wound.wound-partial{width:50px;height:50px}.reel .reel-flange{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:98px;height:98px;border:2px solid;border-color:silver #a0a0a0 #909090 #b0b0b0;border-radius:50%;background:linear-gradient(145deg, rgba(200,200,200,.1), rgba(0,0,0,0));box-shadow:inset 0 0 10px rgba(0,0,0,.2),0 0 3px rgba(255,255,255,.1)}.reel .reel-hub{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:26px;height:26px;background:linear-gradient(145deg, #d0d0d0, gray);border-radius:50%;box-shadow:inset 0 1px 2px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.4);z-index:3}.reel .reel-hub::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:8px;height:8px;background:linear-gradient(145deg, #555, #333);border-radius:50%}.reel .reel-spoke{position:absolute;top:50%;left:50%;width:3px;height:45px;background:linear-gradient(90deg, #a0a0a0, #d0d0d0, #a0a0a0);transform-origin:center top;transform:translate(-50%, 0);z-index:3;border-radius:1px}.reel .reel-spoke.spoke-2{transform:translate(-50%, 0) rotate(120deg)}.reel .reel-spoke.spoke-3{transform:translate(-50%, 0) rotate(240deg)}.tape-area{position:relative;height:45px;margin:0 0;display:flex;justify-content:center;align-items:flex-start;padding-top:5px}.tape-area .tape-line{position:absolute;height:2px;z-index:1;background:linear-gradient(180deg, #3a2015, #1a0a05, #2a1810)}.tape-area .tape-line.tape-left{top:-42px;left:-3px;width:58px;transform:rotate(69deg);transform-origin:left center}.tape-area .tape-line.tape-right{top:-40px;right:22px;width:55px;transform:rotate(-95deg);transform-origin:right center}.tape-area::before,.tape-area::after{content:"";position:absolute;top:17px;height:2px;width:55px;background:linear-gradient(180deg, #3a2015, #1a0a05, #2a1810)}.tape-area::before{left:24px}.tape-area::after{right:24px}.tape-area .guide{position:absolute;width:10px;height:10px;background:linear-gradient(145deg, #d0d0d0, #909090);border-radius:50%;box-shadow:inset 0 1px 1px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.4);z-index:3}.tape-area .guide.guide-left{left:18px;top:13px}.tape-area .guide.guide-right{right:18px;top:13px}.tape-area .head-block{display:flex;justify-content:center;gap:4px;padding:6px 10px;margin-top:5px;background:linear-gradient(180deg, #2a2a2a, #1a1a1a);border-radius:3px;box-shadow:inset 0 1px 2px rgba(0,0,0,.5),0 1px 1px rgba(255,255,255,.05);z-index:1}.tape-area .head-block .head{width:4px;height:7px;background:linear-gradient(180deg, #f0d080, #d4af37, #8b6914);border-radius:1px;box-shadow:0 1px 1px rgba(0,0,0,.3)}.control-panel{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;margin-top:5px;background:linear-gradient(180deg, #2a2a2a, #1a1a1a);border-radius:4px}.control-panel .vu-meter{width:45px;height:26px;background:linear-gradient(180deg, #f8f4ec, #e8e0d0);border-radius:3px;position:relative;overflow:hidden;box-shadow:inset 0 0 3px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.3)}.control-panel .vu-meter .vu-scale{position:absolute;top:2px;left:2px;right:2px;height:10px;background:linear-gradient(90deg, #22c55e 0%, #22c55e 50%, #eab308 50%, #eab308 75%, #ef4444 75%, #ef4444 100%);border-radius:2px;opacity:.25}.control-panel .vu-meter .vu-needle{position:absolute;bottom:2px;left:50%;width:1px;height:18px;background:#1a1a1a;transform-origin:bottom center;animation:needle-swing 1.8s linear infinite}.control-panel .vu-meter .vu-needle::after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:#333;border-radius:50%}.controls{display:flex;justify-content:flex-end;gap:3px}.controls .ctrl-btn{padding:4px 5px;border:1px solid #555;border-radius:2px;background:linear-gradient(180deg, #fafafa 0%, #f0f0f0 5%, #e0e0e0 15%, #c8c8c8 50%, #b0b0b0 85%, #909090 100%);color:#1a1a1a;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:.4rem;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:inset 0 1px 1px rgba(255,255,255,.9),inset 0 -1px 1px rgba(0,0,0,.15),0 2px 3px rgba(0,0,0,.4),0 1px 1px rgba(0,0,0,.2);text-shadow:0 1px 0 rgba(255,255,255,.6)}.controls .ctrl-btn:hover{background:linear-gradient(180deg, #fff 0%, #f8f8f8 5%, #e8e8e8 15%, #d0d0d0 50%, #b8b8b8 85%, #989898 100%)}.controls .ctrl-btn:active{background:linear-gradient(180deg, #b0b0b0 0%, silver 50%, #d0d0d0 100%);box-shadow:inset 0 2px 3px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.2);transform:translateY(1px)}.controls .ctrl-btn.active{background:linear-gradient(180deg, #a8a8a8 0%, #b8b8b8 50%, #c8c8c8 100%);box-shadow:inset 0 2px 3px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.2);transform:translateY(1px)}@keyframes spin-reel{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes needle-swing{0%{transform:rotate(-20deg)}8%{transform:rotate(15deg)}15%{transform:rotate(5deg)}22%{transform:rotate(22deg)}30%{transform:rotate(10deg)}38%{transform:rotate(-5deg)}45%{transform:rotate(18deg)}55%{transform:rotate(0deg)}62%{transform:rotate(25deg)}70%{transform:rotate(8deg)}78%{transform:rotate(-10deg)}85%{transform:rotate(12deg)}92%{transform:rotate(-15deg)}100%{transform:rotate(-20deg)}}.sidebar{position:sticky;top:1.5rem;align-self:start;max-height:calc(100vh - 3rem);overflow-y:auto;overflow-x:hidden;margin:0 -15px;padding:0 15px}@media (max-width: 800px){.sidebar{position:static;padding-top:2rem;border-top:1px solid #d4c4a8;max-height:none}}.sidebar .sidebar-portrait{display:block;position:relative;margin:0 auto 1.5rem;padding:8px;background:linear-gradient(145deg, #f5f0e6 0%, #e8e0d0 100%);border:10px solid;border-image:linear-gradient(135deg, #6b4423 0%, #a67c52 12%, #8b5a2b 25%, #d2a679 40%, #8b5a2b 55%, #6b4423 70%, #a67c52 85%, #6b4423 100%) 1;box-shadow:inset 0 0 0 2px #5a3d1a,3px 4px 8px rgba(0,0,0,.3),6px 8px 16px rgba(0,0,0,.15);transform:rotate(-2deg);transition:transform .2s ease;max-width:140px}.sidebar .sidebar-portrait:hover{transform:rotate(0deg) scale(1.02)}.sidebar .sidebar-portrait img{display:block;width:100%;transition:opacity .4s ease}.sidebar .sidebar-portrait .portrait-normal{filter:sepia(12%) saturate(95%) contrast(98%) brightness(102%)}.sidebar .sidebar-portrait .portrait-hover{position:absolute;top:8px;left:8px;right:8px;bottom:8px;width:calc(100% - 16px);opacity:0}.sidebar .sidebar-portrait:hover .portrait-normal{opacity:0}.sidebar .sidebar-portrait:hover .portrait-hover{opacity:1}.sidebar .sidebar-section{margin-bottom:1.5rem;padding:1rem;background:linear-gradient(135deg, #faf8f5 0%, #f5f2ec 100%);border:8px solid;border-image:linear-gradient(135deg, #8b5a2b 0%, #d2a679 15%, #a67c52 30%, #8b5a2b 50%, #6b4423 70%, #a67c52 85%, #8b5a2b 100%) 1;box-shadow:inset 0 0 0 2px #5a3d1a,2px 4px 8px rgba(0,0,0,.3),4px 8px 16px rgba(0,0,0,.15);position:relative}.sidebar .sidebar-section::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:3px solid #e8e4dc;pointer-events:none}.sidebar .sidebar-section h4{margin:0 0 .75rem;font-size:.75rem;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#5a4a3a;font-weight:600;text-align:center;border-bottom:1px solid #d4cec4;padding-bottom:.5rem}.sidebar .sidebar-section ul{list-style:none;padding:0;margin:0}.sidebar .sidebar-section ul li{margin-bottom:.5rem}.sidebar .sidebar-section ul a{font-size:.85rem;color:#4a3a2a}.sidebar .sidebar-section ul a:hover{color:#c2410c}.sidebar .sidebar-section .projects-list li{margin-bottom:.75rem}.sidebar .sidebar-section .projects-list .project-desc{display:block;font-size:.75rem;color:#6a5a4a;margin-top:.1rem}h1,h2,h3,h4,h5,h6{font-family:"Merriweather",Georgia,serif;font-weight:700;line-height:1.3;margin-top:2rem;margin-bottom:1rem}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}p{margin:0 0 1.5rem}a{color:#c2410c;text-decoration:none}a:hover{color:#9a3412;text-decoration:underline}.site-header{position:relative;padding:1.5rem 0;border-bottom:4px solid;border-image:linear-gradient(90deg, #5c4033, #8b6914, sienna, #8b4513, #5c4033) 1;margin-bottom:2rem;background:linear-gradient(180deg, rgba(139,115,85,.08) 0%, rgba(0,0,0,0) 100%)}.site-header .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.site-title{font-family:"Merriweather",Georgia,serif;font-size:1.5rem;font-weight:700;color:#1a1a1a}.site-title:hover{text-decoration:none;color:#c2410c}.bookshelf{display:flex;flex-direction:column;align-items:center}.shelf{display:flex;align-items:flex-end;gap:3px;padding:0 12px}.book{width:26px;height:85px;border-radius:2px 3px 3px 2px;box-shadow:inset -3px 0 5px rgba(0,0,0,.3),2px 2px 4px rgba(0,0,0,.25);position:relative;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s ease;background:linear-gradient(90deg, #8b4513 0%, sienna 50%, #8b4513 100%)}.book:hover{transform:translateY(-5px);text-decoration:none}.book::before{content:"";position:absolute;left:3px;top:8%;bottom:8%;width:1px;background:rgba(255,255,255,.2)}.book .spine-text{writing-mode:vertical-rl;text-orientation:mixed;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.95);text-shadow:0 1px 2px rgba(0,0,0,.5);padding:6px 0;overflow:hidden;white-space:nowrap}.book[data-tag=dsp]{width:22px;height:70px;background:linear-gradient(90deg, #991b1b 0%, #b91c1c 50%, #991b1b 100%)}.book[data-tag=debugging]{width:30px;height:90px;background:linear-gradient(90deg, #6b2010 0%, #7c2d12 50%, #6b2010 100%);transform:rotate(-2deg);transform-origin:bottom center}.book[data-tag=drivers]{width:24px;height:82px;background:linear-gradient(90deg, #7a2a0e 0%, #9a3412 50%, #7a2a0e 100%)}.book[data-tag=howto]{width:28px;height:78px;background:linear-gradient(90deg, #2f500e 0%, #3f6212 50%, #2f500e 100%);transform:rotate(3deg);transform-origin:bottom center}.book[data-tag=jittertrap]{width:26px;height:92px;background:linear-gradient(90deg, #9a350a 0%, #c2410c 50%, #9a350a 100%)}.book[data-tag=mcr]{width:20px;height:72px;background:linear-gradient(90deg, #72320b 0%, #92400e 50%, #72320b 100%);transform:rotate(-4deg);transform-origin:bottom center}.book[data-tag=measurement]{width:32px;height:100px;background:linear-gradient(90deg, #0c5f58 0%, #0f766e 50%, #0c5f58 100%)}.book[data-tag=multicast]{width:27px;height:94px;background:linear-gradient(90deg, #3d620c 0%, #4d7c0f 50%, #3d620c 100%);transform:rotate(2deg);transform-origin:bottom center}.book[data-tag=netlink]{width:24px;height:84px;background:linear-gradient(90deg, #4a3860 0%, #5c4178 50%, #4a3860 100%);transform:rotate(-1deg);transform-origin:bottom center}.book[data-tag=nftables]{width:26px;height:88px;background:linear-gradient(90deg, #3d2314 0%, #5c3a21 50%, #3d2314 100%);transform:rotate(2deg);transform-origin:bottom center}.book[data-tag=tn40xx]{width:23px;height:76px;background:linear-gradient(90deg, #525e2e 0%, #65743a 50%, #525e2e 100%);transform:rotate(-3deg);transform-origin:bottom center}.book[data-tag=routing]{width:25px;height:80px;background:linear-gradient(90deg, #815005 0%, #a16207 50%, #815005 100%)}.book[data-tag=testing]{width:29px;height:78px;background:linear-gradient(90deg, #a27003 0%, #ca8a04 50%, #a27003 100%)}.book[data-tag=testing] .spine-text{color:rgba(30,25,10,.95);text-shadow:0 1px 1px rgba(255,255,255,.3)}.bookend{width:12px;height:70px;background:linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%);border-radius:0 4px 4px 0;margin-left:5px;box-shadow:2px 2px 5px rgba(0,0,0,.3)}.shelf-board{width:100%;height:12px;background:linear-gradient(180deg, #8b5a2b 0%, #a67c52 15%, #8b5a2b 50%, #6b4423 85%, #5a3d1a 100%);border-radius:0 0 4px 4px;box-shadow:0 4px 8px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.15);margin-top:-1px}.macrame-hanger{position:absolute;left:30px;top:100%;width:80px;height:180px;z-index:100}@media (max-width: 1200px){.macrame-hanger{display:none}}.macrame-hanger::before,.macrame-hanger::after{position:absolute;opacity:0;visibility:hidden;transition:opacity .15s ease-out,visibility .15s ease-out}.macrame-hanger::before{content:"Hanging in there!";top:60px;left:90px;background:#fff;color:#333;padding:8px 12px;border-radius:8px;font-size:.85rem;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.macrame-hanger::after{content:"";top:68px;left:84px;width:12px;height:12px;background:#fff;transform:rotate(45deg);z-index:9}.macrame-hanger:hover::before,.macrame-hanger:hover::after{opacity:1;visibility:visible}.macrame-hook{position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:14px;height:14px;border:4px solid #8b7355;border-bottom:none;border-radius:50% 50% 0 0;box-shadow:0 2px 3px rgba(0,0,0,.2)}.macrame-cord{position:absolute;width:3px;height:25px;background:linear-gradient(180deg, #d4c4a8, #c4b494, #d4c4a8);top:10px}.macrame-cord.cord-1{left:calc(50% - 4px)}.macrame-cord.cord-2{left:calc(50% + 1px)}.macrame-knot{position:absolute;left:50%;transform:translateX(-50%);width:14px;height:8px;background:radial-gradient(ellipse, #c4b494, #a89878);border-radius:40%}.macrame-knot.knot-top{top:32px}.macrame-knot.knot-mid{top:58px}.macrame-weave{position:absolute;top:38px;left:50%;transform:translateX(-50%);width:20px;height:22px;background:repeating-linear-gradient(45deg, rgba(0,0,0,0), rgba(0,0,0,0) 2px, #c4b494 2px, #c4b494 4px),repeating-linear-gradient(-45deg, rgba(0,0,0,0), rgba(0,0,0,0) 2px, #d4c4a8 2px, #d4c4a8 4px);border-radius:2px}.macrame-basket{position:absolute;top:58px;left:50%;transform:translateX(-50%);width:50px;height:55px}.macrame-basket .basket-strand{position:absolute;width:3px;background:linear-gradient(180deg, #c4b494, #b4a484);border-radius:1px}.macrame-basket .basket-strand.strand-1{left:15px;height:50px;transform:rotate(12deg);transform-origin:top center}.macrame-basket .basket-strand.strand-2{left:20px;height:45px;transform:rotate(3deg);transform-origin:top center}.macrame-basket .basket-strand.strand-3{right:20px;height:45px;transform:rotate(-3deg);transform-origin:top center}.macrame-basket .basket-strand.strand-4{right:15px;height:50px;transform:rotate(-12deg);transform-origin:top center}.plant{position:absolute;top:82px;left:50%;transform:translateX(-50%);width:50px;height:80px;z-index:2}.leaf{position:absolute;top:0;width:1px;background:linear-gradient(180deg, #6a8a5a, #5a7a4a);display:flex;flex-direction:column;align-items:center;transform-origin:top center}.leaf.leaf-1{left:5px;height:44px;transform:rotate(0deg);padding-top:2px;gap:10px}.leaf.leaf-2{left:8px;height:56px;transform:rotate(-3deg);padding-top:12px;gap:8px}.leaf.leaf-3{left:16px;height:48px;transform:rotate(-2deg);padding-top:4px;gap:12px}.leaf.leaf-4{left:25px;height:60px;transform:rotate(0deg);padding-top:8px;gap:9px}.leaf.leaf-5{left:32px;height:50px;transform:rotate(3deg);padding-top:1px;gap:11px}.leaf.leaf-6{left:36px;height:42px;transform:rotate(0deg);padding-top:10px;gap:10px}.leaf.leaf-7{left:40px;height:46px;transform:rotate(-1deg);padding-top:5px;gap:9px}.pearl{width:5px;height:5px;background:radial-gradient(circle at 30% 30%, #a0d890, #80c870, #60a850);border-radius:50%;box-shadow:inset -1px -1px 1px rgba(0,0,0,.15);flex-shrink:0}.pearl:nth-child(odd){width:6px;height:6px}.plant-pot{position:absolute;top:85px;left:50%;transform:translateX(-50%);width:40px;height:35px;background:linear-gradient(180deg, #c2956e, #a67850, #8b5a3c);border-radius:3px 3px 8px 8px;clip-path:polygon(5% 0%, 95% 0%, 85% 100%, 15% 100%);z-index:1}.plant-pot .pot-rim{position:absolute;top:-4px;left:-3px;right:-3px;height:6px;background:linear-gradient(180deg, #d4a878, #c2956e);border-radius:2px}.macrame-fringe{position:absolute;top:118px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.macrame-fringe .fringe-strand{width:2px;height:20px;background:linear-gradient(180deg, #c4b494, #d4c4a8);border-radius:0 0 1px 1px}.macrame-fringe .fringe-strand:nth-child(1){height:18px}.macrame-fringe .fringe-strand:nth-child(2){height:22px}.macrame-fringe .fringe-strand:nth-child(3){height:25px}.macrame-fringe .fringe-strand:nth-child(4){height:21px}.macrame-fringe .fringe-strand:nth-child(5){height:17px}.static-page img{display:block;max-width:280px;margin:2rem auto;padding:10px;background:linear-gradient(145deg, #f5f0e6 0%, #e8e0d0 100%);border:10px solid;border-image:linear-gradient(135deg, #6b4423 0%, #a67c52 12%, #8b5a2b 25%, #d2a679 40%, #8b5a2b 55%, #6b4423 70%, #a67c52 85%, #6b4423 100%) 1;box-shadow:inset 0 0 0 2px #5a3d1a,3px 5px 10px rgba(0,0,0,.3),6px 10px 20px rgba(0,0,0,.15);filter:sepia(10%) saturate(95%) contrast(98%) brightness(102%);transition:all .3s ease}.static-page img:hover{filter:sepia(0%) saturate(100%) contrast(100%) brightness(100%);transform:scale(1.02)}.static-page img:nth-of-type(1){transform:rotate(-2deg)}.static-page img:nth-of-type(1):hover{transform:rotate(0deg) scale(1.02)}.static-page img:nth-of-type(2){transform:rotate(1.5deg)}.static-page img:nth-of-type(2):hover{transform:rotate(0deg) scale(1.02)}.site-nav{display:flex;gap:1.5rem}.site-nav a{font-size:.9rem;color:#57534e;font-weight:500}.site-nav a:hover{color:#c2410c;text-decoration:none}.site-main{min-height:60vh;padding-bottom:3rem}.post-list{display:flex;flex-direction:column;gap:2.5rem}.post-entry{padding-bottom:2rem;border-bottom:1px solid #d4c4a8}.post-entry:last-child{border-bottom:none}.post-entry header h2{margin-top:0;margin-bottom:.5rem;font-size:1.4rem}.post-entry header h2 a{color:#1a1a1a}.post-entry header h2 a:hover{color:#c2410c;text-decoration:none}.post-entry .post-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.post-entry .post-tags .tag{display:inline-block;padding:.15rem .5rem;border-radius:3px;font-size:.75rem;text-decoration:none;color:#fff;background:#78716c}.post-entry .post-tags .tag[data-tag=jittertrap]{background:#c2410c}.post-entry .post-tags .tag[data-tag=tn40xx]{background:#65743a}.post-entry .post-tags .tag[data-tag=mcr]{background:#92400e}.post-entry .post-tags .tag[data-tag=qos]{background:#b45309}.post-entry .post-tags .tag[data-tag=multicast]{background:#4d7c0f}.post-entry .post-tags .tag[data-tag=netlink]{background:#5c4178}.post-entry .post-tags .tag[data-tag=nftables]{background:#5c3a21}.post-entry .post-tags .tag[data-tag=routing]{background:#a16207;color:#fff}.post-entry .post-tags .tag[data-tag=drivers]{background:#9a3412}.post-entry .post-tags .tag[data-tag=dsp]{background:#b91c1c}.post-entry .post-tags .tag[data-tag=debugging]{background:#7c2d12}.post-entry .post-tags .tag[data-tag=howto]{background:#3f6212}.post-entry .post-tags .tag[data-tag=testing]{background:#ca8a04;color:#1a1a1a}.post-entry .post-tags .tag[data-tag=measurement]{background:#0f766e}.post-entry .post-tags .tag:hover{opacity:.85;text-decoration:none}.post-entry .post-summary{margin:1rem 0;color:#1a1a1a;line-height:1.6}.post-entry .read-more{font-size:.9rem;font-weight:500}.post-meta{font-size:.85rem;color:#57534e;margin-bottom:.5rem;display:flex;flex-wrap:wrap;gap:.75rem}.post-meta time,.post-meta .category,.post-meta .updated,.post-meta .reading-time{white-space:nowrap}.post-meta .reading-time::before{content:"·";margin-right:.75rem}.post-meta .category a{color:#57534e}.post-meta .category a:hover{color:#c2410c}.post .post-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #d4c4a8}.post .post-header h1{margin-top:0;margin-bottom:.5rem}.post .post-header .subtitle{font-size:1.2rem;color:#57534e;margin-bottom:1rem}.post .post-content{overflow-x:auto}.post .post-content h2,.post .post-content h3,.post .post-content h4{margin-top:2.5rem}.post .post-content img{max-width:100% !important;height:auto !important;display:block;margin:1.5rem auto}.post .post-content div{max-width:100%}.post .post-content blockquote{margin:1.5rem 0;padding:.75rem 1.5rem;border-left:4px solid #c2410c;background:#fef3e2;color:#1a1a1a;font-style:italic}.post .post-content blockquote p:last-child{margin-bottom:0}.post .post-content ul,.post .post-content ol{margin:0 0 1.5rem;padding-left:1.5rem}.post .post-content li{margin-bottom:.5rem}.post .post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9rem}.post .post-content table th,.post .post-content table td{padding:.75rem;border:1px solid #d4c4a8;text-align:left}.post .post-content table th{background:#faf6f0;font-weight:600}.post .post-content hr{border:none;border-top:1px solid #d4c4a8;margin:2rem 0}.post .post-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #d4c4a8}.post .post-footer .tags{display:flex;flex-wrap:wrap;gap:.5rem}.post .post-footer .tags .tag{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;text-decoration:none;color:#fff;background:#78716c}.post .post-footer .tags .tag[data-tag=jittertrap]{background:#c2410c}.post .post-footer .tags .tag[data-tag=tn40xx]{background:#65743a}.post .post-footer .tags .tag[data-tag=mcr]{background:#92400e}.post .post-footer .tags .tag[data-tag=qos]{background:#b45309}.post .post-footer .tags .tag[data-tag=multicast]{background:#4d7c0f}.post .post-footer .tags .tag[data-tag=netlink]{background:#5c4178}.post .post-footer .tags .tag[data-tag=nftables]{background:#5c3a21}.post .post-footer .tags .tag[data-tag=routing]{background:#a16207;color:#fff}.post .post-footer .tags .tag[data-tag=drivers]{background:#9a3412}.post .post-footer .tags .tag[data-tag=dsp]{background:#b91c1c}.post .post-footer .tags .tag[data-tag=debugging]{background:#7c2d12}.post .post-footer .tags .tag[data-tag=howto]{background:#3f6212}.post .post-footer .tags .tag[data-tag=testing]{background:#ca8a04;color:#1a1a1a}.post .post-footer .tags .tag[data-tag=measurement]{background:#0f766e}.post .post-footer .tags .tag:hover{opacity:.85;text-decoration:none}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #d4c4a8}@media (max-width: 600px){.post-nav{grid-template-columns:1fr}}.post-nav .post-nav-link{display:flex;flex-direction:column;padding:1rem;background:#faf6f0;border-radius:6px;text-decoration:none;transition:background-color .15s ease}.post-nav .post-nav-link:hover{background:#f6efe5;text-decoration:none}.post-nav .post-nav-link.next{text-align:right}.post-nav .post-nav-link.empty{visibility:hidden}.post-nav .post-nav-link .nav-label{font-size:.8rem;color:#57534e;margin-bottom:.25rem}.post-nav .post-nav-link .nav-title{font-size:.95rem;font-weight:500;color:#c2410c}code{font-family:"JetBrains Mono","Fira Code",monospace;font-size:.88em;background:#faf6f0;border:1px solid #d4c4a8;padding:.15rem .4rem;border-radius:3px}pre{background:#faf6f0;border:1px solid #d4c4a8;padding:1rem 1.25rem;overflow-x:auto;border-radius:6px;margin:1.5rem 0;line-height:1.5}pre code{background:none;border:none;padding:0;font-size:.85rem}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid #d4c4a8}.pagination .page-info{color:#57534e;font-size:.9rem}.pagination .prev,.pagination .next{font-size:.95rem}.pagination .prev.disabled,.pagination .next.disabled{color:#8c867f}.taxonomy-list h1,.taxonomy-single h1{margin-top:0}.taxonomy-items{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1rem}.taxonomy-items li{margin:0}.taxonomy-items .count{color:#57534e;font-size:.9rem}.term-count{color:#57534e;margin-bottom:2rem}.site-footer{padding:1.5rem 0;border-top:4px solid;border-image:linear-gradient(90deg, #5c4033, #8b6914, sienna, #8b4513, #5c4033) 1;margin-top:3rem;background:linear-gradient(0deg, rgba(139,115,85,.08) 0%, rgba(0,0,0,0) 100%)}.site-footer .footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}@media (max-width: 600px){.site-footer .footer-content{flex-direction:column;text-align:center}}.site-footer .footer-left .copyright{font-size:.85rem;color:#57534e;margin:0}.site-footer .footer-right{font-size:.85rem}.site-footer .footer-right a{color:#57534e}.site-footer .footer-right a:hover{color:#c2410c}.site-footer .footer-right .sep{color:#d4c4a8;margin:0 .5rem}.error-page{text-align:center;padding:4rem 0}.error-page h1{font-size:4rem;margin:0 0 1rem;color:#57534e}.error-page p{color:#57534e;margin-bottom:2rem}@media (max-width: 600px){html{font-size:15px}.site-header .container{flex-direction:column;align-items:flex-start}.site-nav{gap:1rem}h1{font-size:1.75rem}h2{font-size:1.35rem}pre{font-size:.8rem;padding:.75rem 1rem}.post-meta{flex-direction:column;gap:.25rem}.post-meta .reading-time::before{display:none}}@media print{.site-header,.site-footer,.pagination,.post-footer,.post-nav,.sidebar{display:none}.container.layout-with-sidebar{display:block}.site-main{padding:0}a{color:inherit;text-decoration:underline}pre{white-space:pre-wrap;word-wrap:break-word}}