.projects-gallery{--project-ink:#172028;--project-muted:#48545e;--project-rule:#dbe0e2;background:#fff;color:var(--project-ink)}
.pg-frame{width:min(88%,1140px);margin-inline:auto}
.pg-intro-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(36px,7vw,96px);padding-block:clamp(48px,5.6vw,84px)}
.pg-heading{max-width:490px}
.projects-gallery .pg-label{display:block;margin:0 0 14px;color:#46545e;font-size:13px;line-height:1.45;font-weight:600;letter-spacing:.02em}
.pg-heading h1{font-size:clamp(52px,5.9vw,86px);line-height:1;letter-spacing:-.055em;font-weight:550;margin:0}
.pg-deck{font-size:clamp(17px,1.45vw,21px);line-height:1.5;letter-spacing:-.015em;color:var(--project-muted);margin:22px 0 0}
.pg-cover{height:clamp(215px,19vw,275px);margin:0;overflow:hidden;border-radius:20px}
.pg-cover img,.pg-masthead img,.project-tile>img{display:block;width:100%;height:100%;object-fit:cover}
.pg-collection{padding:clamp(32px,3.4vw,50px) 0 clamp(48px,5vw,76px);background:#f5f6f7;border-block:1px solid #e9ebed}
.pg-collection h2{font-weight:600;font-size:clamp(23px,2.1vw,30px);letter-spacing:-.035em;line-height:1.18;margin:0 0 22px;color:#1d1d1f}
.pg-collection h2 span{color:#68686d}
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,315px),1fr));gap:18px}
.project-tile{display:flex;flex-direction:column;position:relative;width:100%;max-width:400px;aspect-ratio: .96;background:white;color:#1d1d1f;border-radius:23px;overflow:hidden;text-decoration:none;box-shadow:0 4px 15px #14141b0d;transition:box-shadow .2s}
.pg-tile-copy{display:block;flex:none;padding:clamp(21px,1.8vw,28px)}
.pg-tile-copy .pg-label{font-size:12px;margin:0 0 9px;color:#46464b}
.pg-tile-copy strong{display:block;font-size:clamp(24px,2vw,30px);font-weight:600;line-height:1.1;letter-spacing:-.035em}
.pg-tile-summary{display:block;font-size:15px;line-height:1.35;margin-top:10px;color:#343438}
.project-tile>img{flex:1 1 0;height:0;min-height:65px;object-position:center}
.pg-tile-action{position:absolute;bottom:15px;right:15px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f6f6f9;color:#46464c}
.project-tile:hover{box-shadow:0 7px 24px #14141b1c}
.project-tile:hover .pg-tile-action{background:white;color:#17171b}
.project-tile:focus-visible,.project-dialog button:focus-visible{outline:3px solid #19709a;outline-offset:3px}
dialog.project-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;padding:0;width:min(900px,94vw);max-width:none;max-height:90dvh;border:0;border-radius:26px;overflow:hidden;background:#fff;color:var(--project-ink);box-shadow:0 30px 95px #07131c38}
dialog.project-dialog::backdrop{background:#19232b66;backdrop-filter:blur(6px)}
html:has(.project-dialog[open]){overflow:hidden}
.project-dialog-tools{position:absolute;z-index:1;right:16px;top:16px}
.project-dialog-tools button{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid #dbe0e3;background:#fff;color:#29343c;cursor:pointer;font:25px/1 system-ui;box-shadow:0 2px 7px #0001}
.pg-reader{max-height:90dvh;overflow:auto;overscroll-behavior:contain}
.pg-masthead{display:grid;grid-template-columns:1.35fr 1fr;background:#f5f6f7;border-bottom:1px solid #e3e6e8}
.pg-masthead>div{align-self:center;padding:48px clamp(24px,4vw,54px)}
.pg-masthead h2{margin:0;font-size:clamp(33px,4vw,54px);line-height:1.05;letter-spacing:-.053em;font-weight:570}
.pg-masthead figure{position:relative;margin:0;min-height:198px}
.pg-masthead img{position:absolute;inset:0}
.pg-masthead figcaption{position:absolute;bottom:10px;right:12px;color:white;background:#202729d9;border-radius:4px;padding:3px 7px;font-size:10px}
.pg-article{max-width:720px;margin:0 auto;padding:32px clamp(22px,4vw,48px) 52px}
.pg-article p{font-size:16px;line-height:1.65;color:#44515b;margin:0 0 15px}
.pg-article .pg-lead{font-size:clamp(18px,1.7vw,22px);line-height:1.45;letter-spacing:-.018em;color:var(--project-ink);margin:0 0 18px}
.pg-article section{padding-top:22px;margin-top:25px;border-top:1px solid var(--project-rule)}
.pg-article h3{margin:0 0 12px;color:var(--project-ink);font-size:clamp(23px,2.5vw,31px);line-height:1.15;letter-spacing:-.035em}

@media(max-width:650px){.pg-intro-grid{grid-template-columns:1fr;gap:22px;padding:34px 0 30px}.pg-cover{height:145px;border-radius:14px}.pg-deck{margin-top:14px}.pg-heading h1{font-size:52px}.pg-collection{padding:28px 0 40px}.pg-masthead{grid-template-columns:1fr}.pg-masthead>div{padding:46px 24px 20px}.pg-masthead figure{min-height:105px}.project-dialog,.pg-reader{max-height:92dvh}.pg-article{padding-top:22px}}
