:root{--paper:#f7f6f2;--ink:#242722;--muted:#6b6e67;--accent:#e95631;--line:#dedfd6}
html{scroll-padding-top:100px}body{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:#d9ebad;color:var(--ink)}h1,h2,h3,h4,h5,h6,.btn,.navbar{font-family:inherit}a{color:var(--accent)}a:hover{color:#b83c1d}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.container{max-width:1240px;padding-left:36px;padding-right:36px}.text-primary{color:var(--accent)!important}.text-muted{color:var(--muted)!important}.bg-light{background:var(--paper)!important}.text-uppercase{text-transform:none!important}.btn{border-radius:999px;font-weight:600;letter-spacing:0;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);border-color:var(--ink);color:white}.btn-primary:hover,.btn-primary:focus,.btn-primary:active{background:var(--accent)!important;border-color:var(--accent)!important;color:white}.btn-xl{padding:18px 28px;font-size:15px}.btn-xl span{margin-left:32px;font-size:22px}.btn-dark{background:var(--ink);border-color:var(--ink)}
#mainNav,#mainNav.navbar-shrink{background:rgba(247,246,242,.97);padding:23px 0;border-bottom:1px solid var(--line)}#mainNav .wordmark{font-size:24px;font-weight:800;letter-spacing:-1.2px;color:var(--ink)}.wordmark span{font-size:12px;vertical-align:top;margin-left:4px;letter-spacing:0}#mainNav .navbar-nav .nav-item .nav-link{color:var(--ink);font-size:13px;letter-spacing:0;font-weight:500;padding:10px 15px}#mainNav .navbar-nav .nav-item .nav-link:hover,#mainNav .navbar-nav .nav-item .nav-link.active{color:var(--accent)}#mainNav .navbar-toggler{background:var(--ink);padding:12px 16px;border-radius:40px;font-family:inherit}
header.masthead{position:relative;overflow:hidden;background:var(--paper);text-align:left;color:var(--ink);padding:174px 0 86px;border-bottom:1px solid var(--line)}header.masthead:after{content:'✳';position:absolute;right:8%;top:230px;font-size:clamp(140px,21vw,300px);line-height:1;color:var(--accent);transform:rotate(-12deg);pointer-events:none}header.masthead .container{position:relative;z-index:1}header.masthead .masthead-subheading{display:flex;align-items:center;gap:10px;font-family:inherit;font-size:14px;font-style:normal;margin-bottom:34px}.intro-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.hero-title{font-size:clamp(56px,7.7vw,106px);line-height:1.02;letter-spacing:-6px;font-weight:600;margin:0;max-width:900px}.hero-title>span:not(.hero-period){font-family:Georgia,serif;font-style:italic;font-weight:400}.hero-period{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin:32px 0 24px}.hero-description{font-size:16px;line-height:1.8;color:var(--muted);margin:0;max-width:500px}.hero-note{font-family:Georgia,serif;font-style:italic;font-size:24px;line-height:1.3;transform:rotate(-8deg);margin-right:9%}
.page-section{padding:100px 0;border-bottom:1px solid var(--line)}.page-section>.container>.text-center{text-align:left!important;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end;margin-bottom:50px}.page-section h2.section-heading{font-size:clamp(32px,4vw,52px);line-height:1.1;letter-spacing:-2px;font-weight:500;margin:0}.page-section h3.section-subheading{font-family:inherit;font-size:15px;font-style:normal;line-height:1.8;font-weight:400;max-width:440px;margin:0 0 0 auto}.section-heading:before{content:'↗';font-size:24px;color:var(--accent);display:block;margin-bottom:18px;letter-spacing:0}
.portfolio .row{row-gap:24px}.portfolio .row>[class*=col-]{flex:0 0 50%;max-width:50%}.portfolio .row>[class*=col-]:nth-child(even){padding-top:64px}.portfolio .portfolio-item{max-width:none;background:none}.portfolio .portfolio-item .portfolio-link{max-width:none;overflow:hidden;background:#e7e9df;border-radius:8px;display:block}.portfolio .portfolio-item .portfolio-link img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .45s}.portfolio .portfolio-item .portfolio-link:hover img{transform:scale(1.035)}.portfolio .portfolio-item .portfolio-link .portfolio-hover{background:rgba(36,39,34,.3);z-index:1}.portfolio .portfolio-item .portfolio-caption{background:none;text-align:left;padding:23px 0}.portfolio .portfolio-item .portfolio-caption .portfolio-caption-heading{font-family:inherit;font-size:23px;letter-spacing:-.6px;font-weight:500;display:flex;justify-content:space-between}.portfolio-caption-heading:after{content:'↗';color:var(--accent)}.portfolio .portfolio-item .portfolio-caption .portfolio-caption-subheading{font-family:inherit;font-style:normal;font-size:14px;margin-top:8px}
.services-section{background:#e9eddc}.services-section .row{text-align:left!important}.services-section .row>[class*=col-]{padding:30px;border-left:1px solid #cdd3bd}.services-section .fa-stack{font-size:26px}.services-section .fa-circle{color:transparent!important}.services-section .fa-inverse{color:var(--ink)}.services-section h4{font-size:22px;font-weight:500;letter-spacing:-.5px}.services-section p{font-size:15px;line-height:1.9}
.timeline:before{left:33px;background:var(--line)}.timeline>li{min-height:110px;margin-bottom:45px}.timeline>li .timeline-image{left:0;margin-left:0;width:68px;height:68px;border:1px solid var(--line);background:var(--paper);overflow:hidden}.timeline>li .timeline-image img{width:100%;height:100%;object-fit:cover}.timeline>li .timeline-panel,.timeline>li.timeline-inverted>.timeline-panel{width:100%;float:none;text-align:left;padding:0 0 0 110px}.timeline h4{font-size:17px;font-weight:500}.timeline h4.subheading{font-size:22px;letter-spacing:-.5px}.timeline .timeline-body p{max-width:780px;line-height:1.9;font-size:15px}
.team-member{display:grid;grid-template-columns:160px 1fr;column-gap:40px;text-align:left;margin:0;align-items:center}.team-member img{grid-row:1/4;width:160px;height:160px;border:0!important;object-fit:cover}.team-member h4{margin:0;font-size:32px;font-weight:500;letter-spacing:-1px}.team-member p{margin:8px 0 16px}.team-member .btn-group{display:flex;flex-wrap:wrap;gap:8px}.team-member .btn-social{width:40px;height:40px;font-size:15px;border-radius:50%!important}
section.contact{background:#ece8e1;background-image:none;color:var(--ink)}section.contact .section-heading{color:var(--ink)}section.contact .col-lg-8{max-width:100%;padding:0}section.contact .form-control{border:1px solid #d3d0c9;border-radius:6px;background:var(--paper);padding:18px;font-size:15px;color:var(--ink);height:auto}section.contact .form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e9563120}section.contact .form-control::placeholder{font-family:inherit;font-weight:400;color:var(--muted)}section.contact textarea.form-control{min-height:214px}section.contact .text-center:last-child{text-align:right!important;margin-top:24px}.g-recaptcha{margin:20px 0;max-width:100%}.footer{padding:32px 0!important;background:var(--paper);font-family:inherit;font-size:12px;color:var(--muted)}.footer a{color:var(--ink)}.footer .btn-social{width:32px;height:32px;font-size:12px}.cookie-notice{position:fixed;bottom:18px;left:18px;right:18px;z-index:1040;max-width:650px;margin:0 auto;padding:18px 22px;background:var(--ink);color:var(--paper);border:0;border-radius:12px;box-shadow:0 8px 40px #0002;display:flex;gap:18px;align-items:center;font-size:12px;line-height:1.7}.cookie-notice p{margin:0}.cookie-notice button{flex-shrink:0;background:#d9ebad;color:var(--ink);border:0;padding:10px 18px;border-radius:30px}.portfolio-modal .modal-content{background:var(--paper)}.portfolio-modal .modal-content h2{font-size:clamp(30px,5vw,52px);letter-spacing:-1px}.portfolio-modal .modal-content p.item-intro{font-family:inherit;font-style:normal}.portfolio-modal .close-modal{width:36px;height:36px}
@media(min-width:1400px){header.masthead:after{right:calc((100vw - 1200px)/2)}}
@media(max-width:991px){#mainNav .navbar-collapse{padding-top:20px}.hero-title{letter-spacing:-4px}header.masthead:after{right:4%;top:240px;font-size:170px}.hero-note{margin-right:2%}.services-section .row>[class*=col-]{border-left:0;border-top:1px solid #cdd3bd}.footer .row{gap:16px}}
@media(max-width:767px){.container{padding-left:24px;padding-right:24px}#mainNav,#mainNav.navbar-shrink{padding:16px 0}header.masthead{padding:136px 0 56px}header.masthead:after{font-size:90px;top:112px;right:24px;opacity:.16}.hero-title{font-size:clamp(46px,10.2vw,76px);letter-spacing:-2.8px}.hero-bottom{margin-top:24px}.hero-note{display:none}.hero-description{font-size:14px}.page-section{padding:64px 0}.page-section>.container>.text-center{grid-template-columns:1fr;gap:18px;margin-bottom:32px}.page-section h3.section-subheading{margin:0;max-width:none}.portfolio .row>[class*=col-]{flex-basis:100%;max-width:100%}.portfolio .row>[class*=col-]:nth-child(even){padding-top:0}.portfolio .row{row-gap:8px}.team-member{grid-template-columns:80px 1fr;gap:12px 20px}.team-member img{width:80px;height:80px;grid-row:1/3}.team-member h4{font-size:26px}.team-member p{font-size:14px;margin:0}.team-member .btn-group{grid-column:1/-1;margin-top:16px}.timeline>li .timeline-panel,.timeline>li.timeline-inverted>.timeline-panel{padding-left:88px}.cookie-notice{left:10px;right:10px;bottom:10px;padding:16px;gap:12px}.g-recaptcha{transform-origin:left top}.footer .btn-social{margin-right:12px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Reset the legacy theme styles that conflict with the new layout. */
#mainNav .wordmark{text-transform:none}
#mainNav .navbar-nav .nav-item .nav-link.active,#mainNav .navbar-nav .nav-item .nav-link:hover{background:transparent}
header.masthead .masthead-subheading{text-shadow:none;color:var(--ink);font-weight:400}
.cookie-notice p{min-width:0;font-weight:400}
@media(max-width:767px){#mainNav>.container{padding-left:24px;padding-right:24px}.cookie-notice{flex-wrap:wrap}.cookie-notice p{flex:1 1 190px}}

/* Portfolio refinements: original identity, project reader and journey cards. */
#mainNav .navbar-brand img,
#mainNav.navbar-shrink .navbar-brand img { width:auto; height:42px; max-width:190px; object-fit:contain; }
.services-section { background:#fff0e5; }
.services-section .row>[class*=col-] { border-color:#ebd6c6; }
.portfolio .portfolio-item .portfolio-link .portfolio-hover {
    display:flex; align-items:flex-end; padding:24px;
    background:linear-gradient(180deg,transparent 40%,rgba(36,39,34,.65));
    transition:opacity .25s;
}
.portfolio .portfolio-item .portfolio-link .portfolio-hover-content {
    position:static; width:100%; height:auto; margin:0; top:auto;
    display:flex; align-items:center; justify-content:space-between;
    font-size:15px; font-weight:500; text-align:left; color:white;
    transform:translateY(10px); transition:transform .25s;
}
.portfolio-hover-content span:last-child {
    display:grid; place-items:center; width:46px; height:46px;
    background:var(--accent); color:white; border-radius:50%; font-size:26px;
}
.portfolio .portfolio-item .portfolio-link:focus-visible .portfolio-hover,
.portfolio .portfolio-item .portfolio-link:hover .portfolio-hover { opacity:1; }
.portfolio .portfolio-item .portfolio-link:is(:hover,:focus-visible) .portfolio-hover-content { transform:none; }

.project-detail.modal { padding:0!important; overflow:hidden; }
.project-detail .modal-dialog { width:100%; max-width:none; margin:0; height:100%; }
.project-detail .modal-content { height:100vh; height:100dvh; padding:0; border:0; border-radius:0; text-align:left; overflow:hidden; }
.project-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; height:100%; min-height:0; }
.project-detail-scroll { overflow-y:auto; overscroll-behavior:contain; padding:64px clamp(24px,5vw,84px); scrollbar-gutter:stable; }
.project-eyebrow { display:block; font-size:11px; letter-spacing:2px; color:var(--accent); font-weight:600; margin-bottom:24px; }
.project-detail .modal-content h2 { font-size:clamp(36px,5vw,72px); line-height:1.08; margin:0 0 16px; overflow-wrap:anywhere; }
.project-detail .project-slogan { font-size:18px; color:var(--muted); margin-bottom:32px; }
.project-detail .project-cover { display:block; width:100%; height:auto; max-height:480px; object-fit:contain; background:#eeece5; border-radius:8px; margin:0 0 36px; }
.project-rich-content { line-height:1.9; overflow-wrap:anywhere; }
.project-rich-content img,.project-rich-content video,.project-rich-content iframe { max-width:100%; }
.project-rich-content pre,.project-rich-content table { max-width:100%; overflow-x:auto; display:block; }
.project-detail-actions { padding:32px; background:#eeeae2; border-left:1px solid var(--line); display:flex; flex-direction:column; gap:20px; min-height:0; overflow-y:auto; }
.project-close,.project-back { border:0; background:transparent; color:var(--ink); padding:12px 0; text-align:left; font-size:14px; }
.project-close { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #d7d2c9; }
.project-close span { font-size:30px; line-height:1; }
.project-action-info { margin-top:auto; }
.project-action-info h3 { font-size:26px; letter-spacing:-.8px; overflow-wrap:anywhere; }
.project-action-info p { font-size:14px; color:var(--muted); line-height:1.8; }
.project-date { display:block; font-size:12px; line-height:1.9; margin-top:30px; color:var(--muted); }
.project-date time { color:var(--ink); }
.project-demo { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; font-size:13px; }
.project-back { font-size:12px; }

.journey-timeline { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:24px; row-gap:42px; }
.journey-step { position:relative; min-width:0; padding-top:0; }
.journey-date { display:block; position:relative; font-size:13px; font-weight:600; color:var(--accent); padding:0 0 28px 0; border-bottom:1px solid #d6c6b9; margin-bottom:24px; }
.journey-date:after { content:''; position:absolute; bottom:-6px; left:0; width:11px; height:11px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 6px var(--paper); }
.journey-card { position:relative; padding:26px; border:1px solid var(--line); border-radius:12px; background:#fffdf9; height:calc(100% - 73px); }
.journey-card img { width:52px; height:52px; object-fit:contain; border-radius:8px; margin-bottom:26px; }
.journey-number { position:absolute; right:24px; top:26px; color:#c7c2b8; font-size:12px; }
.journey-card h4 { font-size:21px; font-weight:500; letter-spacing:-.5px; line-height:1.4; }
.journey-card p { font-size:14px; line-height:1.9; margin:16px 0 0; color:var(--muted); }
.journey-step.reveal-pending { opacity:0; transform:translateY(28px); }
.journey-step.reveal-pending.is-revealed { opacity:1; transform:none; transition:opacity .65s ease,transform .65s ease; transition-delay:var(--reveal-delay,0ms); }
.team-member .btn-group { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.team-member .btn-social {
    width:auto; height:auto; min-height:66px; padding:16px; margin:0!important;
    display:flex; align-items:center; justify-content:flex-start; gap:10px;
    border-radius:8px!important; background:transparent; color:var(--ink); border:1px solid var(--line); font-size:17px;
}
.team-member .btn-social span { font-size:12px; font-weight:500; }
.team-member .btn-social .social-arrow { margin-left:auto; color:var(--accent); font-size:18px; }
.team-member .btn-social:hover { background:#fff0e5; border-color:#e7bb9e; }
@media(hover:none) { .portfolio .portfolio-item .portfolio-link .portfolio-hover { opacity:1; } .portfolio .portfolio-item .portfolio-link .portfolio-hover-content { transform:none; } }
@media(max-width:991px) {
    .journey-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .project-detail-layout { grid-template-columns:minmax(0,1fr) 260px; }
    .project-detail-actions { padding:24px; }
    .team-member .btn-group { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
    #mainNav .navbar-brand img,#mainNav.navbar-shrink .navbar-brand img { height:32px; max-width:150px; }
    .project-detail-layout { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; }
    .project-detail-scroll { padding:28px 24px; }
    .project-detail-actions { border-left:0; border-top:1px solid var(--line); padding:14px 24px; display:grid; grid-template-columns:1fr auto; gap:10px 18px; overflow:visible; }
    .project-action-info,.project-back { display:none; }
    .project-close { grid-column:2; grid-row:1; border:0; gap:14px; padding:8px 0; }
    .project-demo { grid-column:1; grid-row:1; font-size:12px; padding:13px 16px; }
    .journey-timeline { grid-template-columns:1fr; gap:28px; }
    .journey-card { height:auto; }
    .team-member .btn-social { min-height:60px; padding:14px; }
}
@media(prefers-reduced-motion:reduce) { .journey-step.reveal-pending { opacity:1; transform:none; } }

/* Original SVG illustration and compact, repeatable service entries. */
header.masthead:after { content:none; }
.hero-illustration { position:absolute; right:0; top:64px; width:30%; max-width:350px; height:auto; pointer-events:none; }
.services-section { padding:54px 0; }
.services-section>.container>.text-center { margin-bottom:26px; }
.services-section h2.section-heading { font-size:clamp(30px,3vw,40px); }
.services-section .section-heading:before { display:none; }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.service-item { display:flex; align-items:flex-start; gap:14px; padding:20px; background:#fff9f4; border:1px solid #f0ddcf; border-radius:10px; min-width:0; }
.service-icon { display:grid; place-items:center; flex:0 0 38px; height:38px; background:#ffe4d1; color:var(--accent); border-radius:9px; font-size:18px; }
.services-section .service-item h4 { margin:0 0 7px; font-size:17px; line-height:1.4; letter-spacing:-.3px; }
.services-section .service-item p { margin:0; font-size:13px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }

/* Large two-part story cards that stack while the page scrolls. */
.journey-stack { display:flex; flex-direction:column; gap:32px; }
.journey-stack .journey-step { position:sticky; top:calc(112px + var(--card-offset)); padding:0; }
.journey-stack .journey-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:420px; height:auto; padding:44px; gap:44px; border-radius:28px; background:#fffbf7; border:1px solid #e4d9cf; box-shadow:0 0 0 8px var(--paper),0 12px 32px #24272208; }
.journey-stack .journey-step:nth-child(3n+2) .journey-card { background:#f1f3ee; }
.journey-stack .journey-step:nth-child(3n) .journey-card { background:#fcf0e7; }
.journey-stack .journey-date { border:0; margin:0 0 22px; padding:0; font-size:15px; letter-spacing:.5px; }
.journey-stack .journey-date:after { display:none; }
.journey-stack .journey-card h4 { font-size:clamp(26px,3vw,38px); line-height:1.18; letter-spacing:-1.2px; margin:0 0 20px; }
.journey-stack .journey-card p { font-size:18px; line-height:1.85; margin:0; }
.journey-stack .journey-number { display:block; position:static; font-size:12px; color:var(--muted); margin-top:32px; letter-spacing:2px; }
.journey-visual { display:grid; place-items:center; min-width:0; min-height:300px; padding:32px; border:1px solid #e5ded4; border-radius:20px; background:#ffffffb3; }
.journey-stack .journey-card img { display:block; width:100%; max-width:270px; height:240px; border-radius:12px; object-fit:contain; margin:0; }
@media(min-width:992px) { .hero-title { position:relative; max-width:74%; } }
@media(max-width:991px) {
    .hero-illustration { top:96px; width:26%; right:12px; }
    .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journey-stack .journey-card { padding:30px; gap:28px; min-height:360px; }
    .journey-visual { min-height:240px; padding:20px; }
    .journey-stack .journey-card img { height:200px; }
}
@media(max-width:767px) {
    .hero-illustration { top:-10px; right:24px; width:88px; opacity:.4; }
    .services-section { padding:38px 0; }
    .services-grid { grid-template-columns:1fr; gap:10px; }
    .service-item { padding:16px; }
    .journey-stack { gap:24px; }
    .journey-stack .journey-step { position:relative; top:auto; }
    .journey-stack .journey-card { grid-template-columns:1fr; padding:26px; gap:24px; border-radius:20px; }
    .journey-stack .journey-card p { font-size:16px; line-height:1.8; }
    .journey-stack .journey-date { margin-bottom:16px; font-size:13px; }
    .journey-stack .journey-number { margin-top:20px; }
    .journey-visual { min-height:220px; }
    .journey-stack .journey-card img { height:180px; max-width:240px; }
}
@media(max-height:650px) { .journey-stack .journey-step { position:relative; top:auto; } }

.contact-verification{margin:18px 0;max-width:100%}.contact-verification [data-turnstile-status]{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0}.contact-verification [hidden]{display:none!important}section.contact [data-contact-submit]:disabled{opacity:.5;cursor:wait;transform:none}
