:root{--bg:#f4f1ec;--bg-alt:#edeae4;--text:#1a1814;--muted:#9a9188;--accent:#b8966a;--accent-dark:#8a6e47;--border:#ddd8d0;--font-display:"Cormorant Garamond",serif;--font-body:"DM Sans",sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto;font-size:16px}section{scroll-margin-top:110px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);cursor:auto;overflow-x:hidden}a,button,input,textarea,[role=button]{cursor:auto}.cursor-dot{background:var(--accent);pointer-events:none;z-index:120;border-radius:50%;width:8px;height:8px;transition:transform .1s,width .3s,height .3s;position:fixed;transform:translate(-50%,-50%)}.cursor-ring{border:1.5px solid var(--accent);pointer-events:none;z-index:119;border-radius:50%;width:36px;height:36px;transition:width .3s,height .3s,background .3s;position:fixed;transform:translate(-50%,-50%)}.preloader{background:var(--text);z-index:10000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.preloader-bar{background:var(--accent);width:0;height:2px;position:absolute;bottom:0;left:0}.preloader-letters{font-family:var(--font-display);color:var(--bg);letter-spacing:.2em;gap:4px;font-size:clamp(3rem,8vw,6rem);font-weight:700;display:flex}.navbar{z-index:1000;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:28px 60px;transition:padding .4s,background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s,border-color .4s;display:flex;position:fixed;top:0;left:0;right:0}.navbar--scrolled{-webkit-backdrop-filter:blur(14px);border-color:var(--border);background:#f4f1ece0;padding:16px 60px}.nav-logo{font-family:var(--font-display);color:var(--text);font-size:1.2rem;font-style:italic;text-decoration:none}.nav-links{align-items:center;gap:40px;list-style:none;display:flex}.nav-links a{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.72rem;text-decoration:none;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:1px;transition:width .4s;position:absolute;bottom:-3px;left:0}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.nav-resume{border-radius:100px;border:1px solid var(--accent)!important;color:var(--accent)!important;padding:8px 20px!important;transition:background .3s,color .3s!important}.nav-resume:after{display:none!important}.nav-resume:hover{background:var(--accent)!important;color:var(--bg)!important}.hamburger{background:0 0;border:none;flex-direction:column;gap:6px;display:none}.hamburger span{background:var(--text);width:24px;height:1px;display:block}.mobile-menu{background:var(--text);z-index:2000;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.mobile-menu--open{opacity:1;pointer-events:all}.mobile-close{color:var(--bg);background:0 0;border:none;font-size:1.4rem;position:absolute;top:24px;right:28px}.mobile-nav{flex-direction:column;align-items:center;gap:28px;display:flex}.mobile-nav a{font-family:var(--font-display);color:var(--bg);font-size:clamp(2.5rem,8vw,4rem);font-weight:700;text-decoration:none;transition:color .3s}.mobile-nav a:hover{color:var(--accent)}@media (max-width:768px){.navbar{padding:20px 24px}.navbar--scrolled{padding:14px 24px}.nav-links{display:none}.hamburger{display:flex}}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding:160px 60px 80px;display:flex;position:relative}.hero-inner{grid-template-columns:1fr 400px;align-items:center;gap:80px;width:100%;max-width:1200px;margin:0 auto;display:grid}.hero-label{text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin-bottom:24px;font-size:.72rem;display:block}.name-line{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(5rem,12vw,10rem);font-weight:700;line-height:.92;display:block;overflow:hidden}.hero-role-badge{text-transform:uppercase;letter-spacing:.18em;color:var(--muted);padding:16px 0;font-size:.78rem;display:block}.hero-tagline{font-family:var(--font-display);color:var(--muted);margin-top:32px;font-size:clamp(1.1rem,2.2vw,1.5rem);font-style:italic;line-height:1.6}.hero-meta{color:var(--muted);letter-spacing:.05em;border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:24px;padding-top:20px;font-size:.78rem;display:flex}.hero-ctas{flex-wrap:wrap;align-items:center;gap:20px;margin-top:48px;display:flex}.cta-primary{color:var(--text);border-bottom:1px solid var(--text);align-items:center;gap:10px;padding-bottom:4px;font-size:.9rem;text-decoration:none;transition:color .3s,border-color .3s;display:inline-flex}.cta-arrow{transition:transform .3s;display:inline-block}.cta-primary:hover{color:var(--accent);border-color:var(--accent)}.cta-primary:hover .cta-arrow{transform:translate(6px)}.cta-ghost{color:var(--muted);border:1px solid var(--border);border-radius:100px;align-items:center;padding:12px 28px;font-size:.9rem;text-decoration:none;transition:all .3s;display:inline-flex}.cta-ghost:hover{border-color:var(--accent);color:var(--accent);background:#b8966a0d}.hero-photo-wrap{position:relative}.hero-photo-inner{transform-style:preserve-3d;border-radius:4px;position:relative;overflow:hidden}.hero-photo{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;filter:grayscale(15%);width:100%;height:560px;transition:filter .5s,transform .6s;display:block}.hero-photo-inner:hover .hero-photo{filter:grayscale(0%);transform:scale(1.03)}.hero-photo-overlay{background:linear-gradient(#0000 50%,#1a181459 100%);position:absolute;inset:0}.hero-badge{background:var(--text);border-radius:4px;flex-direction:column;gap:4px;padding:16px 24px;display:flex;position:absolute;bottom:-20px;left:-20px}.badge-sub{text-transform:uppercase;letter-spacing:.1em;color:#f4f1ec80;font-size:.68rem}.badge-main{color:var(--accent);letter-spacing:.05em;font-size:.85rem;font-weight:500}.scroll-indicator{text-transform:uppercase;letter-spacing:.15em;color:var(--muted);align-items:center;gap:16px;font-size:.68rem;display:flex;position:absolute;bottom:40px;left:60px}.scroll-line{background:var(--border);width:1px;height:48px;position:relative;overflow:hidden}.scroll-dot{background:var(--accent);width:1px;height:14px;animation:1.8s ease-in-out infinite scrollDrop;position:absolute;top:-14px}@keyframes scrollDrop{0%{opacity:1;top:-14px}80%{opacity:1;top:48px}to{opacity:0;top:48px}}@media (max-width:1024px){.hero-inner{grid-template-columns:1fr}.hero-photo-wrap{display:none}}@media (max-width:768px){.hero{padding:120px 24px 60px}.scroll-indicator{left:24px}}.section-inner{max-width:1200px;margin:0 auto;padding:72px 56px}.section-label{text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:20px;font-size:.68rem;display:block}.section-title{font-family:var(--font-display);margin-bottom:34px;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:700;line-height:1.1}.section-title em{color:var(--muted);font-style:italic;font-weight:300}@media (max-width:768px){.section-inner{padding:56px 24px}}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-bio p{color:var(--muted);margin-bottom:24px;font-size:1rem;line-height:1.85}.about-ctas{flex-wrap:wrap;gap:20px;margin-top:40px;display:flex}.detail-row{border-bottom:1px solid var(--border);grid-template-columns:120px 1fr;align-items:start;gap:20px;padding:20px 0;display:grid}.detail-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding-top:4px;font-size:.65rem}.detail-value{font-family:var(--font-display);font-size:1.05rem;font-weight:600}.detail-accent{color:var(--accent)}.detail-sub{color:var(--muted);margin-top:4px;font-size:.78rem}@media (max-width:1024px){.about-grid{grid-template-columns:1fr;gap:48px}}.timeline{border-top:1px solid var(--border);flex-direction:column;margin-top:20px;display:flex}.timeline-item{border-bottom:1px solid var(--border);isolation:isolate;grid-template-columns:140px 1fr;gap:40px;padding:34px 0;transition:background .3s;display:grid;position:relative;overflow:hidden}.timeline-item:before{content:"";background:var(--accent);z-index:0;width:2px;height:0;transition:height .5s;position:absolute;top:0;left:0}.timeline-item:hover:before{height:100%}.timeline-item:hover{background:#b8966a08}.timeline-item>*{z-index:1;position:relative}.timeline-year{color:var(--muted);letter-spacing:.08em;align-self:start;padding-top:8px;font-size:.72rem}.timeline-role{font-family:var(--font-display);font-size:clamp(1.4rem,2.8vw,2rem);font-weight:600;line-height:1.2;transition:color .3s}.timeline-item:hover .timeline-role{color:var(--accent)}.timeline-company{color:var(--muted);margin-top:6px;font-size:.85rem}.timeline-period{color:var(--muted);margin-top:4px;font-size:.75rem;font-style:italic}.timeline-desc{color:var(--muted);max-width:600px;margin-top:16px;font-size:.92rem;line-height:1.75}.timeline-tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.timeline-tags span{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border);color:var(--muted);border-radius:100px;padding:4px 14px;font-size:.65rem;transition:all .3s}.timeline-tags span:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:768px){.timeline-item{grid-template-columns:1fr;gap:12px}}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.projects-sub{font-family:var(--font-display);color:var(--muted);text-align:left;max-width:360px;font-size:1rem;font-style:italic}.projects-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.project-item{border-bottom:1px solid var(--border);isolation:isolate;grid-template-columns:60px 1fr 300px;align-items:start;gap:40px;padding:34px 0;transition:background .3s;display:grid;position:relative;overflow:hidden}.project-item:before{content:"";background:var(--accent);z-index:0;width:2px;height:0;transition:height .4s;position:absolute;top:0;left:0}.project-item:hover:before{height:100%}.project-item:hover{background:#b8966a06}.project-item>*{z-index:1;position:relative}.project-number{color:var(--muted);letter-spacing:.1em;align-self:start;padding-top:8px;font-size:.72rem}.project-name{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1.1;transition:color .3s}.project-item:hover .project-name{color:var(--accent)}.project-desc{color:var(--muted);margin-top:14px;font-size:.9rem;line-height:1.75}.project-meta{flex-wrap:wrap;align-items:center;gap:16px;margin-top:20px;display:flex}.project-cat{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:.68rem}.project-stack{flex-wrap:wrap;gap:8px;display:flex}.project-stack span{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border);color:var(--muted);border-radius:100px;padding:4px 12px;font-size:.65rem}.project-img-col{height:180px}.project-img-wrap{clip-path:inset(0 100% 0 0);border-radius:4px;height:100%;transition:clip-path .65s cubic-bezier(.77,0,.175,1);position:relative;overflow:hidden}.project-item:hover .project-img-wrap{clip-path:inset(0 0% 0 0)}.project-img-wrap img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .65s}.project-item:hover .project-img-wrap img{transform:scale(1.06)}.project-img-overlay{background:linear-gradient(#0000,#1a1814a6);align-items:flex-end;padding:14px;display:flex;position:absolute;inset:0}.project-img-overlay a{text-transform:uppercase;letter-spacing:.1em;color:#f4f1ec;border-bottom:1px solid #f4f1ec66;padding-bottom:2px;font-size:.72rem;text-decoration:none;transition:color .3s}.project-img-overlay a:hover{color:var(--accent)}@media (max-width:1024px){.project-item{grid-template-columns:50px 1fr}.project-img-col{display:none}}@media (max-width:768px){.project-item{padding:36px 0}}.skills-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,1fr);margin-top:20px;display:grid}.skill-group{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:40px;transition:background .3s}.skill-group:hover{background:#b8966a0a}.skill-group-label{text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin-bottom:24px;font-size:.68rem}.skill-group ul{list-style:none}.skill-group li{font-family:var(--font-display);border-bottom:1px solid var(--border);color:var(--text);padding:9px 0;font-size:1.1rem;font-weight:400;transition:color .2s,transform .3s}.skill-group li:last-child{border-bottom:none}.skill-group li:hover{color:var(--accent);transform:translate(8px)}@media (max-width:1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.skills-grid{grid-template-columns:1fr}}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;margin-top:20px;display:grid}.contact-intro{font-family:var(--font-display);color:var(--muted);margin-bottom:40px;font-size:1.15rem;font-style:italic;line-height:1.65}.contact-row{border-bottom:1px solid var(--border);grid-template-columns:100px 1fr;gap:16px;padding:18px 0;display:grid}.contact-label{text-transform:uppercase;letter-spacing:.15em;color:var(--muted);padding-top:3px;font-size:.65rem}.contact-val{font-family:var(--font-display);color:var(--text);font-size:1rem;text-decoration:none}.contact-link{transition:color .3s}.contact-link:hover{color:var(--accent)}.contact-socials{gap:24px;margin-top:32px;display:flex}.contact-socials a{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:3px;font-size:.72rem;text-decoration:none;transition:color .3s,border-color .3s}.contact-socials a:hover{color:var(--accent);border-color:var(--accent)}.contact-form{flex-direction:column;gap:28px;display:flex}.form-field{flex-direction:column;gap:8px;display:flex}.form-field label{text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-size:.65rem}.form-field input,.form-field textarea{border:none;border-bottom:1px solid var(--border);font-family:var(--font-body);color:var(--text);resize:none;background:0 0;outline:none;padding:12px 0;font-size:1rem;transition:border-color .3s}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field input::-moz-placeholder{color:var(--border)}.form-field textarea::-moz-placeholder{color:var(--border)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--border)}.form-submit{background:var(--text);color:var(--bg);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;border:none;border-radius:2px;align-self:flex-start;align-items:center;gap:12px;padding:18px 36px;font-size:.82rem;transition:background .3s,gap .3s;display:inline-flex}.submit-arrow{transition:transform .3s;display:inline-block}.form-submit:hover:not(:disabled){background:var(--accent);gap:20px}.form-submit:hover:not(:disabled) .submit-arrow{transform:translate(4px)}.form-submit:disabled{opacity:.6}@media (max-width:1024px){.contact-grid{grid-template-columns:1fr;gap:60px}}.marquee-section{background:var(--text);border-top:1px solid #ffffff0d;padding:32px 0;overflow:hidden}.marquee-track{white-space:nowrap;gap:0;width:max-content;animation:20s linear infinite marqueeRoll;display:flex}.marquee-section:hover .marquee-track{animation-play-state:paused}.marquee-group{align-items:center;gap:40px;padding-right:40px;display:inline-flex}.marquee-text{font-family:var(--font-display);color:var(--bg);letter-spacing:-.01em;font-size:clamp(2rem,4vw,3.5rem);font-weight:700}.marquee-star{color:var(--accent);font-size:1.6rem;line-height:1}@keyframes marqueeRoll{0%{transform:translate(0)}to{transform:translate(-50%)}}.footer{background:var(--text);border-top:1px solid #ffffff14;padding:40px 60px}.footer-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.footer-name{font-family:var(--font-display);color:var(--bg);font-size:1.2rem;font-style:italic}.footer-copy{color:#f4f1ec61;letter-spacing:.06em;margin-top:4px;font-size:.68rem}.footer-nav{gap:32px;display:flex}.footer-nav a{text-transform:uppercase;letter-spacing:.12em;color:#f4f1ec66;font-size:.68rem;text-decoration:none;transition:color .3s}.footer-nav a:hover{color:var(--accent)}@media (max-width:768px){.footer{padding:32px 24px}.footer-inner{flex-direction:column;align-items:flex-start;gap:24px}}
