/* The supplied Converge masters are scoped to the current site. */
.brand-combined{aspect-ratio:5595.693877551021/866;mask-image:url('assets/converge/converge-lockup.svg')}
.window-title{display:flex;align-items:center;gap:12px}
.window-mark{display:block;width:18px;height:18px;background:currentColor;mask:url('assets/converge/converge-mark-small.svg') center/contain no-repeat}
dialog{--window-height:min(90svh,1000px);--bar-height:64px;width:calc(100% - 64px);height:var(--window-height);max-height:var(--window-height);overflow:hidden}
dialog .window-bar{height:var(--bar-height);box-sizing:border-box;position:relative;padding:10px 24px}
dialog .close{width:40px;height:40px;flex-shrink:0}
.window-body{height:calc(100% - var(--bar-height));padding:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-behavior:auto;scroll-snap-type:y mandatory;scrollbar-width:thin}
.project-overview{min-height:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);padding:24px;scroll-snap-align:start;scroll-snap-stop:always}
.project-gallery{min-width:0;max-width:none;margin:0;position:sticky;top:24px;align-self:start}
.gallery-viewport{height:calc(var(--window-height) - var(--bar-height) - 96px);overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.gallery-track{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 14px;align-items:start}
.gallery-image{margin:0;min-width:0}
.gallery-image.wide{grid-column:1/-1}
.gallery-image.portrait{grid-row:span 2}
.gallery-image img{display:block;width:100%;height:auto;background:var(--paper)}
.gallery-image figcaption{font-size:10px;line-height:1.4;color:var(--muted);padding:10px 0 0}
.gallery-toolbar{display:flex;align-items:center;gap:16px;min-height:48px;font-size:10px;color:var(--muted)}
.gallery-position{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.gallery-buttons{display:flex;gap:4px}
.gallery-buttons button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);font-size:17px;color:var(--ink);transition:background var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}
.gallery-buttons button:disabled{opacity:.25;cursor:default}
.gallery-buttons button:active:not(:disabled),.case-back-to-gallery:active{transform:scale(.97)}
.project-overview .detail-info{position:static;padding:12px 24px 12px 0;min-width:0;align-self:start}
.project-status{font-size:10px;letter-spacing:.045em;color:var(--muted);margin:0 0 28px}
.detail-copy{font-family:Teka,Basis,sans-serif;font-size:clamp(22px,2.25vw,32px);line-height:1.25;letter-spacing:-.025em;margin-bottom:36px}
.detail-info dl{grid-template-columns:84px minmax(0,1fr);font-size:12px;line-height:1.6}
.detail-info dt,.detail-info dd{padding:12px 0}
.detail-info .detail-link{margin-top:28px;min-height:44px;font:500 14px/1.4 Basis,sans-serif;letter-spacing:0;gap:32px;width:fit-content}
.concept-story{margin:0;max-width:none;width:100%}
.concept-chapter,.concept-demo{box-sizing:border-box;min-height:calc(var(--window-height) - var(--bar-height));margin:0;padding:clamp(24px,4vw,64px);scroll-margin-top:0;scroll-snap-align:start;scroll-snap-stop:always;gap:clamp(24px,5vw,80px)}
.concept-chapter .chapter-copy{max-width:480px}
.concept-story h2{font-size:clamp(30px,3.3vw,50px);text-wrap:balance}
.concept-chapter figure img{max-height:calc(var(--window-height) - 180px);object-fit:contain;object-position:center;width:100%;height:auto}
.concept-chapter .chapter-mobile img{max-height:calc(var(--window-height) - 200px);width:auto;max-width:100%;margin:auto}
.concept-chapter .chapter-mobile figcaption{text-align:center}
.chapter-copy .case-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:24px}
.case-back-to-gallery{font-size:13px;min-height:44px;border-bottom:1px solid var(--line);margin-top:24px;padding:10px 0}
.concept-demo .demo-shell iframe{height:calc(var(--window-height) - 220px);min-height:350px}
.window-body:focus-visible,.gallery-viewport:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
dialog button:focus-visible,dialog a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(hover:hover){.gallery-buttons button:hover:not(:disabled){background:var(--paper)}}
@media(max-width:760px){
  .brand-combined{mask-image:url('assets/converge/converge-lockup-small.svg')}
  dialog{--window-height:94svh;--bar-height:56px;width:calc(100% - 20px)}
  dialog .window-bar{padding:8px 16px;font-size:10px}
  .project-overview{display:flex;flex-direction:column;gap:12px;padding:16px;min-height:100%}
  .project-gallery{position:static;width:100%;margin:0}
  .gallery-viewport{height:auto;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .gallery-track{display:grid;grid-template-columns:none;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:36%;gap:12px;height:clamp(220px,30svh,290px);padding-right:16px;width:100%;box-sizing:border-box;align-items:stretch}
  .gallery-image{display:flex;flex-direction:column;grid-column:auto!important;min-height:0;scroll-snap-align:start;scroll-snap-stop:always}
  .gallery-image.gallery-lead,.gallery-image.portrait,.gallery-image.wide{grid-row:span 2}
  .gallery-image.gallery-lead{width:100%;grid-column:span 2!important}
  .gallery-image img{min-height:0;flex:1;width:100%;height:100%;object-fit:contain;object-position:center;background:var(--paper)}
  .gallery-image figcaption{font-size:9px;padding-top:6px;flex-shrink:0}
  .gallery-toolbar{min-height:44px;gap:10px;font-size:9px}
  .gallery-buttons button{width:36px;height:36px}
  .project-overview .detail-info{padding:0 0 12px;width:100%}
  .project-status{font-size:9px;margin:0 0 16px}
  .detail-copy{font-size:22px;line-height:1.3;margin-bottom:22px}
  .detail-info dl{font-size:11px;grid-template-columns:72px minmax(0,1fr)}
  .detail-info dt,.detail-info dd{padding:9px 0}
  .detail-info .detail-link{margin-top:16px}
  .concept-chapter,.concept-demo{display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:28px 16px;gap:24px;min-height:calc(var(--window-height) - var(--bar-height))}
  .concept-story h2{font-size:32px;margin:14px 0 20px}
  .chapter-copy p{font-size:14px;line-height:1.6}
  .concept-chapter figure img{max-height:42svh}
  .concept-chapter .chapter-mobile img{max-height:46svh}
  .concept-demo .demo-shell iframe{height:65svh;min-height:350px}
}
@media(prefers-reduced-motion:reduce){.window-body{scroll-snap-type:y proximity}.gallery-buttons button{transition:none}}
/* Quieter project overview: the work first, detail on request. */
.project-overview .detail-info{padding-top:28px}
.project-status{margin-bottom:22px;font-size:9px;letter-spacing:.04em}
.detail-title{font:500 clamp(30px,3vw,46px)/1.08 Teka,Basis,sans-serif;letter-spacing:-.035em;margin:0 0 22px;max-width:460px;text-wrap:balance}
.detail-copy{font:400 15px/1.65 Basis,sans-serif;letter-spacing:0;margin:0 0 28px;max-width:440px}
.project-facts{border-top:1px solid var(--line);max-width:440px}
.project-facts summary{list-style:none;display:flex;align-items:center;justify-content:space-between;font-size:12px;min-height:48px;cursor:pointer}
.project-facts summary::-webkit-details-marker{display:none}.project-facts summary>span{font-size:18px}.project-facts[open] summary>span{transform:rotate(45deg)}
.project-facts dl{font-size:11px}.project-facts dt,.project-facts dd{border:0;padding:7px 0}.project-image-credit{font-size:10px;line-height:1.5;color:var(--muted);margin:16px 0}
.gallery-track{gap:12px}.gallery-image figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;white-space:nowrap}
.gallery-toolbar{font-size:9px}.gallery-buttons button{border:0;width:44px;height:44px}.gallery-position{margin-left:auto}.gallery-viewport{height:calc(var(--window-height) - var(--bar-height) - 96px)}
@media(max-width:760px){
 .project-overview{padding:0;gap:0}.project-gallery{width:100%}.gallery-viewport{height:auto}.gallery-track{height:clamp(270px,38svh,380px);gap:8px;padding:0;grid-auto-columns:38%;align-items:stretch}
 .gallery-image img{object-fit:cover;object-position:center;flex:1;min-height:0;background:transparent}.gallery-image.portrait img{object-position:top center}.gallery-image.gallery-lead img{object-position:center}
 .gallery-image.gallery-lead{grid-column:span 2!important}.project-gallery[data-count="1"] .gallery-track{grid-auto-columns:100%}.project-gallery[data-count="1"] .gallery-image.gallery-lead{grid-column:span 1!important}
 .gallery-toolbar{padding:0 16px;min-height:40px;gap:12px}.gallery-buttons button{height:40px;width:40px}.project-overview .detail-info{padding:18px 20px 24px;width:100%;box-sizing:border-box}
 .project-status{margin-bottom:14px;font-size:8px}.detail-title{font-size:30px;max-width:320px;margin-bottom:16px}.detail-copy{font-size:13px;line-height:1.6;margin-bottom:20px}.project-facts summary{font-size:11px;min-height:44px}.detail-info .detail-link{margin-top:14px;font-size:12px;min-height:40px}
}
