:root{
  --paper:#f4f3ef;
  --paper-2:#eceae4;
  --ink:#171918;
  --muted:#6e716d;
  --line:rgba(23,25,24,.18);
  --accent:#9c8b73;
  --dark:#202321;
  --white:#fff;
  --max:1500px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea{font:inherit}
button{color:inherit}
body.modal-open{overflow:hidden}

.site-header{height:88px;display:grid;grid-template-columns:230px 1fr auto;align-items:center;gap:28px;padding:0 clamp(24px,4vw,72px);position:sticky;top:0;z-index:80;background:rgba(244,243,239,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;width:min(185px,100%)}
.brand img{width:100%;height:48px;object-fit:contain;object-position:left center}
.site-header nav{display:flex;justify-content:center;gap:clamp(18px,2.6vw,42px);font-size:12px;text-transform:uppercase;letter-spacing:.11em}
.site-header nav a{position:relative;padding:10px 0}
.site-header nav a:after{content:"";position:absolute;left:0;bottom:4px;width:0;height:1px;background:currentColor;transition:.25s}
.site-header nav a:hover:after{width:100%}
.menu-toggle{display:none;border:0;background:none;text-transform:uppercase;letter-spacing:.12em;font-size:12px;padding:10px}

main{overflow:hidden}
.eyebrow{font-size:11px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:18px;margin-top:24px;border-bottom:1px solid currentColor;padding:0 0 7px;font-size:13px;text-transform:uppercase;letter-spacing:.11em}
.text-link span{font-size:18px}

.hero{min-height:min(820px,calc(100vh - 88px));position:relative;display:flex;align-items:flex-end;border-bottom:1px solid var(--line)}
.hero--media{color:white;background:#222}
.hero-image{position:absolute;inset:0}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,10,9,.72) 0%,rgba(9,10,9,.36) 46%,rgba(9,10,9,.08) 76%,rgba(9,10,9,.18) 100%)}
.hero--plain{background:linear-gradient(135deg,#f7f6f2 0%,#efede6 60%,#e7e2d9 100%)}
.hero--plain .hero-overlay{display:none}
.hero-content{position:relative;z-index:2;width:min(770px,86vw);margin:0 0 clamp(55px,8vh,105px) clamp(24px,7vw,110px)}
.hero--plain .hero-content{margin-top:100px}
.hero--media .eyebrow{color:rgba(255,255,255,.72)}
.hero-wordmark{font-size:clamp(14px,1.3vw,19px);letter-spacing:.34em;text-transform:uppercase;margin:20px 0 28px;font-weight:700}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(40px,5.2vw,82px);line-height:1.02;letter-spacing:-.035em;margin:0;max-width:900px}
.hero p{font-size:clamp(16px,1.35vw,20px);max-width:670px;margin:28px 0 0;color:inherit;opacity:.88}
.hero-index{position:absolute;right:clamp(28px,6vw,95px);bottom:clamp(55px,8vh,105px);display:grid;gap:8px;text-transform:uppercase;letter-spacing:.11em;font-size:11px;color:var(--muted);text-align:right}

.fineart{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(48px,7vw,120px);align-items:center;padding:clamp(90px,12vw,185px) clamp(24px,5vw,72px)}
.fineart--plain{grid-template-columns:minmax(0,820px);justify-content:center;text-align:left}
.fineart-copy h2,.section-intro h2,.technology-section h2,.contact-section h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(36px,4.2vw,66px);line-height:1.06;letter-spacing:-.035em;margin:18px 0 26px}
.fineart-copy p,.section-intro p{font-size:clamp(16px,1.25vw,19px);color:#4f524f;max-width:700px;margin:0}
.fineart-image{min-height:620px;height:74vh;max-height:850px;overflow:hidden}
.fineart-image img{width:100%;height:100%;object-fit:cover}

.services-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(72px,8vw,120px) clamp(24px,5vw,72px)}
.services-section,.projects-section,.collaborations-section{max-width:var(--max);margin:0 auto}
.section-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);grid-template-areas:"eye eye" "title text";gap:18px 70px;margin-bottom:clamp(44px,6vw,82px)}
.section-intro .eyebrow{grid-area:eye}
.section-intro h2{grid-area:title;margin:0}
.section-intro p{grid-area:text;align-self:end}
.section-intro.compact{grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);margin-bottom:45px}
.services-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.services-list article{min-height:220px;padding:26px 26px 32px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);margin-right:26px;position:relative}
.services-list article:nth-child(3n){border-right:0;margin-right:0}
.service-no{font-size:11px;letter-spacing:.15em;color:var(--muted)}
.services-list h3{font-family:Georgia,'Times New Roman',serif;font-size:25px;font-weight:400;line-height:1.15;margin:34px 0 12px}
.services-list p{margin:0;color:var(--muted);font-size:14px}

.projects-section{padding:clamp(90px,10vw,150px) clamp(24px,5vw,72px)}
.project-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-auto-rows:minmax(310px,42vw);gap:18px}
.project-card{min-width:0;min-height:0}
.project-card:nth-child(5n+3){grid-column:1/-1;grid-auto-rows:auto;height:min(620px,58vw)}
.project-card button{position:relative;width:100%;height:100%;border:0;padding:0;background:#ddd;cursor:pointer;overflow:hidden;text-align:left}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.project-card:hover img{transform:scale(1.025)}
.project-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.64) 100%)}
.project-meta{position:absolute;left:26px;bottom:24px;color:white;display:grid;gap:5px;max-width:80%}
.project-meta small{font-size:10px;letter-spacing:.15em;text-transform:uppercase;opacity:.8}
.project-meta strong{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(22px,2.5vw,38px);line-height:1.05}
.project-meta em{font-style:normal;font-size:12px;opacity:.82}
.project-open{position:absolute;right:22px;top:20px;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;color:white;font-size:18px}

.technology-section{background:var(--dark);color:white;padding:clamp(90px,10vw,150px) max(clamp(24px,5vw,72px),calc((100vw - var(--max))/2 + 72px))}
.technology-top{display:grid;grid-template-columns:1fr minmax(280px,.4fr);gap:70px;align-items:end;margin-bottom:70px}
.technology-section .section-intro{display:block;margin:0}
.technology-section .eyebrow{color:#a8aca7}
.technology-section h2{margin:18px 0 26px;max-width:800px}
.technology-section p{color:#c0c4bf;max-width:760px;font-size:17px}
.soci-card{border:1px solid rgba(255,255,255,.28);padding:25px 28px;display:grid;grid-template-columns:1fr auto;gap:10px 20px;transition:.25s}
.soci-card:hover{background:white;color:var(--dark)}
.soci-card small{grid-column:1/-1;font-size:9px;letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.soci-card strong{font-size:30px;font-weight:400;letter-spacing:-.03em}
.soci-card span{font-size:24px;align-self:center}
.solution-grid{border-top:1px solid rgba(255,255,255,.24)}
.solution-card{display:grid;grid-template-columns:80px 1fr 50px;gap:24px;align-items:start;border-bottom:1px solid rgba(255,255,255,.24);padding:32px 0;transition:.25s}
.solution-card:hover{padding-left:12px;background:rgba(255,255,255,.035)}
.solution-index{font-size:11px;color:#8f938e;letter-spacing:.12em}
.solution-card small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#a7aba6}
.solution-card h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:34px;margin:5px 0 10px}
.solution-card p{margin:0;max-width:730px;font-size:15px}
.solution-arrow{font-size:22px;text-align:right}

.collaborations-section{padding:clamp(80px,9vw,130px) clamp(24px,5vw,72px)}
.collaboration-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.collab-item{min-height:150px;padding:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);gap:12px;transition:.2s;background:rgba(255,255,255,.15)}
a.collab-item:hover{background:rgba(255,255,255,.7)}
.collab-item img{max-width:150px;max-height:58px;object-fit:contain;filter:grayscale(1)}
.collab-item strong{font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:400}
.collab-item small{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}

.contact-section{max-width:var(--max);margin:0 auto;padding:clamp(90px,10vw,150px) clamp(24px,5vw,72px);display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--line)}
.contact-copy p{font-size:18px;color:var(--muted);max-width:650px}
.contact-actions{border-top:1px solid var(--line)}
.contact-actions>a,.contact-actions>div{display:grid;grid-template-columns:1fr auto;gap:5px 20px;padding:24px 0;border-bottom:1px solid var(--line)}
.contact-actions small{grid-column:1/-1;font-size:9px;letter-spacing:.15em;color:var(--muted)}
.contact-actions strong{font-size:17px;font-weight:400;word-break:break-word}
.contact-main strong{font-size:25px}
.contact-main span{font-size:20px}

.site-footer{background:#dedbd3;padding:42px clamp(24px,5vw,72px);display:grid;grid-template-columns:220px 1fr auto;gap:40px;align-items:end;border-top:1px solid var(--line);font-size:12px}
.footer-brand img{width:180px;max-height:58px;object-fit:contain;object-position:left center}
.footer-legal{display:flex;gap:14px 24px;flex-wrap:wrap;color:#575a56}
.footer-legal strong{color:var(--ink)}
.site-footer>p{margin:0;color:var(--muted);max-width:340px;text-align:right}

.project-modal[hidden]{display:none!important}
.project-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,16,15,.82);backdrop-filter:blur(10px)}
.modal-shell{position:relative;z-index:1;width:min(1280px,94vw);height:min(820px,90vh);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);background:var(--paper);box-shadow:0 40px 120px rgba(0,0,0,.38);overflow:hidden}
.modal-image{min-width:0;min-height:0;background:#111}
.modal-image img{width:100%;height:100%;object-fit:cover}
.modal-copy{padding:clamp(38px,5vw,70px);overflow:auto;align-self:stretch}
.modal-copy h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(36px,4vw,58px);line-height:1.05;letter-spacing:-.035em;margin:18px 0 28px}
.modal-copy p{color:#565956;font-size:16px}
.modal-summary{font-size:19px!important;color:var(--ink)!important}
.modal-fact{border-top:1px solid var(--line);margin-top:30px;padding-top:18px;display:grid;gap:5px}
.modal-fact small{font-size:9px;letter-spacing:.15em;color:var(--muted)}
.modal-fact strong{font-weight:400}
.modal-close{position:absolute;top:18px;right:18px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,0,0,.25);background:rgba(244,243,239,.92);font-size:28px;line-height:1;cursor:pointer}

@media(max-width:1000px){
  .site-header{grid-template-columns:190px 1fr auto;height:78px;padding:0 24px}
  .site-header nav{gap:16px}
  .fineart{grid-template-columns:1fr;gap:44px}
  .fineart-image{height:68vw;min-height:420px;order:-1}
  .services-list{grid-template-columns:repeat(2,1fr)}
  .services-list article:nth-child(3n){border-right:1px solid var(--line);margin-right:26px}
  .services-list article:nth-child(2n){border-right:0;margin-right:0}
  .technology-top{grid-template-columns:1fr;gap:36px}
  .collaboration-strip{grid-template-columns:repeat(2,1fr)}
  .contact-section{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr 1fr}.site-footer>p{text-align:left;grid-column:1/-1}
  .modal-shell{grid-template-columns:1fr;height:92vh;overflow:auto}.modal-image{height:48vh}.modal-copy{overflow:visible}
}

@media(max-width:760px){
  .site-header{height:70px;grid-template-columns:1fr auto;padding:0 18px}
  .brand{width:145px}.brand img{height:40px}
  .menu-toggle{display:block}
  .site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:22px 20px;flex-direction:column;align-items:flex-start;gap:0}
  .site-header.menu-open nav{display:flex}
  .site-header nav a{width:100%;padding:13px 0;border-bottom:1px solid var(--line)}
  .hero{min-height:620px}
  .hero--media{min-height:72vh}
  .hero-content{width:auto;margin:0 22px 50px}
  .hero h1{font-size:clamp(38px,11vw,54px)}
  .hero p{font-size:16px}
  .hero-index{display:none}
  .fineart{padding:78px 20px}.fineart-image{height:72vw;min-height:300px}
  .fineart-copy h2,.section-intro h2,.technology-section h2,.contact-section h2{font-size:clamp(34px,10vw,47px)}
  .services-section,.projects-section,.collaborations-section{padding:72px 20px}
  .section-intro,.section-intro.compact{display:block;margin-bottom:38px}.section-intro h2{margin:14px 0 20px}.section-intro p{font-size:16px}
  .services-list{grid-template-columns:1fr}.services-list article,.services-list article:nth-child(3n),.services-list article:nth-child(2n){border-right:0;margin-right:0;min-height:0;padding:22px 0}.services-list h3{margin:18px 0 8px;font-size:24px}
  .project-grid{grid-template-columns:1fr;grid-auto-rows:78vw}.project-card:nth-child(5n+3){grid-column:auto;height:auto}.project-meta{left:18px;bottom:17px}.project-meta strong{font-size:27px}.project-open{right:14px;top:14px;width:38px;height:38px}
  .technology-section{padding:78px 20px}.solution-card{grid-template-columns:42px 1fr 28px;gap:10px;padding:25px 0}.solution-card h3{font-size:29px}.solution-card p{font-size:14px}.soci-card{padding:22px}
  .collaboration-strip{grid-template-columns:1fr 1fr}.collab-item{min-height:120px;padding:18px}.collab-item img{max-width:120px}.collab-item strong{font-size:19px}
  .contact-section{padding:78px 20px;gap:35px}.contact-main strong{font-size:21px}
  .site-footer{padding:34px 20px;grid-template-columns:1fr;gap:25px}.footer-legal{display:grid;gap:5px}.site-footer>p{grid-column:auto}
  .project-modal{padding:0}.modal-shell{width:100vw;height:100vh}.modal-image{height:42vh}.modal-copy{padding:34px 22px 70px}.modal-copy h2{font-size:38px}.modal-close{top:12px;right:12px}
}
