:root{
    --bg-cream:#EFE7D5;
    --card-white:#FFFFFF;
    --ink:#14110D;
    --ink-soft:#2A2520;
    --mono-dim:#6B6358;
    --cream-text:#F2EAD3;
    --photo-dark:#1F1813;
    --lime:#C6F135;
    --cream-dim:rgba(242,234,211,0.55);
    --teal:#587776;
    
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg-cream:#EFE7D5; --card-white:#FFFFFF; --ink:#14110D; --ink-soft:#2A2520;
      --mono-dim:#6B6358; --cream-text:#F2EAD3; --photo-dark:#1F1813; --lime:#C6F135;
      --cream-dim:rgba(242,234,211,0.55); --teal:#587776; 
    }
  }
  :root[data-theme="dark"]{
    --bg-cream:#EFE7D5; --card-white:#FFFFFF; --ink:#14110D; --ink-soft:#2A2520;
    --mono-dim:#6B6358; --cream-text:#F2EAD3; --photo-dark:#1F1813; --lime:#C6F135;
    --cream-dim:rgba(242,234,211,0.55); --teal:#587776; 
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0; background:var(--bg-cream); color:var(--ink);
    font-family:'Archivo', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }

  .accent{ font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:700; }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  .wrap{ max-width:1280px; margin:0 auto; padding:0 6vw; }

  /* ---------- topo background ---------- */
  .topo-bg{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:0.13; z-index:0; }
  .topo-bg path{ fill:none; stroke:var(--ink); stroke-width:1.1; }

  /* ---------- nav / marks ---------- */
  .site-nav{
    position:fixed; top:0; left:0; right:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding: clamp(16px,2.6vw,28px) clamp(18px,6vw,64px);
    background:transparent; backdrop-filter:none;
    border-bottom:1px solid transparent;
    transition: background .35s ease, backdrop-filter .35s ease, border-color .35s ease, padding .35s ease;
  }
  .site-nav.scrolled{
    background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none;
    border-bottom-color:transparent;
    padding-top: clamp(10px,1.6vw,16px); padding-bottom: clamp(10px,1.6vw,16px);
    pointer-events:none;
  }
  .site-nav.scrolled .event-logo{ pointer-events:auto; }
  .site-nav .el-text, .site-nav .nav-cta{ transition: opacity .3s ease, transform .3s ease; }
  .site-nav.scrolled .el-text, .site-nav.scrolled .nav-cta{
    opacity:0; transform:translateY(-10px); pointer-events:none;
  }
  .nav-left{ display:flex; align-items:center; gap:22px; }
  .nav-cta{
    display:inline-flex; align-items:center;
    padding: 9px 18px; border:1.5px solid var(--lime); border-radius:999px;
    font-family:'Archivo',sans-serif; font-weight:600; font-size:11px;
    letter-spacing:0.12em; text-transform:uppercase; text-decoration:none;
    color:var(--lime); white-space:nowrap; transition: background .2s ease, color .2s ease;
  }
  .nav-cta:hover{ background:var(--lime); color:var(--photo-dark); }
  @media (max-width: 480px){ .nav-cta{ padding: 8px 14px; font-size:10px; } }
  .event-mark{ display:flex; align-items:center; gap:10px; }
  .event-mark svg{ width:30px; height:30px; flex-shrink:0; }
  .event-mark .wordmark{ line-height:1; }
  .event-mark .wordmark .l1{ font-size:14px; font-weight:800; letter-spacing:0.02em; }
  .event-mark .wordmark .l2{ font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.25em; opacity:0.75; margin-top:3px; }
  .event-mark.on-dark{ color:var(--cream-text); }
  .event-mark.on-light{ color:var(--ink); }

  .sponsor-badge{ display:flex; align-items:center; gap:10px; }
  .sponsor-badge .label{ font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.2em; opacity:0.7; text-align:right; line-height:1.4; }
  .sponsor-badge img{ height:20px; width:auto; opacity:0.95; }

  /* ---------- hero ---------- */
  .hero{
    position:relative; min-height:100svh; display:flex; align-items:center;
    background:#120e0a;
    overflow:hidden;
  }
  .hero img.bgphoto{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    object-position: 38% 20%;
    filter:saturate(1.02);
  }
  .hero .scrim{
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 60% 60% at 20% 35%, rgba(20,15,10,0.62) 0%, rgba(20,15,10,0.26) 55%, rgba(20,15,10,0) 78%),
      linear-gradient(180deg, rgba(15,11,8,0.5) 0%, rgba(15,11,8,0.12) 22%, rgba(15,11,8,0.12) 60%, rgba(15,11,8,0.68) 100%),
      linear-gradient(90deg, rgba(12,9,6,0.58) 0%, rgba(12,9,6,0.08) 48%);
  }
  .hero-content{
    position:relative; z-index:5; width:100%;
    padding: 0 clamp(18px,6vw,64px);
  }
  .hero-inner{ max-width:640px; }
  .hero .eyebrow{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.3em;
    color:var(--cream-dim); margin:0 0 18px; text-transform:uppercase;
  }
  .hero h1{
    margin:0; color:var(--cream-text);
    font-weight:800; font-size:clamp(40px,6.4vw,72px);
    line-height:0.94; letter-spacing:-0.015em;
  }
  .hero h1 .accent{ font-size:1.08em; color:var(--cream-text); display:inline-block; }
  .hero .lede{
    margin: 22px 0 0; color:var(--cream-text); opacity:0.88;
    font-size:clamp(15px,1.5vw,18px); line-height:1.55; max-width:46ch;
  }
  .hero .meta{
    margin-top: 32px; display:flex; flex-wrap:wrap; gap: 22px 48px;
  }
  .meta-block{ display:flex; flex-direction:column; gap:6px; }
  .meta-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.22em;
    text-transform:uppercase; color:var(--cream-dim);
  }
  .meta-value{
    font-family:'Archivo', sans-serif; font-weight:700; font-size:clamp(21px,2.4vw,28px);
    letter-spacing:-0.01em; color:var(--cream-text); line-height:1.1;
  }
  .meta-sep{ color:var(--lime); margin:0 2px; }
  .meta-link{ text-decoration:underline; text-decoration-color:rgba(242,234,211,0.45); text-underline-offset:5px; transition:text-decoration-color .2s ease; }
  .meta-link:hover{ text-decoration-color:var(--cream-text); }

  .cta-row{ margin-top:38px; display:flex; flex-wrap:wrap; gap:16px; }
  .btn-outline{
    position:relative; display:inline-flex; align-items:center; gap:10px;
    padding: 15px 26px; border:1.5px solid var(--lime); border-radius:999px;
    font-family:'Archivo',sans-serif; font-weight:600; font-size:13px;
    letter-spacing:0.14em; text-transform:uppercase; text-decoration:none;
    color:var(--lime); overflow:hidden; transition: color .25s ease;
  }
  .btn-outline .bg-fill{
    position:absolute; inset:0; background:var(--lime); transform:scaleX(0);
    transform-origin:left; transition: transform .25s ease; z-index:0; border-radius:999px;
  }
  .btn-outline span, .btn-outline svg{ position:relative; z-index:1; }
  .btn-outline:hover{ color:var(--photo-dark); }
  .btn-outline:hover .bg-fill{ transform:scaleX(1); }
  .btn-outline svg{ width:14px; height:14px; }
  .btn-outline.secondary{ border-color:rgba(242,234,211,0.55); color:var(--cream-text); }
  .btn-outline.secondary .bg-fill{ background:var(--cream-text); }
  .btn-outline.secondary:hover{ color:var(--photo-dark); }

  .scrolldown{
    position:absolute; bottom:30px; left:clamp(18px,6vw,64px); z-index:5;
    font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.25em;
    color:var(--cream-text); opacity:0.6; display:flex; align-items:center; gap:10px;
  }
  .scrolldown .line{ width:26px; height:1px; background:currentColor; }

  /* ---------- hero ticker ---------- */
  .hero-ticker{
    position:absolute; left:0; right:0; bottom:0; z-index:6;
    overflow:hidden; white-space:nowrap;
    border-top:1px solid rgba(242,234,211,0.16);
    background:rgba(10,7,5,0.38);
    padding: 13px 0;
  }
  .ticker-track{
    display:inline-flex; align-items:center; gap:14px; width:max-content;
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.28em;
    text-transform:uppercase; color:rgba(242,234,211,0.7);
    animation: ticker 42s linear infinite;
  }
  .ticker-track .dot{ color:var(--lime); }
  @keyframes ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){ .ticker-track{ animation:none; } }

  /* ---------- entrance reveal ---------- */
  @keyframes revealUp{
    from{ opacity:0; transform:translateY(16px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .hero .eyebrow, .hero h1, .hero .lede, .hero .meta, .hero .cta-row{
    animation: revealUp .7s cubic-bezier(.2,.7,.2,1) both;
  }
  .hero .eyebrow{ animation-delay: .05s; }
  .hero h1{ animation-delay: .12s; }
  .hero .lede{ animation-delay: .22s; }
  .hero .meta{ animation-delay: .32s; }
  .hero .cta-row{ animation-delay: .42s; }
  @media (prefers-reduced-motion: reduce){
    .hero .eyebrow, .hero h1, .hero .lede, .hero .meta, .hero .cta-row{ animation:none; }
  }

  #hero-word{
    display:inline-block; position:relative;
    background-image: linear-gradient(100deg, var(--cream-text) 20%, var(--lime) 38%, var(--cream-text) 56%);
    background-size: 260% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text; background-clip:text; color:transparent;
    animation: heroShimmer 4.5s ease-in-out 1.2s infinite;
  }
  @keyframes heroShimmer{
    0%{ background-position: 140% 0; }
    45%{ background-position: -40% 0; }
    100%{ background-position: -40% 0; }
  }
  @media (prefers-reduced-motion: reduce){
    #hero-word{ animation:none; background-image:none; color:var(--cream-text); }
  }

  /* ---------- section shell ---------- */
  section{ position:relative; }
  .section-pad{ padding: clamp(70px,10vw,130px) 0; }
  .section-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.3em;
    color:var(--mono-dim); text-transform:uppercase; margin:0 0 16px;
  }
  .section-title{
    font-weight:700; font-size:clamp(26px,3vw,34px); line-height:0.85;
    letter-spacing:-0.01em; margin:0; max-width:14ch;
  }

  /* ---------- intro / split section ---------- */
  .intro{ background:var(--bg-cream); }
  .intro-grid{
    display:grid; grid-template-columns: 1fr 1fr; align-items:stretch; gap:0;
  }
  .intro-text{
    padding: clamp(70px,9vw,120px) clamp(18px,6vw,64px);
    display:flex; flex-direction:column; justify-content:center;
    max-width: 560px;
  }
  .intro-text .statement{
    font-weight:600; font-size:clamp(24px,2.6vw,32px); line-height:0.9;
    letter-spacing:-0.01em; margin: 18px 0 26px;
  }
  .intro-text .statement .accent{ font-size:1.08em; }
  .intro-text p{ font-size:16px; line-height:1.65; color:var(--ink-soft); margin:0 0 16px; }
  .intro-text .sponsor-line{
    margin-top:28px; display:flex; align-items:center; gap:14px;
    padding-top:22px; border-top:1px solid rgba(20,17,13,0.14);
  }
  .intro-text .sponsor-line img{ height:22px; width:auto; }
  .intro-text .sponsor-line .txt{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.14em; color:var(--mono-dim); line-height:1.5; }

  .intro-photo{ position:relative; min-height:420px; overflow:hidden; }
  .intro-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 32%; }
  .intro-photo .grain-edge{ position:absolute; inset:0; box-shadow: inset 0 0 90px 10px rgba(20,17,13,0.10); }

  @media (max-width: 880px){
    .intro-grid{ grid-template-columns:1fr; }
    .intro-photo{ min-height:280px; order:-1; }
    .intro-text{ padding: 50px clamp(18px,6vw,64px) 60px; max-width:none; }
  }

  /* ---------- agenda / programa (timeline) ---------- */
  .programa{ background:var(--bg-cream); }
  .programa .wrap{ position:relative; z-index:2; }

  .agenda-list{ position:relative; margin-top: 54px; }
  .agenda-item{
    display:grid; grid-template-columns: 88px 24px 1fr; align-items:stretch; gap: 0;
    padding: 26px 0; border-bottom:1px solid rgba(20,17,13,0.12);
    transition: background-color .25s ease;
  }
  .agenda-item:hover{ background:rgba(88,119,118,0.08); }
  .agenda-item:first-child{ border-top:1px solid rgba(20,17,13,0.12); }
  .agenda-time{
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--teal);
    padding-top:3px; text-align:right; padding-right:18px;
  }
  .agenda-rail{ position:relative; }
  .agenda-rail::before{
    content:''; position:absolute; left:50%; top:-27px; bottom:-27px; width:1px;
    background:rgba(20,17,13,0.15); transform:translateX(-50%);
  }
  .agenda-item:first-child .agenda-rail::before{ top:0; }
  .agenda-item:last-child .agenda-rail::before{ bottom:0; }
  .agenda-rail .node{
    position:absolute; left:50%; top:9px; width:9px; height:9px;
    border-radius:50%; background:var(--bg-cream); border:2px solid var(--teal);
    transform:translate(-50%,0); transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
    z-index:1;
  }
  .agenda-item:hover .agenda-rail .node{ background:var(--ink); border-color:var(--ink); transform:translate(-50%,0) scale(1.25); }
  .agenda-body{ padding-left:22px; }
  .agenda-body h3{ margin:0 0 8px; font-size:18px; font-weight:700; letter-spacing:-0.005em; }
  .agenda-body h3 .tag{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:500; color:var(--mono-dim); letter-spacing:0.12em; margin-right:10px; vertical-align:1px; }
  .agenda-body p{ margin:0; font-size:15px; line-height:1.6; color:var(--ink-soft); max-width:62ch; }

  .talks-block{ margin: 16px 0 8px; padding-left:0; }
  .talks-intro{ font-size:15px; line-height:1.7; color:var(--ink-soft); margin: 6px 0 16px; max-width:62ch; }

  .talk-cards{
    display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:18px;
    margin-top:6px;
  }
  @media (max-width: 880px){ .talk-cards{ grid-template-columns:1fr; } }

  .talk-card{
    background:var(--card-white); border:2.5px solid var(--ink);
    border-radius:14px; overflow:hidden; position:relative;
    display:flex; flex-direction:column;
    transition: transform .18s ease, box-shadow .18s ease;
  }
  .talk-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(20,17,13,0.16); }
  .talk-card .slot-head{
    background:var(--ink); padding:11px 18px;
    display:flex; align-items:center;
  }
  .talk-card .slot-label{
    font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.16em;
    text-transform:uppercase; margin:0;
  }
  .talk-card .slot-label .s-id{ color:rgba(242,234,211,0.6); }
  .talk-card .slot-label .s-open{ color:var(--lime); }
  .talk-card .s-dot{ margin-left:auto; color:var(--lime); font-size:8px; line-height:1; }
  .talk-card .slot-body{
    padding:20px 18px 20px; display:flex; flex-direction:column; flex-grow:1;
  }
  .talk-card .slot-title{
    font-weight:700; font-size:17px; line-height:1.22; letter-spacing:-0.01em;
    color:var(--ink); margin:0 0 12px;
  }
  .talk-card .slot-copy{ font-size:13.5px; color:var(--ink-soft); line-height:1.68; margin:0 0 18px; flex-grow:1; }
  .talk-card .slot-cta{
    display:inline-flex; align-items:center; gap:7px;
    padding-top:14px; border-top:1px solid rgba(20,17,13,0.14); width:100%;
    font-family:'Archivo',sans-serif; font-weight:600; font-size:11.5px; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--teal); text-decoration:none;
    transition: color .15s ease;
  }
  .talk-card .slot-cta:hover{ color:var(--ink); }
  .talk-card .slot-cta svg{ width:11px; height:11px; margin-left:auto; }

  /* ---------- build mode / community ---------- */
  .build{
    background:var(--photo-dark); color:var(--cream-text);
    position:relative; overflow:hidden;
  }
  .build-grid{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 60px; align-items:center; }
  @media (max-width: 940px){ .build-grid{ grid-template-columns:1fr; } }

  .build .section-label{ color:var(--cream-dim); }
  .build h2{
    font-weight:800; font-size:clamp(34px,4.6vw,52px); line-height:0.88; letter-spacing:-0.015em;
    margin: 14px 0 28px; max-width:12ch;
  }
  .build h2 .accent{ color:var(--lime); font-size:1.05em; }

  .build-list{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
  .build-list li{
    font-size:15.5px; line-height:1.5; color:rgba(242,234,211,0.88);
    padding-left:20px; position:relative;
  }
  .build-list li::before{
    content:'>'; position:absolute; left:0; top:0; color:var(--lime);
    font-family:'IBM Plex Mono', monospace; font-size:13px; font-weight:600;
  }
  .build-note{ margin-top:26px; font-size:14.5px; color:rgba(242,234,211,0.62); max-width:48ch; line-height:1.6; }

  .build-photo{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio: 4/5; }
  .build-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%; }
  .build-photo::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,15,10,0.05) 0%, rgba(20,15,10,0.55) 100%);
  }
  .build-photo .cap{
    position:absolute; left:18px; bottom:16px; z-index:2;
    font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.14em;
    color:rgba(242,234,211,0.75); text-transform:uppercase;
  }

  /* ---------- after event ---------- */
  .after-event{
    position:relative; overflow:hidden; background:#120e0a;
    padding: clamp(70px,10vw,120px) 0;
  }
  .after-event img.bgphoto{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 62%; }
  .after-event .scrim{
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 70% 55% at 50% 78%, rgba(18,14,10,0.15) 0%, rgba(18,14,10,0.5) 70%, rgba(18,14,10,0.75) 100%),
      linear-gradient(180deg, rgba(10,7,5,0.7) 0%, rgba(10,7,5,0.2) 32%, rgba(10,7,5,0.15) 55%, rgba(10,7,5,0.82) 100%);
  }
  .after-event .wrap{ position:relative; z-index:2; }
  .after-event .agenda-item{ border-color:rgba(242,234,211,0.18); }
  .after-event .agenda-item:first-child{ border-top-color:rgba(242,234,211,0.18); }
  .after-event .agenda-item:hover{ background:rgba(242,234,211,0.06); }
  .after-event .agenda-rail::before{ background:rgba(242,234,211,0.22); }
  .after-event .agenda-rail .node{ background:#120e0a; border-color:var(--lime); }
  .after-event .agenda-item:hover .agenda-rail .node{ background:var(--lime); border-color:var(--lime); }

  .after-chips{
    display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.05em;
    color:rgba(242,234,211,0.85);
  }
  .after-chips .sep{ color:var(--lime); opacity:0.7; }

  /* ---------- sobre ulltra (sponsor) ---------- */
  .about-sponsor{ background:var(--bg-cream); }
  .about-grid{
    display:grid; grid-template-columns: 220px 1fr; gap: 56px; align-items:start;
  }
  .about-mark{
    display:flex; flex-direction:column; align-items:flex-start; gap:14px;
    padding-top:6px;
  }
  .about-tag{
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.16em;
    text-transform:uppercase; color:var(--mono-dim); margin:0;
  }
  .about-text{ max-width:64ch; }
  .about-lede{
    font-size:clamp(19px,2vw,24px); line-height:1.35; color:var(--ink);
    margin: 14px 0 22px; font-style:italic;
  }
  .about-text p:not(.about-lede):not(.section-label){
    font-size:15.5px; line-height:1.65; color:var(--ink-soft); margin:0 0 14px;
  }
  @media (max-width: 780px){
    .about-grid{ grid-template-columns:1fr; gap:24px; }
    .about-mark{ flex-direction:row; align-items:center; }
  }

  /* ---------- mid CTA banner ---------- */
  .cta-banner{
    background:var(--bg-cream); border-top:1px solid rgba(20,17,13,0.14); border-bottom:1px solid rgba(20,17,13,0.14);
    padding: 46px 0;
  }
  .cta-banner .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; }
  .cta-banner .txt{ max-width:480px; }
  .cta-banner .txt .k{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em; color:var(--mono-dim); text-transform:uppercase; margin:0 0 8px; }
  .cta-banner .txt p{ margin:0; font-size:19px; font-weight:600; line-height:1.3; letter-spacing:-0.005em; }
  .cta-banner .btn-outline{ border-color:var(--ink); color:var(--ink); }
  .cta-banner .btn-outline .bg-fill{ background:var(--ink); }
  .cta-banner .btn-outline:hover{ color:var(--lime); }

  /* ---------- footer ---------- */
  .footer{
    background:#120e0a; color:var(--cream-text); position:relative; overflow:hidden;
  }
  .footer img.bgphoto{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:42% 15%; opacity:0.55; }
  .footer .scrim{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,11,8,0.55) 0%, rgba(15,11,8,0.88) 100%); }
  .footer .wrap{ position:relative; z-index:2; padding: clamp(70px,9vw,110px) 6vw clamp(40px,5vw,56px); }

  .footer h2{
    font-weight:800; font-size:clamp(32px,4.4vw,54px); line-height:0.92; letter-spacing:-0.015em;
    margin:0 0 30px; max-width:16ch;
  }
  .footer h2 .accent{ font-size:1.06em; }

  .footer-meta{
    display:flex; flex-wrap:wrap; gap: 10px 46px; margin-bottom:36px;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px;
  }
  .footer-meta .g-label{ color:var(--cream-dim); letter-spacing:0.15em; margin-right:8px; }
  .footer-meta a{ text-decoration:underline; text-underline-offset:3px; }

  .footer-bottom{
    margin-top: 56px; padding-top:26px; border-top:1px solid rgba(242,234,211,0.18);
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px;
  }
  .footer-bottom .fmark{ display:flex; align-items:center; gap:10px; }
  .footer-bottom .fmark svg{ width:24px; height:24px; }
  .footer-bottom .fmark .wordmark .l1{ font-size:12px; font-weight:800; letter-spacing:0.02em; }
  .footer-bottom .fmark .wordmark .l2{ font-family:'IBM Plex Mono', monospace; font-size:8px; letter-spacing:0.22em; opacity:0.7; }

  .footer-sponsor{ display:flex; align-items:center; gap:12px; }
  .footer-sponsor .label{ font-family:'IBM Plex Mono', monospace; font-size:9.5px; letter-spacing:0.18em; color:rgba(242,234,211,0.55); text-align:right; line-height:1.5; }
  .footer-sponsor img{ height:19px; width:auto; }


  /* ---------- cfs stamp (hero) ---------- */
  .cfs-line{
    display:flex; align-items:center; gap:10px; flex-basis:100%;
    margin-top:18px; width:fit-content;
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em;
    text-transform:uppercase; color:rgba(242,234,211,0.6); text-decoration:none;
    transition: color .18s ease;
  }
  .cfs-line .dot{ color:var(--lime); font-size:8px; }
  .cfs-line .st{ color:var(--lime); }
  .cfs-line .sep{ color:rgba(242,234,211,0.3); }
  .cfs-line .arrow{ transition: transform .18s ease; }
  .cfs-line:hover{ color:var(--cream-text); }
  .cfs-line:hover .arrow{ transform:translateX(4px); }

  @keyframes blink{ 0%,55%{opacity:1;} 56%,100%{opacity:0;} }
  .blink{ animation: blink 1.1s steps(1) infinite; }
  @media (prefers-reduced-motion: reduce){ .blink{ animation:none; } }

  /* ---------- call for speakers ---------- */
  .cfs{
    background:var(--photo-dark); color:var(--cream-text);
    position:relative; overflow:hidden; scroll-margin-top:70px;
  }
  .cfs::before{
    content:''; position:absolute; inset:0; pointer-events:none; z-index:1;
    background:repeating-linear-gradient(180deg, rgba(242,234,211,0.028) 0 1px, transparent 1px 4px);
  }
  .cfs::after{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(ellipse 90% 70% at 15% 0%, rgba(198,241,53,0.05) 0%, transparent 60%);
  }
  .cfs .wrap{ position:relative; z-index:2; }

  .cfs-status{
    display:flex; flex-wrap:wrap; align-items:center; gap:14px;
    font-size:12px; letter-spacing:0.24em; color:var(--cream-dim); text-transform:uppercase;
  }
  .cfs-prompt{ color:var(--lime); }
  .cfs-badge{
    display:inline-flex; align-items:center; gap:8px;
    border:1px solid rgba(198,241,53,0.5); border-radius:999px;
    padding:5px 13px; color:var(--lime); font-size:10.5px; letter-spacing:0.2em;
  }
  .cfs-badge .blink{ font-size:8px; }

  .cfs-title{
    font-weight:800; font-size:clamp(36px,5.2vw,60px); line-height:0.88; letter-spacing:-0.015em;
    margin:26px 0 0; color:var(--cream-text); max-width:14ch;
  }
  .cfs-title .accent{ color:var(--lime); font-size:1.06em; }
  @keyframes glitchA{ 0%{transform:translate(-4px,-2px);} 50%{transform:translate(3px,1px);} 100%{transform:translate(0,0); opacity:0;} }
  @keyframes glitchB{ 0%{transform:translate(4px,2px);} 50%{transform:translate(-3px,-1px);} 100%{transform:translate(0,0); opacity:0;} }


  .cfs-lede{
    margin:24px 0 0; max-width:56ch; font-size:16px; line-height:1.65;
    color:rgba(242,234,211,0.85);
  }

  .cfs-form{ margin-top:46px; max-width:860px; scroll-margin-top:110px; }
  .cfs-tracks{
    display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    padding-bottom:26px; margin-bottom:30px;
    border-bottom:1px solid rgba(242,234,211,0.14);
  }
  .cfs-tracks-label{
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em;
    color:var(--cream-dim); margin-right:6px;
  }
  .cfs-chip{ position:relative; cursor:pointer; }
  .cfs-chip input{ position:absolute; opacity:0; pointer-events:none; }
  .cfs-chip span{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.12em;
    color:rgba(242,234,211,0.75); border:1px solid rgba(242,234,211,0.3); border-radius:999px;
    padding:9px 16px; transition: color .2s ease, border-color .2s ease, background-color .2s ease;
  }
  .cfs-chip:hover span{ border-color:rgba(242,234,211,0.6); }
  .cfs-chip input:checked + span{
    color:var(--photo-dark); background:var(--lime); border-color:var(--lime); font-weight:600;
  }
  .cfs-chip input:focus-visible + span{ outline:2px solid var(--lime); outline-offset:2px; }

  .cfs-fields{ display:grid; grid-template-columns:1fr 1fr; gap:26px 34px; }
  .cfs-field-wide{ grid-column:1 / -1; }
  @media (max-width:720px){ .cfs-fields{ grid-template-columns:1fr; } }
  .cfs-field label{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:10.5px;
    letter-spacing:0.2em; color:var(--cream-dim); margin-bottom:10px; text-transform:uppercase;
  }
  .cfs-field input, .cfs-field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid rgba(242,234,211,0.3);
    border-radius:0; color:var(--cream-text); font-family:'Archivo',sans-serif;
    font-size:16px; padding:8px 2px 12px; transition:border-color .2s ease;
    resize:vertical;
  }
  .cfs-field input::placeholder, .cfs-field textarea::placeholder{ color:rgba(242,234,211,0.32); }
  .cfs-field input:focus, .cfs-field textarea:focus{ outline:none; border-bottom-color:var(--lime); }

  .cfs-actions{ margin-top:40px; display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
  .cfs-submit{ cursor:pointer; background:transparent; }
  .cfs-note{ font-size:10.5px; letter-spacing:0.08em; color:rgba(242,234,211,0.5); max-width:44ch; line-height:1.7; margin:0; }


  /* ---------- cyber layer ---------- */
  .noise{
    position:fixed; inset:0; z-index:80; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  }
  .hero .scrim::after, .after-event .scrim::after, .footer .scrim::after{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:repeating-linear-gradient(180deg, rgba(242,234,211,0.024) 0 1px, transparent 1px 4px);
  }

  .hero-coords{
    position:absolute; right:clamp(18px,6vw,64px); bottom:74px; z-index:5;
    font-size:10px; letter-spacing:0.2em; color:rgba(242,234,211,0.55); text-transform:uppercase;
  }
  .hero-coords .ok{ color:var(--lime); }
  @media (max-width:880px){ .hero-coords{ display:none; } }

  .tick-cfs{ color:var(--lime); text-shadow:0 0 14px rgba(198,241,53,0.55); }

  .glitch-target{ position:relative; display:inline-block; }
  .glitch-target::before, .glitch-target::after{
    content:attr(data-text); position:absolute; left:0; top:0; width:100%;
    opacity:0; pointer-events:none;
  }
  .glitch-target.glitch-on::before{
    color:var(--teal); opacity:0.85; clip-path:inset(10% 0 55% 0);
    animation:glitchA .38s steps(2) 1;
  }
  .glitch-target.glitch-on::after{
    color:var(--lime); opacity:0.7; clip-path:inset(60% 0 6% 0);
    animation:glitchB .38s steps(2) 1;
  }
  @media (prefers-reduced-motion: reduce){
    .glitch-target.glitch-on::before, .glitch-target.glitch-on::after{ animation:none; opacity:0; }
  }

  .hud{ position:absolute; width:22px; height:22px; z-index:3; pointer-events:none; }
  .hud-tl{ top:12px; left:12px; border-top:1.5px solid rgba(198,241,53,0.85); border-left:1.5px solid rgba(198,241,53,0.85); }
  .hud-br{ bottom:12px; right:12px; border-bottom:1.5px solid rgba(198,241,53,0.85); border-right:1.5px solid rgba(198,241,53,0.85); }
  .intro-photo .hud-tl{ border-color:rgba(242,234,211,0.75); }
  .intro-photo .hud-br{ border-color:rgba(242,234,211,0.75); }

  .cfs-cmd{
    font-size:12px; letter-spacing:0.08em; color:rgba(242,234,211,0.6);
    margin:0 0 18px; min-height:18px;
  }
  .cfs-cmd .cmd-prompt{ color:var(--lime); }
  .cfs-cmd .blink{ color:var(--lime); }

  @keyframes badgePulse{
    0%,100%{ box-shadow:0 0 0 rgba(198,241,53,0); }
    50%{ box-shadow:0 0 16px rgba(198,241,53,0.3); }
  }
  .cfs-badge{ animation:badgePulse 2.6s ease-in-out infinite; }
  @media (prefers-reduced-motion: reduce){ .cfs-badge{ animation:none; } }

  .agenda-time::before{ content:'['; opacity:0.45; margin-right:1px; }
  .agenda-time::after{ content:']'; opacity:0.45; margin-left:1px; }


  .cfs-field input:-webkit-autofill,
  .cfs-field input:-webkit-autofill:hover,
  .cfs-field input:-webkit-autofill:focus,
  .cfs-field textarea:-webkit-autofill{
    -webkit-box-shadow: 0 0 0 1000px #241d16 inset;
    -webkit-text-fill-color: var(--cream-text);
    caret-color: var(--cream-text);
    border-radius:0;
  }
  .cfs-msg{
    margin:18px 0 0; font-size:12px; letter-spacing:0.1em; min-height:16px;
    color:rgba(242,234,211,0.6);
  }
  .cfs-msg.ok{ color:var(--lime); }
  .cfs-msg.err{ color:#D9A05B; }
  .cfs-submit[disabled]{ opacity:0.55; pointer-events:none; }


  .event-logo{ display:flex; align-items:center; gap:16px; text-decoration:none; }
  .el-badge{
    display:flex; align-items:center; justify-content:center;
    height:36px; padding:0 9px; min-width:36px; box-sizing:border-box;
    border:none; border-radius:11px;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; font-weight:700;
    letter-spacing:-0.04em; color:var(--ink); line-height:1;
    background:var(--lime);
    box-shadow:0 0 0 2px rgba(20,17,13,0.55), 0 0 18px rgba(198,241,53,0.35);
    transform:rotate(-4deg);
    transition: transform .25s cubic-bezier(.34,1.56,.64,1);
  }
  .event-logo:hover .el-badge{ transform:rotate(4deg) scale(1.12); }
  @keyframes faceWiggle{
    0%,100%{ transform:rotate(-4deg); }
    25%{ transform:rotate(6deg) scale(1.1); }
    50%{ transform:rotate(-8deg) scale(1.05); }
    75%{ transform:rotate(3deg); }
  }
  .el-badge.wiggle{ animation:faceWiggle .55s ease; }
  @media (prefers-reduced-motion: reduce){
    .el-badge, .event-logo:hover .el-badge{ transform:none; }
    .el-badge.wiggle{ animation:none; }
  }
  .el-title{
    display:block; font-family:'Archivo', sans-serif; font-weight:900;
    font-size:17px; letter-spacing:0.045em; line-height:1;
    text-transform:uppercase; transform:skewX(-7deg);
    background:linear-gradient(100deg, var(--cream-text) 0%, #E7F5B8 38%, var(--lime) 62%, #9CCF9E 100%);
    -webkit-background-clip:text; background-clip:text;
    color:transparent; -webkit-text-fill-color:transparent;
    filter: drop-shadow(2px 2px 0 rgba(88,119,118,0.95));
    padding-right:3px;
  }
  .el-sub{
    display:block; margin-top:5px; font-family:'IBM Plex Mono', monospace;
    font-size:8px; letter-spacing:0.06em; line-height:1; color:rgba(242,234,211,0.62);
    transform:skewX(-7deg);
  }


  .el-badge{ position:relative; }
  .arm{
    position:absolute; z-index:-1; width:16px; height:5px;
    background:var(--lime); border-radius:99px; top:14px;
    transform:scaleX(0);
    transition:transform .3s cubic-bezier(.34,1.56,.64,1);
  }
  .arm-l{ left:-13px; transform-origin:right center; }
  .arm-r{ right:-13px; transform-origin:left center; }
  .el-badge.party .arm-l{ transform:scaleX(1); animation:danceL .4s ease-in-out infinite .25s; }
  .el-badge.party .arm-r{ transform:scaleX(1); animation:danceR .4s ease-in-out infinite .25s; }
  @keyframes danceL{ 0%,100%{ transform:scaleX(1) rotate(-42deg); } 50%{ transform:scaleX(1) rotate(18deg); } }
  @keyframes danceR{ 0%,100%{ transform:scaleX(1) rotate(-18deg); } 50%{ transform:scaleX(1) rotate(42deg); } }
  .el-badge.party{ animation:faceWiggle .4s ease-in-out infinite; }
  @media (prefers-reduced-motion: reduce){
    .arm, .el-badge.party .arm-l, .el-badge.party .arm-r{ animation:none; transform:scaleX(0); }
    .el-badge.party{ animation:none; }
  }
  }

  ::selection{ background:var(--lime); color:var(--photo-dark); }
