*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#fff8f0b8;cursor:none;background:#0a0807;font-family:DM Sans,sans-serif;overflow-x:hidden}#canvas-bg,#canvas-grid{pointer-events:none;position:fixed;inset:0}#canvas-bg{z-index:-2}#canvas-grid{z-index:-1}#vignette{z-index:2;pointer-events:none;background:radial-gradient(ellipse 65% 65% at var(--mx,50%) var(--my,50%), transparent 20%, #0a080773 55%, #0a0807d9 80%, #0a0807f5 100%);position:fixed;inset:0}#cursor{pointer-events:none;z-index:1000;background:#ffebd2e6;border-radius:50%;width:8px;height:8px;transition:width .2s,height .2s,opacity .2s;position:fixed;transform:translate(-50%,-50%)}#cursor-ring{pointer-events:none;z-index:1000;border:1px solid #ffdcb438;border-radius:50%;width:36px;height:36px;transition:width .25s,height .25s,border-color .3s;position:fixed;transform:translate(-50%,-50%)}section{z-index:10;max-width:860px;margin:0 auto;padding:0 2rem;position:relative}#hero{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.label{letter-spacing:.25em;text-transform:uppercase;color:#ffebc847;margin-bottom:1.5rem;font-size:11px;font-weight:400;animation:1s .2s both fadeUp}#hero h1{color:#fff8eef2;letter-spacing:-.04em;font-family:Syne,sans-serif;font-size:clamp(3.8rem,11vw,9rem);font-weight:700;line-height:.9;animation:1s .4s both fadeUp}#hero h1 span{background:linear-gradient(135deg,#ffe6bef2 0%,#c8aa82d9 60%,#a08cb4bf 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.tagline{color:#ffebc84d;letter-spacing:.08em;margin-top:2rem;font-size:clamp(.85rem,1.5vw,1rem);font-weight:300;animation:1s .6s both fadeUp}.bio{color:#ffebc861;max-width:520px;margin-top:1.2rem;font-size:.95rem;font-weight:300;line-height:1.75;animation:1s .7s both fadeUp}.hero-links{flex-wrap:wrap;gap:2rem;margin-top:3rem;animation:1s .8s both fadeUp;display:flex}.hero-links a{letter-spacing:.15em;text-transform:uppercase;color:#ffe6be59;font-size:12px;text-decoration:none;transition:color .3s;position:relative}.hero-links a:after{content:"";background:#ffdcaa80;width:0;height:1px;transition:width .3s;position:absolute;bottom:-3px;left:0}.hero-links a:hover{color:#ffebd2d9}.hero-links a:hover:after{width:100%}.section{padding-top:8rem;padding-bottom:4rem}.section-label{letter-spacing:.3em;text-transform:uppercase;color:#c8a5788c;margin-bottom:.75rem;font-size:10px}.section-title{color:#fff8eeeb;letter-spacing:-.03em;margin-bottom:3rem;font-family:Syne,sans-serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700}.cards{flex-direction:column;gap:1.5rem;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem;display:grid}.card{background:#fff0dc06;border:1px solid #ffe6be12;border-radius:16px;padding:1.75rem 2rem;transition:background .3s,border-color .3s,transform .3s}.card:hover{background:#ffebc80b;border-color:#c8a57833;transform:translateY(-2px)}.card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.4rem;display:flex}.card h3{color:#fff8ebe0;margin-bottom:.2rem;font-family:Syne,sans-serif;font-size:1.05rem;font-weight:600}.card-company{color:#c8a578a6;letter-spacing:.04em;font-size:.8rem}.card-date{color:#ffebc838;white-space:nowrap;flex-shrink:0;font-size:.75rem}.card-location{color:#ffebc838;margin-bottom:.9rem;font-size:.78rem}.card-desc{color:#ffebc873;margin-bottom:1rem;font-size:.88rem;line-height:1.75}.card-link{color:#c8a578a6;letter-spacing:.05em;margin-top:.5rem;font-size:.8rem;text-decoration:none;transition:color .2s;display:inline-block}.card-link:hover{color:#dcb98cf2}.tags{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.tags span{letter-spacing:.08em;text-transform:uppercase;color:#d2af82b8;background:#c8a06412;border:1px solid #c8a06429;border-radius:100px;padding:.3rem .75rem;font-size:.7rem}.skills-grid{flex-direction:column;gap:2.5rem;display:flex}.skill-group-title{letter-spacing:.15em;text-transform:uppercase;color:#ffe6be47;margin-bottom:.85rem;font-size:.78rem}#contact{padding-bottom:10rem}.contact-sub{color:#ffebc852;margin-bottom:2.5rem;font-size:.95rem;font-weight:300}.contact-links{flex-direction:column;gap:1rem;display:flex}.contact-links a{color:#ffebc86b;letter-spacing:-.02em;font-family:Syne,sans-serif;font-size:clamp(1.2rem,3vw,2rem);font-weight:500;text-decoration:none;transition:color .3s;display:inline-block;position:relative}.contact-links a:after{content:"";background:#c8a57880;width:0;height:1px;transition:width .35s;position:absolute;bottom:0;left:0}.contact-links a:hover{color:#fff5e1e6}.contact-links a:hover:after{width:100%}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(28px)}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.projects-grid{grid-template-columns:1fr}.card-header{flex-direction:column}.hero-links{gap:1.2rem}}#bonfire-scene{z-index:15;pointer-events:none;perspective:600px;perspective-origin:50%;position:fixed;bottom:200px;right:280px}#bonfire-wrapper{width:300px;height:300px;transform-style:preserve-3d;transform-origin:50%;will-change:transform, filter}#bonfire-img{object-fit:contain;width:100%;height:100%;display:block}#cv-btn{z-index:100;color:#ffe6be73;letter-spacing:.14em;text-transform:uppercase;cursor:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffebc80a;border:1px solid #ffe6be1f;border-radius:100px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-family:DM Sans,sans-serif;font-size:11px;text-decoration:none;transition:border-color .3s,background .3s,color .3s,box-shadow .3s;display:flex;position:fixed;top:1.5rem;right:1.8rem}#cv-btn svg{flex-shrink:0;width:13px;height:13px}#cv-btn:hover{color:#ffebd2d9;background:#ffebc814;border-color:#c8a57866;box-shadow:0 0 14px #c8a5781f}
