/* ═══════════════════════════════════════════
   Noah Schiltknecht — Portfolio Site v2
   Design: dark theatrical, magenta bloom,
   organic flow, contemporary circus aesthetic
   ═══════════════════════════════════════════ */

/* ── Custom Properties ── */
:root {
  --bg: #08060e;
  --bg-alt: #0f0c18;
  --bg-card: rgba(255,255,255,0.025);
  --text: #e8e0d8;
  --text-dim: #a09890;
  --bloom: #c040e0;
  --bloom-light: #e080e0;
  --bloom-glow: rgba(192,64,224,0.35);
  --bloom-subtle: rgba(192,64,224,0.08);
  --amber: #c09060;
  --border: rgba(255,255,255,0.06);
  --border-accent: rgba(192,64,224,0.2);
  --nav-height: 64px;
  --max-w: 1100px;
}

/* ── Reset & Base ── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg); color:var(--text);
  line-height:1.6; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:var(--bloom-light); text-decoration:none; transition:color .2s; }
a:hover { color:var(--text); }
.container { max-width:var(--max-w); margin:0 auto; padding:0 24px; }
.section { padding:100px 24px; }
.section-title {
  font-family:'Space Grotesk',-apple-system,sans-serif;
  font-size:clamp(32px,5vw,48px); font-weight:600;
  letter-spacing:-0.03em; line-height:1.15; margin-bottom:12px;
}
.section-intro { color:var(--text-dim); font-size:17px; max-width:640px; margin-bottom:48px; }
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--bloom); color:#fff; border:none;
  padding:14px 28px; border-radius:6px;
  font-size:15px; font-weight:600; cursor:pointer;
  letter-spacing:.02em; transition:background .2s;
}
.btn-primary:hover { background:#a030c0; color:#fff; }
.btn-secondary {
  display:inline-flex; align-items:center; gap:8px;
  color:var(--bloom-light); border:1px solid var(--border-accent);
  padding:12px 24px; border-radius:6px;
  font-size:14px; font-weight:500; transition:all .2s;
}
.btn-secondary:hover { background:var(--bloom-subtle); color:var(--bloom-light); }

/* ── Hero ── */
.hero {
  position:relative; height:100vh; height:100dvh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:#000;
  isolation:isolate;
}
.hero-content {
  position:absolute; bottom:80px; left:0; right:0;
  z-index:5; text-align:center;
}
.hero-name {
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(20px,4vw,36px); font-weight:500;
  letter-spacing:-0.02em; line-height:1;
  color:var(--text);
  text-shadow:0 0 40px var(--bloom-glow), 0 0 80px rgba(192,64,224,0.15);
  margin-bottom:8px;
}
.hero-tagline {
  font-size:clamp(11px,1.8vw,14px); color:var(--text-dim);
  letter-spacing:.08em; text-transform:uppercase;
}
.hero-scroll-hint {
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  z-index:6; text-align:center;
  color:var(--text-dim); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; animation:float 2.5s ease-in-out infinite;
}
.scroll-line {
  width:1px; height:24px; background:linear-gradient(to bottom, var(--bloom-light), transparent);
  margin:6px auto 0;
}
@keyframes float {
  0%,100% { opacity:.4; transform:translateX(-50%) translateY(0); }
  50% { opacity:1; transform:translateX(-50%) translateY(-4px); }
}

/* ── Navbar ── */
.navbar {
  position:sticky; top:0; z-index:100;
  background:rgba(8,6,14,.88); backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border-accent);
  height:var(--nav-height); display:flex; align-items:center;
  padding:0 24px; transition:transform .3s;
}
.navbar.hidden { transform:translateY(-100%); }
.nav-logo { display:flex; align-items:center; }
.nav-logo-icon {
  height:28px; width:auto;
  filter:brightness(0) invert(1) drop-shadow(0 0 8px rgba(192,64,224,0.3));
}
.nav-links {
  display:flex; gap:20px; list-style:none;
  margin-left:auto; margin-right:24px; align-items:center;
}
.nav-links a { color:var(--text-dim); font-size:14px; letter-spacing:.02em; }
.nav-links a:hover { color:var(--bloom-light); }
.nav-toggle { display:none; }
.nav-lang { display:flex; gap:2px; }
.lang-btn {
  background:none; border:1px solid rgba(232,224,216,.15);
  color:var(--text-dim); padding:4px 8px; font-size:11px;
  letter-spacing:.04em; cursor:pointer; border-radius:4px;
  transition:all .2s; font-family:inherit;
}
.lang-btn.active { border-color:var(--bloom); color:var(--bloom-light); }
.lang-btn:hover:not(.active) { border-color:var(--text-dim); }

/* ── Two Paths ── */
.paths { display:grid; grid-template-columns:1fr 1fr; min-height:50vh; }
.path-card {
  position:relative; overflow:hidden; display:flex;
  align-items:flex-end; padding:48px; min-height:50vh;
  text-decoration:none; color:var(--text);
}
.path-bg {
  position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform .6s ease;
}
.path-card:hover .path-bg { transform:scale(1.05); }
.path-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(8,6,14,.92) 0%, rgba(8,6,14,.3) 50%, rgba(8,6,14,.2) 100%);
}
.path-content { position:relative; z-index:2; }
.path-content h2 {
  font-family:'Space Grotesk',sans-serif; font-size:clamp(24px,3vw,36px);
  font-weight:600; margin-bottom:8px;
}
.path-content p { color:var(--text-dim); font-size:15px; }
.path-arrow {
  position:absolute; bottom:48px; right:48px; z-index:2;
  font-size:28px; color:var(--bloom-light);
  transition:transform .3s;
}
.path-card:hover .path-arrow { transform:translateX(6px); }

/* ── About ── */
.about { background:var(--bg-alt); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.about-text p { color:var(--text-dim); font-size:16px; line-height:1.75; }
.about-text p + p { margin-top:16px; }
.about-image img { border-radius:6px; filter:saturate(.85) brightness(.95); width:100%; aspect-ratio:3/4; object-fit:cover; }
.about-languages { margin-top:32px; padding-top:20px; border-top:1px solid var(--border); font-size:14px; color:var(--text-dim); }
.about-languages span { color:var(--text); }

/* ── Project Cards ── */
.project-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; }
.project-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:8px; overflow:hidden;
  transition:border-color .3s, transform .3s;
  display:block; text-decoration:none; color:inherit;
}
.project-card:hover { border-color:var(--border-accent); transform:translateY(-2px); }
.project-card.project-featured { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
.project-image { aspect-ratio:16/10; overflow:hidden; background:#000; }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.project-card:hover .project-image img { transform:scale(1.03); }
.project-body { padding:24px; }
.project-featured .project-body { padding:32px; display:flex; flex-direction:column; justify-content:center; }
.project-tag {
  display:inline-block; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bloom-light); border:1px solid var(--border-accent);
  padding:3px 12px; border-radius:100px; margin-bottom:12px;
}
.project-body h3 {
  font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:600; margin-bottom:8px;
}
.project-featured .project-body h3 { font-size:28px; }
.project-body p { font-size:14px; color:var(--text-dim); line-height:1.6; }
.project-link { display:inline-block; margin-top:12px; font-size:14px; font-weight:500; }
.project-link-card:hover .project-link { color:var(--bloom-light); }

/* ── Amble Fusion Detail ── */
.amble-fusion { background:var(--bg-alt); }
.af-header { text-align:center; margin-bottom:48px; }
.af-logo-glow {
  display:inline-block; padding:20px; margin-bottom:16px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(192,64,224,0.12) 0%, transparent 70%);
}
.af-logo {
  height:80px; width:auto;
  filter:drop-shadow(0 0 12px rgba(192,64,224,0.4));
  opacity:0.9;
}
.af-content { display:grid; grid-template-columns:1fr 320px; gap:48px; }
.af-text p { color:var(--text-dim); font-size:15px; line-height:1.7; }
.af-text p + p { margin-top:16px; }
.af-credits { background:var(--bg-card); border:1px solid var(--border); border-radius:8px; padding:24px; }
.af-credits h4 { font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--bloom-light); margin-bottom:12px; }
.af-credits h4 + h4 { margin-top:20px; }
.af-credits ul { list-style:none; font-size:14px; color:var(--text-dim); }
.af-credits li { padding:3px 0; }
.af-gallery { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:32px; }
.af-gallery-item { border-radius:6px; overflow:hidden; }
.af-gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.af-gallery-tall img { aspect-ratio:3/4; object-position:center top; }

/* ── Teaching ── */
.teach-featured {
  background:var(--bg-card); border:1px solid var(--border-accent);
  border-radius:8px; padding:32px; margin-bottom:32px;
}
.teach-featured-header { text-align:center; margin-bottom:20px; }
.teach-featured-logo { height:48px; width:auto; margin:0 auto; }
.teach-featured-body h3 { font-family:'Space Grotesk',sans-serif; font-size:24px; margin-bottom:4px; }
.teach-role { font-size:12px; letter-spacing:.06em; color:var(--bloom-light); text-transform:uppercase; display:block; margin-bottom:12px; }
.teach-featured-body p { font-size:15px; color:var(--text-dim); line-height:1.7; margin-bottom:12px; }
.teach-featured-photos {
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px;
}
.teach-featured-photos img {
  width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px;
}
.teach-list { margin-bottom:32px; }
.teach-list h4 { font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--bloom-light); margin-bottom:12px; }
.teach-list ul { list-style:none; font-size:14px; color:var(--text-dim); }
.teach-list li { padding:4px 0; }
.teach-list a { color:var(--bloom-light); }
.teach-credentials { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:32px; }
.credential { padding:20px; border-left:2px solid var(--bloom); }
.credential h4 { font-size:15px; margin-bottom:4px; }
.credential p { font-size:13px; color:var(--text-dim); }
.teach-cta { text-align:center; }
.teach-private { font-size:13px; color:var(--text-dim); margin-top:12px; }

/* ── Videos ── */
.video-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; }
.video-card { border-radius:8px; overflow:hidden; transition:transform .3s; }
.video-card:hover { transform:translateY(-3px); }
.video-card.video-featured { grid-column:1/-1; }
.video-embed {
  position:relative; aspect-ratio:16/9; background:#000;
  cursor:pointer; overflow:hidden; border-radius:6px;
}
.video-embed img { width:100%; height:100%; object-fit:cover; transition:transform .4s, opacity .4s; }
.video-embed:hover img { transform:scale(1.03); opacity:.8; }
.video-play {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:48px; color:#fff; opacity:.85;
  background:rgba(0,0,0,.25); transition:background .3s;
}
.video-embed:hover .video-play { background:rgba(0,0,0,.4); }
.video-card h3 { font-size:14px; font-weight:500; margin-top:10px; padding:0 4px; color:var(--text-dim); }

/* ── Shows / What's Next ── */
.shows { background:var(--bg-alt); }
.shows-list { margin-bottom:24px; }
.show-item { display:grid; grid-template-columns:100px 1fr; gap:24px; padding:20px 0; border-bottom:1px solid var(--border); align-items:center; }
.show-date { text-align:center; }
.show-month { display:block; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--bloom-light); }
.show-day { display:block; font-size:32px; font-weight:700; font-family:'Space Grotesk',sans-serif; line-height:1; }
.show-details h3 { font-size:18px; margin-bottom:2px; }
.show-details p { font-size:14px; color:var(--text-dim); }
.shows-note { text-align:center; margin-top:24px; }

/* ── Contact ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.contact-info h3 { font-size:18px; margin-bottom:16px; }
.contact-email { display:block; font-size:20px; font-weight:500; margin-bottom:8px; }
.contact-phone { display:block; font-size:16px; color:var(--text-dim); margin-bottom:16px; }
.contact-social { display:flex; gap:16px; margin-bottom:20px; }
.contact-social a { font-size:14px; color:var(--text-dim); }
.contact-based { font-size:13px; color:var(--text-dim); margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.contact-form { display:flex; flex-direction:column; gap:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form input, .contact-form textarea, .contact-form select {
  background:rgba(255,255,255,.04); border:1px solid var(--border);
  color:var(--text); padding:14px 16px; border-radius:6px;
  font-size:15px; font-family:inherit; transition:border-color .2s;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus {
  outline:none; border-color:var(--bloom);
}
.contact-form textarea { min-height:120px; resize:vertical; }
.contact-form select { appearance:none; cursor:pointer; }
.contact-form select option { background:var(--bg); color:var(--text); }
.form-status { font-size:14px; min-height:20px; }
.form-status.success { color:#4ade80; }
.form-status.error { color:#f87171; }

/* ── Footer ── */
.footer { padding:48px 24px; border-top:1px solid var(--border); }
.footer-content { text-align:center; }
.footer-logo { margin-bottom:16px; }
.footer-logo img { height:32px; margin:0 auto; filter:brightness(0) invert(1) opacity(0.7); }
.footer-links { display:flex; gap:24px; justify-content:center; margin-bottom:16px; }
.footer-links a { font-size:13px; color:var(--text-dim); }
.footer-copy { font-size:12px; color:var(--text-dim); }

/* ── Video Modal ── */
.video-modal { display:none; position:fixed; inset:0; z-index:200; align-items:center; justify-content:center; }
.video-modal.open { display:flex; }
.video-modal-bg { position:absolute; inset:0; background:rgba(0,0,0,.85); }
.video-modal-content { position:relative; z-index:1; width:90vw; max-width:960px; aspect-ratio:16/9; }
.video-modal-close {
  position:absolute; top:-40px; right:0; background:none; border:none;
  color:var(--text); font-size:32px; cursor:pointer; line-height:1;
}
#videoModalFrame { width:100%; height:100%; }
#videoModalFrame iframe { width:100%; height:100%; border:none; border-radius:6px; }

/* ── Scroll Animations ── */
.fade-up { opacity:0; transform:translateY(24px); transition:opacity .7s, transform .7s; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ── Mobile ── */
@media (max-width:768px) {
  .section { padding:64px 20px; }
  .about-grid, .contact-grid, .af-content { grid-template-columns:1fr; }
  .project-card.project-featured { grid-template-columns:1fr; }
  .paths { grid-template-columns:1fr; }
  .path-card { min-height:300px; padding:32px; }
  .nav-links { display:none; position:absolute; top:var(--nav-height); left:0; right:0;
    background:rgba(8,6,14,.95); flex-direction:column; padding:20px; gap:16px;
    border-bottom:1px solid var(--border-accent); backdrop-filter:blur(16px);
  }
  .nav-links.open { display:flex; }
  .nav-toggle { display:flex; flex-direction:column; gap:5px; margin-left:auto; margin-right:16px; background:none; border:none; cursor:pointer; padding:4px; }
  .nav-toggle span { display:block; width:22px; height:2px; background:var(--text); transition:transform .3s, opacity .3s; }
  .nav-toggle.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
  .nav-toggle.open span:nth-child(2) { opacity:0; }
  .nav-toggle.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }
  .form-row { grid-template-columns:1fr; }
  .show-item { grid-template-columns:1fr; gap:8px; }
  .show-date { text-align:left; display:flex; gap:8px; align-items:baseline; }
  .show-day { font-size:24px; }
  .video-grid { grid-template-columns:1fr; }
  .af-gallery { grid-template-columns:1fr; }
  .teach-credentials { grid-template-columns:1fr; }
  /* Amble Fusion gallery: swipeable on mobile */
  .af-gallery {
    grid-template-columns:1fr;
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
    gap:12px; padding-bottom:8px;
    -webkit-overflow-scrolling:touch;
  }
  .af-gallery-item { scroll-snap-align:center; min-width:85%; }
  .af-gallery-tall img { aspect-ratio:3/4; object-position:center 30%; }
  /* Amble Fusion content: stack on mobile */
  .af-content { grid-template-columns:1fr; }
  /* Zirkusa photos: stay side by side on mobile */
  .teach-featured-photos { grid-template-columns:1fr 1fr; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .fade-up { transition:none; opacity:1; transform:none; }
  .hero-scroll-hint { animation:none; }
  .path-bg, .project-image img { transition:none; }
}
