/* Projects window: case studies with screenshots and clips. Explorer-style folder + Project Viewer, plus the #work list in the standard and phone views. */

/* ---------- shared window body ---------- */
.wbody.pj-body{display:flex;flex-direction:column;overflow:hidden;container-type:inline-size;container-name:pj;background:var(--face);font-size:12px}

/* ---------- Projects folder (Explorer) ---------- */
.pj-folder{display:flex;flex-direction:column;flex:1;min-height:0}
.pj-addr{display:flex;align-items:center;gap:6px;padding:3px 6px;border-bottom:1px solid #d6d0bc;flex:none;color:#555}
.pj-addr-in{flex:1;display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #7f9db9;padding:2px 6px;color:#000;min-width:0;white-space:nowrap;overflow:hidden}
.pj-addr-in i{display:inline-flex;width:16px;height:16px}.pj-addr-in i svg{width:16px;height:16px}
.pj-split{flex:1;display:flex;min-height:0}
.pj-side{flex:none;width:208px;overflow:auto;padding:12px 10px;background:linear-gradient(#7ba2e7,#6375d6);display:flex;flex-direction:column;gap:12px}
.pj-pane{border-radius:4px 4px 0 0;overflow:hidden;background:#d6dff7;box-shadow:0 1px 0 #fff6}
.pj-pane h3{margin:0;padding:6px 10px;font:bold 12px Tahoma,Verdana,sans-serif;color:#215dc6;background:linear-gradient(90deg,#fff,#c6d3f7)}
.pj-pane ul{list-style:none;margin:0;padding:8px 10px 10px;display:grid;gap:7px}
.pj-pane a{color:#215dc6;text-decoration:none;font-size:11.5px;display:flex;align-items:center;gap:6px}
.pj-pane a:before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff 0 18%,#5c8de8 20% 70%,#2456c6 72%)}
.pj-pane a:hover{color:#428eff;text-decoration:underline}
.pj-det{padding:8px 10px 10px;display:grid;gap:3px;font-size:11px;color:#000}
.pj-det b{font-size:12px}
.pj-det span{color:#333}
.pj-main{flex:1;min-width:0;overflow:auto;background:#fff;padding:14px 18px 18px;box-shadow:inset 1px 1px 0 #7f9db9}
.pj-group+.pj-group{margin-top:20px}
.pj-gh{margin:0 0 14px;padding-bottom:5px;font:bold 13px Tahoma,Verdana,sans-serif;color:#0e3a9b;border-bottom:1px solid;border-image:linear-gradient(90deg,#3c74d9,#3c74d955 40%,transparent 80%) 1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pj-gh small{font-weight:normal;color:#6a7690;font-size:11px}
.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:18px 16px}
.pj-tile{display:flex;flex-direction:column;gap:6px;padding:4px;border:1px solid transparent;border-radius:3px;outline:none;cursor:default}
.pj-thumb{position:relative;aspect-ratio:16/10;padding:3px;background:#fff;border:1px solid #cfcfc4;box-shadow:1px 1px 2px #0002;overflow:hidden;transition:box-shadow .2s,transform .2s}
.pj-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;background:#eef1f6}
.pj-thumb-soon{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:0 10px;text-align:center;color:#021E59;font-size:11px;background:linear-gradient(160deg,#f7f3ea,#ece4d2)}
.pj-thumb-soon span svg{width:40px;height:40px;opacity:.75}
.pj-tb{position:absolute;left:8px;top:8px;font:bold 10px Tahoma,sans-serif;padding:2px 6px;border-radius:9px;color:#fff;background:#0a246a;box-shadow:0 1px 2px #0004}
.pj-tb.client{background:#1f7f3a}
.pj-tb.crm{background:#021E59;color:#E2B740}
.pj-tclip{position:absolute;right:8px;bottom:8px;font:bold 10px Tahoma,sans-serif;padding:2px 6px;border-radius:9px;background:#000a;color:#fff}
.pj-tl{display:flex;flex-direction:column;gap:2px;padding:2px 3px;text-align:left}
.pj-tl b{font-size:12.5px;color:#000;padding:0 2px;align-self:flex-start;border-radius:1px}
.pj-tl small{font-size:11px;color:#5a6270;line-height:1.35}
.pj-tile:hover .pj-thumb{border-color:#9cbcf0;box-shadow:0 2px 8px #3c74d940}
.pj-tile.sel{background:#e8f0fd;border-color:#c3d6f7}
.pj-tile.sel .pj-thumb{border-color:#316ac5;box-shadow:0 0 0 1px #316ac5}
.pj-tile.sel .pj-tl b{background:#316ac5;color:#fff}
.pj-tile:focus-visible{border:1px dotted #316ac5}
.pj-foot{margin:22px 0 0;color:#6a7690;font-size:11px;line-height:1.5}
@container pj (max-width:600px){.pj-side{display:none}.pj-main{padding:12px}.pj-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}}

/* ---------- Project Viewer (case study) ---------- */
.pj-case{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,34%,400px)}
.pj-view{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f4f6fa}
.pj-stage{position:relative;flex:1;min-height:0;overflow:hidden;outline:none;background:radial-gradient(ellipse at 50% 40%,#fdfeff,#dfe5f0 75%);box-shadow:inset 0 0 0 1px #c3cbe0;touch-action:pan-y}
.pj-stage:focus-visible{box-shadow:inset 0 0 0 2px #316ac5}
.pj-slide{position:absolute;inset:18px 22px 10px;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.985);transition:opacity .38s ease,transform .5s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.pj-slide.on{opacity:1;transform:none;pointer-events:auto}
.pj-slide img,.pj-slide video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border:1px solid #9aa6bf;background:#fff;box-shadow:0 10px 30px #1b2a5530,0 2px 6px #1b2a5525}
.pj-slide{container-type:size}
.pj-slide video{width:min(100cqw,160cqh);height:auto;max-height:none;aspect-ratio:16/10;background:#fff}
.pj-count{position:absolute;right:10px;top:8px;font:11px Tahoma,sans-serif;color:#4a5a7a;background:#ffffffcc;padding:1px 7px;border-radius:9px;border:1px solid #c3cbe0}
.pj-cap{margin:0;padding:6px 12px 0;text-align:center;font-size:12px;color:#23324f;min-height:21px;flex:none}
.pj-bar{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px}
.pj-rb{width:32px;height:32px;border-radius:50%;border:1px solid #2f7d2f;padding:0;cursor:inherit;position:relative;background:radial-gradient(circle at 40% 30%,#c8f0b8,#5cbf43 45%,#2f8a25 100%);box-shadow:inset 0 1px 1px #fff8,0 1px 2px #0003}
.pj-rb:hover{filter:brightness(1.08)}.pj-rb:active{filter:brightness(.9);transform:translateY(1px)}
.pj-rb i{position:absolute;left:50%;top:50%;width:0;height:0;border:7px solid transparent;margin:-7px 0 0 -4px;border-left:10px solid #fff;border-right:0;filter:drop-shadow(0 1px 0 #1a5a14)}
.pj-prev i{transform:scaleX(-1);margin-left:-6px}
.pj-rb:focus-visible{outline:2px dotted #316ac5;outline-offset:2px}
.pj-sep{width:1px;height:24px;background:#c3cbe0;margin:0 4px}
.pj-bar .btn{min-height:26px;padding:3px 10px;font-size:12px}
.pj-strip{flex:none;display:flex;gap:8px;overflow-x:auto;padding:6px 12px 10px;scrollbar-width:thin;justify-content:safe center}
.pj-th{flex:none;width:92px;aspect-ratio:16/10;padding:2px;border:1px solid #c3cbe0;background:#fff;border-radius:2px;position:relative;cursor:inherit;opacity:.78;transition:opacity .2s,transform .2s,box-shadow .2s}
.pj-th img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.pj-th:hover{opacity:1;transform:translateY(-1px)}
.pj-th.on{opacity:1;border-color:#316ac5;box-shadow:0 0 0 2px #316ac5}
.pj-th.clip:after{content:"▶";position:absolute;inset:2px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;background:#0006;text-shadow:0 1px 2px #000}
.pj-th:focus-visible{outline:2px dotted #316ac5;outline-offset:2px}

.pj-text{min-width:0;overflow:auto;background:#fff;border-left:1px solid #b9c8e6;padding:18px 20px 22px;font-size:13px;line-height:1.55;color:#1d2433}
.pj-kicker{display:flex;align-items:center;gap:8px;font-size:11px;color:#5a6270;margin-bottom:6px}
.pj-badge{font:bold 10.5px Tahoma,sans-serif;color:#fff;background:#0a246a;padding:2px 8px;border-radius:9px}
.pj-badge.client{background:#1f7f3a}
.pj-badge.crm{background:#021E59;color:#E2B740}
.pj-text .pj-h{margin:0 0 4px;font:bold 22px/1.15 "Trebuchet MS",Tahoma,sans-serif;color:#0a246a}
.pj-line{font-size:14px;color:#33415e;margin:0 0 12px!important}
.pj-text h3{margin:16px 0 5px;font:bold 11px Tahoma,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#215dc6}
.pj-text p{margin:0 0 8px;line-height:1.55}
.pj-does{margin:0;padding:0 0 0 2px;list-style:none;display:grid;gap:5px}
.pj-does li{position:relative;padding-left:18px}
.pj-does li:before{content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:2px;background:linear-gradient(135deg,#5c8de8,#2456c6)}
.pj-fit{list-style:none;margin:2px 0 6px;padding:0;display:flex;gap:6px}
.pj-fit li{flex:1;text-align:center;padding:5px 0;border-radius:3px;border:1px dashed #c3cbe0;color:#9aa3b5;font-size:12px}
.pj-fit li.on{border:1px solid #0a246a;background:linear-gradient(#1c4fc0,#0a246a);color:#fff;box-shadow:inset 0 1px #6f9cf0}
.pj-fitnote{color:#45506a;font-size:12px}
.pj-tags{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0 10px!important}
.pj-tags span{font-size:11px;padding:2px 8px;border-radius:9px;background:#e8f0fd;border:1px solid #c3d6f7;color:#1c3f8a}
.pj-note{font-size:11.5px!important;color:#6a7280;font-style:italic}
.pj-ctabox{margin-top:16px;padding:12px 14px;border:1px solid #e2b740;border-radius:4px;background:linear-gradient(#fffdf2,#fff6d6)}
.pj-ctabox p{margin:0 0 10px!important;font-size:12.5px}
.pj-ctabox .pj-cta{font-weight:bold;padding:6px 14px;font-size:12.5px}
.pj-soon .pj-empty{display:flex;align-items:center;justify-content:center;padding:20px}
.pj-wait{max-width:340px;text-align:center;color:#33415e;background:#fff;border:1px solid #c3cbe0;border-radius:6px;padding:22px 24px;box-shadow:0 8px 24px #1b2a5520}
.pj-wait-ico svg{width:48px;height:48px}
.pj-wait p{margin:8px 0 0;font-size:12.5px;line-height:1.5}

/* narrow windows: stack the viewer above the write-up and scroll the whole body */
@container pj (max-width:720px){
  .pj-case{display:block;overflow:auto;height:100%}
  .pj-view{min-height:0}
  .pj-stage{flex:none;aspect-ratio:16/11}
  .pj-slide{inset:10px}
  .pj-text{border-left:0;border-top:1px solid #b9c8e6;overflow:visible}
  .pj-soon .pj-empty{aspect-ratio:auto;padding:24px 12px}
}
.wbody.pj-body:has(.pj-case){overflow:hidden}
@media (prefers-reduced-motion:reduce){.pj-slide{transition:none}.pj-thumb,.pj-th{transition:none}}

/* ---------- standard website (#work) ---------- */
#plain .pj-plain{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
#plain .pj-plain li{border:2px solid var(--ink);background:#fff;display:flex;flex-direction:column}
#plain .pj-plain img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border-bottom:2px solid var(--ink);background:#e9e6dd}
#plain .pj-plain .pj-pb{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
#plain .pj-plain h4{font-family:var(--display);font-size:20px;margin:0;line-height:1.15}
#plain .pj-plain p{margin:0;font-size:15.5px}
#plain .pj-kind{font-family:var(--mono);font-size:12px;letter-spacing:.5px;text-transform:uppercase;align-self:flex-start;background:var(--lime);border:2px solid var(--ink);padding:1px 6px}
#plain .pj-kind.client{background:var(--mint)}
#plain .pj-meta{font-family:var(--mono);font-size:12.5px;opacity:.8}
#plain .pj-soonbox{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;border-bottom:2px solid var(--ink);background:repeating-linear-gradient(135deg,#f3f0e8 0 12px,#ebe7dc 12px 24px);font-family:var(--mono);font-size:13px}
#plain .pj-plain-h{margin:28px 0 4px;font-size:22px}
#plain .pj-plain-sub{margin:0 0 6px;opacity:.85}

/* ---------- phone view (it clones #work) ---------- */
.ph-body .pj-plain{list-style:none;padding:0;margin:6px 0 12px;display:grid;gap:12px}
.ph-body .pj-plain li{background:rgba(255,255,255,.06);border-radius:10px;overflow:hidden;padding:0}
.ph-body .pj-plain img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.ph-body .pj-plain .pj-pb{padding:8px 10px 10px}
.ph-body .pj-plain h4{margin:4px 0 4px;font:700 1em/1.25 "Space Grotesk",system-ui,sans-serif;color:#fff}
.ph-body .pj-plain p{margin:0 0 6px}
.ph-body .pj-kind{display:inline-block;font:600 .7em/1.4 "IBM Plex Mono",monospace;background:var(--gold,#E2B740);color:#021E59;padding:1px 6px;border-radius:4px;text-transform:uppercase}
.ph-body .pj-meta{font:500 .75em/1.4 "IBM Plex Mono",monospace;color:#b9c6ea!important}
.ph-body .pj-soonbox{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font:500 .8em "IBM Plex Mono",monospace;color:#b9c6ea}
#plain .pj-pb .pj-meta:last-child{font-family:var(--body);font-style:italic;font-size:13.5px;margin-top:auto}
.ph-body .pj-pb .pj-meta:last-child{font-family:inherit;font-style:italic}

/* a real build shown without screenshots (the client's material stays private): text-only card in the standard view */
#plain .pj-plain li.pj-textonly{background:linear-gradient(160deg,var(--card),var(--paper-2))}
#plain .pj-plain li.pj-textonly .pj-pb{justify-content:flex-start;padding-top:26px}

.pj-quote{margin:14px 0 6px;padding:2px 0 2px 14px;border-left:3px solid #E2B740}
.pj-quote blockquote{margin:0}.pj-quote blockquote p{margin:0;font-style:italic;line-height:1.5}
.pj-quote figcaption{margin-top:6px;font-size:11px;color:#555;text-transform:uppercase;letter-spacing:.05em}
.pj-quote .q-draft{display:inline-block;margin-bottom:6px;padding:2px 7px;background:#FDF0C4;border:1px dashed #9A6B00;color:#5C4000;font-size:11px;font-weight:bold}
