/* Hallmark · checked: 2026-10-28 · genre: editorial (inferred) · built: the project · redesign: polish · v2.0.0 */
@font-face{font-family:Montreal;src:url('assets/montreal-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montreal;src:url('assets/montreal-medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Montreal;src:url('assets/montreal-bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--ground:#dcdcd6;--ink:#435242;--muted:#566052;--line:#71796c;--space:clamp(22px,4vw,64px);--radius:6px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ground);color:var(--ink);font-family:Montreal,Arial,sans-serif;font-size:1rem;line-height:1.4}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:500}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #354632;outline-offset:5px}.project-card:focus-visible{outline-color:#fff;outline-offset:-7px}.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--ink);color:#fff;padding:14px 20px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{max-width:1600px;margin:auto;padding:24px var(--space);display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:10}.brand{display:flex;align-items:center;min-height:44px;flex-shrink:0}.brand img{width:clamp(184px,18vw,256px);height:auto}.menu-toggle{display:flex;align-items:center;gap:12px;min-height:44px;min-width:80px;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:0;padding:8px 15px}.menu-toggle span{font-size:18px}nav{display:none;position:absolute;left:var(--space);right:var(--space);top:88px;background:var(--ground);padding:14px 20px 20px;border:1px solid var(--line);border-radius:0;box-shadow:0 12px 24px #24352014}nav.is-open{display:flex;flex-direction:column;gap:8px}nav a{min-height:44px;display:flex;align-items:center;padding:8px 12px}nav a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}.button{min-height:48px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid var(--line);border-radius:0;padding:12px 24px;background:transparent;transition:background .18s,color .18s,transform .18s}.button:hover{background:var(--ink);color:var(--ground)}.button:active{transform:translateY(1px)}.button span{font-size:1.1em}.button.solid{background:var(--ink);color:#fff;border-color:var(--ink)}.button.solid:hover{background:#2d3e2c}.eyebrow{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.09em;line-height:1.5}.section-title{font-size:clamp(2.1rem,4.6vw,4.5rem);line-height:1.08;letter-spacing:-.035em}.section-heading{display:grid;gap:24px;margin-bottom:42px}.section-heading h2{max-width:830px}.section-shell{max-width:1600px;margin:auto;padding-inline:var(--space)}
.hero{position:relative;max-width:1600px;margin:0 auto;display:grid;padding:44px var(--space) 0;gap:32px}.hero-copy{position:relative;z-index:2}.hero .eyebrow{margin-bottom:32px}.hero h1{font-size:clamp(2.15rem,4.15vw,4.75rem);line-height:1.12;letter-spacing:-.04em;max-width:1050px}.hero h1 span,.hero h1 strong{display:block}.hero h1 strong{font-weight:700}.hero-description{max-width:460px;font-size:1.05rem;line-height:1.5;margin-top:30px;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-portrait{width:min(78%,380px);justify-self:end;align-self:end;position:relative;margin-top:6px}.hero-portrait img{width:100%;height:auto}.social-rail{display:none}.social-rail a{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--ink);color:var(--ground);font-size:18px;font-weight:700}.social-rail svg{width:18px;height:18px;fill:currentColor}.social-rail a:hover{background:#293b28}
.tools-strip{max-width:1600px;margin:0 auto;padding:64px var(--space) 90px}.tools-strip .eyebrow{text-align:center;margin-bottom:36px}.tool-graphics{display:grid;gap:30px}.tool-graphics a{display:block;min-height:44px;transition:opacity .2s}.tool-graphics a:hover{opacity:.7}.tool-graphics img{width:100%;height:auto;min-height:18px;object-fit:contain}.tools-detail-link{display:flex;justify-content:center;margin-top:28px}.tools-detail-link a{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid var(--line)}
.about{padding-block:44px 110px}.about-layout{display:grid;gap:36px}.about-copy{max-width:1030px}.about-copy p{font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.42;letter-spacing:-.015em;margin-bottom:30px}.about-copy .motto{font-size:clamp(1.7rem,3.4vw,3.2rem);font-weight:500;line-height:1.2;max-width:650px;margin-top:46px;margin-bottom:0}.work{padding-bottom:100px}.project-list{display:grid;gap:24px}.project-card{position:relative;min-width:0;display:block;isolation:isolate;border-radius:var(--radius);overflow:hidden;aspect-ratio:1.1;background:var(--ink);color:white}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover img{transform:scale(1.025)}.project-card:active img{transform:scale(1.01)}.card-caption{position:absolute;inset:auto 0 0;padding:65px 22px 24px;background:linear-gradient(transparent,rgba(12,21,12,.92) 55%)}.card-caption .eyebrow{font-size:.65rem;letter-spacing:.035em;color:#fff;max-width:86%;margin-bottom:8px}.card-caption h3{font-size:clamp(1.5rem,3.1vw,3rem);line-height:1.08;letter-spacing:-.02em;max-width:90%}.card-open{position:absolute;right:22px;bottom:26px;font-size:1.8rem}.project-number{position:absolute;top:20px;left:22px;font-size:.75rem;background:#243321e8;color:white;padding:5px 8px;border-radius:2px}.empty-state,.error-state,.load-state{padding:80px var(--space);max-width:900px;margin:auto}.error-state h1{font-size:2rem;margin-bottom:16px}.error-state p{margin-bottom:24px}.contact-invite{padding:42px 0 80px}.contact-invite h2{max-width:980px;margin-bottom:28px}.contact-invite .eyebrow{margin-bottom:24px}
.site-footer{max-width:1600px;margin:auto;padding:0 var(--space) 28px}.back-top{display:flex;align-items:center;gap:18px;min-height:44px;width:max-content;margin-bottom:50px}.back-top:hover{text-decoration:underline;text-underline-offset:5px}.footer-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:1px solid var(--line);padding-top:24px;font-size:.8rem}.footer-social{display:flex;flex-wrap:wrap;gap:0 20px;align-items:center}.footer-social .eyebrow{width:100%;margin-bottom:4px}.footer-social a{display:flex;align-items:center;min-height:44px}.footer-social a:hover{text-decoration:underline;text-underline-offset:5px}.no-script{padding:20px}
.detail{padding-block:60px 90px}.detail h1{font-size:clamp(2.8rem,6.8vw,6.7rem);line-height:1.02;letter-spacing:-.035em;max-width:1300px;overflow-wrap:anywhere}.detail-meta{display:grid;gap:16px;margin-top:30px;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.detail-meta span{display:block}.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.detail-story{display:grid;gap:24px;margin:60px 0 44px}.detail-story>span{align-self:start}.detail-story-text{font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.6;max-width:950px}.detail-story-text p+p{margin-top:24px}.detail-image{width:100%;height:auto;background:#c6c9be;border-radius:var(--radius)}.next-project{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:28px;min-height:100px;border-bottom:1px solid var(--line);margin-top:32px}.next-project .eyebrow{display:block;margin-bottom:8px}.next-project strong{font-size:clamp(1.2rem,2vw,2rem);font-weight:500}.next-project>span{font-size:2rem}.next-project:hover strong{text-decoration:underline;text-underline-offset:5px}.image-fallback{display:flex;align-items:center;justify-content:center;min-height:200px;padding:24px;border:1px solid var(--line);color:var(--ink);background:var(--ground)}
.contact-page{padding-block:60px 100px;display:grid;gap:48px}.contact-page h1{font-size:clamp(3rem,6.5vw,6.5rem);letter-spacing:-.04em;line-height:1.04;margin:22px 0 28px;max-width:900px}.contact-description{max-width:420px;font-size:.85rem;line-height:1.6;text-transform:uppercase;letter-spacing:.02em}.email-address{display:block;font-size:clamp(1.2rem,2.3vw,2rem);margin-top:30px;text-decoration:underline;text-underline-offset:6px;overflow-wrap:anywhere;width:fit-content;min-height:44px}.email-tools{margin-top:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.text-button{background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;min-height:44px}.contact-form{display:grid;gap:24px;align-content:start}.form-field{display:grid;gap:12px}.form-field label{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em}.form-field input,.form-field textarea{width:100%;border:1px solid var(--line);border-radius:0;background:transparent;min-height:54px;padding:14px 16px}.form-field textarea{min-height:200px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#60675d;opacity:1}.form-note{font-size:.875rem;line-height:1.5;max-width:540px}.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.form-status{font-size:.875rem;line-height:1.5}.contact-form .button{width:fit-content}.software-page{padding-block:70px 100px}.software-page h1{font-size:clamp(3rem,7vw,7rem);line-height:1.04;letter-spacing:-.04em;max-width:1150px;margin:24px 0 60px}.software-list{list-style:none;margin:0;padding:0;display:grid}.software-list li{font-size:clamp(1.8rem,4.8vw,4.6rem);padding:22px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.software-list li span{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.software-page>.button{margin-top:48px}.gallery-index{padding-top:60px}
@media(min-width:700px){.hero{padding-top:65px;min-height:760px;display:block}.hero-copy{width:78%;padding-top:45px}.hero .eyebrow{margin-bottom:75px;margin-left:38%;white-space:nowrap}.hero-description{margin-top:48px;width:58%;font-size:1.1rem}.hero-actions{margin-top:50px}.hero-portrait{position:absolute;right:var(--space);bottom:0;width:38%;max-width:460px;z-index:1}.tools-strip{padding-top:70px;padding-bottom:130px}.tool-graphics{gap:46px}.about{padding-block:50px 150px}.section-heading{margin-bottom:55px}.project-list{gap:40px}.project-card{aspect-ratio:1.85}.card-caption{padding:110px 40px 38px}.card-caption .eyebrow{font-size:.8rem;margin-bottom:12px}.card-open{right:40px;bottom:38px;font-size:2.5rem}.project-number{left:40px;top:30px}.footer-social{gap:24px}.footer-social .eyebrow{width:auto;margin-bottom:0}.detail-meta{grid-template-columns:1fr 1fr}.detail-story{grid-template-columns:1fr 3fr;margin-top:80px;gap:45px}.contact-page{gap:65px}.contact-form{max-width:700px;width:100%}.detail{padding-top:80px}.software-list{grid-template-columns:1fr 1fr;column-gap:60px}}
@media(min-width:1000px){.menu-toggle{display:none}nav,nav.is-open{position:static;display:flex;flex-direction:row;align-items:center;gap:14px;padding:0;border:0;box-shadow:none;background:transparent}nav a{padding-inline:12px}.nav-contact{min-height:44px;padding:10px 22px;margin-left:5px}.hero{min-height:860px;padding-top:80px}.hero-copy{width:84%;padding-top:38px}.hero h1{font-size:clamp(3.4rem,4.2vw,4.35rem)}.hero .eyebrow{margin-bottom:95px}.hero-description{max-width:465px;width:45%;font-size:1.125rem}.hero-portrait{width:33%;max-width:490px}.hero-actions{margin-top:65px;margin-left:33%}.social-rail{display:grid;position:absolute;right:22px;top:110px;gap:10px;z-index:3}.tools-strip{padding-top:85px}.tools-strip .eyebrow{margin-bottom:48px}.about-layout{grid-template-columns:1fr 3fr;gap:64px}.about-layout .section-heading{display:block}.about-layout .section-heading h2{margin-top:22px;font-size:clamp(2.4rem,3.2vw,3.7rem)}.about-copy p{font-size:clamp(1.5rem,2.1vw,2.1rem)}.work .section-heading{grid-template-columns:1fr 3fr;gap:64px;align-items:start}.work .section-heading .eyebrow{padding-top:9px}.project-card{aspect-ratio:2.05}.project-list{gap:54px}.contact-invite{padding-top:80px}.contact-page{grid-template-columns:1.2fr 1fr;gap:8vw;padding-top:100px}.contact-page h1{font-size:clamp(3.5rem,5.3vw,5.8rem)}.contact-form{padding-top:48px}}
@media(min-width:1500px){.hero{min-height:930px}.hero h1{font-size:4.6rem}.hero-portrait{max-width:510px}}
.card-caption{padding:22px;background:rgba(12,21,12,.78)}.card-caption::before{content:"";position:absolute;left:0;right:0;top:-65px;height:65px;background:linear-gradient(transparent,rgba(12,21,12,.78));pointer-events:none}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--muted)}
@media(max-width:699px){.brand img{width:clamp(148px,45vw,230px)}}
@media(min-width:700px){.card-caption{padding:30px 40px 38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
