:root{--bg:#020506;--panel:#071017;--line:#17333f;--cyan:#00d3ff;--lime:#10bfff;--text:#f3f7f9;--muted:#8f9da5}body{background:#020506}body:before{opacity:.015}header{height:84px;padding-inline:5%;background:#020506;border-bottom:1px solid #0a2d38}header .logo{font-size:30px;font-weight:600;letter-spacing:-1.2px}.logo i{display:none}.logo span{color:#08d9ff}header nav{position:absolute;left:50%;transform:translateX(-50%);margin:0;gap:42px;font:13px var(--mono);color:#c4ccd1}.command-trigger{display:none}.contact-link{border:1px solid #00cbef;border-radius:2px;padding:10px 18px;font:11px var(--mono);letter-spacing:.3px}.contact-link span{color:#e3f9ff;margin-left:12px}.hero{padding:0 5%;background:#020506;min-height:0;overflow:hidden}.hero-meta,.build-status,.stack-strip{display:none}.hero-composition{height:730px;min-height:0;position:relative}.hero-copy{align-self:flex-start;width:50%;padding:92px 0 0 13px;margin-left:auto;z-index:3;pointer-events:none}.hero-copy a{pointer-events:auto}.hero .intro{font:12px var(--mono);letter-spacing:1.5px;color:#d8e3e9;margin:0 0 23px}.hero h1{font-family:'DM Sans',sans-serif;font-size:clamp(55px,6.8vw,105px);font-weight:700;line-height:.99;letter-spacing:-5.8px;max-width:none;margin:0}.hero h1>span,.hero h1 em{white-space:nowrap}.hero h1 em{font-weight:700;background-size:360px 180px;-webkit-text-stroke:.5px #04b5ff;text-shadow:0 0 35px #048de82b}.title-period{color:inherit}.hero .lead{margin-top:26px;font:17px/1.65 'DM Sans',sans-serif;color:#a4afb7;letter-spacing:.05px}.hero-actions{gap:30px;margin-top:29px}.hero .primary{border:1px solid #00c9fa;border-radius:2px;padding:17px 22px;background:#03aaf4;color:#fff;gap:22px;font:12px var(--mono)}.hero .primary:hover{background:#26c8ff}.hero-github{font:12px var(--mono);color:#e7f3f8}.hero-github span{color:#e7f3f8;margin-left:13px}.hero .scene{position:absolute;left:-7%;right:auto;top:0;margin:0;width:88%;height:100%;opacity:1;z-index:1;overflow:visible}.laptop-particles{inset:0}.particle-instruction{top:auto;bottom:14px;left:14%;font-size:7px;color:#8dbacf}.particle-signature{display:none}.portrait-toggle{bottom:10px;right:10%;font-size:7px;opacity:.7;padding:8px 11px}.portrait-toggle:hover{opacity:1}.hero-bottom{height:57px;border-top:1px solid #123944;margin:0;color:#7f9fab;position:relative;z-index:4}.hero-bottom>span{font-size:8px;letter-spacing:2px}.hero-bottom a{font-size:7px}.motion{color:#9ab4c4}.hero-snow{opacity:.8}.section{padding-inline:5%}.projects{padding-top:50px;padding-bottom:0}.section-tag{color:#24d3f4;font-size:10px;letter-spacing:1.5px}.projects .section-heading{display:block;margin-bottom:28px}.projects .section-heading h2{font:700 clamp(29px,3.2vw,48px)/1.15 'DM Sans',sans-serif;letter-spacing:-1.7px;margin-top:14px}.projects .section-heading h2 span{color:#f3f7f9}.projects .section-heading>p,.projects .section-heading>.text-link{display:none}.project-toolbar{margin-bottom:20px}.project-toolbar>span{color:#506d7c;font-size:6px}.project-filters button{font-size:8px;padding:7px 12px}.project-filters button.active{border-color:#1b718a;color:#55dcff;background:#08232d}.project-grid{gap:26px;align-items:stretch}.project-card{background:linear-gradient(135deg,#071018,#020608);border:1px solid #258ba4;border-radius:10px;box-shadow:inset 0 0 30px #0bc5ff04}.project-card:hover{border-color:#4de8ff;box-shadow:0 0 30px #00c8ff12}.project-card:after{display:none}.project-visual.voice-real{padding:13px 13px 0;background:transparent;min-height:0;justify-content:flex-start}.demo-window-bar{height:31px;padding:0 7px 10px;gap:10px;color:#d1e5ee}.demo-window-bar small{font:8px var(--mono);letter-spacing:.1px;margin-right:auto}.demo-window-bar b{font:6px var(--mono);color:#b9f5ff;border:1px solid #0ca8ca;border-radius:16px;padding:5px 8px;box-shadow:0 0 10px #00bfff25;white-space:nowrap}.demo-window-bar i{width:6px;height:6px;background:#a1df71}.demo-window-bar i:first-child{background:#ff8b7c}.demo-window-bar i:nth-child(2){background:#f9db7b}.voiceloom-demo{box-shadow:none;border-color:#294050;border-radius:5px}.project-info{padding:22px 22px 23px;border-top:1px solid #174150;margin-top:14px}.project-info>div>small,.project-info>small{display:none}.project-info h3{font:700 28px 'DM Sans',sans-serif;margin:0 0 11px;letter-spacing:-.8px}.project-info h3 span{color:#39d4ed;font-size:23px}.project-info p{font-size:12px;line-height:1.75;color:#8fa1b0;max-width:100%}.tags{margin-top:18px;gap:9px}.tags span{border:0;background:none;padding:0;font:9px var(--mono);color:#b0c4d0}.tags span+span:before{content:'·';margin-right:9px;color:#436571}.project-visual.concept-ocr{height:auto;min-height:0;display:flex;flex-direction:column;padding:13px 13px 0;background:none;overflow:visible}.ocr-app{aspect-ratio:4/3;border:1px solid #294050;border-radius:5px;background:linear-gradient(145deg,#091b29,#030b12);display:flex;flex-direction:column;overflow:hidden}.ocr-tabs{display:flex;gap:20px;padding:16px 17px;border-bottom:1px solid #1c3544;color:#7493a8;font:8px var(--mono)}.ocr-tabs span:first-child{color:#75e3ff}.ocr-panels{display:grid;grid-template-columns:1fr 18px 1fr;align-items:stretch;gap:10px;flex:1;min-height:0;padding:18px 13px 16px}.ocr-source,.ocr-output{min-width:0;display:flex;flex-direction:column;gap:10px}.ocr-source>small,.ocr-output>small{font:8px 'DM Sans',sans-serif;color:#d8e5ee}.invoice-paper{background:#e6edf0;color:#1f2b33;padding:15px 10px;position:relative;overflow:hidden;flex:1;box-shadow:0 0 20px #00eaff09;font:6px/1.7 var(--mono)}.invoice-paper strong{display:block;font:bold 20px 'DM Sans',sans-serif;border-bottom:1px solid #9caaaf;padding-bottom:8px;margin-bottom:12px}.invoice-paper>span{display:block}.invoice-paper table{font:6px/1.8 'DM Sans',sans-serif;width:100%;margin-top:12px;border-collapse:collapse}.invoice-paper td,.invoice-paper th{text-align:left;border-bottom:1px solid #a3b4bd;padding:5px 2px}.invoice-paper .scan{left:0;right:0;height:2px;background:#23d9ff;box-shadow:0 0 15px #13d6ff;animation-duration:4s}.extract-arrow{align-self:center;color:#39e1ff;font-size:23px;text-shadow:0 0 12px #00cbff}.ocr-output pre{flex:1;margin:0;border:1px solid #204d64;border-radius:4px;background:#040e18;padding:12px 7px;font:7px/1.65 var(--mono);color:#a9d7f4;overflow:hidden;white-space:pre}.ocr-output pre>span{color:#42617b;margin-right:6px}.ocr-output pre .ocr-caret{color:#4fdaff;margin:0;animation:blink 1s infinite}.ocr-ready{font:6px var(--mono);color:#5adbc8}.ocr-status{display:flex;justify-content:space-between;border-top:1px solid #153445;padding:10px 14px;font:6px var(--mono);color:#668d9e}.concept-lab{position:relative;display:flex;flex-direction:column;padding-top:38px;padding-bottom:48px;gap:0;border:0;background:none}.concept-lab .lab-console{order:1;width:100%;border:0;background:none;border-radius:0;overflow:visible}.concept-lab .lab-intro{order:2;position:relative;width:100%;text-align:center;margin-top:0}.concept-lab .lab-intro>.section-tag,.concept-lab .lab-note,.concept-lab .lab-console-top{display:none}.concept-lab h2{font:14px var(--mono);letter-spacing:.8px;color:#e8f8fc;margin:0}.concept-lab h2 span{color:#e8f8fc}.concept-lab .lab-intro p{font-size:10px;max-width:none;margin:12px 0 0;color:#537582}.concept-lab #lab-orbit{height:125px;filter:drop-shadow(0 0 6px #00cfff50);margin-bottom:5px}.concept-lab .lab-controls{border:0;justify-content:center;padding:8px 18px 20px;gap:25px;max-width:420px;margin:auto;opacity:.6;transition:opacity .2s}.concept-lab .lab-console:hover .lab-controls,.concept-lab .lab-controls:focus-within{opacity:1}.concept-lab .lab-controls label{font-size:7px;gap:8px}.concept-lab .lab-controls input{accent-color:#00d4ff}.concept-lab .lab-controls .button{background:#061822;border:1px solid #245061;color:#a8e4f5;font-size:8px;padding:8px 13px}.more-work{padding-top:0;padding-bottom:65px}.more-work .wide{grid-template-columns:1fr 1.4fr;border-radius:8px}.more-work .lock{min-height:210px;background:radial-gradient(ellipse,#113445,#06131c);padding:20px}.more-work .lock-icon{font-size:58px}.more-work .lock strong{font-size:19px}.more-work .project-info{margin:0;border:0;padding:30px}.more-work .project-info h3{font-size:25px}.more-work .wide .text-link{margin-top:18px;font-size:9px}.about{background:#050d12;border-color:#153342}.about-copy p{color:#cbdce6}.about-copy p+p,.resume-grid p{color:#8aa1b3}.about h2>span,.resume h2>span{color:#5b8297}.resume-grid{border-color:#163847}.contact{background:linear-gradient(120deg,#021b28,#073447);border:1px solid #148caa;box-shadow:inset 0 0 80px #00caff07;color:#e9f9ff}.contact .section-tag{color:#5ae0f4}.contact h2 em{color:#1dbfff}.contact .primary{background:#05aafa;color:white;border-color:#18d7ff}.contact-star{color:#21c8ed}.contact-row button,.contact-row>a{color:#bfdeeb}footer{border-top:1px solid #12303b;padding-top:28px}footer>span,footer>a:last-child{color:#5e899d}@media(min-width:1600px){.hero-composition{height:850px}.hero-copy{padding-top:120px}.hero h1{font-size:115px}.hero .lead{font-size:19px}.hero .scene{left:-8%;width:90%}}@media(max-width:1100px){.hero-composition{height:640px}.hero-copy{padding-top:80px;width:50%}.hero h1{font-size:clamp(52px,6.8vw,76px);letter-spacing:-4px}.hero .intro{font-size:9px;letter-spacing:1px}.hero .lead{font-size:14px}.hero-actions{gap:19px}.hero .primary{font-size:10px;padding:15px 17px;gap:14px}.hero-github{font-size:10px}.hero .scene{width:92%;left:-10%}.project-info h3{font-size:25px}.ocr-tabs{padding:11px;font-size:7px;gap:12px}.ocr-panels{gap:7px;padding:12px 8px}.invoice-paper{padding:10px 7px}.invoice-paper strong{font-size:17px}.invoice-paper table{font-size:5px;margin-top:8px}.ocr-output pre{font-size:6px;padding:8px 5px}.invoice-paper td,.invoice-paper th{padding:3px 1px}.demo-window-bar small{font-size:7px}.demo-window-bar b{font-size:5px}}@media(max-width:700px){header{height:72px;padding-inline:6%}header .logo{font-size:25px}header nav{position:static;transform:none;gap:18px;margin-left:auto}header nav a{font-size:9px}header nav a:last-child{display:none}.contact-link{display:none}.hero{padding-inline:6%}.hero-composition{height:auto;display:flex;flex-direction:column}.hero-copy{order:1;width:100%;padding:44px 0 0;pointer-events:auto}.hero .intro{font-size:8px;letter-spacing:1px;margin-bottom:20px}.hero h1{font-size:clamp(48px,12.2vw,78px);letter-spacing:-3px;line-height:1.02}.hero .lead{font-size:13px;margin:22px 0}.hero-actions{gap:25px;margin-top:23px}.hero .primary{font-size:10px;padding:15px 19px}.hero-github{font-size:10px}.hero .scene{order:2;position:relative;left:auto;right:auto;top:auto;width:118%;height:350px;margin:2px -9% 0;overflow:visible}.particle-instruction{left:11%;bottom:10px;font-size:5px}.portrait-toggle{bottom:5px;right:10%;font-size:6px;padding:7px 9px}.hero-bottom{height:52px}.hero-bottom>span{display:none}.projects{padding:36px 6% 0}.section-tag{font-size:8px}.projects .section-heading h2{font-size:31px;letter-spacing:-1.2px;line-height:1.12}.project-toolbar{margin-bottom:16px}.project-filters button{font-size:7px;padding:7px 9px}.project-grid{gap:22px}.project-visual.voice-real,.project-visual.concept-ocr{padding:10px 10px 0}.project-info{padding:20px;margin-top:12px}.project-info h3{font-size:26px}.project-info p{font-size:11px}.tags span{font-size:8px}.demo-window-bar{height:30px;padding:0 4px 10px}.demo-window-bar small{font-size:7px}.demo-window-bar b{font-size:5px}.ocr-tabs{padding:13px 11px;font-size:8px;gap:20px}.ocr-panels{padding:16px 10px;gap:9px}.invoice-paper{padding:12px 8px}.invoice-paper strong{font-size:22px}.invoice-paper table{font-size:6px}.invoice-paper td,.invoice-paper th{padding:5px 1px}.ocr-output pre{font-size:7px;padding:10px 6px}.ocr-status{font-size:5px;padding:8px 10px}.ocr-source>small,.ocr-output>small{font-size:7px}.concept-lab{padding:25px 6% 35px}.concept-lab #lab-orbit{height:90px}.concept-lab h2{font-size:10px;letter-spacing:.1px}.concept-lab .lab-controls{padding:5px 5px 18px;gap:20px;opacity:.8}.concept-lab .lab-intro p{font-size:9px;line-height:1.8}.more-work{padding:0 6% 44px}.more-work .wide{display:block}.more-work .lock{min-height:185px}.more-work .project-info{padding:24px}.contact{padding:36px 7%}.contact h2{font-size:44px}.section:not(.projects):not(.concept-lab):not(.more-work):not(.contact){padding-block:55px}.hero h1 em{background-size:300px 150px}}@media(max-width:370px){.hero h1{font-size:44px}.hero .scene{height:300px}.hero-actions{gap:17px}.hero .primary{padding-inline:14px}.ocr-output pre{font-size:6px}.ocr-tabs{gap:15px}.invoice-paper table{font-size:5px}.concept-lab h2{font-size:9px}}@media print{header,.hero,.concept-lab,.more-work{display:none!important}.resume h2,.resume h2 span,.resume p{color:#111!important}footer{display:none}}
.project-card[hidden]{display:none!important}.hero h1 .glitch-copy{font-weight:inherit}.more-work:has(.project-card[hidden]){display:none}.concept-lab #lab-orbit{mix-blend-mode:screen}.concept-lab .lab-console{box-shadow:none}
#portrait-particles{filter:none;mix-blend-mode:screen}.hero{background:#020506}
/* The headline must receive pointer events above the interactive portrait. */
.hero-copy h1{pointer-events:auto;cursor:crosshair}.hero h1.glitching .glitch-copy{will-change:transform,clip-path}.hero h1.glitching .glitch-cyan{text-shadow:-2px 0 #8cffff,2px 0 #00bfff}.hero h1.glitching .glitch-blue{text-shadow:3px 0 #1266ff,-2px 0 #41cfff}
