:root{
  --bg: #f5f7fb;
  --card: #ffffff;
  --text: #111827;
  --muted: #6b7280;
  --accent:  #0ea5a4;
  --glass: rgba(255,255,255,0.55);
  --shadow-soft: 12px 12px 24px rgba(15,23,42,0.06), -8px -8px 18px rgba(255,255,255,0.6);
  --neo-shadow: 14px 14px 30px rgba(16,24,40,0.08), -10px -10px 20px rgba(255,255,255,0.9);
  --glass-border: rgba(255,255,255,0.5);
  --glass-blur: 10px;
  --icon-color: #111827;
}

[data-theme='dark']{
  --bg: #0b1220;
  --card: rgba(18,22,30,0.6);
  --text: #e6eef6;
  --muted: #9aa6b2;
  --accent: #4dd6d4;
  --glass: rgba(255,255,255,0.04);
  --shadow-soft: 12px 12px 30px rgba(0,0,0,0.6), -8px -8px 18px rgba(255,255,255,0.02);
  --neo-shadow: inset 6px 6px 12px rgba(0,0,0,0.6), inset -6px -6px 12px rgba(255,255,255,0.02);
  --glass-border: rgba(255,255,255,0.06);
  --glass-blur: 8px;
  --icon-color: #e6eef6;
}

[data-theme='dark'] .gh-icon {
  filter: invert(1);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: linear-gradient(180deg,var(--bg), color-mix(in srgb, var(--bg) 85%, #000 15%));
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  transition: background .45s ease, color .3s ease;
  overflow-x:hidden;
}

.wrap{max-width:1100px;margin:48px auto;padding:0 32px;}
section{margin-top:48px}


header{
  position:fixed;left:50%;transform:translateX(-50%);top:18px;width:calc(100% - 64px);max-width:1100px;z-index:40
}

.nav{
  display:flex;align-items:center;justify-content:space-between;background:var(--glass);
  padding:10px 14px;border-radius:14px;backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);
  box-shadow:var(--shadow-soft);
  transition: background .3s ease;
}

.brand{display:flex;gap:14px;align-items:center}
.logo{
  width:52px;height:52px;border-radius:12px;display:grid;place-items:center;font-weight:700;background:linear-gradient(135deg,var(--accent),#6b21a8);color:white;box-shadow:var(--neo-shadow);
}
.logo-photo{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;cursor:pointer}
.brand h1{font-size:16px;margin:0}
.brand p{font-size:12px;margin:0;color:var(--muted)}

nav ul{display:flex;gap:12px;list-style:none;margin:0;padding:0}
nav a{padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--text);font-weight:600;transition:all .2s ease}
nav a:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);transform:translateY(-3px)}

.controls{display:flex;gap:8px;align-items:center}

.toggle{display:inline-grid;place-items:center;width:38px;height:38px;background:transparent;border-radius:10px;border:1px solid var(--glass-border);cursor:pointer}
.toggle svg{width:20px;height:20px;stroke:var(--icon-color)}

.menu-toggle{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--glass-border);cursor:pointer;background:transparent;align-items:center;justify-content:center;color:var(--icon-color)}
.menu-toggle svg{stroke:var(--icon-color)}

.hero{
  display:grid;
  grid-template-columns:1fr 420px;
  gap:38px;
  align-items:center;
  margin-top:150px;
}
.hero-left{padding:28px;border-radius:14px;background:var(--card);box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border); transition: background .3s ease;}

.intro{font-size:14px;color:var(--muted);margin-bottom:8px}
h2.name{font-size:34px;margin:6px 0 10px;letter-spacing:-0.5px}
p.lead{margin:0 0 18px;line-height:1.5;color:var(--muted)}

.cta{display:flex;gap:12px}
.btn{padding:10px 14px;border-radius:10px;border:0;cursor:pointer;font-family:inherit;font-size:14px;line-height:1.2;letter-spacing:.15px;font-weight:700;text-rendering:optimizeLegibility;transition:all .3s ease}
.btn.primary{background:linear-gradient(90deg,var(--accent),#6b21a8);color:white;box-shadow:0 8px 30px rgba(14,165,164,0.14);}
.btn.ghost{background:transparent;border:1px solid rgba(0,0,0,0.06);color:var(--text)}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.card{padding:12px;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--neo-shadow); transition: background .3s ease;}
.card strong {font-size: 14px;}
.card div {font-size: 11px !important;}

.canvas-wrap{position:relative;border-radius:14px;overflow:hidden;min-height:360px;display:grid;grid-template-rows:1fr auto;background:linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur))}
#threejs-canvas{width:100%;height:100%;display:block}
.avatar{padding:16px;display:flex;gap:12px;align-items:center}
.avatar svg{width:56px;height:56px;border-radius:10px}

.photo-lightbox{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(8,12,20,0.35);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  z-index:1400;
  padding:20px;
}
.photo-lightbox img{
  width:min(72vw, 480px);
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:50%;
  border:3px solid color-mix(in srgb, var(--accent) 55%, white 45%);
  box-shadow:0 20px 50px rgba(0,0,0,0.35);
}


.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.project{padding:18px;border-radius:12px;background:var(--card);box-shadow:var(--shadow-soft);border:1px solid var(--glass-border);transition:transform .35s cubic-bezier(.2,.9,.3,1)}
.project:hover{transform:translateY(-4px) scale(1.005)}
.project-line{margin:0 0 8px;color:var(--muted);font-size:13px;line-height:1.5}
.project-line strong{color:var(--text)}
.project-stack{color:var(--muted);font-size:12px}
.timeline-row{margin-top:10px;display:flex;justify-content:flex-end}
.timeline-date{white-space:nowrap;font-size:12px;color:var(--muted);font-weight:600}


.neo{
  padding:20px;
  border-radius:16px;
  background:var(--card);
  box-shadow: 8px 8px 20px rgba(2,6,23,0.06), -8px -8px 20px rgba(255,255,255,0.8);
  transition: background .3s ease;
}
.neo a{color:var(--accent)}

.contact-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  box-shadow:0 0 0 1px rgba(14,165,164,0.14), 0 12px 24px rgba(2,6,23,0.16), 0 0 20px rgba(14,165,164,0.12);
}
[data-theme='dark'] .contact-card{
  box-shadow:0 0 0 1px rgba(77,214,212,0.22), 0 14px 28px rgba(0,0,0,0.52), 0 0 22px rgba(77,214,212,0.18);
}
.contact-info{flex:1;min-width:0}
.contact-actions{flex:1;display:flex;align-items:center;gap:12px;justify-content:flex-end;flex-wrap:wrap}

footer{margin:56px 0 28px;padding-bottom: 20px;text-align:center;color:var(--muted)}


.reveal{opacity:0;transform:translateY(14px) scale(.995);transition:opacity .6s ease, transform .6s cubic-bezier(.2,.9,.3,1)}
.reveal.visible{opacity:1;transform:none}


@media (max-width: 1024px) {
  .wrap { padding: 0 24px; margin: 36px auto; }
  header { width: calc(100% - 48px); top: 12px; }
  .hero { grid-template-columns: 1fr; gap: 24px; margin-top: 110px; }
  .canvas-wrap { min-height: 320px; }
  h2.name { font-size: 30px; }
  .projects-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .cards { grid-template-columns: repeat(3, 1fr); }
  .intro { font-size: 13px; }


  nav ul { gap: 8px; }
  nav a { padding: 8px; }
}


@media (max-width: 640px) {
  .wrap { padding: 0 16px; margin: 24px auto; }
  header { width: calc(100% - 32px); top: 10px; }
  h2.name { font-size: 26px; }
  .hero-left{padding: 18px;}
  .logo { width: 44px; height: 44px; font-size: 14px; }
  .brand { gap: 10px; }
  .brand h1 { font-size: 14px; }
  .brand p { font-size: 10px; }
  .canvas-wrap { min-height: 240px; }
  .avatar { padding: 12px; gap: 10px; }
  .avatar svg { width: 48px; height: 48px; }
  .hero { margin-top: 110px; }


  .intro { font-size: 12px; }


  .nav {


    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
  }

  .brand { grid-column: 1 / 2; }
  .controls { grid-column: 3 / 4; gap: 4px; }

  nav {
    grid-column: 1 / -1;
    order: 2;
    display: none;
    width: 100%;
  }

  nav ul {
    display: none;
    flex-direction: column;
    width: 100%;
    margin-top: 10px;
    background: color-mix(in srgb, var(--card) 95%, transparent);
    border-top: 1px solid var(--glass-border);
    padding: 10px 0;
    border-radius: 0 0 14px 14px;
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(var(--glass-blur));
  }

  .nav.menu-open nav {
    display: block;
  }
  .nav.menu-open nav ul {
    display: flex;
    border: 1px solid var(--glass-border);
    border-top: none;
  }

  nav ul li { width: 100%; }
  nav a { padding: 12px 18px; display: block; }
  .menu-toggle { display: flex; }
  .cards { grid-template-columns: 1fr; }
  .cta { flex-direction: column; gap: 8px; }


  .contact-card {
    flex-direction: column;
    align-items: flex-start;
  }
  .contact-actions {
    margin-top: 12px;
    width: 100%;
    justify-content: space-between;
  }
  .contact-actions .btn.primary { margin-left: 0 !important; flex-grow: 1; }

  .photo-lightbox img { width:min(86vw, 360px); }
}
html {
 scroll-behavior: smooth;
   scroll-padding-top: 100px;
}


@media (min-width: 641px) {
    .nav { grid-template-columns: auto 1fr auto; }
    nav {
        display: flex !important;
        grid-column: 2 / 3;
        justify-content: flex-end;
    }
    .controls { grid-column: 3 / 4; }
    .menu-toggle { display: none; }
    nav ul { display: flex !important; }
}
