  :root{
    --ink:#171311;
    --red:#C81D25;
    --red-bright:#FF4B4B;
  }
  *{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    *{scroll-behavior:auto; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  }
  html{scrollbar-color: #C81D25 #0d0d0d;}
  ::-webkit-scrollbar{width:11px; height:11px;}
  ::-webkit-scrollbar-track{background:#0d0d0d;}
  ::-webkit-scrollbar-thumb{background:linear-gradient(#C81D25,#8C1116); border-radius:10px; border:2px solid #0d0d0d;}
  body{
    font-family:'Manrope',sans-serif;
    background:#F6F1EA;
    color:var(--ink);
  }
  .font-display{font-family:'Fraunces',serif;}
  .font-mono{font-family:'Space Mono',monospace;}
  .tracked{letter-spacing:.18em;}

  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
    outline:3px solid var(--red);
    outline-offset:3px;
    border-radius:2px;
  }
  .skip-link{
    position:absolute; left:-9999px; top:0; background:var(--red); color:#fff;
    padding:.75rem 1.25rem; z-index:200; font-weight:700;
  }
  .skip-link:focus{left:1rem; top:1rem;}

  /* ===== custom cursor ===== */
  body.has-cursor, body.has-cursor *{cursor:none !important;}
  #cursorDot, #cursorRing{position:fixed; top:0; left:0; pointer-events:none; z-index:9999; border-radius:50%; transform:translate(-50%,-50%); mix-blend-mode:difference;}
  #cursorDot{width:8px; height:8px; background:#fff;}
  #cursorRing{width:34px; height:34px; border:1.5px solid #fff; transition:width .2s ease, height .2s ease, opacity .2s ease;}
  #cursorRing.grow{width:60px; height:60px;}

  /* ===== scroll progress ===== */
  #scrollProgress{position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg,#8C1116,#FF4B4B); z-index:60; transition:width .1s linear;}

  /* ===== marquee ===== */
  .marquee-track{display:flex; width:max-content; animation:marquee 26s linear infinite;}
  @keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
  @media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

  /* ===== diagonal dividers ===== */
  .clip-diagonal-down{clip-path:polygon(0 0,100% 0,100% 100%,0 88%);}
  .stripe-pattern{background-image:repeating-linear-gradient(-45deg, rgba(255,255,255,.05) 0 2px, transparent 2px 14px);}

  /* ===== reveal on scroll ===== */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-delay-1{transition-delay:.08s;} .reveal-delay-2{transition-delay:.16s;}
  .reveal-delay-3{transition-delay:.24s;} .reveal-delay-4{transition-delay:.32s;} .reveal-delay-5{transition-delay:.4s;}

  .arc-underline{position:relative; display:inline-block;}
  .arc-underline svg{position:absolute; left:0; bottom:-.35em; width:100%; height:.5em;}
  .nav-shadow{box-shadow:0 8px 30px -12px rgba(0,0,0,.45);}

  /* ===== magnetic buttons ===== */
  .magnetic{transition:transform .25s cubic-bezier(.2,.9,.3,1.3);}

  /* ===== button shine ===== */
  .btn-shine{position:relative; overflow:hidden;}
  .btn-shine::after{content:'';position:absolute; top:0; left:-60%; width:40%; height:100%; background:linear-gradient(115deg, transparent, rgba(255,255,255,.35), transparent); transform:skewX(-20deg); transition:left .6s ease;}
  .btn-shine:hover::after{left:120%;}

  /* ===== 3D tilt cards ===== */
  .tilt-wrap{perspective:1000px;}
  .tilt-card{transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; will-change:transform;}
  .tilt-glare{position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .3s ease;
    background:radial-gradient(circle at var(--gx,50%) var(--gy,50%), rgba(255,255,255,.16), transparent 55%);}
  .tilt-card:hover .tilt-glare{opacity:1;}

  /* ===== flip speaker cards ===== */
  .flip-card{perspective:1400px;}
  .flip-card-inner{position:relative; width:100%; height:100%; transition:transform .7s cubic-bezier(.4,.2,.2,1); transform-style:preserve-3d;}
  .flip-card.flipped .flip-card-inner{transform:rotateY(180deg);}
  .flip-face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden;}
  .flip-back{transform:rotateY(180deg);}

  /* ===== flip-clock digits ===== */
  .flip-digit{display:inline-block; overflow:hidden; height:1em; line-height:1;}
  .digit-inner{display:inline-block;}

  /* ===== horizontal timeline ===== */
  #progScroll{scrollbar-width:thin; scroll-behavior:smooth;}
  #progScroll.dragging{scroll-behavior:auto; cursor:grabbing;}
  .snap-start{scroll-snap-align:start;}

  /* ===== gallery ===== */
  .gallery-tile{overflow:hidden; position:relative; cursor:pointer;}
  .gallery-tile .tile-inner{transition:transform .7s cubic-bezier(.2,.8,.2,1);}
  .gallery-tile:hover .tile-inner{transform:scale(1.08) rotate(-.4deg);}
  .gallery-caption{transition:transform .5s ease, opacity .5s ease;}

  /* ===== lightbox ===== */
  #lightbox{transition:opacity .3s ease;}
  #lightbox .lb-panel{transition:transform .35s cubic-bezier(.2,.9,.2,1), opacity .35s ease;}

  /* ===== command palette ===== */
  #cmdPalette{transition:opacity .2s ease;}
  #cmdPalette .cmd-panel{transition:transform .25s cubic-bezier(.2,.9,.2,1), opacity .25s ease;}
  .cmd-item[data-active="true"]{background:rgba(176, 32, 32, 0.18); border-color:rgba(200,29,37,.4);}

  details > summary{list-style:none; cursor:pointer;}
  details > summary::-webkit-details-marker{display:none;}
  details[open] .faq-plus{transform:rotate(45deg);}
  .faq-plus{transition:transform .35s ease;}

  .grain{background-image:radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size:3px 3px;}
  ::selection{background:var(--red); color:#fff;}

  #netCanvas{display:block;}
