/* ═══════════════════════════════════════════════════
   projects.css — Projects page styles
   ═══════════════════════════════════════════════════ */

/* ── FILTER TABS ── */
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 48px; }
.f-tab { padding: 9px 20px; border-radius: 100px; font-size: 11.5px; font-weight: 500; letter-spacing: 0.07em; border: 1px solid var(--glass-border); background: var(--glass-bg); color: var(--text-secondary); cursor: pointer; transition: all .25s cubic-bezier(.34,1.4,.64,1); backdrop-filter: blur(12px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 3px 4px 10px var(--neo-dark); }
.f-tab:hover, .f-tab.active { color: var(--accent); border-color: rgba(var(--accent-rgb),0.38); background: var(--accent-soft); transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 3px 4px 12px var(--neo-dark), 0 0 16px rgba(var(--accent-rgb),0.12); }

/* ── PROJECTS GRID ── */
.projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px,1fr)); gap: 22px; }
.proj-card { padding: 34px; cursor: default; transform-style: preserve-3d; }
.proj-card.hidden { display: none; }
.proj-num { font-size: 11px; font-family: 'JetBrains Mono',monospace; color: var(--text-muted); letter-spacing: 0.14em; display: block; margin-bottom: 18px; }
.proj-sub { font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 8px; }
.proj-title { font-size: 19px; font-weight: 700; color: var(--text-primary); margin-bottom: 10px; letter-spacing: -0.01em; line-height: 1.3; }
.proj-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.75; margin-bottom: 16px; font-weight: 300; }
.proj-stat { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 8px; font-size: 11px; font-weight: 600; background: var(--accent-soft); color: var(--accent); border: 1px solid rgba(var(--accent-rgb),0.2); margin-bottom: 14px; }
.proj-stack { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 22px; }
.stag { padding: 5px 13px; border-radius: 100px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.06em; border: 1px solid var(--glass-border); background: var(--glass-bg2); color: var(--text-secondary); box-shadow: inset 1px 1px 3px rgba(0,0,0,0.22); transition: color .2s, border-color .2s; }
.proj-card:hover .stag { color: var(--accent); border-color: rgba(var(--accent-rgb),0.3); }
.proj-link { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); text-decoration: none; opacity: 0.62; transition: opacity .2s, gap .25s; background: none; border: none; cursor: pointer; font-family: inherit; padding: 0; }
.proj-link svg { width: 14px; height: 14px; stroke: var(--accent); fill: none; stroke-width: 2.5; transition: transform .25s cubic-bezier(.34,1.56,.64,1); }
.proj-card:hover .proj-link { opacity: 1; }
.proj-card:hover .proj-link svg { transform: translate(3px,-3px); }

/* ── TILT EFFECT ── */
.proj-card { transition: transform .4s cubic-bezier(.34,1.3,.64,1), box-shadow .4s; }

/* ── PROJECT MODAL ── */
.proj-modal { position: fixed; inset: 0; z-index: 3000; background: rgba(0,0,0,0.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.proj-modal.open { opacity: 1; visibility: visible; }
.proj-modal-box { position: relative; max-width: 640px; width: 100%; max-height: 88vh; overflow-y: auto; border-radius: 24px; background: rgba(10,13,26,0.96); border: 1px solid rgba(255,255,255,0.13); box-shadow: inset 0 1.5px 0 rgba(255,255,255,0.1), 0 32px 80px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.04); padding: 40px 40px 36px; scroll-behavior: smooth; }
[data-theme="light"] .proj-modal-box { background: rgba(238,241,252,0.97); border-color: rgba(255,255,255,0.88); box-shadow: 0 32px 80px rgba(120,140,190,0.38), inset 0 1.5px 0 rgba(255,255,255,0.95); }
.proj-modal-close { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); color: var(--text-secondary); font-size: 18px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; }
.proj-modal-close:hover { background: rgba(255,255,255,0.14); color: var(--text-primary); }
[data-theme="light"] .proj-modal-close { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.1); }
.proj-modal-sub { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 8px; }
.proj-modal-title { font-size: clamp(20px,3vw,28px); font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); margin-bottom: 10px; line-height: 1.2; }
.proj-modal-stat { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 8px; font-size: 11px; font-weight: 600; background: var(--accent-soft); color: var(--accent); border: 1px solid rgba(var(--accent-rgb),0.2); margin-bottom: 18px; }
.proj-modal-section-label { font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin: 20px 0 10px; opacity: 0.8; }
.proj-modal-layman { font-size: 14.5px; color: var(--text-primary); line-height: 1.85; font-weight: 400; margin-bottom: 4px; }
.proj-modal-overview { font-size: 13px; color: var(--text-secondary); line-height: 1.8; font-weight: 300; margin-bottom: 4px; }
.proj-modal-highlights { list-style: none; display: flex; flex-direction: column; gap: 9px; margin-bottom: 4px; }
.proj-modal-highlights li { font-size: 12.5px; color: var(--text-secondary); line-height: 1.7; font-weight: 300; padding-left: 18px; position: relative; }
.proj-modal-highlights li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); opacity: 0.7; }
.proj-modal-stack { display: flex; flex-wrap: wrap; gap: 7px; }
.proj-modal-stack .stag { background: var(--glass-bg2); }

/* ── WEBSITES BUILT ── */
.websites-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 20px; }
.site-card { border-radius: 18px; background: var(--glass-bg); border: 1px solid var(--glass-border); backdrop-filter: blur(18px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 5px 6px 18px var(--neo-dark), -3px -3px 10px var(--neo-light); display: flex; flex-direction: column; overflow: hidden; transition: transform .3s cubic-bezier(.34,1.4,.64,1), box-shadow .3s, border-color .3s; }
.site-card:hover { transform: translateY(-5px) scale(1.02); border-color: rgba(var(--accent-rgb),0.3); box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 8px 12px 28px var(--neo-dark), 0 0 24px rgba(var(--accent-rgb),0.1); }
.site-preview { width: 100%; height: 200px; overflow: hidden; position: relative; background: rgba(8,10,20,0.7); border-bottom: 1px solid var(--glass-border); flex-shrink: 0; }
[data-theme="light"] .site-preview { background: rgba(230,232,242,0.5); }
.site-preview iframe { width: 1280px; height: 800px; border: none; pointer-events: none; transform-origin: top left; display: block; }
.site-preview-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--text-muted); font-size: 11px; letter-spacing: 0.06em; font-family: 'JetBrains Mono',monospace; background: var(--glass-bg); transition: opacity .4s; }
.site-preview-fallback svg { stroke: var(--text-muted); opacity: 0.5; }
.site-preview.iframe-loaded .site-preview-fallback { opacity: 0; pointer-events: none; }
.site-info { padding: 18px 20px; display: flex; flex-direction: column; gap: 7px; }
.site-tag { display: inline-flex; align-self: flex-start; padding: 3px 9px; border-radius: 6px; font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; background: var(--accent-soft); color: var(--accent); border: 1px solid rgba(var(--accent-rgb),0.2); }
.site-title { font-size: 14px; font-weight: 700; color: var(--text-primary); letter-spacing: -0.01em; }
.site-desc { font-size: 11.5px; color: var(--text-secondary); line-height: 1.6; font-weight: 300; }
.site-url { font-size: 10.5px; font-family: 'JetBrains Mono',monospace; color: var(--accent); opacity: 0.7; letter-spacing: 0.02em; margin-top: 2px; display: inline-flex; align-items: center; gap: 5px; text-decoration: none; transition: opacity .2s; }
.site-card:hover .site-url { opacity: 1; }
.site-url svg { width: 10px; height: 10px; stroke: var(--accent); fill: none; stroke-width: 2; flex-shrink: 0; }

