*{box-sizing:border-box;margin:0;padding:0}:root{--cream:#f0e6d0;--amber:#c8853a;--dark:#1a1410;--mid:#2e2318;--muted:#8a7560;--accent:#d4a853;--groove:#0d0b08}html{scroll-behavior:smooth}.portfolio,body{background:#1a1410;background:var(--dark)}.portfolio{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.03'/%3E%3C/svg%3E");color:#f0e6d0;color:var(--cream);font-family:DM Mono,monospace;font-size:14px;font-weight:400;min-height:100vh;overflow-x:hidden}.nav{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1a1410f2;border-bottom:1px solid #c8853a26;display:flex;justify-content:space-between;padding:1.5rem 3rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-label{color:#8a7560;color:var(--muted);font-family:Shippori Mincho,serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-links a{background:none;border:none;color:#8a7560;color:var(--muted);cursor:pointer;font-family:inherit;font-size:.7rem;letter-spacing:.2em;text-decoration:none;text-transform:uppercase;transition:color .3s}.nav-links a:hover{color:#d4a853;color:var(--accent)}.nav-mobile-toggle{background:none;border:none;color:#8a7560;color:var(--muted);cursor:pointer;display:none;font-size:1.5rem}.hero{grid-gap:2rem;align-items:center;display:grid;gap:2rem;grid-template-columns:1fr 1fr;padding:0 3rem}.hero,.hero-graph-container{min-height:calc(100vh - 70px)}.hero-graph-container{height:100%}.record-label-top{align-items:center;color:#c8853a;color:var(--amber);display:flex;font-size:.6rem;gap:1rem;letter-spacing:.35em;margin-bottom:1.5rem;text-transform:uppercase}.record-label-top:before{background:#c8853a;background:var(--amber);content:"";display:block;height:1px;width:2rem}.hero-title{font-family:Playfair Display,serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:700;line-height:1.05;margin-bottom:.5rem}.hero-title .italic{color:#d4a853;color:var(--accent);font-style:italic}.hero-subtitle{color:#8a7560;color:var(--muted);font-family:Shippori Mincho,serif;font-size:1.1rem;line-height:1.7;margin:1.5rem 0 .75rem;max-width:400px}.hero-stats-inline{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.25rem 0 1.5rem}.stat-badge{border:1px solid #c8853a59;padding:.25rem .7rem}.stat-badge,.symfony-badge{color:#c8853a;color:var(--amber);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase}.symfony-badge{align-items:center;border:1px solid #c8853a;border:1px solid var(--amber);display:inline-flex;gap:.5rem;margin-bottom:2rem;padding:.4rem 1rem}.symfony-badge:before{background:#c8853a;background:var(--amber);border-radius:50%;content:"";display:block;height:6px;width:6px}.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:3rem}.tag{border:1px solid #c8853a4d;color:#8a7560;color:var(--muted);font-size:.6rem;letter-spacing:.2em;padding:.3rem .8rem;text-transform:uppercase;transition:all .3s}.tag:hover{border-color:#c8853a;border-color:var(--amber);color:#f0e6d0;color:var(--cream)}.btn-primary{background:#c8853a;background:var(--amber);border:none;color:#1a1410;color:var(--dark);cursor:pointer;font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.25em;padding:.9rem 2rem;text-transform:uppercase;transition:all .3s}.btn-primary:hover{background:#d4a853;background:var(--accent);transform:translateY(-1px)}.ticker{border-bottom:1px solid #c8853a1f;border-top:1px solid #c8853a1f;overflow:hidden;padding:.75rem 0}.ticker-inner{animation:ticker 25s linear infinite;display:flex;gap:3rem;white-space:nowrap}.ticker-item{color:#8a7560;color:var(--muted);flex-shrink:0;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase}@keyframes ticker{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.section{padding:5rem 3rem}.section-header{align-items:center;display:flex;gap:1.5rem;margin-bottom:3rem}.section-number{color:#c8853a;color:var(--amber);font-size:.6rem;letter-spacing:.3em}.section-title{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:400}.section-line{background:#c8853a26;flex:1 1;height:1px}.about-text{color:#8a7560;color:var(--muted);font-family:Shippori Mincho,serif;font-size:1.05rem;line-height:1.8;max-width:700px}.about-text p{margin-bottom:1rem}.experience-separator{background:#c8853a4d;height:1px;margin:3rem 0;width:4rem}.experience-main{border:1px solid #c8853a26;margin-bottom:3rem;padding:2.5rem}.experience-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.experience-company{font-family:Playfair Display,serif;font-size:1.4rem;font-weight:700}.experience-role{color:#c8853a;color:var(--amber);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}.experience-date{color:#8a7560;color:var(--muted);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}.experience-desc{color:#8a7560;color:var(--muted);font-family:Shippori Mincho,serif;font-size:.9rem;line-height:1.7;margin:1rem 0}.experience-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}.experience-achievements{list-style:none;padding:0}.experience-achievements li{color:#f0e6d0;color:var(--cream);font-size:.9rem;line-height:1.7;margin-bottom:1.1rem;opacity:.9;padding-left:1.2rem;position:relative}.experience-achievements li:before{color:#c8853a;color:var(--amber);content:"—";left:0;position:absolute}.experience-achievements strong{color:#f0e6d0;color:var(--cream);font-weight:400}.experience-highlight{color:#c8853a;color:var(--amber);font-weight:400}.timeline{border-left:1px solid #c8853a33;display:flex;flex-direction:column;gap:1.5rem;margin-left:.5rem;padding-left:2rem}.timeline-item{position:relative}.timeline-item:before{background:#c8853a;background:var(--amber);border-radius:50%;content:"";height:6px;left:-2.35rem;position:absolute;top:.5rem;width:6px}.timeline-company{font-family:Playfair Display,serif;font-size:1rem;margin-bottom:.15rem}.timeline-meta{color:#c8853a;color:var(--amber);font-size:.6rem;letter-spacing:.15em;margin-bottom:.3rem;text-transform:uppercase}.timeline-desc{color:#8a7560;color:var(--muted);font-size:.85rem;line-height:1.6}.projects-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.project-card{border:1px solid #c8853a26;overflow:hidden;padding:2rem;position:relative;transition:all .4s}.project-card:before{background:linear-gradient(90deg,#c8853a,#0000);background:linear-gradient(90deg,var(--amber),#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform .4s}.project-card:hover:before{transform:scaleX(1)}.project-card:hover{background:#c8853a08;border-color:#c8853a66}.project-card:last-child:nth-child(odd){grid-column:1/-1}.project-status{font-size:.5rem;letter-spacing:.2em;margin-bottom:.75rem;text-transform:uppercase}.project-status.production{color:#6dbf6d}.project-status.open-source{color:#c8853a;color:var(--amber)}.project-title{font-family:Playfair Display,serif;font-size:1.2rem;margin-bottom:.5rem}.project-year{font-size:.6rem;letter-spacing:.15em;margin-bottom:.75rem}.project-desc,.project-year{color:#8a7560;color:var(--muted)}.project-desc{font-size:.85rem}.project-desc,.project-detail{line-height:1.6;margin-bottom:1rem}.project-detail{color:#8a7560e6;font-size:.8rem}.card-section{margin-bottom:1rem}.card-section:last-of-type{margin-bottom:0}.section-label{color:#c8853a;color:var(--amber);display:block;font-size:.55rem;letter-spacing:.3em;margin-bottom:.4rem;text-transform:uppercase}.card-section .project-desc{margin-bottom:0}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.stack-tag{border:1px solid #8a756033;color:#8a7560b3;font-size:.65rem;padding:.3rem .7rem}.project-link,.stack-tag{letter-spacing:.15em;text-transform:uppercase}.project-link{color:#c8853a;color:var(--amber);display:inline-block;font-size:.6rem;margin-top:1rem;text-decoration:none;transition:color .3s}.project-link:hover{color:#d4a853;color:var(--accent)}.opensource-card{background:#c8853a08;border:1px solid #c8853a;border:1px solid var(--amber);margin-top:2rem;padding:2rem}.opensource-label{color:#c8853a;color:var(--amber);font-size:.55rem;letter-spacing:.3em;margin-bottom:.75rem;text-transform:uppercase}.opensource-title{font-family:Playfair Display,serif;font-size:1.3rem;margin-bottom:.5rem}.opensource-desc{color:#8a7560;color:var(--muted);font-size:.875rem;line-height:1.7}.skills-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:1fr 1fr}.skill-group-title{color:#c8853a;color:var(--amber);font-family:Shippori Mincho,serif;font-size:.65rem;letter-spacing:.25em;margin-bottom:1rem;text-transform:uppercase}.skill-items{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{border:1px solid #8a756033;color:#8a7560;color:var(--muted);font-size:.65rem;padding:.3rem .7rem;transition:all .3s}.skill-tag:hover{border-color:#c8853a;border-color:var(--amber);color:#f0e6d0;color:var(--cream)}.footer{align-items:center;border-top:1px solid #c8853a1f;display:flex;justify-content:space-between;padding:3rem}.footer-left{color:#8a7560;color:var(--muted);font-family:Shippori Mincho,serif;font-size:.7rem;letter-spacing:.2em}.footer-links{display:flex;gap:2rem}.footer-links a{color:#8a7560;color:var(--muted);font-size:.65rem;letter-spacing:.2em;text-decoration:none;text-transform:uppercase;transition:color .3s}.footer-links a:hover{color:#d4a853;color:var(--accent)}@media (max-width:768px){.nav{padding:1rem 1.5rem}.nav-links{background:#1a1410fa;border-bottom:1px solid #c8853a26;display:none;flex-direction:column;gap:1.5rem;left:0;padding:1.5rem;position:absolute;right:0;top:100%}.nav-links.open{display:flex}.nav-mobile-toggle{display:block}.hero{grid-template-columns:1fr;min-height:auto;padding:3rem 1.5rem}.hero-graph-container{height:300px;min-height:300px}.hero-title{font-size:clamp(2.2rem,8vw,3.5rem)}.section{padding:3rem 1.5rem}.section-title{font-size:1.8rem}.projects-grid,.skills-grid{grid-template-columns:1fr}.experience-header,.footer{flex-direction:column}.footer{gap:1.5rem;padding:2rem 1.5rem;text-align:center}.footer-links{flex-wrap:wrap;justify-content:center}}
/*# sourceMappingURL=main.103caa41.css.map*/