:root{
  --content-w:min(1200px,92vw);
  --purple:#1E7C94; --pink:#5E6BC0;
  --grad:linear-gradient(135deg,#1E7C94,#5E6BC0);
  --text:#1A2530; --muted:#3D5666; --dim:#6A8494;
  --card:#EDF3F7; --card-bg:#E4EDF2;
  --border:rgba(30,124,148,0.25);
  --shadow:0 4px 24px rgba(30,80,120,0.1);
  --shadow-lg:0 8px 40px rgba(30,80,120,0.16);
  --dot:rgba(40,80,110,0.06);
  --nav-bg:rgba(255,255,255,0.88);
  --r:20px; --nav-h:68px;
  /* TYPE SCALE */
  --fs-label:0.65rem; --fs-tag:0.72rem; --fs-sm:0.85rem; --fs-body:1rem; --fs-h3:1.4rem;
  --lh-tight:1.2; --lh-body:1.65;
}
html[data-theme="dark"]{
  --text:#F4F7FB; --muted:#A4B3C7; --dim:#5A7088;
  --card:#111C2A; --card-bg:#172235;
  --border:rgba(255,255,255,.08);
  --shadow:0 4px 24px rgba(0,0,0,0.5);
  --shadow-lg:0 8px 40px rgba(0,0,0,0.7);
  --dot:rgba(80,140,255,0.03);
  --nav-bg:rgba(12,20,32,.65);
  --grad:linear-gradient(135deg,#36C2FF,#5B7CFF);
  --purple:#36C2FF; --pink:#5B7CFF;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:15px;}
body{font-family:'Inter',sans-serif;background-color:#C0D8E0;min-height:100vh;color:var(--text);overflow-x:hidden;transition:background-color 2.5s ease,color .3s;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,var(--dot) 1px,transparent 1px);background-size:28px 28px;}
a{text-decoration:none;color:inherit;}
.grad-text{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* NAV */
.nav-wrap{position:fixed;top:16px;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:200;padding:0 20px;pointer-events:none;}
.nav-pill{background:var(--nav-bg);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:50px;padding:5px;display:flex;gap:2px;box-shadow:var(--shadow);pointer-events:all;transition:background .3s,border-color .3s;}
.nav-tab{padding:8px 20px;border-radius:50px;font-size:.92rem;font-weight:500;color:var(--muted);border:none;background:none;cursor:pointer;transition:all .2s;font-family:'Inter',sans-serif;}
.nav-tab:hover{color:var(--text);}
.nav-tab.active{font-weight:600;color:var(--text);position:relative;}
.nav-tab:not(.nav-logo).active{background:none;box-shadow:none;}
.nav-tab:not(.nav-logo).active::after{content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:14px;height:2.5px;background:var(--grad);border-radius:2px;}
.theme-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:9px 14px;border-radius:50px;color:var(--muted);transition:color .2s,background .2s;line-height:1;flex-shrink:0;}
.theme-btn:hover{background:var(--card-bg);color:var(--text);}

/* PAGES */
.page{display:none;min-height:100vh;padding-top:var(--nav-h);position:relative;z-index:1;}
.page.active{display:block;animation:fadeIn .35s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* HOME FOOTER — social icons + availability anchored below chat */
.home-footer{width:100%;max-width:680px;display:flex;justify-content:space-between;align-items:center;padding:10px 4px 12px;flex-shrink:0;}
.home-footer-social{display:flex;gap:8px;}
.home-footer-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--muted);border:1px solid var(--border);border-radius:50%;transition:color .2s,border-color .2s,transform .2s;}
.home-footer-icon:hover{color:var(--purple);border-color:var(--purple);transform:translateY(-2px);}
.home-footer-icon svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;}
.home-footer-avail{display:flex;align-items:center;gap:7px;font-size:var(--fs-tag);font-weight:600;color:var(--muted);}

/* HOME — single viewport, no scroll */
#home{display:none;height:100vh;flex-direction:column;padding-top:var(--nav-h);position:relative;overflow:hidden;}
#home.active{display:flex;animation:fadeIn .35s ease;}
#particleCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;}
.home-inner{flex:1;min-height:0;max-width:var(--content-w);width:100%;margin:0 auto;padding:16px 20px 0;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;overflow:hidden;}
.avatar-ring{width:100px;height:100px;border-radius:50%;padding:3px;background:var(--grad);margin-bottom:10px;flex-shrink:0;box-shadow:var(--shadow-lg);overflow:hidden;}
.avatar-ring video,.avatar-ring img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.55);transform-origin:50% 18%;}
.home-name{font-size:clamp(22px,3vw,34px);font-weight:700;letter-spacing:-0.5px;margin-bottom:6px;line-height:var(--lh-tight);flex-shrink:0;}
.home-role{font-size:var(--fs-body);font-weight:500;color:var(--muted);margin-bottom:16px;letter-spacing:0;flex-shrink:0;}
#roleRotate{display:inline-block;transition:opacity .35s ease,transform .35s ease;}

/* CHAT */
.chat-widget{width:100%;max-width:680px;text-align:left;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-lg),0 0 80px rgba(80,140,255,.08);border:1px solid var(--border);overflow:hidden;transition:background .3s;flex:1;min-height:0;display:flex;flex-direction:column;}
.chat-header{padding:14px 20px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.chat-header-left{display:flex;align-items:center;gap:8px;}
.chat-header-dot{width:8px;height:8px;border-radius:50%;background:#22C55E;box-shadow:0 0 6px #22C55E;animation:blink 2s ease-in-out infinite;flex-shrink:0;}
.chat-header-name{font-size:var(--fs-sm);font-weight:700;color:var(--text);}
.chat-header-powered{font-size:var(--fs-tag);color:var(--dim);}
.chat-clear-btn{display:flex;align-items:center;gap:5px;font-size:var(--fs-tag);font-weight:600;color:var(--muted);background:none;border:1px solid var(--border);border-radius:50px;padding:4px 10px;cursor:pointer;transition:color .2s,border-color .2s;}
.chat-clear-btn:hover{color:var(--purple);border-color:var(--purple);}
.chat-msgs{padding:16px 20px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;}
.chat-msgs::-webkit-scrollbar{width:4px;}
.chat-msgs::-webkit-scrollbar-thumb{background:rgba(30,124,148,0.2);border-radius:4px;}
.msg-wrap{display:flex;flex-direction:column;gap:5px;}
.msg-wrap-ai{align-items:flex-start;}
.msg-wrap-user{align-items:flex-end;}
.msg-lbl{font-size:var(--fs-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);padding:0 4px;}
.msg-wrap-user .msg-lbl{color:rgba(164,179,199,.6);}
.msg-ai{background:var(--card-bg);border:1px solid var(--border);border-radius:18px;color:var(--text);padding:11px 14px;font-size:var(--fs-sm);line-height:var(--lh-body);max-width:82%;}
.msg-user{background:linear-gradient(135deg,#2196F3,#5B6EFF);color:white;border-radius:18px;padding:9px 14px;font-size:var(--fs-sm);font-weight:500;max-width:78%;}
.msg-typing{background:var(--card-bg);border:1px solid var(--border);border-radius:18px;padding:12px 16px;display:flex;gap:5px;align-items:center;align-self:flex-start;width:fit-content;}
.t-dot{width:7px;height:7px;border-radius:50%;background:var(--purple);opacity:.4;animation:tdot 1.2s ease-in-out infinite;}
.t-dot:nth-child(2){animation-delay:.2s;}.t-dot:nth-child(3){animation-delay:.4s;}
@keyframes tdot{0%,60%,100%{transform:translateY(0);opacity:.4;}30%{transform:translateY(-5px);opacity:1;}}
.chat-suggs{padding:0 20px 14px;display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0;}
.chat-sugg{background:linear-gradient(90deg,#2E9CCA,#5B7CFF);color:white;border:none;padding:6px 12px;border-radius:50px;font-size:var(--fs-tag);font-weight:500;cursor:pointer;font-family:'Inter',sans-serif;transition:opacity .2s,transform .2s,box-shadow .2s;white-space:nowrap;text-align:left;}
.chat-sugg:hover{opacity:1;transform:translateY(-2px);box-shadow:0 12px 30px rgba(91,124,255,.25);}
.chat-sugg:disabled{background:var(--card-bg);color:var(--dim);cursor:default;box-shadow:none;}
.chat-chips{padding:10px 20px;border-top:1px solid var(--border);display:flex;gap:7px;flex-wrap:wrap;align-items:center;flex-shrink:0;}
.chips-label{font-size:var(--fs-label);font-weight:600;letter-spacing:.4px;color:var(--dim);margin-right:2px;flex-shrink:0;}
.chat-chip{background:none;border:1px solid var(--border);color:var(--muted);padding:6px 13px;border-radius:50px;font-size:var(--fs-tag);cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s;}
.chat-chip:hover{border-color:var(--purple);color:var(--purple);}
.chat-input-row{padding:10px 20px 14px;display:flex;gap:10px;flex-shrink:0;}
.chat-input{flex:1;background:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:9px 16px;font-family:'Inter',sans-serif;font-size:var(--fs-sm);color:var(--text);outline:none;transition:border-color .2s,background .3s;resize:none;overflow-y:hidden;line-height:var(--lh-body);max-height:120px;overflow-y:auto;}
.chat-input:focus{border-color:rgba(30,124,148,0.5);}
.chat-input::placeholder{color:var(--dim);}
.chat-send{width:40px;height:40px;border-radius:50%;background:var(--grad);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s,box-shadow .2s;}
.chat-send:hover{transform:scale(1.08);box-shadow:0 4px 14px rgba(30,124,148,0.38);}
.chat-send svg{width:15px;height:15px;stroke:white;fill:none;stroke-width:2.5;}

/* ABOUT */
.about-page{max-width:var(--content-w);margin:0 auto;padding:16px 20px 60px;}
.info-card{background:var(--card);border-radius:var(--r);padding:32px;box-shadow:var(--shadow);border:1px solid var(--border);transition:background .3s,box-shadow .25s,transform .25s;overflow-wrap:break-word;}
.info-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.info-card:first-child{border-left:3px solid #F59E0B;}
.info-card:last-child{border-left:3px solid #A78BFA;}
.info-card-lbl{font-size:var(--fs-label);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.info-card p:not(.info-card-lbl){font-size:var(--fs-body);color:var(--muted);line-height:var(--lh-body);}
.bento{display:grid;grid-template-columns:1.2fr 0.8fr;gap:24px;align-items:stretch;}
.bc{background:var(--card);border-radius:var(--r);padding:36px;box-shadow:var(--shadow),0 20px 40px -8px rgba(0,0,0,.3);border:1px solid var(--border);transition:background .3s,box-shadow .25s,transform .25s;position:relative;}
.bc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg),0 24px 48px -8px rgba(0,0,0,.4);}
/* bento card inner structure */
.bc-card-top{margin-bottom:14px;}
.bc-card-body{flex:1;}
/* photo card */
/* Left intro card */
.bc-photo{display:flex;flex-direction:column;justify-content:center;text-align:left;}
.face-row{display:flex;flex-direction:row;align-items:center;gap:24px;}
.face-circle{width:180px;height:180px;border-radius:50%;overflow:hidden;flex-shrink:0;padding:3px;background:var(--grad);box-shadow:var(--shadow-lg);}
.face-circle img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;border-radius:50%;}
.face-text{display:flex;flex-direction:column;justify-content:center;gap:0;}
.face-name{font-size:1.6rem;font-weight:800;letter-spacing:-0.4px;margin:0 0 4px;color:var(--text);}
.face-roles{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;}
.face-roles li{font-size:var(--fs-tag);font-weight:600;color:var(--purple);background:rgba(30,124,148,0.09);padding:4px 11px;border-radius:50px;border:1px solid rgba(30,124,148,0.18);}
html[data-theme="dark"] .face-roles li{background:rgba(100,180,210,0.1);border-color:rgba(100,180,210,0.2);}
/* location card */
.bc-loc{display:flex;flex-direction:column;overflow:hidden;}
.globe-watermark{position:absolute;top:-24px;right:-24px;width:170px;height:170px;opacity:.1;pointer-events:none;color:var(--purple);animation:globe-spin 60s linear infinite;transform-origin:center;}
.globe-watermark circle,.globe-watermark ellipse,.globe-watermark line{stroke:currentColor;fill:none;stroke-width:1.5;}
@keyframes globe-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.loc-focus{padding-top:12px;}
.loc-focus-label{font-size:var(--fs-label);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.loc-focus-tags{font-size:var(--fs-body);font-weight:700;color:var(--text);}
.loc-label{font-size:var(--fs-label);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.loc-city{font-size:var(--fs-h3);font-weight:800;line-height:var(--lh-tight);letter-spacing:-0.3px;margin-bottom:6px;}
.loc-coords{font-size:var(--fs-tag);color:var(--purple);font-weight:600;line-height:1.6;}
.loc-divider{width:100%;height:1px;background:var(--border);margin:12px 0 10px;}
.loc-facts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.loc-facts li{font-size:var(--fs-sm);color:var(--muted);line-height:1.5;display:flex;align-items:center;gap:9px;}
.lf-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.lf-green{background:#22C55E;}
.lf-orange{background:#F97316;}
.lf-blue{background:var(--purple);}
/* craft card — featured */
.bc-craft{grid-column:span 2;display:flex;flex-direction:row;gap:32px;align-items:flex-start;background:#FCFCFF;border-left:3px solid var(--purple);box-shadow:0 6px 32px rgba(30,80,120,0.14);padding:22px 26px;}
html[data-theme="dark"] .bc-craft{background:#0F2030;}
.craft-left{flex:1;min-width:0;}
.craft-right{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;}
.craft-heading{font-size:1.15rem;font-weight:800;letter-spacing:-0.02em;line-height:var(--lh-tight);margin-bottom:8px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.bc-craft p{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-body);margin-bottom:0;}
.craft-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.craft-tag{font-size:var(--fs-tag);font-weight:500;background:rgba(30,124,148,0.08);color:var(--purple);padding:3px 10px;border-radius:50px;border:1px solid rgba(30,124,148,0.22);transition:all .2s ease;cursor:default;}
.craft-tag:hover{background:rgba(30,124,148,0.18);border-color:rgba(30,124,148,0.45);transform:translateY(-1px);}
html[data-theme="dark"] .craft-tag{background:rgba(54,194,255,0.07);color:#36C2FF;border-color:rgba(54,194,255,0.2);}
html[data-theme="dark"] .craft-tag:hover{background:rgba(54,194,255,0.15);border-color:rgba(54,194,255,0.45);}
.craft-action-group{display:flex;align-items:center;gap:18px;padding-top:2px;}
.avail-row{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--muted);}
/* shared CTA button */
.bc-cta{display:inline-block;background:var(--grad);color:#fff;border:none;border-radius:50px;padding:11px 22px;font-family:'Inter',sans-serif;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:opacity .2s,transform .2s;flex-shrink:0;}
.bc-cta:hover{opacity:.88;transform:translateY(-2px);}
/* education section */
.edu-list{display:flex;flex-direction:column;gap:16px;margin-top:6px;}
.edu-entry{padding-left:14px;border-left:2px solid var(--purple);}
.edu-degree{font-size:var(--fs-body);font-weight:700;color:var(--text);line-height:var(--lh-tight);margin-bottom:3px;}
.edu-school{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-body);}
/* AI research chips */
.ai-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.ai-chip{font-size:var(--fs-tag);font-weight:600;background:rgba(30,124,148,0.09);color:var(--purple);padding:5px 12px;border-radius:50px;border:1px solid rgba(54,194,255,0.18);transition:background .2s,transform .2s;cursor:default;}
.ai-chip:hover{background:rgba(54,194,255,0.14);transform:translateY(-1px);}
html[data-theme="dark"] .ai-chip{background:rgba(54,194,255,0.07);}
.avail-dot{width:8px;height:8px;border-radius:50%;background:#22C55E;box-shadow:0 0 6px #22C55E;flex-shrink:0;position:relative;}
.avail-dot::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:#22C55E;border-radius:50%;animation:avail-pulse 2s ease-out infinite;}
@keyframes avail-pulse{0%{transform:scale(1);opacity:.8;}100%{transform:scale(3.5);opacity:0;}}
.certs-box{background:var(--card);border-radius:var(--r);padding:32px;box-shadow:var(--shadow);border:1px solid var(--border);margin-top:12px;transition:background .3s;}
.certs-box-lbl{font-size:var(--fs-label);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.certs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.cert-badge{background:var(--card-bg);border-radius:16px;padding:20px;border:1px solid var(--border);display:flex;flex-direction:column;gap:6px;transition:box-shadow .2s,transform .2s;}
.cert-badge:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.cert-badge-issuer{font-size:var(--fs-label);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--purple);}
.cert-badge-name{font-size:var(--fs-body);font-weight:700;color:var(--text);line-height:var(--lh-tight);}
.cert-badge-year{font-size:var(--fs-tag);color:var(--muted);margin-top:4px;}

/* PROJECTS */
.projects-page{max-width:var(--content-w);margin:0 auto;padding:16px 20px 80px;}
.proj-hdr{text-align:center;margin-bottom:48px;}
.proj-hdr-lbl{font-size:var(--fs-label);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.proj-hdr-title{font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:700;letter-spacing:-0.5px;margin-bottom:12px;line-height:var(--lh-tight);}
.proj-hdr-sub{font-size:var(--fs-body);color:var(--muted);}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
/* card base */
.proj-card{background:var(--card);border-radius:var(--r);padding:28px 26px;display:flex;flex-direction:column;border:1px solid var(--border);box-shadow:var(--shadow);transition:background .3s,box-shadow .25s,transform .25s;}
.proj-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(30,80,120,0.18);}
.proj-card:hover .proj-title{color:var(--purple);}
/* colored top border + hover glow per color */
.pc1{border-top:5px solid #5B8FA0;}.pc2{border-top:5px solid #7078C0;}.pc3{border-top:5px solid #C89848;}.pc4{border-top:5px solid #D07850;}
.pc1:hover{box-shadow:0 16px 48px rgba(91,143,160,0.22);}
.pc2:hover{box-shadow:0 16px 48px rgba(112,120,192,0.22);}
.pc3:hover{box-shadow:0 16px 48px rgba(200,152,72,0.22);}
.pc4:hover{box-shadow:0 16px 48px rgba(208,120,80,0.22);}
/* card top row */
.proj-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.proj-idx-wrap{display:flex;align-items:center;gap:8px;}
.proj-idx{font-size:var(--fs-label);font-weight:700;color:var(--muted);letter-spacing:2px;}
.proj-feat-badge{font-size:var(--fs-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:rgba(200,152,72,0.14);color:#C89848;border:1px solid rgba(200,152,72,0.3);padding:2px 8px;border-radius:50px;}
/* category badge — color-matched */
.proj-cat-badge{font-size:var(--fs-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:50px;border:1px solid;}
.pc1 .proj-cat-badge{color:#5B8FA0;background:rgba(91,143,160,0.1);border-color:rgba(91,143,160,0.25);}
.pc2 .proj-cat-badge{color:#7078C0;background:rgba(112,120,192,0.1);border-color:rgba(112,120,192,0.25);}
.pc3 .proj-cat-badge{color:#C89848;background:rgba(200,152,72,0.1);border-color:rgba(200,152,72,0.25);}
.pc4 .proj-cat-badge{color:#D07850;background:rgba(208,120,80,0.1);border-color:rgba(208,120,80,0.25);}
/* card body */
.proj-card-body{display:flex;flex-direction:column;flex:1;}
.proj-title{font-size:clamp(1rem,2vw,1.15rem);font-weight:700;color:var(--text);letter-spacing:-0.2px;margin-bottom:4px;transition:color .2s;line-height:var(--lh-tight);}
.proj-subtitle{font-size:var(--fs-sm);color:var(--muted);font-weight:500;margin-bottom:12px;}
/* status + year row */
.proj-meta{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.proj-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-tag);font-weight:600;color:var(--muted);}
.proj-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.proj-year{font-size:var(--fs-tag);font-weight:600;color:var(--dim);}
/* description */
.proj-desc{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-body);margin-bottom:12px;min-height:90px;}
/* impact metric */
.proj-metric{font-size:var(--fs-sm);color:var(--text);font-weight:500;line-height:1.5;margin-bottom:14px;display:flex;align-items:flex-start;gap:7px;}
.proj-metric-icon{color:#22C55E;font-weight:700;flex-shrink:0;margin-top:1px;}
/* tags */
.proj-tags-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px;margin-top:auto;}
.proj-ptag{font-size:var(--fs-tag);color:var(--muted);background:var(--card-bg);border:1px solid var(--border);padding:3px 11px;border-radius:50px;}
/* CTAs */
.proj-link{font-size:var(--fs-sm);font-weight:600;color:var(--purple);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:gap .2s;}
.proj-link:hover{gap:8px;}
.proj-link-soon{font-size:var(--fs-sm);font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:4px;}
@media(max-width:640px){.proj-grid{grid-template-columns:1fr;}}

/* SKILLS */
#skills{display:none;height:100vh;flex-direction:column;padding-top:var(--nav-h);overflow:hidden;}
#skills.active{display:flex;animation:fadeIn .35s ease;}
.skills-page{flex:1;min-height:0;max-width:var(--content-w);width:100%;margin:0 auto;padding:0 20px 0;display:flex;flex-direction:column;align-items:center;}
.skills-title{font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:700;letter-spacing:-0.5px;margin-bottom:0;flex-shrink:0;}
.globe-wrap{flex:1;min-height:0;width:100%;max-width:860px;}
#gc{width:100%;height:100%;}

/* CONTACT */
#other{display:none;height:100vh;flex-direction:column;padding-top:var(--nav-h);overflow:hidden;}
#other.active{display:flex;animation:fadeIn .35s ease;}
.other-page{flex:1;min-height:0;max-width:860px;width:100%;margin:0 auto;padding:16px 20px 12px;display:flex;flex-direction:column;}

.ct-hero{text-align:center;padding:20px 20px 20px;flex-shrink:0;}
.ct-hero-heading{font-size:clamp(1.6rem,4vw,2.8rem);font-weight:800;letter-spacing:3px;text-transform:uppercase;line-height:1.1;margin-bottom:10px;}
.ct-hero-tagline{font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:600;color:var(--text);margin-bottom:8px;}
.ct-hero-sub{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-body);max-width:500px;margin:0 auto;}

.ct-two-col{display:grid;grid-template-columns:1fr 1.7fr;grid-template-rows:auto 1fr auto;background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden;flex:1;min-height:0;}

/* shared left border divider */
.ct-col-hd,.ct-info-list,.ct-reply-note{border-right:1px solid var(--border);}

/* row 1 */
.ct-col-hd{grid-column:1;grid-row:1;padding:20px 20px 10px;}
.ct-ai-note{grid-column:2;grid-row:1;padding:20px 24px 10px;font-size:var(--fs-tag);color:var(--dim);line-height:1.5;margin:0;}

/* row 2 */
.ct-info-list{grid-column:1;grid-row:2;padding:0 20px;display:flex;flex-direction:column;gap:8px;}
.ct-form{grid-column:2;grid-row:2;padding:0 24px;display:flex;flex-direction:column;gap:10px;}

/* row 3 */
.ct-reply-note{grid-column:1;grid-row:3;padding:10px 20px 20px;font-size:var(--fs-tag);color:var(--dim);margin:0;}
.ct-form-actions{grid-column:2;grid-row:3;padding:10px 24px 20px;display:flex;flex-direction:column;gap:6px;}

.ct-info-card{display:flex;align-items:center;gap:14px;padding:12px 14px;background:transparent;border:1px solid transparent;border-radius:14px;transition:all .2s;color:inherit;}
.ct-info-card:hover{background:rgba(255,255,255,0.03);border-color:rgba(255,255,255,0.08);transform:translateX(4px);}
.ct-info-card:hover .ct-info-val{color:var(--purple);}
.ct-info-icon{width:36px;height:36px;border-radius:10px;background:rgba(54,194,255,0.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;}
.ct-info-card:hover .ct-info-icon{transform:translateX(2px);}
.ct-info-icon svg{width:15px;height:15px;stroke:var(--purple);fill:none;stroke-width:1.8;}
.ct-info-lbl{font-size:var(--fs-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);margin-bottom:3px;}
.ct-info-val{font-size:var(--fs-sm);font-weight:500;color:var(--muted);transition:color .2s;}

.ct-ai-link{background:none;border:none;color:var(--purple);font-family:'Inter',sans-serif;font-size:var(--fs-tag);font-weight:500;font-style:italic;cursor:pointer;padding:0;transition:opacity .2s;}
.ct-ai-link:hover{opacity:.7;}
.ct-form input,.ct-form textarea,.ct-form select{background:rgba(10,16,24,0.5);border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:12px 16px;font-family:'Inter',sans-serif;font-size:var(--fs-sm);color:var(--text);outline:none;transition:border-color .25s,background .25s,box-shadow .25s;width:100%;}
.ct-form input:focus,.ct-form textarea:focus,.ct-form select:focus{border-color:#3b82f6;background:rgba(10,16,24,0.8);box-shadow:0 0 0 4px rgba(59,130,246,0.15);}
.ct-form input::placeholder,.ct-form textarea::placeholder{color:#64748b;}
.ct-form select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235A7088' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;}
.ct-form textarea{resize:none;flex:1;min-height:0;}
.ct-form-btn{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:white;border:none;border-radius:50px;padding:12px 26px;font-family:'Inter',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;align-self:flex-start;box-shadow:0 4px 14px rgba(59,130,246,0.4),0 0 20px rgba(59,130,246,0.2) inset;transition:transform .25s,box-shadow .25s;}
.ct-form-btn:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(59,130,246,0.55),0 0 20px rgba(59,130,246,0.3) inset;}
.cf-status{font-size:var(--fs-sm);min-height:1.2em;}

.ct-footer{text-align:center;padding:8px 20px 6px;flex-shrink:0;}
.ct-footer-line{height:1px;background:var(--border);margin-bottom:8px;}
.ct-footer-thanks{font-size:.75rem;color:var(--dim);margin-bottom:8px;}


/* RESPONSIVE */
@media(max-width:820px){
  .bento{grid-template-columns:1fr;gap:16px;}.bc-craft{grid-column:span 1;flex-direction:column;gap:20px;}
  .bc{padding:28px;}
  #other{height:auto;overflow:auto;}.other-page{flex:none;}.ct-two-col{grid-template-columns:1fr;grid-template-rows:none;flex:none;}.ct-col-hd,.ct-info-list,.ct-reply-note{border-right:none;border-bottom:1px solid var(--border);}.ct-ai-note{grid-column:1;grid-row:2;}.ct-info-list{grid-column:1;grid-row:3;}.ct-form{grid-column:1;grid-row:4;}.ct-reply-note{grid-column:1;grid-row:5;}.ct-form-actions{grid-column:1;grid-row:6;}
  #skills{height:auto;overflow:auto;}.skills-page{flex:none;}.globe-wrap{flex:none;height:320px;}
  .globe-wrap{width:100%;height:320px;}
}
@media(max-width:560px){
  .bento{grid-template-columns:1fr;}.bc-craft{grid-column:span 1;} /* already 1-col at 820px, kept for safety */
}
/* Mobile nav: let the pill scroll horizontally instead of crushing text */
@media(max-width:480px){
  .nav-wrap{padding:0 8px;}
  .nav-pill{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px;}
  .nav-pill::-webkit-scrollbar{display:none;}
  .nav-tab{white-space:nowrap;padding:8px 16px;font-size:.82rem;flex-shrink:0;}
  .theme-btn{padding:8px 10px;font-size:.9rem;}
}
.chat-link{color:var(--purple);text-decoration:underline;word-break:break-all;}
.chat-cal-btn{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:9px 18px;background:var(--grad);color:#fff;font-size:var(--fs-sm);font-weight:600;border-radius:50px;text-decoration:none;transition:opacity .2s,transform .2s;}
.chat-cal-btn:hover{opacity:.88;transform:translateY(-1px);}
