@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--cyan:#6ce4ff;--muted:#9aaac6;--line:#ffffff14}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#07142d;color:#f0f5ff;font-family:'DM Sans',sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}button{color:inherit}button:disabled{opacity:.6;cursor:wait}p{color:var(--muted);line-height:1.8}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}em{font-style:normal;color:var(--cyan)}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:#061126;border-right:1px solid var(--line);padding:42px 28px;display:flex;flex-direction:column;z-index:50}.brand{font:800 42px Manrope;letter-spacing:-5px;display:inline-block;width:fit-content}.brand span{color:#c2deff}.brand i{font-style:normal;color:var(--cyan);letter-spacing:0}.side-title{font-size:11px;letter-spacing:1.8px;margin-top:22px;font-weight:650}.side-title span{display:block;letter-spacing:.4px;font-size:11px;color:var(--muted);margin-top:8px;font-weight:400}nav{margin-top:57px;display:grid;gap:10px}nav a{display:flex;align-items:center;gap:13px;padding:14px 12px;color:#8e9ebc;border-radius:7px;font-size:13px;position:relative}nav a small{font-size:9px;margin-left:auto;color:#61728f}nav a.active{color:var(--cyan);background:linear-gradient(90deg,#1a74a82c,#1c49761a)}nav a.active:before{content:'';position:absolute;left:-28px;width:3px;height:24px;background:var(--cyan)}.side-bottom{margin-top:auto;padding-top:40px}.availability{font-size:8px;letter-spacing:1px;display:flex;align-items:center;gap:7px}.availability i,.tiny-dot{width:5px;height:5px;background:var(--cyan);border-radius:50%;display:inline-block;box-shadow:0 0 12px #6ce4ff}.side-bottom>a{display:flex;gap:35px;font-size:13px;margin-top:17px}.side-bottom p{font-size:11px;margin:25px 0}.side-bottom>small{color:#60738f;font-size:9px}main{margin-left:236px;background:radial-gradient(ellipse at 85% 9%,#1645855c,transparent 28%),linear-gradient(125deg,#0a1a37,#071329 60%,#0a2344)}.hero{padding:0 56px;min-height:790px;position:relative;overflow:hidden}header{height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.4px;border-bottom:1px solid var(--line)}header>span{display:flex;align-items:center;gap:9px}header a{display:flex;gap:8px;align-items:center;letter-spacing:0;font-size:11px;color:#aebbd2}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;min-height:610px;gap:5px}.eyebrow{font-size:9px;letter-spacing:2px;color:#b0c8e4;display:flex;align-items:center;gap:10px;margin-bottom:24px}.eyebrow>span{height:1px;width:26px;background:var(--cyan)}h1{font-size:clamp(44px,4.4vw,70px);font-weight:650;letter-spacing:-3.5px;line-height:1.11;margin-bottom:23px;position:relative}.heading-star{font-size:42px;position:absolute;right:6%;bottom:8%;color:var(--cyan);font-weight:400}.role{font-size:12px;color:#cedaee}.role>span{margin:0 9px;color:#4a6a95}.intro{max-width:390px;font-size:12px;margin-bottom:29px}.actions{display:flex;align-items:center;gap:24px}.button{border:1px solid #8fe9ff;background:linear-gradient(110deg,#9aecff,#66caff);color:#061a33;padding:15px 20px;border-radius:5px;display:inline-flex;justify-content:center;align-items:center;gap:23px;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 8px 30px #64cfff25}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:11px}.hero-stats{display:flex;gap:30px;margin-top:43px}.hero-stats>div+div{border-left:1px solid #ffffff18;padding-left:26px}.hero-stats strong{display:block;font-size:28px;font-weight:500;letter-spacing:-1px}.hero-stats strong span{color:var(--cyan)}.hero-stats>div:last-child strong{font-size:17px;padding:7px 0}.hero-stats small{font-size:7px;letter-spacing:1px;color:#8395b1;display:block;margin-top:8px}.hero-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;height:70px;color:#7088a9;font-size:8px;letter-spacing:1.3px}.hero-bottom a{display:flex;align-items:center;gap:14px;color:#c0cfe1}.scene{height:510px;position:relative;perspective:1000px;--rx:0deg;--ry:0deg}.scene:before{content:'';position:absolute;width:350px;height:350px;border-radius:50%;background:#196bdf2b;filter:blur(45px);top:70px;left:30px}.orbit{position:absolute;left:0;top:75px;width:100%;height:350px;border:1px solid #5cb5ff1d;border-radius:50%;transform:rotate(-35deg)}.o2{transform:rotate(35deg);width:85%;left:10%;height:410px;top:40px}.scene-label{font-size:7px;letter-spacing:2px;color:#6889ad;position:absolute;top:38px;left:20%}.workspace{width:95%;position:absolute;left:6%;top:120px;border:1px solid #658cb957;border-radius:10px;background:#0b1c37;box-shadow:15px 35px 65px #020a25b0,0 0 60px #1673df16;overflow:hidden;transform:rotateX(calc(8deg + var(--rx))) rotateY(calc(-15deg + var(--ry))) rotateZ(2deg);transition:transform .3s}.window-top{padding:11px;display:flex;align-items:center;justify-content:space-between;font-size:7px;color:#6e83a3;border-bottom:1px solid #ffffff0c}.dots{display:flex;gap:4px}.dots i{width:5px;height:5px;background:#42638c;border-radius:100%}.dots i:first-child{background:#72d9ee}.window-tabs{padding:8px 13px;display:flex;gap:7px;align-items:center;font-size:7px}.window-tabs button{font-size:8px;display:flex;align-items:center;gap:5px;background:transparent;border:0;padding:5px 9px;color:#8399b9;border-radius:3px}.window-tabs button.selected{background:#244769;color:#b8ebff}.window-tabs>span{margin-left:auto;color:#7fbba9}.mini-site{margin:0 12px;background:#e6f0f5;color:#102b47;border-radius:4px;overflow:hidden}.mini-nav{padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.mini-nav b{font-size:17px;letter-spacing:-1px}.mini-nav b span{color:#2d86b3}.mini-nav>span{font-size:6px}.mini-body{position:relative;padding:16px 20px 24px;overflow:hidden}.mini-body>small{font-size:5px;letter-spacing:1.2px}.mini-body h2{font-size:33px;letter-spacing:-1.5px;line-height:1.15;margin:12px 0}.mini-body h2 em{color:#327ca6}.mini-body p{font-size:7px;line-height:1.5;color:#6b7d8f}.mini-button{font-size:6px;background:#183956;color:white;padding:8px 11px;display:inline-block;border-radius:3px}.sculpture{position:absolute;width:145px;height:170px;right:4%;top:33px;transform:rotate(-24deg)}.sculpture i{position:absolute;inset:0;border:27px solid #409abf;border-radius:44%;box-shadow:inset 9px 5px 13px #022c5c80,9px 15px 20px #174b8266;background:transparent;transform:rotateY(30deg) rotateX(25deg)}.sculpture i:nth-child(2){inset:12px;transform:rotateY(70deg) rotateX(-20deg);border-color:#74c9e0}.sculpture i:nth-child(3){inset:30px;transform:rotateY(-40deg) rotateX(60deg);border-color:#a0e7f2}.mini-footer{display:flex;justify-content:space-between;font-size:5px;letter-spacing:1px;border-top:1px solid #8fa8be44;padding:13px 20px}.window-bottom{font-size:6px;color:#7290b4;display:flex;justify-content:space-between;padding:10px 15px}.floating{position:absolute;background:linear-gradient(120deg,#203c61f0,#102949f0);border:1px solid #7ebbe736;border-radius:9px;box-shadow:0 15px 30px #020b2366;z-index:2;display:flex;align-items:center;gap:10px;animation:float 6s ease-in-out infinite}.tag-code{top:72px;left:0;padding:14px;color:var(--cyan);transform:rotate(-6deg)}.tag-code span{font-size:9px;line-height:1.6;color:#e0edff}.tag-code b{font-weight:400;color:#8babc9}.tag-wp{right:-14px;bottom:68px;padding:15px;animation-delay:-2s}.tag-wp>b{border:1px solid #a7e8ff;width:28px;height:28px;border-radius:50%;font:23px Georgia;text-align:center;color:#b6edff}.tag-wp>span{font-size:8px;color:#8ea6c7;line-height:1.7}.tag-wp strong{font-weight:400;color:white;font-size:10px}.tag-design{bottom:63px;left:0;padding:12px;color:#96dfff;animation-delay:-4s;z-index:0}.tag-design span{font-size:8px}.tag-design i{padding-left:10px}.scene-caption{position:absolute;bottom:15px;left:15%;right:5%;display:flex;justify-content:space-between;font-size:6px;letter-spacing:1px;color:#6281a6}.code-preview{height:254px;margin:0 12px;padding:20px;color:#abd9ff;background:#07162b;font-size:12px;line-height:1.4}.code-preview span{color:#648e9d}@keyframes float{50%{translate:0 -9px}}.tech-strip{padding:25px 55px;display:flex;justify-content:space-between;border-block:1px solid var(--line);background:#0d203b;color:#a4b8d1;font-size:14px;font-weight:500}.tech-strip>span{display:flex;align-items:center;gap:15px}.tech-strip>span>span{color:#426589;font-size:12px}.section{padding:95px 65px;border-bottom:1px solid var(--line)}.section-label{font-size:9px;letter-spacing:2px;color:#76b7d7;margin-bottom:32px}.section h2{font-size:clamp(32px,3vw,46px);line-height:1.2;letter-spacing:-1.8px;font-weight:550;margin-bottom:25px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.about-grid p{font-size:13px}.about-grid .large-text{font-size:18px;color:#d4dfef;line-height:1.6}.cyan{color:var(--cyan);margin-top:10px}.process{display:grid;grid-template-columns:repeat(3,1fr);margin-top:45px;border:1px solid var(--line);border-radius:8px}.process>div{padding:27px;position:relative}.process>div+div{border-left:1px solid var(--line)}.process small{position:absolute;right:20px;top:22px;color:#526d90;font-size:10px}.process svg{color:#8cdaff;margin-bottom:18px}.process h3{font-size:18px;margin-bottom:8px}.process p{font-size:11px;margin:0}.expertise{background:linear-gradient(120deg,#0f274446,#0b1d39)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:30px}.section-heading>p{font-size:12px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.service-grid article{padding:26px 24px;border:1px solid #ffffff13;border-radius:8px;background:linear-gradient(135deg,#1836545c,#10254033);transition:transform .3s,border-color .3s}.service-grid article:hover{transform:translateY(-6px);border-color:#6ce4ff66}.service-grid article>div{display:flex;justify-content:space-between;align-items:center;color:#8ddcff;margin-bottom:30px}.service-grid small{font-size:9px;color:#557596}.service-grid h3{font-size:16px;margin-bottom:13px}.service-grid p{font-size:12px;margin-bottom:0}.toolbox{margin-top:40px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;padding:14px 0;color:#8c9fbb;font-size:12px;border-bottom:2px solid transparent}.tabs button.selected{color:var(--cyan);border-color:var(--cyan)}.skill-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px;min-height:50px}.skill-list>div{display:flex;align-items:center;gap:9px;padding:10px 13px;background:#132b49;border:1px solid var(--line);border-radius:5px;font-size:11px}.skill-list>div>span{font-size:10px;color:var(--cyan);background:#244867;padding:5px;border-radius:3px}.timeline{margin-top:24px}.timeline article{display:grid;grid-template-columns:55px 1fr 1.2fr;gap:20px;padding:34px 0;border-top:1px solid var(--line)}.time-number{color:#57738f;font-size:11px;position:relative;padding-top:5px}.time-number>span{position:absolute;left:7px;top:33px;bottom:-32px;width:1px;background:#294365}.timeline article:last-child .time-number>span{bottom:0}.duration{font-size:9px;letter-spacing:1px;color:var(--cyan)}.time-role h3{font-size:19px;margin:12px 0 6px}.time-role p{font-size:12px}.time-detail h4{font-size:13px;font-weight:500;margin-bottom:10px}.time-detail p{font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chips span{border:1px solid #ffffff14;padding:5px 9px;border-radius:3px;font-size:9px;color:#9db6d2}.contact{display:grid;grid-template-columns:1fr 1.05fr;gap:70px;background:radial-gradient(ellipse at 10% 100%,#14518d42,transparent 70%)}.contact h2{font-size:47px}.contact-copy>p{font-size:12px;max-width:290px}.email-link{display:flex;align-items:center;gap:12px;font-size:14px;margin:25px 0;color:#c1e6ff}.contact-note{display:flex;gap:15px;align-items:center;margin-top:40px}.contact-note>span{font-size:45px;color:#61b9e0}.contact-note p{font-size:11px;margin:0}form{background:#152d4866;border:1px solid #ffffff17;border-radius:10px;padding:30px}form h3{font-size:17px;display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}form h3 svg{color:#78b5d4;width:20px}label{display:block;font-size:10px;color:#c5d5e8;margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}input,select,textarea{display:block;width:100%;margin-top:9px;border:1px solid #ffffff1c;background:#091c34;color:#deebfc;border-radius:4px;padding:12px 11px;font-size:11px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--cyan)}input::placeholder,textarea::placeholder{color:#6e83a1}textarea{resize:vertical}form .button{width:100%;margin-top:3px}.privacy{font-size:9px;text-align:center;margin:12px 0 0}.success,.error{font-size:12px;margin:10px 0 0}.success{color:#9af0cf}.error{color:#ffb1b1}.trap{position:absolute;left:-9999px;width:1px;height:1px}footer{display:flex;align-items:center;justify-content:space-between;padding:25px 65px}footer .brand{font-size:27px;letter-spacing:-3px}footer>span{font-size:10px;color:#6e86a4}footer>a:last-child{font-size:8px;letter-spacing:1px}.mobile-head,.close,.overlay{display:none}@media(min-width:1600px){.hero-grid{min-height:690px}.hero{min-height:860px}.scene{max-width:600px}.workspace{top:95px}.hero-copy{max-width:600px}.intro{font-size:15px}.hero h1{font-size:80px}}@media(max-width:1150px){.sidebar{width:200px;padding-inline:22px}main{margin-left:200px}.hero{padding-inline:30px}.section{padding:70px 35px}.hero-grid{grid-template-columns:1.05fr 1fr}.hero h1{font-size:48px}.actions{gap:15px;flex-wrap:wrap}.hero-stats{gap:17px}.hero-stats>div+div{padding-left:17px}.scene{height:450px}.workspace{top:95px}.sculpture{width:110px;height:130px;right:0;top:50px}.mini-body h2{font-size:27px}.mini-body{padding-inline:15px}.tag-wp{bottom:32px}.tag-design{bottom:34px}.scene-caption{bottom:0}.hero-stats small{font-size:6px}.contact{gap:30px}form{padding:24px}.tech-strip{padding-inline:30px;gap:20px;flex-wrap:wrap}.heading-star{display:none}header{letter-spacing:.5px;font-size:7px}.service-grid article{padding:23px 18px}}@media(max-width:900px){.sidebar{width:180px;padding-inline:20px}.side-title{font-size:9px}main{margin-left:180px}.hero-grid{grid-template-columns:1fr}.hero-copy{padding-top:50px}.hero h1 br:first-child{display:none}.hero h1{font-size:56px;max-width:500px}.hero .intro{max-width:470px}.scene{width:450px;max-width:100%;margin:15px auto 30px;height:470px}.hero-stats{gap:30px}.hero-stats small{font-size:8px}.hero-bottom>span{display:none}header a{display:none}.about-grid{grid-template-columns:1fr;gap:10px}.service-grid{grid-template-columns:1fr}.service-grid article>div{margin-bottom:15px}.contact{grid-template-columns:1fr}.contact h2{font-size:45px}.contact h2 br:last-child{display:none}.contact-copy>p{max-width:420px}.contact-note{display:none}.section-heading{display:block}.timeline article{grid-template-columns:30px 1fr}.time-detail{grid-column:2}.time-role p{margin-bottom:0}.process>div{padding:20px 15px}.process p{font-size:10px}.section h2{font-size:36px}footer{padding-inline:35px}footer>span{display:none}}@media(max-width:600px){.sidebar{transform:translateX(-100%);transition:transform .3s;width:250px;padding-top:30px}.sidebar.open{transform:translateX(0)}main{margin:0}.mobile-head{display:flex;position:sticky;top:0;z-index:30;background:#07172ef5;border-bottom:1px solid var(--line);padding:13px 22px;justify-content:space-between;align-items:center}.mobile-head .brand{font-size:29px;letter-spacing:-3px}.mobile-head button,.close{background:none;border:0}.close{display:block;position:absolute;right:20px;top:35px}.overlay{display:block;position:fixed;inset:0;z-index:40;background:#0008;backdrop-filter:blur(4px)}.hero{padding:0 24px}header{height:55px;font-size:6px;letter-spacing:.7px}.hero-copy{padding-top:32px}.hero h1{font-size:47px;letter-spacing:-2.5px}.hero h1 br:first-child{display:block}.eyebrow{font-size:8px;letter-spacing:1.2px}.role{font-size:10px}.intro{font-size:12px}.actions{gap:20px}.button{font-size:11px;padding:14px 16px}.hero-stats{gap:23px;margin-top:33px}.hero-stats>div+div{padding-left:20px}.hero-stats strong{font-size:25px}.hero-stats small{font-size:6px;letter-spacing:.5px}.hero-stats>div:last-child strong{font-size:13px}.scene{height:420px;margin:20px auto}.scene-label{top:30px;font-size:6px;left:17%}.workspace{left:3%;top:100px;width:95%}.tag-code{top:56px}.tag-wp{right:0;bottom:16px}.tag-design{bottom:25px;left:-5px;font-size:7px}.scene-caption{bottom:-10px}.mini-body h2{font-size:29px}.sculpture{right:10px}.tech-strip{font-size:11px;gap:22px;padding:22px 24px;justify-content:center}.tech-strip>span{gap:9px}.section{padding:60px 24px}.section-label{font-size:8px;letter-spacing:1.5px;margin-bottom:24px}.section h2{font-size:33px}.about-grid .large-text{font-size:17px}.process{grid-template-columns:1fr;margin-top:30px}.process>div{padding:22px}.process>div+div{border-left:0;border-top:1px solid var(--line)}.process svg{margin-bottom:12px}.process h3{font-size:17px}.process p{font-size:12px}.section-heading>p{margin-bottom:28px}.service-grid h3{font-size:18px}.service-grid article{padding:25px}.tabs{gap:23px}.tabs button{font-size:11px}.skill-list>div{font-size:10px;padding:8px}.timeline article{gap:12px}.time-role h3{font-size:18px}.time-detail p{font-size:12px}.contact{gap:30px}.contact h2{font-size:40px}.contact-copy>p{font-size:13px}.form-row{grid-template-columns:1fr;gap:0}form{padding:23px 20px}form h3{font-size:16px}input,textarea,select{font-size:16px}footer{padding:22px 24px}html{scroll-padding-top:85px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.workspace{transform:none}}
/* Desktop, tablet and phone hero */
.hero-grid{align-items:center}.scene{display:flex;align-items:center;justify-content:center;min-width:0;height:540px;perspective:none}.device-stage{position:relative;width:100%;max-width:560px;height:420px;margin:auto;transform:translateY(-8px)}.device{background:#071426;border:6px solid #29435d;border-radius:13px;box-shadow:0 22px 45px #01081890;color:#d5eaff;position:absolute;transition:transform .3s}.device:hover{transform:translateY(-7px)}.desktop{width:91%;left:4.5%;top:20px;height:285px;border-bottom-width:15px}.device-bar{height:31px;background:#14273d;display:flex;align-items:center;gap:12px;padding:8px 10px;font-size:8px;color:#9ab5d1;border-bottom:1px solid #ffffff12}.device-bar span{color:#72dcef;font-size:7px}.device-bar b{font-weight:400}.device-bar small{margin-left:auto;font-size:7px}.device pre{font:10px/1.8 Consolas,monospace;margin:15px;white-space:pre-wrap}.device .comment{color:#647f9c}.device .purple{color:#bca3ff}.device .green{color:#8bd6bb}.device .cyan{color:#72dfff}.editor-status{background:#123352;padding:5px 10px;font-size:7px;display:flex;justify-content:space-between;position:absolute;bottom:0;left:0;right:0}.monitor-stand{position:absolute;top:100%;left:42%;width:16%;height:64px;background:linear-gradient(90deg,#1d324a,#52708b,#253b52);z-index:-1;clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}.monitor-stand:after{content:'';position:absolute;bottom:0;width:100%;height:8px;background:#7893ac}.tablet{width:49%;height:190px;left:-2%;bottom:7px;border-width:6px;border-radius:14px;transform:rotate(-5deg)}.tablet pre{font-size:9px;margin:10px}.phone{right:0;bottom:0;width:27%;height:220px;border-radius:22px;border-width:5px;border-color:#3c5872;transform:rotate(7deg);padding-top:12px}.phone pre{font-size:9px;margin:10px 8px}.phone-camera{position:absolute;top:4px;background:#020b17;border-radius:5px;width:30%;height:5px;left:35%}.phone-home{position:absolute;bottom:6px;left:30%;width:40%;height:3px;border-radius:3px;background:#7893ab}.phone .device-bar{height:28px;border-radius:8px 8px 0 0}.device-caption{position:absolute;bottom:-37px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:3px;color:#7da5cb}.resume-button{display:block;text-align:center;padding:12px 8px;border:1px solid #5eb5da66;color:#9be6ff;background:#14457144;border-radius:5px;margin-top:25px;font-size:11px}.resume-button:hover{background:#245173}.sidebar{overflow:visible}.sidebar .side-bottom{padding-top:25px}.device-stage .cyan{margin:0}.sidebar.open+.overlay{display:block}.menu-shade{display:none}.menu-shade.visible{display:block;position:fixed;inset:0;background:#0008;z-index:40}.form-status{font-size:12px}.admin-shell{max-width:1000px;margin:50px auto;padding:25px}.admin-shell h1{font-size:36px}.admin-shell form{max-width:520px}.admin-shell article{padding:22px;background:#142c47;border:1px solid #35516a;border-radius:8px;margin:16px 0}.admin-shell input{font-size:16px}.admin-shell .button{margin-top:12px}.admin-shell .message{white-space:pre-wrap;color:#deebff}.admin-shell .topline{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-shell .topline form{background:none;border:0;padding:0}.admin-shell .topline .button{margin:0}.admin-shell label{font-size:13px}.admin-shell .error{color:#ffbaba}.admin-shell .success{color:#8ce0bd}
@media(max-width:1150px){.scene{height:470px}.device-stage{height:390px}.desktop{height:270px}.desktop pre{font-size:9px}.device-bar small{display:none}.tablet{height:178px}.phone{height:210px}}@media(max-width:900px){.scene{height:470px;width:100%;max-width:500px}.device-stage{height:410px}.desktop pre{font-size:10px}}@media(max-width:600px){.scene{height:405px;margin:25px auto;max-width:420px}.device-stage{height:350px}.desktop{height:235px;top:0;border-width:5px;border-bottom-width:12px}.desktop pre{font-size:8px;line-height:1.65;margin:9px}.tablet{height:170px;bottom:0;width:52%;left:0}.tablet pre{font-size:8px}.phone{height:190px;right:1%;width:29%}.phone pre{font-size:8px;line-height:1.8}.device-caption{bottom:-30px;font-size:7px;letter-spacing:2px}.device-bar{font-size:7px;padding:7px}.admin-shell{margin:15px auto}.admin-shell h1{font-size:28px}}@media(max-width:360px){.desktop pre{font-size:7px}.tablet pre,.phone pre{font-size:7px}.device-stage{height:330px}}

/* One document scrollbar; compact the fixed menu on shorter displays. */
@media(max-height:800px){
 .sidebar{padding-top:24px;padding-bottom:20px}
 .sidebar .brand{font-size:35px}
 .sidebar .side-title{margin-top:14px}
 .sidebar nav{margin-top:26px;gap:5px}
 .sidebar nav a{padding-top:10px;padding-bottom:10px}
 .sidebar .resume-button{margin-top:18px}
 .sidebar .side-bottom{padding-top:18px}
 .sidebar .side-bottom p{margin:16px 0}
}
@media(max-height:650px){
 .sidebar{padding-top:18px;padding-bottom:15px}
 .sidebar nav{margin-top:18px;gap:3px}
 .sidebar .side-bottom p{display:none}
 .sidebar .side-bottom>small{display:block;margin-top:12px}
 .sidebar .close{top:22px}
}
@media(max-height:500px){
 .sidebar{padding-top:12px;padding-bottom:12px}
 .sidebar .brand{font-size:30px}
 .sidebar .side-title,.sidebar .side-bottom{display:none}
 .sidebar nav{margin-top:12px;gap:2px}
 .sidebar nav a{padding-top:7px;padding-bottom:7px}
 .sidebar .resume-button{margin-top:10px;padding-top:9px;padding-bottom:9px}
 .sidebar .close{top:15px}
}
/* Lightweight hero motion, isolated from page layout and navigation. */
.hero-copy .eyebrow,.hero-copy h1,.hero-copy .role,.hero-copy .intro,.hero-copy .actions,.hero-copy .hero-stats{animation:hero-arrive 1.5s cubic-bezier(.22,.61,.36,1) both}
.hero-copy h1{animation-delay:.08s}.hero-copy .role{animation-delay:.16s}.hero-copy .intro{animation-delay:.24s}.hero-copy .actions{animation-delay:.32s}.hero-copy .hero-stats{animation-delay:.4s}
.hero .scene:before{animation:hero-glow 14s ease-in-out infinite;pointer-events:none}
.hero .device-stage{transform:translateY(-8px) perspective(1000px) rotateX(var(--hero-tilt-x,0deg)) rotateY(var(--hero-tilt-y,0deg));transition:transform .85s cubic-bezier(.22,.61,.36,1)}
.hero .desktop{animation:hero-float 12s ease-in-out infinite}
.hero .tablet{animation:hero-float 14s ease-in-out -4s infinite}
.hero .phone{animation:hero-float 13s ease-in-out -6s infinite}
.hero .heading-star{animation:hero-turn 48s linear infinite}
.hero .typing-comment{display:inline-block;min-width:12ch}
.hero .typing-comment:after{content:'';display:inline-block;width:1px;height:.95em;margin-left:2px;background:#80e4ff;vertical-align:middle;animation:hero-caret 1s step-end infinite}
.motion-toggle{border:1px solid #75c7e54d;border-radius:4px;background:#123454;color:#b6e6f9;font-size:9px;padding:7px 10px;letter-spacing:.4px;white-space:nowrap}
.hero-bottom{gap:15px;flex-wrap:wrap}
.hero.motion-paused *, .hero.motion-paused:before, .hero.motion-paused *:before, .hero.motion-paused *:after{animation-play-state:paused!important}
@keyframes hero-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes hero-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes hero-glow{0%,100%{opacity:.5;scale:.93}50%{opacity:1;scale:1.07}}
@keyframes hero-turn{to{rotate:360deg}}
@keyframes hero-caret{50%{opacity:0}}
@media(max-width:600px){.hero .desktop,.hero .tablet,.hero .phone{animation-duration:16s}.hero-bottom{height:auto;min-height:70px;padding-block:15px}.motion-toggle{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero .device-stage{transform:translateY(-8px)!important;transition:none}.hero .typing-comment:after{display:none}.motion-toggle{display:none}}
/* Section-specific depth and motion. No nested scroll containers. */
.section{perspective:1400px}
.process{perspective:1000px;isolation:isolate}
.process>div{background:linear-gradient(145deg,#17375766,#0a1a2e22);transition:box-shadow .7s,border-color .7s;transform-style:preserve-3d}
.process>div svg{filter:drop-shadow(0 6px 5px #020b2599)}
.service-grid{perspective:1100px}
.service-grid article{position:relative;isolation:isolate;transform-style:preserve-3d;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,0%),#367ba72b,transparent 65%),linear-gradient(135deg,#183654b0,#10254088)}
.service-grid article:after{content:'';position:absolute;inset:5px;border:1px solid #73cdfb0e;border-radius:5px;pointer-events:none;transform:translateZ(-8px)}
.service-grid article h3,.service-grid article>div{transform:translateZ(15px)}
.depth-card{transform:perspective(1100px) rotateX(var(--card-x,0deg)) rotateY(var(--card-y,0deg));transition:transform .8s cubic-bezier(.22,.61,.36,1),box-shadow .7s,border-color .7s}
.depth-card:hover{transform:perspective(1100px) rotateX(var(--card-x,0deg)) rotateY(var(--card-y,0deg)) translateY(-4px);box-shadow:0 20px 35px #020b253b;border-color:#6ce4ff55}
.toolbox{position:relative;perspective:1000px}.skill-list>div{box-shadow:0 4px 0 #061426,0 7px 14px #010b2029;transition:transform .7s ease,box-shadow .7s ease}
.skill-list>div:hover{transform:perspective(600px) translateY(-5px) rotateX(8deg);box-shadow:0 7px 0 #061426,0 15px 20px #010b2050}
.timeline article{position:relative;transition:background .7s,box-shadow .7s;transform-style:preserve-3d}
.timeline article:hover{background:linear-gradient(90deg,transparent,#21456535);box-shadow:12px 12px 25px #020a201a}
.time-number{color:#8dbbdb;text-shadow:1px 1px #15324f,2px 2px #15324f,3px 3px #15324f}
.contact form{box-shadow:9px 9px 0 #112c4755,18px 18px 38px #020c252e;position:relative;transition:box-shadow .7s,border-color .7s}
.contact form:focus-within{border-color:#70c8f37a;box-shadow:5px 5px 0 #19456b66,0 15px 35px #020c2544}
.contact-note>span{display:inline-block;text-shadow:2px 2px #23618a,4px 4px #133550}
.section.section-in-view .process svg{animation:section-icon-depth 12s ease-in-out infinite}
.section.section-in-view .process>div:nth-child(2) svg{animation-delay:-2s}
.section.section-in-view .process>div:nth-child(3) svg{animation-delay:-4s}
.section.section-in-view .contact-note>span{animation:contact-orbit 24s ease-in-out infinite}
.section.section-in-view .service-grid article>div>svg{animation:section-icon-depth 14s ease-in-out infinite}
body.all-motion-paused *,body.all-motion-paused *:before,body.all-motion-paused *:after{animation-play-state:paused!important}
body.all-motion-paused .depth-card,body.all-motion-paused .depth-card:hover{transform:none!important;transition:none!important}
@keyframes section-icon-depth{0%,100%{transform:perspective(400px) rotateY(-12deg) translateY(0)}50%{transform:perspective(400px) rotateY(18deg) translateY(-4px)}}
@keyframes contact-orbit{0%,100%{transform:perspective(400px) rotateY(-20deg) rotateZ(-8deg)}50%{transform:perspective(400px) rotateY(25deg) rotateZ(12deg)}}
@media(hover:none),(pointer:coarse){.depth-card,.depth-card:hover{transform:none;transition:box-shadow .3s}.skill-list>div:hover{transform:none}.section.section-in-view .process svg,.section.section-in-view .service-grid article>div>svg{animation:none}}
@media(prefers-reduced-motion:reduce){.depth-card,.depth-card:hover,.skill-list>div:hover{transform:none!important}.section *{animation:none!important;transition:none!important}}
/* Pointer interpolation owns the transforms; CSS eases surface details only. */
.hero .device-stage{transition:none}
.depth-card{transition:box-shadow .65s ease,border-color .65s ease}
.depth-card:hover{transform:perspective(1100px) rotateX(var(--card-x,0deg)) rotateY(var(--card-y,0deg))}
.tabs button{transition:color .4s ease,border-color .4s ease,background-color .4s ease}
nav a{transition:color .4s ease,background-color .4s ease}
.skill-list{align-content:flex-start}
html.section-scrolling{scroll-behavior:auto!important}
section[tabindex="-1"]:focus{outline:none}
@media(prefers-reduced-motion:reduce){.tabs button,nav a{transition:none}}
