.portfolio-page{max-width:1200px;margin:0 auto;color:#124e58}.portfolio-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 18px}.portfolio-heading h1{font-size:clamp(24px,3vw,36px);margin:4px 0 6px}.portfolio-heading p{font-size:14px;color:#58736c;margin:0;max-width:65ch}.portfolio-links{display:flex;gap:8px}.portfolio-links .button{font-size:12px;background:#e9f3ef;color:#235e56;padding:9px 12px;min-height:38px}.portfolio-tabs,.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap}.portfolio-tabs{border-bottom:1px solid #dbe7df;padding:0 0 12px;margin-bottom:12px}.portfolio-tabs button{font-size:14px;padding:10px 15px;min-height:44px}.portfolio-tabs .secondary,.portfolio-filters .secondary{background:#edf4ef;color:#37675c}.portfolio-tabs .active,.portfolio-filters .active{background:#07868d;color:#fff}.portfolio-filters button{font-size:12px;padding:7px 12px;min-height:36px}.portfolio-count{font-size:12px;color:#6d8078;margin:12px 0}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.portfolio-card{padding:0;border:1px solid #dce7dd;border-radius:18px;overflow:hidden;background:#fff;color:inherit;text-align:left;display:flex;flex-direction:column;box-shadow:0 3px 12px #16493a06;min-width:0;transition:transform .18s,box-shadow .18s}.portfolio-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #16493a14}.portfolio-card:focus-visible{outline:3px solid #d5a22a;outline-offset:3px}.portfolio-cover{height:235px;position:relative;overflow:hidden;background:#f0f4ee;display:grid;place-items:center}.portfolio-cover>img{width:100%;height:100%;object-fit:contain;display:block}.portfolio-cover.document-cover{padding:14px;background:#f4f2e9}.portfolio-document{width:100%;height:100%;min-height:0;display:grid;place-items:center;overflow:hidden}.portfolio-document svg{width:100%;height:100%;display:block;overflow:hidden}.portfolio-media-count{position:absolute;right:10px;bottom:10px;padding:4px 8px;font-size:10px;border-radius:12px;background:#ffffffed;color:#265d50;box-shadow:0 1px 5px #0001}.portfolio-card-copy{padding:14px}.portfolio-category{font-size:11px;font-weight:600;color:#738579}.portfolio-card-copy h3{font-size:16px;line-height:1.35;margin:6px 0}.portfolio-card-copy p{font-size:12px;color:#60786e;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.portfolio-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#087c83ed;color:#fff;width:48px;height:48px;display:grid;place-items:center;font-size:20px;box-shadow:0 3px 15px #0003}.portfolio-more{display:block;margin:22px auto}.portfolio-home-link{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#eef6ef;border:1px solid #d4e5dc;border-radius:18px;padding:16px 20px;margin:18px 0}.portfolio-home-link strong,.portfolio-home-link span{display:block}.portfolio-home-link strong{font-size:19px;color:#115b63}.portfolio-home-link span{font-size:13px;color:#61796f;margin-top:4px}.portfolio-home-link .button{font-size:13px;white-space:nowrap}.portfolio-note{font-size:13px;color:#61796f}
dialog.gallery-modal{width:min(1020px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 24px);padding:20px;border-radius:20px;background:#fff;overflow:auto}.gallery-modal::backdrop{background:#132c28bd;backdrop-filter:blur(5px)}.gallery-modal #modalbody>h2{font-size:20px;margin:0 44px 14px 0;color:#164f58}.gallery-modal .close{top:10px;right:12px;min-width:38px;min-height:38px;width:38px;height:38px;padding:0}.portfolio-viewer{outline:none}.portfolio-view-stage{height:min(58dvh,580px);background:#f4f5ef;border-radius:12px;overflow:hidden;display:grid;place-items:center;padding:10px}.portfolio-view-stage>img,.portfolio-view-stage>video{width:100%;height:100%;object-fit:contain;display:block;max-height:100%}.portfolio-view-stage>video{background:#142821}.portfolio-view-controls{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px}.portfolio-view-controls button{min-width:44px;min-height:44px;padding:8px 12px}.portfolio-view-controls>a{margin-left:auto;color:#146773;font-size:12px}.portfolio-view-caption{font-size:13px;line-height:1.5;color:#54736b;margin:10px 0}.portfolio-thumbs{display:flex;gap:8px;overflow:auto;padding:3px 0 6px}.portfolio-thumbs button{width:66px;height:66px;min-width:66px;min-height:66px;padding:3px;position:relative;background:#f3f5ef;border:2px solid transparent;border-radius:10px;overflow:hidden}.portfolio-thumbs button.active{border-color:#07868d}.portfolio-thumbs img{width:100%;height:100%;object-fit:contain}.portfolio-thumbs .portfolio-play{width:24px;height:24px;font-size:10px}
@media(max-width:700px){.portfolio-heading{display:block;margin-bottom:14px}.portfolio-heading p{font-size:12px}.portfolio-links{margin-top:12px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portfolio-cover{height:180px}.portfolio-card-copy{padding:10px}.portfolio-card-copy h3{font-size:14px}.portfolio-card-copy p{font-size:11px;-webkit-line-clamp:2}.portfolio-category{font-size:10px}.portfolio-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}.portfolio-tabs button{font-size:12px;padding:9px 7px}.portfolio-filters{gap:6px}.portfolio-filters button{font-size:11px;min-height:36px}.portfolio-home-link{padding:14px;align-items:start;flex-direction:column;gap:10px}.portfolio-home-link strong{font-size:17px}.portfolio-home-link span{font-size:12px}.portfolio-home-link .button{width:100%;text-align:center}.gallery-modal #modalbody>h2{font-size:17px}.portfolio-view-stage{height:48dvh;padding:6px}.portfolio-view-controls{gap:7px}.portfolio-view-controls>a{font-size:10px}.portfolio-view-caption{font-size:12px}dialog.gallery-modal{padding:14px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}}
@media(max-width:380px){.portfolio-cover{height:155px}.portfolio-card-copy h3{font-size:13px}.portfolio-media-count{font-size:9px}}
@media(prefers-reduced-motion:reduce){.portfolio-card{transition:none}.portfolio-card:hover{transform:none}}

/* Keep these tall event photos within the slide instead of their intrinsic grid height. */
.portfolio-portrait-stage{position:relative;min-width:0;min-height:0}.portfolio-portrait-stage>img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);min-width:0;min-height:0;max-width:calc(100% - 20px);max-height:calc(100% - 20px);object-fit:contain;object-position:center}

.portfolio-video-stage{position:relative;min-width:0;min-height:0}.portfolio-video-stage>video{position:absolute;inset:10px 10px 58px;width:calc(100% - 20px);height:calc(100% - 68px);min-width:0;min-height:0;max-height:calc(100% - 68px);object-fit:contain}.portfolio-video-toggle{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);white-space:nowrap;min-height:40px;font-size:13px}.portfolio-video-toggle:hover{transform:translateX(-50%)}

.portfolio-header-link{font-size:13px;font-weight:700;text-decoration:none;color:#116570;background:#e8f3ee;border:1px solid #cfe2d8;border-radius:10px;padding:9px 12px;white-space:nowrap}@media(max-width:700px){.portfolio-header-link{font-size:11px;padding:7px 9px}}
