.projects-section{background-color:var(--bg-primary);padding:6rem 1.5rem;position:relative}@media (min-width:1024px){.projects-section{padding:8rem 7.5rem}}.projects-container{max-width:1400px;margin:0 auto}.projects-header{flex-direction:column;gap:1rem;margin-bottom:4rem;display:flex}@media (min-width:768px){.projects-header{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-bottom:5rem}}.projects-header .header-left{flex-direction:column;gap:.5rem;display:flex}.projects-header .section-label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:600}.projects-header .section-title{font-family:var(--font-display);color:var(--fg-primary);letter-spacing:-.02em;font-size:max(2rem,min(5vw,3rem));font-weight:700}.projects-header .header-description{font-family:var(--font-body);color:var(--fg-muted);max-width:400px;font-size:1rem;line-height:1.6}.project-cursor{pointer-events:none;z-index:9999;will-change:transform,opacity;border-radius:12px;width:280px;height:180px;position:fixed;top:0;left:0;overflow:hidden;transform:translate(0);box-shadow:0 20px 60px -10px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.1)}.cursor-thumbnail{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}@media (max-width:1024px){.project-cursor{display:none!important}}.projects-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (min-width:768px){.projects-grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media (min-width:1200px){.projects-grid{gap:2.5rem}}.project-card{background:var(--bg-secondary);border:1px solid var(--stroke);border-radius:1rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 20px 60px -15px rgba(59,130,246,.2)}.project-card.featured{grid-column:span 1}@media (min-width:768px){.project-card.featured:first-child{grid-column:span 2}}.project-content{padding:1.5rem}@media (min-width:768px){.project-content{padding:2rem}}.project-meta{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.project-year{background:var(--accent-muted);font-family:var(--font-mono);color:var(--accent);border-radius:6px;padding:.35rem .75rem;font-size:.7rem;font-weight:600}.project-subtitle{font-family:var(--font-mono);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:500}.project-title{font-family:var(--font-display);color:var(--fg-primary);margin-bottom:.75rem;font-size:1.5rem;font-weight:600;transition:color .3s}@media (min-width:768px){.project-title{font-size:1.75rem}}.project-card:hover .project-title{color:var(--accent)}.project-description{font-family:var(--font-body);color:var(--fg-secondary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.7}.project-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.project-tag{background:var(--bg-tertiary);border:1px solid var(--stroke);font-family:var(--font-mono);color:var(--fg-muted);border-radius:6px;padding:.35rem .75rem;font-size:.7rem;font-weight:500;transition:all .2s}.project-card:hover .project-tag{border-color:var(--stroke-light)}.project-actions{flex-wrap:wrap;gap:.75rem;display:flex}.action-btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.view-btn{background:var(--accent);color:var(--fg-primary)}.view-btn:hover{background:var(--accent-hover);transform:translateY(-2px)}.live-btn{color:var(--fg-primary);border:1px solid var(--stroke-light);background:0 0}.live-btn:hover{border-color:var(--accent);color:var(--accent)}.github-btn{color:var(--fg-secondary);border:1px solid var(--stroke);background:0 0}.github-btn:hover{border-color:var(--fg-muted);color:var(--fg-primary)}.project-number{font-family:var(--font-display);color:var(--fg-primary);opacity:.03;pointer-events:none;font-size:5rem;font-weight:700;line-height:1;position:absolute;bottom:1rem;right:1.5rem}@media (min-width:768px){.project-number{font-size:7rem}}.project-hover-line{background:var(--accent);transform-origin:0;width:100%;height:3px;transition:transform .4s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.project-card:hover .project-hover-line{transform:scaleX(1)}.projects-footer{justify-content:center;margin-top:4rem;display:flex}.view-all-link{border:1px solid var(--stroke-light);font-family:var(--font-body);color:var(--fg-secondary);background:0 0;border-radius:100px;align-items:center;gap:.75rem;padding:1rem 2rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.view-all-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.project-modal-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10000;background:rgba(0,0,0,.9);justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.project-modal{background:var(--bg-secondary);border:1px solid var(--stroke-light);border-radius:1.5rem;flex-direction:column;width:100%;max-width:1200px;max-height:90vh;display:flex;position:relative;overflow:hidden}.modal-close{background:var(--bg-tertiary);border:1px solid var(--stroke);width:48px;height:48px;color:var(--fg-secondary);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{background:var(--accent);border-color:var(--accent);color:var(--fg-primary);transform:rotate(90deg)}.modal-header{border-bottom:1px solid var(--stroke);flex-direction:column;gap:1rem;padding:2rem;display:flex}@media (min-width:768px){.modal-header{flex-direction:row;justify-content:space-between;align-items:center}}.modal-subtitle{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:500}.modal-title{font-family:var(--font-display);color:var(--fg-primary);font-size:1.75rem;font-weight:700}.modal-actions{gap:.75rem;display:flex}.modal-btn{font-family:var(--font-body);border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.modal-btn.primary{background:var(--accent);color:var(--fg-primary)}.modal-btn.primary:hover{background:var(--accent-hover);transform:translateY(-2px)}.modal-btn.secondary{background:var(--bg-tertiary);color:var(--fg-secondary);border:1px solid var(--stroke)}.modal-btn.secondary:hover{border-color:var(--fg-muted);color:var(--fg-primary)}.modal-preview-container{background:#fff;flex-direction:column;flex:1;display:flex;overflow:hidden}.browser-bar{background:#f5f5f5;border-bottom:1px solid #e0e0e0;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.browser-dots{gap:6px;display:flex}.browser-dots .dot{border-radius:50%;width:12px;height:12px}.browser-dots .dot.red{background:#ff5f57}.browser-dots .dot.yellow{background:#ffbd2e}.browser-dots .dot.green{background:#28c840}.browser-url{font-family:var(--font-mono);color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:6px;flex:1;padding:.5rem 1rem;font-size:.75rem}.preview-scroll-area{flex:1;overflow-x:hidden;overflow-y:auto}.preview-image{width:100%;height:auto;display:block}
