:root{--font-heading-family:"Space Grotesk", "Inter", system-ui, sans-serif;--font-body-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg-primary:#080c14;--bg-alt:#0d1420;--bg-section-alt:#0d1420d1;--surface-large:#111b2ac7;--surface-card:#111b2a;--surface-elevated:#111b2af0;--surface-hover:#243244b8;--surface-input:#0d1420;--border-primary:#243244;--border-subtle:#243244b8;--border-hover:#60a5fa;--border-accent-highlight:#22d3ee73;--accent-primary:#22d3ee;--accent-primary-bright:#22d3ee;--accent-blue:#60a5fa;--accent-blue-primary:#60a5fa;--accent-blue-bright:#60a5fa;--accent-cyan:#22d3ee;--accent-green:#22d3ee;--gradient-primary:linear-gradient(135deg, #22d3ee 0%, #60a5fa 100%);--gradient-text:linear-gradient(135deg, #22d3ee 0%, #60a5fa 72%, #60a5fa 100%);--text-heading:#f1f5f9;--text-body:#94a3b8;--text-secondary:#94a3b8;--text-muted:#94a3b8;--text-metadata:#94a3b8;--text-accent-label:#60a5fa;--text-blue-link:#60a5fa;--font-hero:clamp(32px, 4.9vw, 64px);--font-h1:clamp(27px, 3.8vw, 40px);--font-h2:clamp(23px, 3vw, 34px);--font-h3:clamp(19px, 2.25vw, 25px);--font-h4:clamp(16px, 1.7vw, 19px);--font-body:clamp(13.5px, 1.08vw, 15px);--font-body-lg:clamp(15px, 1.27vw, 17px);--font-small:clamp(11.5px, .95vw, 13px);--font-label:clamp(10px, .85vw, 11.5px);--max-width:1360px;--desktop-padding:clamp(16px, 5vw, 64px);--section-gap:clamp(52px, 8vw, 96px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-family:var(--font-body-family);background-color:var(--bg-primary);color:var(--text-body);font-size:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65}body{background-color:var(--bg-primary);font-family:var(--font-body-family);font-weight:400;overflow-x:hidden}button,input,textarea,select{font:inherit}h1,h2{font-family:var(--font-heading-family);font-weight:700}h3,h4{font-family:var(--font-body-family);font-weight:600!important}.portfolio-shell{background-color:var(--bg-primary);background-image:radial-gradient(circle at 88% 16%,#22d3ee1a 0%,#60a5fa0d 20%,#0000 40%),radial-gradient(circle at 7% 73%,#60a5fa14 0%,#0d14200a 22%,#0000 38%),linear-gradient(#080c14 0%,#0d1420 48%,#080c14 100%);background-attachment:fixed}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#243244;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#60a5fa}.container{max-width:var(--max-width);padding-left:var(--desktop-padding);padding-right:var(--desktop-padding);width:100%;margin:0 auto}@media (width>=901px) and (width<=1440px){:root{--desktop-padding:clamp(28px, 4vw, 56px);--section-gap:clamp(64px, 7vw, 88px)}}@media (width>=901px) and (width<=1100px){:root{--desktop-padding:28px}}@media (width>=1025px) and (width<=2560px){.container{max-width:1220px;padding-left:clamp(36px,5vw,64px);padding-right:clamp(36px,5vw,64px)}}.section-wrapper{padding-top:var(--section-gap);padding-bottom:var(--section-gap);position:relative}.section-alt{background-color:var(--bg-section-alt)}.reveal-section{opacity:0;transition:opacity .65s,transform .65s cubic-bezier(.22,1,.36,1);transform:translateY(16px)}.reveal-section.is-visible{opacity:1;transform:translateY(0)}.section-label{font-size:var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--text-accent-label);margin-bottom:10px;font-weight:600;display:inline-block}.section-heading{font-family:var(--font-heading-family);font-size:var(--font-h2);letter-spacing:-.02em;color:var(--text-heading);font-weight:700;line-height:1.25}.section-subtitle{font-size:var(--font-body-lg);color:var(--text-secondary);max-width:620px;margin-top:10px;line-height:1.6}.text-gradient{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.btn-primary{background:var(--accent-cyan);color:#080c14;cursor:pointer;border:none;border-radius:9px;align-items:center;gap:10px;height:clamp(44px,4vw,48px);padding:0 clamp(18px,2.5vw,24px);font-size:clamp(13px,1.05vw,14px);font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex;box-shadow:0 5px 16px #22d3ee24}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 8px 20px #22d3ee33}.btn-secondary{height:clamp(44px,4vw,48px);color:var(--text-heading);cursor:pointer;background:0 0;border:1px solid #30445db3;border-radius:9px;align-items:center;gap:10px;padding:0 clamp(18px,2.5vw,24px);font-size:clamp(13px,1.05vw,14px);font-weight:500;text-decoration:none;transition:transform .2s,border-color .2s,background-color .2s;display:inline-flex}.btn-secondary:hover{background-color:#111b2ab8;border-color:#22d3ee7a;transform:translateY(-2px)}.btn-primary svg,.btn-secondary svg,.project-link svg{transition:transform .18s}.btn-primary:hover svg,.btn-secondary:hover svg,.project-link:hover svg{transform:translate(3px)}.featured-project-card,.secondary-project-card{transition:transform .22s,border-color .22s,box-shadow .22s}.featured-project-card:hover,.secondary-project-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px #00000040;border-color:#22d3ee57!important}.project-metric-number{color:var(--accent-cyan);font-variant-numeric:tabular-nums;font-size:24px;font-weight:750}.project-metric-number--small{font-size:17px;font-weight:700}.project-link{color:var(--accent-cyan);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;transition:color .18s;display:inline-flex}.project-link:hover{color:#67e8f9}.project-carousel-shell{margin-bottom:56px;position:relative}.secondary-projects-grid{-ms-overflow-style:none;margin-bottom:0!important}.secondary-projects-grid::-webkit-scrollbar{display:none}.project-carousel-arrow{z-index:3;color:#080c14;cursor:pointer;background:#22d3ee;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:transform .18s,background-color .18s,box-shadow .18s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 8px 22px #00000057}.project-carousel-arrow:hover{background:#67e8f9;transform:translateY(-50%)scale(1.05);box-shadow:0 10px 26px #22d3ee33}.project-carousel-arrow--left{left:-22px}.project-carousel-arrow--right{right:-22px}.case-study-backdrop{z-index:2000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040912e0;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.case-study-modal{background:#0d1420;border:1px solid #243244;border-radius:16px;flex-direction:column;width:min(100%,1040px);max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000094}.case-study-header{background:#111b2a;border-bottom:1px solid #243244;justify-content:space-between;align-items:center;gap:24px;padding:22px 30px;display:flex}.case-study-eyebrow{color:#60a5fa;letter-spacing:.12em;margin-bottom:5px;font-size:11px;font-weight:600}.case-study-header h2{color:#f1f5f9;font-size:clamp(20px,3vw,26px)}.case-study-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.case-study-close{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #243244;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.case-study-close:hover{color:#f1f5f9;border-color:#22d3ee66}.case-study-content{padding:clamp(22px,4vw,36px);overflow-y:auto}.case-study-image{border:1px solid #243244;border-radius:12px;max-height:390px;margin-bottom:28px;overflow:hidden}.case-study-image img{object-fit:cover;width:100%;height:100%;max-height:390px;display:block}.case-study-image--placeholder{color:#60a5fa;background:radial-gradient(circle at 50% 35%,#22d3ee24,#0000 40%),#111b2a;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:260px;display:flex}.case-study-image--placeholder span{letter-spacing:.12em;font-size:11px;font-weight:600}.case-study-summary{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:36px;display:grid}.case-study-summary>div{background:#111b2a;border:1px solid #243244;border-radius:10px;padding:18px 20px}.case-study-summary span{color:#94a3b8;letter-spacing:.1em;margin-bottom:6px;font-size:10px;font-weight:600;display:block}.case-study-summary strong{color:#22d3ee;font-size:16px;line-height:1.4}.case-study-overview{grid-template-columns:1fr 1fr;gap:32px;margin-bottom:34px;display:grid}.case-study-content h3{color:#f1f5f9;margin-bottom:10px;font-size:18px}.case-study-content p{color:#94a3b8;font-size:14.5px;line-height:1.7}.case-study-approach{background:#111b2a;border:1px solid #243244;border-radius:10px;gap:16px;margin-bottom:34px;padding:22px;display:flex}.case-study-section-icon{color:#22d3ee;background:#22d3ee14;border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.case-study-section-title{margin:0 0 14px!important}.case-study-tags{flex-wrap:wrap;gap:9px;margin-bottom:34px;display:flex}.case-study-tags span{color:#94a3b8;background:#111b2a;border:1px solid #243244;border-radius:999px;padding:6px 11px;font-size:12px}.case-study-outcomes{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px;display:grid}.case-study-outcomes>div{color:#f1f5f9;background:#111b2a;border:1px solid #243244;border-radius:9px;align-items:center;gap:10px;padding:16px;font-size:13px;display:flex}.case-study-outcomes svg{color:#22d3ee;flex:none}.case-study-consumer{color:#60a5fa;border-top:1px solid #243244;align-items:center;gap:14px;padding:18px 20px;display:flex}.case-study-consumer div{flex-direction:column;gap:3px;display:flex}.case-study-consumer strong{color:#f1f5f9;font-size:14px}.case-study-consumer span{color:#94a3b8;font-size:12.5px}@media (width<=900px){.project-carousel-arrow--left{left:8px}.project-carousel-arrow--right{right:8px}.case-study-overview,.case-study-outcomes{grid-template-columns:1fr}}@media (width<=640px){.case-study-backdrop{padding:10px}.case-study-header{align-items:flex-start;padding:18px}.case-study-summary{grid-template-columns:1fr}}.skill-group{border-bottom:1px solid #243244b8}.skill-group:last-child{border-bottom:0}.skill-pill{cursor:default;background:#111b2ac2;border:1px solid #243244;border-radius:999px;align-items:center;gap:9px;padding:9px 14px;transition:border-color .18s,background-color .18s;display:inline-flex}.skill-pill:hover{background:#111b2a;border-color:#22d3ee57}@media (prefers-reduced-motion:reduce){.reveal-section{opacity:1;transition:none;transform:none}.featured-project-card,.secondary-project-card,.btn-primary,.btn-secondary,.project-link svg,.project-carousel-arrow{transition:none!important}.hero-floating-sign{animation:none!important}}.btn-outline-sm{height:38px;color:var(--text-heading);font-weight:500;font-size:var(--font-small);border:1px solid var(--border-primary);cursor:pointer;background:#111b2a;border-radius:8px;align-items:center;gap:8px;padding:0 16px;text-decoration:none;transition:border-color .2s,background-color .2s;display:inline-flex}.btn-outline-sm:hover{border-color:var(--accent-primary);background-color:#111d2be6}.card-base{background:#111b2a;border:1px solid #243244;border-radius:14px;transition:transform .25s,border-color .25s,box-shadow .25s;box-shadow:0 8px 24px #0000002e}.card-base:hover{border-color:#60a5fa57;box-shadow:0 12px 28px #0000003d}.glass-accent{-webkit-backdrop-filter:blur(14px);box-shadow:0 16px 36px #00000038;background:#111b2aa6!important;border:1px solid #94a3b81f!important}.form-input,.form-textarea{border:1px solid var(--border-primary);width:100%;color:var(--text-heading);font-family:inherit;font-size:var(--font-body);background-color:#0d1420;border-radius:8px;padding:0 16px;transition:border-color .2s,box-shadow .2s}.form-input{height:48px}.form-textarea{resize:vertical;min-height:130px;padding:14px}.form-input:focus,.form-textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #22d3ee2e}.ambient-hero-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#60a5fa13 0%,#22d3ee06 45%,#0000 70%);width:700px;height:700px;position:absolute;top:0;right:0}.ambient-projects-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#60a5fa0f 0%,#22d3ee05 50%,#0000 70%);width:750px;height:750px;position:absolute;top:15%;left:0%}.ambient-skills-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#60a5fa0b 0%,#0000 65%);width:600px;height:600px;position:absolute;bottom:10%;right:5%}.hero-floating-signs{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-floating-sign{color:#60a5fa5c;background:#0d14206b;border:1px solid #60a5fa2e;border-radius:13px;place-items:center;width:48px;height:48px;animation:6.5s ease-in-out infinite hero-symbol-float;display:grid;position:absolute}.hero-floating-sign--1{animation-duration:6s;animation-delay:-1s;top:20%;left:3%}.hero-floating-sign--2{animation-duration:7.5s;animation-delay:-5s;top:70%;left:8%}.hero-floating-sign--3{animation-duration:6.8s;animation-delay:-3s;top:14%;right:5%}.hero-floating-sign--4{animation-duration:8s;animation-delay:-7s;top:58%;right:2%}.hero-floating-sign--5{animation-duration:7s;animation-delay:-2s;bottom:6%;left:43%}.hero-floating-sign--6{animation-duration:8.4s;animation-delay:-6s;top:9%;left:47%}.hero-floating-sign--7{animation-duration:6.3s;animation-delay:-4s;bottom:13%;right:15%}.hero-floating-sign--8{animation-duration:7.7s;animation-delay:-8s;top:42%;left:1%}.hero-floating-sign--9{animation-duration:6.6s;animation-delay:-3.5s;bottom:3%;right:34%}.hero-floating-sign--10{animation-duration:8.2s;animation-delay:-6.5s;top:31%;right:1%}.hero-floating-sign:nth-child(2n){animation-name:hero-symbol-float-reverse}@keyframes hero-symbol-float{0%,to{transform:translate(0)rotate(-2deg)}50%{transform:translate(18px,-24px)rotate(3deg)}}@keyframes hero-symbol-float-reverse{0%,to{transform:translate(0)rotate(2deg)}50%{transform:translate(-18px,22px)rotate(-3deg)}}@media (width<=900px){.hero-floating-sign--2,.hero-floating-sign--5,.hero-floating-sign--6,.hero-floating-sign--8,.hero-floating-sign--9,.hero-floating-sign--10{display:none}.hero-floating-sign{opacity:.85}}.hero-section:before{content:"";pointer-events:none;background-image:linear-gradient(#94a3b807 1px,#0000 1px),linear-gradient(90deg,#94a3b807 1px,#0000 1px);background-size:52px 52px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000bf,#0000 88%);mask-image:linear-gradient(#000000bf,#0000 88%)}.approach-section{padding:0 0 clamp(12px,2vw,28px);position:relative}.approach-header{margin-bottom:28px}.approach-card{overflow:hidden}.approach-flow{grid-template-columns:auto minmax(42px,1fr) auto minmax(42px,1fr) auto minmax(42px,1fr) auto minmax(42px,1fr) auto minmax(42px,1fr) auto;align-items:center;padding:clamp(26px,3.5vw,38px);display:grid}.approach-step{text-align:center;min-width:102px}.approach-icon-wrap{color:#e8ecf7;background:linear-gradient(145deg,#121e30e6,#09111ed1);border:1px solid #7084a673;border-radius:12px;place-items:center;width:60px;height:60px;margin:0 auto 10px;display:grid;box-shadow:inset 0 1px #ffffff0d,0 10px 24px #00000040}.approach-step strong{color:var(--text-heading);font-size:15px;font-weight:600;display:block}.approach-step span{margin-top:2px;max-width:150px;color:var(--text-secondary);margin-inline:auto;font-size:11.5px;line-height:1.45;display:block}.approach-quality{border-top:1px solid var(--border-subtle);color:#8ddffc;background:#22b8f009;justify-content:center;align-items:flex-start;gap:12px;padding:18px 24px;display:flex}.approach-quality div{gap:3px;max-width:760px;display:grid}.approach-quality strong{color:var(--text-heading);font-size:13px;font-weight:650}.approach-quality span{color:var(--text-secondary);font-size:12px;line-height:1.55}.approach-connector{height:24px;margin:0 8px 42px;position:relative}.connector-line{background:repeating-linear-gradient(90deg,#22d3eee6 0 2px,#0000 2px 5px);height:1px;position:absolute;top:50%;left:0;right:12px}.connector-arrow{color:#7f91c5;position:absolute;top:50%;right:0;transform:translateY(-50%)}.traveling-dot{--dot-delay:0s;width:8px;height:8px;animation:travel-connector 2.7s linear var(--dot-delay) infinite;background:#fff;border-radius:50%;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 0 5px #fff,0 0 12px #22d3ee,0 0 22px #60a5fae6}@keyframes travel-connector{0%{opacity:0;left:0}10%{opacity:1}88%{opacity:1}to{opacity:0;left:calc(100% - 12px)}}@media (width<=1100px){.approach-flow{grid-template-columns:auto minmax(24px,1fr) auto minmax(24px,1fr) auto minmax(24px,1fr) auto minmax(24px,1fr) auto minmax(24px,1fr) auto;padding-inline:20px}.approach-step{min-width:92px}.approach-connector{margin-inline:3px}}@media (width<=900px){.approach-flow{grid-template-columns:1fr;justify-items:center;padding:32px 24px}.approach-step{min-width:150px}.approach-connector{width:24px;height:54px;margin:2px 0}.connector-line{background:repeating-linear-gradient(#22d3eee6 0 2px,#0000 2px 5px);width:1px;height:auto;inset:0 auto 12px 50%}.connector-arrow{inset:auto auto 0 50%;transform:translate(-50%)rotate(90deg)}.traveling-dot{animation-name:travel-connector-mobile;top:0;left:50%}}@keyframes travel-connector-mobile{0%{opacity:0;top:0}10%{opacity:1}88%{opacity:1}to{opacity:0;top:calc(100% - 12px)}}@media (prefers-reduced-motion:reduce){.traveling-dot{opacity:1;animation:none;left:50%}}
