:root{
  --bg:#ffffff;
  --fg:#0b0b0b;
  --muted:#666666;
  --accent:#6090ea;
  --highlight: #ff0000;
  --max-width:1100px;
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--fg);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
.container{width:calc(100% - 40px);max-width:var(--max-width);margin:0 auto}
.site-header{border-bottom:1px solid #eee}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.brand{font-weight:700;font-size:1.1rem}
/* Ensure navbar logo fits the header without increasing its height */
.brand img{height:50px;width:auto;display:block}
.main-nav a{color:var(--fg);text-decoration:none;margin-left:20px;font-weight:600}
.main-nav .cta{border:1px solid var(--fg);padding:8px 12px;border-radius:4px}

/* Sticky header + responsive nav */
.site-header{position:relative;transition:box-shadow .18s,background .18s}
.site-header.is-sticky{position:fixed;top:0;left:0;right:0;background:rgba(255,255,255,0.98);box-shadow:0 6px 24px rgba(0,0,0,0.12);z-index:1100}
.nav-toggle{display:none;border:0;background:transparent;font-size:20px;cursor:pointer;padding:8px;border-radius:6px}

@media(max-width:774px){
  .nav-toggle{display:inline-flex}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:12px;border-top:1px solid #eee;box-shadow:0 6px 20px rgba(0,0,0,0.06);z-index:1150}
  .site-header.nav-open .main-nav{display:block}
  .main-nav a{display:block;margin:8px 0}
}

.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

.hero{padding:36px 0}
.hero-inner{position:relative;display:flex;flex-direction:column;gap:20px;align-items:center}
.hero-media{width:100%}
.hero-media img{width:100%;height:auto;display:block;border-radius:6px}
.hero-copy{position:relative;padding:12px;width:100%;max-width:100%;box-sizing:border-box}
.eyebrow{color:var(--muted);font-weight:600}
.eyebrow span{font-weight:700;color:var(--fg)}
.hero-copy h1{font-size:clamp(28px,6vw,44px);margin:6px 0}
/* Tighten H2 character spacing (adjusted) */
h2{letter-spacing:-0.05em}
.lead{color:var(--muted);max-width:60ch}
.btn{display:inline-block;background:transparent;color:var(--fg);padding:8px 12px;border:1px solid var(--fg);border-radius:6px;text-decoration:none}
.btn.primary{background:var(--fg);color:var(--bg);border-color:transparent}

/* Overlay behavior on wide screens */
@media(min-width:775px){
  .hero-inner{display:block}
  .hero-media img{width:100%;height:auto}
  /* slightly wider, anchored to bottom: reduce subtraction to -50px (~40px wider than original) and make height approx half; reduce vertical padding */
  .hero-copy{position:absolute;right:6%;left:auto;bottom:6%;top:auto;transform:none;max-width:calc(44% - 50px);max-height:50%;overflow:auto;background:rgba(255,255,255,0.92);padding:10px 20px;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,0.06)}
  .logo-hero img{width:100%;max-width:420px;height:auto;display:block}
}

/* Praise callouts */
.praise{padding:48px 0;background:#fff; margin-top: 25px}
.praise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.praise-item{background:url('../images/paper.png') center/100% 100% no-repeat;padding:32px;border-radius:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transition:all 0.3s ease;position:relative;min-height:200px}
.praise-item blockquote{margin:0 0 16px 0;padding:0 2em;font-size:1.5rem;font-weight:400;line-height:1.6;color:var(--fg);letter-spacing:0.05em;font-family:'Courier New','Courier',monospace}
.praise-item .attribution{margin:-1em 0 0 0;font-size:0.85rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em}

@media(max-width:599px){
  .praise-grid{grid-template-columns:1fr}
}

/* Overview */
.overview{padding:32px 0}
.overview-grid{display:grid;grid-template-columns:1fr;gap:18px;align-items:center}
.overview img{width:100%;height:auto;border-radius:6px}

/* Featured logos */
.featured .logos{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:18px;
  align-items:center;
  width:100%;
}
.featured .logos img{height:60px;max-width:100%;width:auto;justify-self:center;filter:grayscale(100%);opacity:0.9}

/* Sketches */
.sketches{padding:28px 0}
.featured-video .video-wrap{position:relative;padding-top:56.25%;margin-bottom:12px}
.featured-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-grid{display:grid;grid-template-columns:repeat(1,minmax(240px,1fr));gap:14px;margin-top:18px;justify-items:center}
.video-card{display:flex;flex-direction:column;align-items:stretch}
.video-card iframe, .video-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;display:block}
.video-card h3{text-align:left}

/* Medium screens: two-up layout between 600px and 774px */
@media (min-width:600px) and (max-width:774px){
  .video-grid{grid-template-columns:repeat(2,minmax(240px,1fr));justify-items:center}
}

/* apply same tighter letter-spacing to h3s in videos */
.video-card h3, .featured-video h3 { letter-spacing: -0.03em; margin:8px 0 2px; color:var(--muted)}

/* featured video caption: keep tight spacing, italic, slight negative letter-spacing */
.featured-video .caption{margin-top:6px;margin-bottom:0;line-height:1.1;font-style:italic;letter-spacing:-0.05em}

/* Team */
.team{padding:28px 0}
.team-grid{display:grid;grid-template-columns:1fr;gap:18px}
/* At medium widths, show two columns for the team cards */
@media (min-width:600px){
  .team-grid{grid-template-columns:repeat(2,1fr)}
}
.member img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px}
.member h3{margin:10px 0 4px}
.role{color:var(--muted);font-weight:600}

/* Flip card styles for team members */
/* Card container shadow and spacing (kept) */
.member.card{box-shadow:0 10px 30px rgba(0,0,0,0.08);border-radius:8px;overflow:hidden}
.member .meta{padding:12px;position:relative}
.member h3{margin-top:0}
.member .role{margin-top:2px; margin-bottom:24px}

/* Hide inline bio content on the page; bios appear only in modal */
.member .bio{display:none}
.member .website-link{display:none}

/* (Removed .card-back rules — markup simplified) */

/* Social link and modal-open button (triggers bio modal) */
.social-link{display:inline-block;margin-top:8px;color:var(--accent);text-decoration:none;font-weight:600;font-size:small}
.website-link{display:inline-block;margin-top:8px;margin-left:12px;color:var(--highlight);text-decoration:none;font-weight:600;font-size:small}
.flip-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;position:absolute;bottom:12px;right:12px;border:0;background:rgba(0,0,0,0.1);cursor:pointer;border-radius:50%;padding:0}
.flip-toggle img{width:20px;height:20px;display:block}
.flip-toggle:focus{outline:2px solid #ddd;outline-offset:2px}
.flip-toggle:hover{background:rgba(0, 0, 220, 0.3)}

@media(min-width:775px){
  .team-grid{grid-template-columns:repeat(4,1fr)}
}

/* Team modal / sheet styles */
.team-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:1200;opacity:0;pointer-events:none;transition:opacity .2s}
.team-modal-backdrop.is-open{opacity:1;pointer-events:auto}
.team-modal{background:#fff;width:min(920px,92vw);max-height:92vh;border-radius:10px;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,0.25);transform:translateY(0);}
.team-modal .modal-inner{display:flex;gap:20px;padding:20px}
.team-modal .modal-media{flex:0 0 280px}
.team-modal .modal-media img{width:100%;height:auto;border-radius:8px;display:block}
.team-modal .modal-media .thumb-strip{margin-top:12px;display:flex;gap:8px;overflow:auto}
.team-modal .modal-body{flex:1;display:flex;flex-direction:column}
.team-modal .modal-body h3{margin-top:0}
.team-modal .modal-body .role{margin-top:6px}
.team-modal .modal-body .bio{margin-top:12px;line-height:1.45}
.team-modal .modal-controls{display:flex;gap:8px;align-items:center;margin-top:12px}
.team-modal .control-btn{background:transparent;border:1px solid #eee;padding:8px 12px;border-radius:6px;cursor:pointer}

/* Close button top-right */
.team-modal .modal-close{position:absolute;right:12px;top:12px;border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;padding:8px;border-radius:6px}
.team-modal{position:relative}

/* Thumbnail strip inside modal for quick selection */
.team-modal .thumb-strip{display:flex;gap:8px;margin-top:12px;padding-bottom:8px;overflow:auto}
.team-modal .thumb-strip button{border:0;background:transparent;padding:0;border-radius:6px;cursor:pointer}
.team-modal .thumb-strip img{width:72px;height:72px;object-fit:cover;display:block;border-radius:6px;border:2px solid transparent}
.team-modal .thumb-strip button[aria-current="true"] img{border-color:var(--accent)}

/* Mobile: present as bottom sheet */
@media(max-width:640px){
  .team-modal{width:100%;height:85vh;max-height:85vh;border-radius:12px 12px 0 0;margin:0 0 0 0}
  .team-modal-backdrop{align-items:flex-end}
  .team-modal .modal-inner{padding:16px;flex-direction:column}
  .team-modal .modal-media{flex:0 0 auto;width:100%}
}

/* Prevent body scroll when modal open */
.modal-open{overflow:hidden;height:100%}

/* Gallery */
.gallery{padding:28px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-auto-rows:8px;gap:10px}
.gallery-item{position:relative;overflow:hidden;border-radius:8px;background:#f6f6f6}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-item .caption{position:absolute;left:8px;right:8px;bottom:8px;background:rgba(0,0,0,0.45);color:#fff;padding:6px 8px;border-radius:6px;font-size:0.9rem}

/* Gallery modal */
.gallery-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;z-index:1300;opacity:0;pointer-events:none;transition:opacity .18s}
.gallery-modal-backdrop.is-open{opacity:1;pointer-events:auto}
.gallery-modal{background:#111;color:#fff;width:min(1000px,94vw);max-height:92vh;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.gallery-modal .gallery-media{flex:1;display:flex;align-items:center;justify-content:center;background:#000}
.gallery-modal img{max-width:100%;max-height:80vh;display:block}
.gallery-modal .gallery-controls{display:flex;flex-direction:column;gap:12px;padding:12px;background:rgba(0,0,0,0.6)}
.gallery-modal .thumbs-container{display:flex;align-items:center;gap:8px}
.gallery-modal .thumbs-scroll-btn{background:transparent;border:1px solid rgba(255,255,255,0.12);color:#fff;padding:6px 10px;border-radius:6px;cursor:pointer;flex-shrink:0;font-size:14px}
.gallery-modal .thumbs-scroll-btn:hover{background:rgba(255,255,255,0.1)}
.gallery-modal .thumbs{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;flex:1;scroll-behavior:smooth}
.gallery-modal .thumbs::-webkit-scrollbar{height:4px}
.gallery-modal .thumbs::-webkit-scrollbar-track{background:rgba(255,255,255,0.05)}
.gallery-modal .thumbs::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:2px}
.gallery-modal .thumbs button{background:transparent;border:none;padding:0;cursor:pointer;flex-shrink:0}
.gallery-modal .thumbs img{width:64px;height:64px;object-fit:cover;border-radius:6px;border:2px solid transparent}
.gallery-modal .thumbs button[aria-current="true"] img{border-color:var(--accent)}
.gallery-modal .actions{display:flex;gap:8px;justify-content:space-between}
.gallery-modal .control-btn{background:transparent;border:1px solid rgba(255,255,255,0.12);color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;flex:1}

@media(max-width:640px){
  .gallery-modal{width:100%;height:92vh;border-radius:10px}
  .gallery-modal img{max-height:60vh}
}

/* Shows */
.shows{padding:28px 0}
.shows-grid{display:grid;grid-template-columns:1fr;gap:12px}
.show-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #eee;border-radius:8px;margin-bottom: 15px}
.show-date{min-width:84px;text-align:center;background:#fafafa;padding:8px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,0.08)}
.show-date .month{display:block;font-size:0.85rem;font-weight:600;text-transform:uppercase;color:var(--highlight)}
.show-date .weekday{display:block;font-size:0.75rem;font-weight:600;color:var(--muted)}
.show-date .date{display:block;font-size:1.8rem;font-weight:700;line-height:1}
.show-info{margin:auto 20px;}
.show-info p {margin:4px 0 6px 0;}

/* Contact */
.contact{padding:28px 0}
.socials{display:flex;align-items:center;gap:12px}
.socials img{height:42px;width:auto}
.socials .cta{margin-left:auto}
/* Make contact Subscribe visually match the navbar CTA */
.socials .cta{display:inline-block;border:1px solid var(--fg);padding:8px 12px;border-radius:4px;text-decoration:none;color:var(--fg);font-weight:600}

.site-footer{border-top:1px solid #f0f0f0;padding:20px 0;color:var(--muted);font-size:0.95rem}

/* Responsive */
@media(min-width:775px){
  .hero-inner{flex-direction:row;align-items:center}
  .hero-copy{flex:1;padding-left:28px}
  .overview-grid{grid-template-columns:1fr 480px}
  .video-grid{grid-template-columns:repeat(3,1fr)}
  .team-grid{grid-template-columns:repeat(4,1fr)}
  .shows-grid{grid-template-columns:repeat(2,1fr)}
}

/* Ensure inline SVG logos are not clipped in header */
.site-header, .header-inner { overflow: visible; }
.brand{line-height:1}
.brand svg{display:block;overflow:visible;height:auto;width:auto;max-width:100%;vertical-align:middle;}
.brand svg image{overflow:visible}

/* On narrow screens (below 775px) make the hero copy match the hero-media width and add a subtle border */
@media (max-width:774px){
  .hero-copy{width:100%;max-width:100%;margin:0 auto;border:1px solid #eee;border-radius:8px;padding:12px;background:rgba(255,255,255,0.96)}
  /* On small screens, show only the first 3 video cards */
  .video-grid .video-card:nth-child(n+4){
    display:none;
  }
  /* On small screens, show only the first 6 gallery thumbnails (others remain in DOM for modal) */
  .gallery-grid .gallery-item:nth-child(n+7),
  #galleryGrid .gallery-item:nth-child(n+7) {
    display: none;
  }
  /* Featured logos: single column on small screens */
  .featured .logos{ grid-template-columns: 1fr; gap:12px }
}

/* Medium screens: hide video cards after the 4th (show first 4) */
@media (min-width:600px) and (max-width:774px){
  /* ensure the 4th card is visible (overrides the mobile rule that hid 4+) */
  .video-grid .video-card:nth-child(4){
    display:block;
  }
  /* hide 5th and later */
  .video-grid .video-card:nth-child(n+5){
    display:none;
  }
  /* Featured logos: two columns on medium screens */
  .featured .logos{ grid-template-columns: repeat(2,1fr); gap:16px }
}
