@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--bg:#010305;--bg-alt:#04080c;--card-solid:#03060a;--card-solid-alt:#040a0f;--fg:#e7ecf0;--fg-muted:#757b80;--fg-faint:#393e42;--accent:#df9300;--accent-strong:#f3b100;--glass:#ffffff0a;--glass-border:#ffffff14;--radius:20px;--shadow-soft:0 24px 80px #00000057;--shadow-card:0 24px 60px #00000073}@supports (color:lab(0% 0 0)){:root{--bg:lab(.658299% -.283055 -.882271);--bg-alt:lab(1.98602% -.73389 -2.08418);--card-solid:lab(1.56157% -.611983 -1.79467);--card-solid-alt:lab(2.47994% -.957496 -2.78393);--fg:lab(93.0527% -1.31008 -2.6397);--fg-muted:lab(51.2947% -1.61535 -3.28746);--fg-faint:lab(25.7734% -1.58802 -3.27358);--accent:lab(67.1205% 30.1406 144.181);--accent-strong:lab(76.8242% 18.2299 92.4434)}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;position:relative}body{background:radial-gradient(70% 55% at 50% 0%, #d28c0017, transparent 70%), radial-gradient(40% 35% at 84% 18%, #b4500014, transparent 72%), linear-gradient(180deg, #ffffff03, transparent 15%), var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Space Grotesk,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit}button,input,textarea,select{font:inherit}img{max-width:100%;display:block}::selection{color:#fff;background:#d28c0047}.page{width:min(100%,1080px);margin:0 auto;padding:0 32px}.section{padding:88px 0}.divider{background:var(--glass-border);opacity:.6;height:1px}.post-hero-region{background:radial-gradient(52% 34% at 50% 0%, #d28c0014, transparent 72%), linear-gradient(180deg, #ffffff04, transparent 16%), var(--bg);position:relative;overflow:hidden}.post-hero-content{z-index:1;position:relative}.liquid-glass-filter{width:0;height:0;position:absolute;overflow:hidden}.liquid-glass-link{color:inherit;text-decoration:none;display:block}.liquid-glass{isolation:isolate;color:var(--fg);-webkit-backdrop-filter:blur(18px)saturate(1.35);background:linear-gradient(135deg,#ffffff2e,#ffffff0b 46%,#ffffff1a),#080a1047;border:1px solid #ffffff24;border-radius:999px;transition:border-color .28s,box-shadow .28s,transform .28s,background .28s;display:flex;position:relative;overflow:hidden}.liquid-glass-distortion,.liquid-glass-sheen,.liquid-glass-edge{pointer-events:none;border-radius:inherit;position:absolute;inset:0}.liquid-glass-distortion{z-index:0;-webkit-backdrop-filter:blur(4px);filter:url(#glass-distortion);opacity:.58}.liquid-glass-sheen{z-index:1;opacity:.72;background:radial-gradient(circle at 14% 12%,#ffffff42,#0000 30%),linear-gradient(90deg,#ffffff29,#0000 36%,#d28c0014 100%)}.liquid-glass-edge{z-index:2;box-shadow:inset 1px 1px #ffffff7a,inset -1px -1px #ffffff29,inset 0 -18px 36px #ffffff09}.liquid-glass-content{z-index:3;position:relative}.liquid-glass:hover{background:linear-gradient(135deg,#ffffff38,#ffffff0f 44%,#d28c001a),#080a1057;border-color:#fff3}.liquid-glass-dock,.liquid-glass-button{padding:12px}.liquid-glass-dock-icons{justify-content:center;align-items:center;gap:8px;display:flex}.liquid-glass-dock-icon{cursor:pointer;background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:18px;width:64px;height:64px;padding:0;transition:transform .7s cubic-bezier(.175,.885,.32,2.2)}.liquid-glass-dock-icon:hover{transform:scale(1.1)}.liquid-glass-button{padding:18px 34px;font-weight:600}.liquid-glass-demo{background:linear-gradient(#080a1033,#080a1052),url(https://images.unsplash.com/photo-1432251407527-504a6b4174a2?q=80&w=1480&auto=format&fit=crop) 50%/cover;place-items:center;min-height:100vh;animation:60s linear infinite moveBackground;display:grid}.liquid-glass-demo-stack{justify-items:center;gap:24px;display:grid}.nav{z-index:100;pointer-events:none;justify-content:space-between;align-items:center;min-height:82px;padding:16px 48px;display:flex;position:fixed;inset:0 0 auto}.nav:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(#080a1080,#080a1000);position:absolute;inset:0 0 -24px}.nav-logo,.mono-label,.section-label,.hero-badge,.publication-expand,.cta-badge,.tag,.inline-link,.hero-meta span,.footer-inner a{font-family:JetBrains Mono,monospace}.nav-logo{z-index:4;color:var(--accent);letter-spacing:.08em;pointer-events:auto;font-size:.82rem;text-decoration:none;position:relative}.nav-glass{pointer-events:auto;-webkit-backdrop-filter:blur(26px)saturate(1.42);background:linear-gradient(135deg,#ffffff2e,#ffffff0e 42%,#d28c0014),#080a109e;max-width:calc(100vw - 300px);padding:11px 20px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.nav-glass:hover{transform:translate(-50%)translateY(-1px);box-shadow:0 24px 70px #00000057,0 0 36px #d28c0014!important}.nav-glass-content{width:100%}.nav-glass .liquid-glass-distortion{opacity:.36}.nav-glass .liquid-glass-sheen{opacity:.48}.nav-links{white-space:nowrap;align-items:center;gap:clamp(16px,2.2vw,30px);margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--fg-muted);font-size:.875rem;text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:50%;height:1px;transition:transform .2s;position:absolute;bottom:-9px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover,.nav-links a.is-active{color:var(--fg)}.nav-links a:hover:after,.nav-links a.is-active:after{transform:scaleX(1)}.nav-toggle,.mobile-nav-backdrop,.mobile-nav-panel{display:none}.nav-toggle{z-index:103;width:48px;height:48px;color:var(--fg);cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(18px)saturate(1.2);background:#ffffff0b;border:1px solid #ffffff1a;border-radius:8px;place-items:center;position:relative}.nav-toggle span{background:currentColor;border-radius:999px;width:18px;height:2px;display:block}.mobile-nav-panel{z-index:102;-webkit-backdrop-filter:blur(22px)saturate(1.15);backdrop-filter:blur(22px)saturate(1.15);background:#080a10f0;border:1px solid #ffffff1a;border-radius:8px;width:min(280px,100vw - 40px);padding:10px;position:fixed;top:72px;right:20px;box-shadow:0 22px 70px #0000006b}.mobile-nav-panel a{min-height:48px;color:var(--fg-muted);border-radius:6px;align-items:center;padding:0 14px;font-size:.95rem;text-decoration:none;transition:color .2s,background .2s;display:flex}.mobile-nav-panel a:hover,.mobile-nav-panel a.is-active{color:var(--fg);background:#d28c0014}.hero{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:96px 32px 72px;display:flex;position:relative;overflow:hidden}.hero-canvas,.hero-glow,.hero-spotlight{pointer-events:none;position:absolute;inset:0}.hero-canvas{opacity:.6;width:100%;height:100%;display:block}.hero-glow{z-index:0;filter:blur(18px)}.hero-spotlight{z-index:1}.hero-content{z-index:2;width:min(100%,720px);position:relative}.hero-avatar-stage{width:240px;height:240px;margin:0 auto 22px;position:relative}.hero-avatar-halo{filter:blur(18px);will-change:transform;background:radial-gradient(circle,#d28c003d,#d28c000f 45%,#0000 72%);border-radius:50%;transition:transform .22s ease-out;position:absolute;inset:18px}.hero-avatar-orbit{opacity:.8;will-change:transform;border:1px dashed #d28c003d;border-radius:50%;transition:transform .26s ease-out;animation:18s linear infinite rotate-slow;position:absolute;inset:0}.hero-avatar-wrap{background:linear-gradient(145deg,#ffffff1f,#ffffff08),radial-gradient(circle at 30% 30%,#d28c001f,#0000 65%);border:1px solid #ffffff1f;border-radius:50%;padding:8px;position:absolute;inset:34px;box-shadow:0 0 70px #d28c0029,0 24px 50px #00000059,inset 0 1px #ffffff14}.hero-avatar{object-fit:cover;border:1px solid #ffffff14;border-radius:50%;width:100%;height:100%}.hero-float-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:left;background:#0c0f17b8;border:1px solid #ffffff17;border-radius:16px;gap:3px;padding:10px 14px;display:grid;position:absolute;box-shadow:0 18px 40px #00000047}.hero-float-card strong{font-size:.84rem;font-weight:600}.hero-float-card-right{animation:6s ease-in-out infinite float-card;top:38px;right:-12px}.hero-float-card-left{animation:7s ease-in-out infinite reverse float-card;bottom:42px;left:-24px}.hero-float-label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.62rem}.hero-badge,.cta-badge{color:var(--accent);letter-spacing:.05em;background:#ffffff0a;border:1px solid #ffffff17;border-radius:999px;align-items:center;gap:8px;margin-bottom:28px;padding:6px 18px;font-size:.72rem;animation:.6s .1s both fade-down;display:inline-flex}.badge-dot{background:var(--accent);border-radius:999px;width:6px;height:6px;animation:2.2s ease-in-out infinite pulse-dot;box-shadow:0 0 16px #d28c00a6}.hero-title{letter-spacing:-.04em;max-width:13.5ch;margin:0 auto 28px;font-size:clamp(2.35rem,4.7vw,4rem);line-height:1.08}.headline-char{opacity:0;animation:.45s forwards char-reveal;display:inline-block;transform:translateY(28px)rotate(-3deg)}.headline-word{white-space:nowrap;display:inline-block}.headline-space{display:inline}.hero-subline{max-width:58ch;min-height:2em;color:var(--fg-muted);margin:0 auto 18px;font-size:clamp(1rem,2vw,1.175rem);line-height:1.75;animation:.7s .9s both fade-up}.hero-supporting{max-width:56ch;color:color-mix(in oklab, var(--fg-muted) 86%, white 14%);margin:0 auto 34px;font-size:.97rem;line-height:1.85;animation:.7s 1s both fade-up}.cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:1.05em;margin-left:2px;animation:.85s step-end infinite blink;display:inline-block}.hero-actions,.cta-actions{flex-wrap:wrap;justify-content:center;gap:16px;max-width:560px;margin-inline:auto;animation:.7s 1.1s both fade-up;display:flex}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 28px;font-size:.92rem;font-weight:600;text-decoration:none;transition:transform .22s,box-shadow .22s,background-color .22s,border-color .22s;display:inline-flex}.button:hover{transform:translateY(-3px)}.button-primary{color:#111;background:var(--accent);box-shadow:0 0 28px #d28c0052}.button-primary:hover{box-shadow:0 0 50px #d28c0075}.button-secondary{color:var(--fg);border-color:var(--glass-border);background:var(--glass)}.button-secondary:hover{background:#ffffff14}.hero-stats,.hero-meta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hero-stats{color:var(--fg-muted);opacity:.9;margin-top:36px;font-size:.9rem;animation:.8s 1.3s both fade-up}.hero-stats strong{color:var(--fg)}.dot-separator{background:#ffffff3d;border-radius:999px;align-self:center;width:4px;height:4px}.hero-meta{margin-top:18px;animation:.8s 1.45s both fade-up}.hero-socials{justify-content:center;gap:10px;margin-top:16px;animation:.8s 1.55s both fade-up;display:flex}.hero-social-badge{color:var(--fg-muted);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:7px;padding:6px 14px 6px 10px;font-family:JetBrains Mono,monospace;font-size:.7rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.hero-social-badge:hover{color:var(--accent);background:#d28c0012;border-color:#d28c0052}.hero-meta span{color:var(--fg-muted);background:#ffffff08;border:1px solid #ffffff14;border-radius:999px;padding:5px 11px;font-size:.69rem}.scroll-hint{opacity:0;color:var(--fg-faint);flex-direction:column;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:.68rem;animation:.8s 1.6s forwards fade-up;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.scroll-line{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:42px;animation:2.2s ease-in-out infinite scroll-pulse}.section-head{text-align:center;margin-bottom:52px}.section-label{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;font-size:.68rem;display:block}.section-title{letter-spacing:-.035em;margin:0 0 10px;font-size:clamp(1.95rem,3.5vw,2.8rem);line-height:1.12}.section-subtitle{color:var(--fg-muted);margin:0;font-size:1rem}.reveal{opacity:0;transition:opacity .75s,transform .75s;transform:translateY(36px)}.reveal.in{opacity:1;transform:translateY(0)}.tech-reveal,.education-reveal{height:100%}.tech-grid,.education-grid{gap:20px;display:grid}.tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.techstack-split{grid-template-columns:1fr;align-items:start;gap:32px;display:grid}.tech-orbit-wrap{z-index:2;justify-content:center;align-items:center;min-height:560px;display:flex;position:relative}.skill-orbit-tabs{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080a1094;border:1px solid #ffffff1a;border-radius:999px;gap:4px;width:fit-content;margin:-8px auto 12px;padding:4px;display:flex;box-shadow:0 14px 38px #00000047}.skill-orbit-tabs button{color:#ffffff9e;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:999px;min-height:34px;padding:0 16px;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:600;transition:background .18s,color .18s,box-shadow .18s}.skill-orbit-tabs button:hover,.skill-orbit-tabs button:focus-visible{color:#ffffffe6;outline:none}.skill-orbit-tabs button.is-active{color:#ffd782f5;background:#d28c002e;box-shadow:inset 0 0 0 1px #d28c006b,0 0 22px #d28c0029}.skill-orbit-subtitle{max-width:620px;color:var(--fg-muted);text-align:center;margin:0 auto 30px;font-size:.95rem;line-height:1.5}.skill-detail-dock{display:none}.techstack-split .tech-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.education-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-card,.experience-card,.education-card,.publication-card,.testimonial-card,.cta-card,.carousel-main{border:1px solid var(--glass-border);background:var(--glass);box-shadow:var(--shadow-soft)}.tech-card,.experience-card,.publication-card,.education-card{border-radius:var(--radius)}.tech-card,.experience-card,.publication-card{background:linear-gradient(180deg, #ffffff09, #ffffff04), var(--card-solid)}.tech-card{flex-direction:column;justify-content:space-between;height:100%;min-height:100%;display:flex}.tech-card-body{gap:8px;display:grid}.mono-label{color:var(--accent);margin-bottom:10px;font-size:.68rem}.carousel-body h3,.tech-card h3,.experience-card h3,.education-card h3,.cta-card h2{margin:0 0 8px}.carousel-body p,.tech-card p,.education-card p,.experience-card p,.experience-card li,.publication-detail p,.testimonial-name,.cta-card p{color:var(--fg-muted)}.tech-card p{margin:0}.carousel{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:20px;display:grid}.carousel-main{border-radius:var(--radius);transition:box-shadow .3s;overflow:hidden}.carousel-main:hover{box-shadow:0 40px 100px #0000008c}.carousel-image{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .45s;animation:.4s image-fade}.carousel-main:hover .carousel-image{transform:scale(1.04)}.carousel-body{gap:10px;padding:26px;display:grid}.inline-link{color:var(--accent);letter-spacing:.04em;font-size:.73rem;text-decoration:none}.inline-link:hover{opacity:.78}.work-section .section-head{margin-bottom:8px}.work-section .container-scroll-stage{align-items:flex-start;height:clamp(46rem,86vh,56rem);margin-top:0;padding:0 0 8px}.work-section .container-scroll-perspective{padding:20px 0 0}.work-section .container-scroll-card{height:clamp(42rem,66vw,52rem)}.container-scroll-stage{justify-content:center;align-items:center;height:clamp(50rem,130vh,76rem);margin-top:-44px;padding:16px 0 56px;display:flex;position:relative}.container-scroll-perspective{width:100%;padding:72px 0;position:relative}.container-scroll-header{text-align:center;width:min(100%,64rem);margin:0 auto}.container-scroll-card{width:min(100%,64rem);height:clamp(34rem,58vw,42rem);transform-style:preserve-3d;background:linear-gradient(145deg,#ffffff14,#ffffff06),#16181f;border:4px solid #6c6c6cb8;border-radius:30px;margin:-12px auto 0;padding:10px}.container-scroll-card-inner{background:radial-gradient(circle at 0 0,#d28c001f,#0000 42%),#080a10f5;border-radius:22px;width:100%;height:100%;overflow:hidden}.signature-scroll-content{height:100%;padding:18px}.signature-scroll-content .carousel{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);align-items:stretch;height:100%}.signature-scroll-content .carousel-main{grid-template-rows:minmax(0,1fr) auto;height:100%;display:grid}.signature-scroll-content .carousel-image{aspect-ratio:auto;height:100%;min-height:0}.signature-scroll-content .carousel-thumbs{min-height:0;padding-right:4px;overflow:auto}.signature-scroll-content .carousel-thumbs::-webkit-scrollbar{width:6px}.signature-scroll-content .carousel-thumbs::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.signature-scroll-content .carousel-full{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}.signature-scroll-content .carousel-full .carousel-thumbs{grid-template-columns:repeat(5,minmax(0,1fr));padding-right:0;overflow:visible}.signature-scroll-content .carousel-full .carousel-thumb{grid-template-columns:56px 1fr;min-height:68px}.signature-scroll-content .carousel-full .carousel-thumb-image{width:56px;height:68px}.signature-scroll-content .carousel-full .carousel-thumb-body{gap:2px;padding:9px 10px}.signature-scroll-content .carousel-full .carousel-thumb-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.signature-scroll-content .carousel-full .carousel-thumb-text{-webkit-line-clamp:1}.carousel-thumbs{gap:12px;display:grid}.carousel-thumb{border:1px solid var(--glass-border);color:inherit;text-align:left;touch-action:manipulation;-webkit-user-select:none;user-select:none;cursor:pointer;opacity:.45;background:#ffffff08;border-radius:14px;grid-template-columns:76px 1fr;padding:0;transition:opacity .25s,border-color .25s,background .25s;display:grid;overflow:hidden}.carousel-thumb:hover,.carousel-thumb.is-active{opacity:1}.carousel-thumb:hover:not(.is-active){background:#ffffff0e}.carousel-thumb.is-active{border-color:var(--accent)}.carousel-thumb-image{object-fit:cover;pointer-events:none;-webkit-user-drag:none;width:76px;height:58px}.project-thumbnail{--thumb-accent:202, 151, 74;isolation:isolate;background:radial-gradient(circle at 50% 42%, rgba(var(--thumb-accent), .16), transparent 48%), linear-gradient(145deg, #ffffff13, #ffffff05 58%), #080b12;box-shadow:inset 0 0 0 1px rgba(var(--thumb-accent), .12), inset 0 -18px 36px #00000052;border-right:1px solid #ffffff0f;place-items:center;display:grid;position:relative;overflow:hidden}.project-thumbnail:before,.project-thumbnail:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.project-thumbnail:before{background:linear-gradient(90deg, transparent, rgba(var(--thumb-accent), .09), transparent), repeating-linear-gradient(0deg, #ffffff08 0 1px, transparent 1px 9px);opacity:.36;transition:opacity .25s,transform .35s;transform:translate(-18%)}.project-thumbnail:after{background:rgba(var(--thumb-accent), .14);filter:blur(16px);opacity:.52;border-radius:999px;transition:opacity .25s,filter .25s;inset:10px}.project-thumbnail--iot-logger{--thumb-accent:214, 159, 74}.project-thumbnail--dma-uart{--thumb-accent:91, 159, 222}.project-thumbnail--test-framework{--thumb-accent:93, 199, 166}.project-thumbnail--ble-scan{--thumb-accent:163, 118, 226}.project-thumbnail--memory-map{--thumb-accent:217, 105, 167}.project-thumbnail-core{aspect-ratio:1;width:min(48px,78%);color:rgb(var(--thumb-accent));filter:drop-shadow(0 0 8px rgba(var(--thumb-accent), .28)) drop-shadow(0 0 18px rgba(var(--thumb-accent), .12));transform-origin:50%;place-items:center;transition:color .25s,filter .25s;display:grid}.project-thumbnail-svg{width:100%;height:100%;overflow:visible}.project-thumbnail-fill,.project-thumbnail-stroke,.project-thumbnail-line,.project-thumbnail-pin,.project-thumbnail-node,.project-thumbnail-ring,.project-thumbnail-scan-ring,.project-thumbnail-arrow,.project-thumbnail-check,.project-thumbnail-scan{vector-effect:non-scaling-stroke}.project-thumbnail-fill{fill:rgba(var(--thumb-accent), .105);stroke:rgba(var(--thumb-accent), .82);stroke-width:1.7px}.project-thumbnail-stroke{fill:none;stroke:#ffffff9e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px}.project-thumbnail-line{fill:none;stroke:rgba(var(--thumb-accent), .72);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.55px}.project-thumbnail-line.is-soft,.project-thumbnail-arrow.is-soft{opacity:.54}.project-thumbnail-pin{stroke:#ffffff6b;stroke-linecap:round;stroke-width:1.45px}.project-thumbnail-node,.project-thumbnail-pulse{fill:rgb(var(--thumb-accent))}.project-thumbnail-node{filter:drop-shadow(0 0 7px rgba(var(--thumb-accent), .45))}.project-thumbnail-node.is-dim{opacity:.58}.project-thumbnail-pulse{filter:drop-shadow(0 0 7px rgba(var(--thumb-accent), .72))}.project-thumbnail-arrow,.project-thumbnail-check{fill:none;stroke:rgb(var(--thumb-accent));stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px}.project-thumbnail-ring{fill:none;stroke:#ffffff4d;stroke-width:1.2px}.project-thumbnail-scan-ring{fill:none;stroke:rgba(var(--thumb-accent), .78);stroke-width:1.45px;transform-box:fill-box;transform-origin:50%}.project-thumbnail-scan{stroke:rgba(var(--thumb-accent), .76);stroke-linecap:round;stroke-width:1.5px}.project-thumbnail-gear{transform-box:view-box;transform-origin:71px 61px}.carousel-thumb:hover .project-thumbnail,.carousel-thumb.is-active .project-thumbnail{box-shadow:inset 0 0 0 1px rgba(var(--thumb-accent), .22), inset 0 -18px 36px #00000042, 0 0 28px rgba(var(--thumb-accent), .16)}.carousel-thumb:hover .project-thumbnail:before,.carousel-thumb.is-active .project-thumbnail:before{opacity:.56;transform:translate(12%)}.carousel-thumb:hover .project-thumbnail:after,.carousel-thumb.is-active .project-thumbnail:after{opacity:.78;filter:blur(18px)}.carousel-thumb:hover .project-thumbnail-core,.carousel-thumb.is-active .project-thumbnail-core{filter:drop-shadow(0 0 10px rgba(var(--thumb-accent), .42)) drop-shadow(0 0 24px rgba(var(--thumb-accent), .18))}@media (prefers-reduced-motion:reduce){.project-thumbnail:before{transition:opacity .25s;transform:none}.project-thumbnail-core{transition:filter .25s}}.carousel-thumb-body{gap:4px;padding:10px 14px;display:grid}.carousel-thumb-title{font-size:.825rem;font-weight:600}.carousel-thumb-text{color:var(--fg-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.73rem;display:-webkit-box;overflow:hidden}.dma-feature-card{isolation:isolate;background:radial-gradient(circle at 76% 18%, #3991ff21, transparent 32%), radial-gradient(circle at 10% 12%, #d28c001f, transparent 36%), linear-gradient(180deg, #ffffff0d, #ffffff05), var(--card-solid);grid-template-rows:none;grid-template-columns:minmax(0,1fr) minmax(230px,.74fr);gap:16px;height:100%;padding:20px;display:grid;position:relative;overflow:auto}.signature-scroll-content .dma-feature-card{grid-template-rows:none}.dma-feature-card:before{z-index:-1;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%);mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%)}.dma-feature-card:hover{border-color:#d28c0047;box-shadow:0 34px 96px #0000008c,0 0 48px #5392ff14}.dma-feature-copy{align-content:start;gap:12px;min-width:0;display:grid}.dma-eyebrow,.dma-category,.dma-copy-block h4,.dma-status-strip,.dma-node-kicker{font-family:JetBrains Mono,monospace}.dma-eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.6rem;display:inline-flex}.dma-feature-copy h3{letter-spacing:-.035em;max-width:17ch;margin:0;font-size:clamp(1.32rem,1.9vw,1.85rem);line-height:1.04}.dma-category{color:#ffffffb8;margin:8px 0 0;font-size:.72rem}.dma-summary{max-width:62ch;color:color-mix(in oklab, var(--fg-muted) 88%, white 12%);margin:10px 0 0;font-size:.82rem;line-height:1.55}.dma-content-grid{grid-template-columns:minmax(0,1.1fr) minmax(145px,.9fr);gap:12px;display:grid}.dma-copy-block{min-width:0}.dma-copy-block h4{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.62rem}.dma-check-list,.dma-impact-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dma-check-list li,.dma-impact-list li,.dma-focus-grid span{color:var(--fg-muted);font-size:.72rem;line-height:1.42;position:relative}.dma-check-list li{padding-left:16px}.dma-check-list li:before{background:var(--accent);content:"";border-radius:2px;width:6px;height:6px;position:absolute;top:.68em;left:0;box-shadow:0 0 12px #d28c0073}.dma-impact-block{background:linear-gradient(#5392ff12,#ffffff04),#0609106b;border:1px solid #5392ff29;border-radius:16px;padding:11px 12px}.dma-impact-list li{padding-left:0}.dma-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.dma-focus-grid span{background:#ffffff09;border:1px solid #ffffff12;border-radius:12px;padding:7px 9px}.dma-tech-row{margin-top:0}.dma-feature-visual{min-width:0;min-height:340px;display:grid}.dma-diagram{background:radial-gradient(circle at 38% 30%,#5392ff33,#0000 38%),radial-gradient(circle at 62% 72%,#d28c0024,#0000 32%),radial-gradient(circle,#5392ff0f,#0000 60%),#05080ead;border:1px solid #ffffff14;border-radius:18px;min-height:100%;transition:border-color .22s,box-shadow .22s,filter .22s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000040}.dma-feature-card:hover .dma-diagram{filter:saturate(1.08);border-color:#5392ff3d;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000045,0 0 34px #5392ff1a}.dma-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 20% 82%,#0000);mask-image:linear-gradient(#0000,#000 20% 82%,#0000)}.dma-node{z-index:2;background:linear-gradient(#ffffff13,#ffffff05),#080c14eb;border:1px solid #ffffff1a;border-radius:16px;justify-items:start;gap:4px;width:42%;min-width:118px;padding:11px 12px;display:grid;position:absolute;box-shadow:0 18px 42px #0000003d,inset 0 1px #ffffff0d}.dma-node strong{font-size:.78rem;line-height:1.15}.dma-node small{color:var(--fg-muted);font-size:.6rem}.dma-node-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:.5rem}.dma-node-ble{border-color:#5392ff3d;top:8%;left:38%;transform:translate(-50%)}.dma-node-mcu{border-color:#5392ff33;width:62%;min-width:150px;padding:13px;top:36%;left:50%;transform:translate(-50%)}.dma-node-cellular{border-color:#d28c003d;top:70%;left:62%;right:auto;transform:translate(-50%)}.dma-mcu-tags{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin-top:5px;display:grid}.dma-mcu-tags span{color:#ffffffc2;background:#5392ff13;border:1px solid #5392ff29;border-radius:8px;padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:.52rem}.dma-ring{pointer-events:none;border:1px dashed #5392ff61;border-radius:22px;animation:9s linear infinite dma-ring-rotate;position:absolute;inset:-12px}.dma-buffer{background:#d28c000e;border:1px solid #d28c002e;border-radius:10px;align-items:center;gap:5px;width:100%;margin-top:7px;padding:7px;display:flex}.dma-buffer span{background:linear-gradient(90deg,#d28c008c,#ffd682e6);border-radius:3px;width:17%;height:7px;box-shadow:0 0 10px #d28c002e}.dma-buffer em{color:var(--accent);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.65rem;font-style:normal}.dma-lane{z-index:1;background:linear-gradient(#0000,#5392ff7a,#d28c0061,#0000);width:3px;height:17%;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 0 18px #5392ff33}.dma-lane:before,.dma-lane:after{content:"";background:#5392ff57;border:1px solid #ffffff29;border-radius:50%;width:7px;height:7px;position:absolute;top:auto;left:50%;transform:translate(-50%)}.dma-lane:before{top:0}.dma-lane:after{bottom:0;right:auto}.dma-lane-left{top:25%}.dma-lane-right{top:58%}.dma-packet{background:var(--accent);border-radius:4px;width:11px;height:11px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #d28c00bf,0 0 36px #d28c004d;left:50%!important}.dma-packet-reverse{background:#5da3ff;box-shadow:0 0 16px #5392ff9e,0 0 28px #5392ff33}.dma-activity-lane{z-index:1;opacity:.64;background:linear-gradient(90deg,#0000,#5392ffcc,#0000);border-radius:999px;height:2px;animation:2.6s ease-in-out infinite dma-transfer-band;position:absolute;left:18%;right:18%}.dma-activity-top{top:32%}.dma-activity-bottom{animation-delay:1.1s;top:56%}.dma-power{color:#ffffffb8;align-items:center;gap:7px;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:.58rem;display:inline-flex}.dma-power-pulse{background:#75d291;border-radius:50%;width:8px;height:8px;animation:4s ease-in-out infinite dma-power-ready;box-shadow:0 0 14px #75d2919e}.dma-status-strip{z-index:2;color:var(--fg-muted);background:#04070cc2;border:1px solid #ffffff13;border-radius:13px;justify-items:start;gap:10px;padding:8px 10px;font-size:.55rem;display:grid;position:absolute;bottom:16px;left:16px;right:16px}.dma-status-strip strong{color:#ffffffd1;font-weight:500}.test-framework-feature-card{isolation:isolate;background:radial-gradient(circle at 76% 18%, #5392ff1f, transparent 32%), radial-gradient(circle at 12% 16%, #d28c0021, transparent 36%), linear-gradient(180deg, #ffffff0e, #ffffff05), var(--card-solid);grid-template-columns:minmax(0,1fr) minmax(270px,.86fr);gap:16px;height:100%;padding:20px;display:grid;position:relative;overflow:auto}.signature-scroll-content .test-framework-feature-card{grid-template-rows:none}.test-framework-feature-card:before{z-index:-1;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%);mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%)}.test-framework-feature-card:hover{border-color:#d28c004d;box-shadow:0 34px 96px #0000008f,0 0 52px #5392ff17}.test-framework-feature-copy{align-content:start;gap:9px;min-width:0;display:grid}.test-framework-eyebrow,.test-framework-category,.test-framework-copy-block h4,.test-framework-stage-label,.test-framework-stage,.test-framework-runner,.test-framework-results,.test-framework-hover-detail,.test-framework-error-flicker{font-family:JetBrains Mono,monospace}.test-framework-eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.6rem;display:inline-flex}.test-framework-feature-copy h3{letter-spacing:-.035em;max-width:20ch;margin:0;font-size:clamp(1.25rem,1.8vw,1.78rem);line-height:1.04}.test-framework-category{color:#ffffffb8;margin:8px 0 0;font-size:.72rem}.test-framework-summary{max-width:64ch;color:color-mix(in oklab, var(--fg-muted) 88%, white 12%);margin:10px 0 0;font-size:.78rem;line-height:1.46}.test-framework-content-grid{grid-template-columns:minmax(0,1.06fr) minmax(150px,.94fr);gap:10px;display:grid}.test-framework-copy-block{min-width:0}.test-framework-copy-block h4{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.62rem}.test-framework-check-list,.test-framework-impact-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.test-framework-check-list li,.test-framework-impact-list li,.test-framework-focus-grid span{color:var(--fg-muted);font-size:.68rem;line-height:1.34;position:relative}.test-framework-check-list li{padding-left:16px}.test-framework-check-list li:before{background:var(--accent);content:"";border-radius:2px;width:6px;height:6px;position:absolute;top:.68em;left:0;box-shadow:0 0 12px #d28c0073}.test-framework-impact-block{background:linear-gradient(#5392ff12,#ffffff04),#0609106b;border:1px solid #5392ff29;border-radius:16px;padding:9px 10px}.test-framework-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.test-framework-focus-grid span{background:#ffffff09;border:1px solid #ffffff12;border-radius:12px;padding:6px 8px}.test-framework-tech-row{margin-top:0}.test-framework-feature-visual{min-width:0;min-height:360px;display:grid}.test-framework-visual{background:radial-gradient(circle at 50% 28%,#5392ff26,#0000 34%),radial-gradient(circle at 82% 76%,#75d29121,#0000 30%),radial-gradient(circle at 90% 88%,#75d29114,#0000 24%),#05080eb8;border:1px solid #ffffff14;border-radius:18px;grid-template-rows:auto minmax(128px,.9fr) minmax(116px,.82fr);align-content:stretch;gap:14px;min-height:100%;padding:14px;transition:border-color .22s,box-shadow .22s,filter .22s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000040}.test-framework-feature-card:hover .test-framework-visual{filter:saturate(1.08)contrast(1.03);border-color:#5392ff42;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000047,0 0 40px #5392ff1f}.test-framework-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 16% 86%,#0000);mask-image:linear-gradient(#0000,#000 16% 86%,#0000)}.test-framework-pipeline{z-index:1;height:22px;position:absolute;top:79px;left:9%;right:9%}.test-framework-pipeline-line{background:linear-gradient(90deg,#5392ff1f,#5392ffb8,#d28c007a,#75d2916b);border-radius:999px;height:2px;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 18px #5392ff2e}.test-framework-packet{background:var(--accent);border-radius:4px;width:11px;height:11px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #d28c00bf,0 0 36px #d28c004d}.test-framework-stage-row{z-index:2;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid;position:relative}.test-framework-mid-row,.test-framework-bottom-row{z-index:2;gap:12px;display:grid;position:relative}.test-framework-mid-row{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);justify-self:center;align-items:stretch;width:min(100%,300px)}.test-framework-bottom-row{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch}.test-framework-stage,.test-framework-runner,.test-framework-hardware,.test-framework-logic,.test-framework-results{z-index:2;background:linear-gradient(#ffffff13,#ffffff05),#080c14e6;border:1px solid #ffffff18;position:relative;box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.test-framework-stage{border-radius:13px;gap:2px;min-width:0;min-height:74px;padding:9px 8px;display:grid}.test-framework-stage-label{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:.48rem;display:block}.test-framework-stage strong{color:#ffffffdb;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;line-height:1.15;overflow:hidden}.test-framework-stage small{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.48rem;line-height:1.25;overflow:hidden}.test-framework-runner{text-align:center;border-color:#5392ff33;border-radius:16px;align-content:center;justify-items:center;gap:7px;width:auto;min-width:0;padding:10px;display:grid}.test-framework-runner strong{color:#ffffffc7;font-size:.54rem;font-weight:500}.test-framework-cycle-ring{border:1px dashed #5392ff57;border-radius:50%;width:52px;height:52px;position:relative}.test-framework-cycle-ring span{background:#5392ff2e;border:1px solid #5392ff52;border-radius:50%;position:absolute;inset:12px}.test-framework-hardware{border-color:#75d2912e;border-radius:16px;gap:8px;width:auto;min-width:0;padding:10px;display:grid}.test-framework-board{background:linear-gradient(135deg,#75d29114,#5392ff0f),#ffffff06;border:1px solid #75d2912e;border-radius:12px;place-items:center;min-height:78px;display:grid;position:relative}.test-framework-chip{color:#ffffffc7;background:#080c14eb;border:1px solid #ffffff24;border-radius:8px;place-items:center;width:54px;height:40px;font-family:JetBrains Mono,monospace;font-size:.58rem;display:grid}.test-framework-pins{background:repeating-linear-gradient(#ffffff38 0 3px,#0000 3px 8px);width:8px;position:absolute;top:18px;bottom:18px}.test-framework-pins-left{left:10px}.test-framework-pins-right{right:10px}.test-framework-swd-bar{transform-origin:0;background:linear-gradient(90deg,#5392ff4d,#75d291e6);border-radius:999px;height:4px;position:absolute;bottom:10px;left:12px;right:12px;box-shadow:0 0 12px #75d29142}.test-framework-uart-lines{gap:4px;display:grid}.test-framework-uart-lines span{background:linear-gradient(90deg,#0000,#d28c00cc,#5392ffa3,#0000);border-radius:999px;height:2px}.test-framework-error-flicker{color:#ffdeaae6;background:#d28c0014;border:1px solid #d28c0033;border-radius:999px;padding:2px 5px;font-size:.48rem;position:absolute;top:34px;right:10px}.test-framework-logic{color:#5da3ff;border-radius:16px;width:auto;min-width:0;padding:10px;display:grid}.test-framework-logic svg{width:100%;height:58px;color:inherit;opacity:.86}.test-framework-results{border-radius:16px;align-content:start;gap:7px;width:auto;min-width:0;padding:10px;display:grid}.test-framework-result-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.test-framework-result-head strong{color:#ffffffd6;font-size:.64rem}.test-framework-result-head span{color:#8ce2a6;background:#75d2911f;border-radius:999px;padding:2px 7px;font-size:.48rem}.test-framework-result-rows{gap:5px;display:grid}.test-framework-result-rows div{grid-template-columns:auto 1fr;align-items:center;gap:6px;display:grid}.test-framework-result-rows span{background:#75d291;border-radius:50%;width:7px;height:7px;box-shadow:0 0 12px #75d2915c}.test-framework-result-rows small,.test-framework-hover-detail{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.5rem;overflow:hidden}.test-framework-hover-detail{opacity:0;max-height:0;transition:max-height .22s,opacity .22s}.test-framework-feature-card:hover .test-framework-hover-detail{opacity:1;max-height:16px}.memmap-feature-card{isolation:isolate;background:radial-gradient(circle at 78% 20%, #5392ff21, transparent 32%), radial-gradient(circle at 12% 14%, #d28c001f, transparent 36%), linear-gradient(180deg, #ffffff0e, #ffffff05), var(--card-solid);grid-template-columns:minmax(0,1fr) minmax(260px,.82fr);gap:16px;height:100%;padding:20px;display:grid;position:relative;overflow:auto}.signature-scroll-content .memmap-feature-card{grid-template-rows:none}.memmap-feature-card:before{z-index:-1;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%);mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%)}.memmap-feature-card:hover{border-color:#d28c004d;box-shadow:0 34px 96px #0000008f,0 0 52px #5392ff17}.memmap-feature-copy{align-content:start;gap:9px;min-width:0;display:grid}.memmap-eyebrow,.memmap-category,.memmap-copy-block h4,.memmap-stage-label,.memmap-source-node,.memmap-processor-tags,.memmap-diff-row,.memmap-metrics span,.memmap-table{font-family:JetBrains Mono,monospace}.memmap-eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.6rem;display:inline-flex}.memmap-feature-copy h3{letter-spacing:-.035em;max-width:18ch;margin:0;font-size:clamp(1.28rem,1.85vw,1.82rem);line-height:1.04}.memmap-category{color:#ffffffb8;margin:8px 0 0;font-size:.72rem}.memmap-summary{max-width:64ch;color:color-mix(in oklab, var(--fg-muted) 88%, white 12%);margin:10px 0 0;font-size:.78rem;line-height:1.46}.memmap-content-grid{grid-template-columns:minmax(0,1.08fr) minmax(150px,.92fr);gap:10px;display:grid}.memmap-copy-block{min-width:0}.memmap-copy-block h4{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.62rem}.memmap-check-list,.memmap-impact-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.memmap-check-list li,.memmap-impact-list li,.memmap-focus-grid span{color:var(--fg-muted);font-size:.68rem;line-height:1.34;position:relative}.memmap-check-list li{padding-left:16px}.memmap-check-list li:before{background:var(--accent);content:"";border-radius:2px;width:6px;height:6px;position:absolute;top:.68em;left:0;box-shadow:0 0 12px #d28c0073}.memmap-impact-block{background:linear-gradient(#5392ff12,#ffffff04),#0609106b;border:1px solid #5392ff29;border-radius:16px;padding:9px 10px}.memmap-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.memmap-focus-grid span{background:#ffffff09;border:1px solid #ffffff12;border-radius:12px;padding:6px 8px}.memmap-tech-row{margin-top:0}.memmap-feature-visual{min-width:0;min-height:360px;display:grid}.memmap-visual{background:radial-gradient(circle at 48% 30%,#5392ff29,#0000 32%),radial-gradient(circle at 86% 82%,#d28c001a,#0000 30%),#05080eb8;border:1px solid #ffffff14;border-radius:18px;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-content:space-between;gap:12px 14px;min-height:100%;padding:14px;transition:border-color .22s,box-shadow .22s,filter .22s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000040}.memmap-feature-card:hover .memmap-visual{filter:saturate(1.08)contrast(1.03);border-color:#5392ff40;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000047,0 0 38px #5392ff1c}.memmap-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 16% 86%,#0000);mask-image:linear-gradient(#0000,#000 16% 86%,#0000)}.memmap-stage{z-index:2;position:relative}.memmap-stage-label{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px;font-size:.48rem;display:block}.memmap-sources{grid-area:1/1;gap:7px;min-width:0;display:grid}.memmap-source-node,.memmap-processor,.memmap-normalize,.memmap-clusters,.memmap-conflicts,.memmap-report{background:linear-gradient(#ffffff13,#ffffff05),#080c14e6;border:1px solid #ffffff18;position:relative;box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.memmap-sources:after,.memmap-normalize:after,.memmap-clusters:after{z-index:-1;content:"";pointer-events:none;background:linear-gradient(90deg,#5392ff85,#d28c0042,#0000);position:absolute}.memmap-sources:after,.memmap-normalize:after{width:42px;height:1px;top:50%;left:calc(100% + 6px)}.memmap-clusters:after{background:linear-gradient(#5392ff85,#d28c0047,#0000);width:1px;height:48px;bottom:-56px;right:50%}.memmap-source-node{color:#ffffffc7;border-radius:10px;align-items:center;gap:7px;min-height:28px;padding:6px 8px;font-size:.55rem;display:flex}.memmap-source-node span{background:#5da3ff;border-radius:2px;width:7px;height:7px;box-shadow:0 0 12px #5392ff80}.memmap-flow{z-index:1;background:linear-gradient(90deg,#0000,#5392ffc2,#d28c0066,#0000);border-radius:999px;height:2px;position:absolute}.memmap-flow span{background:var(--accent);border-radius:3px;width:10px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #d28c00b8,0 0 32px #d28c0040}.memmap-flow-a{width:12%;top:66px;left:37%}.memmap-flow-b{width:13%;top:235px;left:41%}.memmap-processor{z-index:3;border-color:#5392ff3d;border-radius:16px;grid-area:1/2;align-self:start;gap:7px;width:min(100%,190px);min-width:0;padding:12px;display:grid;position:relative;overflow:visible}.memmap-processor:before{pointer-events:none;content:"";border:1px dashed #5392ff52;border-radius:22px;animation:10s linear infinite dma-ring-rotate;position:absolute;inset:-10px}.memmap-processor strong{font-size:.86rem;line-height:1}.memmap-processor-tags{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.memmap-processor-tags span{color:#ffffffc2;text-align:center;background:#5392ff13;border:1px solid #5392ff29;border-radius:7px;padding:4px 5px;font-size:.48rem}.memmap-normalize{z-index:2;border-radius:14px;grid-area:2/1;align-self:start;gap:5px;min-width:0;padding:10px;display:grid;position:relative}.memmap-label-row{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:6px;display:grid}.memmap-label-row code,.memmap-label-row span{text-overflow:ellipsis;white-space:nowrap;border-radius:7px;padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:.48rem;line-height:1.2;overflow:hidden}.memmap-label-row code{color:#ffffff94;background:#ffffff0b}.memmap-label-row span{color:#ffe6b8e6;background:#d28c0017}.memmap-clusters{z-index:2;border-radius:14px;grid-area:2/2;align-self:start;gap:7px;min-width:0;padding:10px;display:grid;position:relative}.memmap-cluster{align-items:center;gap:6px;display:flex}.memmap-cluster strong{color:#ffffffb8;width:46px;font-family:JetBrains Mono,monospace;font-size:.5rem;font-weight:500}.memmap-cluster span{background:#5da3ff;border-radius:50%;width:10px;height:10px;box-shadow:0 0 12px #5392ff5c}.memmap-cluster:nth-child(3) span{background:#75d291;box-shadow:0 0 12px #75d29157}.memmap-cluster:nth-child(4) span{background:var(--accent);box-shadow:0 0 12px #d28c0061}.memmap-conflicts{z-index:2;border-radius:14px;grid-area:3/1;align-self:start;gap:5px;min-width:0;padding:10px;display:grid;position:relative}.memmap-diff-row{color:#ffffff9e;background:#ffffff09;border-radius:8px;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:6px;padding:5px 6px;font-size:.48rem;display:grid}.memmap-diff-row strong{color:#ffffffc7;font-weight:500}.memmap-diff-row.is-warning{background:#d28c0013;border:1px solid #d28c0038}.memmap-report{z-index:2;border-color:#75d29124;border-radius:14px;grid-area:3/2;align-self:start;gap:8px;min-width:0;padding:10px;display:grid;position:relative}.memmap-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.memmap-metrics div{background:#ffffff09;border:1px solid #ffffff12;border-radius:10px;padding:8px}.memmap-metrics strong{font-size:.86rem;line-height:1;display:block}.memmap-metrics span{color:var(--fg-muted);margin-top:4px;font-size:.47rem;display:block}.memmap-bars{gap:5px;display:grid}.memmap-bars span{background:#ffffff12;border-radius:999px;height:6px;overflow:hidden}.memmap-bars span:before{width:var(--bar);border-radius:inherit;background:linear-gradient(90deg, #75d291, var(--accent));content:"";height:100%;transition:width .22s;display:block}.memmap-feature-card:hover .memmap-bars span:before{width:min(100%, calc(var(--bar) + 7%))}.memmap-table{color:#ffffff9e;border:1px solid #ffffff0f;border-radius:9px;grid-template-columns:.8fr 1.2fr .7fr;gap:1px;font-size:.43rem;display:grid;overflow:hidden}.memmap-table span{text-overflow:ellipsis;white-space:nowrap;background:#ffffff09;min-width:0;padding:4px 5px;overflow:hidden}.memmap-table span:nth-child(-n+3){color:#ffffffc7;background:#5392ff14}.ble-scan-feature-card{isolation:isolate;background:radial-gradient(circle at 77% 18%, #5392ff24, transparent 32%), radial-gradient(circle at 12% 16%, #75d29117, transparent 30%), radial-gradient(circle at 18% 86%, #d28c0017, transparent 30%), linear-gradient(180deg, #ffffff0e, #ffffff05), var(--card-solid);grid-template-columns:minmax(0,1fr) minmax(270px,.86fr);gap:16px;height:100%;padding:20px;display:grid;position:relative;overflow:auto}.signature-scroll-content .ble-scan-feature-card{grid-template-rows:none}.ble-scan-feature-card:before{z-index:-1;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%);mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%)}.ble-scan-feature-card:hover{border-color:#75d2913d;box-shadow:0 34px 96px #0000008f,0 0 52px #5392ff1a}.ble-scan-feature-copy{align-content:start;gap:9px;min-width:0;display:grid}.ble-scan-eyebrow,.ble-scan-category,.ble-scan-copy-block h4,.ble-scan-stage-label,.ble-scan-device,.ble-scan-filter-grid,.ble-scan-filter-status,.ble-scan-stack-layer,.ble-scan-output{font-family:JetBrains Mono,monospace}.ble-scan-eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.6rem;display:inline-flex}.ble-scan-feature-copy h3{letter-spacing:-.035em;max-width:20ch;margin:0;font-size:clamp(1.24rem,1.78vw,1.78rem);line-height:1.04}.ble-scan-category{color:#ffffffb8;margin:8px 0 0;font-size:.72rem}.ble-scan-summary{max-width:64ch;color:color-mix(in oklab, var(--fg-muted) 88%, white 12%);margin:10px 0 0;font-size:.78rem;line-height:1.46}.ble-scan-content-grid{grid-template-columns:minmax(0,1.08fr) minmax(150px,.92fr);gap:10px;display:grid}.ble-scan-copy-block{min-width:0}.ble-scan-copy-block h4{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.62rem}.ble-scan-check-list,.ble-scan-impact-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.ble-scan-check-list li,.ble-scan-impact-list li,.ble-scan-focus-grid span{color:var(--fg-muted);font-size:.68rem;line-height:1.34;position:relative}.ble-scan-check-list li{padding-left:16px}.ble-scan-check-list li:before{content:"";background:#75d291;border-radius:2px;width:6px;height:6px;position:absolute;top:.68em;left:0;box-shadow:0 0 12px #75d29173}.ble-scan-impact-block{background:linear-gradient(#5392ff12,#ffffff04),#0609106b;border:1px solid #5392ff29;border-radius:16px;padding:9px 10px}.ble-scan-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.ble-scan-focus-grid span{background:#ffffff09;border:1px solid #ffffff12;border-radius:12px;padding:6px 8px}.ble-scan-tech-row{margin-top:0}.ble-scan-feature-visual{min-width:0;min-height:340px;display:grid}.ble-scan-visual{background:radial-gradient(circle at 22% 44%,#5392ff2e,#0000 36%),radial-gradient(circle at 28% 46%,#825aff1a,#0000 32%),radial-gradient(circle at 70% 76%,#75d2911a,#0000 28%),radial-gradient(circle at 88% 20%,#5392ff12,#0000 30%),#05080eb8;border:1px solid #ffffff14;border-radius:18px;grid-template-rows:minmax(190px,1fr) minmax(96px,.48fr);grid-template-columns:minmax(102px,.66fr) minmax(126px,.86fr) minmax(132px,.88fr);gap:10px;min-height:100%;padding:12px;transition:border-color .22s,box-shadow .22s,filter .22s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000040}.ble-scan-feature-card:hover .ble-scan-visual{filter:saturate(1.1)contrast(1.03);border-color:#5392ff42;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000047,0 0 40px #5392ff1f}.ble-scan-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 16% 86%,#0000);mask-image:linear-gradient(#0000,#000 16% 86%,#0000)}.ble-scan-field{pointer-events:none;background:radial-gradient(circle,#5392ff14,#0000 64%);border:1px dashed #5392ff38;border-radius:50%;width:39%;height:54%;animation:3.8s ease-in-out infinite ble-scan-field-pulse;position:absolute;top:18%;left:10%}.ble-scan-field-ring{pointer-events:none;border:1px dashed #5392ff1f;border-radius:50%;width:39%;height:54%;animation:3.8s ease-in-out 1.9s infinite ble-scan-field-pulse;position:absolute;top:18%;left:10%}.ble-scan-stage-label{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;font-size:.48rem;display:block}.ble-scan-broadcasts{z-index:2;grid-area:1/1/3;min-width:0;position:relative}.ble-scan-device{background:linear-gradient(#ffffff13,#ffffff05),#080c14eb;border:1px solid #ffffff18;border-radius:12px;justify-items:center;width:58px;height:50px;padding:7px 6px;display:grid;position:absolute;box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.ble-scan-device strong{z-index:2;color:#ffffffd6;font-size:.5rem;line-height:1;position:relative}.ble-scan-device small{z-index:2;color:var(--fg-muted);font-size:.42rem;position:relative}.ble-scan-device.is-target{background:linear-gradient(#75d2911f,#ffffff05),#080c14f0;border-color:#75d29147}.ble-scan-device-a{top:17%;left:8%}.ble-scan-device-b{top:35%;left:38%}.ble-scan-device-c{top:58%;left:10%}.ble-scan-device-d{top:74%;left:38%}.ble-scan-wave{pointer-events:none;border:1px solid #5392ff38;border-radius:18px;animation:2.8s ease-out infinite ble-scan-wave;position:absolute;inset:-7px}.ble-scan-wave-delay{animation-delay:.9s}.ble-scan-wave-delay-2{animation-delay:1.8s}.ble-scan-device.is-target .ble-scan-wave{border-color:#75d29157}.ble-scan-feature-card:hover .ble-scan-wave{border-color:#5392ff61}.ble-scan-feature-card:hover .ble-scan-device.is-target .ble-scan-wave{border-color:#75d29185}.ble-scan-packet-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.ble-scan-packet{offset-rotate:0deg;background:#5da3ff;border-radius:3px;width:10px;height:10px;position:absolute;box-shadow:0 0 20px #5392ffb3,0 0 32px #5392ff40}.ble-scan-packet.is-selected{background:#75d291;width:11px;height:11px;box-shadow:0 0 20px #75d291bd,0 0 36px #75d29147}.ble-scan-packet-a{offset-path:path("M 55 77 C 92 84, 112 110, 139 134")}.ble-scan-packet-b{offset-path:path("M 89 139 C 132 139, 160 151, 190 154 C 238 159, 274 158, 314 158")}.ble-scan-packet-c{offset-path:path("M 56 214 C 96 198, 116 174, 143 152")}.ble-scan-packet-d{offset-path:path("M 88 268 C 118 235, 128 184, 148 156")}.ble-scan-filter,.ble-scan-stack,.ble-scan-output{z-index:4;background:linear-gradient(#ffffff13,#ffffff05),#080c14e6;border:1px solid #ffffff18;min-width:0;position:relative;box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.ble-scan-filter{border-color:#5392ff33;border-radius:16px;grid-area:1/2;align-self:center;gap:8px;padding:10px;display:grid}.ble-scan-filter strong{font-size:.84rem;line-height:1}.ble-scan-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.ble-scan-filter-grid span{color:#ffffffc2;text-align:center;background:#5392ff13;border:1px solid #5392ff29;border-radius:8px;padding:5px;font-size:.5rem}.ble-scan-filter-status{grid-template-columns:1fr;gap:4px;margin-top:2px;font-size:.5rem;display:grid}.ble-scan-filter-status span,.ble-scan-filter-status strong{border-radius:8px;padding:5px 6px;font-size:.5rem;font-weight:500}.ble-scan-filter-status span{color:#ffffff8a;background:#ffffff0a}.ble-scan-filter-status strong{color:#d6ffe2e6;background:#75d2911a}.ble-scan-stack{border-radius:16px;grid-area:1/3;align-self:center;gap:6px;padding:10px;display:grid}.ble-scan-stack-layer{background:#ffffff09;border:1px solid #ffffff17;border-radius:10px;grid-template-columns:30px 1fr;align-items:center;gap:6px;min-height:32px;padding:6px 7px;display:grid}.ble-scan-stack-layer span{color:#ffffffd6;font-size:.56rem;font-weight:600}.ble-scan-stack-layer small{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.46rem;overflow:hidden}.ble-scan-output{border-color:#75d29124;border-radius:16px;grid-area:2/2/auto/4;align-self:stretch;gap:6px;padding:10px;display:grid}.ble-scan-output-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ble-scan-output-head strong{color:#ffffffd6;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.58rem;font-weight:600;overflow:hidden}.ble-scan-output-head span{color:#d6ffe2e6;border:1px solid #75d29138;border-radius:999px;padding:3px 6px;font-size:.46rem}.ble-scan-output-row{background:#ffffff09;border-radius:8px;align-items:center;gap:6px;min-width:0;padding:4px 6px;display:flex}.ble-scan-output-row span{background:#ffffff47;border-radius:50%;flex:none;width:7px;height:7px}.ble-scan-output-row.is-accepted span{background:#75d291;box-shadow:0 0 12px #75d2917a}.ble-scan-output-row small{min-width:0;color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.49rem;overflow:hidden}.ble-scan-feature-card:hover .ble-scan-stack,.ble-scan-feature-card:hover .ble-scan-filter,.ble-scan-feature-card:hover .ble-scan-output{border-color:#5392ff33}.ble-scan-feature-card:hover .ble-scan-output-row{background:#ffffff0d}.iot-logger-feature-card{isolation:isolate;background:radial-gradient(circle at 76% 18%, #5392ff21, transparent 32%), radial-gradient(circle at 14% 18%, #75d2911a, transparent 30%), radial-gradient(circle at 22% 88%, #d28c001a, transparent 32%), linear-gradient(180deg, #ffffff0e, #ffffff05), var(--card-solid);grid-template-columns:minmax(0,1fr) minmax(300px,.92fr);gap:16px;height:100%;padding:20px;display:grid;position:relative;overflow:auto}.signature-scroll-content .iot-logger-feature-card{grid-template-rows:none}.iot-logger-feature-card:before{z-index:-1;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%);mask-image:radial-gradient(circle at 72% 34%,#000,#0000 70%)}.iot-logger-feature-card:hover{border-color:#75d29142;box-shadow:0 34px 96px #0000008f,0 0 54px #5392ff1a}.iot-logger-feature-copy{align-content:start;gap:9px;min-width:0;display:grid}.iot-logger-eyebrow,.iot-logger-category,.iot-logger-copy-block h4,.iot-logger-stage-label,.iot-logger-source,.iot-logger-device,.iot-logger-network,.iot-logger-cloud,.iot-logger-status-strip{font-family:JetBrains Mono,monospace}.iot-logger-eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:.6rem;display:inline-flex}.iot-logger-feature-copy h3{letter-spacing:-.035em;max-width:23ch;margin:0;font-size:clamp(1.22rem,1.76vw,1.78rem);line-height:1.04}.iot-logger-category{color:#ffffffb8;margin:8px 0 0;font-size:.72rem}.iot-logger-summary{max-width:66ch;color:color-mix(in oklab, var(--fg-muted) 88%, white 12%);margin:10px 0 0;font-size:.78rem;line-height:1.46}.iot-logger-content-grid{grid-template-columns:minmax(0,1.08fr) minmax(152px,.92fr);gap:10px;display:grid}.iot-logger-copy-block{min-width:0}.iot-logger-copy-block h4{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:.62rem}.iot-logger-check-list,.iot-logger-impact-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.iot-logger-check-list li,.iot-logger-impact-list li,.iot-logger-focus-grid span{color:var(--fg-muted);font-size:.68rem;line-height:1.34;position:relative}.iot-logger-check-list li{padding-left:16px}.iot-logger-check-list li:before{content:"";background:#75d291;border-radius:2px;width:6px;height:6px;position:absolute;top:.68em;left:0;box-shadow:0 0 12px #75d29173}.iot-logger-impact-block{background:linear-gradient(#5392ff12,#ffffff04),#0609106b;border:1px solid #5392ff29;border-radius:16px;padding:9px 10px}.iot-logger-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.iot-logger-focus-grid span{background:#ffffff09;border:1px solid #ffffff12;border-radius:12px;padding:6px 8px}.iot-logger-tech-row{margin-top:0}.iot-logger-feature-visual{min-width:0;min-height:380px;display:grid}.iot-logger-visual{background:radial-gradient(circle at 26% 46%,#5392ff26,#0000 34%),radial-gradient(circle at 66% 42%,#75d29126,#0000 32%),radial-gradient(circle at 90% 60%,#75d2911a,#0000 28%),radial-gradient(circle at 88% 20%,#d28c000f,#0000 28%),#05080eb8;border:1px solid #ffffff14;border-radius:18px;grid-template-rows:minmax(150px,.94fr) minmax(128px,.78fr);grid-template-columns:minmax(68px,.56fr) minmax(126px,.95fr) minmax(112px,.78fr);gap:8px;min-height:100%;padding:10px;transition:border-color .22s,box-shadow .22s,filter .22s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000040}.iot-logger-feature-card:hover .iot-logger-visual{filter:saturate(1.1)contrast(1.03);border-color:#5392ff42;box-shadow:inset 0 1px #ffffff0f,0 20px 50px #00000047,0 0 42px #5392ff1f}.iot-logger-grid{background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 16% 86%,#0000);mask-image:linear-gradient(#0000,#000 16% 86%,#0000)}.iot-logger-stage-label{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin-bottom:5px;font-size:.44rem;display:block}.iot-logger-sources,.iot-logger-device,.iot-logger-network,.iot-logger-cloud{z-index:4;background:linear-gradient(#ffffff13,#ffffff05),#080c14e6;border:1px solid #ffffff18;min-width:0;position:relative;box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.iot-logger-sources{background:radial-gradient(circle at 35% 34%,#5392ff1a,#0000 58%),#080c14db;border-radius:14px;grid-area:1/1/3;align-content:center;gap:7px;padding:8px;display:grid}.iot-logger-source{background:#ffffff09;border:1px solid #5392ff24;border-radius:12px;justify-items:center;min-height:52px;padding:7px 5px;display:grid;position:relative}.iot-logger-source strong{z-index:1;color:#ffffffd6;font-size:.48rem;position:relative}.iot-logger-source small{z-index:1;color:var(--fg-muted);font-size:.4rem;position:relative}.iot-logger-source-ring{pointer-events:none;border:1px solid #5392ff38;border-radius:16px;animation:3s ease-out infinite ble-scan-wave;position:absolute;inset:-6px}.iot-logger-source-b .iot-logger-source-ring{border-color:#75d29147;animation-delay:.6s}.iot-logger-source-c .iot-logger-source-ring{animation-delay:1.1s}.iot-logger-device{border-color:#5392ff33;border-radius:16px;grid-area:1/2/3;align-self:center;gap:7px;padding:10px;display:grid}.iot-logger-device strong{color:#ffffffe0;font-size:.76rem;line-height:1.05}.iot-logger-device-tags{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.iot-logger-device-tags span,.iot-logger-protocols span{color:#ffffffc2;text-overflow:ellipsis;white-space:nowrap;background:#5392ff13;border:1px solid #5392ff29;border-radius:8px;min-width:0;padding:5px;font-size:.45rem;overflow:hidden}.iot-logger-buffer{background:#75d2910e;border:1px solid #75d2912e;border-radius:11px;gap:5px;margin-top:2px;padding:7px;display:grid}.iot-logger-buffer-head{color:#d6ffe2db;letter-spacing:.1em;text-transform:uppercase;font-size:.45rem}.iot-logger-buffer-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;display:grid}.iot-logger-buffer-slots span{color:#ffffffb3;text-align:center;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#75d29133,#ffffff09);border-radius:7px;min-width:0;padding:5px 2px;font-size:.38rem;overflow:hidden}.iot-logger-network{border-radius:14px;grid-area:1/3;align-self:end;gap:7px;padding:9px;display:grid}.iot-logger-signal{background:#ffffff09;border-radius:10px;align-items:end;gap:4px;height:32px;padding:6px;display:flex}.iot-logger-signal span{background:linear-gradient(#75d291e6,#5392ff47);border-radius:999px 999px 4px 4px;flex:1;box-shadow:0 0 12px #75d29129}.iot-logger-signal span:first-child{height:28%}.iot-logger-signal span:nth-child(2){height:48%}.iot-logger-signal span:nth-child(3){height:68%}.iot-logger-signal span:nth-child(4){background:linear-gradient(#d28c00c7,#5392ff38);height:88%}.iot-logger-protocols{gap:5px;display:grid}.iot-logger-protocols span:first-child{background:#75d29113;border-color:#75d29133}.iot-logger-retry{color:#ffd682cc;background:#d28c000f;border:1px solid #d28c0029;border-radius:9px;padding:6px;font-size:.43rem;line-height:1.25}.iot-logger-cloud{border-color:#75d29124;border-radius:16px;grid-area:2/3;align-self:start;gap:6px;padding:9px;display:grid}.iot-logger-cloud-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.iot-logger-cloud-head strong{color:#ffffffdb;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.56rem;overflow:hidden}.iot-logger-cloud-head span{color:#d6ffe2e6;border:1px solid #75d29138;border-radius:999px;padding:3px 5px;font-size:.4rem}.iot-logger-cloud-rows{gap:4px;display:grid}.iot-logger-cloud-rows div{border-radius:8px;align-items:center;gap:5px;min-width:0;padding:5px;display:flex}.iot-logger-cloud-rows span{background:#75d291;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 12px #75d2917a}.iot-logger-cloud-rows small{min-width:0;color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.4rem;overflow:hidden}.iot-logger-cloud-detail{color:#ffffff9e;text-overflow:ellipsis;white-space:nowrap;opacity:.4;background:#5392ff0f;border:1px solid #5392ff24;border-radius:9px;padding:6px;font-size:.4rem;transition:opacity .22s;overflow:hidden}.iot-logger-feature-card:hover .iot-logger-cloud-detail{opacity:1}.iot-logger-lane{z-index:2;pointer-events:none;background:linear-gradient(90deg,#0000,#5392ff94,#75d29157,#0000);border-radius:999px;height:2px;position:absolute;box-shadow:0 0 16px #5392ff21}.iot-logger-lane-ingest{width:23%;top:49%;left:19%}.iot-logger-lane-cellular{background:linear-gradient(90deg,#0000,#75d29173,#5392ff94,#0000);width:26%;top:40%;left:48%}.iot-logger-lane-cloud{background:linear-gradient(#0000,#75d2917a,#5392ff85,#0000);width:2px;height:18%;top:49%;left:81%}.iot-logger-feature-card:hover .iot-logger-lane{background:linear-gradient(90deg,#0000,#75d291c2,#5392ffb8,#0000);box-shadow:0 0 22px #5392ff38}.iot-logger-feature-card:hover .iot-logger-lane-cloud{background:linear-gradient(#0000,#75d291c2,#5392ffb8,#0000)}.iot-logger-packet{border-radius:3px;width:8px;height:8px;position:absolute;top:50%;transform:translate(-50%,-50%)}.iot-logger-packet-ble{background:#5da3ff;box-shadow:0 0 16px #5392ff94}.iot-logger-packet-upload{background:#75d291;width:9px;height:9px;box-shadow:0 0 16px #75d2919e,0 0 28px #75d29133}.iot-logger-packet-cloud{background:#75d291;width:9px;height:9px;left:50%;box-shadow:0 0 16px #75d2919e,0 0 28px #5392ff33}.iot-logger-status-strip{z-index:5;color:var(--fg-muted);background:#04070cc2;border:1px solid #ffffff13;border-radius:13px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:.52rem;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.iot-logger-status-strip strong{color:#ffffffd1;font-weight:500}.tech-card{min-height:210px;transform-style:preserve-3d;will-change:transform;padding:28px 30px;transition:box-shadow .5s}.tech-card p{margin-top:0}.tag-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.tag{color:var(--fg-muted);background:#ffffff0e;border:1px solid #ffffff14;border-radius:999px;padding:4px 13px;font-size:.7rem;transition:background .2s,color .2s,border-color .2s}.tag:hover{color:var(--accent-strong);background:#d28c001a;border-color:#d28c0047}.publication-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px;display:grid}.publication-stats>div{border:1px solid var(--glass-border);background:linear-gradient(180deg, #ffffff09, #ffffff04), var(--card-solid);border-radius:16px;gap:4px;padding:18px 20px;transition:box-shadow .35s,border-color .35s,transform .35s;display:grid;position:relative;overflow:hidden}.publication-stats>div:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000059,0 0 0 1px #d28c001a}.publication-stats>div:before{content:"";pointer-events:none;z-index:3;border-radius:inherit;background:linear-gradient(108deg,#0000 38%,#ffffff0b 50%,#0000 62%) 160% 0/260% 100%;position:absolute;inset:0}.publication-stats>div:hover:before{animation:.7s forwards pub-card-shimmer}.publication-stats>div:after{content:"";pointer-events:none;z-index:3;background:linear-gradient(#d28c00bf,#d28c001a);width:2px;height:0%;transition:height .45s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.publication-stats>div:hover:after{height:100%}.publication-stat-number{font-size:1.45rem;font-weight:700}.publication-stat-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}.publication-list,.experience-list{gap:16px;display:grid}.publication-toggle{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.publication-card{transition:box-shadow .35s,border-color .35s,transform .35s;position:relative;overflow:hidden}.publication-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000059,0 0 0 1px #d28c001a}.publication-card:before{content:"";pointer-events:none;z-index:3;border-radius:inherit;background:linear-gradient(108deg,#0000 38%,#ffffff0b 50%,#0000 62%) 160% 0/260% 100%;position:absolute;inset:0}.publication-card:hover:before{animation:.7s forwards pub-card-shimmer}.publication-card:after{content:"";pointer-events:none;z-index:3;background:linear-gradient(#d28c00bf,#d28c001a);width:2px;height:0%;transition:height .45s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.publication-card:hover:after,.publication-card.is-open:after{height:100%}.publication-card.is-open{border-color:#d28c0042}.publication-main{justify-content:space-between;gap:16px;width:100%;padding:22px 24px;display:flex}.publication-card.has-download .publication-main{padding-right:172px}.publication-copy{text-align:left;gap:8px;display:grid}.publication-title{font-size:1rem;font-weight:600;line-height:1.45}.publication-authors,.publication-meta{color:var(--fg-muted);font-size:.9rem}.publication-author-self{color:var(--fg);font-weight:600}.publication-side{align-content:space-between;justify-items:end;min-width:110px;display:grid}.publication-citations{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;justify-items:end;gap:1px;font-size:.74rem;display:grid}.publication-citations strong{color:var(--fg);letter-spacing:normal;font-size:1.3rem}.publication-expand{color:var(--accent);font-size:.7rem}.publication-detail{gap:18px;padding:0 24px 24px;display:grid}.publication-funding{gap:4px;display:grid}.publication-funding-label{color:var(--accent);font-size:.78rem;font-weight:600}.publication-download{color:#ffffffc7;border-bottom:1px solid #ffffff42;justify-self:start;font-size:.82rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s}.publication-download-persistent{z-index:2;padding:2px 0;position:absolute;top:22px;right:24px}.publication-download:hover{color:var(--fg);border-color:#ffffff8f}.experience-card{padding:26px}.spotlight-card{--spotlight-x:50%;--spotlight-y:0%;--spotlight-opacity:0;--spotlight-border-opacity:0;--spotlight-size:360px;isolation:isolate;border-color:rgba(var(--spotlight-border-rgb,235, 177, 68), calc(.08 + (var(--spotlight-border-opacity) * .42)));background:linear-gradient(180deg, #ffffff0a, #ffffff03), radial-gradient(var(--spotlight-size) var(--spotlight-size) at var(--spotlight-x) var(--spotlight-y), rgba(var(--spotlight-rgb,210, 140, 0), calc(var(--spotlight-opacity) * .15)), transparent 72%), var(--card-solid);transition:transform .22s,border-color .22s,box-shadow .22s;position:relative;overflow:hidden}.spotlight-card:before,.spotlight-card:after{pointer-events:none;content:"";position:absolute}.spotlight-card:before{z-index:0;border-radius:inherit;background:radial-gradient(calc(var(--spotlight-size) * .78) calc(var(--spotlight-size) * .78) at var(--spotlight-x) var(--spotlight-y), rgba(var(--spotlight-border-rgb,235, 177, 68), calc(var(--spotlight-border-opacity) * .72)), transparent 62%), linear-gradient(180deg, #ffffff1f, transparent 42%);opacity:.9;padding:1px;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.spotlight-card:after{z-index:0;border-radius:inherit;background:radial-gradient(calc(var(--spotlight-size) * .65) calc(var(--spotlight-size) * .65) at var(--spotlight-x) var(--spotlight-y), rgba(255, 245, 220, calc(var(--spotlight-opacity) * .08)), transparent 68%);inset:0}.spotlight-card>*{z-index:1;position:relative}.spotlight-card[data-spotlight-active=true]{--spotlight-opacity:1;--spotlight-border-opacity:1;box-shadow:var(--shadow-card), 0 0 42px rgba(var(--spotlight-rgb,210, 140, 0), .11);transform:translateY(-2px)}.spotlight-card-size-sm{width:12rem;min-height:16rem}.spotlight-card-size-md{width:16rem;min-height:20rem}.spotlight-card-size-lg{width:20rem;min-height:24rem}.experience-header,.education-card{grid-template-columns:auto 1fr;align-items:start;gap:18px;display:grid}.logo-shell{background:#ffffff08;border:1px solid #ffffff14;border-radius:18px;place-items:center;width:74px;height:74px;padding:10px;display:grid;overflow:hidden}.logo-wide{width:108px}.logo-shell img{object-fit:contain;width:100%;height:100%}.experience-company{margin:0 0 4px}.experience-tenure,.experience-time,.education-degree{color:var(--fg-muted);margin:0}.experience-roles{gap:18px;margin-top:24px;display:grid}.experience-role{border-top:1px solid #ffffff12;padding-top:18px}.experience-role h4{margin:0 0 4px;font-size:1rem}.experience-role ul{margin:16px 0 0;padding-left:20px}.experience-role li+li{margin-top:10px}.education-card{background:linear-gradient(180deg, #ffffff0d, #ffffff05), radial-gradient(circle at top right, #d28c0024, transparent 40%), radial-gradient(circle at bottom left, #ffffff0b, transparent 38%), var(--card-solid-alt);height:100%;box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffff09;padding:28px;transition:transform .22s,box-shadow .22s,border-color .22s;position:relative;overflow:hidden}.education-accent{transform-origin:0;background:linear-gradient(90deg,#d28c00c7,#d28c0026 62%,#0000);height:2px;transition:transform .22s,opacity .22s,filter .22s;position:absolute;inset:0 0 auto}.education-column{align-content:start;justify-items:start;display:grid}.education-logo-shell{background:linear-gradient(145deg,#ffffff1a,#ffffff06),radial-gradient(circle at 30% 30%,#d28c0029,#0000 72%);border-color:#d28c0033;border-radius:24px;width:96px;height:96px;padding:16px;transition:border-color .22s,box-shadow .22s,transform .22s;box-shadow:inset 0 1px #ffffff0d,0 10px 30px #00000029}.education-card-body{grid-template-rows:auto 1fr;align-content:stretch;gap:16px;height:100%;display:grid}.education-head{gap:8px;display:grid}.education-head h3{line-height:1.2}.education-thesis{margin:0;line-height:1.65}.education-thesis-block{background:linear-gradient(#ffffff09,#ffffff04),#06080e52;border:1px solid #d28c001f;border-radius:18px;align-content:start;gap:10px;min-height:100%;padding:16px 18px;transition:border-color .22s,background .22s,box-shadow .22s;display:grid}.education-thesis-label{color:#ffffffb8;text-transform:uppercase;letter-spacing:.18em;font-family:JetBrains Mono,monospace;font-size:.72rem}.education-card:hover{border-color:#d28c002e;transform:translateY(-4px);box-shadow:0 18px 50px #0000003d,0 0 36px #d28c0014,inset 0 1px #ffffff0a}.education-card:hover .education-accent{opacity:1;filter:drop-shadow(0 0 10px #d28c0038);transform:scaleX(1.06)}.education-card:hover .education-logo-shell{border-color:#d28c004d;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff0f,0 14px 34px #0003,0 0 24px #d28c001f}.education-card:hover .education-thesis-block{background:linear-gradient(#ffffff0d,#ffffff05),#080b126b;border-color:#d28c0038;box-shadow:inset 0 1px #ffffff08,0 10px 24px #00000024}.hobbies-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.hobby-card{border:1px solid var(--glass-border);background:var(--bg-alt);border-radius:20px;min-height:220px;position:relative;overflow:hidden}.hobby-card:first-child,.hobby-card:nth-child(4),.hobby-card:nth-child(2),.hobby-card:nth-child(3),.hobby-card:nth-child(5){grid-column:span 4}.hobby-image{object-fit:cover;width:100%;height:100%;transition:transform .35s}.hobby-card:hover .hobby-image{transform:scale(1.05)}.hobby-overlay{background:linear-gradient(#0000 40%,#080a10db);position:absolute;inset:0}.hobby-label{font-size:1rem;font-weight:600;position:absolute;bottom:16px;left:18px}.testimonial-section{overflow:hidden}.testimonial-wrap{width:100%;margin:-18px 0;padding:18px 0;overflow:hidden}.testimonial-track{gap:16px;width:max-content;animation:34s linear infinite scroll-left;display:flex}.testimonial-wrap:hover .testimonial-track{animation-play-state:paused}.testimonial-card{opacity:0;background:linear-gradient(180deg, #ffffff0a, #ffffff03), var(--card-solid);border-radius:18px;grid-template-columns:auto 1fr;gap:16px;width:min(440px,100vw - 64px);padding:22px;transition:transform .22s,border-color .22s,box-shadow .22s;display:grid;position:relative;overflow:hidden}.testimonial-card:after{content:"";opacity:0;pointer-events:none;border-radius:inherit;background:radial-gradient(90% 55% at 50% 120%,#f59e0b1a,#0000 70%);transition:opacity .4s;position:absolute;inset:0}.testimonial-card:hover:after{opacity:1}.testimonial-card:before{content:"";opacity:.55;transform-origin:0;background:linear-gradient(90deg,#f59e0b6b,#f59e0b0f 70%,#0000);height:1px;transition:opacity .22s,filter .22s,transform .22s;position:absolute;inset:0 0 auto}.reveal.in .testimonial-card{animation:.68s both testimonial-card-in}.testimonial-card:hover{border-color:#f59e0b33;transform:translateY(-4px);box-shadow:0 18px 46px #0000003d,0 0 32px #f59e0b12}.testimonial-card:hover:before{opacity:1;filter:drop-shadow(0 0 8px #f59e0b38);transform:scaleX(1.08)}.testimonial-avatar{object-fit:cover;background:#ffffff14;border:2px solid #f59e0bf2;border-radius:50%;width:56px;height:56px;transition:border-color .22s,box-shadow .22s,transform .22s;box-shadow:0 0 0 3px #f59e0b2e,0 0 18px #f59e0b6b,0 8px 24px #080a1447}.testimonial-card:hover .testimonial-avatar{border-color:#f59e0b;transform:translateY(-2px);box-shadow:0 0 0 3px #f59e0b38,0 0 24px #f59e0b80,0 10px 26px #080a1452}.testimonial-quote{margin:0 0 8px}.testimonial-highlight{color:#ffffffe0;background:linear-gradient(90deg,#f59e0b2e,#ffffff14,#f59e0b2e) 0 0/220% 100%;border-radius:.35em;padding:.03em .18em;animation:6s ease-in-out infinite quote-highlight-shimmer}.testimonial-name{margin:0;font-size:.84rem;transition:color .22s}.testimonial-card:hover .testimonial-name{color:var(--accent)}.cta-card{border-radius:28px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:34px;display:grid;position:relative;overflow:hidden}.cta-glow{filter:blur(18px);background:radial-gradient(circle,#d28c0029,#0000 62%);width:320px;height:320px;position:absolute;inset:auto -10% -30% auto}.cta-badge{margin-bottom:18px}.cta-card h2{z-index:1;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.12;position:relative}.cta-card p,.cta-actions{z-index:1;position:relative}.footer{color:var(--fg-faint);padding:30px 0 42px}.footer-inner{border-top:1px solid #ffffff0f;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;display:flex}.footer-inner a{text-decoration:none}.footer-links{align-items:center;gap:20px;display:flex}@keyframes char-reveal{0%{opacity:0;transform:translateY(28px)rotate(-3deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse-dot{0%,to{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}}@keyframes scroll-pulse{0%,to{opacity:.5;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.3)}}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes moveBackground{0%{background-position:0 0}to{background-position:0 -1000%}}@keyframes rotate-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes orbit-pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes orbital-ping{0%{opacity:.7;transform:scale(1)}75%,to{opacity:0;transform:scale(2)}}@keyframes orbit-node-fade-in{0%{opacity:0}to{opacity:1}}@keyframes orbit-node-scale-in{0%{transform:scale(.55)}to{transform:scale(1)}}@keyframes pub-card-shimmer{0%{background-position:160% 0}to{background-position:-60% 0}}@keyframes image-fade{0%{opacity:0}to{opacity:1}}@keyframes testimonial-card-in{0%{opacity:0}to{opacity:1}}@keyframes quote-highlight-shimmer{0%,70%,to{background-position:0%}85%{background-position:100%}}@keyframes dma-ring-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dma-transfer-band{0%,to{opacity:.22;transform:translate(-16%)scaleX(.78)}50%{opacity:.82;transform:translate(16%)scaleX(1)}}@keyframes dma-power-ready{0%,12%,24%{opacity:.25;transform:scale(.82)}6%,18%,38%,to{opacity:1;transform:scale(1)}}@keyframes ble-scan-wave{0%{opacity:.68;transform:scale(.72)}72%{opacity:0;transform:scale(1.42)}to{opacity:0;transform:scale(1.42)}}@keyframes ble-scan-field-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}@media (max-width:980px){.techstack-split{grid-template-columns:1fr}.techstack-split .tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-grid,.education-grid,.carousel,.publication-stats,.cta-card{grid-template-columns:1fr}.hobby-card{grid-column:span 6!important}.dma-feature-card,.memmap-feature-card,.test-framework-feature-card,.ble-scan-feature-card,.iot-logger-feature-card{grid-template-columns:1fr;height:auto;min-height:100%}.dma-feature-visual{min-height:360px}.memmap-feature-visual{min-height:410px}.test-framework-feature-visual{min-height:390px}.ble-scan-feature-visual{min-height:360px}.iot-logger-feature-visual{min-height:370px}}@media (max-width:820px){.nav{min-height:80px;padding:16px 20px}.nav-glass,.nav-links{display:none}.nav-toggle{display:grid}.mobile-nav-backdrop{z-index:101;cursor:default;background:0 0;border:0;display:block;position:fixed;inset:0}.mobile-nav-panel.is-open{gap:2px;display:grid}.page{padding:0 20px}.hero{padding-inline:20px}.hero-avatar-stage{width:214px;height:214px}.hero-float-card-right{right:-4px}.hero-float-card-left{left:-8px}.publication-main,.experience-header,.education-card{grid-template-columns:1fr}.publication-main{flex-direction:column}.publication-card.has-download .publication-main{padding-right:24px}.publication-download-persistent{width:fit-content;margin:-8px 24px 18px;display:inline-flex;position:static}.publication-side{justify-items:start}.testimonial-card{width:min(360px,100vw - 40px)}.container-scroll-stage{height:auto;margin-top:0;padding-bottom:24px}.work-section .container-scroll-stage{height:auto;margin-top:0;padding-bottom:8px}.container-scroll-perspective{padding:16px 0}.container-scroll-card{border-width:3px;border-radius:24px;height:auto;min-height:44rem;padding:8px}.container-scroll-card-inner{border-radius:18px;overflow:auto}.signature-scroll-content{padding:14px}.signature-scroll-content .carousel{grid-template-columns:1fr;height:auto}.signature-scroll-content .carousel-main{height:auto}.signature-scroll-content .carousel-image{aspect-ratio:16/10;height:auto}.signature-scroll-content .carousel-thumbs{padding-right:0;overflow:visible}.signature-scroll-content .dma-feature-card,.signature-scroll-content .memmap-feature-card,.signature-scroll-content .test-framework-feature-card,.signature-scroll-content .ble-scan-feature-card,.signature-scroll-content .iot-logger-feature-card{height:auto}.dma-content-grid,.dma-focus-grid,.memmap-content-grid,.memmap-focus-grid,.test-framework-content-grid,.test-framework-focus-grid,.ble-scan-content-grid,.ble-scan-focus-grid,.iot-logger-content-grid,.iot-logger-focus-grid{grid-template-columns:1fr}.dma-feature-copy h3,.memmap-feature-copy h3{max-width:18ch}.test-framework-feature-copy h3,.ble-scan-feature-copy h3{max-width:20ch}.iot-logger-feature-copy h3{max-width:22ch}.dma-node{min-width:102px;padding:11px}.dma-node-mcu{min-width:132px}.dma-node strong{font-size:.78rem}.dma-node small,.dma-status-strip{font-size:.56rem}.dma-mcu-tags{grid-template-columns:1fr 1fr}.memmap-processor-tags{grid-template-columns:1fr}.test-framework-stage-row{grid-template-columns:repeat(5,minmax(74px,1fr));padding-bottom:6px;overflow-x:auto}.test-framework-pipeline{left:11%;right:11%}.ble-scan-visual{grid-template-rows:minmax(190px,1fr) minmax(96px,.48fr);grid-template-columns:minmax(102px,.66fr) minmax(126px,.86fr) minmax(132px,.88fr)}.iot-logger-visual{grid-template-rows:minmax(150px,.94fr) minmax(128px,.78fr);grid-template-columns:minmax(68px,.56fr) minmax(126px,.95fr) minmax(112px,.78fr)}}@media (max-width:640px){.tech-orbit-wrap{min-height:auto}.skill-orbit-tabs{width:100%;margin-bottom:10px}.skill-orbit-tabs button{flex:1;min-width:0;padding:0 10px;font-size:.62rem}.skill-orbit-subtitle{margin-bottom:22px;font-size:.84rem}.skill-detail-dock{display:block}.skill-detail-popover{display:none}.techstack-split .tech-grid{grid-template-columns:1fr}.section{padding:72px 0}.hero{min-height:auto;padding-top:120px}.hero-avatar-stage{width:184px;height:184px;margin-bottom:18px}.hero-avatar-wrap{inset:26px}.hero-float-card{border-radius:14px;padding:8px 10px}.hero-float-card strong{font-size:.74rem}.hero-float-card-right{top:20px;right:-6px}.hero-float-card-left{bottom:22px;left:-6px}.hero-title{max-width:13ch}.hero-supporting{font-size:.92rem}.hobby-card{grid-column:1/-1!important}.cta-card{padding:28px 22px}.container-scroll-stage,.work-section .container-scroll-stage{height:auto}.container-scroll-card{height:auto;min-height:38rem}.signature-scroll-content{padding:10px}.signature-scroll-content .carousel-body{padding:20px}.signature-scroll-content .carousel-thumb{grid-template-columns:64px 1fr}.signature-scroll-content .carousel-thumb-image{width:64px;height:58px}.dma-feature-card,.memmap-feature-card,.test-framework-feature-card,.ble-scan-feature-card,.iot-logger-feature-card{padding:18px}.dma-summary,.memmap-summary,.test-framework-summary,.ble-scan-summary,.iot-logger-summary{font-size:.86rem}.dma-node{width:min(76%,240px);left:50%;right:auto;transform:translate(-50%)}.dma-node-ble{top:8%;left:50%}.dma-node-mcu{width:min(82%,260px);top:37%;transform:translate(-50%)}.dma-node-cellular{top:69%;left:50%}.dma-lane{background:linear-gradient(#0000,#5392ff7a,#d28c0061,#0000);width:3px;height:18%;left:50%;transform:translate(-50%)}.dma-lane-left{top:25%}.dma-lane-right{top:55%}.dma-lane:before,.dma-lane:after{top:auto;left:50%;transform:translate(-50%)}.dma-lane:before{top:0}.dma-lane:after{bottom:0;right:auto}.dma-packet{left:50%!important}.dma-activity-lane{left:18%;right:18%}.dma-status-strip{flex-direction:column}.memmap-feature-visual,.test-framework-feature-visual,.ble-scan-feature-visual,.iot-logger-feature-visual{min-height:auto}.test-framework-visual{gap:10px;min-height:auto;padding:14px;display:grid}.test-framework-stage-row,.test-framework-runner,.test-framework-hardware,.test-framework-logic,.test-framework-results{width:100%;min-width:0;position:relative;inset:auto}.test-framework-stage-row{grid-template-columns:1fr;padding-bottom:0;overflow:visible}.test-framework-pipeline{display:none}.test-framework-stage{min-height:auto}.test-framework-runner,.test-framework-hardware,.test-framework-logic,.test-framework-results{inset:auto}.memmap-visual{gap:10px;min-height:auto;padding:14px;display:grid}.memmap-stage,.memmap-processor,.memmap-normalize,.memmap-clusters,.memmap-conflicts,.memmap-report{width:100%;min-width:0;position:relative;inset:auto;transform:none}.memmap-flow{display:none}.memmap-sources{width:100%;min-width:0}.memmap-processor-tags{grid-template-columns:repeat(3,minmax(0,1fr))}.memmap-report{bottom:auto;right:auto}.ble-scan-visual{grid-template-rows:none;grid-template-columns:1fr;gap:10px;min-height:auto;padding:14px;display:grid}.ble-scan-field,.ble-scan-packet-layer{display:none}.ble-scan-broadcasts,.ble-scan-filter,.ble-scan-stack,.ble-scan-output{grid-area:auto;width:100%;min-width:0;position:relative;inset:auto;transform:none}.ble-scan-broadcasts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ble-scan-broadcasts .ble-scan-stage-label{grid-column:1/-1}.ble-scan-device{width:100%;min-height:58px;position:relative;inset:auto}.ble-scan-output{align-self:auto}.iot-logger-visual{grid-template-columns:1fr;gap:10px;min-height:auto;padding:14px;display:grid}.iot-logger-lane,.iot-logger-status-strip{display:none}.iot-logger-sources,.iot-logger-device,.iot-logger-network,.iot-logger-cloud{grid-column:auto;width:100%;min-width:0;position:relative;inset:auto}.iot-logger-sources{grid-template-columns:repeat(3,minmax(0,1fr));align-content:stretch}.iot-logger-sources .iot-logger-stage-label{grid-column:1/-1}.iot-logger-source{min-height:58px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
