:root{--bg:#06080d;--bg-soft:#0b1220;--text:#f1f5ff;--muted:#96a3bd;--accent:#5eead4;--neon-cyan:#7be8ff;--neon-magenta:#d6f;--card:#0c1422b8;--border:#5eead43d;--shadow:0 20px 50px #00000073;--hero-about-progress:0;--about-experience-progress:0;--experience-projects-progress:0}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);width:100%;min-height:100%;color:var(--text);scroll-behavior:smooth;margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{overflow:hidden}.noise{pointer-events:none;opacity:.16;z-index:1;background-image:radial-gradient(#5eead412 1px,#0000 1px);background-size:3px 3px;position:fixed;inset:0}.topbar{border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#070b139e;border-radius:999px;justify-content:space-between;align-items:center;width:min(1120px,100vw - 2rem);padding:.8rem 1rem;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.brand{border:1px solid var(--border);width:2.4rem;height:2.4rem;color:var(--accent);border-radius:50%;place-items:center;font-weight:700;text-decoration:none;display:grid}.topbar-links{gap:1rem;display:flex}.topbar-links a{color:var(--muted);font-size:.9rem;text-decoration:none;transition:color .22s}.topbar-links a:hover{color:var(--text)}.button{border:1px solid var(--border);color:var(--text);border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.62rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.button-solid{background:var(--accent);border-color:var(--accent);color:#04110f}.button-ghost{background:#080e184d}.deck{z-index:2;scroll-snap-type:x mandatory;scrollbar-width:none;width:100vw;height:100vh;display:flex;position:relative;overflow:auto hidden}.deck::-webkit-scrollbar{display:none}.panel{scroll-snap-align:start;align-items:center;width:100vw;min-width:100vw;height:100vh;padding:6.8rem 3.2rem 2.4rem;display:grid}.panel-content{width:min(1120px,100%);margin:0 auto}.hero-layout{grid-template-columns:1.2fr 1fr;align-items:center;gap:2.2rem;display:grid}.hero-motto{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .55rem;font-size:clamp(1rem,2vw,1.35rem);font-weight:500;line-height:1.35}.eyebrow{color:#fff;letter-spacing:.08em;text-transform:uppercase;margin-top:.45rem;font-size:clamp(.82rem,1.4vw,.98rem);font-weight:500}h1,h2,h3,p{margin:0}h1{margin-top:.35rem;font-size:clamp(1.55rem,3.2vw,2.6rem);line-height:1.1}h2{margin-top:.6rem;font-size:clamp(1.7rem,3vw,2.8rem)}h3{font-size:1.08rem}.lead{max-width:60ch;color:var(--muted);margin-top:1rem;line-height:1.75}@keyframes reactSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.section-lead{color:var(--muted);max-width:70ch;margin-top:1rem;line-height:1.7}.hero-meta{flex-wrap:wrap;gap:.7rem;margin-top:1.1rem;display:flex}.hero-meta span{color:#c9d5ea;border:1px solid #94a3b840;border-radius:999px;padding:.35rem .7rem;font-size:.8rem}.hero-actions{gap:.8rem;margin-top:1.4rem;display:flex}.hero-phone-space{min-height:34rem}.phone-stage{z-index:13;width:min(1180px,94vw);height:min(86vh,704px);transform:translate(-50%, -50%) translateX(calc((1 - var(--about-experience-progress)) * clamp(180px, 18vw, 320px)));pointer-events:none;opacity:1;place-items:center;transition:transform .35s,opacity .35s,filter .35s;display:grid;position:fixed;top:52%;left:50%}html.is-fast-about-experience .phone-stage,html.is-fast-about-experience .phone-model,html.is-fast-about-experience .phone-screen-content,html.is-fast-about-experience .phone-layer-about-composite,html.is-fast-about-experience .phone-layer-experience{transition-duration:.44s;transition-timing-function:ease-out}.phone-stage.is-hidden{opacity:0;filter:blur(2px);pointer-events:none;visibility:hidden}.phone-model{z-index:2;width:min(calc(292px + var(--hero-about-progress) * 68px + var(--about-experience-progress) * 620px - var(--experience-projects-progress) * 420px), calc(100vw - 48px));aspect-ratio:calc(.58 + var(--about-experience-progress) * 1.22 - var(--experience-projects-progress) * 1.1);padding:calc(.9rem - var(--about-experience-progress) * .2rem);border-radius:calc(2.3rem - var(--about-experience-progress) * .45rem);border:1px solid var(--border);box-shadow:var(--shadow);transform-style:preserve-3d;opacity:calc(1 - var(--experience-projects-progress));transform:translate3d(0, calc(var(--hero-about-progress) * 8px - var(--about-experience-progress) * 4px), 0) rotateX(calc(16deg - var(--hero-about-progress) * 16deg)) rotateY(calc(-20deg + var(--hero-about-progress) * 20deg)) rotateZ(calc(-12deg + var(--hero-about-progress) * 12deg)) scale(calc(.94 + var(--hero-about-progress) * .12 + var(--about-experience-progress) * .06 - var(--experience-projects-progress) * .35));pointer-events:none;background:linear-gradient(140deg,#0c1627f5,#080d16e6);transition:transform .28s ease-out,opacity .3s,width .28s ease-out,aspect-ratio .28s ease-out,border-radius .28s ease-out,padding .28s ease-out;position:relative}.chip-cloud{pointer-events:none;filter:drop-shadow(0 8px 14px #00000073);position:absolute;inset:-42rem}.chip-fragment{--tx:0px;--ty:0px;--rot:0deg;opacity:calc(.96 - var(--hero-about-progress) * .96);transform:translate(calc(-50% + var(--tx) * (1 - var(--hero-about-progress))), calc(-50% + var(--ty) * (1 - var(--hero-about-progress)))) rotate(calc(var(--rot) * (1 - var(--hero-about-progress)))) translateZ(0);transition:transform .28s,opacity .24s;display:block;position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:0 .35rem .8rem #00000073,inset 0 0 0 1px #ffffff0f}.chip-fragment>span{pointer-events:none;display:block;position:absolute}.chip-fragment.camera{--tx:436px;--ty:-332px;--rot:28deg;background:linear-gradient(145deg,#2a2e36 0%,#12151b 48%,#0a0c10 100%);border:1px solid #b4becd47;border-radius:.95rem;width:3.55rem;height:3.2rem;box-shadow:0 .4rem .9rem #00000080,inset 0 1px #ffffff1f,inset 0 -1px #0006}.chip-cam-body{background:linear-gradient(160deg,#1a1e26,#0d1016);border:1px solid #ffffff0f;border-radius:.78rem;inset:.22rem}.chip-cam-lens{background:radial-gradient(circle at 35% 30%,#8cbeff59,#0000 28%),radial-gradient(circle,#0b1a2e 0%,#061018 42%,#02060c 70%,#1a2433 100%);border:1.5px solid #788ca58c;border-radius:50%;box-shadow:inset 0 0 0 2px #080c12d9,inset 0 0 8px #2878c840,0 0 0 1px #00000080}.chip-cam-lens-lg{width:1.35rem;height:1.35rem;top:.42rem;left:.42rem}.chip-cam-lens-lg:after{content:"";background:radial-gradient(circle at 40% 35%,#1a4a7a,#061220 70%);border:1px solid #508cc859;border-radius:50%;position:absolute;inset:28%}.chip-cam-lens-sm{width:.95rem;height:.95rem;bottom:.48rem;right:.42rem}.chip-cam-flash{background:radial-gradient(circle at 40% 35%,#fff8e8,#d4b878 55%,#8a7040);border:1px solid #fff0c859;border-radius:50%;width:.42rem;height:.42rem;top:.55rem;right:.55rem;box-shadow:0 0 6px #ffdc8c73}.chip-cam-mic{background:#0a0c10;border:1px solid #a0aab959;border-radius:50%;width:.28rem;height:.28rem;top:1.45rem;left:1.85rem;box-shadow:inset 0 0 2px #000c}.chip-fragment.board{--tx:-226px;--ty:-218px;--rot:-76deg;background:linear-gradient(135deg,#2c22220a,#0000 40%),linear-gradient(160deg,#414f49,#252927 50%,#232b27);border:1px solid #2878508c;border-radius:.28rem;width:8.8rem;height:4.8rem;box-shadow:0 .35rem .75rem #00000080,inset 0 0 0 1px #50b4781f}.chip-pcb-trace{opacity:.85;background:linear-gradient(90deg,#0000,#c9a227 10%,#e8c84a 50%,#c9a227 90%,#0000);height:1px}.chip-pcb-trace.t1{width:62%;top:28%;left:12%}.chip-pcb-trace.t2{width:48%;top:52%;right:10%}.chip-pcb-trace.t3{background:linear-gradient(#0000,#c9a227 20%,#e8c84a 50%,#c9a227 80%,#0000);width:1px;height:42%;top:30%;left:38%}.chip-pcb-ic{background:linear-gradient(160deg,#2a2e34,#12151a);border:1px solid #00000080;border-radius:.12rem;width:1.15rem;height:.85rem;bottom:.35rem;left:.55rem;box-shadow:inset 0 1px #ffffff14}.chip-pcb-ic:after{content:"";background:#ffffff1f;border-radius:50%;width:.22rem;height:.22rem;position:absolute;top:.18rem;left:.18rem}.chip-pcb-pad{background:radial-gradient(circle at 35% 30%,#f0d878,#b8860b 60%,#6b4e0a);border:1px solid #50370a80;border-radius:50%;width:.28rem;height:.28rem}.chip-pcb-pad.p1{top:.35rem;right:.4rem}.chip-pcb-pad.p2{top:.35rem;right:.85rem}.chip-pcb-pad.p3{bottom:.35rem;right:.4rem}.chip-pcb-pad.p4{bottom:.35rem;right:.85rem}.chip-fragment.battery{--tx:298px;--ty:-206px;--rot:18deg;background:linear-gradient(#3a3f48 0%,#1c2028 18%,#12151a 100%);border:1px solid #a0aab94d;border-radius:.32rem;width:1.95rem;height:3.4rem;overflow:visible;box-shadow:0 .4rem .85rem #00000080,inset 0 1px #ffffff1a}.chip-batt-cell{background:linear-gradient(90deg,#ffffff0f,#0000 30% 70%,#0003),linear-gradient(#2a2f38,#15181e);border:1px solid #00000059;border-radius:.24rem;inset:.12rem}.chip-batt-label{opacity:.9;background:linear-gradient(#1a3a28,#0f2418);border:1px solid #3c8c5a59;border-radius:.1rem;height:.9rem;top:38%;left:.28rem;right:.28rem}.chip-batt-stripe{background:#ffffff1f;border-radius:999px;height:.14rem;top:.55rem;left:18%;right:18%}.chip-batt-tab{background:linear-gradient(#d8dde6,#9aa3b2);border:1px solid #505a6973;border-radius:.08rem .08rem .04rem .04rem;width:.78rem;height:.28rem;top:-.22rem;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #00000059}.chip-fragment.screen{--tx:112px;--ty:-248px;--rot:-4deg;background:linear-gradient(160deg,#1a1e26,#0a0c10);border:1px solid #8c96a559;border-radius:.55rem;width:2.7rem;height:4rem;box-shadow:0 .4rem .9rem #0000008c,inset 0 0 0 1px #ffffff0f}.chip-screen-glass{background:linear-gradient(145deg,#5eead414,#0000 40%),linear-gradient(#0a1018,#04060a);border:1px solid #283241cc;border-radius:.42rem;inset:.18rem;box-shadow:inset 0 0 12px #0009}.chip-screen-notch{background:#020406;border:1px solid #3c465580;border-radius:999px;width:38%;height:.22rem;top:.32rem;left:50%;transform:translate(-50%)}.chip-screen-shine{filter:blur(.5px);background:linear-gradient(120deg,#ffffff1f,#0000 70%);border-radius:40%;width:28%;height:55%;top:18%;left:12%;transform:rotate(-18deg)}.chip-fragment.core{--tx:170px;--ty:-176px;--rot:12deg;background:linear-gradient(145deg,#2c3038,#14171d 55%,#0c0e12);border:1px solid #5a647373;border-radius:.28rem;width:3.8rem;height:3.8rem;overflow:visible;box-shadow:0 .35rem .8rem #00000080,inset 0 1px #ffffff1a}.chip-die{background:linear-gradient(135deg,#5eead41f,#0000 50%),linear-gradient(160deg,#1a2430,#0a121c);border:1px solid #3de8ff59;border-radius:.14rem;inset:.42rem;box-shadow:inset 0 0 8px #3de8ff1f,0 0 6px #3de8ff26}.chip-die-mark{background:#ffffff24;border:1px solid #ffffff14;border-radius:50%;width:.28rem;height:.28rem;top:.55rem;left:.55rem}.chip-pin-row{background:repeating-linear-gradient(90deg,#c0a060 0 2px,#0000 2px 4px)}.chip-pin-row.top,.chip-pin-row.bottom{height:.18rem;left:.45rem;right:.45rem}.chip-pin-row.top{top:.12rem}.chip-pin-row.bottom{bottom:.12rem}.chip-pin-row.left,.chip-pin-row.right{background:repeating-linear-gradient(#c0a060 0 2px,#0000 2px 4px);width:.18rem;top:.45rem;bottom:.45rem}.chip-pin-row.left{left:.12rem}.chip-pin-row.right{right:.12rem}.chip-fragment.lens{--tx:212px;--ty:-338px;--rot:-32deg;background:linear-gradient(145deg,#3a404c,#151920);border:1px solid #a0aab966;border-radius:50%;width:2.35rem;height:2.35rem;box-shadow:0 .35rem .8rem #00000080,inset 0 1px #ffffff26}.chip-lens-outer{background:radial-gradient(circle,#0a1018,#05080c);border:2px solid #64738773;border-radius:50%;inset:.18rem}.chip-lens-glass{background:radial-gradient(circle at 32% 28%,#a0d2ff73,#0000 32%),radial-gradient(circle at 50% 55%,#0c2848,#040c18 65%,#02060c);border:1px solid #508cc866;border-radius:50%;inset:.42rem;box-shadow:inset 0 0 10px #1450a059}.chip-lens-iris{background:radial-gradient(circle at 40% 35%,#1a5080,#061018);border:1px solid #3c78b459;border-radius:50%;inset:.72rem}.chip-lens-glint{filter:blur(.5px);background:#ffffff8c;border-radius:50%;width:.35rem;height:.22rem;top:.62rem;left:.7rem;transform:rotate(-28deg)}.chip-fragment.connector1{--tx:-492px;--ty:44px;--rot:34deg}.chip-fragment.connector2{--tx:508px;--ty:58px;--rot:-34deg}.chip-fragment.is-connector{background:linear-gradient(#2a4a38,#163024);border:1px solid #3c785073;border-radius:.12rem;width:1.85rem;height:.62rem;overflow:visible}.chip-flex-body{background:linear-gradient(#3d6b52,#1e4030);border-radius:.06rem;inset:.08rem .35rem .08rem .1rem}.chip-flex-pins{background:repeating-linear-gradient(#d4b060 0 1.5px,#8a7030 1.5px 2.5px);border:1px solid #503c1466;border-radius:.04rem;width:.32rem;top:.1rem;bottom:.1rem;right:.08rem}.chip-flex-tip{background:linear-gradient(#c8cdd6,#8a929e);border:1px solid #46505f66;border-radius:.04rem;width:.18rem;top:.12rem;bottom:.12rem;left:-.12rem}.chip-fragment.tiny1{--tx:-548px;--ty:-86px;--rot:20deg}.chip-fragment.tiny2{--tx:566px;--ty:-54px;--rot:-20deg}.chip-fragment.tiny3{--tx:-420px;--ty:246px;--rot:12deg}.chip-fragment.tiny4{--tx:454px;--ty:212px;--rot:-16deg}.chip-fragment.is-ic{background:linear-gradient(160deg,#2a2e34,#101318);border:1px solid #0000008c;border-radius:.1rem;width:.95rem;height:.72rem;box-shadow:0 .2rem .45rem #00000073,inset 0 1px #ffffff14}.chip-ic-body{inset:0}.chip-ic-mark{background:#ffffff24;border-radius:50%;width:.18rem;height:.18rem;top:.12rem;left:.12rem}.chip-fragment.is-capacitor{width:.72rem;height:.95rem;box-shadow:none;background:0 0;border:none;border-radius:.1rem;overflow:visible}.chip-cap-body{background:linear-gradient(#4a5568,#1e2430 40%,#12161e);border:1px solid #64738766;border-radius:.08rem .08rem .06rem .06rem;inset:.08rem .12rem;box-shadow:0 .2rem .4rem #0006}.chip-cap-band{background:linear-gradient(#c9a227,#8a7018);border-radius:.02rem;height:.14rem;top:.22rem;left:.12rem;right:.12rem}.chip-fragment.is-resistor{background:linear-gradient(#c4a574,#8b6914);border:1px solid #50371473;border-radius:.12rem;width:1.05rem;height:.42rem;box-shadow:0 .2rem .4rem #0006}.chip-res-body{inset:0}.chip-res-band{width:.12rem;top:0;bottom:0}.chip-res-band.b1{background:#1a1a1a;left:.18rem}.chip-res-band.b2{background:#b22222;left:.38rem}.chip-res-band.b3{background:#c9a227;left:.58rem}.phone-screen{background:radial-gradient(circle at 100% 0,#5eead438,#04070f 58%);border:1px solid #94a3b840;border-radius:1.8rem;height:100%;padding:.65rem;position:relative;overflow:hidden}.phone-notch{z-index:6;background:linear-gradient(#050a12f2,#02060bf5);border:1px solid #94a3b82e;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;width:34%;height:1.05rem;display:flex;position:absolute;top:.65rem;left:50%;transform:translate(-50%)}.phone-camera{background:radial-gradient(circle at 35% 35%,#5a7aa2,#0d1728 58%);border:1px solid #94a3b859;border-radius:50%;width:.44rem;height:.44rem}.phone-speaker{background:#94a3b866;border-radius:999px;width:1.15rem;height:.22rem}.phone-screen-content{inset:calc(2.55rem - var(--about-experience-progress) * .85rem) calc(.35rem + var(--about-experience-progress) * .55rem) calc(1.2rem - var(--about-experience-progress) * .35rem);transform-origin:50%;transition:inset .28s,transform .28s,opacity .28s;position:absolute;transform:none}.phone-layer{z-index:1;padding:.48rem;position:absolute;inset:0}.phone-layer-circuit{opacity:calc(1 - var(--hero-about-progress));transform:translateY(calc(var(--hero-about-progress) * -10px));pointer-events:none;transition:opacity .25s,transform .25s}.phone-layer-about-composite{opacity:clamp(0, calc((var(--hero-about-progress) - .35) * 2.4 - var(--about-experience-progress) * 2.2), 1);transform:translateY(calc((1 - var(--hero-about-progress)) * 16px));scrollbar-width:none;pointer-events:none;flex-direction:column;gap:.45rem;padding-top:.35rem;transition:opacity .28s,transform .28s;display:flex;overflow-y:auto}.phone-layer-experience{opacity:clamp(0, calc((var(--about-experience-progress) - .28) * 2.4 - var(--experience-projects-progress) * 2.4), 1);transform:translateY(calc((1 - var(--about-experience-progress)) * 18px));pointer-events:none;flex-direction:column;gap:1.1rem;padding:2rem .9rem .4rem 1.8rem;transition:opacity .28s,transform .28s;display:flex;overflow:hidden}.project-phone-slider{z-index:3;scroll-snap-type:x mandatory;scrollbar-width:none;opacity:clamp(0, calc((var(--experience-projects-progress) - .12) * 1.8), 1);transform:scale(calc(.82 + var(--experience-projects-progress) * .18));pointer-events:none;align-items:center;gap:3rem;padding:.4rem .6rem .8rem;transition:opacity .28s,transform .28s;display:flex;position:absolute;inset:0;overflow:auto hidden}.project-phone-slider::-webkit-scrollbar{display:none}.phone-stage.is-projects-visible:not(.is-hidden) .project-phone-slider{pointer-events:auto}.phone-stage.is-hidden .project-phone-slider{pointer-events:none}.project-phone{--from-center:calc((var(--project-index) - (var(--project-count) - 1) / 2) * -13rem);scroll-snap-align:center;width:min(220px,24vw);transform:translateX(calc(var(--from-center) * (1 - var(--experience-projects-progress)))) rotateY(calc((var(--project-index) - (var(--project-count) - 1) / 2) * (1 - var(--experience-projects-progress)) * -8deg)) scale(calc(.52 + var(--experience-projects-progress) * .48));opacity:clamp(.15, var(--experience-projects-progress), 1);flex:none;transition:transform .32s ease-out,opacity .28s}.project-phone-frame{aspect-ratio:.527;border:1px solid var(--border);width:100%;box-shadow:var(--shadow);background:linear-gradient(145deg,#0c1627fa,#080d16f0);border-radius:1.85rem;padding:.72rem;position:relative;overflow:hidden}.project-phone-notch{z-index:4;background:linear-gradient(#050a12f2,#02060bf5);border:1px solid #94a3b82e;border-radius:999px;justify-content:center;align-items:center;gap:.28rem;width:34%;height:.9rem;display:flex;position:absolute;top:.55rem;left:50%;transform:translate(-50%)}.project-phone-camera{background:radial-gradient(circle at 35% 35%,#5a7aa2,#0d1728 58%);border:1px solid #94a3b859;border-radius:50%;width:.36rem;height:.36rem}.project-phone-speaker{background:#94a3b866;border-radius:999px;width:.95rem;height:.18rem}.project-phone-content{background:radial-gradient(circle at 100% 0,#5eead433,#0000 48%),radial-gradient(circle at 100% 100%,#5eead41f,#0000 42%),#04070f;border-radius:.9rem;position:absolute;inset:2.1rem .42rem 1rem;overflow:hidden}.project-phone-slides{width:100%;height:100%;transition:transform .45s;display:flex}.project-phone-slide{flex:0 0 100%;width:100%;min-width:100%;height:100%;position:relative;overflow:hidden}.project-phone-slide-intro{flex-direction:column;gap:.45rem;padding:.2rem .15rem;display:flex}.project-phone-slide-intro .phone-bars{margin-top:.15rem}.project-phone-slide-intro .phone-hero-highlight{flex:1;align-items:flex-start;min-height:0}.project-phone-slide-intro .phone-hero-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.78rem;display:-webkit-box;overflow:hidden}.project-phone-slide-intro .phone-hero-subtext{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-phone-slide-media{background:#04070f;flex-direction:column;padding-bottom:1.1rem;display:flex}.project-phone-slide-media.is-splash{background:#fff}.project-phone-image{object-fit:cover;object-position:top center;flex:1;width:100%;min-height:0;display:block}.project-phone-splash{flex:1;place-items:center;min-height:0;padding:1.2rem 1rem 2.6rem;display:grid}.project-phone-logo{aspect-ratio:1;object-fit:contain;width:min(46%,5.5rem);display:block}.project-phone-actions{z-index:2;flex-direction:row;justify-content:center;align-items:center;gap:.35rem;display:flex;position:absolute;bottom:1.55rem;left:.45rem;right:.45rem}.project-phone-link{min-width:0;max-width:80%;min-height:1.45rem;color:var(--accent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#060c14e0;border:1px solid #5eead473;border-radius:999px;flex:1 1 0;place-items:center;padding:.2rem .45rem;font-size:.52rem;font-weight:400;text-decoration:none;transition:opacity .2s;display:grid}.project-phone-link:hover,.project-phone-link:active{opacity:.72}.project-phone-dots{z-index:3;gap:.28rem;display:flex;position:absolute;bottom:.28rem;left:50%;transform:translate(-50%)}.project-phone-dot{background:#94a3b873;border-radius:50%;width:.28rem;height:.28rem}.project-phone-dot.is-active{background:var(--accent);box-shadow:0 0 8px #5eead48c}.project-phone-badge{width:2.1rem;height:2.1rem;color:var(--accent);background:#5eead414;border:1px solid #5eead44d;border-radius:50%;flex-shrink:0;place-items:center;font-size:.68rem;font-weight:700;display:grid}.project-phone-gesture{z-index:4;background:#d6e2f780;border-radius:999px;width:35%;height:.22rem;position:absolute;bottom:.42rem;left:50%;transform:translate(-50%)}.project-phone-glow{z-index:0;pointer-events:none;background:radial-gradient(circle,#5eead466,#0000 70%);border-radius:999px;width:8rem;height:8rem;position:absolute;bottom:-2.2rem;right:-2.2rem}.phone-experience-tag{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.phone-layer-experience h4{color:#eef5ff;max-width:42ch;margin:0;font-size:clamp(1rem,1.5vw,1.28rem);line-height:1.25}.phone-experience-timeline{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;min-height:0;display:grid;overflow:hidden}.phone-experience-card{background:#080e188c;border:1px solid #94a3b838;border-radius:.65rem;flex-direction:column;gap:.38rem;min-width:0;min-height:0;padding:1rem .65rem .9rem 1.15rem;display:flex;overflow:hidden}.phone-experience-time{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);flex-shrink:0;margin:0;font-size:.62rem}.phone-experience-card h5{color:#e8f0ff;flex-shrink:0;margin:0;font-size:.7rem;line-height:1.25}.phone-experience-card p{color:#b7c6de;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:.62rem;line-height:1.35;display:-webkit-box;overflow:hidden}.phone-layer-about-composite::-webkit-scrollbar{display:none}.phone-layer-about-composite .phone-layer-about{flex-direction:column;gap:.65rem;margin-top:.35rem;padding:0;display:flex;position:relative;inset:auto}.phone-about-tag{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:600}.phone-layer-about h4{color:#eef5ff;margin:0;font-size:1.24rem;line-height:1.28}.phone-about-lead{color:#c8d8f5;margin:0;font-size:1rem;line-height:1.55}.phone-about-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:.65rem;display:grid}.phone-about-card{background:#080e1885;border:1px solid #94a3b838;border-radius:.8rem;padding:.65rem}.phone-about-card h5{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0;font-size:.88rem}.phone-about-card ul{gap:.45rem;margin:.45rem 0 0;padding-left:.95rem;display:grid}.phone-about-card li{color:#d6def0;font-size:.88rem;line-height:1.48}.phone-about-skills{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.phone-about-skills span{color:#d6ebf1;background:#5eead41a;border:1px solid #5eead440;border-radius:999px;padding:.18rem .46rem;font-size:.76rem}.phone-top{opacity:.24;background:#c4cedf;border-radius:999px;width:34%;height:.38rem;margin:0 auto .35rem}.phone-bars{gap:.55rem;margin-top:.35rem;display:grid}.phone-bars span{background:linear-gradient(90deg, var(--accent), #5eead41a);border-radius:999px;height:.6rem}.phone-text{color:#d7e1f3;margin-top:.55rem;font-size:.9rem;line-height:1.4}.phone-hero-highlight{background:#080e1885;border:1px solid #94a3b833;border-radius:.75rem;align-items:center;gap:.6rem;margin-top:.45rem;padding:.52rem;display:flex}.phone-react-badge{background:#5eead414;border:1px solid #5eead44d;border-radius:50%;flex-shrink:0;place-items:center;width:2.1rem;height:2.1rem;display:grid}.phone-react-logo{width:1.45rem;height:1.45rem;animation:6.6s linear infinite reactSpin}.phone-react-logo ellipse{fill:none;stroke:var(--accent);stroke-width:1.2px}.phone-react-logo circle{fill:var(--accent)}.phone-hero-copy{gap:.18rem;display:grid}.phone-hero-title{color:#eaf3ff;margin:0;font-size:.82rem;font-weight:700;line-height:1.25}.phone-hero-subtext{color:#b4c5dc;margin:0;font-size:.67rem;line-height:1.38}.phone-hero-tech{flex-wrap:wrap;gap:.3rem;margin-top:.35rem;display:flex}.phone-hero-tech span{color:#d8e7f2;background:#5eead414;border:1px solid #5eead440;border-radius:999px;padding:.12rem .34rem;font-size:.6rem}.phone-circuit-scene{background:radial-gradient(circle,#3de8ff14,#0000 48%),radial-gradient(at 0%,#dd66ff24,#0000 34%),radial-gradient(at 100%,#3de8ff1f,#0000 34%),#05080f;border:1px solid #3de8ff24;border-radius:.9rem;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.processor-svg{filter:drop-shadow(0 0 6px #3de8ff8c)drop-shadow(0 0 16px #3de8ff47);width:92%;height:92%;animation:3.6s ease-in-out infinite processorPulse;overflow:visible}.processor-svg .processor-core rect:first-child{fill:#05080f}@keyframes processorPulse{0%,to{opacity:.92;filter:drop-shadow(0 0 5px #3de8ff73)drop-shadow(0 0 14px #3de8ff38)}50%{opacity:1;filter:drop-shadow(0 0 8px #3de8ffb3)drop-shadow(0 0 20px #3de8ff59)}}.phone-gesture-bar{z-index:6;background:#d6e2f780;border-radius:999px;width:35%;height:.24rem;position:absolute;bottom:.48rem;left:50%;transform:translate(-50%)}.phone-glow{z-index:0;background:radial-gradient(circle,#5eead473,#0000 70%);border-radius:999px;width:12rem;height:12rem;position:absolute;bottom:-3rem;right:-3rem}.about-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem;display:grid}.about-layout{grid-template-columns:1.12fr .88fr;align-items:center;gap:2rem;display:grid}.about-phone-space{min-height:34rem}.card{background:var(--card);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:var(--shadow);transform-style:preserve-3d;border:1px solid #94a3b833;border-radius:1.1rem;padding:1rem;transition:transform .22s,border-color .22s}.card:hover{border-color:var(--border)}.card ul{color:var(--muted);margin:.85rem 0 0;padding-left:1.1rem;line-height:1.6}.skills{flex-wrap:wrap;gap:.55rem;margin-top:.8rem;display:flex}.skills span,.chip-group span{color:#d7e5fc;background:#5eead417;border:1px solid #5eead447;border-radius:999px;padding:.36rem .62rem;font-size:.8rem}.timeline{grid-template-columns:repeat(2,minmax(220px,1fr));gap:.9rem;margin-top:1.3rem;display:grid}.experience-mobile-fallback .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.time{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.75rem}.timeline-item p{color:var(--muted);margin-top:.6rem;line-height:1.6}.experience-panel-content{width:min(1220px,100%)}.experience-phone-space{min-height:min(72vh,520px)}.experience-mobile-fallback{display:none}.projects-panel-content{width:min(1220px,100%)}.projects-panel-content h2{margin-bottom:5.5rem}.projects-phone-space{min-height:min(75vh,616px)}.projects-mobile-fallback{display:none}.project-row{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.project-row::-webkit-scrollbar{display:none}.project{min-height:12rem}.project p{color:var(--muted);margin-top:.65rem;line-height:1.55}.chip-group{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.contact-layout{grid-template-columns:1.1fr .9fr;gap:1rem;display:grid}.contact-list{gap:.55rem;margin-top:1.2rem;display:grid}.contact-list a{color:#d5def1;text-decoration:none}.contact-list a:hover{color:var(--accent)}.contact-card{align-content:center;display:grid}.quote{color:#d5e3fb;font-size:1.08rem;line-height:1.75}.signature{color:var(--accent);margin-top:1rem}.scroll-hint{z-index:11;pointer-events:none;position:fixed;inset:0}.scroll-hint-stack{width:3.15rem;color:var(--accent);flex-direction:column;align-items:center;gap:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.scroll-hint-stack--left{left:1.4rem}.scroll-hint-stack--right{right:1.4rem}.scroll-hint-chevron{opacity:.18;width:100%;height:1.05rem;animation:1.8s ease-in-out infinite scroll-hint-cascade;animation-delay:calc(var(--i) * .28s);margin-top:-.28rem;display:block}.scroll-hint-chevron:first-child{margin-top:0}.scroll-hint-chevron svg{filter:drop-shadow(0 0 8px #5eead459);width:100%;height:100%;display:block}@keyframes scroll-hint-cascade{0%,to{opacity:.15}20%,35%{opacity:1}55%{opacity:.2}}.back-to-top{z-index:14;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:3.4375rem;height:3.4375rem;color:var(--accent);opacity:0;pointer-events:none;background:#070b13b8;border-radius:999px;place-items:center;text-decoration:none;transition:opacity .28s,transform .28s,border-color .22s,background .22s;display:grid;position:fixed;bottom:1.6rem;right:1.4rem;transform:translateY(.4rem)}.back-to-top.is-visible{opacity:1;pointer-events:auto;animation:1.55s ease-in-out infinite back-to-top-blink;transform:translateY(0)}.back-to-top:hover{border-color:var(--accent);opacity:1;background:#08121ce0;animation:none}.back-to-top svg{width:1.6875rem;height:1.6875rem;display:block}@keyframes back-to-top-blink{0%,to{opacity:.4}50%{opacity:1}}.dots{z-index:12;gap:.6rem;display:grid;position:fixed;top:50%;right:1rem;transform:translateY(-50%)}.dot{background:0 0;border:1px solid #94a3b899;border-radius:999px;width:.62rem;height:.62rem;display:block}.dot.is-active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 14px #5eead4b3}@media (width<=980px){body{overflow-y:auto}.topbar{border-radius:1rem}.topbar-links,.dots{display:none}.scroll-hint-stack--left{left:1rem}.scroll-hint-stack--right{right:1rem}.back-to-top{bottom:1.2rem;right:1rem}.phone-stage{display:none}.hero-phone-space{min-height:0;display:none}.deck{scroll-snap-type:y proximity;flex-direction:column;height:auto;overflow:visible}.panel{scroll-snap-align:start;width:100%;min-width:100%;height:auto;min-height:100vh;padding:6.2rem 1rem 2rem}.hero-layout,.about-layout,.about-grid,.timeline,.contact-layout{grid-template-columns:1fr}.about-phone-space,.experience-phone-space,.projects-phone-space{min-height:0;display:none}.experience-mobile-fallback,.projects-mobile-fallback{display:block}.project-row{grid-template-columns:1fr}}
