/* Media and full project pages */
.project-link{display:block}.project-card{position:relative}.media-stage{background:var(--panel)}.media-stage>.project-art{width:100%;height:100%;border-radius:inherit}.cover-image,.hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}.cover-image{opacity:0;transition:opacity .24s ease;pointer-events:none}.cover-image.current{opacity:1}.hover-video{z-index:3;opacity:0;pointer-events:none;transition:opacity .18s ease}.previewing .hover-video{opacity:1}.preview-caption{position:absolute;bottom:14px;right:15px;z-index:4;font-size:8px;letter-spacing:.12em;background:#111a;color:#fff;border-radius:4px;padding:4px 7px;opacity:0;pointer-events:none}.previewing .preview-caption{opacity:1}.project-dots{display:flex;justify-content:center;gap:4px;padding-top:13px}.project-dot{background:none;width:21px;height:21px;padding:7px;display:grid;place-items:center}.project-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--muted);opacity:.45;transition:.2s}.project-dot.active:before{background:var(--text);opacity:1;width:15px;border-radius:4px}.project-card:hover .media-stage>.project-art{transform:none;box-shadow:none}.generic-art{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:linear-gradient(130deg,#3c4356,#6e778f);color:#e7eaf4}.generic-symbol{font-size:65px}.generic-title{font-size:22px;letter-spacing:-.05em}.lead,#person-bio{white-space:pre-line}.loading-copy,.empty-copy,.load-error{font-size:14px;color:var(--secondary);padding:30px 0}.admin-footer-link{font-size:10px}.project-nav{display:flex;align-items:center;gap:25px;padding:35px 0}.brand-link{font-size:14px;color:var(--text)}.brand-link span{color:var(--accent);margin-left:8px}.project-back{margin-left:auto;font-size:12px;color:var(--secondary)}.project-heading{padding:65px 0 33px}.project-title{font-size:42px;font-weight:500;letter-spacing:-.055em;line-height:1.2}.project-subtitle{color:var(--secondary);font-size:17px;margin:14px 0 0}.project-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(230px,1fr);gap:40px;align-items:start}.gallery-stage{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0e1016;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center}.gallery-image,.gallery-video{width:100%;height:100%;max-height:100%;object-fit:contain;display:block}.gallery-image{position:absolute;inset:0}.gallery-stage .project-art{height:100%;width:100%;border-radius:0}.illustrated-hero .focus-window{max-width:460px;height:76%}.illustrated-hero .jobs-window{max-width:480px;height:77%}.illustrated-hero .ledger-window{max-width:320px}.illustrated-hero .desktop-monitor{max-width:470px}.gallery-rail{display:flex;gap:10px;overflow-x:auto;padding:14px 2px 5px;scrollbar-width:thin}.gallery-thumb{position:relative;flex:0 0 95px;height:61px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:0;overflow:hidden;color:var(--secondary);display:grid;place-content:center}.gallery-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:.55}.gallery-thumb.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.gallery-thumb.selected img,.gallery-thumb:hover img{opacity:1}.video-thumb-icon{font-size:17px;line-height:1}.video-thumb-label{font-size:9px}.gallery-status{font-size:10px;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}.project-facts{padding:10px 0}.project-mark{font-size:40px;color:var(--accent);line-height:1}.project-facts h2{font-size:21px;letter-spacing:-.04em;margin:24px 0 12px}.project-facts>p{font-size:13px;line-height:1.9;color:var(--secondary);white-space:pre-line}.project-facts .stack-tags{margin:23px 0}.project-cta{display:block;padding:11px 16px;border-radius:7px;background:var(--accent);color:var(--bg);text-align:center;font-size:12px;margin:20px 0 12px}.project-facts .project-source{font-size:12px}.project-facts p.private-source{font-size:10px;color:var(--muted)}.project-story{margin:70px 0;max-width:660px;border-top:1px solid var(--line);padding-top:45px}.project-story h2{font-size:27px;letter-spacing:-.04em;margin-bottom:22px}.project-story>p:not(.eyebrow){font-size:16px;color:var(--secondary);white-space:pre-line;line-height:1.95}.next-project{border-top:1px solid var(--line);padding:30px 0 60px;display:block}.next-project>span{display:block}.next-project>span:last-child{font-size:25px;letter-spacing:-.04em}.draft-banner{font-size:11px;color:var(--accent);border:1px solid var(--line);border-radius:5px;padding:10px 14px;margin:0 0 30px}.project-page footer{margin-top:20px}.project-page .ambient:before{opacity:.3}[hidden]{display:none!important}
@media(max-width:900px){.project-layout{grid-template-columns:1fr;gap:20px}.project-facts{border-top:1px solid var(--line);padding:28px 0;display:flex;flex-wrap:wrap;gap:0 15px}.project-mark{display:none}.project-facts h2{width:100%;margin:0 0 10px}.project-facts>p{width:100%;max-width:650px}.project-facts .stack-tags{width:100%;margin:10px 0 20px}.project-cta{margin:0 0 10px}.project-facts .project-source{padding:10px 0}.project-story{margin:20px 0 50px}.project-heading{padding-top:45px}}
@media(max-width:700px){.project-title{font-size:34px}.project-subtitle{font-size:15px}.project-nav{gap:15px;padding:23px 0}.brand-link{font-size:11px}.project-back{font-size:11px}.project-heading{padding:35px 0 25px}.gallery-stage{aspect-ratio:16/11}.gallery-thumb{flex-basis:80px;height:51px}.project-story h2{font-size:24px}.project-story>p:not(.eyebrow){font-size:14px}.illustrated-hero .focus-window{transform:rotate(-3deg);height:88%;width:94%}.illustrated-hero .focus-main{padding:13px}.illustrated-hero .mock-title{font-size:19px}.illustrated-hero .jobs-window{height:86%}.illustrated-hero .jobs-main{padding:10px 15px}.illustrated-hero .jobs-title{font-size:20px}.illustrated-hero .jobs-board{margin-top:10px}.illustrated-hero .desktop-monitor{height:75%}.illustrated-hero .cloud-feature{padding:11px}.illustrated-hero .cloud-feature strong{font-size:20px}.illustrated-hero .cloud-play{margin-top:5px}.illustrated-hero .ledger-window{transform:rotate(3deg) scale(.63);width:80%;flex-shrink:0}.illustrated-hero .cover-corner{font-size:5px;bottom:7px}}

/* Uploaded media defines its own frame proportions; retain the whole image. */
.gallery-stage.has-media{display:block;aspect-ratio:auto}
.gallery-stage.has-media .gallery-image,.gallery-stage.has-media .gallery-video{position:static;inset:auto;width:100%;height:auto;max-height:none;object-fit:contain}
