@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#123640;--deep:#0a2832;--deep2:#164b53;--teal:#226c71;--mint:#90e2cf;--pale:#f2f7f4;--cream:#faf8f3;--peach:#f5c5a7;--line:#d5e0db;--muted:#536c73;--white:#fff;--radius:24px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'DM Sans',Arial,sans-serif;line-height:1.2;letter-spacing:-.045em}h1{font-size:clamp(3rem,5.3vw,5.7rem);font-weight:800}h2{font-size:clamp(2.15rem,4vw,3.45rem);font-weight:800}h3{font-size:1.18rem;letter-spacing:-.03em}p{color:var(--muted)}strong{color:inherit}.container{max-width:1190px;margin:auto;padding-left:28px;padding-right:28px}.narrow{max-width:860px}.section{padding:94px 0}.skip{position:absolute;top:-100px;left:18px;background:#fff;z-index:1000;padding:12px 16px}.skip:focus{top:8px}.site-header{position:sticky;top:0;z-index:100;background:rgba(250,248,243,.95);border-bottom:1px solid #e3e9e3;backdrop-filter:blur(16px)}.nav-wrap{max-width:1280px;margin:auto;min-height:84px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;gap:22px}.brand{display:flex;gap:12px;align-items:center;flex-shrink:0}.mark{width:44px;height:44px;background:var(--deep);border-radius:13px;display:grid;place-items:center;color:var(--mint);font:800 30px Manrope,Arial,sans-serif;position:relative}.mark:after{content:'';position:absolute;right:6px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--peach)}.brand-words strong{display:block;font:800 17px Manrope,Arial,sans-serif;letter-spacing:-.05em;line-height:1.2}.brand-words small{display:block;color:#65818a;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.primary-nav{display:flex;align-items:center;gap:22px}.primary-nav>a{font-size:12px;font-weight:800;color:#3c5760;white-space:nowrap;padding:6px 1px}.primary-nav>a:hover,.primary-nav>a.active{color:#0e706f}.primary-nav .nav-contact{background:var(--deep);color:white;border-radius:50px;padding:12px 17px}.primary-nav .nav-contact:hover{background:#247178;color:white}.menu-toggle{display:none;border:0;background:transparent;padding:12px;cursor:pointer;flex-direction:column;gap:5px}.menu-toggle span{display:block;width:25px;height:2px;background:var(--deep)}.hero{background:radial-gradient(circle at 7% 4%,#f1f6ea 0%, transparent 33%),var(--cream);padding:85px 0 93px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:42px}.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;color:#147b75;text-transform:uppercase;letter-spacing:.15em;font-size:.74rem;font-weight:800;margin-bottom:20px}.eyebrow-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#39b3a2;box-shadow:0 0 0 5px #dcf4eb}.hero h1{line-height:1.075;margin-bottom:24px}.hero h1 em,.page-hero h1 em{font-style:normal;color:#268781}.hero-lead{font-size:1.17rem;line-height:1.85;max-width:620px}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin:27px 0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;font-weight:800;min-height:52px;border-radius:15px;padding:13px 21px;font-size:.89rem;transition:transform .15s ease,background .15s ease;text-align:center}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--deep);color:var(--white)}.btn-primary:hover{background:#286a6d}.btn-ghost,.btn-outline{border:1px solid #bdd2cc;background:#fff;color:var(--deep)}.btn-outline:hover,.btn-ghost:hover{background:#e8f6f0}.btn-light{background:var(--mint);color:#08323b}.btn-light:hover{background:white}.trust-strip{display:flex;gap:15px;flex-wrap:wrap;margin-top:35px;color:#557079;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.trust-strip span+span:before{content:'•';color:#278a7e;margin-right:15px}.hero-art{position:relative;padding:24px 0 62px}.hero-photo{overflow:hidden;border-radius:32px;border:7px solid #fff;box-shadow:0 25px 60px rgba(16,54,63,.14);transform:rotate(1.2deg)}.hero-photo img{aspect-ratio:1.65/1;object-fit:cover}.photo-labels{position:absolute;top:0;right:12px;left:12px;display:flex;justify-content:space-between;gap:12px;transform:rotate(-1deg)}.photo-labels span{font-size:11px;font-weight:800;border-radius:10px;padding:10px 13px;box-shadow:0 4px 12px #14394422}.label-before{background:#fbe1d3}.label-after{background:#bce9dd}.hero-note{position:absolute;bottom:11px;right:-8px;background:white;max-width:310px;box-shadow:0 13px 40px #12384222;padding:17px 18px;border-radius:17px;font-size:.88rem;line-height:1.5;transform:rotate(-2deg);color:#587078}.hero-note strong{display:block;color:var(--deep)}.mini-star{color:#f0ab8f}.section-intro{max-width:750px;margin-bottom:37px}.section-intro>p{font-size:1.08rem}.accent{color:#248d85}.before-after{background:#fff}.contrast-grid{display:grid;grid-template-columns:1fr 55px 1fr;align-items:stretch;gap:10px}.compare-panel{padding:37px;border-radius:27px}.compare-before{background:#f9f0e9}.compare-after{background:#eaf6ef}.pill{display:inline-block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 11px;border-radius:40px;background:#fff;margin-bottom:13px;font-weight:800}.compare-panel h3{font-size:1.55rem}.compare-panel ul,.about-panel ul{padding-left:20px;margin:10px 0 0;color:#49666f;line-height:2.1}.compare-panel li::marker{color:#3b9a92}.compare-arrow{display:grid;place-items:center;color:#278e83;font-size:3rem;font-weight:800}.services-strip{background:var(--pale)}.heading-row{display:flex;align-items:end;justify-content:space-between;max-width:none;gap:20px}.link-arrow,.inline-link{color:#137b73;font-weight:800;font-size:.9rem}.inline-link{display:inline-block;margin-top:12px;margin-right:26px}.link-arrow:hover,.inline-link:hover{text-decoration:underline}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.service-card{padding:32px 28px;min-height:235px;border-radius:23px;background:#fff;border:1px solid #e4ebe7;box-shadow:0 9px 25px #203c3a0a}.service-card .card-symbol{display:grid;place-items:center;width:49px;height:49px;border-radius:13px;background:#e5f5ee;color:#26756d;font-size:1.35rem;font-weight:700;margin-bottom:22px}.service-card p{font-size:.95rem;margin:0}.showcase{background:#fff}.showcase-grid{display:grid;grid-template-columns:.86fr 1.14fr;align-items:center;gap:50px}.showcase-grid p{max-width:535px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:25px 0}.metric-grid div{background:#edf6f2;border-radius:15px;padding:16px 10px}.metric-grid strong{display:block;font:800 2.1rem Manrope,sans-serif;color:#177a76;line-height:1.2}.metric-grid span{font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#62767c}.small-muted{font-size:.8rem;line-height:1.6;color:#708086}.demo-visual{display:block;background:#f8fbf9;padding:13px;border:1px solid #dae8e2;box-shadow:0 16px 36px #14393912;border-radius:20px;overflow:hidden}.demo-visual img{border-radius:12px;width:100%;object-fit:cover}.demo-visual-footer{display:flex;justify-content:space-between;padding:18px 10px 5px;color:#1b776e;font-weight:800;font-size:.8rem}.demo-visual figcaption{font-size:.8rem;color:#667e7b;padding:10px 8px 4px}.how-section{background:#fcfaf6}.center{text-align:center;margin-left:auto;margin-right:auto}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.steps-grid>div{border-top:2px solid #86cabb;padding:24px 18px 10px 0}.step-no{display:block;font:800 .94rem Manrope,sans-serif;color:#2c9c8e;margin-bottom:19px;letter-spacing:.12em}.steps-grid h3{font-size:1.3rem}.domain-note{background:#eaf3ef}.note-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px}.note-grid p{font-size:1.05rem}.cta-section{background:#0e3a43;color:white;padding:80px 0;text-align:center}.cta-section h2{margin:3px 0 18px;color:white}.cta-section p{color:#cfdfde;font-size:1.05rem;max-width:660px;margin:0 auto 25px}.kicker.light{color:#98e6d1}.footer{background:#08262e;color:white;padding:64px 0 22px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.25fr;gap:60px}.footer-brand{font:800 1.45rem Manrope,sans-serif}.footer-brand span{font-size:.7rem;letter-spacing:.12em}.footer p{color:#b0c8c8}.foot-motto{font-size:.8rem;color:#89b6b4;font-style:italic}.footer h3{letter-spacing:.02em;font-size:.86rem;color:#8fd7c7;margin-bottom:19px}.footer a:not(.footer-brand){display:block;color:#cfdfde;margin:8px 0;font-size:.9rem}.footer a:hover{color:var(--mint)}.legal{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #29505a;padding-top:23px;margin-top:44px;color:#8babad;font-size:.76rem}.page-hero{background:radial-gradient(circle at 80% 12%,#e5f2e8 0,transparent 48%),#faf8f3;padding:95px 0 84px;border-bottom:1px solid #e2e7e0}.page-hero h1{max-width:930px;font-size:clamp(3rem,5vw,5rem)}.page-hero p{max-width:800px;font-size:1.13rem}.service-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.detail-card{padding:34px;border-radius:24px;background:#fff;border:1px solid #dfe9e4;display:flex;flex-direction:column;min-height:315px}.detail-num{font-weight:800;color:#209588;font-size:.8rem;letter-spacing:.12em;margin-bottom:20px}.detail-card h2{font-size:1.53rem;letter-spacing:-.035em}.detail-card p{font-size:.96rem}.detail-footer{margin-top:auto;border-top:1px solid #e2ebe5;padding-top:18px;display:flex;flex-wrap:wrap;gap:7px 12px}.detail-footer strong{font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;color:#348f84}.detail-footer span{font-size:.83rem;color:#5d757c}.service-process{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.checklist p{background:white;padding:19px 23px;border-radius:13px;margin-bottom:12px;font-size:.93rem}.faq-section{background:#fff}.faq-section details{padding:22px 4px;border-bottom:1px solid #e1e9e6}.faq-section summary{cursor:pointer;color:#153b43;font-weight:800;font-size:1.03rem}.faq-section details p{margin:13px 0 0}.faq-section details a{color:#147d71;text-decoration:underline}.project-list{display:flex;flex-direction:column;gap:0}.project{display:grid;grid-template-columns:.4fr 1fr;gap:45px;padding:42px 0;border-bottom:1px solid #d5e3da}.project-aside{display:flex;flex-direction:column;gap:10px}.project-aside span{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#438b7d;font-weight:800}.project-aside strong{font:800 1.28rem Manrope,sans-serif}.project-aside small{color:#668087}.project h2{font-size:1.72rem}.chip-row{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.chip-row span{background:#eaf4ee;color:#2b746f;font-size:.72rem;padding:5px 12px;border-radius:100px;font-weight:800}.publication{display:grid;grid-template-columns:1.45fr .75fr;gap:55px}.publication h2{font-size:2.1rem}.research-box{background:#e5f2eb;padding:32px;border-radius:24px;align-self:start}.research-box span{display:block;color:#40867f;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800;margin:0 0 9px}.research-box strong{display:block;font-size:1.04rem;line-height:1.55}.research-box hr{border:0;border-top:1px solid #c6ded7;margin:22px 0}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:65px}.about-grid p{font-size:1.05rem}.about-panel{background:#e6f2eb;border-radius:25px;padding:38px}.about-panel h3{font-size:1.5rem}
@media(max-width:1080px){.primary-nav{gap:12px}.primary-nav>a{font-size:11px}.brand-words small{font-size:9px}.brand-words strong{font-size:16px}.nav-wrap{padding:0 20px}.hero-grid{gap:28px}.hero h1{font-size:clamp(3rem,5.4vw,4.5rem)}}
@media(max-width:880px){.menu-toggle{display:flex}.primary-nav{display:none;position:absolute;top:84px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fbfaf6;box-shadow:0 20px 35px #183d3b20;padding:10px 27px 24px}.primary-nav.open{display:flex}.primary-nav>a{padding:12px 6px;font-size:.93rem;border-bottom:1px solid #e5ede7}.primary-nav .nav-contact{margin-top:12px;text-align:center;border-radius:12px}.hero-grid,.showcase-grid,.note-grid,.about-grid,.publication,.service-process{grid-template-columns:1fr}.hero-art{max-width:730px}.hero h1{font-size:clamp(3.1rem,8vw,5.4rem)}.cards-grid{grid-template-columns:repeat(2,1fr)}.foot-grid{gap:30px}}
@media(max-width:600px){.container{padding-left:20px;padding-right:20px}.nav-wrap{min-height:74px;padding:0 18px}.primary-nav{top:74px}.brand-words small{font-size:8px}.site-header .mark{width:39px;height:39px}.section{padding:66px 0}.hero{padding:59px 0 64px}.hero h1{font-size:clamp(2.55rem,11vw,4rem)}.page-hero{padding:70px 0 58px}.page-hero h1{font-size:clamp(2.7rem,10vw,4rem)}.hero-art{padding:23px 0 48px}.photo-labels{top:2px;left:-5px;right:-5px}.photo-labels span{font-size:9px;padding:7px 8px}.hero-note{bottom:0;right:0;font-size:.75rem;padding:12px;max-width:245px}.contrast-grid{grid-template-columns:1fr}.compare-arrow{transform:rotate(90deg);font-size:2rem}.compare-panel{padding:27px}.cards-grid,.steps-grid,.service-detail-grid,.project{grid-template-columns:1fr}.heading-row{align-items:start;flex-direction:column}.showcase-grid{gap:25px}.detail-card{min-height:0}.project{gap:13px}.foot-grid{grid-template-columns:1fr}.legal{flex-direction:column}.button-row{align-items:stretch}.button-row .btn{flex:1 1 100%}.trust-strip{gap:7px}.trust-strip span+span:before{margin-right:7px}.cta-section{padding:65px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.btn:hover{transform:none}}

.about-side-photo{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:15px;margin-bottom:24px}

/* Oct 16 refresh: preserve the full office comparison (including heading strips). */
.hero-photo img{aspect-ratio:auto;width:100%;height:auto;object-fit:contain}
.info-banner{padding:32px;border:1px solid #d5e8df;border-radius:25px;background:#eff8f2;margin:35px 0}
.info-banner strong{color:#135358}
.example-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:25px}
.example-columns>article{background:white;border:1px solid #e3e8e2;padding:28px;border-radius:22px}
.example-columns h3{font-size:1.2rem}
.example-columns p{margin-bottom:0}
.example-head{margin-bottom:13px;color:#137b73;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:720px){.example-columns{grid-template-columns:1fr}.hero-photo{transform:none}.hero-note{right:4px;bottom:0}}

/* OCT 16 visual refresh: smaller output sample, friendly everyday automation imagery */
.automation-stories{background:#f7f7f0}
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.story-card{min-width:0;background:#fff;border-radius:22px;overflow:hidden;border:1px solid #dce8df;box-shadow:0 13px 26px #15383a0b}
.story-card img{height:210px;width:100%;object-fit:cover;object-position:center 39%}
.story-card>div{padding:25px 24px 30px}
.story-card span{display:block;color:#16857a;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;margin-bottom:11px}
.story-card h3{font-size:1.17rem;margin-bottom:10px}
.story-card p{margin:0;font-size:.94rem;line-height:1.65}
.story-disclaimer{margin:19px 0 0;font-size:.8rem}
.showcase .showcase-grid{grid-template-columns:1fr 1fr;gap:43px}
.showcase-visual-stack{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:18px}
.compact-demo-visual,.standalone-demo-image{width:100%;max-width:480px;margin:0 auto}
.compact-demo-visual img,.standalone-demo-image img,img.small-workflow-preview{display:block;width:100%;height:auto;max-width:420px;max-height:275px;object-fit:contain;margin:0 auto}
.tiny-code-card{max-width:480px;margin:0 auto;padding:13px;background:#f2f8f5;border:1px solid #dae9e1;border-radius:19px}
.tiny-code-card img{display:block;width:100%;max-width:480px;height:auto;border-radius:11px}
.tiny-code-card figcaption{color:#526f70;font-size:.82rem;line-height:1.65;padding:14px 5px 3px}
.tiny-code-card figcaption strong{color:#123e45}
.services-visual-guide{background:#e9f3ef}
.visual-guide-grid{display:grid;grid-template-columns:1fr .72fr;gap:50px;align-items:center}
.visual-guide-grid>img{max-height:340px;width:100%;object-fit:cover;object-position:center 40%;border-radius:22px}
.visual-guide-grid p{font-size:1.05rem}
.business-visual-story{background:#f4f8f3}
.business-visual-story .story-card img{height:205px}
.sample-code-explanation{margin-top:54px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:38px}
.sample-code-explanation h2{font-size:clamp(2rem,3vw,2.9rem)}
@media(max-width:880px){.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase .showcase-grid,.sample-code-explanation,.visual-guide-grid{grid-template-columns:1fr}.showcase-visual-stack{max-width:540px;margin:0 auto}.visual-guide-grid>img{max-height:320px}}
@media(max-width:600px){.story-grid{grid-template-columns:1fr;gap:15px}.story-card img{height:186px}.story-card>div{padding:19px 19px 22px}.showcase .showcase-grid{gap:29px}.compact-demo-visual,.tiny-code-card{max-width:100%}.story-disclaimer{font-size:.72rem}.sample-code-explanation{margin-top:38px;gap:15px}}


/* Oct 16 2026: lively office character modules and verified GIS map gallery */
.office-comedy{background:linear-gradient(120deg,#f7f5ee 0%,#fff 52%,#eaf4f0 100%)}
.office-comedy .section-intro{max-width:850px}
.office-comedy .section-intro em{font-style:normal;color:#168074}
.office-comedy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:30px}
.fun-card{margin:0;border:1px solid #dae6e2;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 36px rgba(12,50,40,.07)}
.fun-card img{display:block;width:100%;aspect-ratio:1.35;object-fit:cover;object-position:center;max-height:410px}
.fun-card figcaption{display:flex;flex-direction:column;gap:9px;padding:23px 25px 26px;line-height:1.4}
.fun-card .fun-eyebrow{font-size:.77rem;letter-spacing:.09em;text-transform:uppercase;color:#168074;font-weight:800}
.fun-card strong{font-size:clamp(1.25rem,2.1vw,1.7rem);color:#19382f}
.fun-card small{color:#52665f;font-size:.97rem}
.office-comedy .small-muted{margin-top:18px}
.comic-banner{background:linear-gradient(135deg,#f5f8f3 0%,#f8f1ea 100%)}
.comic-banner-inner{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.1fr);align-items:center;gap:clamp(30px,5vw,80px)}
.comic-banner img{width:100%;max-height:400px;aspect-ratio:1.35;object-fit:cover;border-radius:24px;border:1px solid #dbe5dd;box-shadow:0 18px 42px rgba(10,42,30,.08)}
.comic-banner-inner h2{margin:12px 0 14px;max-width:670px}
.comic-banner-inner p{max-width:600px}
.map-gallery{background:#f6faf7}
.map-portfolio-intro{gap:32px;align-items:center;margin-bottom:25px}
.map-portfolio-intro p{max-width:760px}
.map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.map-card{min-width:0;background:#fff;border:1px solid #dbe7e0;border-radius:20px;overflow:hidden;box-shadow:0 9px 25px rgba(22,56,39,.06)}
.map-card > a{display:block;overflow:hidden;background:#eef1ea}
.map-card > a > img{display:block;width:100%;height:240px;object-fit:cover;object-position:top center;transition:transform .2s ease}
.map-card > a:hover > img{transform:scale(1.015)}
.map-card-text{padding:23px 24px 26px}
.map-card-text > span{font-weight:750;letter-spacing:.09em;font-size:.73rem;text-transform:uppercase;color:#178578}
.map-card-text h3{margin:10px 0}
.map-card-text p{margin:0 0 18px}
.report-graphic{height:240px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at 20% 20%,#d9eee5,#1b6a68);color:white}
.report-graphic .report-label{font-weight:800;letter-spacing:.2em;font-size:.82rem}
.report-graphic strong{font-size:5.8rem;line-height:1.12}
.report-graphic small{font-size:1rem}
.report-graphic .report-lines{letter-spacing:1em;font-size:.75rem;margin-top:12px}
.map-gallery-note{margin-top:20px}
@media(max-width:760px){
.office-comedy-grid,.map-grid,.comic-banner-inner{grid-template-columns:1fr}
.fun-card img{max-height:460px}
.map-card > a > img,.report-graphic{height:220px}
.map-portfolio-intro{align-items:start}
.comic-banner-inner img{max-height:480px}
}
