:root{--background: #F5EFE6;--card-bg: rgba(255, 255, 255, .8);--primary: #E86A58;--secondary: #55AAA9;--accent: #D98032;--highlight: #9B6B95;--text: #2D3436;--text-dim: rgba(45, 52, 54, .8);--spacing: clamp(1rem, 5vw, 2rem)}body{margin:0;color:var(--text);font-family:system-ui,-apple-system,sans-serif;overflow-x:hidden;background-color:var(--background);position:relative}.background-pattern{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23D98032' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");z-index:-1;transition:transform .1s ease-out}.app{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing);position:relative}.header h1{font-size:clamp(2rem,8vw,4rem);margin:0;font-weight:800;line-height:1;color:var(--text);position:relative;display:inline-block}.nav{display:flex;gap:1rem}.social-link{color:var(--text);opacity:.7;transition:all .3s ease;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.social-link:hover{opacity:1;transform:translateY(-2px);background:rgba(0,0,0,.05)}.main{padding:var(--spacing)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:var(--spacing);max-width:1400px;margin:0 auto}.project-card{background:var(--card-bg);border-radius:24px;overflow:hidden;position:relative;box-shadow:0 4px 12px #00000008;transition:all .6s cubic-bezier(.34,1.56,.64,1);cursor:pointer;height:100%;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #00000014,0 8px 16px #d980321a}.project-image{aspect-ratio:16/9;overflow:hidden;position:relative}.project-image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.1) 0%,transparent 70%);opacity:0;transition:opacity .3s ease;z-index:1}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.165,.84,.44,1)}.project-card:hover .project-image img{transform:scale(1.08)}.project-info{padding:1.8rem;position:relative;background:linear-gradient(to bottom,rgba(255,255,255,.8),rgba(255,255,255,.9));flex:1;display:flex;flex-direction:column}.project-info:before,.project-info:after{content:"";position:absolute;width:40px;height:40px;opacity:.1;transition:opacity .3s ease}.project-info:before{top:1rem;right:1rem;border-top:2px solid var(--accent);border-right:2px solid var(--accent)}.project-info:after{bottom:1rem;left:1rem;border-bottom:2px solid var(--accent);border-left:2px solid var(--accent)}.project-card:hover .project-info:before,.project-card:hover .project-info:after{opacity:.3}.project-info h2{margin:0 0 .75rem;font-size:1.5rem;font-weight:600;color:var(--text);transition:color .3s ease;position:relative;padding-bottom:.75rem}.project-info h2:after{content:"";position:absolute;bottom:0;left:0;width:2rem;height:2px;background:var(--accent);transition:width .3s ease}.project-card:hover .project-info h2:after{width:4rem}.project-info p{margin:0;color:var(--text-dim);line-height:1.6;font-size:.95rem;flex:1}.project-info a{color:var(--text);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;transition:all .3s ease;padding:.6rem 1.2rem;background:transparent;border:1px solid rgba(0,0,0,.1);border-radius:100px;margin-top:1.5rem;align-self:flex-start;position:relative;overflow:hidden}.project-info a:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform:translate(-100%);transition:transform .3s ease;z-index:-1}.project-info a:hover{color:#fff;border-color:var(--accent)}.project-info a:hover:before{transform:translate(0)}@tailwind base;@tailwind components;@tailwind utilities;@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes cardEntrance{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.project-card{animation:cardEntrance .8s cubic-bezier(.16,1,.3,1) forwards}
