@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:300;src:url(../media/battambang-khmer-300-normal.2nezz5is0l3no.woff2)format("woff2"),url(../media/battambang-khmer-300-normal.2-lqe12_-a45q.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:300;src:url(../media/battambang-latin-300-normal.10ljvahs-dq08.woff2)format("woff2"),url(../media/battambang-latin-300-normal.24ngsgan1lugj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:400;src:url(../media/battambang-khmer-400-normal.1b8yyz4a8v72h.woff2)format("woff2"),url(../media/battambang-khmer-400-normal.3jvrjbp9brflf.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:400;src:url(../media/battambang-latin-400-normal.2z6q4k1z6i_3x.woff2)format("woff2"),url(../media/battambang-latin-400-normal.0f2gxzwgiktg2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:700;src:url(../media/battambang-khmer-700-normal.1whr-_4d_zwdr.woff2)format("woff2"),url(../media/battambang-khmer-700-normal.1b6kvty0js111.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:700;src:url(../media/battambang-latin-700-normal.3nyhz-pihf66p.woff2)format("woff2"),url(../media/battambang-latin-700-normal.3sv6q9cq5kzva.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:900;src:url(../media/battambang-khmer-900-normal.1mvzhq-koyh38.woff2)format("woff2"),url(../media/battambang-khmer-900-normal.131v1-jba_9xu.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:900;src:url(../media/battambang-latin-900-normal.3wrse4037s8nt.woff2)format("woff2"),url(../media/battambang-latin-900-normal.1o_n9bpf7z33h.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:300;src:url(../media/kantumruy-pro-khmer-300-normal.2byjc1cqvvlbc.woff2)format("woff2"),url(../media/kantumruy-pro-khmer-300-normal.2a6wymnm0ut82.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:300;src:url(../media/kantumruy-pro-latin-ext-300-normal.2cl1rrevl8cow.woff2)format("woff2"),url(../media/kantumruy-pro-latin-ext-300-normal.3ul_3kscgm7kd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:300;src:url(../media/kantumruy-pro-latin-300-normal.2ostfru33zo9-.woff2)format("woff2"),url(../media/kantumruy-pro-latin-300-normal.01h7m-_0tmyh0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kantumruy-pro-khmer-400-normal.3t4zvmjq5ugwe.woff2)format("woff2"),url(../media/kantumruy-pro-khmer-400-normal.03ph5dhg3ggf5.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kantumruy-pro-latin-ext-400-normal.1egdnv3a9ax3t.woff2)format("woff2"),url(../media/kantumruy-pro-latin-ext-400-normal.2kt62bdv_tunr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(../media/kantumruy-pro-latin-400-normal.2di0w37-8-xsn.woff2)format("woff2"),url(../media/kantumruy-pro-latin-400-normal.1lepyn9h7jhe3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:500;src:url(../media/kantumruy-pro-khmer-500-normal.0_0tnby_1avi6.woff2)format("woff2"),url(../media/kantumruy-pro-khmer-500-normal.2nz1vr8b3xcpg.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:500;src:url(../media/kantumruy-pro-latin-ext-500-normal.0t9c8xb-0qrod.woff2)format("woff2"),url(../media/kantumruy-pro-latin-ext-500-normal.0w824hn3o6mg1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:500;src:url(../media/kantumruy-pro-latin-500-normal.2zxz3j6lnex4r.woff2)format("woff2"),url(../media/kantumruy-pro-latin-500-normal.40upm930n3ou9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:600;src:url(../media/kantumruy-pro-khmer-600-normal.3zz6alexuso0-.woff2)format("woff2"),url(../media/kantumruy-pro-khmer-600-normal.0w-iq-r96ueeb.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:600;src:url(../media/kantumruy-pro-latin-ext-600-normal.13es62g6zrshd.woff2)format("woff2"),url(../media/kantumruy-pro-latin-ext-600-normal.2ceamvdfljzio.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:600;src:url(../media/kantumruy-pro-latin-600-normal.29l4ksbeuvg1a.woff2)format("woff2"),url(../media/kantumruy-pro-latin-600-normal.42t1itt2j0afa.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kantumruy-pro-khmer-700-normal.0r27jaqyzis1o.woff2)format("woff2"),url(../media/kantumruy-pro-khmer-700-normal.25kp-9apa6w0n.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kantumruy-pro-latin-ext-700-normal.35uu6ls9iuco6.woff2)format("woff2"),url(../media/kantumruy-pro-latin-ext-700-normal.3d8ipj3nbduh_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:700;src:url(../media/kantumruy-pro-latin-700-normal.103juimg_82vo.woff2)format("woff2"),url(../media/kantumruy-pro-latin-700-normal.09ni9r31_0shs.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@layer base{:root{--accent:#3b82f6;--accent-rgb:59, 130, 246;--grad-1:#60a5fa;--grad-2:#38bdf8;--grad-3:#00dfd8;--aurora-1:#3b82f659;--aurora-2:#00dfd847;--aurora-3:#a855f738;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,sans-serif}html{scroll-behavior:smooth}body{background-color:#05060a}}.aurora-root{isolation:isolate;background-color:#05060a;position:relative}.aurora-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.aurora-blob{filter:blur(90px);opacity:.8;will-change:transform;border-radius:50%;position:absolute}.aurora-blob-1{background:radial-gradient(circle at 30% 30%, var(--aurora-1), transparent 65%);width:55vw;height:55vw;animation:22s ease-in-out infinite aurora-drift-1;top:-12%;left:-8%}.aurora-blob-2{background:radial-gradient(circle at 70% 40%, var(--aurora-2), transparent 65%);width:50vw;height:50vw;animation:26s ease-in-out infinite aurora-drift-2;top:20%;right:-12%}.aurora-blob-3{background:radial-gradient(circle at 50% 60%, var(--aurora-3), transparent 65%);width:48vw;height:48vw;animation:30s ease-in-out infinite aurora-drift-3;bottom:-18%;left:25%}@keyframes aurora-drift-1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(8vw,6vh)scale(1.1)}66%{transform:translate(-4vw,10vh)scale(.95)}}@keyframes aurora-drift-2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-10vw,8vh)scale(1.08)}66%{transform:translate(-6vw,-6vh)scale(.92)}}@keyframes aurora-drift-3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(6vw,-10vh)scale(1.12)}}.aurora-grain{z-index:1;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.tech-grid-dots{background-image:radial-gradient(#ffffff0f 1px,#0000 1px);background-size:26px 26px}.glass{-webkit-backdrop-filter:blur(16px);background:#ffffff08;border:1px solid #ffffff14}.glass-strong{-webkit-backdrop-filter:blur(22px);background:#0c0e168c;border:1px solid #ffffff1a}.glass-accent{background:linear-gradient(135deg, rgba(var(--accent-rgb), .12), #ffffff05);border:1px solid rgba(var(--accent-rgb), .25);-webkit-backdrop-filter:blur(18px)}.card-glow{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;position:relative}.card-glow:hover{box-shadow:0 24px 60px rgba(var(--accent-rgb), .14);transform:translateY(-6px)}.card-glow:before{content:"";border-radius:inherit;background:linear-gradient(140deg, rgba(var(--accent-rgb), .5), #ffffff0a 40%, transparent 70%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;padding:1px;transition:opacity .4s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.card-glow:hover:before{opacity:1}.text-gradient{background:linear-gradient(120deg, var(--grad-1), var(--grad-2) 50%, var(--grad-3));-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.text-accent{color:var(--accent)}.bg-accent{background-color:var(--accent)}.border-accent{border-color:var(--accent)}.accent-glow-btn{background:linear-gradient(120deg, var(--accent), var(--grad-2));box-shadow:0 8px 30px rgba(var(--accent-rgb), .35);transition:all .3s}.accent-glow-btn:hover{box-shadow:0 10px 40px rgba(var(--accent-rgb), .5);transform:translateY(-1px)}.ring-accent-soft{box-shadow:0 0 0 1px rgba(var(--accent-rgb), .3), 0 0 40px rgba(var(--accent-rgb), .15)}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:6s ease-in-out infinite float}@keyframes pulse-glow-blue{0%,to{box-shadow:0 0 12px #2563eb33}50%{box-shadow:0 0 24px #2563eb80}}@keyframes pulse-glow-emerald{0%,to{box-shadow:0 0 12px #10b98133}50%{box-shadow:0 0 24px #10b98180}}@keyframes pulse-glow-amber{0%,to{box-shadow:0 0 12px #f59e0b33}50%{box-shadow:0 0 24px #f59e0b80}}.glow-blue{animation:3s infinite pulse-glow-blue}.glow-emerald{animation:3s infinite pulse-glow-emerald}.glow-amber{animation:3s infinite pulse-glow-amber}@keyframes flow-particle{0%{opacity:0;left:0%}10%{opacity:1}90%{opacity:1}to{opacity:0;left:100%}}.pulse-particle{background-color:var(--particle-color,#3b82f6);width:12px;height:6px;box-shadow:0 0 10px var(--particle-color,#3b82f6);border-radius:9999px;animation:1.2s cubic-bezier(.4,0,.2,1) infinite flow-particle;position:absolute;top:-2px}@keyframes svg-flow{to{stroke-dashoffset:-20px}}.svg-flow-line{stroke-dasharray:6 4;animation:1.5s linear infinite svg-flow}.terminal-key{color:#c084fc}.terminal-string{color:#34d399}.terminal-number{color:#fbbf24}.terminal-type{color:#60a5fa}.terminal-comment{color:#64748b}@keyframes ring-pulse{0%{opacity:.5;transform:scale(.95)}50%{opacity:.15;transform:scale(1.25)}to{opacity:0;transform:scale(1.4)}}.ring-pulse-emerald{border-color:#10b98166;animation:2s cubic-bezier(.16,1,.3,1) infinite ring-pulse}.ring-pulse-purple{border-color:#a855f766;animation:2s cubic-bezier(.16,1,.3,1) infinite ring-pulse}.ring-pulse-blue{border-color:#3b82f666;animation:2s cubic-bezier(.16,1,.3,1) infinite ring-pulse}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.animate-marquee{animation:28s linear infinite marquee}.divider-shimmer{background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .5), transparent);height:1px}body{background:var(--ink);margin:0}.portfolio-shell{background:var(--ink);color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow:hidden}.portfolio-wrap{width:min(1240px,100% - 64px);margin:auto}.portfolio-nav{z-index:20;width:100%;height:82px;color:var(--paper);box-sizing:border-box;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:0 max(32px,50vw - 620px);transition:background .35s,border-color .35s;display:flex;position:fixed;inset:0 auto auto 0}.portfolio-nav--scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#11120fd1;border-color:#eeeae11f}.portfolio-brand{color:inherit;letter-spacing:.13em;align-items:center;gap:10px;font-size:12px;font-weight:700;text-decoration:none;display:flex}.portfolio-brand__logo{object-fit:cover;border-radius:50%;width:24px;height:24px;box-shadow:0 0 0 1px #d8a33d80,0 0 14px #d8a33d33}.portfolio-brand__muted{opacity:.45}.portfolio-links{gap:34px;margin-left:118px;display:flex}.portfolio-links a,.portfolio-nav__cta{color:inherit;letter-spacing:.01em;font-size:12px;line-height:1;text-decoration:none;transition:opacity .2s}.portfolio-links a:hover{opacity:.55}.portfolio-nav__cta{border-bottom:1px solid var(--gold);align-items:center;gap:8px;padding-bottom:4px;display:flex}.portfolio-locale{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#03040547;border:1px solid #eeeae12b;border-radius:999px;align-items:center;gap:8px;margin-left:auto;margin-right:25px;padding:5px 8px;display:flex}.portfolio-locale button{appearance:none;color:#eeeae175;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;padding:0;font:600 9px/1 Kantumruy Pro,Helvetica Neue,sans-serif;transition:color .2s}.portfolio-locale button[aria-pressed=true]{color:var(--paper)}.portfolio-locale span{background:#eeeae12e;width:1px;height:11px}.portfolio-arrow{font-size:16px;line-height:.7;transition:transform .25s;display:inline-block}a:hover .portfolio-arrow{transform:translate(3px,-3px)}.portfolio-menu{background:0 0;border:0;padding:8px 0 8px 8px;display:none}.portfolio-menu span{background:var(--paper);width:22px;height:1px;margin:5px 0;display:block}.portfolio-hero{box-sizing:border-box;isolation:isolate;background:#11120f;min-height:810px;padding:190px 0 45px;position:relative}.portfolio-hero__grain{opacity:.16;pointer-events:none;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");position:absolute;inset:0}.portfolio-hero:before{content:"";z-index:-1;background:radial-gradient(circle,#d8a33d29 0,#d8a33d0b 29%,#0000 67%);width:64vw;height:64vw;position:absolute;top:-24vw;right:-29vw}.portfolio-hero__layout{grid-template-columns:52% 48%;align-items:center;display:grid}.portfolio-eyebrow,.portfolio-section-label{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700;line-height:1.35}.portfolio-eyebrow{align-items:center;gap:9px;display:flex}.portfolio-eyebrow span{background:var(--gold);width:28px;height:1px}.portfolio-hero h1,.portfolio-statement h2,.portfolio-approach h2,.portfolio-contact h2{letter-spacing:-.065em;margin:23px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(50px,5.65vw,84px);font-weight:400;line-height:.94}.portfolio-hero h1 em,.portfolio-statement h2 em,.portfolio-approach h2 em,.portfolio-contact h2 em{color:var(--gold);font-weight:400}.portfolio-hero__intro{color:#eeeae1ab;max-width:400px;margin:29px 0 0;font-size:15px;line-height:1.65}.portfolio-hero__actions{align-items:center;gap:28px;margin-top:36px;display:flex}.portfolio-button{color:var(--ink);background:var(--paper);align-items:center;gap:16px;padding:15px 18px;font-size:12px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.portfolio-button:hover{background:var(--gold);transform:translateY(-2px)}.portfolio-text-link{color:var(--paper);border-bottom:1px solid #eeeae173;align-items:center;gap:11px;padding-bottom:5px;font-size:12px;text-decoration:none;transition:border-color .2s;display:inline-flex}.portfolio-text-link:hover{border-color:var(--gold)}.portfolio-text-link span{color:var(--gold);font-size:17px;line-height:.6}.portfolio-hero__visual{min-height:465px;position:relative}.city-art{aspect-ratio:1.21;background:#171912;border:1px solid #eeeae12b;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 100px #00000073}.city-art:before,.city-art:after{content:"";z-index:2;pointer-events:none;position:absolute}.city-art:before{border:1px solid #eeeae117;inset:14px}.city-art:after{background:linear-gradient(130deg,#0000 45%,#7bd9c312);inset:0}.city-art__wash{background:radial-gradient(circle at 75% 28%,#7bd9c32e,#0000 25%),radial-gradient(circle at 25% 70%,#d8a33d21,#0000 28%);position:absolute;inset:-15%}.city-art svg{z-index:1;width:100%;height:100%;position:relative}.map-streets path{fill:none;stroke:#eeeae12b;stroke-width:1.2px}.map-routes path{fill:none;stroke:url(#route);stroke-width:1.8px;stroke-dasharray:4 5;animation:15s linear infinite route-flow}.map-routes--glow path{stroke-width:5px;opacity:.48}.map-points circle{fill:var(--paper);stroke:var(--mint);stroke-width:4px;animation:2.8s ease-in-out infinite map-pulse}.map-label{z-index:4;color:#eeeae19e;letter-spacing:.04em;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#11120fb8;border:1px solid #eeeae126;padding:7px 9px;font:8px/1.55 monospace;position:absolute}.map-label i{background:var(--mint);width:5px;height:5px;box-shadow:0 0 8px var(--mint);border-radius:50%;margin-right:5px;display:inline-block}.map-label b{color:var(--paper);font-size:10px;display:block}.map-label--one{top:18%;left:9%}.map-label--two{bottom:16%;right:6%}.map-scale{z-index:3;color:#eeeae16b;letter-spacing:.08em;font:8px/1.7 monospace;position:absolute;bottom:8%;left:9%}.map-orbit{z-index:3;pointer-events:none;border:1px solid #d8a33d5c;border-radius:50%;position:absolute}.map-orbit--one{width:280px;height:280px;top:-95px;right:-110px}.map-orbit--two{border-color:#7bd9c340;width:150px;height:150px;bottom:-65px;left:-75px}.portfolio-hero__footer{color:#eeeae187;justify-content:space-between;align-items:end;margin-top:36px;font-size:11px;line-height:1.5;display:flex}.portfolio-hero__index{text-align:right;letter-spacing:.12em;align-items:end;gap:56px;font-size:9px;display:flex}.portfolio-hero__index b{color:var(--paper);letter-spacing:.08em;font-size:11px;font-weight:400}.portfolio-marquee{color:var(--ink);background:var(--gold);padding:17px 0;overflow:hidden}.portfolio-marquee__track{letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:26px;min-width:max-content;font:700 12px/1 Helvetica Neue,sans-serif;animation:36s linear infinite portfolio-marquee;display:flex}.portfolio-marquee__item{align-items:center;gap:26px;display:flex}.portfolio-marquee__track i{font-size:14px;font-style:normal}.portfolio-statement{color:var(--ink);background:var(--paper);padding:150px 0}.portfolio-statement__grid{grid-template-columns:25% 1fr;display:grid}.portfolio-statement h2{max-width:780px;margin:-8px 0 38px;font-size:clamp(42px,5vw,70px)}.portfolio-statement h2 em{color:#8a7448}.portfolio-statement__grid>div>p{color:#5b5c55;max-width:515px;margin:0 0 32px;font-size:15px;line-height:1.72}.portfolio-work{background:#151711;padding:130px 0 150px}.portfolio-section-head{justify-content:space-between;align-items:start;margin-bottom:65px;display:flex}.portfolio-section-head>p:last-child{color:#eeeae196;text-align:right;margin:0;font-size:13px;line-height:1.55}.portfolio-project{border-top:1px solid var(--line);padding-top:23px}.portfolio-project+.portfolio-project{margin-top:82px}.portfolio-project__image{background:#222;height:min(46vw,505px);display:block;position:relative;overflow:hidden}.portfolio-project__image img{object-fit:cover;filter:saturate(.68)contrast(.98)brightness(.76);width:100%;height:100%;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .45s}.portfolio-project__image:after{content:"";background:linear-gradient(90deg,#11120f6b,#0000 40%,#11120f1f);position:absolute;inset:0}.portfolio-project:hover img{filter:saturate(.95)contrast(1.05)brightness(.85);transform:scale(1.045)}.portfolio-project__number{z-index:2;color:var(--paper);font:11px monospace;position:absolute;top:18px;left:20px}.portfolio-project__open{z-index:3;width:43px;height:43px;color:var(--ink);background:var(--paper);border-radius:50%;place-items:center;display:grid;position:absolute;top:20px;right:22px}.portfolio-project__open .portfolio-arrow{font-size:22px}.portfolio-project__body{grid-template-columns:25% 1fr;padding-top:19px;display:grid}.portfolio-project__body>p{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin:3px 0 0;font-size:10px}.portfolio-project h3{letter-spacing:-.055em;margin:0;font-family:Georgia,serif;font-size:clamp(31px,4vw,51px);font-weight:400;line-height:1}.portfolio-project__bottom{grid-column:2;justify-content:space-between;align-items:end;gap:20px;margin-top:28px;display:flex}.portfolio-project__bottom>span{color:#eeeae199;max-width:380px;font-size:13px;line-height:1.55}.portfolio-project__bottom div{flex-wrap:wrap;justify-content:end;gap:6px;display:flex}.portfolio-project__bottom b{color:#eeeae1c2;letter-spacing:.07em;text-transform:uppercase;border:1px solid #eeeae133;padding:5px 7px;font-size:9px;font-weight:400}.portfolio-approach{color:var(--ink);background:var(--cream);padding:132px 0 120px}.portfolio-approach__top{grid-template-columns:25% 1fr;display:grid}.portfolio-approach h2{color:#26271f;margin:-9px 0 80px;font-size:clamp(42px,5vw,70px)}.portfolio-approach h2 em{color:#84704c}.portfolio-principles{border-top:1px solid #11120f3d;grid-template-columns:repeat(3,1fr);display:grid}.portfolio-principles article{border-right:1px solid #11120f33;min-height:200px;padding:21px 30px 0 0}.portfolio-principles article+article{padding-left:30px}.portfolio-principles article:last-child{border-right:0}.portfolio-principles span{color:#927a4b;font:10px monospace}.portfolio-principles h3{letter-spacing:-.04em;margin:38px 0 10px;font:400 25px/1 Georgia,serif}.portfolio-principles p{color:#5f6059;max-width:280px;margin:0;font-size:13px;line-height:1.6}.portfolio-contact{background:#10120e;padding:140px 0 28px;position:relative;overflow:hidden}.portfolio-contact__halo{border:1px solid #d8a33d2e;border-radius:50%;width:730px;height:730px;position:absolute;top:-340px;right:4%;box-shadow:0 0 0 90px #d8a33d05,0 0 0 180px #d8a33d03,inset 0 0 120px #d8a33d12}.portfolio-contact__inner{position:relative}.portfolio-contact h2{max-width:780px;margin-top:31px;font-size:clamp(50px,6vw,86px)}.portfolio-contact__email{color:var(--paper);border-bottom:1px solid var(--gold);gap:11px;margin-top:43px;padding-bottom:8px;font:17px/1 Georgia,serif;text-decoration:none;display:inline-flex}.portfolio-contact__meta{border-top:1px solid var(--line);color:#eeeae180;letter-spacing:.11em;justify-content:space-between;margin-top:148px;padding-top:20px;font-size:9px;line-height:1.6;display:flex}@keyframes route-flow{to{stroke-dashoffset:-130px}}@keyframes map-pulse{50%{r:9;opacity:.48}}@keyframes portfolio-marquee{to{transform:translate(-50%)}}@media (max-width:760px){.portfolio-wrap{width:calc(100% - 40px)}.portfolio-nav{height:68px;padding:0 20px}.portfolio-links{display:none}.portfolio-links--open{border-bottom:1px solid var(--line);background:#11120f;flex-direction:column;gap:18px;margin:0;padding:22px 20px 28px;display:flex;position:absolute;top:68px;left:0;right:0}.portfolio-nav__cta{display:none}.portfolio-locale{margin-left:auto;margin-right:14px}.portfolio-menu{display:block}.portfolio-hero{min-height:0;padding:130px 0 28px}.portfolio-hero__layout{flex-direction:column;align-items:stretch;display:flex}.portfolio-hero h1{font-size:clamp(48px,14vw,68px)}.portfolio-hero__visual{min-height:0;margin:52px -20px 0}.city-art{aspect-ratio:1.15}.portfolio-hero__footer{margin-top:20px}.portfolio-hero__index{display:none}.portfolio-statement{padding:88px 0}.portfolio-statement__grid,.portfolio-approach__top{display:block}.portfolio-statement h2,.portfolio-approach h2{margin:25px 0 28px}.portfolio-section-head{margin-bottom:40px}.portfolio-section-head>p:last-child{display:none}.portfolio-work{padding:86px 0}.portfolio-project+.portfolio-project{margin-top:55px}.portfolio-project__image{height:61vw}.portfolio-project__body{display:block}.portfolio-project__body>p{margin:17px 0 10px}.portfolio-project__bottom{margin-top:20px;display:block}.portfolio-project__bottom div{justify-content:start;margin-top:16px}.portfolio-approach{padding:86px 0 70px}.portfolio-principles{display:block}.portfolio-principles article,.portfolio-principles article+article{border-bottom:1px solid #11120f33;border-right:0;min-height:0;padding:22px 0 30px}.portfolio-principles h3{margin:25px 0 9px}.portfolio-contact{padding-top:88px}.portfolio-contact h2{margin-top:25px}.portfolio-contact__meta{gap:20px;margin-top:82px}.map-label--one{top:14%;left:7%}.map-label--two{bottom:13%;right:5%}}@media (max-width:1100px) and (min-width:761px){.portfolio-links{gap:16px;margin-left:28px}.portfolio-links a,.portfolio-nav__cta{font-size:10px}.portfolio-locale{margin-right:13px}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.aurora-blob,.animate-float,.animate-marquee{animation:none}.reveal{opacity:1;transform:none}[style*=spin-slow]{animation:none!important}}.portfolio-progress{z-index:40;pointer-events:none;background:#eeeae114;height:2px;position:fixed;inset:0 0 auto}.portfolio-progress span{width:100%;height:100%;transform:scaleX(var(--portfolio-scroll,0));transform-origin:0;background:linear-gradient(90deg, var(--mint), var(--gold));display:block;box-shadow:0 0 12px #7bd9c359}.portfolio-motion-ready [data-reveal]{opacity:0;filter:blur(7px);will-change:transform, opacity, filter;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s;transform:translateY(34px)}.portfolio-motion-ready [data-reveal].is-revealed{opacity:1;filter:blur();transform:translate(0,0)}.portfolio-motion-ready .portfolio-hero__copy [data-reveal]:first-child{transition-delay:80ms}.portfolio-motion-ready .portfolio-hero__copy [data-reveal]:nth-child(2){transition-delay:.17s}.portfolio-motion-ready .portfolio-hero__copy [data-reveal]:nth-child(3){transition-delay:.28s}.portfolio-motion-ready .portfolio-hero__copy [data-reveal]:nth-child(4){transition-delay:.38s}.portfolio-motion-ready .portfolio-principles article:nth-child(2){transition-delay:.12s}.portfolio-motion-ready .portfolio-principles article:nth-child(3){transition-delay:.24s}.city-art{transform:translate3d(0, var(--parallax-y,0), 0);transition:transform 1s cubic-bezier(.16,1,.3,1)}.portfolio-project__image img{transform:translate3d(0, var(--parallax-y,0), 0) scale(1.055);transition:transform 1s cubic-bezier(.16,1,.3,1),filter .45s}.portfolio-project:hover img{transform:translate3d(0, var(--parallax-y,0), 0) scale(1.1)}.portfolio-project__open{transition:transform .45s cubic-bezier(.16,1,.3,1),background .35s}.portfolio-project:hover .portfolio-project__open{background:var(--gold);transform:rotate(45deg)scale(1.08)}.portfolio-contact__halo{animation:15s ease-in-out infinite halo-drift}.city-art__wash{animation:10s ease-in-out infinite alternate map-wash}@keyframes halo-drift{50%{transform:translate(-4%,5%)scale(1.06)}}@keyframes map-wash{to{transform:translate(3%,-2%)scale(1.05)}}@media (prefers-reduced-motion:reduce){.portfolio-progress,.portfolio-contact__halo,.city-art__wash,.map-routes path,.map-points circle,.portfolio-marquee__track{animation:none!important}.portfolio-progress{display:none}.city-art,.portfolio-project__image img{transform:none!important}}.portfolio-contact__phones{max-width:780px;margin-top:38px}.portfolio-contact__phones>p{color:#eeeae17a;letter-spacing:.12em;text-transform:uppercase;margin:0 0 15px;font-size:10px}.portfolio-contact__phone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.portfolio-contact__phone-grid article{background:linear-gradient(135deg,#eeeae10e,#eeeae103);border:1px solid #eeeae129;min-height:150px;padding:18px;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .35s,background .35s}.portfolio-contact__phone-grid article:hover{background:linear-gradient(135deg,#d8a33d21,#7bd9c30a);border-color:#d8a33da6;transform:translateY(-5px)}.portfolio-contact__line{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font:10px/1 monospace;display:block}.portfolio-contact__number{color:var(--paper);letter-spacing:-.045em;margin-top:21px;font:400 clamp(22px,2.3vw,30px)/1 Georgia,serif;text-decoration:none;display:block}.portfolio-contact__actions{gap:16px;margin-top:22px;display:flex}.portfolio-contact__actions a{color:#eeeae1a8;border-bottom:1px solid #eeeae138;align-items:center;gap:7px;padding-bottom:4px;font-size:11px;text-decoration:none;transition:color .25s,border-color .25s;display:inline-flex}.portfolio-contact__actions a:hover{color:var(--paper);border-color:var(--gold)}.portfolio-contact__actions .portfolio-arrow{color:var(--gold);font-size:14px}@media (max-width:760px){.portfolio-contact__phone-grid{grid-template-columns:1fr}.portfolio-contact__phone-grid article{min-height:0}.portfolio-contact__number{font-size:27px}}.project-feature{z-index:2;pointer-events:none;opacity:0;mix-blend-mode:screen;transition:opacity .5s;position:absolute}.portfolio-project.is-revealed .project-feature{opacity:1}.project-feature--gis{background:radial-gradient(circle,#7bd9c324,#0000 63%);border:1px solid #7bd9c359;border-radius:50%;width:84px;height:84px;bottom:24px;left:26px}.project-feature__scan{clip-path:polygon(50% 50%,100% 0,100% 100%);opacity:0;transform-origin:50%;background:conic-gradient(from 30deg,#7bd9c39e,#0000 20% 79%,#d8a33d5c);border-radius:50%;position:absolute;inset:-1px;transform:rotate(-60deg)}.project-feature__scan-ring{opacity:0;border:1px solid #eeeae14d;border-radius:50%;position:absolute}.project-feature__scan-ring--one{inset:18px}.project-feature__scan-ring--two{inset:34px}.project-feature__scan-dot{background:var(--paper);box-shadow:0 0 0 5px #7bd9c329, 0 0 16px var(--mint);opacity:0;border-radius:50%;position:absolute;inset:38px}.project-feature__scan-label{color:#eeeae1c7;letter-spacing:.11em;text-transform:uppercase;opacity:0;width:max-content;font:9px/1 monospace;position:absolute;bottom:5px;left:96px}.portfolio-project.is-revealed .project-feature__scan{animation:2.5s cubic-bezier(.16,1,.3,1) .25s forwards gis-sweep}.portfolio-project.is-revealed .project-feature__scan-ring--one{animation:1.7s ease-out .65s forwards gis-ring}.portfolio-project.is-revealed .project-feature__scan-ring--two{animation:1.7s ease-out .95s forwards gis-ring}.portfolio-project.is-revealed .project-feature__scan-dot{animation:.6s ease-out 1.15s forwards gis-dot}.portfolio-project.is-revealed .project-feature__scan-label{animation:.5s ease-out 1.35s forwards feature-label}.project-feature--iot{width:clamp(210px,28vw,420px);height:62px;bottom:22px;left:26px}.project-feature__route{fill:none;stroke:#7bd9c3c2;stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520px;filter:drop-shadow(0 0 3px #7bd9c399)}.portfolio-project.is-revealed .project-feature__route{animation:2.25s cubic-bezier(.16,1,.3,1) .35s forwards iot-route}.project-feature__nodes circle{fill:var(--paper);stroke:var(--mint);stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%}.project-feature__nodes circle:nth-child(2n){stroke:var(--gold)}.portfolio-project.is-revealed .project-feature__nodes circle{animation:1.2s ease-out forwards iot-node}.portfolio-project.is-revealed .project-feature__nodes circle:nth-child(2){animation-delay:.65s}.portfolio-project.is-revealed .project-feature__nodes circle:nth-child(3){animation-delay:.98s}.portfolio-project.is-revealed .project-feature__nodes circle:nth-child(4){animation-delay:1.25s}.project-feature__packet{opacity:0;transition:opacity .3s 1.55s}.project-feature__packet circle{fill:var(--paper)}.portfolio-project.is-revealed .project-feature__packet{opacity:1}.project-feature--scada{width:230px;bottom:24px;right:26px}.project-feature--scada svg{width:100%;height:auto;display:block}.project-feature__flow-line{fill:none;stroke:var(--gold);stroke-width:1.7px;stroke-linecap:round;stroke-dasharray:300;stroke-dashoffset:300px;filter:drop-shadow(0 0 3px #d8a33d9e)}.project-feature__flow-node{fill:var(--paper);stroke:var(--gold);stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%}.project-feature__flow-node:nth-of-type(2n){stroke:var(--mint)}.project-feature__flow-caption{color:#eeeae1bf;letter-spacing:.11em;text-transform:uppercase;opacity:0;margin-top:5px;font:9px/1 monospace;display:block}.portfolio-project.is-revealed .project-feature__flow-line{animation:2.1s cubic-bezier(.16,1,.3,1) .35s forwards scada-flow}.portfolio-project.is-revealed .project-feature__flow-node{animation:1s ease-out forwards scada-node}.portfolio-project.is-revealed .project-feature__flow-node:nth-of-type(2){animation-delay:.7s}.portfolio-project.is-revealed .project-feature__flow-node:nth-of-type(3){animation-delay:1.05s}.portfolio-project.is-revealed .project-feature__flow-node:nth-of-type(4){animation-delay:1.35s}.portfolio-project.is-revealed .project-feature__flow-caption{animation:.5s ease-out 1.55s forwards feature-label}@keyframes gis-sweep{0%{opacity:0;transform:rotate(-60deg)}18%{opacity:.9}to{opacity:.35;transform:rotate(290deg)}}@keyframes gis-ring{0%{opacity:0;transform:scale(.45)}55%{opacity:.7}to{opacity:.2;transform:scale(1.12)}}@keyframes gis-dot{to{opacity:1}}@keyframes feature-label{to{opacity:1}}@keyframes iot-route{0%{stroke-dashoffset:520px;opacity:0}20%{opacity:1}to{stroke-dashoffset:0;opacity:.86}}@keyframes iot-node{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.65)}to{opacity:.9;transform:scale(1)}}@keyframes scada-flow{0%{stroke-dashoffset:300px;opacity:0}15%{opacity:1}to{stroke-dashoffset:0;opacity:.9}}@keyframes scada-node{0%{opacity:0;transform:scale(.25)}50%{opacity:1;transform:scale(1.7)}to{opacity:.95;transform:scale(1)}}@media (max-width:760px){.project-feature--gis{transform-origin:0 100%;transform:scale(.82)}.project-feature--scada{transform-origin:100% 100%;bottom:15px;right:16px;transform:scale(.82)}}@media (prefers-reduced-motion:reduce){.project-feature{display:none}}:root{--ink:#030405;--paper:#f4f5f7;--cream:#090a0d;--gold:#e8ebf0;--mint:#78cef3;--line:#f4f5f729}body,.portfolio-shell{background:#030405}.portfolio-nav--scrolled{background:#030405d1;border-color:#ffffff21}.portfolio-brand{gap:12px}.portfolio-brand__logo{object-fit:cover;clip-path:circle(50%);filter:grayscale()invert()contrast(1.18)drop-shadow(0 0 10px #79cff52e);mix-blend-mode:screen;border:1px solid #fff3;border-radius:50%;width:38px;height:38px;box-shadow:0 0 0 3px #79cff509}.portfolio-brand__wordmark{color:#f4f5f7;letter-spacing:.24em;border-left:1px solid #ffffff38;gap:2px;padding-left:12px;font-size:9px;line-height:1;display:grid}.portfolio-brand__wordmark b{letter-spacing:.2em;font-size:10px;font-weight:650}.portfolio-brand__wordmark span{color:#f4f5f787;font-weight:500}.portfolio-nav__cta{border-color:#ffffffb8}.portfolio-hero:before{background:repeating-radial-gradient(circle,#0000 0 13%,#ffffff0e 13.15% 13.3%,#0000 13.45% 21%),radial-gradient(circle,#79cff51f,#0000 58%);width:70vw;height:70vw;top:-31vw;right:-30vw}.portfolio-hero:after{content:"";z-index:-1;pointer-events:none;opacity:.55;background-image:radial-gradient(circle at 8% 13%,#fff 0 1px,#0000 1.4px),radial-gradient(circle at 21% 31%,#ffffffb8 0 1px,#0000 1.4px),radial-gradient(circle at 42% 10%,#ffffff8c 0 1px,#0000 1.4px),radial-gradient(circle at 57% 24%,#fff 0 1px,#0000 1.6px),radial-gradient(circle at 78% 13%,#ffffffb3 0 1px,#0000 1.5px),radial-gradient(circle at 91% 38%,#79cff5cc 0 1px,#0000 1.7px);background-size:340px 290px,420px 370px,510px 430px,620px 510px,740px 590px,860px 680px;animation:30s linear infinite alternate cosmos-stars;position:absolute;inset:0}.portfolio-hero__grain{opacity:.11}.portfolio-hero__grain:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:58vw;height:36vw;position:absolute;bottom:-19vw;left:-25vw;box-shadow:0 0 90px #ffffff1a,0 -12px 70px #79cff50f}.portfolio-eyebrow,.portfolio-section-label{color:#c9ced6}.portfolio-eyebrow span{background:linear-gradient(90deg,#fff,#7fcff1);box-shadow:0 0 10px #79cff559}.portfolio-hero h1 em,.portfolio-statement h2 em,.portfolio-approach h2 em,.portfolio-contact h2 em{color:#0000;background:linear-gradient(110deg,#fff 5%,#aeb5bf 48%,#fff 82%);-webkit-text-fill-color:transparent;text-shadow:0 0 35px #ffffff14;-webkit-background-clip:text;background-clip:text}.portfolio-button{color:#050608;background:linear-gradient(135deg,#fff,#d9dde3);box-shadow:0 10px 35px #ffffff14}.portfolio-button:hover{background:#fff;box-shadow:0 12px 38px #79cff529}.portfolio-text-link span,.portfolio-arrow{color:#dce2e9}.city-art{background:#05070a;border-color:#ffffff2e;box-shadow:inset 0 0 110px #000000b3,0 30px 100px #00000080}.city-art:after{background:linear-gradient(135deg,#0000 38%,#79cff50e)}.city-art__wash{background:radial-gradient(circle at 75% 28%,#79cff51f,#0000 25%),radial-gradient(circle at 25% 70%,#ffffff13,#0000 30%)}.map-streets path{stroke:#f4f5f726}.map-label i{background:#79cff5;box-shadow:0 0 9px #79cff5}.map-label--two i{background:#fff;box-shadow:0 0 9px #ffffffe6}.map-orbit{border-color:#ffffff38}.map-orbit--two{border-color:#79cff538}.portfolio-marquee{color:#f4f5f7;background:#07080a;border-top:1px solid #ffffff29;border-bottom:1px solid #ffffff29}.portfolio-marquee__track i{color:#79cff5}.portfolio-statement{color:#f4f5f7;background:radial-gradient(circle at 82% 22%,#79cff512,#0000 26%),#08090b;border-bottom:1px solid #ffffff1a}.portfolio-statement .portfolio-section-label,.portfolio-text-link--dark{color:#aeb5bf}.portfolio-statement h2{color:#f4f5f7}.portfolio-statement__grid>div>p{color:#f4f5f799}.portfolio-text-link--dark{border-color:#ffffff59}.portfolio-project__body>p{color:#c8ced6}.portfolio-project__bottom b{border-color:#ffffff2e}.portfolio-project__open{background:#f4f5f7}.portfolio-project:hover .portfolio-project__open{color:#030405;background:#79cff5}.portfolio-approach{color:#f4f5f7;background:radial-gradient(circle at 15% 15%,#ffffff0e,#0000 28%),#090a0d;border-top:1px solid #ffffff1c}.portfolio-approach .portfolio-section-label{color:#aeb5bf}.portfolio-approach h2{color:#f4f5f7}.portfolio-principles{border-color:#ffffff2b}.portfolio-principles article{border-color:#ffffff21}.portfolio-principles span{color:#79cff5}.portfolio-principles h3{color:#f4f5f7}.portfolio-principles p{color:#f4f5f794}.portfolio-contact__halo{border-color:#ffffff29;box-shadow:0 0 0 90px #ffffff03,0 0 0 180px #ffffff02,inset 0 0 120px #79cff50a}.portfolio-contact__email{border-color:#ffffffb3}.portfolio-contact__phone-grid article:hover{background:linear-gradient(135deg,#79cff517,#ffffff06);border-color:#79cff58c}.portfolio-contact__line,.portfolio-contact__actions .portfolio-arrow{color:#a9ddf4}.portfolio-faq{background:#050709e6;border-top:1px solid #ffffff1a;padding:132px 0 126px}.portfolio-faq__layout{grid-template-columns:34% 1fr;gap:7%;display:grid}.portfolio-faq__intro h2{letter-spacing:-.055em;margin:32px 0 25px;font:400 clamp(42px,5vw,70px)/.96 Georgia,serif}.portfolio-faq__intro h2 em{color:#a9ddf4}.portfolio-faq__intro>p:last-child{color:#f4f5f78c;max-width:330px;font-size:13px;line-height:1.7}.portfolio-faq__list{border-top:1px solid #ffffff2e}.portfolio-faq__list article{border-bottom:1px solid #ffffff24;grid-template-columns:48px 1fr;gap:12px;padding:27px 0 30px;display:grid}.portfolio-faq__list article>span{color:#79cff5;letter-spacing:.08em;padding-top:4px;font:9px/1 monospace}.portfolio-faq__list h3{color:#f4f5f7;letter-spacing:-.025em;margin:0 0 11px;font:400 22px/1.2 Georgia,serif}.portfolio-faq__list p{color:#f4f5f794;max-width:650px;margin:0;font-size:13px;line-height:1.65}.portfolio-progress span{background:linear-gradient(90deg,#fff,#79cff5,#fff);box-shadow:0 0 12px #79cff573}.project-feature__route,.project-feature__flow-line,.project-feature__nodes circle,.project-feature__flow-node{stroke:#a9ddf4}.project-feature__nodes circle:nth-child(2n),.project-feature__flow-node:nth-of-type(2n){stroke:#fff}.project-feature--gis{background:radial-gradient(circle,#79cff51f,#0000 64%);border-color:#79cff559}.project-feature__scan{background:conic-gradient(from 30deg,#79cff594,#0000 20% 79%,#ffffff47)}@keyframes cosmos-stars{to{background-position:18px 12px,-16px 22px,24px -12px,-18px -15px,10px 16px,-12px 8px}}@media (max-width:760px){.portfolio-brand{gap:9px}.portfolio-brand__logo{width:32px;height:32px}.portfolio-brand__wordmark{gap:1px;padding-left:9px;font-size:7px}.portfolio-brand__wordmark b{font-size:8px}.portfolio-hero:after{opacity:.4}.portfolio-hero__grain:after{width:100vw;height:70vw;bottom:-35vw;left:-52vw}.portfolio-faq{padding:86px 0 80px}.portfolio-faq__layout{display:block}.portfolio-faq__intro h2{margin:25px 0 20px}.portfolio-faq__intro>p:last-child{margin-bottom:50px}.portfolio-faq__list article{grid-template-columns:34px 1fr;padding:23px 0 26px}.portfolio-faq__list h3{font-size:20px}}@media (prefers-reduced-motion:reduce){.portfolio-hero:after{animation:none}}.portfolio-shell{isolation:isolate;position:relative}.digital-universe{z-index:0;opacity:.78;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000 0,#000 8% 92%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 8% 92%,#0000 100%)}.portfolio-shell>section{z-index:1;position:relative}.portfolio-hero{background:#030405b8}.portfolio-marquee{background:#07080af0}.portfolio-statement{background:radial-gradient(circle at 82% 22%,#79cff512,#0000 26%),#08090be6}.portfolio-work{background:#030405e6}.portfolio-approach{background:radial-gradient(circle at 15% 15%,#ffffff0e,#0000 28%),#090a0de6}.portfolio-contact{background:radial-gradient(circle at 78% 5%,#79cff513,#0000 30%),#030405c7}@media (max-width:760px){.digital-universe{opacity:.52}.portfolio-statement,.portfolio-work,.portfolio-approach{background-color:#030406f0}}@media (prefers-reduced-motion:reduce){.digital-universe{display:none}}@media (prefers-color-scheme:light){:root{--ink:#edf1f4;--paper:#111921;--cream:#e7ecef;--gold:#17394a;--mint:#147da6;--line:#11192126}body,.portfolio-shell{background:#edf1f4}.portfolio-shell{color:#111921}.portfolio-nav{color:#101820}.portfolio-nav--scrolled{background:#f4f7f9db;border-color:#11192121;box-shadow:0 10px 34px #1c34410f}.portfolio-brand__logo{filter:grayscale()contrast(1.16)drop-shadow(0 0 9px #147da621);mix-blend-mode:multiply;border-color:#11192133;box-shadow:0 0 0 3px #147da60b}.portfolio-brand__wordmark{color:#101820;border-color:#11192138}.portfolio-brand__wordmark span{color:#11192187}.portfolio-nav__cta{border-color:#11192199}.portfolio-menu span{background:#101820}.portfolio-links--open{background:#f4f7f9fa;border-color:#11192124}.portfolio-hero{background:#eef2f5bd}.portfolio-hero:before{background:repeating-radial-gradient(circle,#0000 0 13%,#11192113 13.15% 13.3%,#0000 13.45% 21%),radial-gradient(circle,#147da621,#0000 58%)}.portfolio-hero:after{opacity:.42;background-image:radial-gradient(circle at 8% 13%,#172631 0 1px,#0000 1.4px),radial-gradient(circle at 21% 31%,#172631b8 0 1px,#0000 1.4px),radial-gradient(circle at 42% 10%,#1726318c 0 1px,#0000 1.4px),radial-gradient(circle at 57% 24%,#172631 0 1px,#0000 1.6px),radial-gradient(circle at 78% 13%,#172631a8 0 1px,#0000 1.5px),radial-gradient(circle at 91% 38%,#147da6d1 0 1px,#0000 1.7px)}.portfolio-hero__grain{opacity:.055}.portfolio-hero__grain:after{border-color:#11192124;box-shadow:0 0 90px #11192112,0 -12px 70px #147da614}.portfolio-eyebrow,.portfolio-section-label{color:#52616b}.portfolio-eyebrow span{background:linear-gradient(90deg,#172631,#147da6);box-shadow:0 0 10px #147da638}.portfolio-hero h1 em,.portfolio-statement h2 em,.portfolio-approach h2 em,.portfolio-contact h2 em{background:linear-gradient(110deg,#101820 5%,#62717c 48%,#123d52 82%);-webkit-text-fill-color:transparent;text-shadow:none;-webkit-background-clip:text;background-clip:text}.portfolio-hero__intro,.portfolio-hero__footer{color:#1119219e}.portfolio-hero__index b{color:#111921}.portfolio-button{color:#f7f9fa;background:linear-gradient(135deg,#14242e,#24556c);box-shadow:0 12px 34px #123d5221}.portfolio-button:hover{color:#fff;background:#123d52;box-shadow:0 14px 40px #147da633}.portfolio-text-link span,.portfolio-arrow{color:#17394a}.city-art .map-label b{color:#f4f5f7}.portfolio-marquee{color:#f4f7f9;background:#14242e;border-color:#1119212e}.portfolio-marquee__track i{color:#7fd7f5}.portfolio-statement{color:#111921;background:radial-gradient(circle at 82% 22%,#147da61a,#0000 28%),#f7f9fae8;border-color:#1119211a}.portfolio-statement h2{color:#111921}.portfolio-statement .portfolio-section-label,.portfolio-text-link--dark{color:#53636e}.portfolio-statement__grid>div>p{color:#111921a3}.portfolio-text-link--dark{border-color:#11192152}.portfolio-work{background:#edf1f4eb}.portfolio-section-head>p:last-child{color:#11192194}.portfolio-project{border-color:#11192129}.portfolio-project__number{color:#f4f5f7}.portfolio-project__body>p{color:#526771}.portfolio-project__bottom>span{color:#1119219e}.portfolio-project__bottom b{color:#111921bd;border-color:#11192133}.portfolio-project__open{color:#f5f7f8;background:#14242e}.portfolio-project__open .portfolio-arrow{color:#f5f7f8}.portfolio-project:hover .portfolio-project__open{color:#fff;background:#147da6}.portfolio-approach{color:#111921;background:radial-gradient(circle at 15% 15%,#147da614,#0000 30%),#e7ecefeb;border-color:#1119211a}.portfolio-approach .portfolio-section-label{color:#53636e}.portfolio-approach h2,.portfolio-principles h3{color:#111921}.portfolio-principles{border-color:#11192130}.portfolio-principles article{border-color:#11192126}.portfolio-principles span{color:#147da6}.portfolio-principles p{color:#1119219e}.portfolio-faq{background:#f4f7f9e8;border-color:#1119211a}.portfolio-faq__intro h2{color:#111921}.portfolio-faq__intro h2 em,.portfolio-faq__list article>span{color:#147da6}.portfolio-faq__intro>p:last-child,.portfolio-faq__list p{color:#1119219e}.portfolio-faq__list{border-color:#11192130}.portfolio-faq__list article{border-color:#11192124}.portfolio-faq__list h3{color:#111921}.portfolio-contact{background:radial-gradient(circle at 78% 5%,#147da61c,#0000 31%),#e8edf0d6}.portfolio-contact__halo{border-color:#11192124;box-shadow:0 0 0 90px #11192103,0 0 0 180px #11192102,inset 0 0 120px #147da60f}.portfolio-contact__email{color:#111921;border-color:#111921a6}.portfolio-contact__phones>p,.portfolio-contact__meta{color:#11192187}.portfolio-contact__phone-grid article{background:linear-gradient(135deg,#ffffff85,#147da606);border-color:#11192129}.portfolio-contact__phone-grid article:hover{background:linear-gradient(135deg,#ffffffb8,#147da614);border-color:#147da67a}.portfolio-contact__line,.portfolio-contact__actions .portfolio-arrow{color:#126b8e}.portfolio-contact__number{color:#111921}.portfolio-contact__actions a{color:#111921ad;border-color:#11192138}.portfolio-contact__actions a:hover{color:#111921;border-color:#147da6}.portfolio-contact__meta{border-color:#11192126}.portfolio-progress{background:#11192114}.portfolio-progress span{background:linear-gradient(90deg,#17394a,#147da6,#17394a);box-shadow:0 0 12px #147da652}.digital-universe{opacity:.42;mix-blend-mode:multiply}}.portfolio-field{color:#f4f5f7;background:radial-gradient(circle at 82% 18%,#79cff517,#0000 28%),linear-gradient(#07090cf5,#030405f0);border-top:1px solid #ffffff1c;border-bottom:1px solid #ffffff1c;padding:140px 0 132px}.portfolio-field__intro{grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);align-items:center;gap:8%;display:grid}.portfolio-field__intro h2{color:#f4f5f7;letter-spacing:-.058em;max-width:610px;margin:34px 0 28px;font:400 clamp(44px,5.5vw,76px)/.95 Georgia,serif}.portfolio-field__intro h2 em{color:#0000;background:linear-gradient(112deg,#fff 3%,#9fdcf6 54%,#fff 92%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.portfolio-field__intro>div:first-child>p:last-child{color:#f4f5f794;max-width:520px;margin:0;font-size:14px;line-height:1.72}.field-console{background:#070a0d;border:1px solid #ffffff2e;border-radius:2px;min-width:0;overflow:hidden;box-shadow:0 38px 100px #0000007a,inset 0 0 70px #79cff506}.field-console__bar,.field-console__status{color:#f4f5f780;letter-spacing:.13em;background:#ffffff06;align-items:center;min-height:38px;padding:0 14px;font:8px/1 monospace;display:flex}.field-console__bar{border-bottom:1px solid #ffffff1a;justify-content:space-between}.field-console__bar>div{gap:5px;display:flex}.field-console__bar i{background:#f4f5f74d;border-radius:50%;width:5px;height:5px}.field-console__bar i:first-child{background:#79cff5;box-shadow:0 0 9px #79cff5cc}.field-console__bar b{color:#8edaf8;font-weight:500}.field-console__viewport{background:linear-gradient(#79cff50b 1px,#0000 1px) 0 0/40px 40px,linear-gradient(90deg,#79cff50b 1px,#0000 1px) 0 0/40px 40px,radial-gradient(circle at 61% 44%,#79cff517,#0000 25%),#06090b;min-height:390px;position:relative;overflow:hidden}.field-console__terrain{opacity:.42;background:repeating-radial-gradient(at 30% 58%,#0000 0 29px,#ffffff14 30px 31px,#0000 32px 50px),repeating-radial-gradient(at 78% 22%,#0000 0 37px,#79cff514 38px 39px,#0000 40px 65px);position:absolute;inset:-22% -8%;transform:rotate(-7deg)scale(1.05)}.field-console__survey{clip-path:polygon(7% 16%,72% 0,100% 25%,85% 92%,30% 100%,0 63%);filter:drop-shadow(0 0 24px #79cff526);background:linear-gradient(135deg,#79cff552,#79cff50f),repeating-linear-gradient(32deg,#0000 0 19px,#ffffff12 20px 21px);border:1px solid #79cff54d;width:46%;height:58%;animation:5s ease-in-out infinite field-survey-breathe;position:absolute;top:17%;left:13%}.field-console__survey:after{content:"";background:linear-gradient(105deg,#0000 35%,#ffffff38 50%,#0000 65%);animation:4.8s ease-in-out infinite field-survey-scan;position:absolute;inset:0;transform:translate(-110%)}.field-console__survey span{color:#f4f5f7bf;letter-spacing:.13em;font:8px/1 monospace;position:absolute;bottom:17px;left:18px}.field-console__route{transform-origin:0;background:linear-gradient(90deg,#0000,#dfe5e9 14%,#79cff5 72%,#0000);height:1px;position:absolute;box-shadow:0 0 8px #79cff5b3}.field-console__route--one{width:78%;top:70%;left:8%;transform:rotate(-17deg)}.field-console__route--two{opacity:.58;width:42%;top:28%;left:46%;transform:rotate(42deg)}.field-console__node{background:#f4f5f7;border:2px solid #081014;border-radius:50%;width:7px;height:7px;animation:2.8s ease-in-out infinite field-node-pulse;position:absolute;box-shadow:0 0 0 4px #79cff51f,0 0 14px #79cff5cc}.field-console__node--one{top:61%;left:26%}.field-console__node--two{animation-delay:.7s;top:50%;left:56%}.field-console__node--three{animation-delay:1.3s;top:37%;left:78%}.field-console__position{border:1px solid #79cff55c;border-radius:50%;place-items:center;width:58px;height:58px;animation:3s ease-out infinite field-position-ring;display:grid;position:absolute;top:47%;left:54%}.field-console__position:before{content:"";border:1px solid #79cff53d;border-radius:50%;position:absolute;inset:11px}.field-console__position span{background:#fff;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 6px #79cff526,0 0 21px #79cff5}.field-console__target{background:#040709d1;border:1px solid #ffffff42;border-radius:50%;place-items:center;width:38px;height:38px;animation:2.6s ease-in-out infinite field-target-pulse;display:grid;position:absolute;top:34%;left:76%;box-shadow:0 0 0 7px #ffffff06,0 0 22px #79cff529}.field-console__target span{color:#fff;font-size:18px;line-height:1;transform:translateY(-1px)}.field-console__target b{color:#f4f5f7b3;letter-spacing:.12em;width:max-content;font:7px/1 monospace;position:absolute;top:46px}.field-console__compass{background:radial-gradient(circle,#79cff514,#030507d1 65%);border:1px solid #fff3;border-radius:50%;place-items:center;width:82px;height:82px;display:grid;position:absolute;top:18px;right:18px;box-shadow:inset 0 0 0 8px #ffffff06}.field-console__compass:before,.field-console__compass:after{content:"";background:#ffffff24;position:absolute}.field-console__compass:before{width:1px;height:100%}.field-console__compass:after{width:100%;height:1px}.field-console__cardinal{z-index:2;color:#f4f5f77a;font:8px/1 monospace;position:absolute}.field-console__cardinal--n{color:#9edcf7;top:7px;left:50%;transform:translate(-50%)}.field-console__cardinal--e{top:50%;right:8px;transform:translateY(-50%)}.field-console__cardinal--s{bottom:7px;left:50%;transform:translate(-50%)}.field-console__cardinal--w{top:50%;left:8px;transform:translateY(-50%)}.field-console__compass i{z-index:2;transform-origin:50% 100%;background:linear-gradient(#9edcf7,#fff);width:2px;height:27px;animation:4s ease-in-out infinite field-compass-settle;position:absolute;bottom:40px;transform:rotate(37deg);box-shadow:0 0 9px #79cff5b3}.field-console__heading{color:#f4f5f7a8;letter-spacing:.1em;font:8px/1 monospace;position:absolute;bottom:-21px}.field-console__layers{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040709bd;border:1px solid #ffffff1f;gap:6px;padding:9px 10px;display:grid;position:absolute;top:14px;left:14px}.field-console__layers span{color:#f4f5f7a8;letter-spacing:.06em;align-items:center;gap:7px;font:8px/1 monospace;display:flex}.field-console__layers i{background:#79cff5;border-radius:50%;width:6px;height:6px;box-shadow:0 0 7px #79cff5bf}.field-console__layers span:last-child i{box-shadow:none;background:#f4f5f7}.field-console__coordinates{gap:5px;display:flex;position:absolute;bottom:13px;left:14px}.field-console__coordinates span{color:#f4f5f7a8;letter-spacing:.05em;background:#040709b3;border:1px solid #ffffff1c;padding:6px 8px;font:8px/1 monospace}.field-console__guidance{color:#f4f5f794;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.06em;background:#040709c7;border:1px solid #ffffff1f;grid-template-columns:1fr 1fr;gap:6px 10px;width:176px;padding:10px;font:7px/1.2 monospace;display:grid;position:absolute;bottom:14px;right:14px}.field-console__guidance strong{color:#fff;letter-spacing:.04em;grid-column:1/-1;font-size:11px;font-weight:500}.field-console__guidance b{color:#9edcf7;letter-spacing:.11em;grid-column:1/-1;font-weight:500}.field-console__status{white-space:nowrap;border-top:1px solid #ffffff1a;gap:18px;overflow:hidden}.field-console__status span{align-items:center;gap:6px;display:flex}.field-console__status i{background:#79cff5;border-radius:50%;width:5px;height:5px;box-shadow:0 0 8px #79cff5e6}.portfolio-capability-grid{border-top:1px solid #ffffff29;border-left:1px solid #ffffff1f;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:100px;display:grid}.portfolio-capability-grid article{background:linear-gradient(145deg,#ffffff06,#0000 56%);border-bottom:1px solid #ffffff1f;border-right:1px solid #ffffff1f;min-height:315px;padding:25px 25px 23px;transition:background .35s,transform .45s cubic-bezier(.16,1,.3,1)}.portfolio-capability-grid article:hover{z-index:1;background:linear-gradient(145deg,#79cff51a,#ffffff05 62%);transform:translateY(-5px)}.portfolio-capability__top{justify-content:space-between;align-items:center;display:flex}.portfolio-capability__top span,.portfolio-capability__top p{color:#91d6f3;letter-spacing:.11em;text-transform:uppercase;margin:0;font:8px/1 monospace}.portfolio-capability__top p{color:#f4f5f76e}.portfolio-capability-grid h3{color:#f4f5f7;letter-spacing:-.04em;max-width:310px;margin:54px 0 14px;font:400 27px/1.05 Georgia,serif}.portfolio-capability-grid article>p{color:#f4f5f78c;max-width:330px;margin:0;font-size:12px;line-height:1.65}.portfolio-capability-grid article>div:last-child{flex-wrap:wrap;gap:5px;margin-top:28px;display:flex}.portfolio-capability-grid article b{color:#f4f5f7a6;letter-spacing:.06em;text-transform:uppercase;border:1px solid #ffffff24;padding:5px 7px;font-size:8px;font-weight:400}@keyframes field-survey-breathe{50%{filter:drop-shadow(0 0 30px #79cff542)}}@keyframes field-survey-scan{0%,18%{transform:translate(-110%)}66%,to{transform:translate(110%)}}@keyframes field-node-pulse{50%{box-shadow:0 0 0 8px #79cff500,0 0 18px #79cff5eb}}@keyframes field-position-ring{0%{box-shadow:0 0 #79cff533}72%,to{box-shadow:0 0 0 22px #79cff500}}@keyframes field-target-pulse{50%{transform:scale(1.08);box-shadow:0 0 0 11px #79cff500,0 0 26px #79cff540}}@keyframes field-compass-settle{0%,to{transform:rotate(37deg)}40%{transform:rotate(46deg)}65%{transform:rotate(33deg)}}@media (max-width:980px){.portfolio-field__intro{grid-template-columns:1fr;gap:58px}.portfolio-field__intro>div:first-child{max-width:720px}.portfolio-capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.portfolio-field{padding:90px 0 82px}.portfolio-field__intro{gap:42px}.portfolio-field__intro h2{margin-top:26px;font-size:clamp(42px,13vw,61px)}.field-console__viewport{min-height:330px}.field-console__compass{width:70px;height:70px}.field-console__status{gap:12px;overflow-x:auto}.portfolio-capability-grid{grid-template-columns:1fr;margin-top:66px}.portfolio-capability-grid article{min-height:0;padding:23px 20px 26px}.portfolio-capability-grid h3{margin-top:40px}}@media (prefers-reduced-motion:reduce){.field-console__survey,.field-console__survey:after,.field-console__node,.field-console__position,.field-console__target,.field-console__compass i{animation:none!important}}@media (prefers-color-scheme:light){.portfolio-field{color:#111921;background:radial-gradient(circle at 82% 18%,#147da61c,#0000 29%),linear-gradient(#eef2f5f5,#e2e9edf0);border-color:#1119211c}.portfolio-field__intro h2,.portfolio-capability-grid h3{color:#111921}.portfolio-field__intro h2 em{background:linear-gradient(112deg,#101820 3%,#147da6 54%,#17394a 92%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.portfolio-field__intro>div:first-child>p:last-child,.portfolio-capability-grid article>p{color:#1119219e}.portfolio-capability-grid{border-color:#11192129}.portfolio-capability-grid article{background:linear-gradient(145deg,#ffffff6b,#0000 58%);border-color:#11192121}.portfolio-capability-grid article:hover{background:linear-gradient(145deg,#147da61f,#ffffff47 62%)}.portfolio-capability__top span{color:#147da6}.portfolio-capability__top p{color:#1119217a}.portfolio-capability-grid article b{color:#111921ab;border-color:#1119212b}}.portfolio-shell[data-locale=km]{font-family:Kantumruy Pro,Battambang,Noto Sans Khmer,sans-serif}.portfolio-shell[data-locale=km] .portfolio-hero h1,.portfolio-shell[data-locale=km] .portfolio-statement h2,.portfolio-shell[data-locale=km] .portfolio-field__intro h2,.portfolio-shell[data-locale=km] .portfolio-project h3,.portfolio-shell[data-locale=km] .portfolio-capability-grid h3,.portfolio-shell[data-locale=km] .portfolio-approach h2,.portfolio-shell[data-locale=km] .portfolio-principles h3,.portfolio-shell[data-locale=km] .portfolio-faq h2,.portfolio-shell[data-locale=km] .portfolio-faq h3,.portfolio-shell[data-locale=km] .portfolio-contact h2{letter-spacing:0;font-family:Battambang,Kantumruy Pro,Noto Serif Khmer,serif}.portfolio-shell[data-locale=km] .portfolio-hero h1{font-size:clamp(43px,5.05vw,74px);line-height:1.25}.portfolio-shell[data-locale=km] .portfolio-statement h2,.portfolio-shell[data-locale=km] .portfolio-field__intro h2,.portfolio-shell[data-locale=km] .portfolio-approach h2,.portfolio-shell[data-locale=km] .portfolio-faq h2{line-height:1.28}.portfolio-shell[data-locale=km] .portfolio-contact h2{line-height:1.27}.portfolio-shell[data-locale=km] .portfolio-project h3,.portfolio-shell[data-locale=km] .portfolio-capability-grid h3,.portfolio-shell[data-locale=km] .portfolio-principles h3,.portfolio-shell[data-locale=km] .portfolio-faq h3{line-height:1.4}.portfolio-shell[data-locale=km] .portfolio-eyebrow,.portfolio-shell[data-locale=km] .portfolio-section-label,.portfolio-shell[data-locale=km] .portfolio-project__body>p,.portfolio-shell[data-locale=km] .portfolio-marquee__track,.portfolio-shell[data-locale=km] .portfolio-capability__top p,.portfolio-shell[data-locale=km] .portfolio-contact__line{letter-spacing:.03em;text-transform:none}.portfolio-shell[data-locale=km] .portfolio-marquee__track{font-family:Kantumruy Pro,Battambang,sans-serif;font-size:13px;line-height:1.4}.portfolio-shell[data-locale=km] .portfolio-hero__intro,.portfolio-shell[data-locale=km] .portfolio-statement__grid>div>p,.portfolio-shell[data-locale=km] .portfolio-field__intro>div:first-child>p:last-child,.portfolio-shell[data-locale=km] .portfolio-project__bottom>span,.portfolio-shell[data-locale=km] .portfolio-capability-grid article>p,.portfolio-shell[data-locale=km] .portfolio-principles p,.portfolio-shell[data-locale=km] .portfolio-faq__intro>p:last-child,.portfolio-shell[data-locale=km] .portfolio-faq__list p{line-height:1.9}@media (max-width:760px){.portfolio-shell[data-locale=km] .portfolio-hero h1{font-size:clamp(39px,11.5vw,57px);line-height:1.3}.portfolio-shell[data-locale=km] .portfolio-statement h2,.portfolio-shell[data-locale=km] .portfolio-field__intro h2,.portfolio-shell[data-locale=km] .portfolio-approach h2,.portfolio-shell[data-locale=km] .portfolio-contact h2{font-size:clamp(36px,10.5vw,52px)}}@media (prefers-color-scheme:light){.portfolio-locale{background:#ffffff61;border-color:#1119212b}.portfolio-locale button{color:#1119217a}.portfolio-locale button[aria-pressed=true]{color:#111921}.portfolio-locale span{background:#1119212b}}html{scroll-behavior:smooth;scroll-padding-top:76px}.portfolio-hero{flex-direction:column;justify-content:center;min-height:100svh;padding-bottom:54px;display:flex}.portfolio-statement{box-sizing:border-box;align-items:center;min-height:88svh;display:flex}.portfolio-chapters{z-index:30;gap:11px;display:grid;position:fixed;top:50%;right:clamp(18px,2.3vw,38px);transform:translateY(-50%)}.portfolio-chapters:before{content:"";background:#f4f5f726;width:1px;position:absolute;top:5px;bottom:5px;right:3px}.portfolio-chapters a{color:#f4f5f761;justify-content:flex-end;align-items:center;gap:11px;min-height:12px;text-decoration:none;display:flex;position:relative}.portfolio-chapters a:after{content:"";z-index:1;background:#07090b;border:1px solid;border-radius:50%;width:7px;height:7px;transition:transform .35s cubic-bezier(.16,1,.3,1),background .35s,color .35s;position:relative}.portfolio-chapters span{letter-spacing:.08em;opacity:0;font:8px/1 monospace;transition:opacity .3s,transform .3s;transform:translate(7px)}.portfolio-chapters b{color:#f4f5f7;opacity:0;pointer-events:none;letter-spacing:.05em;background:#030405c7;border:1px solid #f4f5f71c;width:max-content;padding:5px 7px;font:500 9px/1 Kantumruy Pro,Helvetica Neue,sans-serif;transition:opacity .25s,transform .25s;position:absolute;right:25px;transform:translate(8px)}.portfolio-chapters a:hover b,.portfolio-chapters a:focus-visible b{opacity:1;transform:translate(0)}.portfolio-chapters a.is-active{color:#9fdcf6}.portfolio-chapters a.is-active:after{background:#f4f5f7;transform:scale(1.08);box-shadow:0 0 0 4px #79cff521,0 0 14px #79cff59e}.portfolio-chapters a.is-active span{opacity:1;transform:translate(0)}@media (min-width:961px){.portfolio-work{padding-bottom:8svh}.portfolio-project{border-top:0;min-height:112svh;padding-top:8svh;position:relative}.portfolio-project+.portfolio-project{margin-top:0}.portfolio-project__image{border:1px solid #f4f5f71f;height:76svh;position:sticky;top:12svh;box-shadow:0 35px 100px #00000059}.portfolio-project__image:after{background:linear-gradient(#0304050a 34%,#030405d1 100%),linear-gradient(90deg,#03040559,#0000 42%)}.portfolio-project__body{z-index:4;box-sizing:border-box;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:calc(100% - 72px);transform:translateY(var(--scene-offset,0px));background:linear-gradient(105deg,#030405e8,#030405a1);border:1px solid #f4f5f721;margin:-184px 36px 0;padding:28px 30px 32px;transition:transform .15s linear;position:relative}}@media (prefers-color-scheme:light){.portfolio-chapters:before{background:#11192129}.portfolio-chapters a{color:#11192159}.portfolio-chapters a:after{background:#edf1f4}.portfolio-chapters b{color:#111921;background:#f7f9fae0;border-color:#1119211f}.portfolio-chapters a.is-active{color:#147da6}.portfolio-chapters a.is-active:after{background:#111921;box-shadow:0 0 0 4px #147da61f,0 0 14px #147da666}@media (min-width:961px){.portfolio-project__body{background:linear-gradient(105deg,#f4f7f9f0,#f4f7f9b8);border-color:#11192124;box-shadow:0 20px 70px #1c34411c}}}@media (max-width:960px){.portfolio-chapters{display:none}.portfolio-hero{min-height:100svh}.portfolio-statement{min-height:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portfolio-chapters *,.portfolio-project__body{transition:none!important;transform:none!important}}.portfolio-project[data-feature=iot] .portfolio-project__image img{object-position:center 52%;filter:saturate(.9)contrast(1.04)brightness(.9)}.portfolio-project[data-feature=iot]:hover .portfolio-project__image img{filter:saturate()contrast(1.06)brightness(.96)}.portfolio-project[data-feature=iot] .project-feature--iot{opacity:.82;width:clamp(230px,30vw,440px);bottom:28px;left:auto;right:30px}@media (prefers-color-scheme:light) and (min-width:961px){.portfolio-project__body{color:#f4f5f7;background:linear-gradient(105deg,#05080aed,#070c0fc2);border-color:#9fdcf633;box-shadow:0 24px 80px #11222b3d}.portfolio-project h3{color:#f4f5f7}.portfolio-project__body>p{color:#9fdcf6}.portfolio-project__bottom>span{color:#f4f5f7ab}.portfolio-project__bottom b{color:#f4f5f7c7;border-color:#f4f5f733}}@media (max-width:760px){.portfolio-project[data-feature=iot] .project-feature--iot{width:58%;bottom:15px;right:16px}}
