/* Third Vision v3.5 — Project portfolio and cinematic accessible lightbox.
   Separate classes prevent legacy Next.js component styles overriding the viewer. */
.editorial-project .project-meta{
  border-top:1px solid #e9e5df;
  border-bottom:1px solid #e9e5df;
  padding:24px 0;
  gap:18px 28px;
}
.editorial-project .project-meta dt{
  color:#817c75;
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.045em;
}
.editorial-project .project-meta dd{
  color:#242321;
  font-size:.93rem;
  margin-top:5px;
}
.editorial-project .detail-story{padding-block:clamp(50px,7vw,112px)}
.editorial-project .gallery-title{margin-bottom:32px}
.editorial-project .gallery-heading{font-size:clamp(2.3rem,5vw,5.2rem);letter-spacing:-.065em;line-height:1.03}
.editorial-project .project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);row-gap:clamp(32px,4vw,54px);align-items:start}
.editorial-project .project-gallery figure{min-width:0;max-width:100%}
.editorial-project .gallery-open{display:block;width:100%;cursor:zoom-in;position:relative;border-radius:14px!important}
.editorial-project .gallery-open img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.editorial-project .project-gallery figcaption{font-size:.82rem;letter-spacing:.02em;color:#77716c;margin-top:12px}
.editorial-project .detail-cover{width:100%;max-height:85vh;object-fit:cover}

.tv35-overlay, .tv35-overlay *{box-sizing:border-box}
.tv35-overlay{
  position:fixed;inset:0;z-index:2147483000;
  background:rgba(11,11,12,.94);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(6px,1.5vw,20px);
  color:#fff;font-family:Arial,Helvetica,sans-serif;
  overscroll-behavior:contain;
}
.tv35-dialog{
  width:min(97vw,1760px);height:min(94dvh,1120px);
  max-width:100%;max-height:100%;
  display:grid;grid-template-rows:auto minmax(0,1fr) auto;
  background:#171719;border:1px solid rgba(255,255,255,.12);
  border-radius:18px;overflow:hidden;
  box-shadow:0 40px 100px rgba(0,0,0,.45);
  outline:none;
}
.tv35-header{
  min-width:0;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px clamp(15px,2.2vw,36px) 14px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.tv35-heading{min-width:0;display:flex;flex-direction:column;gap:6px}
.tv35-eyebrow{color:#c68c8c;letter-spacing:.2em;font-size:.6rem;font-weight:600;line-height:1.35}
.tv35-title{margin:0;color:white;font-size:clamp(1.1rem,1.5vw,1.4rem);font-weight:400;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv35-header-actions{display:flex;align-items:center;gap:clamp(12px,2vw,28px);flex:none}
.tv35-count{color:#d5ceca;font-size:.86rem;letter-spacing:.10em;white-space:nowrap;font-variant-numeric:tabular-nums}
.tv35-dialog button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tv35-dialog button:focus-visible{outline:2px solid #f1c5b4;outline-offset:3px}
.tv35-close{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.07);transition:background .2s ease,transform .2s ease}
.tv35-close:hover{background:rgba(255,255,255,.18);transform:rotate(90deg)}
.tv35-close svg{width:21px;height:21px}
.tv35-stage{
  min-height:0;min-width:0;
  display:grid;grid-template-columns:clamp(44px,4.8vw,72px) minmax(0,1fr) clamp(44px,4.8vw,72px);
  align-items:center;gap:8px;padding:10px clamp(10px,1.5vw,22px);
  background:radial-gradient(ellipse at 50% 45%,#28282a 0%,#121214 75%);
}
.tv35-photo-wrap{position:relative;min-width:0;min-height:0;height:100%;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tv35-photo-frame{position:relative;flex:none;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;width:100%;height:100%}
.tv35-photo{display:block;width:100%;height:100%;object-fit:contain;box-shadow:0 20px 80px rgba(0,0,0,.25)}
.tv35-previous,.tv35-next{display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.065);border-radius:50%;aspect-ratio:1;transition:background .2s ease,border-color .2s ease}
.tv35-previous:hover,.tv35-next:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4)}
.tv35-previous svg,.tv35-next svg{width:25px;height:25px}
.tv35-brand{
  position:absolute;right:clamp(10px,1.7vw,28px);bottom:clamp(10px,1.7vw,28px);
  display:flex;align-items:center;justify-content:center;
  width:clamp(58px,6vw,95px);height:clamp(50px,5.6vw,84px);
  padding:7px;border-radius:9px;background:rgba(255,255,255,.91);
  box-shadow:0 7px 20px rgba(0,0,0,.22);pointer-events:none;
}
.tv35-brand img{display:block;width:100%;height:100%;object-fit:contain}
.tv35-footer{background:#171719;padding:10px clamp(14px,2.2vw,36px) 15px;border-top:1px solid rgba(255,255,255,.09);min-width:0}
.tv35-footer-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px}
.tv35-caption{margin:0;color:#f2f0ee;font-size:.76rem;letter-spacing:.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv35-hint{color:#999494;font-size:.72rem;white-space:nowrap}
.tv35-strip{display:flex;align-items:center;gap:9px;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#777 #29292b;padding:3px 0 8px}
.tv35-thumb{position:relative;flex:0 0 clamp(80px,7.5vw,115px);height:clamp(50px,6vw,75px);padding:0;border:2px solid transparent;border-radius:5px;overflow:hidden;opacity:.56;scroll-snap-align:center;background:#302f30;transition:opacity .2s ease,border-color .2s ease,transform .2s ease}
.tv35-thumb:hover{opacity:.88}
.tv35-thumb.is-active{opacity:1;border-color:#df3c45}
.tv35-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.tv35-thumb-number{position:absolute;right:4px;bottom:3px;font-size:.57rem;background:rgba(0,0,0,.57);padding:2px 4px;border-radius:2px;line-height:1.2}
@media (max-width:900px){
 .tv35-dialog{width:100%;height:min(96dvh,1120px);border-radius:10px}
 .tv35-stage{grid-template-columns:36px minmax(0,1fr) 36px;gap:3px;padding:8px 4px}
 .tv35-previous,.tv35-next{border:0;background:rgba(255,255,255,.12);z-index:2}
 .tv35-previous svg,.tv35-next svg{width:22px;height:22px}
 .tv35-header{padding:13px 15px 12px}
 .tv35-eyebrow{font-size:.55rem}
 .tv35-footer{padding:10px 12px 13px}
 .tv35-brand{right:9px;bottom:14px;width:59px;height:52px;padding:5px}
 .tv35-hint{display:none}
 .tv35-thumb{flex-basis:80px;height:55px}
}
@media (max-width:680px){
 .editorial-project .project-gallery{grid-template-columns:minmax(0,1fr);row-gap:30px}
 .editorial-project .gallery-heading{font-size:clamp(2.5rem,11vw,4.3rem)}
 .editorial-project .detail-story{padding-block:52px}
 .tv35-overlay{padding:4px}
 .tv35-dialog{height:calc(100dvh - 8px);border-radius:8px}
 .tv35-title{font-size:1rem}
 .tv35-count{font-size:.74rem}
 .tv35-stage{grid-template-columns:30px minmax(0,1fr) 30px;gap:0}
 .tv35-previous,.tv35-next{width:30px;height:42px;aspect-ratio:auto;border-radius:8px}
 .tv35-previous svg,.tv35-next svg{width:20px;height:20px}
 .tv35-footer-top{margin-bottom:6px}
 .tv35-thumb{flex-basis:74px;height:53px}
}
@media (prefers-reduced-motion:reduce){
 .tv35-close,.tv35-previous,.tv35-next,.tv35-thumb{transition:none!important}
 .tv35-strip{scroll-behavior:auto!important}
}
