.project-card[data-project-detail-ready="true"]{cursor:pointer;outline:none}
.project-card[data-project-detail-ready="true"]:focus-visible{box-shadow:0 0 0 3px #fff200,0 24px 56px rgba(0,26,54,.22)!important}
.project-open-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);color:#a9c7e8;font-size:.78rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.project-open-hint span{font-size:1rem;transition:transform .2s ease}
.project-card:hover .project-open-hint span{transform:translate(2px,-2px)}

.project-detail-modal[hidden]{display:none!important}
.project-detail-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:32px;opacity:0;transition:opacity .22s ease}
.project-detail-modal.is-open{opacity:1}
.project-detail-backdrop{position:absolute;inset:0;background:rgba(0,15,32,.82);backdrop-filter:blur(9px)}
.project-detail-dialog{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);width:min(1220px,calc(100vw - 64px));height:min(720px,calc(100vh - 64px));overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:#fff;box-shadow:0 34px 90px rgba(0,14,31,.38);transform:translateY(12px) scale(.99);transition:transform .25s ease,width .28s ease,height .28s ease}
.project-detail-modal.is-open .project-detail-dialog{transform:none}
.project-detail-dialog.is-gallery-expanded{grid-template-columns:1fr;width:calc(100vw - 24px);height:calc(100vh - 24px);border-radius:18px}
.project-detail-dialog.is-gallery-expanded .project-detail-content{display:none}
.project-detail-dialog.is-gallery-expanded .project-detail-media{grid-column:1/-1}

.project-detail-close{position:absolute;top:16px;right:16px;z-index:8;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(0,26,54,.12);border-radius:50%;background:rgba(255,255,255,.96);color:#001a36;font-size:1.42rem;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(0,26,54,.16);transition:.2s ease}
.project-detail-close:hover{background:#001a36;color:#fff;transform:rotate(3deg)}
.project-detail-close:focus-visible,.project-gallery-expand:focus-visible,.project-gallery-arrow:focus-visible,.project-gallery-thumb:focus-visible{outline:3px solid #fff200;outline-offset:3px}

.project-detail-media{--project-gallery-bg:none;position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;height:100%;background:#061a31;overflow:hidden;isolation:isolate;touch-action:pan-y}
.project-detail-media:before{content:"";position:absolute;z-index:-2;inset:-34px;background-image:linear-gradient(rgba(0,18,38,.5),rgba(0,18,38,.5)),var(--project-gallery-bg);background-position:center;background-size:cover;filter:blur(28px);opacity:.52;transform:scale(1.08)}
.project-detail-media:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(0,18,38,.18),rgba(0,18,38,.03) 54%,rgba(0,18,38,.3));pointer-events:none}
.project-detail-media>img{position:relative;z-index:1;display:block;width:100%;height:100%;min-height:0;padding:16px;object-fit:contain;object-position:center;filter:drop-shadow(0 16px 30px rgba(0,0,0,.2));transition:opacity .18s ease}
.project-detail-media.has-gallery>img{padding-bottom:84px}
.project-detail-dialog.is-gallery-expanded .project-detail-media>img{padding:20px 20px 92px}

.project-gallery-expand{position:absolute;top:16px;left:16px;z-index:7;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 13px;border:1px solid rgba(255,255,255,.44);border-radius:999px;background:rgba(0,26,54,.66);color:#fff;font-size:.74rem;font-weight:800;letter-spacing:.025em;cursor:pointer;box-shadow:0 8px 22px rgba(0,15,32,.2);backdrop-filter:blur(8px);transition:.2s ease}
.project-gallery-expand:hover{background:#fff;color:#001a36;border-color:#fff}
.project-gallery-expand-icon{font-size:1.02rem;line-height:1}
.project-detail-dialog.is-gallery-expanded .project-gallery-expand{background:rgba(255,255,255,.94);color:#001a36;border-color:rgba(255,255,255,.94)}
.project-detail-dialog.is-gallery-expanded .project-gallery-expand:hover{background:#001a36;color:#fff;border-color:#001a36}

.project-gallery-arrow[hidden],.project-gallery-footer[hidden]{display:none!important}
.project-gallery-arrow{position:absolute;top:50%;z-index:6;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(0,26,54,.62);color:#fff;font-size:1.9rem;line-height:1;cursor:pointer;box-shadow:0 9px 25px rgba(0,15,32,.24);backdrop-filter:blur(7px);transform:translateY(-50%);transition:.2s ease}
.project-gallery-prev{left:18px}
.project-gallery-next{right:18px}
.project-gallery-arrow:hover{background:#fff;color:#001a36;border-color:#fff;transform:translateY(-50%) scale(1.04)}

.project-gallery-footer{position:absolute;left:18px;right:18px;bottom:14px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 9px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(0,22,47,.72);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(0,15,32,.22)}
.project-gallery-dots{display:flex;align-items:center;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.38) transparent}
.project-gallery-dots::-webkit-scrollbar{height:4px}
.project-gallery-dots::-webkit-scrollbar-thumb{background:rgba(255,255,255,.38);border-radius:999px}
.project-gallery-thumb{position:relative;flex:0 0 auto;width:58px;height:40px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:8px;background:#0d2a49;cursor:pointer;opacity:.64;transition:border-color .2s ease,opacity .2s ease,transform .2s ease}
.project-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.project-gallery-thumb:hover{opacity:.95;transform:translateY(-1px)}
.project-gallery-thumb.active{border-color:#fff200;opacity:1;box-shadow:0 0 0 1px rgba(0,26,54,.28)}
.project-gallery-thumb.is-broken{display:none}
.project-gallery-counter{flex:0 0 auto;min-width:46px;color:#fff;font-size:.72rem;font-weight:850;letter-spacing:.07em;text-align:right}

.project-detail-content{min-width:0;overflow:auto;padding:44px 42px 38px;color:#34495f;background:#fff}
.project-detail-kicker{display:inline-flex;margin:0 0 15px;padding:7px 11px;border-radius:999px;background:#fff200;color:#001a36;font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.project-detail-content h2{margin:0 48px 8px 0;color:#071e3d;font-size:clamp(1.7rem,2.35vw,2.3rem);line-height:1.08;letter-spacing:-.035em}
.project-detail-location{margin:0 0 20px;color:#66758a;font-size:.94rem;font-weight:650}
.project-detail-description{margin:0;color:#34495f;font-size:.97rem;line-height:1.7;white-space:pre-line}
.project-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin-top:24px;padding-top:20px;border-top:1px solid #e3e9ef}
.project-detail-meta-item{min-width:0}
.project-detail-meta-label{display:block;margin-bottom:4px;color:#24548f;font-size:.66rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.project-detail-meta-value{display:block;color:#071e3d;font-size:.9rem;font-weight:720;overflow-wrap:anywhere}
.project-detail-services{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.project-detail-service{display:inline-flex;padding:6px 10px;border:1px solid #d5e4f4;border-radius:999px;background:#eef4fb;color:#24548f;font-size:.72rem;font-weight:800}
.project-detail-photo-source{margin:16px 0 0;padding-top:14px;border-top:1px solid #edf1f5;color:#7b8795;font-size:.7rem;line-height:1.5}
.project-detail-photo-source[hidden]{display:none!important}
.project-detail-photo-source a{color:#24548f;font-weight:750;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.project-detail-photo-source a:hover{color:#001a36}
body.project-modal-open{overflow:hidden}

@media(max-width:1120px){
  .project-detail-dialog{grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);width:min(1080px,calc(100vw - 44px));height:min(700px,calc(100vh - 44px))}
  .project-detail-content{padding:40px 34px 34px}
}
@media(max-width:920px){
  .project-detail-modal{padding:12px}
  .project-detail-dialog{grid-template-columns:1fr;width:calc(100vw - 24px);height:auto;max-height:calc(100vh - 24px);overflow:auto;border-radius:18px}
  .project-detail-dialog.is-gallery-expanded{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:none;overflow:hidden;border-radius:14px}
  .project-detail-media{height:min(44vh,430px);min-height:290px}
  .project-detail-dialog.is-gallery-expanded .project-detail-media{height:100%;min-height:0;max-height:none}
  .project-detail-content{overflow:visible;padding:34px 30px 32px}
}
@media(max-width:560px){
  .project-detail-modal{padding:6px}
  .project-detail-dialog{width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:15px}
  .project-detail-close{top:10px;right:10px;width:40px;height:40px}
  .project-gallery-expand{top:10px;left:10px;min-height:38px;padding:0 11px}
  .project-gallery-expand-label{display:none}
  .project-detail-media{height:36vh;min-height:225px;max-height:330px}
  .project-detail-media>img{padding:9px}
  .project-detail-media.has-gallery>img{padding-bottom:70px}
  .project-detail-dialog.is-gallery-expanded .project-detail-media>img{padding:10px 10px 76px}
  .project-gallery-arrow{width:40px;height:40px;font-size:1.55rem}
  .project-gallery-prev{left:8px}
  .project-gallery-next{right:8px}
  .project-gallery-footer{left:8px;right:8px;bottom:8px;padding:7px;border-radius:12px}
  .project-gallery-thumb{width:48px;height:35px;border-radius:7px}
  .project-gallery-counter{min-width:40px;font-size:.66rem}
  .project-detail-content{padding:27px 21px 25px}
  .project-detail-content h2{margin-right:38px;font-size:1.58rem}
  .project-detail-description{font-size:.93rem;line-height:1.63}
  .project-detail-meta{grid-template-columns:1fr;gap:12px}
}
@media(prefers-reduced-motion:reduce){.project-detail-modal,.project-detail-dialog,.project-detail-close,.project-open-hint span,.project-gallery-expand,.project-gallery-arrow,.project-gallery-thumb{transition:none!important}}
