@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#09090b;--circuit-trace:#24514d;--circuit-node:#957044;--circuit-pulse:#429e90;--surface:#18181b;--surface-raised:#27272a;--border:#3f3f46;--text:#fafafa;--text-secondary:#a1a1aa;--accent:#2dd4bf;--accent-warm:#fb923c;--accent-sky:#38bdf8;--accent-soft:#2dd4bf14;--accent-border:#2dd4bf66;--amber-glow:#fb923c20;--accent-shadow:#115e59;--button-hover:#5eead4;--button-background:#2dd4bf;--button-text:#18181b;--focus:#fafafa;--shadow:#3f3f46;--soft-shadow:#0003;--ambient-glow:#2dd4bf22;--preview-fill:#a1a1aa22;--scene-shell:#6ba5be;--scene-body:#4d91b0;--scene-face:#18181b;--scene-screen:#102d45;--scene-glow:#2dd4bf;--scene-wood:#ba8556;--scene-leaf:#4fad72;--scene-pot:#c87754;--scene-mug:#fb923c}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#faf7f0;--circuit-trace:#7daa98;--circuit-node:#c9977f;--circuit-pulse:#267c6b;--surface:#f3f0e8;--surface-raised:#e8e5da;--border:#b8c5bb;--text:#27272a;--text-secondary:#52525b;--accent:#236b62;--accent-warm:#a94f43;--accent-sky:#236b62;--pastel-mint:#d8eee5;--pastel-peach:#f5ddd1;--pastel-butter:#f4e9b8;--pastel-blue:#ddeaf2;--decorative-grid:#236b6210;--accent-soft:#236b620c;--accent-border:#236b6266;--amber-glow:#f5ddd1;--accent-shadow:#236b62;--button-hover:#c1e4d5;--button-background:#d8eee5;--button-text:#27272a;--focus:#236b62;--shadow:#a5bfb2;--soft-shadow:#236b6224;--ambient-glow:#d8eee5;--preview-fill:#236b621a;--scene-shell:#6ba5be;--scene-body:#4d91b0;--scene-face:#09090b;--scene-screen:#102d45;--scene-glow:#2dd4bf;--scene-wood:#ba8556;--scene-leaf:#4fad72;--scene-pot:#c87754;--scene-mug:#fb923c}:root{color:var(--text);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,canvas:focus-visible{outline:3px solid var(--focus);outline-offset:6px}::selection{background:var(--button-background);color:var(--button-text)}h1,h2,h3,p{margin:0}button,input{font:inherit}a{touch-action:manipulation}canvas{touch-action:pan-y}#root{overflow:clip}.skip-link{background:var(--button-background);color:var(--button-text);z-index:100;padding:12px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:15px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}:root{--mono:"Courier New",monospace;--heading:"Space Grotesk","DM Sans",sans-serif}.section-shell,.site-header,.site-footer{width:min(1200px,100% - 112px);margin-inline:auto}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:104px;display:flex}.brand{font-family:var(--heading);white-space:nowrap;align-items:center;gap:13px;font-size:17px;font-weight:600;display:flex}.brand-dot{color:var(--accent)}.brand-mark{font-family:var(--mono);letter-spacing:-5px;width:35px;color:var(--accent);font-size:25px;font-weight:700;position:relative}.brand-mark span{color:var(--accent)}.brand-mark i{background:var(--accent);width:6px;height:6px;position:absolute;bottom:1px;right:0}nav{align-items:center;gap:36px;font-size:13px;display:flex}nav>a:not(.nav-contact){color:var(--text-secondary)}nav a:hover,.text-link:hover{color:var(--accent)}.nav-contact{border:1px solid var(--border);box-shadow:3px 3px 0 var(--shadow);padding:11px 18px}.nav-contact span{color:var(--accent);margin-left:18px}.hero{grid-template-columns:1.07fr 1fr;align-items:center;min-height:660px;padding-block:70px 102px;display:grid;position:relative}.hero:before{content:"";z-index:-1;background:radial-gradient(ellipse at 72% 35%,var(--ambient-glow),transparent 43%),radial-gradient(ellipse at 89% 70%,var(--amber-glow),transparent 38%);position:absolute;inset:0 -56px}.intro-label{font:11px var(--mono);letter-spacing:1.5px;color:var(--accent);align-items:center;gap:10px;margin-bottom:27px;display:flex}.tiny-square{background:var(--accent);width:6px;height:6px;box-shadow:0 0 10px var(--shadow);flex-shrink:0;display:inline-block}h1{font-family:var(--heading);letter-spacing:-2.8px;white-space:nowrap;font-size:clamp(40px,4.45vw,62px);font-weight:600;line-height:1.14}h1>span{color:var(--accent)}.pixel-period{color:var(--accent-warm)}.hero h2{font-family:var(--heading);letter-spacing:-.35px;margin-top:22px;font-size:19px;font-weight:500}.cursor{color:var(--accent);margin-left:5px}.hero-description{color:var(--text-secondary);margin-top:17px;font-size:14px;line-height:1.9}.hero-actions{align-items:center;gap:27px;margin-top:31px;font-size:12px;font-weight:600;display:flex}.button{border:1px solid var(--border);box-shadow:4px 4px 0 var(--accent-shadow);justify-content:space-between;align-items:center;gap:30px;padding:15px 21px;transition:transform .2s,box-shadow .2s;display:inline-flex}.primary{border-color:var(--accent);background:var(--button-background);color:var(--button-text)}.primary:hover{box-shadow:6px 6px 0 var(--accent-shadow);background:var(--button-hover);transform:translate(-2px,-2px)}.text-link{color:var(--text-secondary)}.text-link span{color:var(--accent);margin-left:7px}.hero-stack{color:var(--text-secondary);align-items:center;gap:15px;margin-top:37px;font-size:10px;display:flex}.hero-stack>span:first-child{font:9px var(--mono);color:var(--text-secondary);letter-spacing:1px}.hero-stack>span:last-child{align-items:center;gap:9px;display:flex}.hero-stack i{background:var(--surface);width:3px;height:3px}.hero-visual{align-self:center;min-width:0;height:450px;position:relative}.scene-wrap{height:100%;position:relative}.scene-wrap canvas{z-index:1;position:relative}.scene-grid{opacity:.22;background-image:linear-gradient(var(--preview-fill) 1px,transparent 1px),linear-gradient(90deg,var(--preview-fill) 1px,transparent 1px);background-size:35px 35px;position:absolute;inset:5% -5% 4% 2%;transform:perspective(500px)rotateX(15deg);-webkit-mask-image:radial-gradient(#000 5%,#0000 70%);mask-image:radial-gradient(#000 5%,#0000 70%)}.scene-tag{z-index:2;font:9px var(--mono);color:var(--accent);border:1px solid var(--border);background:var(--surface);letter-spacing:1px;align-items:center;gap:9px;padding:9px 12px;display:flex;position:absolute;top:5px;right:20px}.scene-caption{white-space:nowrap;font:8px var(--mono);letter-spacing:1.2px;color:var(--text-secondary);align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.scene-caption .tiny-square{background:var(--accent);width:4px;height:4px}.drag-hint{text-align:center;font:10px var(--mono);color:var(--text-secondary);position:absolute;bottom:-18px;left:0;right:0}.drag-hint>span:first-child{color:var(--accent);margin-right:6px}.hint-star{color:var(--accent);font-size:32px;position:absolute;bottom:30px;right:10px}.hero-bottom{font:9px var(--mono);letter-spacing:1.4px;color:var(--text-secondary);justify-content:space-between;display:flex;position:absolute;bottom:23px;left:0;right:0}.hero-bottom>span{align-items:center;gap:9px;display:flex}.hero-bottom .tiny-square{background:var(--accent);width:4px;height:4px}.hero-bottom a span{color:var(--accent);margin-left:10px}.projects{border-top:1px solid var(--border);padding-block:65px 60px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:30px;display:flex}.eyebrow{font:10px var(--mono);letter-spacing:1.5px;color:var(--accent);align-items:center;gap:12px;display:flex}.section-number{color:var(--text-secondary)}h2{font-family:var(--heading);letter-spacing:-1.1px;font-size:34px;font-weight:500;line-height:1.23}.section-heading h2{margin-top:16px}.section-heading h2 span,.about h2 span{color:var(--accent)}.section-heading>p{color:var(--text-secondary);font-size:12px;line-height:1.9}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;display:grid}.project-card{border:1px solid var(--border);background:var(--surface);min-width:0;transition:transform .2s,border-color .2s}.project-card:hover{border-color:var(--border);transform:translateY(-4px)}.project-art{background:radial-gradient(ellipse at 70% 20%,var(--preview-fill),transparent 80%),var(--preview-fill);justify-content:center;align-items:center;height:204px;display:flex;position:relative;overflow:hidden}.dashboard .project-art{background:radial-gradient(ellipse at 20% 30%,var(--preview-fill),transparent 90%),var(--preview-fill)}.workspace .project-art{background:radial-gradient(ellipse at 80% 30%,var(--preview-fill),transparent 90%),var(--preview-fill)}.mock-window{border:1px solid var(--border);background:var(--surface);width:78%;height:135px;box-shadow:10px 15px 0 var(--shadow);border-radius:4px;overflow:hidden;transform:perspective(700px)rotateY(-9deg)rotateX(7deg)rotate(-4deg)}.mock-toolbar{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:4px;height:20px;padding:0 7px;display:flex}.mock-toolbar i{background:var(--surface);border-radius:50%;width:4px;height:4px}.mock-toolbar i:nth-child(2),.mock-toolbar i:nth-child(3){background:var(--surface)}.mock-toolbar span{color:var(--text-secondary);font:5px var(--mono);margin-left:10px}.mock-shop{gap:12px;height:calc(100% - 20px);padding:12px;display:flex}.mock-side{border-top:4px solid var(--border);background:repeating-linear-gradient(transparent 0 10px,var(--preview-fill) 10px 12px);width:22%}.mock-product{background:var(--surface);place-items:center;width:38%;display:grid}.mock-product span{color:var(--text-secondary);text-shadow:4px 4px var(--shadow);font-size:47px}.mock-product i{background:var(--surface);width:50%;height:4px}.mock-lines{flex:1;padding-top:10px}.mock-lines i{background:var(--surface);width:90%;height:5px;margin-bottom:10px;display:block}.mock-lines i:last-child{background:var(--surface);height:15px;margin-top:18px}.preview-label{font:7px var(--mono);letter-spacing:1.2px;color:var(--text-secondary);position:absolute;bottom:12px;left:15px}.mock-dashboard{padding:12px}.mock-stats{gap:6px;display:flex}.mock-stats i{background:var(--surface);border-top:2px solid var(--border);width:33%;height:21px}.mock-chart{border-bottom:1px solid var(--border);align-items:flex-end;gap:9px;height:62px;padding:10px 6px 0;display:flex}.mock-chart i{background:linear-gradient(var(--preview-fill),var(--preview-fill));flex:1}.mock-board{gap:7px;padding:12px 9px;display:flex}.mock-board>div{background:var(--surface);flex:1;padding:5px}.mock-board span{font:5px var(--mono);color:var(--text-secondary)}.mock-board i{border-left:2px solid var(--border);background:var(--surface);height:17px;margin-top:6px;display:block}.mock-board>div:nth-child(2) i,.mock-board>div:nth-child(3) i{border-color:var(--border)}.project-body{padding:21px 20px 0}.project-body .eyebrow{letter-spacing:1px;color:var(--text-secondary);justify-content:space-between;font-size:8px}.project-body .eyebrow span{color:var(--text-secondary)}.project-body h3{font-family:var(--heading);letter-spacing:-.5px;margin-top:11px;font-size:20px;font-weight:500}.project-body>p:not(.eyebrow){color:var(--text-secondary);min-height:61px;margin-top:11px;font-size:11px;line-height:1.85}.tags{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.tags span{font:8px var(--mono);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);padding:5px 7px}.project-status{border-top:1px solid var(--border);color:var(--text-secondary);align-items:center;gap:7px;margin-top:22px;padding:15px 0;font-size:9px;display:flex}.project-status .tiny-square{background:var(--surface);width:4px;height:4px}.placeholder-note{color:var(--text-secondary);margin-top:22px;font-size:10px}.placeholder-note span{color:var(--accent);margin-right:6px}.about{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:100px;padding-block:65px 75px;display:grid}.about h2{margin-top:19px;font-size:39px}.about-copy>p:not(.eyebrow){color:var(--text-secondary);max-width:430px;margin-top:21px;font-size:13px;line-height:1.9}.about-copy>p.bio-placeholder{color:var(--text-secondary);border-left:2px solid var(--border);margin-top:17px;padding-left:14px;font-size:11px}.about-signature{color:var(--accent);font-size:26px;font-family:var(--heading);letter-spacing:-1px;margin-top:19px;display:block}.about-signature span{color:var(--accent);margin-left:15px;font-size:17px}.toolkit{border:1px solid var(--border);isolation:isolate;background:var(--surface);color:var(--text);box-shadow:6px 6px 0 var(--soft-shadow);align-self:center;position:relative;overflow:hidden}.toolkit-top{border-bottom:1px solid var(--border);font:9px var(--mono);color:var(--text-secondary);letter-spacing:1px;align-items:center;gap:9px;padding:17px 21px;display:flex}.toolkit-top>span:last-child{color:var(--text-secondary);margin-left:auto;font-size:8px}.toolkit-top .tiny-square{background:var(--accent);width:5px;height:5px}.skills-grid{grid-template-columns:1fr 1fr;gap:27px 15px;padding:24px;display:grid}.skill{align-items:center;gap:12px;min-width:0;display:flex}.skill-icon{width:33px;height:35px;font-size:25px;font-family:var(--mono);flex-shrink:0;place-items:center;font-weight:600;display:grid}.skill-icon.green{color:var(--text-secondary)}.skill-icon.gray{color:var(--text-secondary);font-size:21px;font-weight:400}.skill-icon.teal{color:var(--text-secondary);font-size:34px}.skill-icon.blue{background:var(--button-background);color:var(--button-text);width:28px;height:28px;margin-inline:2px 3px;font-size:14px}.skill h3{font-size:12px;font-weight:500}.skill p{color:var(--text-secondary);margin-top:5px;font-size:9px}.more-skill>span{text-align:center;width:33px;color:var(--text-secondary);font-size:25px}.more-skill p{color:var(--text-secondary);font-size:10px;line-height:1.7}.toolkit-bottom{border-top:1px solid var(--border);font:8px var(--mono);letter-spacing:1px;color:var(--text-secondary);justify-content:space-between;align-items:center;padding:14px 21px;display:flex}.toolkit-bottom>span:last-child{color:var(--accent);font-size:17px}.contact{border-top:1px solid var(--border);padding-block:15px 55px}.contact-inner{background:radial-gradient(ellipse at 90% 100%,var(--preview-fill),transparent 65%),var(--preview-fill);border:1px solid var(--border);padding:48px;position:relative;overflow:hidden}.contact h2{margin-top:21px;font-size:46px}.contact h2>span{color:var(--accent)}.contact-inner>p:not(.eyebrow){color:var(--text-secondary);margin-top:19px;font-size:12px}.contact-decoration{color:var(--accent);text-shadow:10px 10px var(--shadow);font-size:150px;line-height:1;position:absolute;top:22%;right:12%;transform:rotate(10deg)}.contact-decoration:before,.contact-decoration:after{content:"";background:var(--accent);width:15px;height:15px;box-shadow:-140px 170px 0 -3px var(--accent);position:absolute;top:10px;right:-45px}.contact-decoration:after{background:var(--accent);width:8px;height:8px;top:180px;right:-5px}.site-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-block:29px 35px;display:flex}.site-footer .brand{gap:10px;font-size:12px}.site-footer .brand-mark{width:29px;font-size:20px}.site-footer p{color:var(--text-secondary);font-size:10px}.site-footer>a:last-child{font:8px var(--mono);letter-spacing:1px;color:var(--text-secondary)}.scene-loading{height:100%;font:12px var(--mono);color:var(--accent);place-items:center;display:grid}.static-scene{width:100%;height:100%;filter:drop-shadow(0 15px 20px var(--soft-shadow));position:relative}.static-monitor{background:var(--surface);border:12px solid var(--border);width:47%;height:30%;font:38px var(--mono);color:var(--accent);box-shadow:8px 8px 0 var(--shadow);place-items:center;display:grid;position:absolute;top:25%;left:27%}.static-head{background:var(--surface);border:12px solid var(--border);z-index:2;place-items:center;width:21%;height:23%;display:grid;position:absolute;top:33%;left:43%}.static-head span{font:bold 30px var(--mono);color:var(--text-secondary);white-space:nowrap}.static-body{background:var(--surface);border-left:12px solid var(--border);border-right:12px solid var(--border);width:27%;height:26%;position:absolute;top:55%;left:40%}.static-desk{background:var(--surface);width:73%;height:7%;box-shadow:0 8px 0 var(--shadow);position:absolute;top:73%;left:15%}.static-plant{color:var(--text-secondary);font-size:60px;position:absolute;top:52%;left:20%}.static-coffee{color:var(--accent);font-size:35px;position:absolute;top:63%;right:18%}@media (width>=1500px){.hero{min-height:720px}.hero-visual{height:490px}}@media (width<=1100px){.section-shell,.site-header,.site-footer{width:calc(100% - 64px)}h1{font-size:clamp(36px,4.5vw,52px)}.hero{min-height:610px}.hero-visual{height:390px}.hero-actions{gap:18px}.hero-stack{gap:10px}.hero-stack>span:last-child{gap:6px}.about{gap:45px}.project-body{padding-inline:16px}.project-status{font-size:8px}.skills-grid{gap:25px 10px;padding:22px 16px}.contact-decoration{right:10%}.project-art{height:180px}}@media (width<=800px){.hero{grid-template-columns:1fr 1fr;min-height:570px}.hero-visual{height:340px;margin-left:-30px;margin-right:-20px}.hero h1{letter-spacing:-2px;font-size:39px}.hero-content{z-index:2}.hero h2{font-size:15px}.hero-description{font-size:12px}.hero-actions{flex-wrap:wrap;gap:18px}.hero-stack{flex-direction:column;align-items:flex-start;gap:8px}.hero-visual .scene-tag{font-size:7px;top:5px;right:10px}.scene-caption{font-size:6px}.scene-tag .tiny-square{width:4px;height:4px}.project-grid{gap:13px}.project-art{height:155px}.mock-window{width:85%;height:110px}.project-body h3{font-size:17px}.project-body .eyebrow{letter-spacing:.5px;font-size:7px}.project-body>p:not(.eyebrow){min-height:75px;font-size:10px}.project-status{min-height:53px;line-height:1.6}.section-heading>p{font-size:10px}.section-heading h2{font-size:29px}.about{gap:30px}.about h2{font-size:33px}.skill{gap:7px}.skill p{font-size:8px}.skill h3{font-size:11px}.toolkit-top{padding-inline:15px;font-size:8px}.toolkit-bottom{padding-inline:15px;font-size:7px}.contact-decoration{font-size:110px;top:30%;right:8%}}@media (width<=640px){.section-shell,.site-header,.site-footer{width:calc(100% - 40px)}.site-header{height:82px}.brand{gap:9px;font-size:14px}.brand-mark{width:30px;font-size:22px}nav{gap:20px;font-size:11px}.nav-contact{padding:8px 10px}.nav-contact span{margin-left:7px}.hero{flex-direction:column;align-items:stretch;padding-top:45px;padding-bottom:65px;display:flex}.intro-label{margin-bottom:22px;font-size:9px}.hero h1{letter-spacing:-1.8px;font-size:clamp(34px,7.7vw,48px)}.hero h2{margin-top:20px;font-size:17px}.hero-description{font-size:13px}.hero-actions{margin-top:25px}.hero-stack{flex-direction:row;align-items:center;gap:12px;margin-top:30px}.hero-stack>span:last-child{gap:7px;font-size:9px}.hero-visual{width:100%;height:355px;margin:25px 0 0}.scene-tag{top:5px!important;right:8px!important}.scene-caption{font-size:7px}.hero-bottom{letter-spacing:1px;font-size:7px;bottom:14px}.hint-star{font-size:24px;right:10px}.drag-hint{font-size:8px;bottom:-5px}.projects{padding-block:42px}.section-heading{margin-bottom:25px;display:block}.section-heading h2{font-size:29px}.section-heading>p{margin-top:14px;font-size:12px}.section-heading>p br{display:none}.project-grid{grid-template-columns:1fr;gap:22px}.project-art{height:210px}.mock-window{width:70%;height:145px}.mock-chart{height:75px}.mock-board i{height:23px}.project-body{padding:22px 22px 0}.project-body h3{font-size:23px}.project-body .eyebrow{font-size:9px}.project-body>p:not(.eyebrow){min-height:0;font-size:12px}.tags span{font-size:9px}.project-status{min-height:0;font-size:10px}.placeholder-note{line-height:1.8}.about{grid-template-columns:1fr;gap:30px;padding-block:45px}.about h2{font-size:37px}.about-copy>p:not(.eyebrow){font-size:13px}.toolkit{width:100%}.skills-grid{gap:30px 20px;padding:25px}.skill{gap:12px}.skill h3{font-size:13px}.skill p{font-size:10px}.toolkit-top{padding:18px 22px;font-size:9px}.toolkit-bottom{padding:15px 22px;font-size:8px}.contact{border:0;padding-block:0 35px}.contact-inner{padding:32px 24px}.contact h2{font-size:38px}.contact-inner>p:not(.eyebrow){max-width:260px;font-size:12px;line-height:1.8}.contact-decoration{text-shadow:4px 4px var(--shadow);font-size:50px;top:30px;right:25px}.contact-decoration:before{width:6px;height:6px;box-shadow:none;top:70px;right:0}.contact-decoration:after{display:none}.site-footer{flex-wrap:wrap;gap:22px;padding-block:25px}.site-footer p{order:3;width:100%;font-size:10px}.site-footer>a:last-child{margin-left:auto;font-size:7px}.hero h1{font-size:clamp(28px,8vw,48px)}}@media (width<=400px){.site-header .brand{gap:7px;font-size:11px}.site-header .brand-mark{width:25px;font-size:20px}nav{gap:13px;font-size:10px}.nav-contact{padding:8px}.nav-contact span{margin-left:4px}.hero-stack{gap:9px}.hero-stack>span:first-child{font-size:8px}.hero-stack>span:last-child{gap:5px;font-size:8px}}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;flex-shrink:0;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{background:var(--surface-raised)}.static-monitor{background:var(--scene-screen);border-color:var(--scene-body);color:var(--scene-glow)}.static-head{background:var(--scene-face);border-color:var(--scene-shell)}.static-head span{color:var(--scene-glow)}.static-body{background:var(--scene-body);border-color:var(--scene-shell)}.static-desk{background:var(--scene-wood)}.static-plant{color:var(--scene-leaf)}.static-coffee{color:var(--scene-mug)}.static-pot{background:var(--scene-pot);width:26px;height:36px;position:absolute;top:65%;left:23%}@media (width<=640px){nav{gap:13px}.theme-toggle{width:34px;height:34px}}@media (width<=400px){.site-header{flex-wrap:wrap;gap:12px;height:auto;min-height:106px;padding-block:16px}nav{justify-content:space-between;width:100%}}.scene-wrap:before{content:"";pointer-events:none;background:radial-gradient(ellipse at 30% 45%, var(--ambient-glow), transparent 58%), radial-gradient(ellipse at 80% 60%, var(--amber-glow), transparent 55%);position:absolute;inset:0 -10%}.scene-tag{background:var(--accent-soft);border-color:var(--accent-border)}.nav-contact:hover,.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.project-card:hover{border-color:var(--accent)}.tags span{color:var(--accent-sky)}.project-body .eyebrow{color:var(--accent-warm)}.about h2 span{color:var(--accent)}.contact-decoration,.hint-star,.about-signature span{color:var(--accent-warm)}.skill-icon.teal,.skill-icon.green{color:var(--accent)}.skill-icon.blue{background:var(--accent-sky);color:var(--background)}.static-monitor{border-color:var(--border)}.scene-wrap canvas{touch-action:pan-y!important}.octopus-fallback{width:100%;height:100%;position:relative}.scene-tools{z-index:4;pointer-events:none;flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute;top:41px;left:8px;right:8px}.scene-view-buttons{gap:5px;display:flex}.scene-tools button,.scene-zoom-buttons button,.touch-scene-toggle{pointer-events:auto;background:var(--surface);border:1px solid var(--border);min-height:32px;color:var(--text);font:10px var(--mono);cursor:pointer;padding:7px 11px}.scene-tools button:hover,.scene-zoom-buttons button:hover,.touch-scene-toggle:hover{color:var(--accent);border-color:var(--accent)}.scene-tools button:disabled{cursor:default;opacity:.5}.touch-scene-toggle{z-index:5;white-space:nowrap;color:var(--accent);border-color:var(--accent-border);position:absolute;bottom:-34px;left:50%;transform:translate(-50%)}.touch-scene-toggle[aria-pressed=true]{background:var(--button-background);color:var(--button-text)}.scene-zoom-buttons{z-index:4;gap:5px;display:flex;position:absolute;bottom:35px;right:7px}.scene-zoom-buttons button{width:34px;height:34px;padding:0;font-size:20px}.scene-recovery{color:var(--text-secondary);font:10px var(--mono);background:var(--surface);align-items:center;gap:10px;padding:5px 8px;display:flex}.scene-wrap[data-touch-mode=scroll] canvas{touch-action:pan-y pinch-zoom!important}.scene-wrap[data-touch-mode=interact] canvas{touch-action:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){.scene-tools{gap:6px;top:35px}.scene-tools button{min-height:34px;padding-inline:9px;font-size:9px}.scene-zoom-buttons{bottom:28px}.scene-wrap .drag-hint{font-size:7px}}.scene-wrap[data-touch-mode=scroll] .drag-hint,.scene-wrap[data-touch-mode=interact] .drag-hint{display:none}.touch-scene-toggle{min-height:34px}.touch-scene-toggle:disabled{opacity:.5;cursor:default}.toolkit:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 95% 0%, var(--accent-soft), transparent 55%);opacity:.22;position:absolute;inset:0}.toolkit-top{color:var(--text)}.toolkit-top>span:last-child,.toolkit-bottom,.skill p{color:var(--text-secondary)}.skills-grid{isolation:isolate;position:relative}.skill{z-index:1;position:relative}.skill h3{color:var(--text)}.toolkit .skill-icon{color:var(--accent)}.toolkit .skill-icon.blue{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border)}.skills-flow{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.skills-flow path{fill:none;stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.flow-wire{opacity:.16}.flow-pulse{stroke-linecap:round;stroke-dasharray:.045 .955;opacity:0;animation:18s linear infinite paused skill-data-flow}.flow-pulse-delayed{animation-delay:9s}.toolkit[data-running=true] .flow-pulse{animation-play-state:running}@keyframes skill-data-flow{0%{opacity:0;stroke-dashoffset:1px}2%{opacity:.3;stroke-dashoffset:1px}14%{opacity:.3;stroke-dashoffset:0}16%,to{opacity:0;stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.flow-pulse{animation:none;display:none}}.hero-content{min-width:0}.hero h1{white-space:normal;letter-spacing:-1.9px;font-size:clamp(36px,3.9vw,54px)}.hero-description{text-wrap:pretty;max-width:47ch}.services{border-top:1px solid var(--border);padding-block:58px 64px}.services h2{margin-top:16px}.service-list{margin:29px 0 0;padding:0;list-style:none}.service-row{border-top:1px solid var(--border);grid-template-columns:28px minmax(220px,.85fr) 1.5fr;align-items:start;gap:22px;padding:24px 0;display:grid}.service-row:last-child{border-bottom:1px solid var(--border)}.service-icon{color:var(--accent);margin-top:2px}.service-brand .service-icon{color:var(--accent-warm)}.service-dimension .service-icon{color:var(--accent-sky)}.service-row h3{color:var(--text);font:500 18px/1.4 var(--heading);letter-spacing:-.35px}.service-row p{max-width:65ch;color:var(--text-secondary);font-size:13px;line-height:1.8}@media (width<=800px){.service-row{grid-template-columns:24px minmax(175px,.85fr) 1.4fr;gap:15px}.service-row h3{font-size:16px}.service-row p{font-size:12px}}@media (width<=640px){.hero h1{letter-spacing:-1.4px;font-size:clamp(28px,7.6vw,38px)}.hero-description{max-width:45ch}.services{padding-block:42px}.service-list{margin-top:24px}.service-row{grid-template-columns:22px 1fr;gap:8px 14px;padding-block:21px}.service-row h3{font-size:17px}.service-row p{grid-column:2;font-size:12px}}.contact-inner{isolation:isolate}.contact-decoration{z-index:-1;pointer-events:none}.contact-details{max-width:70%;margin-top:26px;position:relative}.contact-email-row{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.contact-email{font:500 clamp(18px, 2.2vw, 28px)/1.5 var(--heading);overflow-wrap:anywhere;text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);text-underline-offset:6px}.contact-email:hover,.contact-socials a:hover{color:var(--accent)}.copy-email{border:1px solid var(--accent-border);background:var(--surface);color:var(--accent);cursor:pointer;padding:9px 12px;font-size:12px}.copy-email:hover{background:var(--surface-raised)}.contact-feedback{min-height:1.6em;color:var(--text-secondary);margin-top:10px;font-size:12px;line-height:1.6}.contact-socials{flex-wrap:wrap;gap:20px;margin-top:16px;font-size:13px;display:flex}.contact-socials a{text-underline-offset:4px;text-decoration:underline}.contact-unconfigured{color:var(--text-secondary);font:13px/1.8 var(--mono)}@media (width<=640px){.contact-details{max-width:100%}.contact-email-row{flex-direction:column;align-items:flex-start;gap:16px}}:root[data-theme=light] .hero,:root[data-theme=light] .hero:before{background:0 0}:root[data-theme=light] .scene-wrap:before{background:linear-gradient(125deg, var(--pastel-mint) 0 55%, var(--pastel-peach) 55%);clip-path:polygon(0 8%,8% 8%,8% 0,90% 0,90% 8%,100% 8%,100% 88%,92% 88%,92% 100%,10% 100%,10% 94%,0 94%);opacity:.78;inset:20% -3% 3% 2%}:root[data-theme=light] .scene-grid{z-index:0;opacity:1;background-image:linear-gradient(var(--decorative-grid) 1px, transparent 1px), linear-gradient(90deg, var(--decorative-grid) 1px, transparent 1px);background-size:28px 28px;inset:21% 0 4%;transform:none;-webkit-mask-image:none;mask-image:none}:root[data-theme=light] .primary{box-shadow:4px 4px 0 var(--accent-shadow)}:root[data-theme=light] .primary:hover{box-shadow:6px 6px 0 var(--accent-shadow)}:root[data-theme=light] .project-card{--project-pastel:var(--pastel-mint)}:root[data-theme=light] .project-card:nth-child(3n+2){--project-pastel:var(--pastel-peach)}:root[data-theme=light] .project-card:nth-child(3n){--project-pastel:var(--pastel-blue)}:root[data-theme=light] .project-art{background-color:var(--project-pastel);background-image:none}:root[data-theme=light] .mock-window{background:var(--background);box-shadow:8px 8px 0 var(--accent-border)}:root[data-theme=light] .mock-toolbar{background:var(--pastel-butter)}:root[data-theme=light] .toolkit{background:var(--pastel-mint);box-shadow:6px 6px 0 var(--shadow)}:root[data-theme=light] .toolkit:before{background:0 0}:root[data-theme=light] .contact-inner{background:var(--pastel-peach)}:root[data-theme=light] .contact-decoration{text-shadow:8px 8px var(--pastel-butter)}:root[data-theme=light] .scene-tag{background:var(--pastel-butter)}:root[data-theme=light] .scene-tools button,:root[data-theme=light] .scene-zoom-buttons button{background:var(--pastel-blue)}@media (width<=640px){:root[data-theme=light] .scene-wrap:before{inset-inline:0}}#main{isolation:isolate;position:relative}.circuit-background{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.circuit-background svg{width:100%;height:100%;display:block;overflow:hidden}.circuit-background{-webkit-mask-image:linear-gradient(90deg,#000 0% 4%,#0004 9%,#00000008 24% 76%,#0004 91%,#000 96% 100%);mask-image:linear-gradient(90deg,#000 0% 4%,#0004 9%,#00000008 24% 76%,#0004 91%,#000 96% 100%)}.circuit-traces,.circuit-chips{fill:none;stroke:var(--circuit-trace);stroke-width:1px;opacity:.65}.circuit-background path,.circuit-background rect{vector-effect:non-scaling-stroke}.circuit-terminal{fill:var(--circuit-node);stroke:none}.circuit-chips{stroke:var(--circuit-node);opacity:.45}.circuit-pulse{fill:none;stroke:var(--circuit-pulse);stroke-width:1.5px;stroke-dasharray:.035 .965;opacity:0;animation:24s linear infinite circuit-travel}.circuit-junction{fill:var(--circuit-node);opacity:0;filter:drop-shadow(0 0 3px var(--circuit-pulse));animation:24s ease-in-out infinite circuit-arrival}.circuit-signal-0>*{animation-delay:-2s}.circuit-signal-1>*{animation-delay:-6s}.circuit-signal-2>*{animation-delay:-10s}.circuit-signal-3>*{animation-delay:-14s}.circuit-signal-4>*{animation-delay:-18s}.circuit-signal-5>*{animation-delay:-22s}@keyframes circuit-travel{0%{stroke-dashoffset:1px;opacity:0}2%{stroke-dashoffset:.96px;opacity:.65}38%{stroke-dashoffset:0;opacity:.65}42%,to{stroke-dashoffset:0;opacity:0}}@keyframes circuit-arrival{0%,37%,44%,to{opacity:0}39%,40%{opacity:.65}}@media (width<=800px){.circuit-background{-webkit-mask-image:linear-gradient(90deg,#0009,#0000 7% 93%,#0009);mask-image:linear-gradient(90deg,#0009,#0000 7% 93%,#0009)}.circuit-chips,.circuit-signal:nth-of-type(n+5),.circuit-traces path:nth-child(2n){display:none}}@media (prefers-reduced-motion:reduce){.circuit-pulse,.circuit-junction{animation:none;display:none}}
