:root{
  --bg:#08090b;
  --bg2:#0d0f12;
  --card:#111419;
  --card2:#15181e;
  --text:#f5f7fa;
  --muted:#949ba7;
  --line:rgba(255,255,255,.09);
  --line2:rgba(255,255,255,.15);
  --accent:#ffffff;
  --accentText:#050608;
  --shadow:0 30px 80px rgba(0,0,0,.35);
  --radius:24px;
  --header:rgba(8,9,11,.76);
}

html.light{
  --bg:#f4f5f7;
  --bg2:#ffffff;
  --card:#ffffff;
  --card2:#f0f2f5;
  --text:#111318;
  --muted:#606772;
  --line:rgba(0,0,0,.09);
  --line2:rgba(0,0,0,.16);
  --accent:#111318;
  --accentText:#ffffff;
  --shadow:0 25px 70px rgba(0,0,0,.12);
  --header:rgba(244,245,247,.82);
}

html.midnight{
  --bg:#050813;
  --bg2:#080d19;
  --card:#0c1322;
  --card2:#111a2b;
}

html.amoled{
  --bg:#000;
  --bg2:#020202;
  --card:#050505;
  --card2:#090909;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  background:var(--bg);
  overflow-x:hidden;
}

body{
  margin:0;
  background:
    radial-gradient(circle at 70% 5%,rgba(255,255,255,.055),transparent 25rem),
    var(--bg);
  color:var(--text);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
  line-height:1.6;
  transition:background .35s,color .35s;
}

body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  z-index:999;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  font:inherit;
  color:inherit;
}

button,
a{
  -webkit-tap-highlight-color:transparent;
}

button:focus{
  outline:none;
}

button:focus-visible,
a:focus-visible{
  outline:2px solid var(--text);
  outline-offset:4px;
}

.site-header{
  position:fixed;
  z-index:100;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  width:min(1180px,calc(100% - 28px));
  height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px 0 18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--header);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  box-shadow:0 15px 50px rgba(0,0,0,.16);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  letter-spacing:-.04em;
  font-size:18px;
}

.brand-mark{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--accent);
  color:var(--accentText);
  font-size:15px;
}

.brand-dot{
  opacity:.5;
}

.desktop-nav{
  display:flex;
  align-items:center;
  gap:4px;
}

.desktop-nav a{
  padding:9px 11px;
  color:var(--muted);
  font-size:13px;
  font-weight:600;
  border-radius:10px;
  transition:.25s;
}

.desktop-nav a:hover{
  color:var(--text);
  background:var(--line);
}

.header-actions{
  display:flex;
  align-items:center;
  gap:7px;
  position:relative;
}

.control-btn{
  height:40px;
  padding:0 11px;
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:12px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
}

.control-btn:hover{
  border-color:var(--line2);
}

.control-btn.icon-only{
  width:40px;
  justify-content:center;
  padding:0;
}

.control-btn svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.chevron{
  font-size:14px;
  opacity:.65;
}

.language-menu{
  position:absolute;
  right:47px;
  top:48px;
  width:145px;
  padding:6px;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:15px;
  box-shadow:var(--shadow);
  opacity:0;
  visibility:hidden;
  transform:translateY(-7px);
  transition:.22s;
}

.language-menu.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.language-menu button{
  width:100%;
  padding:10px;
  text-align:left;
  border:0;
  background:transparent;
  border-radius:9px;
  cursor:pointer;
}

.language-menu button:hover{
  background:var(--line);
}

.mobile-menu-btn{
  display:none;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  cursor:pointer;
}

.mobile-menu-btn span{
  display:block;
  width:17px;
  height:1.5px;
  background:var(--text);
  margin:4px auto;
}

.mobile-nav{
  position:fixed;
  z-index:90;
  top:91px;
  left:14px;
  right:14px;
  display:none;
  padding:10px;
  border:1px solid var(--line);
  background:var(--header);
  backdrop-filter:blur(20px);
  border-radius:20px;
}

.mobile-nav.open{
  display:grid;
}

.mobile-nav a{
  padding:13px;
  border-radius:12px;
  color:var(--muted);
}

.mobile-nav a:hover{
  color:var(--text);
  background:var(--line);
}

.section{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto;
  padding:120px 0;
  position:relative;
}

.hero{
  min-height:100vh;
  padding-top:150px;
  display:grid;
  grid-template-columns:1fr .82fr;
  align-items:center;
  gap:70px;
}

.hero-copy{
  min-width:0;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  background:var(--card);
  padding:8px 12px;
  border-radius:999px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#65d391;
  box-shadow:0 0 12px #65d391;
}

.hero h1{
  margin:25px 0 20px;
  font-size:clamp(64px,9vw,126px);
  line-height:.83;
  letter-spacing:-.085em;
  font-weight:850;
}

.hero h1 span{
  color:transparent;
  -webkit-text-stroke:1px var(--text);
  opacity:.48;
}

.hero-description{
  max-width:580px;
  color:var(--muted);
  font-size:17px;
  line-height:1.8;
}

.hero-buttons{
  display:flex;
  gap:10px;
  margin-top:30px;
  flex-wrap:wrap;
}

.primary-btn,
.secondary-btn{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 18px;
  border-radius:14px;
  font-size:13px;
  font-weight:800;
  transition:.25s;
}

.primary-btn{
  background:var(--accent);
  color:var(--accentText);
}

.secondary-btn{
  border:1px solid var(--line2);
  background:var(--card);
}

.primary-btn:hover,
.secondary-btn:hover{
  transform:translateY(-3px);
}

.primary-btn svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.hero-meta{
  display:flex;
  gap:30px;
  margin-top:55px;
}

.hero-meta div{
  display:flex;
  flex-direction:column;
}

.hero-meta strong{
  font-size:15px;
}

.hero-meta span{
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.hero-visual{
  min-width:0;
}

.profile-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:linear-gradient(145deg,var(--card2),var(--card));
  border-radius:30px;
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:transform .35s,border-color .3s;
}

.profile-card:hover{
  border-color:var(--line2);
}

.profile-image-wrap{
  position:relative;
  height:500px;
  overflow:hidden;
  background:#111;
}

.profile-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;
  filter:saturate(.9) contrast(1.03);
  transition:transform .7s;
}

.profile-card:hover .profile-image{
  transform:scale(1.035);
}

.image-shine{
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.09) 48%,transparent 58%);
  transform:translateX(-100%);
  transition:1s;
}

.profile-card:hover .image-shine{
  transform:translateX(100%);
}

.floating-tag{
  position:absolute;
  z-index:3;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:9px;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(12px);
  color:#fff;
  font-size:9px;
  letter-spacing:.13em;
  font-weight:800;
  animation:float 4s ease-in-out infinite;
}

.tag-one{top:18%;left:5%}
.tag-two{top:42%;right:5%;animation-delay:-1.4s}
.tag-three{bottom:14%;left:7%;animation-delay:-2.5s}

@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-9px)}
}

.profile-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px;
}

.profile-label,
.section-kicker{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.17em;
  font-weight:800;
}

.profile-info h2{
  margin:3px 0 0;
  font-size:21px;
  letter-spacing:-.04em;
}

.profile-info p{
  margin:1px 0 0;
  color:var(--muted);
  font-size:11px;
}

.round-arrow{
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  flex:none;
  border:1px solid var(--line);
  background:var(--card2);
  border-radius:50%;
  cursor:pointer;
  transition:.25s;
}

.round-arrow:hover{
  background:var(--accent);
  color:var(--accentText);
  transform:rotate(8deg);
}

.round-arrow svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.device-badge{
  position:absolute;
  top:18px;
  right:18px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(12px);
  color:#fff;
  font-size:9px;
  font-weight:700;
}

.device-dot{
  width:6px;
  height:6px;
  background:#68d99a;
  border-radius:50%;
}

.profile-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
}

.profile-stats div{
  padding:15px 20px;
}

.profile-stats div+div{
  border-left:1px solid var(--line);
}

.profile-stats strong{
  display:block;
  font-size:17px;
}

.profile-stats span{
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.reaction-box{
  margin-top:10px;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--card);
}

.reaction-title{
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.reaction-list{
  display:flex;
  gap:7px;
  margin-top:9px;
}

.reaction{
  flex:1;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--card2);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  transition:.22s;
  font-size:10px;
  font-weight:800;
}

.reaction:hover,
.reaction.active{
  border-color:var(--line2);
  transform:translateY(-2px);
}

.reaction svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.section-heading{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:20px;
  align-items:start;
  margin-bottom:60px;
}

.section-number{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  padding-top:7px;
}

.section-heading h2{
  margin:7px 0 0;
  font-size:clamp(35px,5vw,68px);
  line-height:.98;
  letter-spacing:-.065em;
}

.about-grid{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:60px;
}

.large-text p{
  margin:0;
  max-width:780px;
  font-size:clamp(27px,4vw,49px);
  line-height:1.12;
  letter-spacing:-.045em;
}

.about-cards{
  display:grid;
  gap:12px;
}

.info-card{
  padding:25px;
  min-height:170px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
}

.card-icon,
.contact-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--card2);
}

.card-icon svg,
.contact-icon svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.info-card h3{
  margin:20px 0 3px;
  font-size:17px;
}

.info-card p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}

.skills-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.skill-card{
  padding:26px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
}

.skill-top{
  display:grid;
  grid-template-columns:38px 1fr auto;
  align-items:center;
  gap:12px;
}

.skill-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--muted);
  font-size:9px;
}

.skill-top h3{
  margin:0;
  font-size:17px;
}

.skill-top strong{
  font-size:12px;
}

.skill-line{
  height:4px;
  margin-top:22px;
  overflow:hidden;
  border-radius:99px;
  background:var(--line);
}

.skill-line span{
  display:block;
  width:var(--skill);
  height:100%;
  background:var(--text);
  border-radius:inherit;
  transform-origin:left;
  animation:skillIn 1.3s ease both;
}

@keyframes skillIn{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

.skill-card p{
  margin:14px 0 0;
  color:var(--muted);
  font-size:11px;
}

.projects-grid{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:12px;
}

.project-card{
  position:relative;
  min-height:360px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--card);
  overflow:hidden;
  transition:.3s;
}

.project-card:hover{
  transform:translateY(-6px);
  border-color:var(--line2);
}

.project-large{
  min-height:520px;
}

.project-number{
  position:absolute;
  right:25px;
  top:22px;
  color:var(--muted);
  font-size:11px;
}

.project-svg{
  height:270px;
  display:grid;
  place-items:center;
}

.project-svg svg{
  width:70%;
  max-width:300px;
  fill:none;
  stroke:var(--text);
  stroke-width:1;
  opacity:.55;
}

.project-svg.small{
  height:190px;
}

.project-card>span{
  color:var(--muted);
  font-size:9px;
  letter-spacing:.16em;
  font-weight:800;
}

.project-card h3{
  margin:6px 0 3px;
  font-size:25px;
  letter-spacing:-.04em;
}

.project-card p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}

.achievement-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:12px;
}

.achievement-stat{
  padding:28px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
}

.achievement-stat strong{
  display:block;
  font-size:35px;
  letter-spacing:-.05em;
}

.achievement-stat span{
  color:var(--muted);
  font-size:11px;
}

.certificates-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.certificate-card{
  border:1px solid var(--line);
  background:var(--card);
  border-radius:24px;
  overflow:hidden;
  cursor:pointer;
  transition:.3s;
}

.certificate-card:hover{
  transform:translateY(-6px);
  border-color:var(--line2);
}

.certificate-image{
  position:relative;
  height:420px;
  padding:15px;
  background:var(--card2);
  display:grid;
  place-items:center;
}

.certificate-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.missing-svg{
  display:none;
  position:absolute;
  inset:0;
  place-items:center;
  align-content:center;
  gap:8px;
  color:var(--muted);
  font-size:11px;
}

.certificate-image.missing .missing-svg{
  display:grid;
}

.certificate-image.missing img{
  display:none;
}

.missing-svg svg{
  width:70px;
  height:70px;
  fill:none;
  stroke:currentColor;
  stroke-width:1;
}

.certificate-info{
  padding:19px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line);
}

.certificate-info span{
  color:var(--muted);
  font-size:9px;
  letter-spacing:.14em;
}

.certificate-info h3{
  margin:4px 0 2px;
  font-size:17px;
}

.certificate-info p{
  margin:0;
  color:var(--muted);
  font-size:10px;
}

.timeline{
  position:relative;
  max-width:850px;
  margin:auto;
  padding-left:45px;
}

.timeline:before{
  content:"";
  position:absolute;
  left:9px;
  top:5px;
  bottom:5px;
  width:1px;
  background:var(--line2);
}

.timeline-item{
  position:relative;
  display:grid;
  grid-template-columns:90px 1fr;
  gap:25px;
  padding:0 0 60px;
}

.timeline-dot{
  position:absolute;
  left:-41px;
  top:5px;
  width:11px;
  height:11px;
  border-radius:50%;
  border:2px solid var(--text);
  background:var(--bg);
}

.timeline-year{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
}

.timeline-item h3{
  margin:0;
  font-size:20px;
}

.timeline-item p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:12px;
}

.timeline-item.future{
  opacity:.55;
}

.vision-box{
  padding:70px;
  border:1px solid var(--line);
  border-radius:30px;
  background:
    radial-gradient(circle at 80% 20%,rgba(255,255,255,.07),transparent 25rem),
    var(--card);
}

.vision-box h2{
  margin:15px 0;
  font-size:clamp(45px,7vw,95px);
  line-height:.88;
  letter-spacing:-.075em;
}

.vision-box h2 span{
  color:transparent;
  -webkit-text-stroke:1px var(--text);
  opacity:.45;
}

.vision-box p{
  max-width:600px;
  margin:25px 0 0;
  color:var(--muted);
}

.contact-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.contact-card{
  display:flex;
  align-items:center;
  gap:15px;
  padding:22px;
  border:1px solid var(--line);
  background:var(--card);
  border-radius:19px;
  transition:.25s;
}

.contact-card:hover{
  transform:translateY(-4px);
  border-color:var(--line2);
}

.contact-card div{
  min-width:0;
}

.contact-card div span{
  display:block;
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.contact-card strong{
  display:block;
  margin-top:3px;
  font-size:14px;
  overflow-wrap:anywhere;
}

.footer{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto;
  padding:35px 0 50px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}

.footer strong{
  font-size:18px;
}

.footer strong span{
  opacity:.5;
}

.footer p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:10px;
}

.back-top{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:10px;
}

.back-top svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
}

.modal{
  position:fixed;
  z-index:300;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  transition:.25s;
}

.modal.open{
  opacity:1;
  visibility:visible;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(12px);
}

.profile-modal-content{
  position:relative;
  z-index:2;
  width:min(760px,100%);
  max-height:90vh;
  overflow:auto;
  border:1px solid rgba(255,255,255,.16);
  border-radius:25px;
  background:#0c0e11;
  padding:12px;
  box-shadow:0 30px 100px rgba(0,0,0,.5);
}

.profile-modal-content img{
  display:block;
  width:100%;
  max-height:70vh;
  object-fit:contain;
  border-radius:17px;
}

.profile-modal-content>div{
  padding:18px 8px 8px;
}

.profile-modal-content span{
  color:#999;
  font-size:9px;
  letter-spacing:.15em;
}

.profile-modal-content h2{
  margin:3px 0;
}

.profile-modal-content p{
  margin:0;
  color:#999;
  font-size:12px;
}

.modal-close{
  position:absolute;
  z-index:5;
  top:17px;
  right:17px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:rgba(0,0,0,.65);
  color:#fff;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}

.certificate-modal-content{
  position:relative;
  z-index:2;
  width:min(1100px,100%);
  height:min(90vh,900px);
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:#050505;
}

.certificate-modal-content img{
  max-width:92%;
  max-height:86%;
  object-fit:contain;
  transition:transform .25s;
  user-select:none;
}

.zoom-controls{
  position:absolute;
  z-index:4;
  bottom:15px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:5px;
  padding:5px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:13px;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(12px);
}

.zoom-controls button{
  min-width:36px;
  height:34px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#fff;
  cursor:pointer;
}

.zoom-controls button:hover{
  background:rgba(255,255,255,.1);
}

.toast{
  position:fixed;
  z-index:500;
  bottom:25px;
  left:50%;
  transform:translate(-50%,20px);
  padding:11px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  box-shadow:var(--shadow);
  font-size:11px;
  opacity:0;
  pointer-events:none;
  transition:.25s;
}

.toast.show{
  opacity:1;
  transform:translate(-50%,0);
}

.ripple{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  transform:scale(0);
  animation:ripple .55s linear;
  background:rgba(255,255,255,.18);
}

@keyframes ripple{
  to{transform:scale(4);opacity:0}
}

.tap{
  position:relative;
  overflow:hidden;
}

.reveal{
  opacity:1;
  transform:none;
}

.js-ready .reveal{
  transition:opacity .8s ease,transform .8s ease;
}

.js-ready .reveal:not(.visible){
  opacity:0;
  transform:translateY(25px);
}

.js-ready .reveal.visible{
  opacity:1;
  transform:none;
}

.cursor-glow{
  position:fixed;
  z-index:0;
  width:280px;
  height:280px;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.06),transparent 68%);
  transform:translate(-50%,-50%);
  display:block;
}

@media(max-width:900px){
  .desktop-nav{
    display:none;
  }

  .mobile-menu-btn{
    display:block;
  }

  .hero{
    grid-template-columns:1fr;
    gap:45px;
    padding-top:140px;
  }

  .hero h1{
    font-size:clamp(65px,18vw,110px);
  }

  .hero-visual{
    width:min(650px,100%);
    margin:auto;
  }

  .about-grid{
    grid-template-columns:1fr;
  }

  .projects-grid{
    grid-template-columns:1fr;
  }

  .project-large{
    min-height:400px;
  }
}

@media(max-width:650px){
  .site-header{
    top:8px;
    width:calc(100% - 16px);
    height:61px;
    border-radius:18px;
    padding-left:10px;
  }

  .brand-mark{
    width:34px;
    height:34px;
  }

  #langText{
    display:inline;
  }

  .control-btn{
    padding:0 9px;
  }

  .control-btn.icon-only{
    width:38px;
  }

  .mobile-menu-btn{
    width:38px;
    height:38px;
  }

  .section{
    width:calc(100% - 24px);
    padding:85px 0;
  }

  .hero{
    padding-top:115px;
    min-height:auto;
  }

  .hero h1{
    margin-top:20px;
    font-size:clamp(58px,19vw,90px);
  }

  .hero-description{
    font-size:14px;
  }

  .hero-meta{
    margin-top:35px;
    gap:18px;
  }

  .profile-image-wrap{
    height:390px;
  }

  .profile-info{
    padding:16px;
  }

  .profile-stats div{
    padding:13px 16px;
  }

  .section-heading{
    grid-template-columns:43px 1fr;
    gap:8px;
    margin-bottom:35px;
  }

  .section-heading h2{
    font-size:38px;
  }

  .large-text p{
    font-size:30px;
  }

  .skills-grid,
  .certificates-grid,
  .contact-grid,
  .achievement-stats{
    grid-template-columns:1fr;
  }

  .skill-card{
    padding:20px;
  }

  .certificate-image{
    height:350px;
  }

  .vision-box{
    padding:40px 25px;
  }

  .vision-box h2{
    font-size:54px;
  }

  .timeline{
    padding-left:35px;
  }

  .timeline-item{
    grid-template-columns:1fr;
    gap:5px;
    padding-bottom:45px;
  }

  .timeline-dot{
    left:-31px;
  }

  .footer{
    width:calc(100% - 24px);
    flex-direction:column;
    align-items:flex-start;
  }

  .cursor-glow{
    display:none;
  }
}

@media(max-width:420px){
  #langText{
    display:none;
  }

  .hero h1{
    font-size:57px;
  }

  .profile-image-wrap{
    height:350px;
  }

  .certificate-image{
    height:300px;
  }

  .reaction{
    font-size:9px;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *:before,
  *:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}


/* ---------------- PREMIUM IDENTITY CARD UPGRADE ---------------- */
.profile-card{
  border-color:rgba(190,198,214,.28);
  background:
    radial-gradient(ellipse at 10% 0%,rgba(192,205,226,.13),transparent 48%),
    linear-gradient(145deg,#171a20,#090a0d 72%);
  box-shadow:0 24px 65px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.10);
  transform-style:preserve-3d;
  will-change:transform;
}
.profile-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.055) 48%,transparent 68%);
  background-size:220% 100%;
  animation:identitySweep 7s ease-in-out infinite;
}
@keyframes identitySweep{
  0%,100%{background-position:150% 0}
  48%{background-position:-100% 0}
}
.profile-info{
  position:relative;
  z-index:1;
  background:linear-gradient(110deg,rgba(255,255,255,.045),transparent);
}
.identity-role{
  margin:5px 0 0;
  color:#c2cad7;
  font-size:11px;
  line-height:1.6;
}
.identity-role span{color:#8d9aaf}
.live-device-info{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px 12px;
  padding:0 20px 15px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.025em;
}
.live-clock,.live-battery{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.live-clock::before{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:#80d8aa;
  box-shadow:0 0 9px rgba(128,216,170,.55);
}
.live-battery::before{
  content:"";
  width:7px;height:7px;border:1px solid currentColor;
  border-radius:2px;
}
.profile-stats{position:relative;z-index:1}
@media(max-width:600px){
  .live-device-info{padding:0 16px 13px;font-size:9px}
  .identity-role{max-width:235px}
}
@media(prefers-reduced-motion:reduce){
  .profile-card::after{animation:none}
}

/* External link confirmation */
.external-confirm{
  position:fixed;inset:0;z-index:10000;
  display:none;align-items:center;justify-content:center;
  padding:22px;background:rgba(0,0,0,.68);
  backdrop-filter:blur(12px);
}
.external-confirm.open{display:flex}
.external-confirm-panel{
  width:min(100%,390px);padding:25px;
  color:#f5f6f8;background:linear-gradient(145deg,#20232a,#0c0d10);
  border:1px solid rgba(255,255,255,.16);border-radius:23px;
  box-shadow:0 25px 80px rgba(0,0,0,.45);
  animation:confirmIn .22s ease-out;
}
.external-confirm-panel h3{margin:0 0 10px;font-size:21px}
.external-confirm-panel p{margin:0 0 12px;color:#c0c5cf;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.external-confirm-domain{font-size:11px!important;color:#9faec5!important}
.external-confirm-actions{display:flex;gap:10px;margin-top:20px}
.external-confirm-actions button{
  flex:1;min-height:43px;padding:10px 13px;border-radius:12px;
  border:1px solid rgba(255,255,255,.17);cursor:pointer;font:inherit;
}
.external-cancel{color:#f5f6f8;background:#292c33}
.external-continue{color:#101216;background:#e7ebf2;font-weight:800}
@keyframes confirmIn{
  from{opacity:0;transform:translateY(8px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .external-confirm-panel{animation:none}
}

/* ===== SIAM | PREMIUM PLATINUM EXPERIENCE ===== */
:root {
  --platinum: #dbe4f0;
  --electric-blue: #68aaff;
  --deep-ink: #080b12;
}

.profile-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform-style: preserve-3d;
  border: 1px solid rgba(190, 210, 240, .3);
  box-shadow:
    0 24px 70px rgba(0, 0, 0, .25),
    inset 0 1px 0 rgba(255, 255, 255, .16);
  transition: transform .35s ease, box-shadow .35s ease;
}

.profile-card::before {
  content: "";
  position: absolute;
  inset: -60%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(
    112deg,
    transparent 38%,
    rgba(255,255,255,.02) 43%,
    rgba(190,220,255,.2) 49%,
    rgba(255,255,255,.05) 53%,
    transparent 60%
  );
  transform: translateX(-65%) rotate(12deg);
  animation: platinumSweep 7s ease-in-out infinite;
}

.profile-card:hover {
  box-shadow:
    0 28px 85px rgba(0, 0, 0, .35),
    0 0 28px rgba(70, 145, 255, .13),
    inset 0 1px 0 rgba(255,255,255,.22);
}

@keyframes platinumSweep {
  0%, 20% { transform: translateX(-65%) rotate(12deg); }
  75%, 100% { transform: translateX(65%) rotate(12deg); }
}

.identity-role {
  letter-spacing: .035em;
  line-height: 1.7;
  text-wrap: balance;
}

.live-device-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 16px 0 0;
  padding: 13px 16px;
  border: 1px solid rgba(150, 180, 220, .24);
  border-radius: 16px;
  background: linear-gradient(
    135deg,
    rgba(120, 150, 190, .12),
    rgba(70, 100, 150, .045)
  );
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.live-clock,
.live-battery {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.live-clock::before {
  content: "◷";
  color: var(--electric-blue);
}

.live-battery::before {
  content: "▰";
  color: #80d9b0;
}

/* Touch-friendly interactions */
.tap {
  -webkit-tap-highlight-color: transparent;
}

.tap:active {
  transform: scale(.985);
}

/* Tablet and landscape phones */
@media (min-width: 600px) and (orientation: landscape) {
  .profile-card {
    max-width: 900px;
    margin-inline: auto;
  }

  .live-device-info {
    gap: 12px 24px;
    padding: 15px 20px;
    font-size: 13px;
  }
}

/* Large tablets, laptops and desktop screens */
@media (min-width: 900px) {
  .profile-card {
    max-width: 1040px;
    margin-inline: auto;
  }

  .live-device-info {
    max-width: 1040px;
    margin-inline: auto;
    padding: 16px 22px;
    font-size: 13px;
  }
}

/* Compact portrait phones */
@media (max-width: 480px) {
  .live-device-info {
    gap: 8px;
    padding: 11px 12px;
    font-size: 11px;
    border-radius: 13px;
  }

  .profile-card {
    border-radius: 22px;
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .profile-card,
  .profile-card::before,
  .tap {
    animation: none !important;
    transition: none !important;
  }
}

/* ===== PLATINUM IDENTITY / SEPARATE DEVICE PANEL ===== */
.profile-card {
  isolation: isolate;
  transform-style: preserve-3d;
  border: 1px solid rgba(190, 210, 240, .28);
  box-shadow: 0 25px 70px rgba(0,0,0,.27),
              inset 0 1px 0 rgba(255,255,255,.17);
  transition: transform .3s ease, box-shadow .3s ease;
}

.profile-card::before {
  content: "";
  position: absolute;
  inset: -65%;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 42%,
    rgba(255,255,255,.02) 46%,
    rgba(220,235,255,.2) 50%,
    rgba(255,255,255,.035) 54%, transparent 60%);
  transform: translateX(-70%) rotate(12deg);
  animation: siamMetalShine 8s ease-in-out infinite;
}

@keyframes siamMetalShine {
  0%, 20% { transform: translateX(-70%) rotate(12deg); }
  75%, 100% { transform: translateX(70%) rotate(12deg); }
}

.profile-card:hover {
  box-shadow: 0 30px 85px rgba(0,0,0,.36),
              0 0 25px rgba(100,160,255,.12);
}

.device-info-panel {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 24px auto 0;
  padding: 22px;
  border: 1px solid var(--line2);
  border-radius: 22px;
  background: linear-gradient(135deg,
    rgba(145,165,195,.12), rgba(70,90,125,.035));
  box-shadow: 0 18px 55px rgba(0,0,0,.12),
              inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.device-panel-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.device-panel-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border: 1px solid var(--line2);
  border-radius: 14px;
  background: var(--card2);
  font-size: 23px;
}

.device-panel-kicker,
.device-info-label {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
}

.device-panel-heading h3 {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 650;
}

.device-live-indicator {
  margin-left: auto;
  padding: 5px 9px;
  border: 1px solid rgba(80,210,155,.25);
  border-radius: 999px;
  color: #65d6a6;
  font-size: 10px;
  letter-spacing: .08em;
}

.live-device-info {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
}

.device-info-item {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(120,140,175,.055);
}

.device-info-label {
  margin-bottom: 7px;
}

.live-clock,
.live-battery,
.device-name-copy {
  display: block;
  overflow-wrap: anywhere;
  font-size: 12px;
  font-weight: 600;
}

.device-panel-note {
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 11px;
}

@media (min-width: 900px) {
  .device-info-panel {
    max-width: 1040px;
    padding: 26px;
  }

  .device-info-item {
    padding: 18px;
  }
}

@media (max-width: 520px) {
  .device-info-panel {
    margin-top: 18px;
    padding: 16px;
    border-radius: 18px;
  }

  .live-device-info {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .device-info-item {
    padding: 12px;
  }

  .device-panel-heading h3 {
    font-size: 15px;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  .device-info-panel {
    margin-top: 16px;
  }

  .live-device-info {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .profile-card::before {
    animation: none !important;
  }

  .profile-card {
    transition: none !important;
  }
}
