:root{--bg:#080b11;--panel:#10151e;--line:#232a35;--text:#eff3fa;--muted:#8b96a8;--lime:#b3fa70;--cyan:#75dcf1}body{background:var(--bg);overflow-x:hidden}body:before{content:'';position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:60;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}header{max-width:none;height:90px;position:relative;z-index:5;background:#080b11b0}header nav{margin-left:auto;margin-right:42px}.command-trigger{display:flex;gap:10px;align-items:center;margin-right:38px;background:none;border:0;color:#9aa6b9;font-size:11px}kbd{font:9px var(--mono);padding:4px 6px;border:1px solid #303744;border-radius:4px;color:#6f7b8d}.contact-link{border:1px solid #394330;border-radius:30px;padding:11px 18px;font-size:11px}.contact-link span{margin-left:18px}.hero{display:block;max-width:none;min-height:720px;padding:0 6%;overflow:hidden;background:radial-gradient(ellipse at 84% 43%,#14233077,transparent 45%)}.hero-meta{display:flex;justify-content:space-between;padding-top:28px;position:relative;z-index:2;font:8px var(--mono);letter-spacing:1.6px;color:#8e9bab}.hero-meta>span:first-child{color:#c4cfbc}.hero-meta i{width:5px;height:5px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px #b3fa7080;display:inline-block;margin-right:8px}.hero-composition{position:relative;min-height:575px;display:flex;align-items:center}.hero-copy{position:relative;z-index:2;pointer-events:none;width:100%;padding:45px 0 28px}.hero-copy a{pointer-events:auto}.hero .intro{font:13px var(--mono);color:#8797a9;margin:0 0 30px;letter-spacing:.2px}.hero h1{font-size:clamp(58px,6.8vw,108px);font-weight:500;letter-spacing:-6px;line-height:1.02;max-width:940px;position:relative}.hero h1 em{display:inline-block;color:var(--lime)}.outline-word{color:transparent;-webkit-text-stroke:1px #a0b3c3;font-weight:400}.title-period{color:var(--cyan)}.hero .lead{font:14px/1.85 'DM Sans',sans-serif;color:#8e9bae;margin-top:30px}.hero-actions{align-items:center;gap:30px}.hero .primary{border-radius:35px;padding:18px 25px;gap:35px;box-shadow:0 0 32px #b3fa7010}.hero-github{font:11px var(--mono);color:#b3bdcb}.hero-github span{margin-left:16px;color:#637187}.build-status{margin-top:30px;display:flex;align-items:center;gap:9px;font:9px var(--mono);color:#68768b}.build-status code{font:inherit}.status-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:#758b9a}.scene{position:absolute;right:-6%;top:0;width:52%;height:100%;z-index:1;isolation:isolate;overflow:hidden}.scene canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y}.scene:after{position:absolute;inset:0;content:'';pointer-events:none;background:linear-gradient(90deg,#080b11,transparent 25%)}.scene-center{position:absolute;top:50%;left:51%;transform:translate(-50%,-50%) rotate(-12deg);font:500 68px var(--mono);color:#dcffe6;text-shadow:0 0 35px #a8f8c060;pointer-events:none;opacity:.9}.scene-center span{color:var(--lime)}.scene-coordinate{position:absolute;top:49px;right:18%;font:8px var(--mono);letter-spacing:1.6px;color:#9daebb}.scene-coordinate span{display:block;font-size:7px;letter-spacing:2px;color:#4c697b;margin-top:8px}.scene-bottom{position:absolute;bottom:55px;left:29%;right:14%;display:flex;justify-content:space-between;align-items:center;font:7px var(--mono);color:#62808d;letter-spacing:1px;z-index:2}.scene-bottom button{background:#12212c;border:1px solid #344753;border-radius:30px;color:#9be4c5;padding:9px 12px;font:7px var(--mono)}.scene-chip{position:absolute;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #68819540;border-radius:7px;background:#0d1522b0;backdrop-filter:blur(10px);font:12px var(--mono);color:var(--cyan);pointer-events:none;animation:float 6s ease-in-out infinite;z-index:2;box-shadow:0 10px 20px #0003}.scene-chip span{font:8px var(--mono);color:#a8b7c4}.chip-python{left:18%;top:25%;rotate:-8deg}.chip-js{right:14%;top:47%;rotate:9deg;animation-delay:-2s;color:var(--lime)}.chip-ai{bottom:23%;left:29%;rotate:-4deg;animation-delay:-4s;color:#c4a3ef}.hero-bottom{height:64px;margin:0;color:#617187;position:relative;z-index:2}.hero-bottom a{font-size:8px}.stack-strip{max-width:none;background:#0d1119;border-color:#242c37;padding-block:30px}.stack-strip strong{color:#a5afbc}.stack-strip b{color:#739859}.stack-strip>span{color:#617185}.section{max-width:none;padding-top:110px;padding-bottom:110px}.section-tag{color:#b3fa70}.section-heading{margin-bottom:45px}h2{font-size:clamp(34px,3.9vw,58px);letter-spacing:-2.5px}h2>span:not(.contact-star){color:#69788e}.section-heading p{color:#7f8fa5}.project-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.project-toolbar>span{font:7px var(--mono);color:#566b83;letter-spacing:1px}.project-filters{display:flex;gap:8px}.project-filters button{background:none;border:1px solid transparent;color:#8898ac;border-radius:20px;padding:9px 14px;font:10px var(--mono)}.project-filters button.active{border-color:#b3fa7045;background:#b3fa7010;color:var(--lime)}.project-filters sup{font-size:7px;margin-left:5px}.project-grid{grid-template-columns:1fr 1fr;gap:28px}.project-card{background:#0d121b;border-color:#273142;border-radius:12px;position:relative;transform-style:preserve-3d}.project-card:after{content:'EXPLORE PROJECT ↗';position:absolute;top:24px;right:20px;background:var(--lime);color:#14200e;border-radius:20px;padding:9px 12px;font:8px var(--mono);opacity:0;translate:0 5px;transition:.25s;pointer-events:none}.project-card:hover:after{opacity:1;translate:0 0}.project-card:hover{border-color:#9cae8055;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-5px);box-shadow:0 24px 70px #0004}.project-visual{height:330px;padding:30px}.visual-top{font-size:14px}.visual-top small{font-size:8px}.voice{background:radial-gradient(ellipse at 50% 10%,#4e426c,#1b1b2c 75%)}.waveform{margin-top:25px;height:135px;gap:5px}.waveform i{width:5px}.player{max-width:80%;margin:0 auto;padding:12px 14px;background:#c5affc09}.player strong{font-size:12px}.player small{font-size:8px}.play{height:32px;width:32px}.ocr{background:radial-gradient(ellipse at 50% 10%,#284759,#111e2e 80%)}.ocr-demo{height:235px;gap:35px}.paper{width:108px;height:150px;padding:28px 16px;background:#d6e8e8}.paper div{margin-bottom:17px}.result{font-size:15px}.result small{font-size:8px;color:#7bb2c3}.result b{font-size:8px;color:#8dd1ce}.project-info{padding:30px}.project-info small{color:#6d85a1;font-size:8px}.project-info h3{font-size:28px;margin:14px 0}.project-info p{font-size:13px;color:#899ab0;max-width:470px}.tags span{color:#9aaac0;border-color:#2b3748;background:#131c2a}.wide{grid-template-columns:1.05fr 1fr}.wide .project-info{padding:45px}.lock{min-height:330px;background:radial-gradient(ellipse at 50% 30%,#334a32,#111f1c 80%)}.lock-icon{font-size:90px;line-height:1.3}.lock strong{font-size:25px}.lab{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:8%;background:#0a0f17}.lab-intro p{color:#8393a9;font-size:13px;line-height:1.9;max-width:340px;margin-top:25px}.lab-note{font:7px var(--mono);color:#4f6279;letter-spacing:1.3px;display:block;margin-top:25px}.lab-console{border:1px solid #2b394b;border-radius:12px;background:#0c131e;overflow:hidden}.lab-console-top{display:flex;justify-content:space-between;font:8px var(--mono);color:#7d91ab;padding:18px 22px;border-bottom:1px solid #202d3f}.lab-console-top i{width:5px;height:5px;background:var(--lime);display:inline-block;margin-right:7px;border-radius:50%}.lab-console-top>span:last-child{color:#46607d;font-size:7px;letter-spacing:1px}#lab-orbit{height:220px;width:100%;display:block}.lab-controls{display:flex;align-items:center;gap:20px;padding:20px 22px;border-top:1px solid #202d3f}.lab-controls label{font:8px var(--mono);color:#849ab5;display:flex;flex-direction:column;gap:12px;flex:1;min-width:0}.lab-controls input{width:100%;accent-color:var(--lime);height:3px;cursor:pointer}.lab-controls .button{padding:10px 13px;border-radius:5px;font:9px var(--mono);background:#142131;border-color:#2f4156}.about{background:#0e141e;gap:10%;border-color:#243044}.about-copy p{color:#c0c9d8;font-size:21px;line-height:1.7}.about-copy p+p{color:#8b9bb1;font-size:14px}.approach{border-color:#2d3746}.resume-grid{border-color:#253247}.resume-grid h3{font-size:21px}.resume-grid p{color:#899bb3;font-size:13px}.resume-grid small{color:#657e9c}.resume-note{color:#5e7491}.contact{background:linear-gradient(120deg,#b6fb77,#d3ffa8);margin-bottom:60px;max-width:none;border-radius:18px;padding:65px 6%}.contact h2{font-size:clamp(48px,6vw,88px);letter-spacing:-4px}.contact .section-tag{color:#5e7a40}.contact em{color:#526e33}.contact-star{font-size:150px;top:60px}.contact-row{margin-top:40px}.contact-row .primary{border-radius:30px;padding:19px 26px}.contact-row button,.contact-row>a{font-size:11px}footer{max-width:none;color:#71819b}footer>span,footer>a:last-child{color:#63758f}.reveal{transition:opacity .8s,translate .8s;opacity:0;translate:0 32px}.reveal.in-view{opacity:1;translate:0 0}.pointer-halo{position:fixed;width:450px;height:450px;border-radius:50%;background:radial-gradient(circle,#7cbbf507,transparent 65%);left:var(--px,-900px);top:var(--py,-900px);transform:translate(-50%,-50%);pointer-events:none;z-index:4}dialog{color:var(--text);background:#0e1520;border:1px solid #35435a;box-shadow:0 50px 150px #000b;border-radius:16px;padding:0}dialog::backdrop{background:#03060bc9;backdrop-filter:blur(12px)}dialog[open]{animation:dialog-in .25s ease-out}.project-dialog{max-width:850px;width:calc(100% - 40px);max-height:85vh}.dialog-close{position:absolute;right:18px;top:18px;z-index:3;width:35px;height:35px;border-radius:50%;border:1px solid #546378;background:#0b121fcc;color:#dce6f1}.detail-hero{padding:42px 45px;background:radial-gradient(ellipse at right top,#263d51,#121e2a);border-bottom:1px solid #2c3d52}.detail-hero small{font:8px var(--mono);letter-spacing:2px;color:var(--lime)}.detail-hero h2{font-size:46px;margin:20px 0 14px;color:#eff4fc;overflow-wrap:anywhere}.detail-hero p{color:#9eb0c7;line-height:1.8;max-width:600px;font-size:14px}.detail-body{padding:35px 45px}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-bottom:30px}.detail-body h3{font-size:17px}.detail-body p,.detail-body li{font-size:12px;color:#92a7bf;line-height:1.9}.detail-body ul{padding-left:17px}.detail-actions{display:flex;align-items:center;gap:25px;padding-top:24px;border-top:1px solid #29384b}.detail-actions .button{border-radius:25px}.detail-footnote{font:8px var(--mono);color:#637f9d;margin-top:25px;line-height:1.8}.command-dialog{width:550px;max-width:calc(100% - 30px);margin-top:18vh;overflow:hidden}.command-input-row{display:flex;align-items:center;gap:15px;border-bottom:1px solid #2d3a4d;padding:20px}.command-input-row>span{color:var(--lime);font-size:23px}.command-input-row input{flex:1;min-width:0;background:none;border:0;outline:none;color:#eff4fc;font:14px var(--heading)}.command-close{background:#172334;border:1px solid #2f415b;border-radius:4px;padding:5px 7px;font:9px var(--mono);color:#849bb7}#command-results{padding:8px}.command-item{width:100%;background:none;border:0;display:flex;align-items:center;justify-content:space-between;border-radius:7px;padding:15px;color:#b8c8dd;font:12px var(--heading);text-align:left}.command-item:hover,.command-item.selected{background:#1a2939;color:var(--lime)}.command-item small{font:8px var(--mono);color:#607b9d}.command-help{display:flex;justify-content:space-between;padding:14px 20px;border-top:1px solid #28364a;color:#5f7898;font:8px var(--mono)}.command-empty{padding:25px;color:#8a9cb5;font-size:12px}.project-card[hidden]{display:none}.project-grid.filtered{grid-template-columns:1fr 1fr}body:has(dialog[open]){overflow:hidden}@keyframes dialog-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.hero-copy .intro,.hero h1,.hero .lead,.hero-actions,.build-status{animation:arrive 1s both}.hero h1{animation-delay:.1s}.hero .lead{animation-delay:.2s}.hero-actions{animation-delay:.3s}.build-status{animation-delay:.4s}@keyframes arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.hero{padding-inline:8%}.section{padding-inline:8%}.hero-composition{min-height:650px}.hero{min-height:805px}.hero h1{font-size:114px}.scene{right:-8%}.hero .lead{font-size:16px}}@media(max-width:1000px){.hero h1{font-size:74px;letter-spacing:-4px}.hero-composition{min-height:575px}.scene{width:60%;right:-12%;opacity:.7}.hero-copy{padding-top:80px}.hero-meta>span:last-child{display:none}.command-trigger{margin-right:20px}.command-trigger>span{display:none}.section{padding-block:80px}.project-visual{height:280px;padding:24px}.waveform{height:100px;gap:4px}.project-info{padding:25px}.project-info h3{font-size:23px}.lab{gap:5%}.contact h2{font-size:65px}.contact-star{font-size:110px}.lab-controls{gap:12px}.wide .project-info{padding:30px}}@media(max-width:700px){header{height:76px}header nav{margin-right:15px;gap:14px}nav a{font-size:10px}.command-trigger{margin-right:0;font-size:18px}.command-trigger kbd{display:none}.hero{min-height:0;padding-top:0}.hero-meta{font-size:7px;letter-spacing:.8px;padding-top:22px}.hero-composition{display:block;min-height:0}.hero-copy{padding:55px 0 0}.hero .intro{font-size:10px;margin-bottom:22px}.hero h1{font-size:clamp(44px,9.7vw,70px);letter-spacing:-2.7px;line-height:1.07}.hero .lead{font-size:13px;max-width:80%;margin:25px 0}.hero-actions{gap:25px}.hero .primary{font-size:11px;padding:16px 20px;gap:22px}.hero-github{font-size:10px}.build-status{font-size:7px;margin-top:25px}.scene{position:relative;width:115%;height:350px;right:auto;margin-left:-7.5%;opacity:1}.scene:after{background:linear-gradient(180deg,#080b11,transparent 20%,transparent 80%,#080b11)}.scene-coordinate{top:22px;right:10%;font-size:7px}.scene-coordinate span{font-size:6px}.scene-bottom{bottom:22px;left:15%;right:13%}.scene-center{font-size:55px}.chip-python{top:28%;left:13%}.chip-js{right:9%}.chip-ai{bottom:19%;left:20%}.hero-bottom{margin-top:0;height:58px}.stack-strip{padding-block:22px;gap:12px 17px}.stack-strip strong{font-size:11px}.section{padding:60px 6%}.section-heading{margin-bottom:30px}h2{letter-spacing:-1.8px;font-size:37px}.project-toolbar>span{display:none}.project-filters{gap:0}.project-filters button{font-size:8px;padding:8px 12px}.project-grid,.project-grid.filtered{grid-template-columns:1fr}.project-visual{height:285px}.waveform{height:110px;gap:4px}.waveform i{width:4px}.player{max-width:90%}.ocr-demo{height:200px;gap:22px}.result{font-size:12px}.paper{width:93px;height:133px}.project-info h3{font-size:26px}.project-card:after{opacity:1;top:auto;bottom:24px;right:20px;font-size:6px;padding:7px 9px}.tags{max-width:70%;flex-wrap:wrap;gap:5px}.tags span{font-size:7px;padding:5px 6px}.wide .project-info{padding:25px}.wide .text-link{margin-bottom:10px}.wide{display:block}.lab{grid-template-columns:1fr;gap:28px}.lab-intro p{max-width:100%}.lab-note{margin-top:15px}#lab-orbit{height:180px}.lab-controls{padding:18px 15px;gap:14px}.lab-controls .button{font-size:8px;padding:10px}.lab-controls label{font-size:7px}.about-copy p{font-size:18px}.about-copy p+p{font-size:13px}.approach{font-size:7px}.contact{border-radius:12px;padding:40px 7%;margin-bottom:40px}.contact h2{font-size:47px;letter-spacing:-2.5px}.contact-star{font-size:50px;top:30px;right:5%}.contact-row{gap:18px;margin-top:30px}.contact-row .button{padding:17px}.detail-hero{padding:55px 25px 25px}.detail-hero h2{font-size:33px}.detail-hero p{font-size:12px}.detail-body{padding:22px 25px}.detail-columns{grid-template-columns:1fr;gap:15px}.detail-actions{gap:15px;flex-wrap:wrap}.detail-actions .button{font-size:10px}.pointer-halo{display:none}.command-help{font-size:7px;padding:13px}.reveal{translate:0 20px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;translate:none}.hero-copy .intro,.hero h1,.hero .lead,.hero-actions,.build-status{animation:none}.pointer-halo{display:none}.project-card:hover{transform:none}}body.paused .reveal{opacity:1;translate:none}@media print{.lab,.pointer-halo,dialog,.command-trigger{display:none!important}body:before{display:none}.resume{padding:20px}.reveal{opacity:1;translate:none}}
@media print{.resume h2,.resume h2>span,.resume-grid h3,.resume-grid p,.resume-grid small,.resume-note,.resume .section-tag{color:#111!important}.resume-grid{border-color:#bbb}.resume-grid>div{break-inside:avoid}.resume .section-heading p{color:#444}}
