.web-page{background:#05090f;overflow-x:hidden}
.web-shell{max-width:1800px;margin:0 auto;position:relative;isolation:isolate;overflow:clip;background:radial-gradient(ellipse at 78% 7%,#4c241538,transparent 34%),#05090f}
.web-page .main-nav a{display:inline-block;position:relative}
.web-page .main-nav a[aria-current="page"]{color:#fff}
.web-page .main-nav a[aria-current="page"]:after{content:"";position:absolute;left:calc(50% - 3px);bottom:0;width:6px;height:6px;border-radius:50%;background:#ffa05f;box-shadow:0 0 16px #ff7b35}
.web-page .main-nav a:hover{color:#fff}
.web-container{width:min(100% - 2*clamp(26px,5vw,88px),1440px);margin-inline:auto}
.web-hero{position:relative;isolation:isolate;min-height:680px;display:flex;align-items:center;padding:45px clamp(26px,5vw,88px) 90px;overflow:hidden;border-bottom:1px solid #ffc19225}
.web-hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 79% 44%,#ab4e2422,transparent 42%),linear-gradient(90deg,#05090f 0%,#05090ff0 31%,#05090f61 59%,#05090f14 100%)}
@media(min-width:1801px){
  .web-shell{background:linear-gradient(90deg,#05090f,transparent 8%,transparent 92%,#05090f),radial-gradient(ellipse at 78% 7%,#4c241538,transparent 34%),#05090f}
  .web-hero:before{background:linear-gradient(90deg,#05090f,transparent 8%,transparent 92%,#05090f),radial-gradient(ellipse at 79% 44%,#ab4e2422,transparent 42%),linear-gradient(90deg,#05090f 0%,#05090ff0 31%,#05090f61 59%,#05090f14 100%)}
}
.web-hero-art{position:absolute;z-index:-2;inset:0;pointer-events:none;background-image:url('assets/web-portal-v1.webp');background-repeat:no-repeat;background-size:auto 1250px;background-position:right top;opacity:.92;mask-image:linear-gradient(180deg,#000 0%,#000 72%,transparent 98%)}
.web-hero-copy{position:relative;z-index:1;width:min(820px,68%);padding:10px 0 0}
.web-kicker,.web-label{text-transform:uppercase;letter-spacing:.22em;font-size:12px;line-height:1.5;font-weight:650}
.web-kicker{display:flex;align-items:center;gap:13px;margin:0 0 30px;color:#ffd7bc}
.web-kicker-mark{display:block;width:7px;height:7px;border-radius:50%;background:#ff9960;box-shadow:0 0 18px #ff7a39}
.web-hero h1{font-size:clamp(56px,5.45vw,88px);line-height:1.06;letter-spacing:-.052em;text-wrap:balance;text-shadow:0 4px 32px #02050aca}
.web-hero h1 span{color:#ffb27c;display:block}
.web-hero-lead{max-width:640px;color:#d7e1f1;font-size:clamp(18px,1.55vw,22px);line-height:1.65;margin:30px 0 0;text-shadow:0 2px 15px #01050adc}
.web-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:38px}
.web-hero-actions .primary-button,.web-contact .primary-button{font-size:16px;padding:19px 29px}
.web-hero-actions .text-link{font-size:15px}
.web-hero-meta{display:flex;gap:0;flex-wrap:wrap;margin-top:62px;color:#f1dbcd;font-size:12px;letter-spacing:.15em;text-transform:uppercase;text-shadow:0 1px 8px #000,0 0 20px #000}
.web-hero-meta span+span:before{content:"/";color:#b48b74;margin:0 16px}
.web-hero-index{position:absolute;right:clamp(26px,5vw,88px);bottom:38px;display:flex;align-items:center;gap:16px;color:#c8a992;font-size:10px;letter-spacing:.2em}
.web-index-line{width:58px;height:1px;background:#ffad7066}
.web-label{color:#ffa269;margin:0 0 24px}
.web-services{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(54px,8vw,140px);padding-block:135px 150px}
.web-section-intro{max-width:520px}
.web-section-intro h2,.web-featured h2,.web-process h2,.web-contact h2{font-size:clamp(42px,4.4vw,69px);line-height:1.13;letter-spacing:-.045em;margin:0;font-weight:750;text-wrap:balance}
.web-section-intro h2 em,.web-featured h2 em,.web-process h2 em,.web-contact h2 em{font-style:normal;color:#ffb27c}
.web-section-intro>p:last-child,.web-featured-copy>p:last-child,.web-process-heading>p:last-child,.web-contact-copy>p:last-child{font-size:18px;line-height:1.75;color:#d3c6c0;max-width:590px;margin:28px 0 0}
.web-service-list{border-top:1px solid #ffb17a3d}
.web-service{display:grid;grid-template-columns:42px minmax(0,1fr);gap:20px;align-items:start;padding:29px 0 30px;border-bottom:1px solid #ffb17a2a}
.web-service-number{color:#ffad75;font-size:13px;letter-spacing:.1em;padding-top:7px}
.web-service h3{font-size:22px;letter-spacing:-.02em;margin:0 0 10px;line-height:1.3;font-weight:650}
.web-service p{font-size:15px;line-height:1.7;color:#cfc1bb;max-width:500px;margin:0}
.web-featured{position:relative;isolation:isolate;overflow:hidden;margin:0 clamp(15px,2vw,32px);border:1px solid #ffa56b31;border-radius:20px;background:radial-gradient(ellipse at 88% 22%,#753a206b,transparent 48%),linear-gradient(135deg,#1a1520,#100f18 58%,#0d0c14)}
.web-featured:before{content:"";position:absolute;z-index:-1;inset:0;opacity:.36;pointer-events:none;background-image:linear-gradient(#ff9a5a14 1px,transparent 1px),linear-gradient(90deg,#ff9a5a14 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(90deg,transparent,#000 45%,#000)}
.web-featured:after{content:"";position:absolute;top:-155px;right:7%;width:390px;height:390px;border:1px solid #ffb27a26;border-radius:50%;box-shadow:0 0 0 70px #ffb27a08,0 0 0 140px #ffb27a05;pointer-events:none}
.web-featured-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.96fr);align-items:center;gap:clamp(50px,9vw,135px);padding-block:105px 110px}
.web-featured-copy{max-width:630px}
.web-featured h2{font-size:clamp(39px,4.15vw,64px)}
.web-project-card{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:305px;padding:30px;border:1px solid #ffb27a66;border-radius:16px;background:radial-gradient(ellipse at 90% 95%,#dc6a2a42,transparent 63%),linear-gradient(145deg,#201b1f,#100f17 74%);box-shadow:0 20px 65px #0006,inset 0 1px #ffc89b25;overflow:hidden;transition:border-color .3s,transform .3s,box-shadow .3s}
.web-project-card:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(135deg,transparent 46%,#ffa36112 50%,transparent 54%),linear-gradient(140deg,transparent 63%,#ffa36118 67%,transparent 71%)}
.web-project-card:hover,.web-project-card:focus-visible{border-color:#ffc18f;transform:translateY(-5px);box-shadow:0 28px 75px #0008,0 0 32px #ff8b5422}
.web-project-kicker{font-size:11px;letter-spacing:.2em;color:#ffbd93}
.web-project-kicker span{padding-inline:8px;color:#a77a5e}
.web-project-card strong{font-size:clamp(25px,2.4vw,38px);font-weight:750;letter-spacing:-.04em;line-height:1.15;overflow-wrap:anywhere}
.web-project-action{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:20px;border-top:1px solid #ffb27a3a;color:#e8d5c8;font-size:14px}
.web-project-action span{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid #ffb27a66;border-radius:50%;font-size:21px;transition:background .3s,transform .3s}
.web-project-card:hover .web-project-action span,.web-project-card:focus-visible .web-project-action span{background:#ff8b5433;transform:rotate(35deg)}
.web-process{padding-block:145px 140px}
.web-process-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.55fr);gap:25px 90px;align-items:end}
.web-process-heading .web-label{grid-column:1 / -1;margin-bottom:0}
.web-process-heading h2{max-width:760px}
.web-process-heading>p:last-child{margin:0 0 3px;font-size:17px}
.web-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:72px;border-top:1px solid #ffb27a3a}
.web-step{position:relative;padding:32px 36px 0 0}
.web-step:not(:first-child){padding-left:34px;border-left:1px solid #ffc19225}
.web-step:before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:#ffae74;box-shadow:0 0 16px #ff884b}
.web-step:not(:first-child):before{left:34px}
.web-step-count{color:#ffab72;letter-spacing:.14em;font-size:12px}
.web-step h3{font-size:27px;font-weight:650;letter-spacing:-.025em;margin:22px 0 13px}
.web-step p{font-size:15px;line-height:1.75;color:#d0c0b9;max-width:350px;margin:0}
.web-contact{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:end;justify-content:space-between;gap:45px;padding:76px 68px;margin-bottom:58px;border:1px solid #ff8a542e;border-radius:20px;background:linear-gradient(115deg,#111721,#0b1019 72%)}
.web-contact-glow{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 74% 135%,#ff571a47,transparent 55%),radial-gradient(ellipse at 10% -25%,#ff8a4a18,transparent 60%)}
.web-contact .web-label{color:#ffab88}
.web-contact h2{max-width:780px;font-size:clamp(40px,4.4vw,69px)}
.web-contact h2 em{color:#ff8b60}
.web-contact-copy>p:last-child{max-width:630px;margin-top:23px}
.web-contact .primary-button{flex:none}
.web-page .site-footer{padding:0 clamp(26px,5vw,88px) 30px;background:none}
.web-footer-top{display:flex;justify-content:space-between;gap:24px;color:#b8c9df;font-size:14px}
.web-footer-top a{display:inline-flex;align-items:center;gap:10px;min-height:44px;transition:color .2s}
.web-footer-top a:hover{color:#fff}
.web-page .footer-bottom{margin-top:28px}

@media(max-width:1100px){
  .web-hero{min-height:630px}
  .web-hero h1{font-size:clamp(54px,6vw,76px)}
  .web-hero-art{background-size:auto 1086px;background-position:right top}
  .web-services{gap:55px}
  .web-featured-inner{gap:50px}
  .web-contact{align-items:start;flex-direction:column;padding:62px 55px}
}
@media(max-width:900px){
  .web-hero{min-height:670px;padding:40px 34px 70px}
  .web-hero-art{background-size:auto 1000px;background-position:right top}
  .web-hero-copy{width:75%}
  .web-hero h1{font-size:clamp(48px,7vw,66px)}
  .web-hero-lead{font-size:18px}
  .web-services{grid-template-columns:1fr;gap:40px;padding-block:92px 105px}
  .web-section-intro{max-width:700px}
  .web-featured-inner{grid-template-columns:1fr;gap:45px;padding-block:80px}
  .web-project-card{min-height:240px}
  .web-process{padding-block:100px}
  .web-process-heading{grid-template-columns:1fr;gap:18px}
  .web-process-heading .web-label{grid-column:auto}
  .web-process-heading>p:last-child{max-width:620px}
  .web-contact{padding:56px 45px}
}
@media(max-width:640px){
  .web-container{width:calc(100% - 40px)}
  .web-hero{min-height:760px;align-items:start;padding:54px 20px 66px}
  .web-hero:before{background:linear-gradient(180deg,#05090f 0%,#05090ff0 37%,#05090f42 75%,#05090f 100%)}
  .web-hero-art{inset:250px 0 0 auto;width:100%;background-image:url('assets/web-portal-v1-mobile.webp');background-size:auto 850px;background-position:right -70px top;opacity:.82;mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 72%,transparent 98%)}
  .web-hero-copy{width:100%;padding:0}
  .web-kicker{font-size:10px;letter-spacing:.13em;margin-bottom:23px}
  .web-hero h1{font-size:clamp(34px,9.6vw,50px);line-height:1.09;letter-spacing:-.055em;max-width:100%}
  .web-hero-lead{font-size:16px;line-height:1.62;max-width:370px;margin-top:22px}
  .web-hero-actions{gap:9px 20px;margin-top:26px}
  .web-hero-actions .primary-button{font-size:14px;padding:16px 20px}
  .web-hero-actions .text-link{font-size:13px}
  .web-hero-meta{font-size:10px;letter-spacing:.1em;margin-top:35px}
  .web-hero-meta span+span:before{margin:0 10px}
  .web-hero-index{right:20px;bottom:28px;font-size:9px}
  .web-services{padding-block:80px 88px;gap:32px}
  .web-label{font-size:10px;letter-spacing:.19em;margin-bottom:18px}
  .web-section-intro h2,.web-featured h2,.web-process h2,.web-contact h2{font-size:clamp(34px,9vw,48px)}
  .web-section-intro>p:last-child,.web-featured-copy>p:last-child,.web-process-heading>p:last-child,.web-contact-copy>p:last-child{font-size:15px;line-height:1.7;margin-top:20px}
  .web-service{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:24px 0}
  .web-service h3{font-size:19px}
  .web-service p{font-size:14px}
  .web-featured{margin:0 10px;border-radius:15px}
  .web-featured-inner{padding-block:66px 70px;gap:32px}
  .web-featured:after{right:-200px}
  .web-project-card{min-height:250px;padding:23px}
  .web-project-card strong{font-size:clamp(25px,7vw,36px)}
  .web-process{padding-block:90px}
  .web-steps{grid-template-columns:1fr;margin-top:42px;border-top:0;border-left:1px solid #ffb27a3a}
  .web-step,.web-step:not(:first-child){padding:0 0 36px 29px;border:0}
  .web-step:before,.web-step:not(:first-child):before{top:4px;left:-4px}
  .web-step:last-child{padding-bottom:0}
  .web-step h3{font-size:23px;margin:10px 0}
  .web-step p{font-size:14px}
  .web-contact{display:block;padding:40px 28px;margin-bottom:38px;border-radius:15px}
  .web-contact .primary-button{font-size:14px;padding:16px 20px;margin-top:30px;white-space:normal;text-align:center}
  .web-page .site-footer{padding:0 20px 22px}
  .web-footer-top{flex-direction:column;gap:5px;font-size:13px}
}
@media(max-width:350px){
  .web-hero{min-height:785px}
  .web-hero-actions{align-items:start;flex-direction:column;gap:10px}
  .web-hero-meta span+span:before{margin:0 6px}
}
@media(prefers-reduced-motion:reduce){
  .web-footer-top a,.web-project-card,.web-project-action span{transition:none}
  .web-project-card:hover,.web-project-card:focus-visible{transform:none}
}
@media(prefers-contrast:more){
  .web-hero-lead,.web-section-intro>p:last-child,.web-featured-copy>p:last-child,.web-process-heading>p:last-child,.web-contact-copy>p:last-child,.web-service p,.web-step p{color:#fff}
}

/* Reveal content only after JavaScript confirms that scroll observation is available. */
.web-reveal-ready [data-reveal]{opacity:0;transform:translate3d(0,25px,0)}
.web-reveal-ready [data-reveal].is-visible{opacity:1;transform:none;transition:opacity .72s ease,transform .72s cubic-bezier(.18,.72,.24,1);transition-delay:var(--reveal-delay,0ms)}
.web-reveal-ready .web-service.is-visible{transition:opacity .72s ease,transform .72s cubic-bezier(.18,.72,.24,1),padding .28s,background .28s;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms}
.web-service:nth-child(2),.web-step:nth-child(2){--reveal-delay:75ms}
.web-service:nth-child(3),.web-step:nth-child(3){--reveal-delay:145ms}
.web-service:nth-child(4){--reveal-delay:215ms}
@media(prefers-reduced-motion:reduce){.web-reveal-ready [data-reveal]{opacity:1;transform:none;transition:none}}


