/* Public website styles are scoped so admin pages keep their existing appearance. */
.public-site {
    --ink:#17252b;
    --muted:#64716e;
    --accent:#dbea9c;
    --paper:#f6f7f2;
    --line:#e1e5dd;
    --green:#4d6459;
    margin:0;
    background:#fff;
    color:var(--ink);
    font-family:"Segoe UI",Arial,sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased
}

.public-site *,.public-site *::before,.public-site *::after {
    box-sizing:border-box
}

.public-site a {
    color:inherit;
    text-decoration:none
}

.public-site button,.public-site input,.public-site textarea {
    font:inherit
}

.public-site h1,.public-site h2,.public-site h3 {
    color:var(--ink);
    line-height:1.13;
    font-weight:650;
    letter-spacing:-.045em;
    margin:0
}

.public-site h2 {
    font-size:clamp(30px,3.6vw,46px)
}

.public-site p {
    color:var(--muted);
    margin:0
}

.public-site [hidden] {
    display:none!important
}

.public-site a:focus-visible,.public-site button:focus-visible {
    outline:3px solid #59723d;
    outline-offset:5px;
    border-radius:4px
}

.public-site .shell {
    width:min(1200px,calc(100% - 96px));
    margin-inline:auto
}

.public-site .section-space {
    padding-block:100px
}

.public-site .section-tint {
    background:var(--paper)
}

.public-site .eyebrow {
    display:block;
    font-family:Consolas,"Courier New",monospace;
    font-size:11px;
    line-height:1.6;
    letter-spacing:.14em;
    font-weight:600;
    color:var(--green);
    margin-bottom:20px
}

.public-site .button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:26px;
    min-height:54px;
    padding:15px 24px;
    border:1px solid transparent;
    border-radius:6px;
    font-size:14px;
    line-height:1.4;
    font-weight:600;
    white-space:nowrap;
    transition:background .2s,transform .2s
}

.public-site .button:hover {
    transform:translateY(-2px)
}

.public-site .button span {
    font-size:20px;
    font-weight:400;
    line-height:1
}

.public-site .button-ink {
    background:var(--ink);
    color:#fff
}

.public-site .button-ink:hover {
    background:#31463e
}

.public-site .button-outline {
    border-color:#cfd6cc;
    background:transparent;
    color:var(--ink)
}

.public-site .button-outline:hover {
    background:#fff;
    border-color:var(--ink)
}

.public-site .button-lime {
    background:var(--accent);
    color:var(--ink)
}

.public-site .button-lime:hover {
    background:#e9f4bb
}

.public-site .button-row {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:32px
}

.public-site .text-link {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    font-size:14px;
    font-weight:600;
    line-height:1.5
}

.public-site .text-link span {
    font-size:21px;
    transition:transform .2s
}

.public-site a:hover .text-link span,.public-site a.text-link:hover span {
    transform:translate(3px,-3px)
}

.public-site .skip-link {
    position:fixed;
    top:-100px;
    left:16px;
    z-index:100;
    padding:12px 20px;
    background:var(--ink);
    color:#fff
}

.public-site .skip-link:focus {
    top:12px
}

.public-site .site-header {
    position:sticky;
    top:0;
    z-index:40;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--line)
}

.public-site .header-inner {
    min-height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}

.public-site .brand {
    display:inline-flex;
    align-items:center;
    gap:9px;
    flex-shrink:0
}

.public-site .brand img {
    width:46px;
    height:46px;
    object-fit:contain
}

.public-site .brand-wordmark {
    font-size:27px;
    font-weight:750;
    line-height:.95;
    letter-spacing:-.07em
}

.public-site .brand-wordmark>span {
    font-weight:400
}

.public-site .brand-wordmark small {
    display:block;
    font-size:8px;
    line-height:1;
    letter-spacing:.27em;
    margin-top:8px;
    font-weight:600
}

.public-site .site-nav {
    display:flex;
    align-items:center;
    gap:26px
}

.public-site .nav-item-link {
    font-size:13px;
    font-weight:500;
    color:#5f6a68;
    position:relative;
    padding-block:9px
}

.public-site .nav-item-link:hover,.public-site .nav-item-link.is-active {
    color:var(--ink)
}

.public-site .nav-item-link.is-active::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    background:var(--ink)
}

.public-site .nav-cta {
    min-height:42px;
    padding:11px 17px;
    margin-left:12px;
    font-size:12px;
    gap:22px
}

.public-site .menu-toggle {
    display:none;
    border:1px solid var(--line);
    padding:12px;
    width:44px;
    height:44px;
    border-radius:5px;
    background:#fff
}

.public-site .menu-toggle span {
    display:block;
    width:18px;
    height:2px;
    background:var(--ink);
    margin:4px auto;
    transition:transform .2s
}

.public-site .home-hero {
    background:var(--paper);
    overflow:hidden
}

.public-site .hero-grid {
    min-height:650px;
    padding-block:64px 70px;
    display:grid;
    grid-template-columns:1.07fr 1fr;
    gap:24px;
    align-items:center
}

.public-site .hero-copy {
    position:relative;
    z-index:2
}

.public-site .hero-copy .eyebrow {
    display:flex;
    align-items:center;
    gap:10px
}

.public-site .status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#637d4f;
    box-shadow:0 0 0 4px #e8eddc
}

.public-site .hero-copy h1 {
    font-size:clamp(48px,5.3vw,74px);
    line-height:1.03;
    letter-spacing:-.057em;
    margin-bottom:26px
}

.public-site .hero-copy h1>span {
    color:var(--green)
}

.public-site .hero-copy>p {
    font-size:17px;
    line-height:1.8;
    max-width:455px
}

.public-site .hero-note {
    display:flex;
    align-items:center;
    gap:11px;
    font-size:11px;
    color:#667264;
    margin-top:28px
}

.public-site .note-line {
    width:20px;
    height:1px;
    background:#718763;
    flex-shrink:0
}

.public-site .hero-art {
    height:510px;
    position:relative;
    isolation:isolate;
    min-width:0
}

.public-site .art-grid {
    position:absolute;
    inset:10px -20px 10px 0;
    background-image:linear-gradient(#dfe5d7 1px,transparent 1px),linear-gradient(90deg,#dfe5d7 1px,transparent 1px);
    background-size:44px 44px;
    opacity:.55;
    mask-image:radial-gradient(ellipse at center,black 15%,transparent 70%)
}

.public-site .art-orbit {
    position:absolute;
    border:1px solid #d4ddc5;
    border-radius:50%;
    z-index:-1
}

.public-site .orbit-one {
    width:440px;
    height:440px;
    top:36px;
    left:25px
}

.public-site .orbit-two {
    width:520px;
    height:520px;
    top:-5px;
    left:-15px;
    border-style:dashed;
    opacity:.65
}

.public-site .workspace-preview {
    position:absolute;
    width:91%;
    top:94px;
    left:3%;
    border-radius:12px;
    background:var(--ink);
    overflow:hidden;
    color:#fff;
    box-shadow:0 28px 50px -20px #1f322a55;
    transform:rotate(-3deg);
    border:1px solid #34413e
}

.public-site .preview-topbar {
    padding:15px 19px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid #35413e
}

.public-site .preview-brand {
    display:flex;
    align-items:center;
    font-size:11px;
    color:#bac5bf
}

.public-site .preview-brand>span:first-child {
    font-weight:500;
    font-size:19px;
    color:var(--accent)
}

.public-site .preview-divider {
    margin-inline:14px;
    height:16px;
    width:1px;
    background:#52605a
}

.public-site .preview-dots {
    color:#74827c;
    font-size:15px;
    letter-spacing:3px
}

.public-site .preview-body {
    display:flex
}

.public-site .preview-sidebar {
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:24px 13px;
    border-right:1px solid #35413e;
    width:60px;
    flex-shrink:0
}

.public-site .sidebar-icon {
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    color:#95a69d;
    font-size:14px;
    border-radius:6px
}

.public-site .sidebar-icon.selected {
    background:var(--accent);
    color:var(--ink)
}

.public-site .sidebar-icon.last {
    margin-top:auto
}

.public-site .preview-content {
    padding:24px;
    flex:1;
    min-width:0
}

.public-site .preview-greeting {
    position:relative;
    margin-bottom:20px
}

.public-site .preview-greeting>span:first-child {
    font:8px Consolas,monospace;
    letter-spacing:.12em;
    color:#a3b399;
    display:block;
    margin-bottom:9px
}

.public-site .preview-greeting strong {
    font-size:23px;
    font-weight:500;
    line-height:1.2;
    display:block;
    letter-spacing:-.03em
}

.public-site .mini-avatar {
    display:grid;
    place-items:center;
    width:29px;
    height:29px;
    border-radius:50%;
    background:#485d4d;
    color:var(--accent);
    position:absolute;
    right:0;
    top:15px;
    font-size:11px
}

.public-site .preview-stats {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-bottom:14px
}

.public-site .preview-stats>div {
    padding:12px;
    background:#263730;
    border:1px solid #425145;
    border-radius:6px
}

.public-site .preview-stats i {
    color:var(--accent);
    font-size:15px;
    margin-right:5px
}

.public-site .preview-stats>div>span {
    font-size:10px;
    color:#c2cbc5
}

.public-site .preview-stats strong {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:17px;
    font-weight:500;
    margin-top:7px
}

.public-site .tiny-dot {
    width:5px;
    height:5px;
    background:var(--accent);
    border-radius:50%
}

.public-site .preview-chart {
    background:#f1f3e8;
    border-radius:6px;
    padding:15px;
    color:var(--ink)
}

.public-site .preview-chart>div:first-child {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px
}

.public-site .preview-chart strong {
    font-size:10px
}

.public-site .preview-chart>div:first-child>span {
    font-size:8px;
    color:#68765b
}

.public-site .chart-bars {
    display:flex;
    align-items:flex-end;
    gap:10px;
    height:75px;
    padding-top:14px;
    border-bottom:1px solid #cdd5bc;
    background:repeating-linear-gradient(to top,transparent 0,transparent 23px,#dfe4d5 24px,transparent 25px)
}

.public-site .chart-bars span {
    flex:1;
    background:#b5c78a;
    border-radius:3px 3px 0 0;
    height:27%
}

.public-site .chart-bars span:nth-child(2) {
    height:39%
}

.public-site .chart-bars span:nth-child(3) {
    height:33%
}

.public-site .chart-bars span:nth-child(4) {
    height:54%
}

.public-site .chart-bars span:nth-child(5) {
    height:50%
}

.public-site .chart-bars span:nth-child(6) {
    height:68%
}

.public-site .chart-bars span:nth-child(7) {
    height:72%
}

.public-site .chart-bars span:nth-child(8) {
    height:84%;
    background:#71865a
}

.public-site .chart-bars span:nth-child(9) {
    height:100%;
    background:#354c39
}

.public-site .chart-baseline {
    display:flex;
    justify-content:space-between;
    font:7px Consolas,monospace;
    color:#667359;
    margin-top:7px;
    letter-spacing:.06em
}

.public-site .floating-label {
    position:absolute;
    display:flex;
    align-items:center;
    gap:12px;
    border:1px solid #e4e9dc;
    border-radius:8px;
    background:#fff;
    padding:15px 18px;
    box-shadow:0 12px 30px -14px #25372d40
}

.public-site .floating-label strong {
    display:block;
    color:var(--ink);
    font-size:13px;
    font-weight:600
}

.public-site .floating-label div>span {
    display:block;
    color:#7b8579;
    font-size:10px
}

.public-site .label-icon {
    width:34px;
    height:34px;
    background:#f0f5da;
    color:#5f7745;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:17px
}

.public-site .label-top {
    top:44px;
    right:-4px;
    transform:rotate(3deg)
}

.public-site .label-bottom {
    bottom:30px;
    left:-18px;
    transform:rotate(2deg)
}

.public-site .label-bottom .label-icon {
    color:#fff;
    background:var(--ink)
}

.public-site .art-caption {
    display:none;
    position:absolute;
    bottom:-40px;
    right:16px;
    font:8px Consolas,monospace;
    color:#77866b;
    letter-spacing:.15em
}

.public-site .audience-strip {
    border-block:1px solid var(--line)
}

.public-site .audience-strip .shell {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding-block:29px
}

.public-site .audience-strip .shell>span {
    font:9px Consolas,monospace;
    letter-spacing:.1em;
    color:#66715f
}

.public-site .audience-strip .shell>div {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:13px;
    font-weight:500
}

.public-site .audience-strip i {
    font-size:19px;
    color:#718063
}

.public-site .section-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:48px;
    margin-bottom:44px
}

.public-site .section-heading .eyebrow {
    margin-bottom:14px
}

.public-site .section-heading>p,.public-site .heading-aside {
    max-width:320px;
    font-size:15px;
    flex-shrink:0
}

.public-site .heading-aside .text-link {
    margin-top:17px
}

.public-site .solution-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px
}

.public-site .solution-card {
    border:1px solid var(--line);
    border-radius:10px;
    padding:30px;
    display:flex;
    flex-direction:column;
    background:#fff;
    transition:border-color .2s,box-shadow .2s,transform .2s
}

.public-site .solution-card:hover {
    border-color:#acb99d;
    box-shadow:0 14px 30px -20px #28382440;
    transform:translateY(-3px)
}

.public-site .card-topline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:27px
}

.public-site .solution-icon {
    display:inline-grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:9px;
    background:#f0f3e7;
    color:#5b7148;
    font-size:23px;
    flex-shrink:0
}

.public-site .category-label {
    font:10px Consolas,monospace;
    color:#657758;
    border:1px solid #dfe6d5;
    border-radius:4px;
    padding:3px 8px
}

.public-site .solution-card h3 {
    font-size:23px;
    letter-spacing:-.035em;
    margin-bottom:14px
}

.public-site .solution-card>p {
    font-size:14px;
    line-height:1.8;
    margin-bottom:28px
}

.public-site .solution-card>.text-link {
    margin-top:auto;
    padding-top:20px;
    border-top:1px solid var(--line)
}

.public-site .studio-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
    align-items:center
}

.public-site .studio-copy>p {
    margin-top:24px;
    font-size:16px
}

.public-site .studio-copy>.text-link {
    margin-top:25px
}

.public-site .principle-tags {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:35px
}

.public-site .principle-tags span {
    font:10px Consolas,monospace;
    border:1px solid #d9dfd1;
    padding:7px 11px;
    border-radius:4px;
    color:#637454
}

.public-site .service-row {
    display:flex;
    align-items:center;
    gap:20px;
    padding-block:28px;
    border-bottom:1px solid #d8dfd0
}

.public-site .service-row:first-child {
    border-top:1px solid #d8dfd0
}

.public-site .service-row .solution-icon {
    background:#e6edd8
}

.public-site .service-row h3 {
    font-size:20px;
    line-height:1.3;
    letter-spacing:-.025em;
    margin-bottom:6px
}

.public-site .service-row p {
    font-size:13px;
    line-height:1.7
}

.public-site .row-arrow {
    margin-left:auto;
    font-size:23px
}

.public-site .stack-link {
    margin-top:23px
}

.public-site .sector-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px
}

.public-site .sector-card {
    position:relative;
    padding:40px;
    border-radius:10px;
    overflow:hidden;
    min-height:295px
}

.public-site .sector-education {
    background:#e9efda
}

.public-site .sector-business {
    background:var(--ink);
    color:#fff
}

.public-site .sector-card h3 {
    position:relative;
    font-size:30px;
    letter-spacing:-.035em;
    line-height:1.25;
    margin-bottom:26px;
    max-width:85%
}

.public-site .sector-business h3 {
    color:#fff
}

.public-site .sector-business .eyebrow {
    color:var(--accent)
}

.public-site .sector-card>i {
    position:absolute;
    font-size:130px;
    right:-20px;
    bottom:34px;
    color:#637d3530;
    transform:rotate(-15deg)
}

.public-site .sector-business>i {
    color:#b8d09b20
}

.public-site .sector-card .text-link {
    position:relative
}

.public-site .cta-wrap {
    padding-top:0
}

.public-site .public-cta {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    padding:64px 60px;
    background:var(--ink);
    border-radius:12px
}

.public-site .public-cta .eyebrow {
    color:var(--accent);
    margin-bottom:17px
}

.public-site .public-cta h2 {
    color:#fff;
    font-size:40px;
    line-height:1.18;
    letter-spacing:-.04em
}

.public-site .public-cta p {
    color:#b8c4bc;
    font-size:14px;
    margin-top:20px
}

.public-site .public-cta>.button {
    flex-shrink:0
}

.public-site .cta-decoration {
    position:absolute;
    font-size:360px;
    line-height:1;
    top:-72px;
    right:35px;
    color:#dbea9c08;
    z-index:-1;
    font-weight:300
}

.public-site .site-footer {
    background:#f6f7f2;
    border-top:1px solid var(--line);
    padding:62px 0 22px
}

.public-site .footer-grid {
    display:grid;
    grid-template-columns:1.7fr 1fr 1.2fr;
    gap:60px;
    padding-bottom:52px
}

.public-site .footer-brand>p {
    font-size:13px;
    margin-top:21px
}

.public-site .footer-grid h2 {
    font-size:13px;
    letter-spacing:0;
    margin:10px 0 22px;
    font-weight:600
}

.public-site .footer-grid>div:not(.footer-brand)>a {
    display:block;
    margin-bottom:9px;
    font-size:13px;
    color:#667368
}

.public-site .footer-grid>div:not(.footer-brand)>a:hover {
    color:var(--ink);
    text-decoration:underline;
    text-underline-offset:4px
}

.public-site .footer-grid a span[aria-hidden] {
    margin-left:7px
}

.public-site .footer-bottom {
    border-top:1px solid #dde3d5;
    padding-top:22px;
    display:flex;
    justify-content:space-between;
    gap:24px;
    font-size:10px;
    color:#62715b
}

.public-site .page-hero {
    background:var(--paper);
    padding-block:78px 74px;
    border-bottom:1px solid var(--line);
    position:relative;
    overflow:hidden
}

.public-site .page-hero::after {
    content:"";
    position:absolute;
    width:310px;
    height:310px;
    border-radius:50%;
    border:1px solid #dce3d1;
    right:-90px;
    top:-110px;
    box-shadow:0 0 0 48px #dce3d120,0 0 0 96px #dce3d118;
    pointer-events:none
}

.public-site .page-hero h1 {
    font-size:clamp(38px,4.6vw,64px);
    line-height:1.13;
    margin-bottom:24px;
    position:relative;
    z-index:1
}

.public-site .page-hero h1>span {
    color:var(--green)
}

.public-site .page-hero p {
    max-width:575px;
    font-size:16px;
    line-height:1.8;
    position:relative;
    z-index:1
}

.public-site .catalog-section {
    padding-top:45px
}

.public-site .catalog-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:36px
}

.public-site .filter-buttons {
    display:flex;
    flex-wrap:wrap;
    gap:9px
}

.public-site .filter-button {
    padding:9px 20px;
    border:1px solid var(--line);
    border-radius:5px;
    background:#fff;
    font-size:13px;
    font-weight:500;
    color:#6f7a6a;
    transition:background .2s
}

.public-site .filter-button:hover {
    border-color:#a7b598;
    color:var(--ink)
}

.public-site .filter-button.is-active {
    background:var(--ink);
    color:#fff;
    border-color:var(--ink)
}

.public-site .catalog-count {
    font:11px Consolas,monospace;
    color:#67765b;
    white-space:nowrap
}

.public-site .detailed-grid .solution-card {
    padding:32px
}

.public-site .detailed-grid .solution-card>p {
    margin-bottom:24px
}

.public-site .ideal-for {
    font-size:12px;
    padding-block:16px;
    border-block:1px solid var(--line);
    color:#53624c;
    margin-bottom:20px
}

.public-site .ideal-for>span {
    display:block;
    font:9px Consolas,monospace;
    letter-spacing:.12em;
    color:#67765b;
    margin-bottom:5px
}

.public-site .feature-list {
    list-style:none;
    padding:0;
    margin:0 0 26px;
    font-size:13px;
    color:#64725c
}

.public-site .feature-list li {
    display:flex;
    align-items:baseline;
    gap:9px;
    margin-bottom:9px
}

.public-site .feature-list i {
    color:#6c8652
}

.public-site .catalog-note {
    display:flex;
    gap:22px;
    align-items:center;
    margin-top:36px;
    background:var(--paper);
    padding:28px 32px;
    border-radius:8px
}

.public-site .catalog-note h2 {
    font-size:20px;
    letter-spacing:-.025em;
    margin-bottom:7px
}

.public-site .catalog-note p {
    font-size:13px
}

.public-site .catalog-note>.text-link {
    margin-left:auto;
    flex-shrink:0
}

.public-site .about-story {
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:90px;
    align-items:center
}

.public-site .story-panel {
    position:relative;
    background:#e9efdb;
    border-radius:12px;
    padding:38px;
    min-height:510px;
    overflow:hidden
}

.public-site .story-mark {
    font-size:190px;
    line-height:1.2;
    letter-spacing:-.12em;
    font-weight:750;
    color:#2e4436;
    margin:10px 0 36px;
    position:relative
}

.public-site .story-mark>span:first-child {
    color:#728756;
    font-weight:350
}

.public-site .story-spark {
    position:absolute;
    font-size:100px;
    top:15px;
    right:20px;
    color:#9cae72;
    font-weight:300
}

.public-site .story-panel h2 {
    font-size:31px;
    line-height:1.2;
    position:relative
}

.public-site .story-bottom {
    display:block;
    font:9px Consolas,monospace;
    letter-spacing:.17em;
    margin-top:28px;
    color:#6d7f5b
}

.public-site .story-copy>p {
    margin-top:23px;
    font-size:15px;
    line-height:1.8
}

.public-site .story-facts {
    border-top:1px solid var(--line);
    margin-top:30px;
    padding-top:25px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px
}

.public-site .story-facts h3 {
    font-size:17px;
    letter-spacing:-.02em;
    margin-bottom:10px
}

.public-site .story-facts p {
    font-size:13px
}

.public-site .values-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px
}

.public-site .values-grid article {
    padding-top:28px;
    border-top:1px solid #d7dfcc
}

.public-site .values-grid i {
    font-size:27px;
    color:#637a4b;
    display:block;
    margin-bottom:24px
}

.public-site .values-grid h3 {
    font-size:23px;
    margin-bottom:14px
}

.public-site .values-grid p {
    font-size:14px
}

.public-site .process-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px
}

.public-site .process-grid article {
    border-top:1px solid var(--line);
    padding-top:24px
}

.public-site .step-number {
    display:inline-block;
    font:11px Consolas,monospace;
    color:#73865d;
    margin-bottom:28px
}

.public-site .process-grid h3 {
    font-size:23px;
    margin-bottom:14px
}

.public-site .process-grid p {
    font-size:13px
}

.public-site .services-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px
}

.public-site .service-detail {
    border:1px solid var(--line);
    border-radius:10px;
    padding:32px;
    display:flex;
    flex-direction:column
}

.public-site .service-number {
    font:11px Consolas,monospace;
    color:#6d795f
}

.public-site .service-detail h2 {
    font-size:26px;
    margin-bottom:17px;
    line-height:1.25
}

.public-site .service-detail>p {
    font-size:14px;
    margin-bottom:24px
}

.public-site .service-outcome {
    font:11px Consolas,monospace;
    color:#6b7f52;
    background:var(--paper);
    padding:12px;
    margin-top:auto;
    margin-bottom:24px;
    border-left:2px solid #c5d68c
}

.public-site .service-detail .text-link {
    border-top:1px solid var(--line);
    padding-top:22px;
    font-size:12px
}

.public-site .portfolio-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:52px 30px
}

.public-site .work-card {
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    display:flex;
    flex-direction:column
}

.public-site .work-visual {
    position:relative;
    min-height:255px;
    display:grid;
    place-items:center;
    overflow:hidden;
    isolation:isolate
}

.public-site .work-tone-0 {
    background:#e9efdc;
    color:#567048
}

.public-site .work-tone-1 {
    background:var(--ink);
    color:#d2e0a4
}

.public-site .work-tone-2 {
    background:#f0ede5;
    color:#8d7b58
}

.public-site .work-visual>i {
    font-size:75px;
    transform:rotate(-8deg)
}

.public-site .work-orbit {
    position:absolute;
    width:170px;
    height:170px;
    border:1px solid currentColor;
    opacity:.16;
    border-radius:50%;
    box-shadow:0 0 0 32px #a5b39522,0 0 0 65px #a5b3950c;
    z-index:-1
}

.public-site .work-visual-label {
    position:absolute;
    top:23px;
    left:28px;
    font:10px Consolas,monospace;
    max-width:calc(100% - 50px)
}

.public-site .work-index {
    position:absolute;
    bottom:22px;
    right:25px;
    font:11px Consolas,monospace
}

.public-site .work-copy {
    padding:30px;
    display:flex;
    flex-direction:column;
    flex:1
}

.public-site .work-copy .eyebrow {
    font-size:9px;
    margin-bottom:10px
}

.public-site .work-copy h2 {
    font-size:26px;
    margin-bottom:16px
}

.public-site .work-copy p {
    font-size:14px;
    margin-bottom:25px
}

.public-site .work-copy .text-link {
    margin-top:auto;
    padding-top:19px;
    border-top:1px solid var(--line)
}

.public-site .contact-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:80px;
    align-items:start
}

.public-site .contact-details>p {
    font-size:15px;
    margin-top:25px;
    margin-bottom:35px
}

.public-site .contact-method {
    display:flex;
    align-items:center;
    gap:16px;
    padding-block:22px;
    border-top:1px solid var(--line)
}

.public-site .contact-method>span:last-child {
    margin-left:auto;
    font-size:22px
}

.public-site .contact-method small {
    display:block;
    font:9px Consolas,monospace;
    letter-spacing:.1em;
    color:#7c886f;
    margin-bottom:6px
}

.public-site .contact-method strong {
    font-size:15px;
    font-weight:500
}

.public-site .contact-method:hover strong {
    text-decoration:underline;
    text-underline-offset:5px
}

.public-site .contact-note {
    margin-top:20px;
    display:flex;
    gap:15px;
    padding:22px;
    background:var(--paper);
    border-radius:7px
}

.public-site .contact-note i {
    font-size:21px;
    color:#6f8357
}

.public-site .contact-note p {
    font-size:12px
}

.public-site .enquiry-panel {
    padding:38px;
    border:1px solid var(--line);
    border-radius:10px
}

.public-site .enquiry-panel>.eyebrow {
    font-size:9px;
    margin-bottom:10px
}

.public-site .enquiry-panel h2 {
    font-size:30px
}

.public-site .form-intro {
    font-size:11px;
    margin-top:12px;
    margin-bottom:28px
}

.public-site .enquiry-fields {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px 18px
}

.public-site .field-full {
    grid-column:1/-1
}

.public-site .field label {
    display:block;
    font-size:12px;
    font-weight:600;
    color:#354b3c;
    margin-bottom:8px
}

.public-site .field label span {
    color:#6c844e
}

.public-site .field .form-control {
    background:#fafbf7;
    border:1px solid #dde3d5;
    border-radius:5px;
    padding:12px 13px;
    font-size:12px;
    line-height:1.6;
    color:var(--ink);
    width:100%
}

.public-site .field .form-control::placeholder {
    color:#6a7760;
    opacity:1
}

.public-site .field .form-control:focus {
    outline:0;
    background:#fff;
    border-color:#778f58;
    box-shadow:0 0 0 3px #dbea9c50
}

.public-site .field textarea {
    resize:vertical;
    min-height:125px
}

.public-site .field .text-danger {
    font-size:11px;
    display:block;
    margin-top:5px
}

.public-site .field .input-validation-error {
    border-color:#bb4141
}

.public-site .enquiry-captcha {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:12px 20px;
    padding:18px 20px;
    border:1px solid var(--line);
    border-radius:7px;
    background:var(--paper);
}

.public-site .enquiry-captcha .captcha-copy label {
    margin-bottom:5px;
}

.public-site .captcha-copy p {
    font-size:13px;
}

.public-site .captcha-question {
    display:inline-block;
    margin-inline:4px;
    color:var(--ink);
    font-size:18px;
    letter-spacing:.06em;
    white-space:nowrap;
}

.public-site .enquiry-captcha .captcha-answer {
    width:110px;
    max-width:100%;
    background:#fff;
}

.public-site .enquiry-captcha .text-danger {
    flex-basis:100%;
    margin-top:0;
}

.public-site .enquiry-captcha .field-validation-valid {
    display:none;
}
.public-site .form-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    padding-top:26px
}

.public-site .form-bottom p {
    font-size:10px;
    max-width:175px
}

.public-site .form-bottom .button {
    font-size:12px;
    min-height:46px;
    padding:13px 18px;
    gap:22px
}

@media(min-width:1440px) {
    .public-site .hero-grid {
        min-height:700px
    }
}

@media(max-width:1150px) {
    .public-site .site-nav {
        gap:18px
    }
    .public-site .shell {
        width:calc(100% - 64px)
    }
    .public-site .hero-grid {
        gap:20px
    }
    .public-site .hero-copy h1 {
        font-size:59px
    }
    .public-site .hero-art {
        height:495px
    }
    .public-site .workspace-preview {
        width:96%;
        left:1%
    }
    .public-site .label-top {
        right:-10px
    }
    .public-site .label-bottom {
        left:-10px;
        bottom:15px
    }
    .public-site .preview-content {
        padding:20px
    }
    .public-site .studio-grid,.public-site .about-story,.public-site .contact-grid {
        gap:48px
    }
    .public-site .section-heading {
        gap:30px
    }
    .public-site .solution-card,.public-site .detailed-grid .solution-card,.public-site .service-detail {
        padding:25px
    }
    .public-site .public-cta {
        padding:48px 40px
    }
    .public-site .public-cta h2 {
        font-size:34px
    }
    .public-site .enquiry-panel {
        padding:28px
    }
}

@media(max-width:1050px) {
    .public-site .header-inner {
        min-height:78px
    }
    .public-site .menu-toggle {
        display:block;
        flex-shrink:0
    }
    .public-site .site-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        width:100%;
        padding:20px 32px 28px;
        background:#fff;
        box-shadow:0 20px 30px -20px #17252b30;
        border-bottom:1px solid var(--line)
    }
    .public-site .site-nav.is-open {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:12px 24px
    }
    .public-site .nav-item-link {
        padding-block:10px
    }
    .public-site .nav-cta {
        grid-column:1/-1;
        justify-self:start;
        margin:8px 0 0
    }
    .public-site .menu-toggle[aria-expanded="true"] span:first-child {
        transform:translateY(3px) rotate(45deg)
    }
    .public-site .menu-toggle[aria-expanded="true"] span:last-child {
        transform:translateY(-3px) rotate(-45deg)
    }
    .public-site .hero-copy h1 {
        font-size:51px
    }
    .public-site .hero-copy>p {
        font-size:15px
    }
    .public-site .hero-copy .button {
        padding:13px 16px;
        font-size:12px;
        gap:15px
    }
    .public-site .hero-grid {
        min-height:620px;
        padding-block:50px
    }
    .public-site .hero-art {
        height:470px
    }
    .public-site .preview-sidebar {
        width:45px;
        padding:22px 7px
    }
    .public-site .preview-content {
        padding:18px
    }
    .public-site .preview-stats {
        gap:8px
    }
    .public-site .preview-stats>div {
        padding:10px
    }
    .public-site .preview-stats>div>span {
        font-size:9px
    }
    .public-site .floating-label {
        padding:12px
    }
    .public-site .preview-chart>div:first-child>span {
        font-size:7px
    }
    .public-site .audience-strip .shell {
        gap:16px
    }
    .public-site .audience-strip .shell>span {
        max-width:110px;
        line-height:1.6
    }
    .public-site .audience-strip .shell>div {
        font-size:11px
    }
    .public-site .solution-grid,.public-site .services-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .public-site .section-heading>p,.public-site .heading-aside {
        max-width:270px
    }
    .public-site .studio-grid,.public-site .about-story {
        gap:36px
    }
    .public-site .story-panel {
        padding:30px
    }
    .public-site .story-panel h2 {
        font-size:27px
    }
    .public-site .story-mark {
        font-size:155px;
        margin-top:38px
    }
    .public-site .story-spark {
        font-size:70px
    }
    .public-site .story-facts {
        grid-template-columns:1fr;
        gap:18px
    }
    .public-site .contact-grid {
        gap:32px;
        grid-template-columns:.85fr 1.15fr
    }
    .public-site .contact-details h2 {
        font-size:34px
    }
    .public-site .contact-details>.eyebrow {
        font-size:9px
    }
    .public-site .enquiry-fields {
        grid-template-columns:1fr;
        gap:16px
    }
    .public-site .contact-method strong {
        font-size:13px
    }
    .public-site .contact-method {
        gap:10px
    }
}

@media(max-width:760px) {
    .public-site .shell {
        width:calc(100% - 40px)
    }
    .public-site .header-inner {
        min-height:74px
    }
    .public-site .brand-wordmark {
        font-size:25px
    }
    .public-site .brand img {
        width:40px;
        height:40px
    }
    .public-site .site-nav {
        padding-inline:20px
    }
    .public-site .section-space {
        padding-block:64px
    }
    .public-site .hero-grid {
        grid-template-columns:1fr;
        padding-top:52px;
        padding-bottom:42px;
        gap:20px
    }
    .public-site .hero-copy h1 {
        font-size:clamp(43px,8vw,61px)
    }
    .public-site .desktop-break {
        display:none
    }
    .public-site .hero-copy>p {
        font-size:15px;
        max-width:460px
    }
    .public-site .hero-note {
        font-size:10px;
        margin-top:24px
    }
    .public-site .hero-art {
        width:min(500px,100%);
        height:465px;
        margin:10px auto 0
    }
    .public-site .workspace-preview {
        width:92%;
        left:4%;
        top:76px
    }
    .public-site .preview-sidebar {
        width:54px;
        padding:22px 10px
    }
    .public-site .preview-content {
        padding:22px
    }
    .public-site .label-top {
        top:29px;
        right:0
    }
    .public-site .label-bottom {
        bottom:13px;
        left:0
    }
    .public-site .art-caption {
    display:none;
        bottom:-12px;
        font-size:7px;
        right:0
    }
    .public-site .orbit-one {
        left:0;
        top:8px;
        width:100%;
        height:96%
    }
    .public-site .orbit-two {
        left:-24px;
        top:-16px;
        width:calc(100% + 48px);
        height:calc(96% + 48px)
    }
    .public-site .audience-strip .shell {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:19px 10px;
        padding-block:24px
    }
    .public-site .audience-strip .shell>span {
        max-width:none;
        font-size:8px
    }
    .public-site .audience-strip .shell>div {
        font-size:11px;
        gap:7px
    }
    .public-site .section-heading {
        display:block;
        margin-bottom:32px
    }
    .public-site .section-heading h2 {
        font-size:34px
    }
    .public-site .section-heading>p,.public-site .heading-aside {
        max-width:100%;
        margin-top:20px;
        font-size:14px
    }
    .public-site .section-heading>.text-link {
        margin-top:20px
    }
    .public-site .solution-grid {
        gap:16px
    }
    .public-site .solution-card {
        padding:23px
    }
    .public-site .solution-card h3 {
        font-size:21px
    }
    .public-site .card-topline {
        margin-bottom:24px
    }
    .public-site .studio-grid,.public-site .about-story,.public-site .contact-grid {
        grid-template-columns:1fr;
        gap:38px
    }
    .public-site .studio-copy>p {
        font-size:15px
    }
    .public-site .sector-grid {
        grid-template-columns:1fr;
        gap:18px
    }
    .public-site .sector-card {
        padding:32px;
        min-height:270px
    }
    .public-site .sector-card h3 {
        font-size:29px
    }
    .public-site .public-cta {
        display:block;
        padding:38px 30px
    }
    .public-site .public-cta h2 {
        font-size:31px
    }
    .public-site .public-cta p {
        font-size:13px
    }
    .public-site .public-cta>.button {
        margin-top:28px
    }
    .public-site .cta-wrap {
        padding-top:0
    }
    .public-site .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:35px 18px;
        padding-bottom:35px
    }
    .public-site .footer-brand {
        grid-column:1/-1
    }
    .public-site .site-footer {
        padding-top:40px
    }
    .public-site .footer-bottom {
        flex-direction:column;
        gap:8px;
        font-size:9px
    }
    .public-site .page-hero {
        padding-block:54px 48px
    }
    .public-site .page-hero h1 {
        font-size:clamp(36px,6.5vw,48px)
    }
    .public-site .page-hero p {
        font-size:14px
    }
    .public-site .catalog-section {
        padding-top:30px
    }
    .public-site .catalog-toolbar {
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
        margin-bottom:25px
    }
    .public-site .filter-button {
        padding:8px 15px;
        font-size:12px
    }
    .public-site .catalog-note {
        flex-wrap:wrap;
        padding:24px;
        gap:16px
    }
    .public-site .catalog-note>div {
        flex:1;
        min-width:180px
    }
    .public-site .catalog-note>.text-link {
        margin-left:0
    }
    .public-site .story-panel {
        min-height:435px;
        max-width:510px;
        width:100%
    }
    .public-site .story-mark {
        font-size:160px;
        margin:12px 0 32px
    }
    .public-site .story-spark {
        font-size:80px;
        top:15px;
        right:45px
    }
    .public-site .story-facts {
        grid-template-columns:1fr 1fr
    }
    .public-site .values-grid {
        gap:24px;
        grid-template-columns:1fr
    }
    .public-site .values-grid article {
        padding-top:24px
    }
    .public-site .values-grid i {
        margin-bottom:14px
    }
    .public-site .process-grid {
        grid-template-columns:1fr 1fr;
        gap:28px
    }
    .public-site .step-number {
        margin-bottom:17px
    }
    .public-site .services-grid {
        gap:16px
    }
    .public-site .service-detail {
        padding:24px
    }
    .public-site .service-detail h2 {
        font-size:23px
    }
    .public-site .service-detail .text-link {
        font-size:12px;
        gap:10px
    }
    .public-site .service-outcome {
        font-size:10px
    }
    .public-site .portfolio-grid {
        gap:24px
    }
    .public-site .work-visual {
        min-height:220px
    }
    .public-site .work-copy {
        padding:24px
    }
    .public-site .work-copy h2 {
        font-size:23px
    }
    .public-site .work-visual-label {
        font-size:9px;
        left:20px
    }
    .public-site .contact-section {
        padding-top:44px
    }
    .public-site .contact-details>p {
        max-width:540px
    }
    .public-site .contact-method strong {
        font-size:15px
    }
    .public-site .enquiry-fields {
        grid-template-columns:1fr 1fr;
        gap:20px 16px
    }
    .public-site .enquiry-panel {
        padding:28px
    }
}

@media(max-width:540px) {
    .public-site .solution-grid,.public-site .services-grid,.public-site .portfolio-grid {
        grid-template-columns:1fr
    }
    .public-site .eyebrow {
        font-size:9px
    }
    .public-site .hero-copy h1 {
        font-size:45px
    }
    .public-site .hero-art {
        height:490px
    }
    .public-site .preview-content {
        padding:18px 16px
    }
    .public-site .preview-sidebar {
        width:44px;
        padding:22px 6px
    }
    .public-site .preview-topbar {
        padding:12px 14px
    }
    .public-site .preview-brand {
        font-size:9px
    }
    .public-site .preview-divider {
        margin-inline:10px
    }
    .public-site .preview-greeting strong {
        font-size:21px
    }
    .public-site .preview-greeting>span:first-child {
        font-size:7px
    }
    .public-site .preview-stats strong {
        font-size:15px
    }
    .public-site .preview-stats>div {
        padding:9px
    }
    .public-site .preview-stats>div>span {
        font-size:8px
    }
    .public-site .preview-stats i {
        font-size:13px;
        margin-right:3px
    }
    .public-site .preview-chart {
        padding:12px
    }
    .public-site .preview-chart>div:first-child>span {
        font-size:6px
    }
    .public-site .chart-bars {
        gap:6px;
        height:68px
    }
    .public-site .chart-baseline {
        font-size:6px
    }
    .public-site .floating-label {
        padding:10px 12px;
        gap:10px
    }
    .public-site .floating-label strong {
        font-size:11px
    }
    .public-site .floating-label div>span {
        font-size:9px
    }
    .public-site .label-icon {
        width:29px;
        height:29px;
        font-size:15px
    }
    .public-site .label-top {
        top:31px
    }
    .public-site .label-bottom {
        bottom:9px
    }
    .public-site .section-heading h2 {
        font-size:31px
    }
    .public-site .solution-card {
        padding:28px
    }
    .public-site .solution-card h3 {
        font-size:24px
    }
    .public-site .solution-card>p {
        font-size:14px
    }
    .public-site .service-row {
        gap:14px
    }
    .public-site .service-row h3 {
        font-size:18px
    }
    .public-site .service-row .solution-icon {
        width:40px;
        height:40px;
        font-size:20px
    }
    .public-site .public-cta {
        padding:34px 26px
    }
    .public-site .public-cta h2 {
        font-size:28px
    }
    .public-site .footer-grid>div:not(.footer-brand)>a {
        font-size:12px;
        overflow-wrap:anywhere
    }
    .public-site .page-hero h1 {
        font-size:37px
    }
    .public-site .page-hero::after {
        right:-230px
    }
    .public-site .filter-buttons {
        gap:7px
    }
    .public-site .filter-button {
        padding:8px 11px;
        font-size:11px
    }
    .public-site .detailed-grid .solution-card {
        padding:28px
    }
    .public-site .story-facts {
        grid-template-columns:1fr
    }
    .public-site .story-panel h2 {
        font-size:29px
    }
    .public-site .story-spark {
        right:10px
    }
    .public-site .process-grid {
        gap:26px 20px
    }
    .public-site .process-grid h3 {
        font-size:21px
    }
    .public-site .process-grid p {
        font-size:12px
    }
    .public-site .service-detail {
        padding:28px
    }
    .public-site .work-visual {
        min-height:250px
    }
    .public-site .enquiry-panel {
        padding:25px 22px
    }
    .public-site .enquiry-panel h2 {
        font-size:27px
    }
    .public-site .enquiry-fields {
        grid-template-columns:1fr;
        gap:19px
    }
    .public-site .form-bottom {
        align-items:flex-start;
        flex-direction:column;
        gap:16px
    }
    .public-site .form-bottom p {
        max-width:none
    }
    .public-site .form-bottom .button {
        width:100%;
        justify-content:space-between
    }
    .public-site .contact-details>.eyebrow {
        font-size:8px
    }
}

@media(max-width:360px) {
    .public-site .hero-copy h1 {
        font-size:39px
    }
    .public-site .button-row .button {
        gap:12px;
        font-size:11px;
        padding:12px
    }
    .public-site .page-hero h1 {
        font-size:33px
    }
    .public-site .hero-art {
        height:485px
    }
    .public-site .preview-stats i {
        display:none
    }
    .public-site .preview-content {
        padding-inline:12px
    }
    .public-site .preview-chart>div:first-child>span {
        display:none
    }
    .public-site .footer-grid {
        grid-template-columns:1fr;
        gap:20px
    }
}

@media(prefers-reduced-motion:reduce) {
    .public-site *,.public-site *::before,.public-site *::after {
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important
    }
}

