:root{--primary: #6366f1;--background: #18181b;--background-alt: #232338;--foreground: #e5e7eb;--accent: #a5b4fc;--accent-light: #c7d2fe;--surface: #e9e9e9;--white: #fff;--card: #25254a;--shadow: 0 4px 32px rgba(99, 102, 241, .12);--radius: 18px;--navbar-height: 40px}*{box-sizing:border-box}body{font-family:Roboto,Arial,sans-serif;margin:0;background:var(--background);color:var(--foreground);line-height:1.7;min-height:100vh}.fadein{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.61,1,.88,1),transform .7s cubic-bezier(.61,1,.88,1)}.fadein.visible{opacity:1;transform:none}nav{position:fixed;top:0;width:100%;background:#18181bf0;box-shadow:var(--shadow);z-index:1000;height:var(--navbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;transition:background .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-brand{font-size:1.3rem;font-weight:700;color:var(--primary);letter-spacing:1px;text-decoration:none}.nav-links{display:flex;gap:2.2rem;transition:transform .3s ease-out}.nav-links a{text-decoration:none;color:var(--foreground);font-weight:700;padding-left:1rem;border-bottom:2.5px solid transparent;transition:color .2s,border-bottom .2s;letter-spacing:.02em;font-size:1.2rem}.nav-links a:hover,.nav-links a.active{color:var(--primary);border-bottom:2.5px solid var(--primary)}.nav-toggle{display:none;flex-direction:column;gap:6px;cursor:pointer}.nav-toggle span{width:28px;height:3.5px;background:var(--foreground);border-radius:3px;transition:.3s}@media (max-width: 800px){nav{padding:0 1rem}.nav-links{position:fixed;top:4rem;right:0;background:var(--background-alt);flex-direction:column;width:100vw;height:calc(100vh - var(--navbar-height));box-shadow:0 4px 24px #6366f11f;transform:translate(100%);transition:transform .3s;opacity:0;pointer-events:none;z-index:1001;padding-top:2rem;gap:1.5rem;text-align:center}.nav-links.open{transform:translate(0);opacity:1;pointer-events:auto}.nav-toggle{display:flex}}.hero{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:calc(var(--navbar-height) + 1.5rem) 1rem 2rem 1rem;background:linear-gradient(120deg,#232338,#18181b);position:relative;overflow:hidden}.hero-inner{display:flex;align-items:center;gap:2rem;z-index:2;flex-direction:row;max-width:800px;width:100%;margin:0 auto}.hero-content{text-align:left;flex:2}.hero h1{font-size:2.2rem;font-weight:800;color:var(--accent-light);margin-bottom:.8rem;letter-spacing:.04em;line-height:1.1;text-shadow:0 4px 24px rgba(99,102,241,.18)}.hero p{font-size:1.1rem;color:var(--accent-light);max-width:650px;margin:0 0 1.8rem;font-weight:400;text-shadow:0 3px 12px rgba(99,102,241,.09)}.hero .hero-btn{background:var(--primary);color:var(--white);padding:.8rem 2rem;border-radius:24px;font-size:1rem;font-weight:600;border:none;cursor:pointer;box-shadow:0 2px 18px #6366f11f;transition:background .2s,transform .15s;text-decoration:none;display:inline-block;margin-top:1.2rem;letter-spacing:.03em}.hero .hero-btn:hover{background:#4f46e5;transform:translateY(-2px) scale(1.025)}#hero-headshot{flex:1;display:flex;align-items:center;justify-content:center}#hero-headshot img{width:300px;height:300px;border-radius:50%;object-fit:cover;border:5px solid rgba(99,102,241,.15);box-shadow:0 10px 40px #6366f121,0 2px 12px #0000001f;background:#fff;transition:opacity .3s ease,transform .2s}#hero-headshot img:hover{transform:scale(1.03) rotate(-3deg)}.hero-fade-out{opacity:0;transform:translate(-10px)}.hero-fade-in{opacity:1;transform:translate(10px)}.hero-bg{position:absolute;top:12%;left:60%;width:340px;height:340px;background:radial-gradient(circle,rgba(99,102,241,.23) 0%,transparent 75%);filter:blur(18px);z-index:0;pointer-events:none}.hero-bg2{position:absolute;bottom:-80px;left:-80px;width:220px;height:220px;background:radial-gradient(circle,rgba(99,102,241,.14) 0%,transparent 80%);filter:blur(15px);z-index:0;pointer-events:none}.hero-bg3{position:absolute;top:5%;right:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(255,255,255,.045) 0%,transparent 90%);filter:blur(10px);z-index:0;pointer-events:none}@keyframes fadein{to{opacity:1}}@media (max-width: 800px){.hero-inner{flex-direction:column;gap:2.5rem;text-align:center}.hero-content{text-align:center}#hero-headshot img{width:200px;height:200px}.hero h1{font-size:1.8rem}}@media (max-width: 600px){.hero{padding-top:calc(var(--navbar-height) + 1.3rem)}}.dev-section{position:relative;display:flex;overflow:hidden;padding:1rem 0;background:transparent}.dev-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(https://images.unsplash.com/photo-1555066931-4365d14bab8c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2670&q=80) center/cover no-repeat;z-index:-2}.dev-section:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#18181bd9;z-index:-1}.dev-content{width:100%;max-width:1100px;margin:0 auto;padding:0 2rem;position:relative;z-index:1}.section-title{color:var(--primary);font-size:2rem;margin-bottom:2rem;text-align:center;font-weight:700}.dev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.dev-card{background:var(--card);padding:1.5rem;border-radius:var(--radius);margin-bottom:2rem;border-top:4px solid var(--primary);transition:transform .3s,box-shadow .3s}.dev-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0003}.dev-card h3{color:var(--white);font-size:1.2rem;margin-bottom:1rem}.dev-card p{color:var(--accent-light);font-size:1rem;line-height:1.6}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:1rem 0}.skills-col{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border-bottom:4px solid var(--primary);padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:stretch;transition:transform .3s,box-shadow .3s}.skills-col:hover{transform:translateY(-4px);box-shadow:0 10px 25px #6366f129}.skills-col-header{color:var(--primary);font-size:1.8rem;font-weight:700;text-align:center;margin-bottom:1rem;letter-spacing:.03em}.skills-list{list-style:none;padding:0 0 0 .5rem;margin:0}.skills-list li{color:var(--accent-light);padding:.5rem 0;position:relative;font-size:.95rem}.skills-list li:before{content:"•";color:var(--accent-light);margin-right:8px}@media (max-width: 900px){.dev-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:1fr;gap:1rem}}.media-section{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;padding:1rem 0;background:#161622;z-index:0}.media-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(/images/media-section/wluc.jpeg) left center/cover no-repeat;z-index:-2}.media-content{width:50%;margin-left:auto;display:flex;flex-direction:column;gap:2rem;padding:0 4rem 0 2rem;z-index:1}.media-text{background:#232338;padding:1rem;border:var(--primary) 3px solid;border-radius:1rem;box-shadow:0 8px 32px #000000e6;max-width:600px}.media-text h3{color:var(--primary);margin-bottom:0;margin-top:0;font-size:1.2rem}.media-text p{color:#e0e3fc;line-height:1.6}@media (max-width: 1200px){.media-content{width:60%;padding:0 2rem}.media-section:before{left:-150px}}@media (max-width: 900px){.media-content{width:100%;padding:0 2rem}.media-section:before{height:30vh;width:100%;left:0;background-position:center}.media-section{padding-top:calc(30vh + 2rem)}}@media (max-width: 600px){.media-section{padding:calc(30vh + 1rem) 0 2rem}.media-content{padding:0 1rem;gap:1rem}.media-text{padding:1.5rem}}.projects-section{padding:1rem 0;background:var(--background-alt)}.projects-section h2{color:var(--primary);font-size:1.8rem;margin-bottom:1.7rem;font-weight:700;text-align:center;letter-spacing:.03em}.projects-list{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;margin-top:1.2rem;max-width:1100px;margin:0 auto}.project-card{background:var(--card);border-radius:var(--radius);box-shadow:0 2px 16px #6366f117;width:300px;max-width:100%;padding:1.5rem 1rem 1.2rem;display:flex;flex-direction:column;align-items:flex-start;position:relative;min-height:190px;transition:box-shadow .2s,transform .15s;border-top:3px solid var(--primary)}.project-card:hover{box-shadow:0 6px 32px #6366f130;transform:translateY(-4px) scale(1.017);border-top-color:var(--accent-light)}.project-title{font-size:1.1rem;color:var(--white);font-weight:700;margin-bottom:.6rem}.project-desc{color:var(--accent-light);font-size:.95rem;margin-bottom:1.2rem;flex:1}.project-link{color:var(--primary);text-decoration:none;font-weight:600;transition:color .2s;font-size:.95rem;letter-spacing:.01em}.project-link:hover{color:var(--accent-light);text-decoration:underline}@media (max-width: 900px){.projects-list{flex-direction:column;align-items:center}}@media (max-width: 600px){.projects-section{padding:3rem 1rem}}.cta-section{text-align:center;padding:1rem 0;min-height:90vh;background:linear-gradient(120deg,#232338,#18181b);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.cta-content{position:relative;z-index:2;max-width:600px;margin:0 auto}.cta-section h3{color:var(--accent-light);font-size:2rem;margin-bottom:1.1rem;font-weight:700;letter-spacing:.03em}.cta-text{color:var(--white);opacity:.8;font-size:1.1rem;margin-bottom:2rem}.contact-methods{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-bottom:2.5rem}.cta-btn{background:var(--primary);color:var(--white);padding:.8rem 2rem;border-radius:24px;font-size:1rem;font-weight:600;border:none;cursor:pointer;box-shadow:0 2px 18px #6366f126;transition:all .3s ease;text-decoration:none;display:flex;justify-content:center;gap:.5rem;width:200px}.cta-btn:hover{background:#4f46e5;transform:translateY(-2px) scale(1.025);box-shadow:0 4px 25px #6366f140}.social-links{display:flex;gap:1rem}.social-btn{background:#ffffff1a;color:var(--white);padding:.8rem;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.social-btn:hover{background:#fff3;transform:translateY(-2px)}.icon{width:20px;height:20px}.background-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0);background-size:50px 50px;opacity:.3}@media (max-width: 600px){.cta-section{padding:3rem 1rem}}footer{background:var(--background-alt);color:var(--accent-light);text-align:center;padding:.5rem .25rem;font-size:.9rem;box-shadow:0 -2px 16px #6366f10f;letter-spacing:.01em}footer a{color:var(--primary);text-decoration:none}footer a:hover{text-decoration:underline}.project-detail{padding-top:var(--navbar-height);max-width:1100px;margin:0 auto}.project-not-found{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center}.project-not-found h1{color:#d32f2f;margin-bottom:1.5rem}.project-hero{background:var(--background-alt);padding:3rem 2rem 2.5rem;border-radius:0 0 var(--radius) var(--radius);margin-bottom:2.5rem;box-shadow:0 4px 24px #00000008;text-align:center;position:relative}nav{padding:2rem}.back-link{color:var(--primary);text-decoration:none;font-weight:500;transition:color .2s;font-size:1rem;display:inline-block}.back-link:hover,.back-link:focus{color:#322bb7;text-decoration:underline}.project-hero h1{color:var(--primary);font-size:2.3rem;font-weight:700;margin:.5rem 0 1.2rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;list-style:none;padding:0;margin:1.2rem 0 .2rem}.project-tags li{background:var(--accent-light);color:#000;font-size:.93rem;padding:.35em 1.2em;border-radius:18px;font-weight:500;letter-spacing:.02em;margin:0;-webkit-user-select:none;user-select:none}.project-links{margin-top:2.2rem;display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap}.project-links a{display:inline-block;padding:.75rem 2.2rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:1.05rem;box-shadow:0 2px 12px #6366f112;transition:all .17s cubic-bezier(.4,0,.2,1);border:none;outline:none;cursor:pointer}.github-link{background:var(--primary);color:var(--white);border:1.5px solid var(--primary)}.github-link:hover,.github-link:focus{background:#322bb7;color:var(--white)}.project-content{padding:0 2rem 2.5rem}.project-section{margin-bottom:3.5rem}.project-section h2{color:var(--primary);font-size:1.5rem;margin-bottom:1.2rem;font-weight:600;letter-spacing:.01em}.feature-list{list-style:disc inside;padding-left:1.1em}.feature-list li{margin-bottom:.7rem;color:var(--accent);font-size:1.08rem}.project-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.gallery-item{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 10px #0000000f;transition:transform .15s;display:flex;flex-direction:column;align-items:center;justify-content:space-around;gap:.65rem;padding:1rem}.gallery-item:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 6px 24px #6366f11f}.gallery-item img,.gallery-item video{width:100%;height:auto;max-height:70vh;display:block;object-fit:cover;border-radius:var(--radius)}.project-gallery .gallery-item:first-child{grid-column:1 / -1}.project-gallery .gallery-item:nth-last-child(2):nth-child(2n){max-width:45%;margin:0 auto;grid-column:1 / -1}.project-gallery .gallery-item:nth-last-child(1){grid-column:1 / -1}.caption{padding:.25rem .75rem;text-align:center;text-wrap:balance;line-height:1.35rem;color:#000;font-size:1rem;background:var(--accent-light);border-radius:var(--radius)}.see-also-section{margin-top:3rem}.see-also-section h2{color:var(--primary);font-size:1.5rem;margin-bottom:1.2rem;font-weight:600;letter-spacing:.01em}.see-also-list{display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:1.5rem;justify-content:flex-start}.see-also-card{display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);padding:1.3rem 1.5rem 1.5rem;min-width:220px;flex:1 1 240px;max-width:340px;box-shadow:0 2px 10px #1e293b12;text-decoration:none;color:var(--primary);transition:transform .09s,box-shadow .13s,border-color .13s;position:relative;font-size:1rem}.see-also-card:hover,.see-also-card:focus{transform:translateY(-4px) scale(1.015);box-shadow:0 6px 24px #6366f121;border-color:var(--primary);outline:none;color:var(--primary)}.see-also-title{font-weight:700;font-size:1.14rem;margin-bottom:.5rem;color:var(--primary);letter-spacing:.01em}.see-also-desc{color:var(--accent-light);margin-bottom:1.25rem}.see-also-tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5em;margin:0;padding:0;font-size:.96rem}.see-also-tags li{background:var(--accent-light);color:#000;border-radius:1em;padding:.17em .8em;font-weight:500;margin-bottom:.3em;letter-spacing:.01em}.see-also-arrow{font-size:1.3em;position:absolute;right:1.15rem;bottom:1.05rem;color:#b3bacf;transition:color .13s;pointer-events:none}.see-also-card:hover .see-also-arrow,.see-also-card:focus .see-also-arrow{color:var(--primary)}.lightbox{position:fixed;inset:0;z-index:10000;background:#101327ed;display:flex;align-items:center;justify-content:center}.lightbox-content{position:relative;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lightbox-close{position:absolute;top:-2.2rem;right:0;background:none;border:none;color:#fff;font-size:2.1rem;cursor:pointer;padding:.2rem .7rem;line-height:1;z-index:2;transition:color .13s}.lightbox-close:hover,.lightbox-close:focus{color:#fbbf24}.lightbox img,.lightbox video{box-shadow:0 6px 48px #0000004f;background:#111;border-radius:12px;max-width:96vw;max-height:80vh}@media (max-width: 900px){.project-detail{padding-top:var(--navbar-height);max-width:98vw}.project-content,.project-hero{padding-left:1rem;padding-right:1rem}.project-hero nav{left:1rem;top:1rem}.see-also-list{gap:1rem}.project-gallery .gallery-item:nth-last-child(2):nth-child(2n){max-width:77%}}@media (max-width: 600px){.project-hero{padding:2.2rem .75rem 1.3rem;margin-bottom:1.5rem}.project-content{padding:0 .6rem 2rem}.project-links{flex-direction:column;gap:.7rem;margin-top:1.3rem}.project-hero nav{position:static;margin-bottom:.6rem}.project-tags{gap:.3rem;margin-top:.8rem}.gallery-item{font-size:.92rem}.see-also-list{flex-direction:column;gap:.7rem;margin-top:1.1rem}.see-also-card{min-width:0;max-width:100%;width:100%;padding:1.2rem 1rem;font-size:.99rem}.lightbox-content{max-width:100vw;max-height:90vh}.lightbox img,.lightbox video{max-width:98vw;max-height:70vh}}
