/* Shared updates from the October 2026 website feedback. */
*{box-sizing:border-box}
button{font:inherit;cursor:pointer}
button:focus-visible{outline:3px solid #F97316;outline-offset:4px}
main,header,footer{min-width:0}
body>div>header{position:sticky;top:0;z-index:50}
main{overflow-x:clip}
.site-footer{position:relative;isolation:isolate;overflow-x:clip;clip-path:inset(-140px 0 0 0);background:linear-gradient(#161514D6,#161514E6),url("slate-wall.webp") center top/1600px auto repeat #1C1B1A;color:#E7E5E4}
.footer-inner{position:relative;max-width:1200px;margin:auto;padding:64px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.footer-logo{display:block;width:180px;height:auto;filter:brightness(0) invert(1)}
.footer-brand p{margin:0;color:#E7E5E4;font-size:15px;line-height:1.6}
.footer-brand p span{padding:0 6px;color:#A8A29E}
.footer-brand address{font-size:15px;line-height:1.7;font-style:normal;color:#D6D3D1}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:15px}
.site-footer nav a{padding:10px 0}
.site-footer::after{content:"";position:absolute;right:max(2%,calc((100vw - 1200px)/2));top:-64px;width:330px;height:330px;background:#F97316;-webkit-mask:url("incutor-icon.png") center/contain no-repeat;mask:url("incutor-icon.png") center/contain no-repeat;opacity:.42;pointer-events:none;z-index:-1}
.motif-heading{position:relative;isolation:isolate}
.motif-heading::after{content:"";position:absolute;inset:0 0 0 auto;width:clamp(90px,18vw,180px);background:url("incutor-icon.png") right center/contain no-repeat;opacity:.1;pointer-events:none;z-index:-1}
/* About: the motif is enlarged so it straddles the cream panel and the white section below. */
.motif-heading.motif-large::after{inset:auto;right:clamp(-150px,-8vw,-24px);top:38%;width:clamp(260px,46vw,540px);aspect-ratio:1;background-position:center;opacity:.12}
.seed-section{position:relative;isolation:isolate;overflow:hidden}
.portfolio-inner{max-width:1140px;margin:auto}
.portfolio-section{padding:80px 24px 100px}
.portfolio-section h1{font:600 clamp(32px,4vw,50px)/1.15 'Outfit',system-ui,sans-serif;letter-spacing:-.01em;margin:0 0 48px}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.portfolio-card{border:1px solid #EDEBE8;border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:18px;background:#FFF;min-width:0}
.portfolio-card p{margin:0;font-size:16px;line-height:1.6;color:#57534E;text-align:center}
.portfolio-logo{height:120px;display:flex;align-items:center;justify-content:center}
.portfolio-logo img{display:block;max-width:min(230px,100%);max-height:110px;width:auto;height:auto;object-fit:contain}
.portfolio-logo.rxinsider-logo img{width:240px;height:60px;max-width:100%;object-fit:cover}
.portfolio-logo.chaintel-logo img{max-width:min(190px,80%)}
.portfolio-logo img{transition:scale .45s cubic-bezier(.22,1,.36,1)}
.strategy{padding:90px 24px 110px}
.strategy-inner{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:56px}
.strategy-copy h2{margin:0 0 24px;font:600 clamp(26px,3vw,38px)/1.2 'Outfit',system-ui,sans-serif}
.strategy-copy p{margin:0 0 22px;font-size:18px;line-height:1.65;color:#57534E}
.strategy-copy p:last-child{margin-bottom:0}
.venn{position:relative;aspect-ratio:1/1;width:100%;max-width:520px;margin:auto;isolation:isolate;container-type:inline-size}
.venn-circle{position:absolute;width:64%;height:64%;border-radius:50%;mix-blend-mode:multiply;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.technology{left:0;top:0;background:#FF9D20}
.healthcare{right:0;top:0;background:#FF7828}
.education{left:18%;bottom:3%;background:#F46522}
.venn-label{position:absolute;text-transform:uppercase;font-size:clamp(11px,2.8cqw,15px);font-weight:700;transform:translate(-50%,-50%);transition:translate 1.2s cubic-bezier(.22,1,.36,1)}
.technology-label{left:24%;top:25%}
.healthcare-label{left:76%;top:25%}
.education-label{left:50%;top:79%}
.venn-center{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font:600 clamp(13px,3.8cqw,20px)/1.05 'Outfit',system-ui,sans-serif;color:#FFF;text-align:center;transition:opacity .6s .5s}
.venn.motion-ready .venn-circle{will-change:transform}
.venn.motion-ready .venn-label{will-change:translate}
.venn.motion-ready:not(.is-visible) .technology{transform:translate(-15%,-12%)}
.venn.motion-ready:not(.is-visible) .healthcare{transform:translate(15%,-12%)}
.venn.motion-ready:not(.is-visible) .education{transform:translateY(15%)}
.venn.motion-ready:not(.is-visible) .technology-label{translate:-20% -50%}
.venn.motion-ready:not(.is-visible) .healthcare-label{translate:20% -50%}
.venn.motion-ready:not(.is-visible) .education-label{translate:0 120%}
.venn.motion-ready:not(.is-visible) .venn-center{opacity:0}
.contact-address{font-size:18px;line-height:1.7;font-style:normal;color:#57534E}
.office-map{display:block;width:100%;height:240px;border:1px solid #E7E2DC;border-radius:16px;background:#F4EEE8}
.directions-link{display:inline-flex;align-self:flex-start;gap:16px;font-size:15px;font-weight:500;text-underline-offset:4px}
/* Contact: three ghosted seeds drift in the space under the map, like messages in flight. */
.message-seeds{position:relative;height:230px;pointer-events:none}
.message-seed{position:absolute;display:block;height:auto;opacity:.22}
.seed-1{width:150px;left:4%;top:18px;rotate:-14deg}
.seed-2{width:104px;left:52%;top:96px;rotate:22deg;opacity:.17}
.seed-3{width:66px;left:18%;top:168px;rotate:-38deg;opacity:.13}
.office{padding:70px 24px 0}
.office .wrap{max-width:1100px;margin:auto}
.section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:44px;margin-bottom:34px}
.office .eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#C2410C;margin:0 0 15px}
.section-intro h2{font:500 clamp(30px,3.2vw,42px)/1.12 'Outfit',sans-serif;letter-spacing:-.025em;margin:0}
.photo{position:relative;min-width:0;margin:0}
.photo-open{border:0;padding:0;background:#DDD;display:block;position:relative;width:100%;height:100%;overflow:hidden;border-radius:4px}
.photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.photo-open:hover img{transform:scale(1.025)}
.expand{position:absolute;bottom:16px;right:16px;display:grid;place-items:center;width:34px;height:34px;background:#FFFFFFF0;color:#1C1B1A;border-radius:50%;font-size:19px;box-shadow:0 2px 10px #0001}
/* Collage: one large photo with two smaller prints overlapping its right edge. */
.collage{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);aspect-ratio:2/1;padding:4px 0 12px}
.collage .welcome{grid-column:1/10;grid-row:1/12}
.collage .print{padding:7px;background:#FFF;border-radius:5px;box-shadow:0 18px 40px #1C1B1A2E,0 3px 10px #1C1B1A1A}
.collage .upper{grid-column:9/13;grid-row:2/8;z-index:1;rotate:2deg}
.collage .lower{grid-column:8/12;grid-row:8/13;z-index:2;rotate:-1.5deg}
.collage .print .expand{bottom:18px;right:18px}
.collage .welcome .expand{top:16px;left:16px;bottom:auto;right:auto}
#gallery{width:min(1120px,calc(100% - 32px));max-height:calc(100dvh - 24px);border:0;border-radius:9px;background:#1C1B1A;color:white;padding:18px 24px;overflow:auto;font-family:'DM Sans',sans-serif}
#gallery::backdrop{background:#0E0D0DF0}
.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px}
.viewer-top{margin-bottom:16px;font-size:10px;letter-spacing:.15em}
.viewer-top button{background:transparent;border:1px solid #FFFFFF55;border-radius:4px;padding:8px 12px;color:white;font-size:12px;letter-spacing:0}
.viewer-top button span{margin-left:10px}
.viewer-image{position:relative;display:flex;justify-content:center}
.viewer-image>img{display:block;width:100%;height:min(60dvh,650px);object-fit:contain}
.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);border:0;border-radius:50%;background:#FFF;color:#1C1B1A;width:44px;height:44px;font-size:22px;box-shadow:0 2px 12px #0003}
.previous{left:6px}.next{right:6px}
.viewer-bottom h2{font:500 20px 'Outfit',sans-serif}
.viewer-bottom p{font-size:12px;color:#CCC}
.viewer-thumbs{display:flex;justify-content:center;gap:8px;padding:6px 0}
.viewer-thumbs button{padding:0;border:2px solid transparent;background:none;border-radius:4px;overflow:hidden;opacity:.55;width:70px}
.viewer-thumbs button[aria-pressed=true]{border-color:#FFB783;opacity:1}
.viewer-thumbs img{display:block;width:100%;height:47px;object-fit:cover}
body:has(dialog[open]){overflow:hidden}
/* One-time scroll entrances. Only compositor properties (opacity, translate, scale) animate,
   and layers are promoted ahead of time, so nothing repaints mid-scroll. */
.reveal-ready{opacity:0;translate:0 28px;transition:opacity .7s ease,translate .7s cubic-bezier(.22,1,.36,1),scale .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready:not(.reveal-done){will-change:opacity,translate,scale}
.reveal-ready[data-reveal=photo]{translate:0 34px;scale:.975}
.reveal-ready[data-reveal=card]{translate:0 32px;scale:.985}
.reveal-ready[data-reveal=heading]{transition-duration:.75s,.9s}
.mission-cards{perspective:1400px}
.reveal-ready[data-reveal=swing]{translate:-36px 0;rotate:y 62deg;transform-origin:left center;transition:opacity .8s ease,translate .9s cubic-bezier(.22,1,.36,1),rotate 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready[data-reveal=swing]:not(.reveal-done){will-change:opacity,translate,rotate}
.reveal-ready.is-revealed{opacity:1;translate:0 0;scale:1}
.reveal-ready[data-reveal=swing].is-revealed{rotate:none}
.reveal-ready.reveal-immediate{transition:none}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 /* Hover uses transform so it never fights the entrance, which animates translate/rotate. */
 .mission-card:not(.reveal-ready),.mission-card.reveal-done,.portfolio-card:not(.reveal-ready),.portfolio-card.reveal-done{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .25s ease}
 .mission-card:hover{transform:translateY(-6px);box-shadow:0 14px 34px #C2410C1F}
 .mission-letter{transition:scale .4s cubic-bezier(.22,1,.36,1),rotate .4s cubic-bezier(.22,1,.36,1);transform-origin:left bottom}
 .mission-card:hover .mission-letter{scale:1.12;rotate:-4deg}
 .portfolio-card:hover{transform:translateY(-6px);border-color:#C2410C;box-shadow:0 14px 34px #C2410C17}
 .portfolio-card:hover .portfolio-logo img{scale:1.07}
 .message-seed{animation:seed-drift 9s ease-in-out infinite alternate}
 .seed-2{animation-duration:11s;animation-delay:-4s}
 .seed-3{animation-duration:7s;animation-delay:-2s}
}
@keyframes seed-drift{to{translate:14px -18px}}
@media(max-width:900px){
 .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .strategy-inner{grid-template-columns:1fr;gap:40px}
 .contact-section>div{display:grid!important;grid-template-columns:1fr;gap:40px!important}
 .contact-section>div>div{min-width:0}
 .message-seeds{display:none}
}
@media(max-width:640px){
 .reveal-ready,.reveal-ready[data-reveal=photo],.reveal-ready[data-reveal=card]{translate:0 18px;transition-duration:.55s}
 .reveal-ready.is-revealed{translate:0 0}
 header>div{gap:12px!important;padding:10px 20px!important}
 header>div>a img{height:42px!important}
 header nav{gap:6px 20px!important;font-size:14px!important}
 header nav .btn-primary{padding:10px 15px!important}
 .hero{padding:72px 24px 80px!important}
 [aria-labelledby=name-title]{padding:64px 24px!important}
 [aria-labelledby=cta-title]{padding:0 24px 64px!important}
 [aria-labelledby=cta-title]>div{padding:28px!important}
 [aria-labelledby=about-title]{padding:56px 24px!important}
 .footer-inner{padding:40px 24px;gap:24px}
 .footer-brand p{font-size:13px}
 .site-footer::after{width:200px;height:200px;right:-30px;top:-40px}
 .reveal-ready[data-reveal=swing]{translate:-18px 0;rotate:y 40deg}
 .site-footer nav{gap:8px 22px}
 .portfolio-section{padding:56px 24px 64px}
 .portfolio-section h1{margin-bottom:32px}
 .portfolio-grid{grid-template-columns:1fr;gap:20px}
 .portfolio-card{padding:24px}
 .strategy{padding:56px 24px 64px}
 .strategy-copy p{font-size:17px}
 .contact-section{padding:56px 24px 64px!important}
 .contact-form-card{padding:24px!important}
 .office{padding-top:42px}
 .section-intro{display:block;margin-bottom:26px}
 .section-intro h2{font-size:32px}
 .collage{grid-template-columns:1fr 1fr;grid-template-rows:none;aspect-ratio:auto;gap:0 12px;padding-bottom:8px}
 .collage .welcome{grid-column:1/3;grid-row:1;aspect-ratio:4/3}
 .collage .print{grid-row:2;aspect-ratio:4/3;padding:5px}
 .collage .upper{grid-column:1;margin-top:-34px;rotate:-2deg}
 .collage .lower{grid-column:2;margin-top:-18px;rotate:2deg}
 .collage .expand,.collage .print .expand,.collage .welcome .expand{right:9px;top:9px;bottom:auto;left:auto;width:28px;height:28px;font-size:16px}
 #gallery{padding:14px;width:calc(100% - 20px)}
 .viewer-image>img{height:50dvh}
 .viewer-thumbs{gap:4px}
 .viewer-thumbs button{width:40px}
 .viewer-thumbs img{height:32px}
 .viewer-bottom h2{font-size:17px}
 .viewer-arrow{width:36px;height:36px}
 .viewer-top{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .reveal-ready,.reveal-ready[data-reveal]{opacity:1;translate:none;scale:none;transition:none}
 .venn-circle,.venn-label,.venn-center,.photo img{transition:none}
 .venn.motion-ready:not(.is-visible) .venn-circle{transform:none}
 .venn.motion-ready:not(.is-visible) .venn-label{translate:none}
 .venn.motion-ready:not(.is-visible) .venn-center{opacity:1}
 .photo-open:hover img{transform:none}
 .reveal-ready[data-reveal=swing]{rotate:none}
}
@media print{.reveal-ready,.reveal-ready[data-reveal]{opacity:1;translate:none;scale:none;transition:none}}
/* Disclaimer page */
.legal-section{padding:96px 24px 112px}
.legal-inner{max-width:760px;margin:auto}
.legal-section h1{margin:0 0 12px;font:600 clamp(32px,4vw,50px)/1.15 'Outfit',system-ui,sans-serif;letter-spacing:-.01em}
.legal-updated{margin:0 0 40px;font-size:15px;color:#78716C}
.legal-section h2{margin:36px 0 10px;font:600 22px/1.3 'Outfit',system-ui,sans-serif}
.legal-section p{margin:0;font-size:17px;line-height:1.7;color:#57534E}
@media(max-width:640px){.legal-section{padding:56px 24px 64px}}
