*{margin:0;padding:0;box-sizing:border-box}
:root{
  --graphite:#2D3748;
  --white:#FFFFFF;
  --light-gray:#EDF2F7;
  --blue:#2563EB;
  --primary:#2563EB;
  --primary-dark:#1D4ED8;
  --primary-light:#3B82F6;
  --accent:#2563EB;
  --accent-dark:#1D4ED8;
  --accent-light:#60A5FA;
  --bg:#2D3748;
  --bg-light:#EDF2F7;
  --text:#FFFFFF;
  --text-dark:#2D3748;
  --text-muted:#A0AEC0;
  --text-muted-dark:#718096;
  --surface:rgba(255,255,255,0.08);
  --surface-hover:rgba(255,255,255,0.14);
  --surface-light:#FFFFFF;
  --border:rgba(255,255,255,0.12);
  --border-light:rgba(45,55,72,0.1);
  --shadow:0 8px 32px rgba(45,55,72,0.18);
  --glow:0 0 24px rgba(37,99,235,0.25);
  --gradient-primary:linear-gradient(135deg,var(--blue),var(--primary-dark));
  --gradient-accent:linear-gradient(135deg,var(--blue),var(--primary-dark));
  --gradient-text:linear-gradient(135deg,#FFFFFF,var(--blue))
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:80px;
  overflow-x:hidden;
  width:100%
}
body{
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-weight:400;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  width:100%;
  position:relative
}
h1,h2,h3,h4,h5,h6{
  font-family:'Inter',sans-serif;
  font-weight:600
}
.container{
  max-width:1400px;
  margin:0 auto;
  padding:0 24px;
  width:100%;
  min-width:0
}
main,.section,.hero{
  max-width:100%;
  overflow-x:hidden
}
.navbar{
  max-width:100%
}

.navbar{
  position:fixed;
  top:20px;
  left:50%;
  transform:translateX(-50%);
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border-light);
  border-radius:16px;
  box-shadow:var(--shadow);
  z-index:1000;
  width:calc(100% - 48px);
  max-width:1400px;
  margin:0;
  padding:12px 24px;
  box-sizing:border-box;
  height:auto;
  display:flex;
  align-items:center;
  gap:16px
}
.nav-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex:1;
  min-width:0;
  height:auto
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1
}
.logo{
  height:40px;
  max-height:40px;
  width:auto;
  object-fit:contain
}
.brand-name{
  font-weight:600;
  font-size:1rem;
  color:var(--text-dark);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.nav-overlay{
  display:none
}
.nav-menu{
  display:flex;
  list-style:none;
  gap:8px;
  flex-shrink:0
}
.nav-link{
  color:var(--text-muted-dark);
  text-decoration:none;
  font-weight:400;
  font-size:0.9rem;
  padding:8px 16px;
  border-radius:8px;
  transition:all 0.3s ease;
  position:relative
}
.nav-link:hover{
  color:var(--text-dark);
  background:var(--light-gray)
}
.nav-link.active{
  color:var(--white);
  background:var(--gradient-primary)
}
.menu-toggle{
  display:none;
  align-items:center;
  gap:8px;
  background:none;
  border:0;
  cursor:pointer;
  padding:8px;
  flex-shrink:0
}
.menu-toggle-bars{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  width:22px;
  height:16px
}
.menu-toggle-bars span{
  display:block;
  width:100%;
  height:2px;
  background:var(--text-dark);
  transition:all 0.3s ease
}
.menu-toggle-label{
  display:none;
  font-size:0.85rem;
  font-weight:600;
  color:var(--text-dark)
}

.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:120px 0 80px;
  background:linear-gradient(180deg,rgba(45,55,72,0.9) 0%,rgba(45,55,72,0.65) 55%,rgba(37,99,235,0.28) 100%),url('images/jocke-wulcan-0Q7yLkGSHpA-unsplash.jpg') center/cover no-repeat;
  position:relative
}
.hero::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:radial-gradient(circle at 20% 50%,rgba(37,99,235,0.18) 0%,transparent 50%),
              radial-gradient(circle at 80% 50%,rgba(255,255,255,0.06) 0%,transparent 50%);
  pointer-events:none
}
.hero-split{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:center;
  justify-items:center;
  text-align:center;
  position:relative;
  z-index:1
}
.hero-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
  padding-left:0;
  width:100%;
  max-width:900px
}
.hero-logo-tile{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:28px 36px;
  background:#fff;
  border-radius:20px;
  box-shadow:0 16px 48px rgba(0,0,0,0.35)
}
.hero-title-logo{
  width:auto;
  height:clamp(144px,24vw,216px);
  max-width:min(100%,660px);
  object-fit:contain;
  display:block
}
.hero-title{
  font-family:'Inter',sans-serif;
  font-weight:700;
  font-size:3.5rem;
  line-height:1.1;
  color:#ffffff;
  background:none;
  -webkit-text-fill-color:#ffffff;
  text-shadow:0 2px 20px rgba(0,0,0,0.75),0 0 40px rgba(0,0,0,0.45);
  margin:0
}
.hero-taglines{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-width:640px
}
.hero-subtitle{
  font-size:1.25rem;
  color:#f8fafc;
  line-height:1.6;
  margin:0;
  text-shadow:0 1px 12px rgba(0,0,0,0.8)
}
.hero-subtitle-emphasis{
  font-size:1.5rem;
  font-weight:600
}
.hero-actions{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center
}
.hero-visual{
  display:flex;
  align-items:center;
  justify-content:center
}
.hero-logo{
  max-width:100%;
  height:auto;
  max-height:400px;
  object-fit:contain;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,0.3))
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 28px;
  border-radius:8px;
  text-decoration:none;
  border:0;
  cursor:pointer;
  font-weight:600;
  font-size:0.95rem;
  transition:all 0.3s ease;
  position:relative;
  overflow:hidden
}
.btn::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:linear-gradient(135deg,rgba(255,255,255,0.1) 0%,transparent 100%);
  opacity:0;
  transition:opacity 0.3s ease
}
.btn:hover::before{
  opacity:1
}
.btn-primary{
  background:var(--gradient-accent);
  color:var(--white);
  box-shadow:0 4px 20px rgba(37,99,235,0.35)
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(37,99,235,0.45)
}
.btn-secondary{
  background:var(--surface);
  color:var(--text);
  border:2px solid var(--blue);
  box-shadow:0 4px 20px rgba(37,99,235,0.15)
}
.btn-secondary:hover{
  background:rgba(37,99,235,0.12);
  border-color:var(--primary-light);
  transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(37,99,235,0.3)
}

.section{
  padding:100px 0
}
.section.alt{
  background:var(--bg-light);
  color:var(--text-dark)
}
.section.alt .section-title{
  background:linear-gradient(135deg,var(--graphite),var(--blue));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text
}
.section.alt .section-subtitle{
  color:var(--text-muted-dark)
}
.section-header{
  text-align:center;
  margin-bottom:60px
}
.section-title{
  font-family:'Inter',sans-serif;
  font-weight:700;
  font-size:2.5rem;
  background:var(--gradient-text);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  margin:0 0 12px
}
.section-subtitle{
  color:var(--text-muted);
  font-size:1.1rem
}

.bento-section{
  background:var(--bg-light);
  color:var(--text-dark)
}
.bento-section .section-title{
  background:linear-gradient(135deg,var(--graphite),var(--blue));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text
}
.bento-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(2,auto);
  gap:20px
}
.bento-item{
  background:var(--surface-light);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border-light);
  border-radius:16px;
  padding:32px;
  transition:all 0.3s ease;
  position:relative;
  overflow:hidden
}
.bento-item::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:linear-gradient(135deg,rgba(37,99,235,0.08) 0%,rgba(45,55,72,0.04) 100%);
  opacity:0;
  transition:opacity 0.3s ease
}
.bento-item:hover::before{
  opacity:1
}
.bento-item:hover{
  transform:translateY(-4px);
  border-color:var(--primary);
  box-shadow:var(--glow)
}
.bento-large{
  grid-column:span 2;
  grid-row:span 2
}
.about-panel .section-header{
  margin-bottom:28px
}
.about-copy{
  display:flex;
  flex-direction:column;
  gap:0;
  text-align:center
}
.about-copy p{
  color:#111;
  font-size:1.25rem;
  font-weight:600;
  line-height:1.5;
  margin:0
}
.bento-small{
  grid-column:span 1;
  grid-row:span 1
}
.service-tile .bento-title{
  font-size:1.1rem;
  line-height:1.35;
  margin-bottom:10px;
  color:var(--text-dark)
}
.service-tile p{
  color:var(--text-dark);
  font-size:0.9rem;
  line-height:1.5;
  margin:0
}
.bento-title{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1.5rem;
  color:var(--text-dark);
  margin:0 0 8px
}
.bento-subtitle{
  color:var(--text-muted-dark);
  font-size:0.95rem;
  margin:0
}
.bento-item h3{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1.25rem;
  color:var(--text-dark);
  margin:0 0 8px
}
.bento-item p{
  color:var(--text-muted-dark);
  font-size:0.9rem;
  margin:0
}
.bento-section p{
  color:var(--text-muted-dark)
}

.horizontal-slider{
  position:relative;
  margin-top:48px;
  margin-bottom:72px;
  width:100%;
  max-width:100%;
  overflow:hidden
}
.slider-scroll{
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  -ms-overflow-style:none;
  width:100%;
  max-width:100%
}
.slider-scroll::-webkit-scrollbar{
  display:none
}
.slider-scrollbar{
  width:100%;
  max-width:520px;
  margin:24px auto 0;
  padding:10px 0;
  -webkit-tap-highlight-color:transparent
}
.slider-scrollbar.is-hidden{
  display:none
}
.slider-scrollbar-track{
  position:relative;
  height:8px;
  background:var(--light-gray);
  border-radius:999px;
  cursor:pointer;
  touch-action:none;
  border:1px solid var(--border-light)
}
.slider-scrollbar-thumb{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  min-width:48px;
  background:var(--gradient-primary);
  border-radius:999px;
  cursor:grab;
  box-shadow:0 2px 8px rgba(37,99,235,0.3);
  transition:box-shadow 0.2s ease;
  will-change:transform,width
}
.slider-scrollbar-thumb.is-dragging{
  cursor:grabbing;
  box-shadow:0 4px 14px rgba(37,99,235,0.45)
}
@media (hover:hover){
  .slider-scrollbar-thumb:hover{
    box-shadow:0 4px 14px rgba(37,99,235,0.4)
  }
}
.section.alt .slider-scrollbar-track{
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.2)
}

.timeline-slider{
  padding-bottom:8px
}
.timeline-horizontal{
  padding:8px 4px 16px
}
.timeline-track{
  display:flex;
  gap:40px;
  padding:0 20px;
  min-width:max-content
}
.timeline-item{
  position:relative;
  min-width:300px;
  max-width:350px;
  scroll-snap-align:start
}
.timeline-marker{
  width:16px;
  height:16px;
  background:var(--gradient-primary);
  border-radius:50%;
  position:absolute;
  top:0;
  left:0;
  box-shadow:0 0 20px rgba(37,99,235,0.45)
}
.timeline-content{
  background:var(--surface-light);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border-light);
  border-radius:12px;
  padding:24px;
  margin-left:24px;
  transition:all 0.3s ease
}
.timeline-content:hover{
  border-color:var(--primary);
  box-shadow:var(--glow);
  transform:translateY(-2px)
}
.timeline-period{
  font-weight:600;
  color:var(--primary);
  font-size:0.9rem;
  margin-bottom:12px
}
.timeline-content h4{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1.1rem;
  color:var(--text-dark);
  margin:0 0 8px
}
.timeline-content p{
  color:var(--text-muted-dark);
  font-size:0.9rem;
  margin:0 0 4px
}
.timeline-content strong{
  color:var(--text-dark)
}

.gallery-slider{
  padding-bottom:8px
}
.gallery-scroll{
  padding:8px 4px 16px
}
.gallery-track{
  display:flex;
  gap:20px;
  padding:0 4px;
  min-width:max-content
}
.gallery-item{
  flex:0 0 350px;
  scroll-snap-align:start;
  background:var(--surface);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  transition:all 0.3s ease;
  cursor:pointer;
  position:relative
}
.gallery-item:hover{
  border-color:var(--primary);
  box-shadow:var(--glow);
  transform:translateY(-4px)
}
.gallery-item img{
  width:100%;
  height:250px;
  object-fit:cover;
  display:block
}
.gallery-item figcaption{
  padding:16px;
  color:var(--text);
  font-weight:400;
  font-size:0.95rem
}

.contact-split{
  background:linear-gradient(180deg,var(--light-gray) 0%,var(--graphite) 100%)
}
.pre-contact{
  padding:0;
  width:100%
}
.pre-contact-bar{
  width:100%;
  padding:28px 24px;
  text-align:center;
  background:linear-gradient(90deg,#60A5FA 0%,#2563EB 50%,#1E3A8A 100%);
  border-top:1px solid rgba(255,255,255,0.1);
  border-bottom:1px solid rgba(255,255,255,0.1)
}
.pre-contact-title{
  margin:0 0 6px;
  font-family:'Inter',sans-serif;
  font-weight:700;
  font-size:clamp(1.25rem,3vw,1.75rem);
  color:#fff;
  letter-spacing:0.01em
}
.pre-contact-text{
  margin:0;
  font-size:clamp(0.95rem,2vw,1.1rem);
  color:rgba(255,255,255,0.9);
  line-height:1.5
}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center
}
.contact-cta{
  text-align:center;
  padding:40px;
  background:var(--white);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border-light);
  border-radius:16px
}
.contact-cta .section-title{
  margin-bottom:16px;
  background:linear-gradient(135deg,var(--graphite),var(--blue));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text
}
.contact-cta p{
  color:var(--text-muted-dark);
  margin-bottom:24px
}
.contact-info{
  display:flex;
  justify-content:center
}
.contact-card{
  background:var(--white);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border-light);
  border-radius:16px;
  padding:40px;
  max-width:500px;
  width:100%;
  transition:all 0.3s ease
}
.contact-card:hover{
  border-color:var(--blue);
  box-shadow:var(--glow)
}
.contact-card h3{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:1.5rem;
  color:var(--text-dark);
  margin:0 0 24px;
  text-align:center
}
.contact-card p{
  color:var(--text-muted-dark);
  margin:0 0 16px;
  font-size:1rem
}
.contact-card strong{
  color:var(--text-dark)
}
.contact-card a{
  color:var(--primary);
  text-decoration:none;
  transition:color 0.3s ease
}
.contact-card a:hover{
  color:var(--primary-light)
}

.gallery-modal{
  display:none;
  position:fixed;
  z-index:2000;
  left:0;
  top:0;
  width:100%;
  height:100%;
  background-color:rgba(0,0,0,0.95);
  overflow:hidden;
  padding:0;
  margin:0;
  box-sizing:border-box
}
.gallery-modal.show{
  display:block
}
.modal-content{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:95%;
  max-width:1200px;
  max-height:90vh;
  display:flex;
  background:var(--bg-light);
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
  padding:0;
  margin:0;
  box-sizing:border-box
}
.gallery-slide{
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--bg);
  margin:0;
  padding:40px
}
.gallery-slide img{
  max-width:100%;
  max-height:80vh;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  display:block;
  object-fit:contain;
  box-sizing:border-box
}
#modal-image{
  max-width:100%;
  max-height:80vh;
  object-fit:contain;
  border-radius:8px
}
.image-caption{
  color:var(--text);
  text-align:center;
  margin-top:20px;
  font-size:1.1rem
}
.close-modal{
  position:absolute;
  top:20px;
  right:30px;
  color:var(--text);
  font-size:40px;
  font-weight:bold;
  cursor:pointer;
  transition:0.3s;
  z-index:2001
}
.close-modal:hover,.close-modal:focus{
  color:var(--text-muted)
}

.footer{
  background:var(--graphite);
  color:var(--text);
  padding:40px 0;
  border-top:1px solid var(--border)
}
.footer-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.footer .logo{
  height:60px;
  max-height:60px
}
.footer .brand-name{
  font-weight:600;
  color:var(--text)
}
.footer-links a{
  color:var(--text-muted);
  text-decoration:none;
  margin-left:24px;
  transition:color 0.3s ease
}
.footer-links a:hover{
  color:var(--primary)
}
.social{
  display:flex;
  gap:16px
}
.photo-credit{
  color:var(--text-muted);
  font-size:0.85rem;
  text-align:center;
  margin-top:16px
}
.photo-credit a{
  color:var(--primary-light);
  text-decoration:none
}
.photo-credit a:hover{
  color:var(--white)
}

.skip-link{position:absolute;left:-9999px}
.skip-link:focus{position:fixed;left:16px;top:16px;background:var(--primary);color:#fff;padding:8px 10px;border-radius:8px;z-index:100}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

.animate-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-scale.visible {
  opacity: 1;
  transform: scale(1);
}

.animate-fade {
  opacity: 0;
  transition: opacity 0.6s ease;
}

.animate-fade.visible {
  opacity: 1;
}

.hero-title {
  animation: fadeInUp 0.8s ease forwards;
}

.hero-subtitle {
  animation: fadeInUp 0.8s ease 0.2s forwards;
  opacity: 0;
}

.hero-actions {
  animation: fadeInUp 0.8s ease 0.4s forwards;
  opacity: 0;
}

.hero-visual {
  animation: scaleIn 0.8s ease 0.3s forwards;
  opacity: 0;
}

.bento-item {
  animation: fadeInUp 0.6s ease forwards;
  opacity: 0;
}

.bento-item:nth-child(1) { animation-delay: 0.1s; }
.bento-item:nth-child(2) { animation-delay: 0.2s; }
.bento-item:nth-child(3) { animation-delay: 0.3s; }
.bento-item:nth-child(4) { animation-delay: 0.4s; }
.bento-item:nth-child(5) { animation-delay: 0.5s; }
.bento-item:nth-child(6) { animation-delay: 0.6s; }

.timeline-item {
  animation: fadeInUp 0.6s ease forwards;
  opacity: 0;
}

.timeline-item:nth-child(1) { animation-delay: 0.1s; }
.timeline-item:nth-child(2) { animation-delay: 0.2s; }
.timeline-item:nth-child(3) { animation-delay: 0.3s; }
.timeline-item:nth-child(4) { animation-delay: 0.4s; }

.gallery-item {
  animation: scaleIn 0.6s ease forwards;
  opacity: 0;
}

.gallery-item:nth-child(1) { animation-delay: 0.1s; }
.gallery-item:nth-child(2) { animation-delay: 0.2s; }
.gallery-item:nth-child(3) { animation-delay: 0.3s; }
.gallery-item:nth-child(4) { animation-delay: 0.4s; }
.gallery-item:nth-child(5) { animation-delay: 0.5s; }
.gallery-item:nth-child(6) { animation-delay: 0.6s; }
.gallery-item:nth-child(7) { animation-delay: 0.7s; }
.gallery-item:nth-child(8) { animation-delay: 0.8s; }

.contact-cta {
  animation: fadeInUp 0.6s ease forwards;
  opacity: 0;
}

.contact-card {
  animation: fadeInUp 0.6s ease 0.2s forwards;
  opacity: 0;
}

@media (max-width: 1024px){
  .navbar{
    transform:none;
    left:12px;
    right:12px;
    width:auto;
    overflow:visible;
    z-index:1100
  }
  .navbar.menu-open{
    background:var(--white);
    backdrop-filter:none;
    -webkit-backdrop-filter:none
  }
  .menu-toggle{
    display:inline-flex;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    position:relative;
    z-index:1101
  }
  .navbar .nav-content{
    position:relative;
    z-index:1102
  }
  .nav-menu{
    display:none;
    position:fixed;
    top:72px;
    left:12px;
    right:12px;
    width:auto;
    flex-direction:column;
    padding:10px;
    gap:2px;
    border-radius:16px;
    border:1px solid var(--border-light);
    background:var(--white);
    box-shadow:var(--shadow);
    z-index:1100;
    max-height:calc(100dvh - 90px);
    overflow-y:auto;
    overflow-x:hidden;
    list-style:none
  }
  .nav-menu.active{
    display:flex
  }
  .nav-overlay{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.55);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity 0.3s ease,visibility 0.3s ease;
    z-index:1090
  }
  .nav-overlay.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto
  }
  .nav-link{
    display:block;
    width:100%;
    text-align:left;
    white-space:normal;
    color:var(--text-muted-dark)
  }
  .hero-split{
    grid-template-columns:1fr;
    gap:40px;
    text-align:center
  }
  .hero-content{
    padding-left:0
  }
  .hero-logo-tile{
    padding:24px 28px
  }
  .hero-actions{
    justify-content:center
  }
  .hero-visual{
    order:-1
  }
  .bento-grid{
    grid-template-columns:repeat(2,1fr)
  }
  .bento-large{
    grid-column:span 2
  }
  .contact-grid{
    grid-template-columns:1fr
  }
}

@media (max-width: 768px){
  .container{
    padding:0 16px;
    width:100%;
    max-width:100%;
    overflow-x:hidden
  }
  .navbar{
    position:fixed;
    top:8px;
    left:8px;
    right:8px;
    width:auto;
    max-width:none;
    transform:none;
    margin:0;
    padding:8px 10px;
    z-index:1100;
    box-sizing:border-box;
    gap:0
  }
  .navbar .nav-content{
    padding:0;
    width:100%;
    max-width:100%;
    min-width:0;
    gap:8px;
    position:relative;
    z-index:1102
  }
  .brand{
    flex:1;
    min-width:0;
    overflow:hidden
  }
  .logo{
    height:32px;
    max-height:32px;
    flex-shrink:0
  }
  .brand-name{
    font-size:0.82rem;
    min-width:0;
    display:block
  }
  .nav-overlay{
    z-index:1090
  }
  .nav-menu{
    top:60px;
    left:8px;
    right:8px;
    z-index:1100
  }
  .nav-menu li{
    width:100%
  }
  .nav-link{
    display:block;
    width:100%;
    padding:10px 14px;
    text-align:left;
    font-size:0.95rem;
    border-radius:8px;
    border-left:3px solid transparent;
    color:var(--text-muted-dark)
  }
  .nav-link.active{
    background:rgba(37,99,235,0.1);
    color:var(--blue);
    font-weight:600;
    border-left-color:var(--blue);
    box-shadow:none
  }
  .menu-toggle{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border:1px solid var(--border-light);
    border-radius:10px;
    background:var(--light-gray);
    z-index:1101;
    flex-shrink:0;
    -webkit-tap-highlight-color:transparent
  }
  .menu-toggle-label{
    display:inline;
    font-size:0.8rem
  }
  .menu-toggle-bars{
    width:18px;
    height:14px
  }
  .menu-toggle-bars span{
    background:var(--text-dark)
  }
  .menu-toggle.active{
    background:var(--blue);
    border-color:var(--blue)
  }
  .menu-toggle.active .menu-toggle-label{
    color:var(--white)
  }
  .menu-toggle.active .menu-toggle-bars span{
    background:var(--white)
  }
  .menu-toggle.active .menu-toggle-bars span:nth-child(1){
    transform:translateY(6px) rotate(45deg)
  }
  .menu-toggle.active .menu-toggle-bars span:nth-child(2){
    opacity:0
  }
  .menu-toggle.active .menu-toggle-bars span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg)
  }
  .hero-title{
    font-size:2.5rem;
    overflow-wrap:break-word;
    word-break:break-word
  }
  .section-title{
    overflow-wrap:break-word;
    word-break:break-word
  }
  .bento-grid{
    grid-template-columns:1fr
  }
  .bento-large{
    grid-column:span 1
  }
  .slider-scroll,.gallery-scroll{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain
  }
  .timeline-track,.gallery-track{
    min-width:0;
    width:max-content;
    max-width:none;
    gap:12px;
    padding:0
  }
  .timeline-item{
    flex:0 0 auto;
    width:min(280px,calc(100% - 8px));
    min-width:0;
    max-width:min(280px,calc(100% - 8px))
  }
  .gallery-item{
    flex:0 0 auto;
    width:min(280px,calc(100% - 8px));
    max-width:min(280px,calc(100% - 8px))
  }
  .timeline-content{
    margin-left:20px;
    padding:16px;
    max-width:100%;
    box-sizing:border-box;
    overflow:hidden
  }
  .timeline-content p{
    overflow-wrap:break-word;
    word-break:break-word
  }
  .horizontal-slider,.gallery-slider{
    overflow:hidden;
    width:100%;
    max-width:100%;
    margin-top:32px;
    margin-bottom:112px;
    padding:0 0 24px
  }
  .slider-scrollbar{
    max-width:100%;
    margin-top:20px;
    padding:12px 4px
  }
  .slider-scrollbar-track{
    height:10px
  }
  .slider-scrollbar-thumb{
    min-width:56px
  }
  #experience.section,
  #projects.section{
    padding-bottom:140px;
    margin-bottom:16px
  }
  .section-header{
    margin-bottom:40px
  }
  .pre-contact-bar{
    padding:22px 16px
  }
  .hero-subtitle{
    font-size:1rem
  }
  .hero-subtitle-emphasis{
    font-size:1.15rem
  }
  .footer-content{
    flex-direction:column;
    text-align:center
  }
  .footer-links a{
    margin:0 12px
  }
  html{
    scroll-padding-top:100px
  }
}

@media (max-width: 480px){
  .container{
    padding:0 12px
  }
  .navbar{
    left:6px;
    right:6px
  }
  .nav-menu{
    left:6px;
    right:6px
  }
  .menu-toggle-label{
    display:none
  }
  .menu-toggle{
    padding:8px
  }
  .timeline-item,.gallery-item{
    width:min(260px,calc(100% - 8px));
    max-width:min(260px,calc(100% - 8px))
  }
  .hero-title{
    font-size:2rem
  }
  .btn{
    padding:12px 20px;
    font-size:0.9rem
  }
  .section-title{
    font-size:2rem
  }
}
