    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --navy:    #0D2340;
      --blue:    #1A4A7A;
      --azure:   #2E7BB5;
      --sky:     #C8DFF0;
      --gold:    #C9A84C;
      --gold-lt: #E8D5A0;
      --white:   #F5F9FF;
      --off:     #E8EFF8;
      --muted:   #6A85A3;
    }

    html { scroll-behavior: smooth; }

    body {
      background: var(--white);
      color: var(--navy);
      font-family: 'Outfit', sans-serif;
      font-weight: 300;
      min-height: 100vh;
      overflow-x: hidden;
    }

    body::before {
      content: '';
      position: fixed; inset: 0; z-index: 0; pointer-events: none;
      opacity: .045;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cg fill='none' stroke='%230D2340' stroke-width='1'%3E%3Cpolygon points='40,4 76,22 76,58 40,76 4,58 4,22'/%3E%3Cpolygon points='40,16 64,28 64,52 40,64 16,52 16,28'/%3E%3Cline x1='40' y1='4' x2='40' y2='16'/%3E%3Cline x1='76' y1='22' x2='64' y2='28'/%3E%3Cline x1='76' y1='58' x2='64' y2='52'/%3E%3Cline x1='40' y1='76' x2='40' y2='64'/%3E%3Cline x1='4' y1='58' x2='16' y2='52'/%3E%3Cline x1='4' y1='22' x2='16' y2='28'/%3E%3C/g%3E%3C/svg%3E");
      background-size: 80px 80px;
    }

    /* ══ Hero ══ */
    .hero {
      position: relative; z-index: 1;
      background: linear-gradient(160deg, var(--navy) 0%, var(--blue) 100%);
      overflow: hidden;
    }

    .hero-corner {
      position: absolute; width: 140px; height: 140px; opacity: .22;
      pointer-events: none;
    }
    .hero-corner.tl { top: 0; left: 0; }
    .hero-corner.tr { top: 0; right: 0; transform: scaleX(-1); }

    .hero-inner {
      position: relative; z-index: 2;
      text-align: center;
      padding: 70px 40px 60px;
    }

    .hero-bismillah {
      font-family: 'Amiri', serif;
      font-size: 1.9rem;
      color: var(--gold-lt);
      letter-spacing: .05em;
      margin-bottom: 6px;
      opacity: 0;
      animation: fadeDown .8s .1s ease forwards;
    }

    .hero-tag {
      display: inline-block;
      font-size: .65rem; letter-spacing: .22em; text-transform: uppercase;
      color: var(--sky);
      border: 1px solid rgba(200,223,240,.35);
      padding: 4px 16px; border-radius: 40px;
      margin-bottom: 22px;
      opacity: 0;
      animation: fadeDown .8s .2s ease forwards;
    }

    .hero h1 {
      font-family: 'Amiri', serif;
      font-size: clamp(2.6rem, 7vw, 5rem);
      font-weight: 700;
      color: #fff;
      line-height: 1.1;
      opacity: 0;
      animation: fadeDown .8s .3s ease forwards;
    }

    .hero h1 span { color: var(--gold-lt); }

    .hero-sub {
      margin-top: 14px;
      font-size: .85rem; color: var(--sky);
      letter-spacing: .08em;
      opacity: 0;
      animation: fadeDown .8s .4s ease forwards;
    }

    .hero-strip {
      position: relative; z-index: 2;
      height: 28px;
      background: repeating-linear-gradient(
        90deg,
        var(--gold) 0px, var(--gold) 10px,
        var(--navy) 10px, var(--navy) 20px,
        #2E7BB5 20px, #2E7BB5 30px,
        var(--navy) 30px, var(--navy) 40px
      );
      opacity: .75;
    }

    /* ══ Registration ══ */
    .reg-banner {
      position: relative; z-index: 1;
      max-width: 860px; margin: 50px auto 10px;
      padding: 0 24px;
      opacity: 0;
      animation: fadeUp .7s .5s ease forwards;
    }

    .reg-card {
      background: var(--navy);
      color: #fff;
      border-radius: 18px;
      padding: 28px 36px;
      display: flex; align-items: center; justify-content: space-between;
      gap: 20px; flex-wrap: wrap;
      border: 1px solid rgba(201,168,76,.25);
      position: relative; overflow: hidden;
    }

    .reg-card::before {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cg fill='none' stroke='rgba(201,168,76,0.08)' stroke-width='1'%3E%3Cpolygon points='30,3 57,18 57,42 30,57 3,42 3,18'/%3E%3Cpolygon points='30,12 48,22 48,38 30,48 12,38 12,22'/%3E%3C/g%3E%3C/svg%3E") repeat;
      background-size: 60px; pointer-events: none;
    }

    .reg-label {
      font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
      color: var(--gold); margin-bottom: 5px; position: relative;
    }
    .reg-title {
      font-family: 'Amiri', serif;
      font-size: 1.5rem; font-weight: 700; position: relative;
    }
    .reg-dates {
      font-size: .8rem; color: var(--sky); margin-top: 4px; position: relative;
    }
    .reg-badge {
      background: var(--gold);
      color: var(--navy);
      padding: 10px 22px; border-radius: 40px;
      font-size: .72rem; font-weight: 600; letter-spacing: .08em;
      white-space: nowrap; position: relative;
    }

    /* ══ Timeline ══ */
    .timeline-section {
      position: relative; z-index: 1;
      max-width: 860px; margin: 40px auto 80px;
      padding: 0 24px;
    }

    .section-label {
      font-size: .62rem; letter-spacing: .22em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 36px;
      display: flex; align-items: center; gap: 10px;
    }
    .section-label .orn { color: var(--gold); }
    .section-label .ln  { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(46,123,181,.3), transparent); }

    /* ══ Day group ══ */
    .day-group {
      margin-bottom: 36px;
      opacity: 0;
      animation: fadeUp .6s ease forwards;
    }
    .day-group:nth-child(1)  { animation-delay:.15s }
    .day-group:nth-child(2)  { animation-delay:.2s }
    .day-group:nth-child(3)  { animation-delay:.25s }
    .day-group:nth-child(4)  { animation-delay:.3s }
    .day-group:nth-child(5)  { animation-delay:.35s }
    .day-group:nth-child(6)  { animation-delay:.4s }
    .day-group:nth-child(7)  { animation-delay:.45s }
    .day-group:nth-child(8)  { animation-delay:.5s }
    .day-group:nth-child(9)  { animation-delay:.55s }

    .day-header {
      display: flex; align-items: center; gap: 14px;
      margin-bottom: 14px;
    }

    .day-ornament {
      width: 10px; height: 10px;
      background: var(--gold);
      transform: rotate(45deg);
      flex-shrink: 0;
    }

    .day-name {
      font-family: 'Amiri', serif;
      font-size: 1.25rem; font-weight: 700;
      color: var(--navy);
    }

    .day-date {
      font-size: .75rem; color: var(--azure);
      letter-spacing: .05em;
    }

    .day-line {
      flex: 1; height: 1px;
      background: linear-gradient(90deg, rgba(46,123,181,.35), transparent);
    }

    /* ══ Slot ══ */
    .slot {
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 0 18px;
      margin-bottom: 8px;
    }

    .slot-time {
      font-size: .7rem; color: var(--muted);
      letter-spacing: .05em;
      padding-top: 13px;
      text-align: right;
      padding-right: 18px;
      border-right: 2px solid var(--sky);
      line-height: 1.5;
      position: relative;
    }

    .slot-time::after {
      content: '';
      position: absolute; right: -5px; top: 17px;
      width: 8px; height: 8px;
      background: var(--azure);
      transform: rotate(45deg);
    }

    .slot-events { display: flex; flex-direction: column; gap: 7px; padding-bottom: 4px; }

    .event-card {
      background: var(--off);
      border-radius: 10px;
      padding: 11px 16px;
      border: 1px solid transparent;
      transition: transform .2s, box-shadow .2s, border-color .2s;
      position: relative; overflow: hidden;
    }

    .event-card::before {
      content: '';
      position: absolute; top: 0; right: 0;
      width: 48px; height: 100%;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cg fill='none' stroke='rgba(46,123,181,0.08)' stroke-width='1'%3E%3Cpolygon points='24,2 46,14 46,34 24,46 2,34 2,14'/%3E%3C/g%3E%3C/svg%3E") center/40px no-repeat;
      pointer-events: none;
    }

    .event-card:hover {
      transform: translateX(5px);
      box-shadow: 0 3px 16px rgba(13,35,64,.1);
      border-color: var(--sky);
    }

    .event-card.zoom   { border-left: 3px solid var(--azure); }
    .event-card.luring { border-left: 3px solid var(--gold); }
    .event-card.plain  { border-left: 3px solid rgba(13,35,64,.15); }

    .event-name {
      font-size: .86rem; font-weight: 500; color: var(--navy);
      line-height: 1.4;
    }

    .event-venue {
      font-size: .7rem; color: var(--muted);
      margin-top: 3px; letter-spacing: .04em;
    }

    /* ══ Special cards ══ */
    .tm-card {
      background: linear-gradient(135deg, var(--navy) 0%, var(--blue) 100%);
      border-radius: 14px;
      padding: 22px 26px;
      color: #fff;
      display: flex; align-items: center; gap: 18px;
      margin-bottom: 10px;
      border: 1px solid rgba(201,168,76,.3);
      position: relative; overflow: hidden;
    }

    .tm-card::after {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cg fill='none' stroke='rgba(201,168,76,0.07)' stroke-width='1'%3E%3Cpolygon points='40,4 76,22 76,58 40,76 4,58 4,22'/%3E%3Cpolygon points='40,16 64,28 64,52 40,64 16,52 16,28'/%3E%3C/g%3E%3C/svg%3E") repeat;
      background-size: 80px; pointer-events: none;
    }

    .tm-icon { font-size: 1.8rem; flex-shrink: 0; position: relative; z-index: 1; }
    .tm-body { position: relative; z-index: 1; }
    .tm-label  { font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: 3px; }
    .tm-name   { font-family: 'Amiri', serif; font-size: 1.1rem; font-weight: 700; }
    .tm-detail { font-size: .73rem; color: var(--sky); margin-top: 2px; }

    .deadline-card {
      background: #fff;
      border: 2px solid var(--gold);
      border-radius: 12px;
      padding: 15px 20px;
      display: flex; align-items: center; gap: 14px;
      margin-bottom: 10px;
    }

    .deadline-icon  { font-size: 1.3rem; flex-shrink: 0; }
    .deadline-label { font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 2px; }
    .deadline-name  { font-size: .9rem; font-weight: 500; color: var(--navy); }
    .deadline-time  {
      margin-left: auto; font-size: .75rem; color: var(--navy);
      background: var(--gold-lt); padding: 4px 12px; border-radius: 40px;
      white-space: nowrap; flex-shrink: 0; font-weight: 500;
    }

    /* ══ Footer ══ */
    footer {
      position: relative; z-index: 1;
      background: var(--navy);
      text-align: center;
      padding: 32px 24px;
      font-size: .72rem; color: var(--sky);
      letter-spacing: .08em;
    }

    footer strong { color: var(--gold-lt); font-weight: 400; }

    .footer-ornament {
      display: flex; justify-content: center; align-items: center;
      gap: 10px; margin-bottom: 14px; color: var(--gold); font-size: .8rem;
    }

    @keyframes fadeDown {
      from { opacity: 0; transform: translateY(-16px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 600px) {
      .hero-inner { padding: 50px 20px 44px; }
      .reg-card { flex-direction: column; align-items: flex-start; }
      .slot { grid-template-columns: 88px 1fr; gap: 0 10px; }
      .slot-time { font-size: .62rem; padding-right: 10px; }
    }