*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;color:var(--text-main);background:var(--page-bg);line-height:1.7;overflow-x:hidden}.container{z-index:1;width:100%;max-width:1120px;margin:0 auto;padding:0 32px;position:relative}main{padding:108px 0 32px}.hero{text-align:left;border-bottom:1px solid var(--line);padding:0 0 48px}.hero h1{color:var(--text-main);letter-spacing:-.03em;-webkit-text-fill-color:currentColor;background:0 0;margin:0 0 14px;font-size:clamp(38px,6vw,64px);font-weight:650;line-height:1.05}.hero p{max-width:640px;color:var(--text-subtle);margin:0 0 28px;font-size:15px;line-height:1.85}.cta-button{color:var(--surface-strong);background:var(--text-main);border:1px solid var(--text-main);border-radius:var(--radius-sm);align-items:center;padding:10px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .16s;display:inline-flex}.cta-button:hover{opacity:.84}.category-section{padding:44px 0 0}.section-title{color:var(--text-soft);border-bottom:1px solid var(--line);letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px;padding-bottom:14px;font-size:11px;font-weight:600}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;min-width:0;padding:22px;transition:border-color .16s;display:flex}.project-card:hover{border-color:var(--line-strong)}.project-icon{color:var(--accent);margin-bottom:18px;font-size:20px}.project-card h3{color:var(--text-main);letter-spacing:-.01em;margin:0 0 8px;font-size:15px;font-weight:600}.project-card p{color:var(--text-subtle);margin:0 0 18px;font-size:12.5px;line-height:1.75}.project-link{color:var(--accent);align-items:center;gap:6px;margin-top:auto;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.project-link i{font-size:10px;transition:transform .16s}.project-link:hover i{transform:translate(3px)}.loading{grid-column:1/-1;place-items:center;min-height:120px;display:grid}.spinner{border:2px solid var(--line);border-top-color:var(--text-subtle);border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{color:var(--text-subtle);grid-column:1/-1;font-size:13px}footer{border-top:1px solid var(--line);margin-top:64px}footer .container{padding-top:32px;padding-bottom:36px}.footer-content{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;display:grid}.footer-column h3{color:var(--text-soft);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:11px;font-weight:600}.footer-column p,.footer-links a{color:var(--text-subtle);font-size:12.5px;line-height:1.8}.footer-links{gap:4px;list-style:none;display:grid}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--accent)}.copyright{color:var(--text-soft);margin-top:28px;font-size:11px}@media (width<=900px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-content{grid-template-columns:1fr 1fr;gap:28px}}@media (width<=600px){.container{padding:0 16px}main{padding-top:96px}.projects-grid,.footer-content{grid-template-columns:minmax(0,1fr)}}