.scroll-progress{position: fixed;top: 0;left: 0;height: 3px;width: 100%;transform: scaleX(0);transform-origin: 0 50%;background: linear-gradient(90deg,var(--teal),#38e0ef);z-index: 300;pointer-events: none;box-shadow: 0 0 14px rgba(0,176,192,0.6);}  [data-reveal]{transform: translateY(26px) scale(0.99);transition: opacity 0.75s var(--ease),transform 0.75s var(--ease);}[data-reveal].in{transform: none;}  .hero,.page-hero,.cta-band{--gx: 50%;--gy: 0%;}.hero::before{background: radial-gradient(620px 360px at var(--gx,78%) var(--gy,-10%),rgba(0,176,192,0.34),transparent 60%),radial-gradient(720px 520px at 8% 118%,rgba(0,176,192,0.13),transparent 60%),linear-gradient(180deg,#082025,#0a262c 60%,#082025) !important;transition: background 0.25s ease-out;}  .hero .aurora,.page-hero .aurora{position: absolute;inset: 0;z-index: 1;overflow: hidden;pointer-events: none;}.hero .aurora span,.page-hero .aurora span{position: absolute;border-radius: 50%;filter: blur(60px);opacity: 0.5;mix-blend-mode: screen;}.hero .aurora span:nth-child(1),.page-hero .aurora span:nth-child(1){width: 420px;height: 420px;left: -80px;top: -60px;background: radial-gradient(circle,rgba(0,176,192,0.55),transparent 70%);animation: drift1 16s ease-in-out infinite;}.hero .aurora span:nth-child(2),.page-hero .aurora span:nth-child(2){width: 340px;height: 340px;right: -40px;top: 20%;background: radial-gradient(circle,rgba(56,224,239,0.4),transparent 70%);animation: drift2 20s ease-in-out infinite;}.hero .aurora span:nth-child(3),.page-hero .aurora span:nth-child(3){width: 300px;height: 300px;left: 40%;bottom: -120px;background: radial-gradient(circle,rgba(0,140,160,0.45),transparent 70%);animation: drift3 18s ease-in-out infinite;}@keyframes drift1{0%,100%{transform: translate(0,0) scale(1);}50%{transform: translate(60px,40px) scale(1.12);}}@keyframes drift2{0%,100%{transform: translate(0,0) scale(1);}50%{transform: translate(-50px,30px) scale(1.08);}}@keyframes drift3{0%,100%{transform: translate(0,0) scale(1);}50%{transform: translate(30px,-50px) scale(1.15);}}@media (prefers-reduced-motion: reduce){.hero .aurora span,.page-hero .aurora span{animation: none;}}  .page-hero .ph-inner{position: relative;z-index: 2;}  .hero::after{mix-blend-mode: overlay;}  .hero h1 .hl{background: linear-gradient(120deg,#2fe0ef 0%,var(--teal) 55%,#0fb6c6 100%);-webkit-background-clip: text;background-clip: text;-webkit-text-fill-color: transparent;color: transparent;}  .hero-terminal{position: relative;z-index: 2;max-width: 620px;margin: clamp(34px,5vw,52px) auto 0;text-align: left;background: rgba(6,24,28,0.82);border: 1px solid rgba(255,255,255,0.12);border-radius: 14px;box-shadow: 0 30px 80px -30px rgba(0,0,0,0.7),inset 0 1px 0 rgba(255,255,255,0.06);backdrop-filter: blur(8px);overflow: hidden;}.hero-terminal .term-bar{display: flex;align-items: center;gap: 8px;padding: 12px 16px;border-bottom: 1px solid rgba(255,255,255,0.08);background: rgba(255,255,255,0.03);}.hero-terminal .term-bar i{width: 11px;height: 11px;border-radius: 50%;display: block;}.hero-terminal .term-bar i:nth-child(1){background: #ff5f57;}.hero-terminal .term-bar i:nth-child(2){background: #febc2e;}.hero-terminal .term-bar i:nth-child(3){background: #28c840;}.hero-terminal .term-bar span{margin-left: 8px;font-family: var(--f-mono);font-size: 12px;color: #7fa3a9;letter-spacing: 0.04em;}.hero-terminal .term-body{padding: 18px 20px 20px;font-family: var(--f-mono);font-size: 13.5px;line-height: 1.85;color: #c7d8db;min-height: 196px;}.hero-terminal .tl{display: block;white-space: pre-wrap;opacity: 0;transform: translateY(4px);}.hero-terminal .tl.show{opacity: 1;transform: none;transition: opacity 0.3s ease,transform 0.3s ease;}.hero-terminal .tl .pmt{color: var(--teal);}.hero-terminal .tl .ok{color: #46d17f;}.hero-terminal .tl .dim{color: #6d8a90;}.hero-terminal .tl .tag{color: #38e0ef;}.hero-terminal .tl .num{color: #ffce6b;}.hero-terminal .caret{display: inline-block;width: 8px;height: 16px;vertical-align: -3px;background: var(--teal);margin-left: 2px;animation: blink 1s steps(1) infinite;}@keyframes blink{50%{opacity: 0;}}@media (prefers-reduced-motion: reduce){.hero-terminal .tl{opacity: 1;transform: none;}.hero-terminal .caret{animation: none;}}  .card,.proj-cat,.step,.t-card{position: relative;transition: transform 0.4s var(--ease),box-shadow 0.4s var(--ease),border-color 0.3s;}.card::after,.proj-cat::after,.step::after{content: "";position: absolute;inset: 0;border-radius: inherit;padding: 1px;pointer-events: none;opacity: 0;transition: opacity 0.35s ease;background: radial-gradient(220px circle at var(--mx,50%) var(--my,0%),rgba(0,176,192,0.55),transparent 60%);-webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite: xor;mask-composite: exclude;}.card:hover::after,.proj-cat:hover::after,.step:hover::after{opacity: 1;}.card:hover,.proj-cat:hover,.step:hover{transform: translateY(-6px);}  @media (hover: none){.card.touch-active,.proj-cat.touch-active,.step.touch-active{--mx: 50%;--my: 38%;}.card.touch-active::after,.proj-cat.touch-active::after,.step.touch-active::after{opacity: 1;}.card.touch-active,.proj-cat.touch-active,.step.touch-active{transform: translateY(-6px);}  .btn:active{transform: scale(0.97);}.card:active,.proj-cat:active,.step:active{transform: translateY(-3px) scale(0.997);}}.t-card{transition: transform 0.4s var(--ease),box-shadow 0.4s var(--ease);}.t-card:hover{transform: translateY(-4px);box-shadow: var(--shadow-card);}  .feature-item .ic,.point .p-ic{transition: transform 0.35s var(--ease),background 0.3s,color 0.3s;}.feature-item:hover .ic,.point:hover .p-ic{transform: translateY(-3px) rotate(-4deg);}  .btn-teal,.btn-white{position: relative;overflow: hidden;}.btn-teal::after,.btn-white::after{content: "";position: absolute;top: 0;left: -120%;width: 70%;height: 100%;background: linear-gradient(100deg,transparent,rgba(255,255,255,0.35),transparent);transform: skewX(-18deg);transition: left 0.6s var(--ease);}.btn-teal:hover::after,.btn-white:hover::after{left: 130%;}  .eco-grid .chip{transition: transform 0.25s var(--ease),border-color 0.25s,color 0.25s,background 0.25s;}.eco-grid .chip:hover{transform: translateY(-3px);border-color: var(--teal);color: var(--teal-700);background: var(--teal-050);}  .sec-head .eyebrow::before,.sec-head .eyebrow::after{content: "";width: 26px;height: 1px;background: currentColor;opacity: 0.45;}  .hb-shot img{transition: transform 0.45s var(--ease),box-shadow 0.45s var(--ease);}.hb-shot:hover img{transform: translateY(-8px) scale(1.02);box-shadow: 0 30px 56px -26px rgba(8,32,37,0.55);}  .constellation{position: relative;max-width: 940px;margin: clamp(12px,3vw,36px) auto clamp(28px,4vw,44px);}.constellation svg{width: 100%;height: auto;display: block;overflow: visible;}.cl-link{stroke: var(--line-2);stroke-width: 1.5;fill: none;}.cl-flow{stroke: var(--teal);stroke-width: 2.5;fill: none;stroke-linecap: round;stroke-dasharray: 16 520;stroke-dashoffset: 536;animation: clflow 2.8s linear infinite;filter: drop-shadow(0 0 4px rgba(0,176,192,0.5));}.cl-flow.d1{animation-delay: 0s;}.cl-flow.d2{animation-delay: 0.4s;}.cl-flow.d3{animation-delay: 0.8s;}.cl-flow.d4{animation-delay: 1.2s;}.cl-flow.d5{animation-delay: 1.6s;}.cl-flow.d6{animation-delay: 2.0s;}@keyframes clflow{to{stroke-dashoffset: 0;}}.cl-node{fill: #fff;stroke: var(--line-2);stroke-width: 1.5;}.cl-node-ic{fill: var(--teal-050);stroke: color-mix(in srgb,var(--teal) 22%,#fff);}.cl-label{font-family: var(--f-mono);font-size: 12.5px;fill: var(--ink);font-weight: 500;}.cl-center circle{fill: var(--dark);stroke: var(--teal);stroke-width: 2;}.cl-center .pulse{fill: none;stroke: var(--teal);stroke-width: 2;transform-origin: center;transform-box: fill-box;animation: clpulse 3s ease-out infinite;}@keyframes clpulse{0%{opacity: 0.6;transform: scale(1);}100%{opacity: 0;transform: scale(2.1);}}.cl-center text{font-family: var(--f-head);font-weight: 700;fill: #fff;}.cl-center text.sub{font-family: var(--f-mono);font-weight: 400;fill: var(--teal);font-size: 11px;letter-spacing: 0.08em;}@media (prefers-reduced-motion: reduce){.cl-flow,.cl-center .pulse{animation: none;}.cl-flow{stroke-dashoffset: 0;stroke-dasharray: none;opacity: 0.5;}}@media (max-width: 620px){.cl-label{font-size: 14px;}}  .eco-hub{display: none;}@media (max-width: 620px){.constellation{display: none;}.eco-hub{display: grid;place-items: center;position: relative;width: 104px;height: 104px;margin: 6px auto 26px;}.eco-hub::before{content: "";position: absolute;inset: 0;border-radius: 50%;background: var(--dark);border: 2px solid var(--teal);box-shadow: 0 10px 30px rgba(0,176,192,0.25);}.eco-hub img{position: relative;z-index: 2;width: 42px;height: auto;}.eco-hub-ring{position: absolute;inset: 0;border-radius: 50%;border: 2px solid var(--teal);transform-origin: center;animation: clpulse 3s ease-out infinite;}.eco-hub-ring.r2{animation-delay: 1.5s;}@media (prefers-reduced-motion: reduce){.eco-hub-ring{animation: none;opacity: 0.35;}}  .eco-grid{gap: 12px;}.eco-grid .chip{font-size: 15px;padding: 12px 18px;}}  .steps{position: relative;}.pipeline-line{position: absolute;left: 0;right: 0;top: 50%;height: 2px;z-index: 0;pointer-events: none;}.pipeline-line .track{position: absolute;inset: 0;background: var(--line-2);}.pipeline-line .pkt{position: absolute;top: -3px;left: 0;width: 46px;height: 8px;border-radius: 8px;background: linear-gradient(90deg,transparent,var(--teal),transparent);filter: drop-shadow(0 0 6px rgba(0,176,192,0.6));animation: pktmove 3.4s linear infinite;}@keyframes pktmove{0%{left: -8%;}100%{left: 100%;}}.steps .step{position: relative;z-index: 1;}.steps .step .s-n{display: inline-grid;place-items: center;width: 34px;height: 34px;border-radius: 50%;background: var(--teal-050);color: var(--teal-700);border: 1px solid color-mix(in srgb,var(--teal) 22%,#fff);font-size: 12px;margin-bottom: 4px;}@media (prefers-reduced-motion: reduce){.pipeline-line .pkt{animation: none;opacity: 0;}}@media (max-width: 860px){.pipeline-line{display: none;}}  .cf{position: relative;margin-top: clamp(30px,4vw,52px);}  .cf-scene{position: relative;width: 100%;height: clamp(500px,54vw,580px);perspective: 5000px;overflow: hidden;  cursor: grab;touch-action: pan-y;-webkit-user-select: none;-moz-user-select: none;user-select: none;-webkit-tap-highlight-color: transparent;}.cf-scene:active{cursor: grabbing;}  .cf-hint{position: absolute;left: 50%;bottom: 14px;transform: translateX(-50%) translateY(8px);display: inline-flex;align-items: center;gap: 8px;padding: 8px 15px;font-family: var(--f-mono);font-size: 12.5px;letter-spacing: 0.04em;color: #fff;background: rgba(8,32,37,0.72);border: 1px solid rgba(255,255,255,0.14);border-radius: 999px;backdrop-filter: blur(6px);opacity: 0;pointer-events: none;transition: opacity 0.5s var(--ease),transform 0.5s var(--ease);z-index: 3;}.cf-hint.show{opacity: 1;transform: translateX(-50%) translateY(0);animation: cfHintBob 2.4s ease-in-out 0.6s infinite;}.cf-hint svg{opacity: 0.85;}@keyframes cfHintBob{0%,100%{margin-left: 0;}25%{margin-left: -7px;}75%{margin-left: 7px;}}@media (prefers-reduced-motion: reduce){.cf-hint.show{animation: none;}}.cf-ring{position: absolute;left: 0;top: 0;right: 0;bottom: 0;transform-style: preserve-3d;will-change: transform;}.cf .t-card{position: absolute;left: 50%;top: 50%;width: 320px;height: 384px;  margin-left: -160px;margin-top: -192px;padding: 0;border: 0;background: none;box-shadow: none;transform-style: preserve-3d;transition: none !important;  will-change: transform,opacity;}.cf .t-card:hover{transform: none;box-shadow: none;}   .cf-wall{position: absolute;left: 50%;top: 50%;border-radius: 22px;background: linear-gradient(158deg,var(--teal-700) 0%,var(--dark-2) 62%,var(--dark) 100%);box-shadow: inset 0 0 70px rgba(0,0,0,0.28),inset 0 1px 0 rgba(255,255,255,0.06);will-change: transform,opacity;pointer-events: none;backface-visibility: hidden;}  .cf-floor{position: absolute;left: 50%;top: 50%;clip-path: polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%);background: radial-gradient(circle at 50% 42%,var(--teal-700) 0%,var(--dark-2) 55%,var(--dark) 100%);box-shadow: 0 0 80px rgba(9,124,137,0.35);opacity: 0;  will-change: transform,opacity;pointer-events: none;}  .cf .t-face{position: absolute;inset: 0;-webkit-backface-visibility: hidden;backface-visibility: hidden;background: #fff;border: 1px solid var(--line);border-radius: var(--radius-lg);box-shadow: 0 26px 60px -30px rgba(10,30,45,0.4);padding: 18px 22px 18px;display: flex;flex-direction: column;}.cf .t-front{justify-content: flex-start;}.cf .t-back{transform: rotateY(180deg);align-items: center;justify-content: center;gap: 16px;background: linear-gradient(160deg,#fff,#f3f7f9);}.cf .t-back-logo{width: 44%;max-width: 130px;height: auto;opacity: 0.9;}.cf .t-back-name{font-family: var(--f-head);font-weight: 700;font-size: 15px;color: var(--ink);}  .cf .ta.has-logo{background: #fff;border: 1px solid var(--line);overflow: hidden;padding: 0;color: transparent;}.cf .ta.has-logo img{width: 100%;height: 100%;object-fit: contain;padding: 5px;box-sizing: border-box;}  .cf-rug{position: absolute;left: 50%;top: 50%;width: 300px;height: 300px;margin-left: -150px;margin-top: -150px;object-fit: contain;transform: translateY(260px) rotateX(90deg);transform-origin: center center;opacity: 0;  pointer-events: none;}.cf .t-face blockquote{font-size: 15px;line-height: 1.5;}.cf .t-face figcaption{margin-top: auto;padding-top: 12px;}.cf .t-front blockquote::before{content: none;}  .cf .t-front::before{content: "\201C";position: absolute;top: 2px;left: 18px;font-family: Georgia,serif;font-size: 40px;line-height: 1;color: color-mix(in srgb,var(--teal) 32%,#fff);pointer-events: none;}.cf .t-front blockquote{margin-top: 20px;}@media (max-width: 620px){  .cf{overflow-x: clip;  background: radial-gradient(120% 78% at 50% 42%,#eff9fb 0%,transparent 68%);border-radius: 26px;padding: 8px 0 2px;}.cf-flow{position: relative;width: 100%;perspective: 1500px;touch-action: pan-y;cursor: grab;overflow: visible;-webkit-user-select: none;-moz-user-select: none;user-select: none;-webkit-tap-highlight-color: transparent;}.cf-flow:active{cursor: grabbing;}.cf-flow::before{content: "";position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);width: 92%;height: 82%;border-radius: 44px;background: radial-gradient(58% 58% at 50% 44%,rgba(0,176,192,0.16),transparent 72%);filter: blur(8px);z-index: 0;pointer-events: none;}.cf-flow .t-card{position: absolute;left: 50%;top: 50%;height: auto !important;  min-height: 0 !important;margin-top: 0 !important;  margin-bottom: 0 !important;  padding: 0;border: 0;background: none;box-shadow: none;transform-style: preserve-3d;backface-visibility: visible;will-change: transform,opacity;transition: none;}.cf-flow .t-face.t-front{position: relative;inset: auto;width: 100%;height: auto !important;min-height: 0;display: flex;flex-direction: column;border: 1px solid var(--line);border-radius: var(--radius-lg);box-shadow: 0 34px 66px -30px rgba(8,32,37,0.55);padding: 22px 20px 18px;background: #fff;overflow: visible;}}.cf-flow .t-back{display: none;}.cf-flow .t-front blockquote{font-size: 13.5px;line-height: 1.5;margin-top: 16px;}.cf-dots{display: flex;justify-content: center;align-items: center;gap: 8px;margin-top: 26px;}.cf-dot{width: 8px;height: 8px;border-radius: 50%;background: var(--line-2);border: 0;padding: 0;cursor: pointer;transition: width 0.28s var(--ease),background 0.28s var(--ease),border-radius 0.28s var(--ease);}.cf-dot.active{background: var(--teal);width: 22px;border-radius: 4px;}}