:root{--ink:#162c3b;--muted:#5a6d7b;--blue:#235ce0;--line:#dce5e9;--soft:#f4f8fa;--teal:#0b867f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{max-width:1280px;margin:auto;padding-left:48px;padding-right:48px}.header{display:flex;align-items:center;justify-content:space-between;min-height:104px;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;gap:12px;font-size:31px;font-weight:700;letter-spacing:-1.3px}.brand img{object-fit:contain}.brand-dot{color:var(--blue)}nav{display:flex;align-items:center;gap:28px;font-size:13px}nav a:hover,.text-link:hover{color:var(--blue)}.contact-link{border:1px solid var(--line);padding:13px 17px;border-radius:5px;display:flex;gap:22px}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:65px;padding-top:100px;padding-bottom:100px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:var(--teal);margin:0 0 23px}h1{font-size:clamp(38px,4vw,58px);font-weight:500;line-height:1.09;letter-spacing:-2.7px;margin:0 0 28px}h1 span{color:var(--blue)}.intro{font-size:19px;line-height:1.6;max-width:520px}.subintro{font-size:14px;line-height:1.8;color:var(--muted);max-width:500px}.actions{display:flex;align-items:center;gap:24px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--blue);color:white;border-radius:4px;padding:17px 20px;font-size:13px;font-weight:bold}.button:hover{background:#1849b5}.text-link{display:inline-flex;gap:23px;align-items:center;font-size:13px;font-weight:bold}.hero-visual{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:linear-gradient(140deg,#f5f9fc,white);box-shadow:0 24px 70px #162c3b09}.figure-top{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;font-size:9px;letter-spacing:1.3px;color:var(--muted)}.live-dot{width:7px;height:7px;border-radius:50%;background:#14a394}.hero-visual>img{display:block;width:100%;height:350px;object-fit:contain;background:white}figcaption{font-size:10px;color:var(--muted);line-height:1.5}figure{margin:0}.hero-visual figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 24px;border-top:1px solid var(--line)}.motion-toggle{background:none;border:0;text-decoration:underline;color:var(--muted);font-size:10px;cursor:pointer;padding:5px}.section{padding-top:90px;padding-bottom:90px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:40px}h2{font-size:38px;font-weight:500;line-height:1.15;letter-spacing:-1.4px;margin:0}.section-heading>p{font-size:14px;color:var(--muted);line-height:1.8;max-width:340px;margin:0}.products{display:grid;grid-template-columns:1fr 1fr .8fr;gap:20px}.product{padding:30px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:flex-start}.featured{border-color:#b9cffc;background:#f5f8ff}.product-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.number{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.status{font-size:9px;color:var(--teal)}h3{font-weight:500;font-size:27px;letter-spacing:-.8px;margin:28px 0 12px}.product p{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 24px}.features{list-style:none;padding:0;font-size:11px;line-height:2.2;margin:0 0 30px;color:var(--muted)}.features li:before{content:'+';color:var(--blue);margin-right:10px}.product .button,.product>.text-link{margin-top:auto}.code-sample{font-family:monospace;line-height:2;font-size:10px;margin:8px 0 40px;padding:14px 0;border-block:1px solid var(--line);width:100%;overflow-wrap:anywhere}.code-sample span{color:var(--blue)}.coming{background:var(--soft);border-style:dashed}.coming-symbol{color:#a8b9c2;font-size:60px;font-weight:200;margin:26px 0 0}.coming h3{margin-top:8px;font-size:24px}.coming-label{margin-top:auto;font-size:11px;color:var(--muted)}.platform-section{padding:85px 0;background:var(--soft);border-block:1px solid var(--line)}.showcase{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center;margin-top:60px}.showcase figure{background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden}.showcase img{width:100%;height:330px;object-fit:contain;display:block}.showcase figcaption{padding:17px 22px;border-top:1px solid var(--line)}.showcase-copy h3{font-size:32px;margin-top:0}.showcase-copy p,.video-row p{font-size:14px;line-height:1.9;color:var(--muted);max-width:420px}.showcase-copy .text-link{margin-top:18px}.video-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:center;margin-top:85px}.video-row h3{font-size:36px;margin:0 0 18px}.video-row .isovist-animation{display:block;width:100%;height:auto;object-fit:contain;background:white;border:1px solid var(--line);border-radius:6px}.video-row figcaption{margin-top:14px}.resource-list>a{display:flex;align-items:center;gap:35px;border-top:1px solid var(--line);padding:25px 4px}.resource-list>a:last-child{border-bottom:1px solid var(--line)}.resource-list a:hover{background:var(--soft)}.resource-list h3{font-size:20px;margin:0 0 6px}.resource-list p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.arrow{margin-left:auto;color:var(--blue);font-size:22px}.contact-section{padding:65px 0;background:#173b4a;color:white}.contact-section>.wrap{display:flex;align-items:center;justify-content:space-between;gap:50px}.contact-section .eyebrow{color:#8de0ce}.contact-section h2{font-size:44px}.contact-section p:not(.eyebrow){font-size:13px;color:#c0d4da;line-height:1.8;max-width:380px}.contact-section a{font-size:clamp(22px,3vw,38px);letter-spacing:-1px;padding-bottom:15px;border-bottom:1px solid #69919e;white-space:nowrap}.contact-section a span{margin-left:40px}.footer{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:120px}.footer .brand{font-size:24px}.footer p,.footer>span{font-size:10px;color:var(--muted)}.skip{position:absolute;top:-100px;background:white;padding:15px;z-index:5}.skip:focus{top:10px}a:focus-visible,button:focus-visible{outline:3px solid #cf930a;outline-offset:5px}@media(max-width:1000px){.wrap{padding-left:28px;padding-right:28px}nav{gap:16px}.hero{gap:30px;padding-top:65px;padding-bottom:65px}h1{font-size:43px}.hero-visual>img{height:300px}.actions{flex-wrap:wrap}.products{grid-template-columns:1fr 1fr}.coming{grid-column:1/-1;min-height:160px}.coming-symbol{display:none}.coming h3{margin-top:24px}.coming-label{margin-top:4px}.showcase,.video-row{gap:40px}}@media(max-width:700px){.wrap{padding-left:22px;padding-right:22px}.header{flex-wrap:wrap;gap:18px;padding-top:20px;padding-bottom:20px;min-height:unset}.brand{font-size:28px}nav{flex-wrap:wrap;gap:18px;font-size:12px}.contact-link{padding:0;border:0}.hero{grid-template-columns:1fr;padding-top:50px;gap:42px}h1{font-size:44px;letter-spacing:-2px}.intro{font-size:18px}.hero-visual>img{height:300px}.section,.platform-section{padding-top:60px;padding-bottom:60px}.section-heading{flex-direction:column;align-items:flex-start;gap:22px}h2{font-size:33px}.products{grid-template-columns:1fr}.coming{grid-column:auto}.showcase,.video-row{grid-template-columns:1fr;gap:28px;margin-top:38px}.showcase img{height:270px}.video-row{margin-top:60px}.contact-section>.wrap{align-items:flex-start;flex-direction:column;gap:22px}.contact-section h2{font-size:38px}.contact-section a{font-size:28px}.footer{align-items:flex-start;flex-direction:column;gap:12px;padding-block:30px}.footer p{margin:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Consistent animation frames: 8:5 canvas with a divided caption below. */
:root { --animation-canvas-width: clamp(230px, 32vw, 440px); }
.hero-visual,
.showcase figure,
.video-row figure {
  box-sizing: border-box;
  width: var(--animation-canvas-width);
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid #d0d5d9;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}
.hero-visual .figure-top { display: none; }
.hero-visual > .motion-image,
.showcase .motion-image,
.video-row .isovist-animation {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-width: 0;
  max-width: none;
  max-height: none;
  aspect-ratio: 8 / 5;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  object-fit: contain;
  background: #fff;
}
.hero-visual figcaption,
.showcase figcaption,
.video-row figcaption {
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding: 16px 20px;
  border-top: 1px solid #d0d5d9;
  color: var(--muted);
  background: #fff;
  font-size: 10px;
  line-height: 1.5;
  text-align: left;
}
@media (max-width: 700px) {
  :root { --animation-canvas-width: min(440px, calc(100vw - 90px)); }
}

/* Tighter logo artwork and larger brand marks. */
.header .brand img { width: 66px; height: 78px; }
.footer .brand img { width: 54px; height: 64px; }

.header .brand img { width: 66px; height: 64px; }

/* Consulting and project enquiries. */
.consulting-section { border-top: 1px solid var(--line); }
.consulting-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-bottom: 30px; }
.consulting-grid article { border-top: 1px solid var(--line); padding-top: 22px; }
.consulting-grid h3 { font-size: 23px; margin-top: 22px; }
.consulting-grid p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.contact-section > .wrap { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: 70px; }
.contact-section .contact-email { display: inline-block; margin-top: 20px; font-size: 24px; }
.contact-section .contact-email span { margin-left: 20px; }
.enquiry-form { min-width: 0; }
.enquiry-form label { display: block; font-size: 12px; line-height: 1.5; margin-bottom: 18px; }
.enquiry-form label span { color: #c0d4da; font-size: 10px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.enquiry-form input, .enquiry-form textarea { display: block; width: 100%; margin-top: 8px; padding: 12px 14px; border: 1px solid #72909b; border-radius: 4px; background: #fff; color: var(--ink); font: inherit; font-size: 14px; line-height: 1.5; }
.enquiry-form textarea { resize: vertical; min-height: 140px; }
.enquiry-form input:focus-visible, .enquiry-form textarea:focus-visible { outline: 3px solid #8de0ce; outline-offset: 2px; }
.contact-section .form-note { max-width: none; font-size: 11px; margin-top: 0; }
.enquiry-form .button { border: 0; cursor: pointer; }
.enquiry-form #enquiryStatus { font-size: 12px; line-height: 1.7; max-width: none; }
@media (max-width: 900px) { .contact-section > .wrap { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 700px) { .consulting-grid { grid-template-columns: 1fr; gap: 20px; } .form-row { grid-template-columns: 1fr; gap: 0; } }

.product-hero { padding-block: 55px 65px; border-bottom: 1px solid var(--line); }
.product-hero>.eyebrow { margin-top: 45px; }
.product-hero .intro { max-width: 730px; }
.product-layout { display: grid; grid-template-columns: 220px 1fr; gap: 65px; padding-block: 65px; }
.product-sidebar nav { position: sticky; top: 30px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.product-content { min-width: 0; max-width: 780px; }
.product-content section { margin-bottom: 65px; }
.product-content h2 { font-size: 30px; margin-bottom: 23px; }
.product-content p,.product-help p { font-size: 15px; line-height: 1.9; color: var(--muted); }
.product-content p a { color: var(--blue); text-decoration: underline; }
.capability-list dt { font-weight: bold; font-size: 15px; margin-top: 24px; }
.capability-list dd { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.product-content pre { background: var(--soft); border: 1px solid var(--line); padding: 22px; border-radius: 6px; overflow-x: auto; font-size: 13px; line-height: 1.9; }
.product-content .small-note { font-size: 12px; margin-top: 23px; }
.product-help { padding-block: 50px; border-top: 1px solid var(--line); }
@media(max-width:700px) { .product-layout { grid-template-columns: 1fr; gap: 40px; padding-block: 35px; } .product-sidebar nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 16px; } }
