@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/space-grotesk-vietnamese-wght-normal.0da2o5sn3utep.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/space-grotesk-latin-ext-wght-normal.0ww4yqxbk72bj.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/space-grotesk-latin-wght-normal.092gko6h6levo.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.1ladf10s224e1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0x7cg5h5x34js.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.1k07jbkicvzf3.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.0a13tgqsi9z78.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.3rxtet6g9i1k3.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2rmhnsrc80fag.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root,[data-theme=pcb]{--bg:#0b1410;--surface:#111d17;--line:#1e3328;--chip:#3b5a49;--accent:#d08a4e;--accent-hover:#e9a56b;--accent-2:#d08a4e;--on-accent:#0b1410;--text:#e8ede9;--muted:#b3c1b8;--dim:#8fa398;--ugv-hull:#4d6340;--ugv-hull-top:#5f7a4f;--ugv-track:#1a1f1c;--ugv-wheel:#2b332e;--ugv-estop:#d9473b;--robot-hub:#e3c13b;--pcb-board:#24563a;--pcb-trace:#2f6e49;--pcb-silk:#d9e6dc;--led-lens:#e8892a;--ir-glow:#e07bff;--plant:#5fae5a;--water:#5aaee8;--relay-blue:#2f7fd0;--terminal-green:#3c8a4c;--lcd-bg:#a8c43c;--lcd-text:#1d2a10;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=osc]{--bg:#05080a;--surface:#0a1410;--line:#123a2a;--chip:#1e5a42;--accent:#5cffb0;--accent-hover:#9dffd0;--accent-2:#ffb547;--on-accent:#05080a;--text:#dce6e2;--muted:#a6b9b0;--dim:#7f948b;--ugv-hull:#3f5a44;--ugv-hull-top:#4f6e54;--ugv-track:#0e1311;--ugv-wheel:#1c2622;--ugv-estop:#ff5a4a;--robot-hub:#f0cf4a;--pcb-board:#154530;--pcb-trace:#1f6043;--pcb-silk:#c8dccf;--led-lens:#e8892a;--ir-glow:#e98bff;--plant:#5cff9c;--water:#6cc8ff;--relay-blue:#2a73c4;--terminal-green:#2f7a44;--lcd-bg:#a8c43c;--lcd-text:#1d2a10;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f6f2;--surface:#fff;--line:#d5dad3;--chip:#9aa59d;--accent:#b45309;--accent-hover:#92400e;--accent-2:#b45309;--on-accent:#fff;--text:#14201a;--muted:#46524b;--dim:#5b665f;--ugv-hull:#4d6340;--ugv-hull-top:#647f53;--ugv-track:#2a2f2c;--ugv-wheel:#3d4540;--ugv-estop:#c53a2f;--robot-hub:#d4a91c;--pcb-board:#2e6b45;--pcb-trace:#3d8257;--pcb-silk:#f2f6f2;--led-lens:#e07a18;--ir-glow:#a63cd0;--plant:#3f8f3c;--water:#2f86c8;--relay-blue:#2f7fd0;--terminal-green:#3c8a4c;--lcd-bg:#a8c43c;--lcd-text:#1d2a10;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);color:var(--text);margin:0;font-family:Space Grotesk Variable,system-ui,sans-serif;font-size:17px;line-height:1.6;transition:background-color .25s,color .25s}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:JetBrains Mono Variable,ui-monospace,monospace}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.container-wide{max-width:1600px;padding:0 clamp(24px,4vw,64px)}.skip-link{background:var(--accent);color:var(--on-accent);z-index:100;border-radius:8px;padding:10px 16px;position:absolute;top:-60px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:72px;display:flex}.brand{color:var(--text);align-items:center;gap:12px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand:hover{color:var(--text)}.brand-mark{border:2px solid var(--accent);width:36px;height:36px;color:var(--accent);border-radius:6px;place-items:center;font-size:13px;font-weight:500;display:grid}.main-nav{gap:24px;display:flex}.main-nav a{color:var(--muted);font-size:15px;text-decoration:none}.main-nav a:hover{color:var(--text)}.header-controls{align-items:center;gap:10px;display:flex}.lang-switch{border:1px solid var(--line);border-radius:8px;font-size:13px;display:flex;overflow:hidden}.lang-switch a,.lang-switch span{min-width:44px;height:42px;color:var(--dim);place-items:center;padding:0 10px;text-decoration:none;display:grid}.lang-switch [aria-current=true]{background:var(--accent);color:var(--on-accent);font-weight:500}.theme-switch{gap:6px;display:flex}.theme-btn{border:1px solid var(--line);width:44px;height:44px;color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;place-items:center;transition:border-color .2s,color .2s,background .2s;display:grid}.theme-btn:hover{color:var(--text)}[data-theme=light] .theme-btn[data-value=light],[data-theme=pcb] .theme-btn[data-value=pcb],[data-theme=osc] .theme-btn[data-value=osc]{border-color:var(--accent);color:var(--accent);background:var(--surface)}@media (max-width:900px){.main-nav{order:3;gap:20px;width:100%;padding-bottom:12px;overflow-x:auto}}.hero{flex-direction:column;min-height:calc(100svh - 73px);display:flex;position:relative;overflow:hidden}.hero-grid{flex:1;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-content:center;align-items:center;gap:clamp(48px,5vw,112px);padding-top:64px;padding-bottom:64px;display:grid}.hero-text{container-type:inline-size}.hero-label{color:var(--accent);letter-spacing:.1em;margin:0 0 clamp(20px,2.5vh,32px);font-size:clamp(13px,.85vw,17px)}.hero h1{letter-spacing:-.03em;margin:0 0 clamp(22px,3vh,36px);font-size:clamp(26px,min(10cqi,6.2vh),76px);font-weight:700;line-height:1.16}.hc-line{white-space:nowrap;opacity:0;animation:.45s steps(12,end) both hc-type;display:block}.hc-line:nth-child(2){animation-delay:.35s}.hc-line:nth-child(3){animation-delay:.7s}.hc-line:nth-child(4){animation-delay:1.05s}.hc-line:nth-child(5){animation-delay:1.4s}.hc-indent{border-left:2px solid var(--line);margin-left:.25em;padding-left:1.2em}.hc-kw{color:var(--accent)}.hc-fn{color:var(--text)}.hc-punc{color:var(--dim);font-weight:500}.hc-caret{vertical-align:-.08em;background:var(--accent);width:.5em;height:.9em;margin-left:.15em;animation:1s step-end infinite hc-blink;display:inline-block}@keyframes hc-type{0%{opacity:1;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes hc-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.hc-line,.hc-caret{opacity:1;animation:none}}.hero-intro{color:var(--muted);max-width:32em;margin:0 0 clamp(32px,4vh,48px);font-size:clamp(18px,min(1.25vw,2.4vh),24px)}.hero .btn{min-height:clamp(48px,3.2vw,60px);padding:0 clamp(24px,1.8vw,34px);font-size:clamp(16px,1vw,19px)}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.btn{border-radius:8px;align-items:center;min-height:48px;padding:0 24px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .15s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);color:var(--on-accent)}.btn-ghost{border:1px solid var(--chip);color:var(--text)}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.hero-visual{justify-self:end;width:min(100%,120vh - 360px);height:auto;display:block}.visual-osc{display:none}[data-theme=osc] .visual-osc{display:block}[data-theme=osc] .visual-pcb{display:none}@keyframes scan{to{stroke-dashoffset:-800px}}.osc-glow{filter:drop-shadow(0 0 6px var(--accent))}.osc-glow-2{filter:drop-shadow(0 0 5px var(--accent-2))}.osc-trace2{stroke-dasharray:500 300;animation:5s linear infinite scan}@media (prefers-reduced-motion:reduce){.osc-trace2{animation:none}html{scroll-behavior:auto}}.code-ch{display:none}[data-theme=osc] .code-ch{display:inline}[data-theme=osc] .code-j{display:none}.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.strip-item{border-left:1px solid var(--line);flex-direction:column;gap:4px;padding:20px 24px 24px;font-size:clamp(17px,1.05vw,20px);display:flex}.strip-item:first-child{border-left:0;padding-left:0}.strip-code{color:var(--accent);font-size:clamp(12px,.75vw,14px)}.strip-tools{color:var(--dim);font-size:clamp(12px,.75vw,14px)}@media (max-width:860px){.hero{min-height:0}.hero-grid{grid-template-columns:1fr;padding-top:48px;padding-bottom:32px}.hero-visual{justify-self:center;width:100%;max-width:480px;margin:0 auto}.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strip-item:nth-child(odd){border-left:0;padding-left:0}.strip-item:nth-child(n+3){border-top:1px solid var(--line)}}.section{border-bottom:1px solid var(--line);padding:96px 0}.section-head{align-items:baseline;gap:16px;margin-bottom:40px;display:flex}.section-index{color:var(--accent);letter-spacing:.1em;font-size:13px}.section-head h2{letter-spacing:-.015em;margin:0;font-size:clamp(30px,4vw,44px);line-height:1.1}.about-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;display:grid}.about-grid p{color:var(--muted);margin:0 0 18px;font-size:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px}.card h3{letter-spacing:.1em;color:var(--accent);margin:0 0 14px;font-size:13px;font-weight:500}.about-grid .card+.card{margin-top:16px}.meta{color:var(--dim);font-size:14px}.lang-row{justify-content:space-between;padding:6px 0;display:flex}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:7px}.tl-item{padding-bottom:48px;padding-left:44px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-dot{border:2.5px solid var(--accent);background:var(--bg);border-radius:50%;width:16px;height:16px;position:absolute;top:6px;left:0}.tl-head{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.tl-head h3{margin:0;font-size:22px}.tl-role{color:var(--accent);font-weight:500}.tl-item ul{max-width:820px;color:var(--muted);margin:14px 0 0;padding-left:20px}.tl-item li+li{margin-top:6px}.tags{flex-wrap:wrap;gap:8px;margin-top:16px;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:4px 10px;font-size:12px}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.skills-grid .card ul{margin:0;padding:0;list-style:none}.skills-grid .card li{padding:4px 0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.project{flex-direction:column;display:flex}.project-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.project h3.project-name{color:var(--text);letter-spacing:0;margin:0;font-size:22px;font-weight:700}.status{color:var(--accent-2);align-items:center;gap:8px;font-size:12px;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.project p{color:var(--muted);margin:0}.contact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.contact p{color:var(--muted);max-width:520px;margin:0;font-size:20px}.contact-mail{word-break:break-all;font-size:clamp(20px,3vw,30px);font-weight:700;text-decoration:none}.site-footer{color:var(--dim);padding:32px 0;font-size:14px}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.footer-inner a{color:var(--dim)}@media (max-width:860px){.section{padding:64px 0}.about-grid{grid-template-columns:1fr;gap:24px}}.project{position:relative}.project-top-right{align-items:center;gap:12px;display:flex}.project-link{color:inherit;text-decoration:none}.project-link:after{content:"";border-radius:12px;position:absolute;inset:0}.project-clickable{transition:border-color .2s,transform .15s}.project-clickable:hover{border-color:var(--accent);transform:translateY(-2px)}.project-clickable:hover .project-more{color:var(--accent-hover)}.project-ext,.project-bottom a{z-index:1;position:relative}.project-ext{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);border-radius:8px;place-items:center;transition:color .2s,border-color .2s;display:grid}.project-ext:hover{color:var(--accent);border-color:var(--accent)}.project-bottom{justify-content:space-between;gap:16px;margin-top:auto;padding-top:16px;font-size:14px;display:flex}.project-more{color:var(--accent);margin-left:auto}.project-page{max-width:820px}.back-link{margin-bottom:32px;font-size:14px;text-decoration:none;display:inline-block}.project-page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.project-page-head h1{letter-spacing:-.02em;margin:0;font-size:clamp(36px,6vw,60px);line-height:1.05}.project-lead{color:var(--muted);margin:20px 0 0;font-size:20px}.project-actions{margin-top:28px}.project-body{border-top:1px solid var(--line);margin-top:48px;padding-top:40px}.project-body h2{margin:40px 0 12px;font-size:24px}.project-body section:first-child h2{margin-top:0}.project-body p{color:var(--muted);margin:0 0 16px;font-size:18px}.project-visual{width:100%;height:auto;max-height:160px;margin:-4px 0 20px;display:block}@keyframes ugv-tread{to{stroke-dashoffset:-28px}}@keyframes ugv-spin{to{transform:rotate(360deg)}}@keyframes ugv-bob{50%{transform:translateY(-1.5px)}}@keyframes ugv-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes ugv-pan{0%,to{transform:translate(0)}50%{transform:translate(-6px)}}@keyframes ugv-blink{50%{opacity:.35}}.ugv-tread{animation:.6s linear infinite ugv-tread}.ugv-wheel{transform-box:fill-box;transform-origin:50%;animation:1.2s linear infinite ugv-spin}.ugv-body{animation:.3s ease-in-out infinite ugv-bob}.ugv-antenna{transform-box:fill-box;transform-origin:50% 100%;animation:1.4s ease-in-out infinite ugv-sway}.ugv-camera{animation:4s ease-in-out infinite ugv-pan}.ugv-light{filter:drop-shadow(0 0 6px var(--accent));animation:1.6s ease-in-out infinite ugv-blink}@media (prefers-reduced-motion:reduce){.ugv-tread,.ugv-wheel,.ugv-body,.ugv-antenna,.ugv-camera,.ugv-light{animation:none}}.project-body ul{color:var(--muted);margin:0 0 16px;padding-left:20px;font-size:17px}.project-body li+li{margin-top:8px}.project-page .project-visual{max-height:220px;margin:0 0 32px}.model-3d{margin:0 0 32px}.model-3d-canvas{aspect-ratio:16/10;cursor:grab;width:100%}.model-3d-canvas:active{cursor:grabbing}.model-3d-canvas canvas{width:100%;height:100%;display:block}.model-3d figcaption{text-align:center;color:var(--dim);margin-top:4px;font-size:13px}.achievements{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.achievement{border-left:3px solid var(--accent)}.achievement-date{color:var(--accent);letter-spacing:.05em;font-size:13px}.card h3.achievement-title{letter-spacing:0;color:var(--text);margin:8px 0;font-size:20px;font-weight:700}.achievement-title a{color:inherit;text-decoration:none}.achievement-title a:hover{color:var(--accent)}.achievement p{color:var(--muted);margin:0}.project-figure{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 0 20px;padding:12px}.project-figure img{border-radius:6px;width:100%;height:auto;display:block}@keyframes rb-drive{0%{opacity:0;transform:translate(0)}4%{opacity:1}45%,88%{opacity:1;transform:translate(178px)}96%,to{opacity:0;transform:translate(178px)}}@keyframes rb-roll{45%,to{transform:rotate(720deg)}}@keyframes rb-blink{0%,46%,55%,65%,75%,92%,to{opacity:.15}50%,60%,70%,80%,88%{opacity:1}}@keyframes rb-alarm{0%,46%,92%,to{opacity:0}52%,86%{opacity:1}}@keyframes rb-found{0%,46%{opacity:0;transform:scale(.4)}55%,85%{opacity:1;transform:scale(1)}70%{opacity:.4;transform:scale(1.3)}92%,to{opacity:0}}@keyframes rb-field{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(1.8)}}.rb-robot{animation:7s ease-in-out infinite rb-drive}.rb-wheel{transform-box:fill-box;transform-origin:50%;animation:7s ease-in-out infinite rb-roll}.rb-led{animation:7s linear infinite rb-blink}.rb-sound{animation:7s linear infinite rb-alarm}.rb-metal{transform-box:fill-box;transform-origin:50%;animation:7s ease-out infinite rb-found}.rb-scan{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-out infinite rb-field}@media (prefers-reduced-motion:reduce){.rb-robot,.rb-wheel,.rb-led,.rb-sound,.rb-metal,.rb-scan{animation:none}}@keyframes ir-wire-1{0%{stroke-dashoffset:48px;opacity:1}20%{stroke-dashoffset:0;opacity:1}22%,to{stroke-dashoffset:0;opacity:0}}@keyframes ir-wire-2{0%,26%{stroke-dashoffset:24px;opacity:0}27%{opacity:1}36%{stroke-dashoffset:0;opacity:1}38%,to{stroke-dashoffset:0;opacity:0}}@keyframes ir-flash{0%,18%,32%,to{opacity:.15}23%,27%{opacity:1}}@keyframes ir-on{0%,38%{opacity:0}44%,82%{opacity:.85}92%,to{opacity:0}}@keyframes ir-wave{0%,44%{opacity:0;transform:translateY(4px)}56%,80%{opacity:1;transform:translateY(-2px)}92%,to{opacity:0;transform:translateY(-6px)}}.ir-pulse{stroke-dasharray:8 40;animation:4s linear infinite ir-wire-1}.ir-pulse-2{stroke-dasharray:8 16;animation-name:ir-wire-2}.ir-opto{animation:4s linear infinite ir-flash}.ir-glow{filter:drop-shadow(0 0 5px var(--ir-glow));animation:4s ease-in-out infinite ir-on}.ir-rays{animation:4s ease-out infinite ir-wave}@keyframes sr-spin{to{transform:rotate(360deg)}}@keyframes sr-sway{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}@keyframes sr-fall{0%{opacity:0;transform:translateY(0)}10%{opacity:1}80%{opacity:1;transform:translateY(34px)}to{opacity:0;transform:translateY(38px)}}@keyframes sr-signal{0%,to{opacity:.1}30%{opacity:1}}.sr-sun{transform-box:fill-box;transform-origin:50%;animation:24s linear infinite sr-spin}.sr-plant{transform-box:fill-box;transform-origin:50% 100%;animation:3s ease-in-out infinite alternate sr-sway}.sr-drop{animation:1.8s ease-in infinite sr-fall}.sr-led,.sr-wave{animation:1.8s ease-in-out infinite sr-signal}.sr-wave-2{animation-delay:.25s}.sr-wave-3{animation-delay:.5s}@media (prefers-reduced-motion:reduce){.ir-pulse,.ir-opto,.ir-glow,.ir-rays,.sr-sun,.sr-plant,.sr-drop,.sr-led,.sr-wave{animation:none}}@keyframes rl-on{0%,2%,25%,to{opacity:.15}5%,22%{opacity:1}}@keyframes rl-flip{0%,3%,25%,to{transform:rotate(-30deg)}6%,22%{transform:rotate(30deg)}}@keyframes rl-contact{0%,4%,24%,to{fill:var(--pcb-silk)}6%,22%{fill:var(--accent)}}.rl-led{opacity:.15;animation:8s linear infinite rl-on}.rl-arm{animation:8s ease-in-out infinite rl-flip;transform:rotate(-30deg)}.rl-no{animation:8s linear infinite rl-contact}.rl-wifi{animation:2s ease-in-out infinite sr-signal}.rl-wifi-2{animation-delay:.3s}@media (prefers-reduced-motion:reduce){.rl-led,.rl-arm,.rl-no,.rl-wifi{animation:none}}.cs-stage{justify-items:center;margin:0 0 32px;animation:.45s ease-in-out 1.9s both cs-shake;display:grid;position:relative}.cs-svg{width:100%;max-width:460px;height:auto;display:block;overflow:visible}.cs-text{text-align:center;letter-spacing:-.02em;color:var(--accent);text-shadow:0 0 24px color-mix(in srgb, var(--accent) 45%, transparent);opacity:0;margin:0;font-size:clamp(40px,8vw,72px);font-weight:700;animation:.7s cubic-bezier(.2,1.6,.4,1) 2.3s both cs-pop;position:absolute;top:38%;left:0;right:0}.cs-replay{cursor:pointer;opacity:0;background:0 0;margin-top:8px;font-family:inherit;animation:.4s ease-out 2.9s both cs-fade}.cs-fuse{stroke-dasharray:94 94;animation:1.8s linear both cs-burn}.cs-spark{animation:1.8s linear both cs-spark-move,.12s linear infinite alternate cs-flicker}.cs-bomb{transform-box:fill-box;transform-origin:50%;animation:2s ease-in both cs-bomb}.cs-flash,.cs-wave,.cs-bit,.cs-smoke{opacity:0;transform-box:fill-box;transform-origin:50%}.cs-flash{animation:.9s ease-out 1.95s both cs-flash}.cs-wave{animation:1s ease-out 1.95s both cs-wave}.cs-bit{animation:1.1s cubic-bezier(.1,.8,.3,1) 1.95s both cs-bit}.cs-smoke{animation:1.8s ease-out both cs-smoke}@keyframes cs-burn{to{stroke-dashoffset:94px}}@keyframes cs-spark-move{0%{opacity:1;transform:translate(264px,30px)}24%{transform:translate(250px,48px)}47%{transform:translate(232px,60px)}71%{transform:translate(212px,70px)}99%{opacity:1;transform:translate(200px,94px)}to{opacity:0;transform:translate(200px,94px)}}@keyframes cs-flicker{0%{scale:.8}to{scale:1.2}}@keyframes cs-bomb{0%{transform:rotate(0)}15%{transform:rotate(-4deg)}30%{transform:rotate(4deg)}45%{transform:rotate(-5deg)}60%{transform:rotate(5deg)}75%{transform:rotate(-6deg)scale(1.05)}90%{opacity:1;transform:rotate(0)scale(1.3)}to{opacity:0;transform:scale(.2)}}@keyframes cs-flash{0%{opacity:1;transform:scale(.3)}35%{opacity:.95;transform:scale(3)}to{opacity:0;transform:scale(5)}}@keyframes cs-wave{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(5.5)}}@keyframes cs-bit{0%{opacity:1;transform:translate(0)rotate(0)}80%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) rotate(var(--rot))}}@keyframes cs-smoke{0%{opacity:0;transform:scale(.3)}30%{opacity:.55}to{opacity:0;transform:scale(2.2)translateY(-20px)}}@keyframes cs-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px,4px)}40%{transform:translate(7px,-5px)}60%{transform:translate(-5px,-3px)}80%{transform:translate(4px,3px)}}@keyframes cs-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes cs-fade{to{opacity:1}}@media (prefers-reduced-motion:reduce){.cs-stage,.cs-text,.cs-replay,.cs-fuse,.cs-spark,.cs-bomb,.cs-flash,.cs-wave,.cs-bit,.cs-smoke{animation:none}.cs-fuse,.cs-spark,.cs-bomb,.cs-replay{display:none}.cs-text{opacity:1}}@keyframes pc-show{0%,24.9%{opacity:1}25%,to{opacity:0}}@keyframes pc-turn{0%,22%{transform:rotate(-135deg)}25%,47%{transform:rotate(-45deg)}50%,72%{transform:rotate(45deg)}75%,97%{transform:rotate(135deg)}to{transform:rotate(-135deg)}}@keyframes pc-dim{0%,24.9%{opacity:.1}25%,49.9%{opacity:.3}50%,74.9%{opacity:.55}75%,to{opacity:.85}}.pc-state{opacity:0;animation:8s linear infinite pc-show}.pc-knob{animation:8s ease-in-out infinite pc-turn}.pc-chop{animation:8s linear infinite pc-dim}.pc-zc{animation:1s ease-in-out infinite sr-signal}@media (prefers-reduced-motion:reduce){.pc-state,.pc-knob,.pc-chop,.pc-zc{animation:none}.pc-state:last-of-type{opacity:1}}
