:root{--bg:#0a0a0b;--surface:#0f0f11;--surface-2:#141416;--surface-3:#1a1a1d;--line:#ffffff0d;--line-hover:#ffffff1a;--text:#dadadf;--text-secondary:#9898a0;--text-tertiary:#6a6a74;--text-heading:#ededf0;--accent:#a1a1aa;--max:980px;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-padding-top:80px}body{color:var(--text);background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.7;overflow-x:hidden}::selection{color:var(--text-heading);background:#ffffff14}a{color:var(--text);text-decoration:none;transition:color .2s,opacity .2s}a:hover{color:var(--text-heading)}.ambient{pointer-events:none;z-index:0;position:fixed;inset:0}.ambient:before{content:"";background:radial-gradient(#7877c606 0%,#0000 65%);width:90%;height:90%;animation:30s ease-in-out infinite alternate float;position:absolute;top:-50%;left:-30%}.ambient:after{content:"";background:radial-gradient(#c8c8d204 0%,#0000 60%);width:75%;height:75%;animation:35s ease-in-out infinite alternate-reverse float;position:absolute;bottom:-40%;right:-25%}@keyframes float{0%{transform:translate(0)rotate(0)}to{transform:translate(20px,-15px)rotate(1deg)}}.grain{pointer-events:none;z-index:1;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.container{width:min(var(--max), calc(100% - 3.5rem));z-index:2;margin:0 auto;position:relative}.site-header{z-index:100;-webkit-backdrop-filter:saturate(150%)blur(20px);border-bottom:1px solid var(--line);background:#0a0a0bcc;transition:border-color .4s;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:56px;display:flex}.brand{letter-spacing:-.02em;color:var(--text-heading);font-size:.95rem;font-weight:600;transition:transform .3s cubic-bezier(.16,1,.3,1)}.brand:hover{transform:scale(1.03)}.nav{letter-spacing:.01em;gap:1.4rem;font-size:.78rem;font-weight:450;display:flex}.nav a{color:var(--text-tertiary);transition:color .3s,transform .3s cubic-bezier(.16,1,.3,1);position:relative}.nav a:after{content:"";background:var(--text-secondary);width:0;height:1px;transition:width .4s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-2px;left:0}.nav a:hover{color:var(--text)}.nav a:hover:after{width:100%}h1,h2,h3,h4{letter-spacing:-.03em;color:var(--text-heading);font-family:Newsreader,Georgia,serif;font-weight:450}h2{margin-bottom:.25rem;font-size:clamp(1.6rem,3.5vw,2.4rem)}h3{letter-spacing:-.02em;font-size:1.15rem}.hero{padding:9rem 0 5rem;position:relative}.hero-status{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.16em;align-items:center;gap:.45rem;margin-bottom:2rem;font-size:.7rem;font-weight:500;display:inline-flex}.hero-status:before{content:"";background:#4ade80;border-radius:50%;width:5px;height:5px;animation:2.5s ease-in-out infinite pulse;box-shadow:0 0 6px #4ade8059}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}h1{letter-spacing:-.045em;color:var(--text-heading);will-change:transform;margin-bottom:.5rem;font-size:clamp(2.8rem,7.5vw,5.5rem);line-height:.92}.hero-body{max-width:540px;color:var(--text-secondary);margin-bottom:2.5rem;font-size:.94rem;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1.8rem;display:flex}.btn{border:1px solid var(--line-hover);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.35rem;padding:.55rem 1.1rem;font-size:.82rem;font-weight:500;transition:all .35s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;background:linear-gradient(135deg,#ffffff08,#0000);transition:opacity .35s;position:absolute;inset:0}.btn:hover{color:var(--text-heading);border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff0a}.btn:hover:before{opacity:1}.btn:active{transition-duration:.1s;transform:translateY(0)}.hero-links{gap:1.3rem;list-style:none;display:flex}.hero-links a{color:var(--text-tertiary);font-size:.8rem;font-weight:450;transition:color .3s,letter-spacing .4s cubic-bezier(.16,1,.3,1)}.hero-links a:hover{color:var(--text);letter-spacing:.02em}.section{padding:4.5rem 0;position:relative}.section-line{background:var(--line);width:100%;height:1px;position:relative;overflow:hidden}.section-line:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:60%;height:100%;animation:8s ease-in-out infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{0%{left:-60%}to{left:160%}}.section-header{margin-bottom:2.5rem}.section-header p{color:var(--text-tertiary);margin-top:.3rem;font-size:.9rem}.exp-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:2rem;display:flex}.exp-tab{color:var(--text-tertiary);border:1px solid var(--line);cursor:pointer;user-select:none;background:0 0;border-radius:6px;padding:.45rem .9rem;font-size:.78rem;font-weight:500;transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.exp-tab:before{content:"";opacity:0;background:radial-gradient(circle,#ffffff0a,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.exp-tab:hover{color:var(--text-secondary);border-color:var(--line-hover);transform:translateY(-1px)}.exp-tab:hover:before{opacity:1}.exp-tab.active{color:var(--text-heading);background:var(--surface-2);border-color:#ffffff26;box-shadow:0 2px 8px #0000004d}.exp-panel{animation:.5s cubic-bezier(.16,1,.3,1) fadeUp;display:none}.exp-panel.active{display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.exp-list{gap:0;display:grid}.exp-item{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:1rem;padding:1.2rem 0;transition:all .3s cubic-bezier(.16,1,.3,1);display:grid}.exp-item:last-child{border-bottom:none}.exp-item:hover{border-color:#ffffff14;padding-left:.6rem}.exp-item h4{letter-spacing:-.01em;color:var(--text);margin-bottom:.1rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:580;transition:color .2s}.exp-item:hover h4{color:var(--text-heading)}.exp-item .role{color:var(--text-secondary);font-size:.84rem}.exp-item .desc{color:var(--text-tertiary);max-width:520px;margin-top:.35rem;font-size:.82rem;line-height:1.65}.exp-item .date{color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:.15rem;font-size:.76rem}.project-grid{background:var(--line);border-radius:var(--radius);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.project-card{background:var(--surface);padding:1.6rem;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative}.project-card:before{content:"";background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%), #ffffff06, transparent 60%);opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.project-card:hover{background:var(--surface-2)}.project-card:hover:before{opacity:1}.project-card h3{color:var(--text);margin-bottom:.7rem;font-size:1.02rem;transition:color .3s}.project-card:hover h3{color:var(--text-heading)}.project-card ul{padding:0;list-style:none}.project-card li{color:var(--text-secondary);padding:.3rem 0 .3rem .8rem;font-size:.82rem;line-height:1.6;transition:padding-left .3s cubic-bezier(.16,1,.3,1),color .2s;position:relative}.project-card li:before{content:"";background:var(--text-tertiary);border-radius:50%;width:3px;height:3px;transition:background .3s,transform .3s;position:absolute;top:.65rem;left:0}.project-card:hover li{padding-left:1rem}.project-card:hover li:before{background:var(--text-secondary);transform:scale(1.3)}.doc-list{border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.doc-item{border-bottom:1px solid var(--line);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:.95rem 1.2rem;font-size:.86rem;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.doc-item:last-child{border-bottom:none}.doc-item:hover{background:var(--surface);color:var(--text);padding-left:1.5rem}.doc-item .label{flex-direction:column;gap:.1rem;display:flex}.doc-item .sublabel{color:var(--text-tertiary);font-size:.72rem}.doc-item .arrow{opacity:0;color:var(--text-tertiary);font-size:.75rem;transition:all .3s cubic-bezier(.16,1,.3,1);transform:translateY(-3px)}.doc-item:hover .arrow{opacity:1;transform:translateY(0)}.contact-content{max-width:460px}.contact-content p{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem}.contact-content a{color:var(--text);border-bottom:1px solid var(--line);padding-bottom:1px;transition:border-color .3s,padding-bottom .3s}.contact-content a:hover{border-color:var(--text-secondary);padding-bottom:3px}.site-footer{text-align:center;color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase;padding:3rem 0;font-size:.76rem}.reveal{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.exp-list .exp-item{opacity:0;animation:.5s cubic-bezier(.16,1,.3,1) forwards staggerIn;transform:translateY(8px)}.exp-panel.active .exp-item:first-child{animation-delay:50ms}.exp-panel.active .exp-item:nth-child(2){animation-delay:.1s}.exp-panel.active .exp-item:nth-child(3){animation-delay:.15s}.exp-panel.active .exp-item:nth-child(4){animation-delay:.2s}.exp-panel.active .exp-item:nth-child(5){animation-delay:.25s}@keyframes staggerIn{to{opacity:1;transform:translateY(0)}}.cursor-dot{pointer-events:none;z-index:9999;will-change:left, top;mix-blend-mode:difference;background:#e8e8ece6;border-radius:50%;width:4px;height:4px;position:fixed;top:-2px;left:-2px}.cursor-ring{pointer-events:none;z-index:9998;will-change:left, top;border:1px solid #ffffff2e;border-radius:50%;width:36px;height:36px;transition:width .3s,height .3s,border-color .3s,margin .3s;position:fixed;top:-18px;left:-18px}.cursor-ring.hover{border-color:#ffffff59;width:52px;height:52px;margin:-8px 0 0 -8px}.bg-canvas{pointer-events:none;z-index:0;opacity:.4;width:100%;height:100%;position:fixed;inset:0}.h1-text-wrap{width:600px;height:120px;display:inline-block;position:relative}.h1-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.h1-canvas{clip-path:url(#textClip);pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.h1-fallback{z-index:2;color:#ededf0b3;letter-spacing:-.045em;font-family:Newsreader,Georgia,serif;font-size:clamp(2.8rem,7.5vw,5.5rem);font-weight:450;line-height:1;display:block;position:relative}.scroll-hint{justify-content:center;margin-top:3rem;display:flex}.scroll-line{background:linear-gradient(to bottom, var(--text-tertiary), transparent);width:1px;height:40px;animation:2s ease-in-out infinite scrollPulse;display:block;position:relative}.scroll-line:before{content:"";background:var(--text-secondary);border-radius:2px;width:3px;height:8px;animation:2s ease-in-out infinite scrollDot;position:absolute;top:0;left:-1px}@keyframes scrollPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes scrollDot{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(32px)}}.exp-item a,.project-card a{color:var(--text);border-bottom:1px solid var(--line-hover);transition:border-color .2s,color .2s}.exp-item a:hover,.project-card a:hover{color:var(--text-heading);border-color:var(--text-secondary)}@media (width<=860px){.cursor-dot,.cursor-ring,.nav{display:none}.container{width:min(var(--max), calc(100% - 2rem))}.hero{padding:5.5rem 0 3.5rem}.project-grid{grid-template-columns:1fr}.exp-item{grid-template-columns:1fr;gap:.2rem}.exp-item .date{order:-1}.exp-item:hover{padding-left:0}}@media (width<=480px){h1{font-size:2.4rem}.hero-actions{flex-direction:column}.btn{justify-content:center}.exp-tabs{gap:.25rem}}@media (width<=600px){.h1-text-wrap{width:320px;height:70px}}
