@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/ba8e772932784a28-s.7bb0ada4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/7546fe8f902b88b8-s.p.5f7c9333.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.4b5f6188.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.d8302362.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.e316a4a9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.f2813c2a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_15215d1a-module__9WsyoW__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_15215d1a-module__9WsyoW__variable{--font-dm-mono:"DM Mono","DM Mono Fallback"}
@font-face{font-family:Libre Baskerville;font-style:italic;font-weight:400;font-display:swap;src:url(../media/5c773c73f3b750dc-s.f39526b9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Baskerville;font-style:italic;font-weight:400;font-display:swap;src:url(../media/f5031e7b18bdfbb3-s.p.3dcbbce0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Baskerville;font-style:italic;font-weight:700;font-display:swap;src:url(../media/5c773c73f3b750dc-s.f39526b9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Baskerville;font-style:italic;font-weight:700;font-display:swap;src:url(../media/f5031e7b18bdfbb3-s.p.3dcbbce0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8c352cd2dd0b7ed3-s.8d4acfd6.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:400;font-display:swap;src:url(../media/38df7484fe560b25-s.p.60f15535.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8c352cd2dd0b7ed3-s.8d4acfd6.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:700;font-display:swap;src:url(../media/38df7484fe560b25-s.p.60f15535.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Baskerville Fallback;src:local(Times New Roman);ascent-override:76.22%;descent-override:21.22%;line-gap-override:0.0%;size-adjust:127.26%}.libre_baskerville_f5c4618b-module__vyIBgG__className{font-family:Libre Baskerville,Libre Baskerville Fallback}.libre_baskerville_f5c4618b-module__vyIBgG__variable{--font-libre-baskerville:"Libre Baskerville","Libre Baskerville Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.614a1c00.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.d8bad3ab.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.262b87c4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.380d09ea.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_535d8616-module__GDyPrG__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_535d8616-module__GDyPrG__variable{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}
:root{--bg:#1a1a17;--bg2:#222220;--bg3:#2a2a27;--surface:#2e2e2b;--border:#3a3a36;--text:#e8e6df;--muted:#7a7870;--accent:#c8714a;--accent2:#d4956e;--white:#f0ede6}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:14px;line-height:1.7;overflow-x:hidden}.sidebar{background:var(--bg2);border-right:1px solid var(--border);z-index:100;flex-direction:column;align-items:center;gap:6px;width:52px;height:100vh;padding:20px 0;display:flex;position:fixed;top:0;left:0}.sidebar-logo{width:28px;height:28px;margin-bottom:16px}.sidebar-logo svg{width:100%;height:100%}.nav-icon{width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:15px;text-decoration:none;transition:all .2s;display:flex}.nav-icon:hover,.nav-icon.active{background:var(--bg3);color:var(--text)}.nav-icon.active{color:var(--accent)}.sidebar-spacer{flex:1}.sidebar-avatar{background:var(--accent);width:30px;height:30px;color:var(--white);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font-libre-baskerville),"Libre Baskerville",serif;border-radius:50%;justify-content:center;align-items:center;display:flex}.main{min-height:100vh;margin-left:52px}.hero{border:none;flex-direction:column;justify-content:center;align-items:center;max-width:none;min-height:100vh;padding:80px 40px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(60% 50% at 50% 40%,#c8714a12 0%,#0000 70%);position:absolute;inset:0}.hero-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);opacity:0;margin-bottom:24px;font-size:11px;animation:.8s .2s forwards fadeUp}.hero-greeting{opacity:0;align-items:center;gap:16px;margin-bottom:12px;animation:.8s .4s forwards fadeUp;display:flex}.hero-asterisk{color:var(--accent);font-size:36px;line-height:1;animation:20s linear infinite spin;display:inline-block}.hero-name{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);letter-spacing:-.02em;font-size:clamp(42px,7vw,88px);font-weight:400;line-height:1}.hero-name em{color:var(--accent2);font-style:italic}.hero-tagline{color:var(--muted);text-align:center;opacity:0;max-width:420px;margin-bottom:48px;font-size:13px;line-height:1.8;animation:.8s .6s forwards fadeUp}.hero-input-wrap{opacity:0;width:100%;max-width:580px;animation:.8s .8s forwards fadeUp}.hero-input-card{background:var(--surface);border:1px solid var(--border);cursor:text;border-radius:16px;padding:18px 20px 14px;transition:border-color .2s,box-shadow .2s}.hero-input-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px #c8714a14}.hero-input-placeholder{color:var(--muted);margin-bottom:14px;font-size:13px}.hero-input-footer{justify-content:space-between;align-items:center;display:flex}.hero-input-btn{background:var(--accent);color:var(--white);font-size:11px;font-family:var(--font-dm-mono),"DM Mono",monospace;cursor:pointer;letter-spacing:.05em;border:none;border-radius:8px;padding:6px 14px;transition:background .2s}.hero-input-btn:hover{background:var(--accent2)}.hero-tools{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.tool-pill{background:var(--bg3);border:1px solid var(--border);letter-spacing:.05em;border-radius:20px;padding:3px 10px;font-size:10px}.scroll-hint{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;opacity:0;flex-direction:column;align-items:center;gap:8px;font-size:11px;animation:.8s 1.2s forwards fadeUp;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.scroll-line{background:linear-gradient(to bottom,var(--accent),transparent);width:1px;height:32px;animation:2s ease-in-out infinite scrollPulse}section{border-top:1px solid var(--border);max-width:1100px;margin:0 auto;padding:100px 80px}.section-label{letter-spacing:.3em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin-bottom:48px;font-size:10px;display:flex}.section-label:after{content:"";background:var(--border);flex:1;max-width:80px;height:1px}.hero-orbit-root{pointer-events:none;z-index:0;width:0;height:0;position:absolute;top:50%;left:50%}.hero-orbit-ring{border:1px dashed #c8714a21;border-radius:50%;width:740px;height:740px;position:absolute;transform:translate(-50%,-50%)}.hero-orbit-track{width:0;height:0;animation:52s linear infinite hero-orbit-spin;position:absolute;top:0;left:0}.hero-orbit-pos{width:0;height:0;position:absolute;top:0;left:370px}.hero-orbit-counter{width:0;height:0;animation:52s linear infinite hero-orbit-counter;position:absolute;top:0;left:0}.hero-orbit-card{-webkit-backdrop-filter:blur(8px);pointer-events:auto;background:#2e2e2bd9;border:1px solid #3a3a36e6;border-radius:12px;justify-content:center;align-items:center;padding:9px 15px;transition:border-color .3s,box-shadow .3s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 24px #00000040}.hero-orbit-card:hover{border-color:#c8714a59;box-shadow:0 4px 28px #c8714a1f}.hero-orbit-logo{filter:brightness(0)invert(.52);object-fit:contain;width:auto;max-height:22px;transition:filter .3s;display:block}.hero-orbit-card:hover .hero-orbit-logo{filter:brightness(0)invert(.75)}@keyframes hero-orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hero-orbit-counter{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@media (max-width:900px){.hero-orbit-root{display:none}}.client-logos-wrapper{border-top:1px solid var(--border);max-width:1100px;margin:0 auto;padding:48px 80px}.client-logos-label{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:32px;font-size:10px}.client-logos-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 0;display:flex}.client-logo-item{cursor:default;border-radius:10px;justify-content:center;align-items:center;padding:12px 24px;transition:all .25s;display:flex;position:relative}.client-logo-item:after{content:"";background:var(--border);width:1px;height:60%;position:absolute;top:20%;right:0}.client-logo-item:last-child:after{display:none}.client-logo-item:hover{background:var(--bg3)}.client-logo-img{filter:brightness(0)invert(.55);object-fit:contain;width:auto;max-height:36px;transition:filter .25s}.client-logo-item:hover .client-logo-img{filter:brightness(0)invert(.75)}.logo-text-mark{opacity:.45;flex-direction:column;align-items:center;gap:1px;transition:opacity .25s;display:flex}.client-logo-item:hover .logo-text-mark{opacity:.7}.logo-text-mark-main{font-family:var(--font-dm-mono),"DM Mono",monospace;letter-spacing:.04em;color:var(--text);text-transform:lowercase;font-size:15px;font-weight:500}.logo-text-mark-sub{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:8px}@media (max-width:768px){.client-logos-wrapper{padding:40px 24px}.client-logos-grid{gap:4px 0}.client-logo-item{padding:10px 16px}}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-heading{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);margin-bottom:24px;font-size:42px;font-weight:400;line-height:1.15}.about-heading em{color:var(--accent2);font-style:italic}.about-body{color:var(--muted);margin-bottom:16px;font-size:13px;line-height:1.9}.about-stats{grid-template-columns:1fr 1fr;gap:24px;margin-top:40px;display:grid}.stat-num{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);margin-bottom:4px;font-size:36px;line-height:1}.stat-num span{color:var(--accent)}.stat-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.skills-list{flex-direction:column;gap:12px;display:flex}.skill-row{align-items:center;gap:16px;display:flex}.skill-name{width:140px;color:var(--muted);flex-shrink:0;font-size:12px}.skill-bar-bg{background:var(--border);border-radius:2px;flex:1;height:2px;overflow:hidden}.skill-bar-fill{background:linear-gradient(to right,var(--accent),var(--accent2));border-radius:2px;width:0;height:100%;transition:width 1.5s cubic-bezier(.16,1,.3,1)}.skill-pct{color:var(--muted);text-align:right;width:32px;font-size:11px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:16px;padding:28px;transition:all .3s;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(to right,var(--accent),transparent);transform-origin:0;height:2px;transition:transform .4s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{border-color:#c8714a66;transform:translateY(-3px);box-shadow:0 20px 40px #0000004d}.project-card:hover:before{transform:scaleX(1)}.project-num{color:var(--accent);letter-spacing:.2em;align-items:center;gap:10px;margin-bottom:16px;font-size:10px;font-weight:500;display:flex}.project-num-logo{object-fit:contain;opacity:.65;filter:brightness(0)invert(.75);flex-shrink:0;width:auto;max-width:60px;height:20px}.project-title{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);margin-bottom:10px;font-size:22px;font-weight:400}.project-desc{color:var(--muted);margin-bottom:20px;font-size:12px;line-height:1.8}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--bg3);border:1px solid var(--border);color:var(--muted);letter-spacing:.05em;border-radius:20px;padding:3px 10px;font-size:10px}.project-card.featured{grid-column:span 2;grid-template-columns:1fr 1fr;align-items:center;gap:40px;display:grid}.project-featured-img{background:var(--bg3);height:200px;color:var(--border);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border);border-radius:12px;justify-content:center;align-items:center;font-size:11px;display:flex;position:relative;overflow:hidden}.slideshow-dots{z-index:2;gap:6px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.slideshow-dot{cursor:pointer;background:#f0ede659;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s}.slideshow-dot.active{background:var(--accent);transform:scale(1.25)}.slideshow-dot:hover{background:#f0ede6b3}.project-featured-img:after{content:"";pointer-events:none;background:linear-gradient(135deg,#c8714a0d,#0000);position:absolute;inset:0}.timeline{padding-left:32px;position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:8px;bottom:0;left:0}.timeline-item{margin-bottom:48px;position:relative}.timeline-dot{background:var(--accent);border:2px solid var(--bg);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:-36px}.timeline-date{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;font-size:10px}.timeline-role{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);margin-bottom:4px;font-size:20px;font-weight:400}.timeline-company{color:var(--muted);margin-bottom:12px;font-size:12px}.timeline-desc{color:var(--muted);max-width:560px;font-size:12px;line-height:1.8}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.contact-heading{font-family:var(--font-instrument-serif),"Instrument Serif",serif;color:var(--white);margin-bottom:16px;font-size:42px;font-weight:400;line-height:1.15}.contact-heading em{color:var(--accent2);font-style:italic}.contact-sub{color:var(--muted);font-size:12px;line-height:1.9}.contact-links{flex-direction:column;gap:12px;margin-top:32px;display:flex}.contact-link{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:12px 16px;font-size:12px;text-decoration:none;transition:color .2s;display:flex}.contact-link:hover{color:var(--text);border-color:var(--accent)}.contact-link-icon{background:var(--bg3);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.contact-link-text{color:var(--text);font-size:12px}.contact-link-sub{color:var(--muted);margin-top:2px;font-size:10px}.chat-toggle{background:var(--accent);cursor:pointer;z-index:200;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;transition:all .3s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 8px 24px #c8714a66}.chat-toggle:hover{transform:scale(1.08);box-shadow:0 12px 32px #c8714a80}.chat-toggle.open{background:var(--bg3);box-shadow:none}.chat-panel{background:var(--bg2);border:1px solid var(--border);z-index:199;opacity:0;pointer-events:none;transform-origin:100% 100%;border-radius:20px;flex-direction:column;width:400px;height:560px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:92px;right:28px;overflow:hidden;transform:scale(.95)translateY(12px);box-shadow:0 32px 80px #00000080}.chat-panel.open{opacity:1;pointer-events:all;transform:scale(1)translateY(0)}.chat-header{border-bottom:1px solid var(--border);background:var(--bg3);align-items:center;gap:12px;padding:18px 20px;display:flex}.chat-header-icon{background:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.chat-header-icon svg{width:16px;height:16px}.chat-header-title{color:var(--white);font-size:13px;font-weight:500}.chat-header-sub{color:var(--muted);letter-spacing:.05em;font-size:10px}.chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.msg{max-width:85%;animation:.3s msgIn}.msg.user{align-self:flex-end}.msg.assistant{align-self:flex-start}.msg-bubble{border-radius:14px;padding:10px 14px;font-size:12px;line-height:1.7}.msg.user .msg-bubble{background:var(--accent);color:var(--white);border-radius:14px 14px 4px}.msg.assistant .msg-bubble{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px 14px 14px 4px}.msg-typing .msg-bubble{align-items:center;gap:4px;padding:14px 18px;display:flex}.dot-typing{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite dotBounce}.dot-typing:nth-child(2){animation-delay:.2s}.dot-typing:nth-child(3){animation-delay:.4s}.chat-suggestions{flex-wrap:wrap;gap:6px;padding:0 20px 12px;display:flex}.suggestion-btn{background:var(--bg3);border:1px solid var(--border);font-size:10px;font-family:var(--font-dm-mono),"DM Mono",monospace;color:var(--muted);cursor:pointer;letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:5px 12px;transition:all .2s}.suggestion-btn:hover{color:var(--text);border-color:var(--accent)}.chat-input-area{border-top:1px solid var(--border);background:var(--bg3);align-items:flex-end;gap:10px;padding:16px 20px;display:flex}.chat-input{background:var(--surface);border:1px solid var(--border);font-size:12px;font-family:var(--font-dm-mono),"DM Mono",monospace;color:var(--text);resize:none;border-radius:12px;outline:none;flex:1;min-height:40px;max-height:100px;padding:10px 14px;line-height:1.5;transition:border-color .2s}.chat-input::placeholder{color:var(--muted)}.chat-input:focus{border-color:var(--accent)}.chat-send{background:var(--accent);cursor:pointer;color:#fff;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s;display:flex}.chat-send:hover{background:var(--accent2)}.chat-send:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes scrollPulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes dotBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:all .8s cubic-bezier(.16,1,.3,1);transform:translateY(32px)}.reveal.visible{opacity:1;transform:translateY(0)}footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:32px 80px;display:flex}.footer-left{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.footer-accent{color:var(--accent)}.footer-right{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px}@media (max-width:768px){section{padding:60px 24px}.about-grid,.contact-grid,.projects-grid{grid-template-columns:1fr;gap:40px}.project-card.featured{grid-column:span 1;grid-template-columns:1fr}.chat-panel{width:calc(100vw - 56px);right:16px}footer{flex-direction:column;gap:12px;padding:32px 24px}}
