:root{font-family:Arial,Helvetica,sans-serif;color:#303638;background:#f3f4f6;font-synthesis:none;--green:#047857;--orange:#c64a09;--blue:#087faf}*{box-sizing:border-box}body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:24px}a{color:inherit;text-decoration:none}button,select{font:inherit}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #f5af17;outline-offset:5px}.container{max-width:1024px;width:calc(100% - 48px);margin:auto}.topbar{background:var(--green);color:white;font-size:14px}.top-inner{display:flex;align-items:center;justify-content:space-between;min-height:46px}.top-cta{background:#ffffff18;padding:7px 14px;border-radius:4px}header{background:white;border-bottom:1px solid #e1e3e6}.nav-inner{height:88px;display:flex;align-items:center;justify-content:space-between;position:relative}.brand{font-size:32px;font-weight:800;letter-spacing:-1.5px;color:#151917}.brand>span{color:var(--orange)}.brand small{font-size:12px;letter-spacing:2px;margin-left:7px;font-weight:600;color:#58625e}#menu-toggle{border:1px solid var(--green);border-radius:5px;background:white;color:var(--green);height:44px;width:46px;display:grid;place-items:center;cursor:pointer}#nav-menu{position:absolute;top:100%;right:0;width:min(100%,380px);background:#252723;color:white;z-index:10;box-shadow:0 10px 20px #0002}#nav-menu a{display:block;padding:18px 24px;border-bottom:1px solid #454742;font-size:14px}#nav-menu a:hover{background:#3a3e37}.intro{text-align:center;padding:48px 0 32px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700}.intro .eyebrow{color:var(--green)}h1{font-size:clamp(36px,5vw,55px);letter-spacing:-2px;line-height:1.1;margin:16px 0}h2,h3{line-height:1.2;letter-spacing:-.5px}.intro p{font-size:17px;color:#636b6e;line-height:1.6;margin:14px auto 0;max-width:480px}.content{display:flex;flex-direction:column;gap:28px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.pricing-card{position:relative;border-radius:30px;overflow:hidden;display:flex;flex-direction:column;align-items:center;color:white;padding:35px 28px 0;min-height:375px}.orange{background:var(--orange);--dark:#873308;--tab:#ffead9;--tab-text:#8f3409}.blue{background:var(--blue);--dark:#075477;--tab:#e0f2fe;--tab-text:#075477}.pricing-card:before{content:'';position:absolute;top:0;right:0;width:164px;height:164px;background:var(--dark);clip-path:polygon(0 0,100% 0,100% 100%)}.badge{position:absolute;top:25px;left:0;border-radius:0 18px 18px 0;padding:8px 22px;background:var(--dark);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.price{position:absolute;right:19px;top:16px;text-align:right;z-index:1;display:flex;flex-direction:column;gap:4px}.price span{font-size:12px}.price strong{font-size:31px;letter-spacing:-1px}.price.quote{top:24px}.quote strong{font-size:24px}.card-body{text-align:center;margin-top:86px;flex:1;width:100%;padding-bottom:26px}.card-body h2,.card-body h3{font-size:25px;margin:0 0 16px}.card-body p{font-size:15px;line-height:1.5;margin:0 0 20px}.card-body ul{list-style:none;padding:0;margin:0;display:grid;gap:12px;font-size:16px;line-height:1.5}.order{background:var(--tab);color:var(--tab-text);font-weight:700;font-size:13px;letter-spacing:.5px;text-transform:uppercase;padding:15px 26px;border-radius:13px 13px 0 0;text-align:center}.order:hover{background:white}.panel{border:1px solid #dedfe0;border-radius:12px;background:white;padding:34px}.why{display:grid;grid-template-columns:1fr 1fr;gap:45px}.why h2{font-size:29px;margin:12px 0}.why p,.updates p,.contact p{font-size:16px;color:#62696b;line-height:1.65}.why .eyebrow{color:var(--green)}.why ul{margin:0;padding:0;list-style:none;display:grid;gap:13px;align-content:center;font-size:16px;line-height:1.4}.why li:before{content:'✓';margin-right:12px;color:var(--green);font-weight:700}.section-banner{background:#242824;color:white;border-radius:12px 12px 0 0;text-align:center;padding:36px 24px;margin-bottom:26px}.section-banner .eyebrow{color:#b6d6c2}.section-banner h2{font-size:32px;margin:12px 0}.section-banner p{font-size:16px;color:#d0d5d1;line-height:1.5;margin:0}.custom-cards .pricing-card{min-height:340px}.custom-cards .card-body{margin-top:75px}.updates h2{text-align:center;font-size:28px;margin:0 0 28px}.update-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.update-grid h3{font-size:20px;margin:0}.update-grid a{font-size:15px;font-weight:700;color:var(--green)}.contact{max-width:670px;width:100%;margin:0 auto;text-align:center}.contact .eyebrow{color:var(--green)}.contact h2{font-size:30px;margin:14px 0}.contact label{display:block;text-align:left;font-weight:700;font-size:14px;margin:24px 0 9px}.contact select{width:100%;height:49px;border:1px solid #bec8c3;background:white;padding:0 12px;border-radius:5px;font-size:16px;color:#303638}.contact .selection{font-size:14px;text-align:left;margin:10px 0 22px}.contact-button{display:block;background:var(--green);border-radius:5px;padding:16px 18px;color:white;font-size:16px;font-weight:700}.contact-button:hover{background:#065f46}.contact small{display:block;font-size:12px;color:#62696b;line-height:1.6;margin-top:20px}footer{padding:44px 0 90px;text-align:center}footer .brand{font-size:26px}footer p{font-size:13px;color:#62696b;margin-top:18px}.floating-chat,.back-top{position:fixed;bottom:20px;color:white;border-radius:7px;box-shadow:0 4px 16px #0002;z-index:5}.floating-chat{left:20px;background:var(--orange);padding:13px 18px;font-size:14px;font-weight:700}.back-top{right:20px;background:var(--green);width:43px;height:43px;display:grid;place-items:center;font-size:24px}.skip{position:absolute;top:-100px;left:10px;background:#151917;color:white;padding:15px;z-index:20}.skip:focus{top:10px}@media(max-width:650px){.container{width:calc(100% - 32px);max-width:440px}.nav-inner{height:77px}.brand{font-size:28px}.brand small{font-size:10px}.intro{padding:32px 0 8px}h1{font-size:37px;letter-spacing:-1.4px}.intro p{font-size:16px}.cards,.why,.update-grid{grid-template-columns:1fr}.cards{gap:24px}.content{gap:24px}.pricing-card{min-height:360px;padding-left:20px;padding-right:20px}.panel{padding:26px}.why{gap:20px}.why h2{text-align:center}.why .eyebrow{display:block;text-align:center}.why p{text-align:center}.section-banner h2{font-size:29px}.update-grid{text-align:center;gap:25px}.update-grid>div+div{border-top:1px solid #e5e7eb;padding-top:25px}.updates h2{font-size:26px}.contact h2{font-size:28px}.eyebrow{font-size:11px;letter-spacing:1.2px}.price strong{font-size:30px}.quote strong{font-size:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#nav-menu a[aria-current=page]{background:#374d40;border-left:3px solid #f2a548}.home-actions{display:flex;justify-content:center;gap:16px;align-items:center;margin-top:-8px;margin-bottom:8px}.secondary-button{border:1px solid var(--green);border-radius:5px;padding:16px 24px;color:var(--green);font-weight:700}.section-link{text-align:center;color:var(--green);font-size:16px;font-weight:700}.page-cta{text-align:center}.page-cta .contact-button{display:inline-block;margin-top:12px}.studio-story p{font-size:18px;line-height:1.8;color:#62696b;max-width:780px}.studio-story h2{font-size:30px}.pricing-note{text-align:center;color:#62696b;font-size:14px;line-height:1.6}.contact textarea{width:100%;resize:vertical;min-height:120px;padding:12px;border:1px solid #bec8c3;border-radius:5px;font:inherit;line-height:1.6;margin-bottom:20px}.contact textarea:focus-visible{outline:3px solid #f5af17;outline-offset:3px}.contact .phone{font-weight:700;color:var(--green)}.footer-nav{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:24px 0;font-size:14px}.footer-nav a:hover{color:var(--green)}@media(min-width:800px){#menu-toggle{display:none}#nav-menu,#nav-menu[hidden]{display:flex;position:static;width:auto;background:transparent;box-shadow:none;color:#303638;gap:8px}#nav-menu a{border:none;padding:12px 16px}#nav-menu a[aria-current=page]{background:#e9f3ec;border-left:0;border-radius:5px;color:var(--green)}#nav-menu a:hover{background:#f1f5f2;border-radius:5px}}@media(max-width:420px){.home-actions{flex-direction:column}.home-actions a{width:100%;text-align:center}.top-inner{font-size:12px}.top-cta{padding:7px 10px}}

/* FactorX enquiry capture */
.contact input{width:100%;height:49px;border:1px solid #bec8c3;background:white;padding:0 12px;border-radius:5px;font-size:16px;color:#303638;font:inherit}.contact input:focus-visible{outline:3px solid #f5af17;outline-offset:3px}.enquiry-submit{width:100%;border:0;cursor:pointer}.enquiry-submit:disabled{opacity:.65;cursor:wait}#enquiry-status{min-height:22px;margin-top:12px;text-align:center}


/* PUBLIC PORTFOLIO */
.public-portfolio-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
  margin-bottom:28px;
}

.portfolio-loading{
  grid-column:1 / -1;
  text-align:center;
  padding:40px 20px;
  color:#62696b;
}

.public-project-card{
  background:white;
  border:1px solid #dedfe0;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 30px #0000000d;
}

.public-project-image{
  position:relative;
  aspect-ratio:16 / 10;
  background:#e9eeeb;
  overflow:hidden;
}

.public-project-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}

.public-project-card:hover .public-project-image img{
  transform:scale(1.025);
}

.public-project-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#68716d;
  font-weight:700;
}

.public-featured-badge{
  position:absolute;
  top:14px;
  right:14px;
  padding:7px 11px;
  border-radius:999px;
  background:white;
  color:var(--green);
  font-size:11px;
  font-weight:800;
  box-shadow:0 5px 16px #0002;
}

.public-project-body{
  padding:24px;
}

.public-project-body .eyebrow{
  color:var(--green);
}

.public-project-body h2{
  font-size:25px;
  margin:9px 0 8px;
}

.public-project-client{
  margin:0 0 12px;
  color:#62696b;
  font-size:13px;
  font-weight:700;
}

.public-project-body > p:not(.public-project-client){
  color:#62696b;
  line-height:1.65;
}

.public-tech-tags{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:18px 0;
}

.public-tech-tags span{
  background:#eaf3ee;
  color:var(--green);
  border-radius:999px;
  padding:6px 9px;
  font-size:11px;
  font-weight:700;
}

.public-project-link{
  display:inline-block;
  margin-top:3px;
}

@media(max-width:700px){
  .public-portfolio-grid{
    grid-template-columns:1fr;
  }
}


