:root{--bg: #07070a;--bg-elevated: #0d0d12;--surface: #121218;--surface-hover: #1a1a22;--border: rgba(255, 255, 255, .06);--border-hover: rgba(6, 182, 212, .25);--border-glow: rgba(6, 182, 212, .5);--text: #f0f0f2;--text-muted: #8a8a94;--text-dim: #5c5c66;--accent: #06b6d4;--accent-soft: rgba(6, 182, 212, .12);--accent-glow: rgba(6, 182, 212, .08);--font-display: "Syne", sans-serif;--font-mono: "DM Mono", monospace;--font-body: "DM Sans", sans-serif;--radius: 12px;--radius-pill: 9999px;--max-w: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}::selection{background:#06b6d44d;color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.7;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#particles-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.glow{position:fixed;border-radius:50%;pointer-events:none;filter:blur(80px);z-index:0}.glow--1{width:700px;height:700px;top:-15%;left:-10%;background:radial-gradient(circle,rgba(6,182,212,.12),transparent 70%);animation:glow-float 20s ease-in-out infinite alternate}.glow--2{width:500px;height:500px;bottom:-10%;right:-5%;background:radial-gradient(circle,rgba(168,85,247,.06),transparent 70%);animation:glow-float 25s ease-in-out infinite alternate-reverse}.glow--3{width:400px;height:400px;top:40%;left:50%;background:radial-gradient(circle,rgba(6,182,212,.06),transparent 70%);animation:glow-float 15s ease-in-out infinite alternate}@keyframes glow-float{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-40px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}to{transform:translate(40px,-20px) scale(1.02)}}nav{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.85rem 2.5rem;background:#07070abf;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border-bottom:1px solid var(--border);z-index:100}.nav-logo{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:1.05rem;color:var(--text);text-decoration:none;letter-spacing:.06em;font-weight:400}.nav-logo-mark{width:30px;height:30px;display:block;flex-shrink:0;opacity:.9;transition:opacity .2s}.nav-logo:hover .nav-logo-mark{opacity:1}.nav-links{display:flex;gap:2.5rem}.nav-link{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);text-decoration:none;letter-spacing:.08em;text-transform:uppercase;transition:color .25s ease;position:relative;padding:.4rem 0}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:1.5px;background:var(--accent);transform:scaleX(0);transition:transform .3s cubic-bezier(.22,1,.36,1)}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}main{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;padding:6rem 2.5rem 4rem}.section{display:none;padding-top:2rem}.section.active{display:block}[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}[data-reveal].visible{opacity:1;transform:translateY(0)}[data-reveal=hero]{transition-delay:.1s}.hero{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;min-height:85vh;align-content:center;position:relative;margin-bottom:4rem}.hero-tag{grid-column:1 / -1;display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:.78rem;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:-1.5rem;background:var(--accent-soft);padding:.45rem 1rem;border-radius:var(--radius-pill);border:1px solid rgba(6,182,212,.15);width:fit-content;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.hero-title{font-family:var(--font-display);font-size:clamp(4.5rem,10vw,8rem);font-weight:800;line-height:.9;letter-spacing:-.02em;color:var(--text);position:relative;display:inline-block;align-self:start;transition:transform .1s ease-out}.hero-title--accent{background:linear-gradient(135deg,var(--accent) 0%,#22d3ee 50%,#67e8f9 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-right{padding-top:2rem;display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}.hero-sub{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}.hero-desc{font-size:1.05rem;color:var(--text-muted);line-height:1.8;max-width:480px}.hero-desc strong{color:var(--text);font-weight:500}.hero-cta{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}.btn-primary{display:inline-block;background:var(--accent);color:var(--bg);padding:.8rem 2rem;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:.82rem;font-weight:500;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 0 24px #06b6d433;position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 40px #06b6d459;background:#22d3ee}.btn-primary:active{transform:translateY(0)}.btn-ghost{font-family:var(--font-mono);font-size:.82rem;color:var(--text-muted);text-decoration:none;letter-spacing:.04em;transition:all .3s ease;border:1px solid var(--border);border-radius:var(--radius-pill);padding:.75rem 1.6rem;display:inline-flex;align-items:center;gap:.5rem}.btn-ghost:hover{color:var(--text);border-color:#06b6d44d;background:#06b6d40f;transform:translateY(-1px)}.btn-arrow{display:inline-block;transition:transform .2s}.btn-ghost:hover .btn-arrow,.preview-link:hover .btn-arrow{transform:translate(3px)}.marquee-wrap{width:100%;overflow:hidden;padding:1.5rem 0;margin-bottom:5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);mask-image:linear-gradient(90deg,transparent,black 3%,black 97%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 3%,black 97%,transparent)}.marquee-track{display:flex;gap:0;width:max-content;animation:marquee-scroll 40s linear infinite}.marquee-track:hover{animation-play-state:paused}.marquee-content{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.marquee-content span{font-family:var(--font-mono);font-size:.82rem;color:var(--text-muted);padding:.3rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);transition:all .25s ease;white-space:nowrap}.marquee-content span:hover{color:var(--accent);border-color:#06b6d440;background:var(--surface-hover)}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.section-preview{margin-bottom:5rem}.preview-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2rem}.preview-header h2{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--text)}.preview-link{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);text-decoration:none;letter-spacing:.06em;transition:opacity .2s;display:inline-flex;align-items:center;gap:.3rem}.preview-link:hover{opacity:.8}.preview-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}.preview-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem;text-decoration:none;cursor:default;transition:all .35s cubic-bezier(.22,1,.36,1);position:relative}.preview-card:hover{border-color:var(--border-hover);background:var(--surface-hover);transform:translateY(-4px);box-shadow:0 0 30px #06b6d40f,0 8px 32px #0000004d}.preview-card:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--radius);opacity:0;transition:opacity .35s ease;box-shadow:0 0 20px #06b6d414;pointer-events:none}.preview-card:hover:after{opacity:1}.preview-tag{font-family:var(--font-mono);font-size:.65rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.6rem;display:block}.preview-card h3{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:.5rem;line-height:1.3}.preview-card p{font-size:.85rem;color:var(--text-muted);line-height:1.7;margin-bottom:1rem}.preview-footer{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim)}.page-header{margin-bottom:3.5rem;position:relative}.page-num{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);letter-spacing:.25em;margin-bottom:.6rem;display:block}.page-header h1{font-family:var(--font-display);font-size:clamp(2.8rem,5vw,4.5rem);font-weight:800;color:var(--text);line-height:1;letter-spacing:-.02em;margin-bottom:.8rem}.page-header p{font-size:1rem;color:var(--text-muted);max-width:480px}.filter-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}.filter-btn{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:.4rem 1.2rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .25s ease}.filter-btn:hover{border-color:var(--border-hover);color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.2rem}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.8rem;transition:all .35s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;position:relative}.project-card:hover{border-color:var(--border-hover);transform:translateY(-4px);background:var(--surface-hover);box-shadow:0 0 30px #06b6d40f,0 8px 32px #0000004d}.project-card.featured{border-color:#06b6d41f;background:linear-gradient(135deg,var(--surface),rgba(6,182,212,.03))}.project-card.hidden{display:none}.project-card p{flex:1}.project-meta{display:flex;align-items:center;gap:1rem;margin-bottom:.8rem}.project-year{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim)}.project-type{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.project-card h2{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:.7rem;line-height:1.3}.project-card p{font-size:.85rem;color:var(--text-muted);line-height:1.75;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;margin-top:auto;padding-top:1rem}.project-tags span{background:var(--accent-soft);border:1px solid rgba(6,182,212,.12);color:var(--accent);font-family:var(--font-mono);font-size:.65rem;padding:.2rem .75rem;border-radius:var(--radius-pill);letter-spacing:.04em}.project-links{min-height:1.6rem;display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;margin-top:auto}.project-link{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);text-decoration:none;letter-spacing:.06em;transition:opacity .2s}.project-link:hover{opacity:.7}.exp-layout{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-bottom:4rem}.exp-section-title{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.2em;margin-bottom:1.8rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.exp-item{display:flex;gap:1.2rem;margin-bottom:2rem;position:relative}.exp-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:.5rem;box-shadow:0 0 10px #06b6d44d}.exp-period{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);margin-bottom:.25rem;display:block}.exp-content h3{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.15rem}.exp-place{font-family:var(--font-mono);font-size:.72rem;color:var(--accent);margin-bottom:.5rem}.exp-content p{font-size:.82rem;color:var(--text-muted);line-height:1.7}.edu-card{display:flex;gap:1.2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.edu-logo{width:44px;height:44px;border-radius:var(--radius);background:var(--accent);color:var(--bg);font-family:var(--font-display);font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.edu-card h3{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.2rem}.edu-degree{font-size:.85rem;color:var(--text-muted);margin-bottom:.2rem}.edu-period{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);margin-bottom:.5rem;display:block}.edu-courses{font-size:.78rem;color:var(--text-muted);margin-bottom:.5rem;line-height:1.6}.edu-scholarship{font-family:var(--font-mono);font-size:.7rem;color:var(--accent);opacity:.8}.cert-card{display:flex;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;margin-bottom:.8rem}.cert-icon{font-size:1.2rem;color:var(--accent);flex-shrink:0;line-height:1;margin-top:.15rem}.cert-card h3{font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--text);margin-bottom:.2rem;line-height:1.4}.cert-issuer{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);margin-bottom:.1rem}.cert-id{font-family:var(--font-mono);font-size:.64rem;color:var(--text-dim)}.lang-row{display:flex;gap:1rem}.lang-item{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.3rem}.lang-name{font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--text)}.lang-level{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.skills-matrix{border-top:1px solid var(--border);padding-top:3rem}.skills-matrix h2{font-family:var(--font-display);font-size:1.4rem;font-weight:700;margin-bottom:2rem}.skills-groups{display:flex;flex-direction:column;gap:1.2rem}.skill-group{display:grid;grid-template-columns:140px 1fr;gap:1.5rem;align-items:start}.skill-group-title{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em;padding-top:.35rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tags span{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem;padding:.25rem .8rem;border-radius:var(--radius-pill);transition:all .2s ease}.skill-tags span:hover{border-color:var(--border-hover);color:var(--text);background:var(--surface-hover)}.contact-grid{display:grid;grid-template-columns:1fr 360px;gap:3rem;align-items:start}.contact-links{display:flex;flex-direction:column;gap:.8rem}.contact-item{display:flex;align-items:center;gap:1.2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.5rem;text-decoration:none;transition:all .3s cubic-bezier(.22,1,.36,1);cursor:pointer}.contact-item:not(.no-link):hover{border-color:var(--border-hover);transform:translate(4px);background:var(--surface-hover)}.ci-icon{width:40px;height:40px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid rgba(6,182,212,.12);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.85rem;color:var(--accent);flex-shrink:0}.ci-label{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.05rem;display:block}.ci-value{font-size:.88rem;color:var(--text);font-weight:400;display:block}.ci-arrow{margin-left:auto;font-size:1rem;color:var(--text-dim);transition:color .2s}.contact-item:hover .ci-arrow{color:var(--accent)}.contact-aside{display:flex;flex-direction:column;gap:1rem}.availability-card{background:var(--surface);border:1px solid rgba(6,182,212,.15);border-radius:var(--radius);padding:1.5rem;display:flex;gap:1rem;align-items:flex-start}.avail-dot{width:10px;height:10px;border-radius:50%;background:#22d3ee;flex-shrink:0;margin-top:.25rem;animation:pulse-dot 2s ease-in-out infinite}.avail-title{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.8rem;display:block}.availability-card ul{list-style:none;display:flex;flex-direction:column;gap:.4rem}.availability-card li{font-size:.82rem;color:var(--text-muted);padding-left:1rem;position:relative}.availability-card li:before{content:"—";position:absolute;left:0;color:var(--text-dim)}.location-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.5rem}.loc-label{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem;display:block}.loc-value{font-size:.95rem;color:var(--text);display:block}footer{position:relative;z-index:1;border-top:1px solid var(--border);padding:2rem;text-align:center}footer p{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);letter-spacing:.04em}#calvinbot-btn{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--accent);color:var(--bg);border:none;border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-mono);font-size:.82rem;font-weight:500;letter-spacing:.04em;box-shadow:0 4px 24px #06b6d459;transition:all .3s cubic-bezier(.22,1,.36,1);-webkit-user-select:none;user-select:none}#calvinbot-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 8px 32px #06b6d480;background:#22d3ee}#calvinbot-btn:active{transform:translateY(0) scale(.98)}#calvinbot-btn svg{flex-shrink:0}#calvinbot-btn span{white-space:nowrap}#calvinbot-panel{position:fixed;bottom:84px;right:24px;z-index:199;width:360px;max-height:520px;background:#0d0d12f5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:0 16px 48px #00000080,0 0 40px #06b6d40f;display:none;flex-direction:column;overflow:hidden;transform-origin:bottom right}#calvinbot-panel.open{display:flex;animation:cb-slide-up .3s cubic-bezier(.22,1,.36,1)}@keyframes cb-slide-up{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}#calvinbot-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.cb-header-left{display:flex;align-items:center;gap:10px}.cb-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#22d3ee);color:var(--bg);font-family:var(--font-display);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cb-name{font-family:var(--font-display);font-size:.88rem;font-weight:600;color:var(--text);line-height:1.2}.cb-status{font-family:var(--font-mono);font-size:.62rem;color:var(--text-dim);letter-spacing:.04em}#calvinbot-close{background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s;line-height:1}#calvinbot-close:hover{color:var(--text);background:#ffffff0f}#calvinbot-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth;max-height:320px}#calvinbot-messages::-webkit-scrollbar{width:4px}#calvinbot-messages::-webkit-scrollbar-track{background:transparent}#calvinbot-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.cb-msg{display:flex;animation:cb-msg-in .25s ease both}@keyframes cb-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cb-msg--bot{justify-content:flex-start}.cb-msg--user{justify-content:flex-end}.cb-msg-content{max-width:85%;padding:10px 14px;border-radius:14px;font-size:.82rem;line-height:1.6;word-wrap:break-word}.cb-msg--bot .cb-msg-content{background:var(--surface);border:1px solid rgba(255,255,255,.06);color:var(--text);border-bottom-left-radius:4px}.cb-msg--user .cb-msg-content{background:var(--accent);color:var(--bg);border-bottom-right-radius:4px}.cb-msg--error .cb-msg-content{background:#ef44441a;border-color:#ef444433;color:#fca5a5}.cb-msg--typing .cb-msg-content{display:flex;align-items:center;gap:4px;padding:14px 18px}.cb-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:cb-typing 1.2s ease-in-out infinite}.cb-typing-dot:nth-child(2){animation-delay:.2s}.cb-typing-dot:nth-child(3){animation-delay:.4s}@keyframes cb-typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}#calvinbot-form{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}#calvinbot-input{flex:1;background:var(--surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-pill);padding:10px 14px;font-family:var(--font-body);font-size:.82rem;color:var(--text);outline:none;transition:border-color .2s}#calvinbot-input::placeholder{color:var(--text-dim)}#calvinbot-input:focus{border-color:var(--accent)}#calvinbot-send{width:38px;height:38px;border-radius:50%;border:none;background:var(--accent);color:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}#calvinbot-send:hover{background:#22d3ee;transform:scale(1.05)}#calvinbot-send:active{transform:scale(.95)}#calvinbot-send:disabled{opacity:.4;cursor:not-allowed;transform:none}@media(max-width:600px){#calvinbot-panel{right:12px;left:12px;bottom:80px;width:auto;max-height:460px}#calvinbot-btn{bottom:16px;right:16px;padding:10px 16px;font-size:.75rem}}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:2rem;min-height:auto}.hero-tag{grid-column:1}.exp-layout{grid-template-columns:1fr;gap:2rem}.contact-grid{grid-template-columns:1fr}.skill-group{grid-template-columns:1fr;gap:.8rem}.projects-grid{grid-template-columns:1fr}.glow--1{width:400px;height:400px}.glow--2{width:300px;height:300px}.glow--3{display:none}}@media(max-width:600px){nav{padding:.7rem 1.2rem}.nav-links{gap:1.2rem}.nav-link{font-size:.7rem}main{padding:5rem 1.2rem 3rem}.hero-title{font-size:3.2rem}.preview-cards,.projects-grid{grid-template-columns:1fr}.hero-cta{flex-direction:column;align-items:stretch}.btn-primary,.btn-ghost{text-align:center;justify-content:center}}
