@font-face{
  font-family:"Oswald Stencil";
  src:url("fonts/Oswald-Stencil.otf") format("opentype");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap");
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0b0b0b;color:#eee;font-family:"Montserrat",Futura,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}.wrap{width:min(1420px,calc(100% - 64px));margin:auto}.hdr{position:fixed;z-index:9;inset:0 0 auto;height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1420px)/2));background:linear-gradient(#080808dd,transparent)}.logo{color:#c9875b;font-family:"Oswald Stencil","Oswald",sans-serif;font-weight:700;font-size:25px;line-height:.8;letter-spacing:.02em}nav{display:flex;gap:34px;text-transform:uppercase;font-size:12px;letter-spacing:.12em}#mb{display:none}.hero{min-height:100svh;background:url(images/hero.jpg) 88% 28%/cover no-repeat;position:relative;display:flex;align-items:center}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#000 0%,#000d 33%,#0005 62%,#0001)}.heroIn{position:relative;padding-top:80px}.eyebrow,.num,small{color:#c9875b;letter-spacing:.15em;font-size:11px}.hero h1,h2{font-family:"Oswald","Arial Narrow",Impact,sans-serif;font-weight:900;letter-spacing:.03em;line-height:.86}.hero h1{font-size:clamp(70px,9vw,150px);margin:.2em 0}.tag{font-size:clamp(20px,2vw,30px);font-style:italic}.actions{display:flex;gap:14px}.solid,.outline{display:inline-block;padding:14px 20px;border:1px solid #c9875b;font-size:12px;letter-spacing:.08em}.solid{background:#c9875b;color:#111}.sec{padding:100px 0}.dark{background:#0b0b0b}.light{background:#f0ece5;color:#171411}.two{display:grid;grid-template-columns:320px 1fr;gap:90px}.two h2,.contact h2,.head h2{font-size:clamp(56px,6vw,100px);margin:8px 0}.two i{display:block;width:70px;border-top:1px solid #c9875b}.copy{font-size:18px;max-width:900px}.head{display:grid;grid-template-columns:1fr 1fr;align-items:end;border-bottom:1px solid #c9875b66;margin-bottom:32px}.head p{opacity:.7}.sub{color:#c9875b;letter-spacing:.08em;font-size:18px}.releases{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.releases article{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.releases img,.ph{width:100%;aspect-ratio:1;object-fit:cover}.releases a{display:block;color:#7f4a2d;font-size:12px;text-transform:uppercase}.releases h4,.video h4,.projects h4,.linkedin h4{font-size:24px;margin:4px 0}.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#163c35,#7e372a);color:#f4e9db;font:700 38px/0.9 "Oswald","Arial Narrow",Impact,sans-serif;text-align:center}.ph span{font:11px Arial,sans-serif;margin-top:15px;letter-spacing:.12em}.video{display:grid;grid-template-columns:1.5fr .7fr;gap:36px;align-items:center;margin-top:70px;padding-top:30px;border-top:1px solid #0002}.embed{aspect-ratio:16/9}.embed iframe{width:100%;height:100%;border:0}.collabs{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid #0002}.collabs div{padding:20px;border-right:1px solid #0002}.collabs span{display:block;opacity:.6}.events>div{display:grid;grid-template-columns:100px 1fr 30px;align-items:center;padding:20px 0;border-bottom:1px solid #ffffff12}.events time{color:#c9875b;font:600 42px "Oswald","Arial Narrow",Impact}.events time small,.events span small{display:block}.events>div>a{color:#c9875b;font-size:24px}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.projects article{border:1px solid #ffffff22;padding:30px;min-height:270px}.projects strong{font:700 30px/1 "Oswald","Arial Narrow",Impact}.projects small{display:block;margin-top:38px}.projects p,.tech p,.linkedin p{color:#bbb}.tech{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;border-block:1px solid #ffffff12;margin-top:50px;padding:30px 0}.tags{display:flex;gap:10px;flex-wrap:wrap;align-content:center}.tags span{border:1px solid #ffffff25;padding:7px 10px;font-size:12px}.linkedin{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;border:1px solid #c9875b44;padding:25px 28px;margin-top:38px}.contact{padding:75px 0 25px;border-top:1px solid #ffffff12}.cgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:end}.contact h2{margin:8px 0}.email{color:#c9875b;font-size:clamp(24px,3vw,42px)}.social{display:flex;gap:24px;justify-content:flex-end;flex-wrap:wrap;border-top:1px solid #c9875b66;padding-top:20px}.social a{display:flex;gap:8px;align-items:center;font-size:13px}.social i{width:22px;height:22px;border:1px solid #c9875b;border-radius:50%;display:grid;place-items:center;color:#c9875b;font-style:normal;font-size:10px}footer{margin-top:40px;border-top:1px solid #ffffff12;padding-top:20px;display:flex;justify-content:space-between;color:#777;font-size:12px}
@media(max-width:1000px){.two,.head,.video,.tech,.cgrid{grid-template-columns:1fr}.releases,.projects{grid-template-columns:1fr}.releases article{grid-template-columns:260px 1fr}.collabs{grid-template-columns:1fr 1fr}.social{justify-content:flex-start}}
@media(max-width:720px){.wrap{width:calc(100% - 32px)}.hdr{height:70px;padding:0 16px}.hdr nav{display:none;position:absolute;top:70px;left:16px;right:16px;flex-direction:column;gap:0;background:#111;border:1px solid #333}.hdr nav.open{display:flex}.hdr nav a{padding:13px;border-bottom:1px solid #222}#mb{display:block;background:none;color:white;border:1px solid #555;padding:8px 10px}.hero{background-position:64% 18%}.shade{background:linear-gradient(90deg,#000f,#0009 75%,#0003)}.sec{padding:75px 0}.releases article{grid-template-columns:1fr}.collabs{grid-template-columns:1fr}.linkedin{grid-template-columns:1fr}footer{flex-direction:column;gap:8px}}
/* V6 — more breathing room between the two lines of the stacked logo */
.logo {
  line-height: 1.02 !important;
}
.logo br {
  content: "";
  display: block;
  margin-bottom: 0.12em;
}

/* V7 — hero title line spacing: compact, but no overlap */
.hero h1 {
  line-height: 0.94 !important;
  margin-top: 0.18em;
  margin-bottom: 0.22em;
}

/* V9 — hero rebuilt as a two-part composition instead of a cropped background */
.hero{
  background:#050505 !important;
  overflow:hidden;
}
.hero-photo{
  position:absolute;
  z-index:0;
  top:72px;
  right:max(24px,calc((100vw - 1420px)/2));
  bottom:0;
  width:min(54vw,820px);
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  overflow:hidden;
}
.hero-photo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:right bottom;
  display:block;
}
.hero .shade{
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,#050505 0%,#050505 34%,rgba(5,5,5,.92) 42%,rgba(5,5,5,.30) 61%,rgba(5,5,5,.04) 100%) !important;
}
.heroIn{
  z-index:2;
  position:relative;
}
@media (min-width:721px){
  .heroIn{
    padding-right:52%;
  }
}
@media (max-width:720px){
  .hero-photo{
    top:70px;
    right:-20%;
    bottom:0;
    width:100%;
    opacity:.72;
  }
  .hero-photo img{
    object-fit:cover;
    object-position:62% 20%;
  }
  .hero .shade{
    background:linear-gradient(90deg,#050505 0%,rgba(5,5,5,.88) 55%,rgba(5,5,5,.42) 100%) !important;
  }
  .heroIn{padding-right:0}
}

/* V10 — dedicated tablet hero layout */
@media (min-width: 721px) and (max-width: 1100px) {
  .hero {
    min-height: 100svh;
    align-items: center;
  }

  .hero-photo {
    top: 110px;
    right: 2.5vw;
    bottom: 26px;
    width: 53vw;
    max-width: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    overflow: visible;
  }

  .hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right center;
  }

  .hero .shade {
    background:
      linear-gradient(
        90deg,
        #050505 0%,
        #050505 39%,
        rgba(5,5,5,.96) 45%,
        rgba(5,5,5,.62) 56%,
        rgba(5,5,5,.18) 73%,
        rgba(5,5,5,.02) 100%
      ) !important;
  }

  .heroIn {
    padding-right: 50%;
    padding-top: 100px;
  }

  .hero h1 {
    font-size: clamp(64px, 9.5vw, 96px);
    line-height: .94 !important;
    max-width: 440px;
  }

  .eyebrow {
    font-size: 10px;
    letter-spacing: .16em;
  }

  .tag {
    font-size: clamp(18px, 2.3vw, 24px);
  }

  .actions {
    gap: 10px;
  }

  .solid,
  .outline {
    padding: 12px 16px;
    font-size: 11px;
  }
}

/* Slightly wider tablets / small laptops */
@media (min-width: 1101px) and (max-width: 1280px) {
  .hero-photo {
    top: 90px;
    right: 2vw;
    bottom: 18px;
    width: 50vw;
  }

  .hero-photo img {
    object-position: right center;
  }

  .heroIn {
    padding-right: 48%;
  }
}

/* V11 — language switch */
.lang{display:inline-flex;align-items:center;gap:7px;margin-left:10px;color:#8f8983}
.lang strong{color:#c9875b;font-weight:700}
.lang a{color:#ddd}
.lang a:hover{color:#c9875b}
@media(max-width:720px){
  .lang{padding:12px 16px;margin-left:0}
}
.collab-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.collab-card{border:1px solid #0002;background:#fff4}.collab-card img{width:100%;aspect-ratio:1;object-fit:cover}.collab-info{padding:15px}.collab-info h4{font-size:15px;line-height:1.3;margin:0 0 7px}.collab-info p{font-size:12px;opacity:.62;margin:0 0 10px}.mini-links{display:flex;flex-wrap:wrap;gap:7px 12px}.mini-links a{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7f4a2d}@media(max-width:1100px){.collab-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.collab-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.collab-cards{grid-template-columns:1fr}}


/* V14 — software portfolio hierarchy */
.featured-projects .app-project{position:relative;padding-top:26px}
.app-icon{width:82px;height:82px;border-radius:22%;object-fit:cover;box-shadow:0 8px 22px #0005}
.app-icon-link{display:inline-block;margin-bottom:18px}
.app-project small{margin-top:0!important}
.compact-tags{margin:18px 0 14px;gap:7px}
.compact-tags span{padding:5px 8px;font-size:10px}
.appstore-link{display:inline-block;margin-top:10px;color:#c9875b;font-size:11px;text-transform:uppercase;letter-spacing:.09em}
.experience-title,.own-title{margin-top:48px}
.bank-projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bank-project{display:grid;grid-template-columns:64px 1fr 24px;gap:18px;align-items:center;border:1px solid #ffffff20;padding:18px;background:#ffffff05}
.mini-app-icon{width:64px;height:64px;border-radius:22%;object-fit:cover}
.bank-project span{display:flex;flex-direction:column}
.bank-project small{margin:0 0 3px}
.bank-project strong{font-size:18px}
.bank-project em{font-style:normal;color:#aaa;font-size:12px;margin-top:4px}
.bank-project>b{color:#c9875b;font-size:20px}
.own-projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.own-project{display:grid;grid-template-columns:92px 1fr;gap:22px;border:1px solid #c9875b44;padding:24px;background:linear-gradient(135deg,#c9875b0b,transparent)}
.own-project h4{font-size:22px;margin:0 0 7px}
.own-project p{color:#bbb;margin:0 0 8px}
@media(max-width:1000px){
  .bank-projects,.own-projects{grid-template-columns:1fr}
}
@media(max-width:560px){
  .bank-project{grid-template-columns:54px 1fr 18px;padding:14px;gap:12px}
  .mini-app-icon{width:54px;height:54px}
  .own-project{grid-template-columns:70px 1fr;padding:18px;gap:16px}
  .own-project .app-icon{width:70px;height:70px}
}

/* V15 — empty events state */
.no-events{padding:28px 0 10px;max-width:720px}
.no-events strong{display:block;font-size:24px;margin-bottom:4px}
.no-events p{color:#aaa;margin:0 0 22px}
.contact footer{justify-content:flex-start}
.supporters{width:min(1420px,calc(100% - 64px));margin:44px auto 0;padding:22px 0 18px;border-top:1px solid #ffffff14;display:flex;align-items:center;gap:34px}.supporters-label{color:#777;font-size:9px;letter-spacing:.18em}.supporter-logos{display:flex;align-items:center;gap:34px;flex-wrap:wrap}.supporter-logos a{display:flex;align-items:center;opacity:.58;transition:.2s}.supporter-logos a:hover{opacity:1;transform:translateY(-1px)}.supporter-logos img{width:auto;max-width:145px;max-height:38px;object-fit:contain}@media(max-width:720px){.supporters{width:calc(100% - 32px);align-items:flex-start;flex-direction:column;gap:16px}.supporter-logos{gap:24px 28px}.supporter-logos img{max-width:125px;max-height:34px}}
/* V18 — stronger hierarchy in Music section */

/* Own releases: larger, dominant visual treatment */
.release-three{
  gap:34px !important;
  align-items:start;
}
.release-three article{
  display:block !important;
  border-top:0 !important;
  padding-top:0 !important;
}
.release-three article>img{
  width:100% !important;
  aspect-ratio:1/1;
  object-fit:cover;
  margin-bottom:18px;
  box-shadow:0 14px 34px rgba(0,0,0,.14);
}
.release-three article>div{
  display:block;
}
.release-three h4{
  font-size:28px !important;
  margin:6px 0 8px !important;
}
.release-three p{
  margin:0 0 12px !important;
  max-width:34ch;
}
.release-three a{
  display:inline-block !important;
  margin-right:14px;
  margin-bottom:6px;
}

/* Featured video keeps clear separation after own releases */
.video{
  margin-top:82px !important;
}

/* Collaborations: intentionally more compact than own releases */
.collab-cards{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
}
.collab-card{
  background:rgba(255,255,255,.18) !important;
}
.collab-card img{
  aspect-ratio:1/1;
  object-fit:cover;
}
.collab-info{
  padding:12px !important;
}
.collab-info h4{
  font-size:14px !important;
  line-height:1.25 !important;
  margin:0 0 5px !important;
}
.collab-info p{
  font-size:11px !important;
  margin-bottom:8px !important;
}
.mini-links{
  gap:5px 10px !important;
}
.mini-links a{
  font-size:9px !important;
}

/* extra spacing before collaborations, to reinforce hierarchy */
.collab-cards{
  margin-top:4px;
}
.music .sub{
  margin-top:42px;
}

@media(max-width:1100px){
  .release-three{
    grid-template-columns:repeat(3,1fr) !important;
    gap:24px !important;
  }
  .collab-cards{
    grid-template-columns:repeat(3,1fr) !important;
  }
}
@media(max-width:760px){
  .release-three{
    grid-template-columns:1fr !important;
  }
  .release-three article{
    max-width:560px;
  }
  .collab-cards{
    grid-template-columns:repeat(2,1fr) !important;
  }
}
@media(max-width:480px){
  .collab-cards{
    grid-template-columns:1fr !important;
  }
}
