@import "https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap";@font-face{font-family:Eurofurence;font-style:normal;font-weight:300;src:url(/fonts/eurofurence/eurof35.woff)format("woff")}@font-face{font-family:Eurofurence;font-style:italic;font-weight:300;src:url(/fonts/eurofurence/eurof36.woff)format("woff")}@font-face{font-family:Eurofurence;font-style:normal;font-weight:400;src:url(/fonts/eurofurence/eurof55.woff)format("woff")}@font-face{font-family:Eurofurence;font-style:italic;font-weight:400;src:url(/fonts/eurofurence/eurof56.woff)format("woff")}@font-face{font-family:Eurofurence;font-style:normal;font-weight:700;src:url(/fonts/eurofurence/eurof75.woff)format("woff")}@font-face{font-family:Eurofurence;font-style:italic;font-weight:700;src:url(/fonts/eurofurence/eurof76.woff)format("woff")}:root{--bg:#1a1614;--bg-elevated:#242020;--accent:#c0553a;--accent-hover:#a8472f;--accent-soft:#c0553a26;--accent-tag:#c0553a1f;--text:#f5f0ec;--text-muted:#8a8480;--border:#ffffff14;--border-strong:#ffffff2e;--primary-color:#c0553a;--glass-bg:#242020eb;--glass-border:#ffffff1a;--text-primary:#f5f0ec;--text-secondary:#8a8480;color:var(--text);background-color:var(--bg);font-family:Figtree,Eurofurence,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #c0553a24, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 30%, #c0553a0f, transparent 50%), var(--bg);min-height:100vh;color:var(--text);overflow:hidden auto}a{color:inherit;text-decoration:none}#root,.app-container{width:100%;min-height:100vh;position:relative}.portfolio-shell{width:100%;min-height:100vh}.site{max-width:860px;margin:0 auto;padding:0 2rem 3rem}.dev-legacy-link{z-index:9999;border:1px solid var(--border-strong);color:var(--text-muted);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;transition:color .2s;position:fixed;top:1rem;left:1rem}.dev-legacy-link:hover{color:var(--text)}.site-nav{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem 0;display:flex}.logo-area{align-items:center;gap:12px;display:flex}.logo-mark{object-fit:contain;flex-shrink:0;width:52px;height:52px;display:block}.nav-links{gap:2rem;display:flex}.nav-links a{color:var(--text-muted);font-size:14px;transition:color .15s}.nav-links a:hover{color:var(--text)}.hero{align-items:flex-start;gap:2.5rem;padding:3.5rem 0 2.5rem;display:flex}.hero-text{flex:1;min-width:0}.hero-brand{letter-spacing:.01em;color:var(--text);margin-bottom:.85rem;font-family:Eurofurence,Figtree,sans-serif;font-size:clamp(2rem,5vw,2.75rem);font-weight:300;line-height:1.05}.hero-eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;font-size:11px;font-weight:600}.hero-name{color:var(--text);margin-bottom:.75rem;font-size:1.35rem;font-weight:500;line-height:1.2}.hero-tagline{color:var(--text-muted);max-width:440px;margin-bottom:1.75rem;font-size:16px;line-height:1.7}.hero-cta{flex-wrap:wrap;gap:12px;display:flex}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:11px 24px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s,transform .15s;display:inline-block}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text);border:.5px solid var(--border-strong);background:0 0;border-radius:8px;padding:11px 24px;font-family:inherit;font-size:14px;transition:border-color .15s;display:inline-block}.btn-secondary:hover{border-color:#ffffff59}.avatar-area{flex-shrink:0;padding-top:.25rem}.avatar-ring{border:3px solid var(--accent);border-radius:50%;width:120px;height:120px;overflow:hidden;box-shadow:0 12px 40px #00000059}.avatar-ring img{object-fit:cover;object-position:center top;width:100%;height:100%}.skills-strip{border-top:.5px solid var(--border);border-bottom:.5px solid var(--border);flex-wrap:wrap;gap:8px;margin-bottom:2.5rem;padding:1.25rem 0;display:flex}.skill-tag{background:var(--bg-elevated);color:var(--text-muted);border:.5px solid #ffffff1f;border-radius:999px;padding:5px 14px;font-size:12px}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem;font-size:10px;font-weight:600}.projects{margin-bottom:2.5rem}.project-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width>=720px){.project-grid{grid-template-columns:1fr 1fr 1fr}}.project-card{background:var(--bg-elevated);border:.5px solid var(--border);border-radius:12px;padding:1.25rem;transition:border-color .15s,transform .2s}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-icon{background:#1a1614;border:.5px solid #f5f0ec24;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.75rem;display:flex;overflow:hidden}.project-icon img{width:28px;height:28px;display:block}.project-title{color:var(--text);margin-bottom:5px;font-size:14px;font-weight:600}.project-desc{color:var(--text-muted);font-size:12px;line-height:1.6}.project-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.project-tag{color:var(--accent);background:var(--accent-tag);border-radius:999px;padding:3px 9px;font-size:10px;font-weight:500}.about-strip{background:var(--bg-elevated);border:.5px solid var(--border);border-radius:12px;align-items:center;gap:1.5rem;margin-bottom:2rem;padding:1.25rem 1.5rem;display:flex}.about-logo{object-fit:contain;flex-shrink:0;width:52px;height:52px;display:block}.about-text h2{color:var(--text);margin-bottom:5px;font-size:15px;font-weight:600}.about-text p{color:var(--text-muted);font-size:13px;line-height:1.65}.site-footer{border-top:.5px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0 0;display:flex}.site-footer p{color:var(--text-muted);font-size:12px}.site-footer .footer-links{flex-wrap:wrap;gap:16px;display:flex}.footer-link{color:var(--accent);font-size:13px;transition:color .15s}.footer-link:hover{color:#e06848}.footer-link-muted{color:var(--text-muted)}.footer-link-muted:hover{color:var(--text)}.panel-wrapper{justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1rem 4rem;display:flex}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;position:relative;overflow:hidden;box-shadow:0 8px 32px #0006}.panel-container-motion{z-index:10;width:min(800px,92vw)}.panel-inner{flex-direction:column;width:100%;max-height:85vh;display:flex}.panel-header{border-bottom:1px solid var(--glass-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.panel-header h2{color:var(--accent);font-family:Eurofurence,Figtree,sans-serif;font-size:1.5rem;font-weight:700}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;transition:color .2s}.close-btn:hover{color:var(--text)}.panel-body{padding:2rem;overflow-y:auto}.content p,.resume-content p{color:var(--text-muted);margin-bottom:1rem;line-height:1.6}.content h3,.resume-content h3{color:var(--text);margin:1.5rem 0 .75rem;font-size:1.1rem}.content a,.resume-content a{color:var(--accent)}.content a:hover,.resume-content a:hover{color:#e06848;text-underline-offset:3px;text-decoration:underline}.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0}.resume-header{align-items:flex-start;gap:1.5rem;display:flex}.resume-headshot{object-fit:cover;border:2px solid var(--accent);border-radius:50%;flex-shrink:0;width:100px;height:100px}.resume-header h2{color:var(--text);margin-bottom:.25rem;font-size:1.4rem}.resume-header h4{color:var(--accent);margin-bottom:.5rem;font-weight:500}.experience-item{margin-bottom:1.25rem}.experience-item h4{color:var(--text);margin-bottom:.25rem;font-size:.95rem}.company-date{font-size:.9rem!important}.experience-item ul{color:var(--text-muted);margin:.5rem 0 0 1.25rem}.experience-item li{margin-bottom:.35rem;font-size:.9rem;line-height:1.5}.btn-download{background:var(--accent);border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:500;transition:background .15s;display:inline-block;color:#fff!important;text-decoration:none!important}.btn-download:hover{background:var(--accent-hover);color:#fff!important}@media (width<=600px){.site{padding:0 1.25rem 2.5rem}.hero{flex-direction:column-reverse;gap:1.5rem;padding:2.5rem 0 2rem}.hero-brand{font-size:2rem}.project-grid{grid-template-columns:1fr}.nav-links{gap:1.25rem}.resume-header{flex-direction:column}}
