@font-face{font-family:ProjectPersian;src:url('../YekanBakh-VF.ttf') format('truetype');font-display:swap}
.project-dialog{--panel:#0b0b0e;color:var(--text-main,#fff);background:var(--panel);border:1px solid var(--glass-border, #303034);border-radius:28px;width:min(850px,calc(100% - 48px));max-height:88vh;max-height:88dvh;margin:auto;padding:0;overflow:auto;overscroll-behavior:contain;box-shadow:0 32px 100px #0008;scrollbar-width:thin;scroll-behavior:auto;animation:project-enter .28s ease both}
body.light-mode .project-dialog{--panel:#fff}
.project-dialog::backdrop{background:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.project-sheet-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:66px;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--glass-border,#303034)}
.project-sheet-top>span{font-size:12px;color:var(--text-muted,#aaa);letter-spacing:.04em;font-family:Inter,ProjectPersian,sans-serif}
.project-dialog-close{flex-shrink:0;width:42px;height:42px;border:1px solid var(--glass-border,#303034);border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:26px}
.project-dialog-close:hover{background:var(--accent-red,#f33);color:#fff}
.project-sheet-handle{display:none}
.project-details-body{padding:28px;display:grid;gap:26px;transition:filter .35s,opacity .35s;font-family:Inter,ProjectPersian,sans-serif;overflow-wrap:anywhere}
.project-dialog.is-loading .project-details-body{filter:blur(5px);opacity:.35;pointer-events:none;user-select:none}
.project-loading-status{position:absolute;top:180px;inset-inline:20px;text-align:center;font-size:14px;font-family:Inter,ProjectPersian,sans-serif;color:var(--text-main);pointer-events:none}
.project-detail-cover{height:290px;border-radius:18px;overflow:hidden;background:var(--glass-bg);border:1px solid var(--glass-border)}
.project-detail-cover img{width:100%;height:100%;object-fit:cover;display:block}
.project-detail-heading h2{font-family:var(--font-title),ProjectPersian,sans-serif;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.2;margin:12px 0 0}
.project-detail-heading .tag{display:inline-block}
.project-detail-section{padding-block-start:22px;border-top:1px solid var(--glass-border)}
.project-detail-section>h3{font-size:14px;margin-bottom:15px;color:var(--text-muted);font-weight:600}
.project-markdown{font-size:16px;line-height:1.9;white-space:normal;color:var(--text-main)}
.project-markdown p,.project-markdown ul,.project-markdown ol{margin-block-end:16px}
.project-markdown ul,.project-markdown ol{padding-inline-start:24px}
.project-markdown h1,.project-markdown h2,.project-markdown h3{margin-block:22px 12px;font-size:1.25rem}
.project-markdown a{color:var(--accent-red)}
.project-markdown pre{direction:ltr;text-align:left;overflow:auto;padding:18px;background:var(--glass-bg);border-radius:12px;font-size:14px}
.project-markdown img{max-width:100%;height:auto}
.project-markdown table{display:block;max-width:100%;overflow:auto}
.project-actions{display:flex;flex-wrap:wrap;gap:12px}
.project-action{display:inline-flex;align-items:center;gap:22px;min-height:48px;padding:12px 20px;border:1px solid var(--glass-border);border-radius:12px;color:inherit;text-decoration:none;font-size:14px;font-weight:600}
.project-action.primary{background:var(--accent-red);border-color:var(--accent-red);color:white}
.project-tech{display:flex;flex-wrap:wrap;gap:8px}.project-tech span{padding:7px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;font-size:14px}
.home-project-card,.projects-grid>.project-card{font:inherit;color:inherit;text-align:start;cursor:pointer;width:100%}
.home-project-card:focus-visible,.project-card:focus-visible,.project-dialog button:focus-visible,.project-action:focus-visible{outline:2px solid var(--accent-red);outline-offset:4px}
.projects-grid>.project-card[hidden]{display:none!important}
.projects-grid>.project-card .project-info{width:100%}
.home-project-card .tag{display:inline-block;margin-bottom:12px;font-size:12px}
.allp-project-art{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:30px;background:radial-gradient(ellipse at 95% 5%,#ff333326,transparent 65%),#111115;color:#f5f5f5;direction:ltr;text-align:left;position:relative;overflow:hidden;font-family:'Space Grotesk',monospace}
.allp-project-art>span{color:#888;font-size:16px}.allp-project-art strong{font-size:64px;line-height:1;letter-spacing:-3px}.allp-project-art strong span{color:#ff3333}.allp-project-art small{font-size:12px;letter-spacing:.08em}.allp-project-art>div{font-size:11px;color:#aaa;margin-top:8px;letter-spacing:.1em}
.allp-project-art:after{content:'+';position:absolute;right:24px;top:18px;color:#f33;font-size:32px;font-weight:300}
.work-image-placeholder:has(.allp-project-art){perspective:none}.project-no-image{height:100%;display:grid;place-items:center;background:var(--glass-bg);color:var(--accent-red);font-size:4rem}
.project-skeleton{padding:20px;border-radius:24px;border:1px solid var(--glass-border);background:var(--glass-bg);min-height:330px;filter:blur(1.8px);opacity:.6;overflow:hidden;animation:project-pulse 1.3s ease-in-out infinite alternate}
.project-skeleton>div{height:190px;border-radius:16px;background:var(--glass-border);margin-bottom:25px}.project-skeleton i{display:block;height:16px;width:85%;border-radius:4px;background:var(--glass-border);margin-top:14px}.project-skeleton i:nth-last-child(1){width:50%}
.project-retry{min-height:44px;padding:8px 16px;border:1px solid var(--glass-border);color:var(--text-main);background:var(--glass-bg);border-radius:10px;cursor:pointer;font:inherit}.project-fetch-error,.project-empty{grid-column:1/-1;padding:24px;color:var(--text-muted)}
@keyframes project-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes project-pulse{to{opacity:.3}}
@media(max-width:768px){
.project-dialog{width:100vw;max-width:100vw;max-height:92vh;max-height:92dvh;margin:auto 0 0;border-radius:26px 26px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);animation:project-sheet-enter .32s cubic-bezier(.16,1,.3,1)}
.project-sheet-top{padding:25px 20px 10px;min-height:80px}.project-sheet-handle{display:block;position:absolute;top:8px;left:calc(50% - 30px);width:60px;height:14px;border:0;border-radius:10px;background:transparent;cursor:pointer}.project-sheet-handle:after{content:'';display:block;width:40px;height:4px;border-radius:4px;background:var(--text-muted);margin:auto}.project-details-body{padding:20px;gap:20px}.project-detail-cover{height:220px}.project-actions .primary{flex:1;justify-content:space-between}
}@keyframes project-sheet-enter{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.project-dialog,.project-skeleton{animation:none}.project-details-body{transition:none}.project-dialog.is-loading .project-details-body{filter:none;opacity:.55}}

.allp-project-art:after{display:none}.allp-project-art>.wrench-icon{position:absolute;right:24px;top:20px;width:32px;height:32px;color:#ff3333}.project-no-image>.wrench-icon{width:64px;height:64px}

.home-project-card,.projects-grid>.project-card{text-decoration:none;display:block}

.allp-project-intro{margin:0 auto 24px;max-width:1200px;padding:0 20px;line-height:1.7}.allp-project-intro a{color:var(--text-muted);text-decoration:underline;text-underline-offset:4px}.allp-project-intro a:hover{color:var(--accent-red)}
