:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#d9e3ef;background:#0a1120;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em}p{line-height:1.8}::selection{background:#38bdf8;color:#07111d}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:20;left:0;top:0;bottom:0;width:266px;background:#101929;border-right:1px solid #243247;padding:40px 22px 22px;display:flex;flex-direction:column}.identity{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.avatar{width:94px;height:94px;border-radius:50%;object-fit:cover;object-position:center 20%;border:3px solid #3b4b62;box-shadow:0 0 0 5px #18253a}.identity strong{font-size:19px;color:#f2f6fc;margin-top:9px;letter-spacing:-.04em}.identity span{font-size:11px;color:#8ea2b9;letter-spacing:.035em}.side-nav{display:flex;flex-direction:column;gap:6px;margin-top:58px}.side-nav a{display:flex;align-items:center;gap:15px;padding:12px 18px;color:#9cadc2;border-radius:8px;font-size:13px;transition:.2s}.side-nav a:hover,.side-nav a:focus-visible,.side-nav a.nav-active{color:#f7fbff;background:#1b293c}.side-nav a:hover svg,.side-nav a.nav-active svg{color:#38bdf8}.sidebar-bottom{margin-top:auto}.sidebar-social{display:flex;gap:10px;justify-content:center}.sidebar-social a{border:1px solid #324358;background:#172439;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;color:#aebfd0}.sidebar-social a:hover{color:#38bdf8;border-color:#38bdf8}.sidebar-bottom p{font-size:10px;text-align:center;color:#667e99;margin:20px 0 0}.main-content{margin-left:266px;min-width:0}.mobile-toggle{display:none}.hero{min-height:780px;height:min(850px,100vh);position:relative;overflow:hidden;display:flex;align-items:center;padding:90px max(5vw,48px);background:radial-gradient(ellipse at 83% 60%,#0c2741 0%,transparent 48%),linear-gradient(125deg,#0a1120 30%,#111f34)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0a1120 25%,#0a1120c7 65%,#0a11204d),url(/images/hero.jpg) center right/cover no-repeat;opacity:.21;pointer-events:none}.hero-glow{position:absolute;right:-260px;top:70px;width:680px;height:680px;background:#08739a;opacity:.11;filter:blur(110px);border-radius:50%}.hero-content{position:relative;z-index:1;max-width:900px}.availability{display:inline-flex;align-items:center;gap:10px;border:1px solid #2b4559;background:#132335;padding:9px 14px;border-radius:30px;font-size:10px;color:#a9cad5;font-weight:700;letter-spacing:.11em;margin-bottom:52px}.availability-dot,.demo-live span{width:7px;height:7px;border-radius:50%;background:#5ee3ab;box-shadow:0 0 0 4px #2c665441}.eyebrow{color:#50bee8;font-weight:750;letter-spacing:.17em;font-size:11px}.hero h1{color:#f3f7fc;font-size:clamp(45px,5.2vw,78px);line-height:1.12;margin:19px 0 26px;font-weight:760}.hero h1 em,.contact-section h2 em{color:#55c0ed;font-style:normal}.hero-subtitle{color:#a9bbce;font-size:17px;max-width:690px;line-height:1.85}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:34px 0 69px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;font-size:13px;font-weight:700;padding:15px 22px;border-radius:7px;transition:.2s}.button.primary{background:#38bdf8;color:#071422}.button.primary:hover{background:#8edcff;transform:translateY(-2px)}.button.subtle{border:1px solid #43536a;background:#1b293aa1;color:#e8edf5}.button.subtle:hover{border-color:#38bdf8}.hero-stats{display:flex;gap:44px;border-top:1px solid #2a3c50;padding-top:26px}.hero-stats>div{display:flex;flex-direction:column;gap:7px}.hero-stats strong{font-size:24px;color:#f1f6fd;letter-spacing:-.05em}.hero-stats span{color:#8197b1;font-size:11px}.scroll-cue{position:absolute;z-index:1;right:45px;bottom:42px;display:flex;gap:10px;align-items:center;font-size:10px;color:#7893af;letter-spacing:.15em}.section{padding:108px max(5vw,48px);scroll-margin-top:0}.section-muted{background:#0e1828}.section-heading{max-width:750px;margin-bottom:48px}.section-heading h2{font-size:clamp(33px,3.6vw,52px);color:#f1f5fc;margin:12px 0 16px}.section-heading p{color:#9baec4;font-size:15px}.about-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.85fr);gap:75px}.about-copy>p{color:#9fb2c8;font-size:15px}.about-copy .lead{color:#e7f0fa;font-size:19px;line-height:1.8}.about-accent{display:flex;gap:20px;margin-top:43px;border-top:1px solid #2b3d51;padding-top:33px}.about-accent-icon{background:#192c40;color:#5ac5ee;padding:12px;height:44px;border-radius:9px;flex:none}.about-accent h3{color:#f0f5ff;font-size:18px;margin-bottom:8px}.about-accent p{color:#a4b5c7;font-size:14px}.portrait-card{background:#16253b;border:1px solid #273c53;padding:10px;border-radius:13px}.portrait-card img{width:100%;max-height:290px;object-fit:cover;object-position:center 30%;display:block;border-radius:7px;filter:saturate(.83)}.portrait-caption{padding:20px 14px;display:flex;flex-direction:column;gap:7px}.portrait-caption strong{color:#f4f6fa;font-size:22px;letter-spacing:-.04em}.portrait-caption span{font-size:11px;color:#6fbfdd}.credentials{padding:28px 7px}.credentials>span{font-size:10px;color:#54b9df;letter-spacing:.15em;font-weight:750}.credentials p{font-size:12px;color:#a2b6ca;line-height:1.5;margin:13px 0}.experience-intro{display:flex;gap:15px;padding:20px 22px;border:1px solid #274456;background:#142436;border-radius:9px;max-width:930px;margin-bottom:40px;color:#52bae0}.experience-intro svg{flex:none}.experience-intro p{font-size:13px;color:#aebed0;margin:0}.experience-intro strong{color:#e5edf7}.experience-columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr);gap:70px}.column-heading{font-size:11px;letter-spacing:.17em;color:#50bee8;margin:0 0 28px}.timeline{border-left:1px solid #355168;margin-left:8px}.timeline-item{position:relative;padding:0 0 33px 28px}.timeline-item:before{content:"";position:absolute;width:10px;height:10px;background:#38bdf8;box-shadow:0 0 0 5px #14283c;border-radius:50%;left:-5px;top:10px}.extra-timeline .timeline-item:before{background:#71859b;box-shadow:0 0 0 5px #1b2a3a}.job-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.period,.project-meta{color:#78bad9;font-size:11px;letter-spacing:.045em}.timeline h3{font-size:20px;color:#f3f6fc;margin:6px 0}.job-role{font-size:12px;color:#c0cbda;margin:0}.timeline-item>p{font-size:13px;color:#9cb1c6;margin-top:12px}.expand-button{display:grid;place-items:center;background:#1c2c40;border:1px solid #32475f;width:29px;height:29px;flex:none;border-radius:50%;color:#9bb8cb}.expand-button .rotated{transform:rotate(180deg)}.job-extra{border-top:1px solid #253d52;margin-top:16px;padding-top:12px}.job-extra ul{margin:0;padding-left:17px;color:#a4b8c8;font-size:12px;line-height:1.75}.job-extra li{margin-bottom:9px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{border:1px solid #33475e;background:#17263a;border-radius:5px;color:#b6c9d9;padding:6px 9px;font-size:10px;white-space:nowrap}.job-extra .tags{margin-top:14px}.extra-note{background:#172438;padding:22px;border-left:2px solid #4dbce5;margin-top:8px}.extra-note strong{color:#f2f6fa}.extra-note p{font-size:12px;color:#95a9bf;margin:7px 0 0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-card{background:#111d2e;border:1px solid #2a3b50;border-radius:12px;overflow:hidden;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-4px);border-color:#376d87}.project-visual{height:200px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 62% 30%,#205272,transparent 49%),linear-gradient(125deg,#10253a,#162d46);border-bottom:1px solid #30495a}.project-visual-1{background:radial-gradient(circle at 60% 40%,#284970,transparent 49%),linear-gradient(125deg,#112337,#1c3550)}.project-visual-2{background:radial-gradient(circle at 60% 40%,#244765,transparent 49%),linear-gradient(125deg,#0d2036,#173346)}.project-visual-3{background:radial-gradient(circle at 60% 40%,#2e3d64,transparent 49%),linear-gradient(125deg,#101c37,#203250)}.project-index,.project-visual-bottom{position:absolute;font-size:10px;letter-spacing:.13em;color:#91c9dd;left:21px}.project-index{top:18px}.project-visual-bottom{bottom:18px}.project-glyph{width:95px;height:95px;border:1px solid #4784a2;background:#1d4b6880;display:grid;place-items:center;border-radius:21px;color:#87d6f1;transform:rotate(-8deg)}.project-body{padding:28px}.project-body h3{color:#f5f8ff;font-size:22px;margin:11px 0}.project-body>p{color:#a5b4c8;font-size:13px;min-height:74px}.project-body .tags{min-height:36px}.text-link{color:#57c7ef;font-size:13px;display:inline-flex;gap:10px;align-items:center;margin-top:27px;font-weight:700}.text-link:hover{color:#d5f5ff}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.skill-card{padding:30px;border:1px solid #2d4056;background:#131f30;border-radius:10px}.skill-num{font-size:11px;color:#57b6dc}.skill-card h3{font-size:20px;color:#edf4fd;margin:13px 0 21px}.skill-card .tag{background:#1d2d42}.contact-section{padding-top:120px;padding-bottom:125px;background:radial-gradient(ellipse at 90% 80%,#143353,transparent 55%),#0a1120}.contact-section h2{font-size:clamp(42px,5vw,72px);color:#f1f5fc;line-height:1.12;margin:21px 0}.contact-section>p{max-width:580px;color:#a2b5c9;margin-bottom:28px}.contact-links{display:flex;gap:25px;flex-wrap:wrap;margin-top:45px}.contact-links a{display:inline-flex;gap:8px;align-items:center;color:#91adc5;font-size:13px}.contact-links a:hover{color:#6cd2f9}footer{border-top:1px solid #24364b;display:flex;justify-content:space-between;gap:15px;padding:25px 5vw;font-size:11px;color:#738ba3}footer a:hover{color:#38bdf8}.project-page{padding:65px max(5vw,48px) 100px;min-height:85vh}.back-link{display:inline-flex;gap:10px;align-items:center;font-size:12px;color:#77bddd}.back-link:hover{color:#fff}.project-header{padding:50px 0 45px;max-width:940px;border-bottom:1px solid #2b4157}.project-header h1{font-size:clamp(36px,4vw,63px);color:#f3f6fc;line-height:1.16;margin:17px 0}.project-header>p{font-size:18px;color:#afc0d3;max-width:820px}.project-header .tags{margin-top:30px}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:55px}.detail-block{padding-top:57px}.detail-block h2{font-size:30px;color:#f0f5fc;margin:15px 0}.detail-block>p{color:#a6b7cb;font-size:15px}.rich-list{list-style:none;padding:0;margin-top:25px}.rich-list li{position:relative;padding:0 0 22px 25px;color:#abc;font-size:14px;line-height:1.75}.rich-list li:before{content:"✓";position:absolute;left:0;color:#46bee9}.project-aside{padding-top:58px}.project-facts{background:#152337;border:1px solid #2b4056;padding:22px;border-radius:9px}.project-facts>span{color:#54bce5;font-weight:700;letter-spacing:.12em;font-size:10px}.project-facts p{border-top:1px solid #2d4156;padding-top:16px;margin:16px 0 0;color:#a7b9cb;font-size:12px}.project-facts p strong{display:block;color:#e5eef7;margin-bottom:4px}.project-disclaimer{display:flex;gap:12px;margin-top:18px;color:#66bde1}.project-disclaimer svg{flex:none}.project-disclaimer p{font-size:11px;color:#91a8bf;margin:0}.next-project{display:flex;flex-direction:column;gap:9px;border-top:1px solid #2c4157;margin-top:35px;padding-top:20px;color:#5dbfe4;font-size:10px;letter-spacing:.08em}.next-project strong{font-size:14px;letter-spacing:0;color:#d5e4f2}.diagram{display:flex;flex-wrap:wrap;align-items:center;gap:7px;background:#121f30;border:1px solid #2a4057;border-radius:10px;padding:24px 15px;margin:25px 0}.diagram-step-wrap{display:flex;align-items:center;gap:7px;flex:1;min-width:105px}.diagram-step{background:#1b2c41;border:1px solid #3a526a;border-radius:7px;padding:12px;min-width:104px;flex:1;min-height:106px}.diagram-step span{display:block;color:#59bde8;font-size:10px;margin-bottom:10px}.diagram-step strong{font-size:11px;color:#e1eef6;line-height:1.5;display:block}.diagram-step.diagram-emph{border-color:#3587ae;background:#1b3954}.diagram-arrow{color:#5b9cbf;flex:none}.demo-panel,.etl-demo{background:#111f31;border:1px solid #344960;border-radius:11px;padding:20px;margin-top:25px}.demo-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.demo-top>div{display:flex;flex-direction:column;gap:5px}.demo-top strong{color:#eef5fa}.demo-top span,.demo-live,.mini-heading{color:#86a1b9;font-size:9px;letter-spacing:.08em}.demo-live{display:flex;gap:7px;align-items:center}.demo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.demo-stats>div{border:1px solid #30455d;background:#1b2c41;padding:16px;display:flex;flex-direction:column;gap:7px;border-radius:7px}.demo-stats strong{font-size:25px;color:#f4f8fc}.demo-stats span{font-size:10px;color:#9eb5c9}.demo-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mini-heading{margin-bottom:14px}.demo-job{width:100%;text-align:left;display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #30465e;color:#deebf5;background:#172a3f;padding:13px 10px;border-radius:6px;margin-bottom:8px}.demo-job.selected{border-color:#42b8df;background:#1b3950}.demo-job strong{display:block;font-size:11px}.demo-job small{display:block;font-size:9px;color:#8ea8c0;margin-top:5px}.job-status{font-size:9px;padding:5px 7px;border-radius:4px;background:#304357;color:#e4edf6}.job-status.failed{color:#ff999b;background:#622d3a}.job-status.complete{color:#80e4b0;background:#215340}.job-status.running{color:#89d7ff;background:#1c4860}.demo-details{border-left:1px solid #334b61;padding-left:15px}.demo-details h4{font-size:17px;color:#edf4fb;margin-bottom:9px}.demo-details>p{font-size:11px;color:#afc0d2;margin-top:16px}.runbook{display:flex;gap:10px;background:#1e354a;padding:12px;border-radius:6px;color:#60c1e8}.runbook svg{flex:none}.runbook strong{color:#e5eff6;font-size:11px}.runbook p{color:#b1c5d8;font-size:10px;line-height:1.6;margin:5px 0 0}.demo-ticket{margin-top:13px;background:none;border:1px solid #3d6680;color:#6ac7f0;padding:9px 11px;border-radius:5px;font-size:11px;display:flex;align-items:center;gap:6px}.ticket-preview{display:flex;flex-direction:column;gap:7px;background:#1b3146;border-radius:6px;margin-top:13px;padding:13px}.ticket-preview span{font-size:9px;color:#74c7e5}.ticket-preview strong{font-size:11px}.ticket-preview p{font-size:10px;color:#9cb8cd;margin:0}.stage-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:24px 0}.stage-tabs button{border:1px solid #37516b;background:#1a3045;color:#c2d5e3;border-radius:5px;padding:10px;font-size:10px}.stage-tabs button.active{background:#3bbcef;border-color:#3bbcef;color:#0b1925}.demo-table{overflow-x:auto}.demo-table table{border-collapse:collapse;width:100%;font-size:12px}.demo-table th,.demo-table td{text-align:left;border-bottom:1px solid #35485e;padding:12px 9px}.demo-table th{color:#86bedd;font-size:10px}.demo-table td{color:#d7e7f2}.demo-explain{font-size:11px;color:#a8c0d0;margin:17px 0 0}.not-found{min-height:80vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.not-found h1{color:#f5faff}.not-found p{color:#9aadc1}.not-found .button{margin-top:12px}@media(max-width:1250px){.sidebar{width:225px}.main-content{margin-left:225px}.experience-columns{gap:40px}.about-layout{gap:35px}.diagram-step-wrap{min-width:135px}}@media(max-width:950px){.sidebar{transform:translate(-100%);transition:transform .25s;width:265px;box-shadow:15px 0 40px #0005}.sidebar.sidebar-open{transform:translate(0)}.mobile-toggle{display:grid;place-items:center;position:fixed;z-index:35;top:17px;left:17px;background:#162a40;color:#c1e9fc;border:1px solid #355674;border-radius:8px;width:42px;height:42px}.menu-scrim{position:fixed;inset:0;border:0;background:#020711b9;z-index:15}.main-content{margin-left:0}.hero{min-height:700px;height:auto;padding-top:130px;padding-bottom:100px}.section{padding:90px 6vw}.project-page{padding:80px 6vw}.hero-stats{gap:25px}}@media(max-width:680px){.hero{min-height:720px;padding:120px 24px 85px}.hero h1{font-size:45px}.hero-subtitle{font-size:14px}.hero-stats{gap:16px}.hero-stats strong{font-size:20px}.hero-stats span{font-size:9px}.scroll-cue{right:22px;bottom:20px}.section{padding:76px 24px}.section-heading h2{font-size:36px}.about-layout,.experience-columns,.project-grid,.skills-grid,.project-detail-grid,.demo-columns{grid-template-columns:1fr}.about-side{max-width:450px}.portrait-card img{max-height:350px}.project-page{padding:83px 22px}.project-header h1{font-size:35px}.project-aside{padding-top:10px}.demo-details{border-left:0;border-top:1px solid #334b61;padding:17px 0 0}.demo-stats{gap:6px}.demo-stats>div{padding:11px}.demo-stats strong{font-size:22px}.diagram{flex-direction:column;align-items:stretch}.diagram-step-wrap{width:100%;flex-direction:column}.diagram-arrow{transform:rotate(90deg)}.project-visual{height:170px}.contact-section h2{font-size:45px}footer{padding:20px 22px;flex-direction:column}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}.experience-card{padding-bottom:40px}.experience-card .experience-summary{color:#c3d2e1;line-height:1.7;margin:13px 0 0}.experience-card .job-extra{margin-top:14px;padding-top:13px}.experience-card .job-extra ul{line-height:1.65;font-size:12.5px}.experience-card .job-extra li{margin-bottom:10px}.experience-card .experience-tags{margin-top:15px}.experience-card .expand-button{cursor:pointer;transition:background .18s,border-color .18s}.experience-card .expand-button:hover,.experience-card .expand-button:focus-visible{border-color:#57bfe8;background:#24435a}.experience-card .expand-button svg,.experience-more svg{transition:transform .2s ease}.experience-card .rotated{transform:rotate(180deg)}.experience-more{display:inline-flex;gap:7px;align-items:center;background:none;border:0;color:#66c9ed;font:inherit;font-size:12px;font-weight:650;padding:12px 0 4px;margin-top:8px;cursor:pointer;text-align:left}.experience-more:hover{color:#c5f1ff}.experience-more:focus-visible,.experience-card .expand-button:focus-visible{outline:2px solid #6dd4ff;outline-offset:3px}@media(prefers-reduced-motion:reduce){.experience-card .expand-button svg,.experience-more svg{transition:none}}.smart-home-feature{position:relative;margin:0 0 37px 19px;padding:24px 22px 20px;background:linear-gradient(145deg,#14283c,#101e30);border:1px solid #36566e;border-left:3px solid #42b8e7;border-radius:10px;box-shadow:0 10px 26px #0000001a}.smart-home-eyebrow{display:flex;align-items:center;gap:8px;color:#70ccef;font-size:10px;letter-spacing:.12em;font-weight:750;line-height:1.5}.smart-home-feature h4{font-size:20px;letter-spacing:-.035em;color:#eef7fe;margin:15px 0 8px}.smart-home-tagline{color:#8bd7f4!important;font-weight:600;font-size:12px!important;margin:0 0 13px!important}.smart-home-feature p{color:#b1c4d5;font-size:12.5px;line-height:1.73;margin:0 0 11px}.smart-home-capabilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}.smart-home-capability{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 9px;background:#1b344b;border:1px solid #34546a;border-radius:7px;color:#dbeaf4;font-size:11px}.smart-home-capability svg{flex:none;color:#71cbea}.smart-home-footnote{display:flex;align-items:center;gap:7px;color:#90afc4;font-size:10px;line-height:1.5}.smart-home-footnote svg{flex:none;color:#70ccef}@media(max-width:420px){.smart-home-feature{margin-left:12px;padding:20px 15px}.smart-home-capabilities{grid-template-columns:1fr}}
