/* ============================= TOKENS ============================= */
    :root {
      --blush: #F8DCE5;
      --blush-soft: #FCF0F4;
      --blush-deep: #F0C4D6;
      --white: #FFFFFF;
      --lavender: #B89AD9;
      --lavender-soft: #E9DEF4;
      --plum: #4A2C5E;
      --plum-deep: #341F45;
      --ink: #2B2233;
      --ink-soft: #6B5E75;
      --gold: #C9A87C;
      --line: #E4CFDA;

      --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
      --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

      --radius-sm: 10px;
      --radius-md: 18px;
      --radius-lg: 32px;
      --shadow-soft: 0 20px 60px -20px rgba(74, 44, 94, 0.25);
      --shadow-card: 0 10px 30px -12px rgba(74, 44, 94, 0.18);
      --ease: cubic-bezier(.22, .61, .36, 1);
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
      }
    }

    body {
      margin: 0;
      font-family: var(--sans);
      color: var(--ink);
      background: var(--white);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    img {
      max-width: 100%;
      display: block;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    h1,
    h2,
    h3,
    h4 {
      font-family: var(--serif);
      font-weight: 500;
      margin: 0;
      color: var(--plum-deep);
    }

    p {
      margin: 0;
    }

    button {
      font-family: inherit;
      cursor: pointer;
    }

    input,
    textarea {
      font-family: inherit;
    }

    .container {
      max-width: 1180px;
      margin: 0 auto;
      padding: 0 32px;
    }

    @media (max-width:640px) {
      .container {
        padding: 0 22px;
      }
    }

    .eyebrow {
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--lavender);
      font-weight: 600;
      display: inline-flex;
      align-items: center;
      gap: 10px;
    }

    .eyebrow::before {
      content: "";
      width: 22px;
      height: 1px;
      background: var(--gold);
      display: inline-block;
    }

    .section {
      padding: 120px 0;
      position: relative;
    }

    @media (max-width:768px) {
      .section {
        padding: 80px 0;
      }
    }

    .section-head {
      max-width: 640px;
      margin: 0 0 56px;
    }

    .section-head.center {
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .section-title {
      font-size: clamp(30px, 4vw, 44px);
      line-height: 1.15;
      margin-top: 14px;
    }

    .section-sub {
      font-size: 17px;
      color: var(--ink-soft);
      margin-top: 16px;
      line-height: 1.7;
    }

    /* focus visibility */
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    textarea:focus-visible {
      outline: 2px solid var(--plum);
      outline-offset: 3px;
      border-radius: 4px;
    }

    /* ============================= REVEAL ============================= */
    .reveal {
      opacity: 0;
      transform: translateY(26px);
      transition: opacity .9s var(--ease), transform .9s var(--ease);
    }

    .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    .reveal-stagger>* {
      transition-delay: calc(var(--i, 0) * 90ms);
    }

    /* ============================= SIGNATURE ARCH MOTIF ============================= */
    .arch-frame {
      position: relative;
      border-radius: 220px 220px 18px 18px;
      overflow: hidden;
      isolation: isolate;
    }

    .sprig {
      position: absolute;
      opacity: 0.5;
      pointer-events: none;
      z-index: 0;
    }

    /* ============================= BUTTONS ============================= */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 16px 32px;
      border-radius: 100px;
      font-size: 14.5px;
      font-weight: 600;
      letter-spacing: 0.01em;
      border: 1px solid transparent;
      transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
      white-space: nowrap;
    }

    .btn-primary {
      background: var(--plum);
      color: var(--white);
      box-shadow: 0 14px 30px -10px rgba(74, 44, 94, 0.55);
    }

    .btn-primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 38px -10px rgba(74, 44, 94, 0.65);
      background: var(--plum-deep);
    }

    .btn-ghost {
      background: transparent;
      color: var(--plum);
      border-color: var(--plum);
    }

    .btn-ghost:hover {
      background: var(--plum);
      color: var(--white);
      transform: translateY(-2px);
    }

    .btn-light {
      background: var(--white);
      color: var(--plum);
      box-shadow: var(--shadow-card);
    }

    .btn-light:hover {
      background: var(--plum-deep);
      color: var(--white);
      transform: translateY(-2px);
      box-shadow: 0 20px 40px -14px rgba(74, 44, 94, 0.3);
    }

    .btn-sm {
      padding: 11px 22px;
      font-size: 13px;
    }

    /* ============================= NAV ============================= */
    .site-nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 900;
      padding: 20px 0;
      transition: padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
    }

    .site-nav.scrolled {
      padding: 12px 0;
      background: rgba(255, 255, 255, 0.78);
      backdrop-filter: blur(16px) saturate(160%);
      -webkit-backdrop-filter: blur(16px) saturate(160%);
      box-shadow: 0 8px 30px -18px rgba(74, 44, 94, 0.35);
      border-bottom: 1px solid rgba(184, 154, 217, 0.25);
    }

    .nav-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-shrink: 0;
    }

    .brand img {
      width: 42px;
      height: 42px;
      border-radius: 50%;
    }

    .brand-text {
      display: flex;
      flex-direction: column;
      line-height: 1.15;
      white-space: nowrap;
    }

    .brand-text strong {
      font-family: var(--serif);
      font-size: 16px;
      color: var(--plum-deep);
    }

    .brand-text span {
      font-size: 10.5px;
      letter-spacing: 0.14em;
      color: var(--ink-soft);
      text-transform: uppercase;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 22px;
      flex-wrap: nowrap;
    }

    .nav-links a {
      font-size: 13px;
      font-weight: 500;
      color: var(--ink);
      position: relative;
      padding: 6px 0;
      white-space: nowrap;
    }

    .nav-links a::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      height: 1.5px;
      width: 0%;
      background: var(--plum);
      transition: width .35s var(--ease);
    }

    .nav-links a:hover::after {
      width: 100%;
    }

    .nav-cta {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
    }

    .nav-toggle {
      display: none;
      width: 42px;
      height: 42px;
      border-radius: 50%;
      border: 1px solid var(--line);
      background: var(--white);
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 5px;
    }

    .nav-toggle span {
      width: 18px;
      height: 1.5px;
      background: var(--plum-deep);
      display: block;
      transition: .3s var(--ease);
    }

    .nav-toggle.open span:nth-child(1) {
      transform: translateY(6.5px) rotate(45deg);
    }

    .nav-toggle.open span:nth-child(2) {
      opacity: 0;
    }

    .nav-toggle.open span:nth-child(3) {
      transform: translateY(-6.5px) rotate(-45deg);
    }

    .mobile-panel {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 850;
      background: var(--white);
      padding: 110px 32px 40px;
      flex-direction: column;
      gap: 26px;
      transform: translateY(-8px);
      opacity: 0;
      pointer-events: none;
      transition: opacity .35s var(--ease), transform .35s var(--ease);
    }

    .mobile-panel.open {
      display: flex;
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .mobile-panel a {
      font-family: var(--serif);
      font-size: 26px;
      color: var(--plum-deep);
    }

    @media (max-width:1180px) {
      .nav-links {
        display: none;
      }

      .nav-toggle {
        display: flex;
      }
    }

    /* ============================= HERO ============================= */
    .hero {
      position: relative;
      padding: 180px 0 120px;
      background:
        radial-gradient(ellipse 900px 500px at 15% -10%, rgba(184, 154, 217, 0.28), transparent 60%),
        radial-gradient(ellipse 800px 600px at 100% 0%, rgba(248, 220, 229, 0.9), transparent 55%),
        linear-gradient(180deg, var(--white) 0%, var(--blush-soft) 100%);
      overflow: hidden;
    }

    .blob {
      position: absolute;
      border-radius: 50%;
      filter: blur(60px);
      z-index: 0;
      animation: float 16s ease-in-out infinite;
    }

    .blob-1 {
      width: 420px;
      height: 420px;
      background: rgba(184, 154, 217, 0.35);
      top: -120px;
      right: -100px;
      animation-duration: 20s;
    }

    .blob-2 {
      width: 320px;
      height: 320px;
      background: rgba(248, 220, 229, 0.9);
      bottom: -80px;
      left: -60px;
      animation-duration: 17s;
      animation-delay: 1s;
    }

    .blob-3 {
      width: 180px;
      height: 180px;
      background: rgba(201, 168, 124, 0.18);
      top: 40%;
      left: 6%;
      animation-duration: 14s;
      animation-delay: 2s;
    }

    @keyframes float {

      0%,
      100% {
        transform: translate(0, 0) scale(1);
      }

      50% {
        transform: translate(24px, -30px) scale(1.06);
      }
    }

    .hero-inner {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 880px;
      margin: 0 auto;
      padding: 0 32px;
    }

    .hero h1 {
      font-size: clamp(38px, 6.4vw, 74px);
      line-height: 1.06;
      margin-top: 0;
      letter-spacing: -0.01em;
    }

    .hero h1 em {
      font-style: italic;
      color: var(--lavender);
      font-weight: 400;
    }

    .hero-code {
      display: block;
      font-family: var(--sans);
      font-size: 15px;
      font-weight: 600;
      letter-spacing: 0.3em;
      color: var(--gold);
      text-transform: uppercase;
      margin-top: 18px;
    }

    .hero-theme {
      font-family: var(--serif);
      font-style: italic;
      font-size: 18px;
      color: var(--plum);
      max-width: 560px;
      margin: 22px auto 0;
      line-height: 1.6;
    }

    .hero-meta {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 22px;
      flex-wrap: wrap;
      margin-top: 30px;
      font-size: 15.5px;
      color: var(--ink-soft);
      font-weight: 500;
    }

    .hero-meta span {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .hero-meta .dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--gold);
    }

    .hero-actions {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      flex-wrap: wrap;
      margin-top: 40px;
    }

    /* countdown */
    .countdown {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      flex-wrap: wrap;
      margin-top: 64px;
    }

    .countdown-unit {
      background: rgba(255, 255, 255, 0.7);
      border: 1px solid rgba(184, 154, 217, 0.35);
      backdrop-filter: blur(10px);
      border-radius: var(--radius-md);
      padding: 18px 22px;
      min-width: 88px;
      text-align: center;
      box-shadow: var(--shadow-card);
    }

    .countdown-unit .num {
      font-family: var(--serif);
      font-size: 32px;
      color: var(--plum-deep);
      font-weight: 500;
      display: block;
      font-variant-numeric: tabular-nums;
    }

    .countdown-unit .lbl {
      font-size: 10.5px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--ink-soft);
      margin-top: 4px;
      display: block;
    }

    .countdown-sep {
      font-family: var(--serif);
      font-size: 24px;
      color: var(--lavender);
    }

    @media (max-width:640px) {
      .countdown-sep {
        display: none;
      }

      .countdown-unit {
        min-width: 74px;
        padding: 14px 12px;
      }
    }

    /* ============================= ABOUT ============================= */
    .about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start;
    }

    @media (max-width:900px) {
      .about-grid {
        grid-template-columns: 1fr;
        gap: 48px;
      }
    }

    .about-copy p {
      font-size: 16.5px;
      line-height: 1.85;
      color: var(--ink-soft);
      margin-top: 18px;
    }

    .about-copy p:first-of-type {
      margin-top: 0;
    }

    .pull-line {
      font-family: var(--serif);
      font-style: italic;
      font-size: 22px;
      color: var(--plum);
      border-left: 2px solid var(--gold);
      padding-left: 20px;
      margin: 28px 0;
      line-height: 1.5;
    }

    .why-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    @media(max-width:560px) {
      .why-grid {
        grid-template-columns: 1fr;
      }
    }

    .why-card {
      background: var(--blush-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 26px 24px;
      transition: transform .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease);
    }

    .why-card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-card);
      background: var(--white);
    }

    .why-icon {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--white);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 14px;
      box-shadow: 0 6px 16px -8px rgba(74, 44, 94, 0.3);
    }

    .why-card h4 {
      font-size: 16.5px;
      color: var(--plum-deep);
      margin-bottom: 8px;
    }

    .why-card p {
      font-size: 14px;
      color: var(--ink-soft);
      line-height: 1.6;
    }

    .welcome-card {
      margin-top: 32px;
      margin-bottom: 32px;
      background: var(--blush-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 30px 28px;
    }

    .welcome-card-first {
      margin-top: 0;
    }

    .welcome-card .eyebrow {
      margin-bottom: 12px;
    }

    .welcome-card p {
      font-size: 15px;
      line-height: 1.75;
      color: var(--ink-soft);
      margin-top: 0;
    }

    .welcome-card p em {
      font-style: italic;
      color: var(--plum);
    }

    .welcome-sig {
      margin-top: 18px;
      padding-top: 16px;
      border-top: 1px solid var(--line);
    }

    .welcome-sig strong {
      display: block;
      font-family: var(--serif);
      font-size: 16px;
      color: var(--plum-deep);
    }

    .welcome-sig span {
      font-size: 12.5px;
      color: var(--lavender);
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .why-psy {
      margin-top: 96px;
      text-align: center;
    }

    .why-psy .eyebrow {
      justify-content: center;
    }

    .why-psy .section-title {
      margin-left: auto;
      margin-right: auto;
    }

    .why-psy .section-sub {
      margin-left: auto;
      margin-right: auto;
    }

    .chip-list {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      justify-content: center;
      margin-top: 36px;
    }

    .chip {
      font-size: 13.5px;
      font-weight: 500;
      color: var(--plum);
      background: var(--white);
      border: 1px solid var(--line);
      padding: 11px 20px;
      border-radius: 100px;
      transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
    }

    .chip:hover {
      background: var(--blush);
      transform: translateY(-3px);
      box-shadow: var(--shadow-card);
    }

    /* ============================= CFP ============================= */

    .cfp {
      background: var(--plum-deep);
      color: var(--white);
      border-radius: var(--radius-lg);
      margin: 0 24px;
      padding: 100px 0;
      position: relative;
      overflow: hidden;
    }

    @media(min-width:641px) {
      .cfp {
        margin-left: auto;
        margin-right: auto;
      }
    }

    @media(max-width:640px) {
      .cfp {
        margin: 0 12px;
        padding: 70px 0;
        border-radius: 26px;
      }
    }

    .cfp::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(600px 400px at 90% 0%, rgba(184, 154, 217, 0.25), transparent 60%),
        radial-gradient(500px 400px at 5% 100%, rgba(248, 220, 229, 0.12), transparent 60%);
      pointer-events: none;
    }

    .cfp .eyebrow {
      color: var(--lavender);
    }

    .cfp .eyebrow::before {
      background: var(--gold);
    }

    .cfp .section-title,
    .cfp h3 {
      color: var(--white);
    }

    .cfp .section-sub {
      color: rgba(255, 255, 255, 0.68);
    }

    .cfp .btn-ghost {
      color: var(--white);
      border-color: rgba(255, 255, 255, 0.55);
    }

    .cfp .btn-ghost:hover {
      background: var(--white);
      color: var(--plum-deep);
      border-color: var(--white);
    }

    .track-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-top: 10px;
      position: relative;
      z-index: 1;
    }

    @media(max-width:900px) {
      .track-grid {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media(max-width:640px) {
      .track-grid {
        grid-template-columns: 1fr;
      }
    }

    .track-card {
      background: rgba(255, 255, 255, 0.06);
      border: 1px solid rgba(255, 255, 255, 0.14);
      border-radius: var(--radius-md);
      padding: 26px 22px;
      backdrop-filter: blur(6px);
      transition: transform .4s var(--ease), background .4s var(--ease), border-color .4s var(--ease);
    }

    .track-card:hover {
      transform: translateY(-6px);
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(184, 154, 217, 0.5);
    }

    .track-card .track-no {
      font-family: var(--serif);
      font-size: 13px;
      color: var(--lavender);
      letter-spacing: 0.1em;
    }

    .track-card h4 {
      color: var(--white);
      font-size: 17px;
      margin: 10px 0 8px;
    }

    .track-card p {
      font-size: 13.5px;
      color: rgba(255, 255, 255, 0.62);
      line-height: 1.6;
    }

    .cat-row {
      margin-top: 52px;
      position: relative;
      z-index: 1;
    }

    .cat-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 16px;
    }

    .cat-pill {
      font-size: 13.5px;
      font-weight: 600;
      color: var(--white);
      background: rgba(255, 255, 255, 0.1);
      border: 1px solid rgba(184, 154, 217, 0.5);
      padding: 10px 20px;
      border-radius: 100px;
    }

    .cat-note {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.5);
      margin-top: 14px;
    }

    .process-row {
      display: flex;
      gap: 0;
      margin-top: 64px;
      position: relative;
      z-index: 1;
      flex-wrap: wrap;
    }

    .process-step {
      flex: 1;
      min-width: 150px;
      position: relative;
      padding: 0 18px;
    }

    .process-step:first-child {
      padding-left: 0;
    }

    .process-step::before {
      content: attr(data-n);
      font-family: var(--serif);
      font-size: 34px;
      color: var(--gold);
      display: block;
      margin-bottom: 10px;
    }

    .process-step h5 {
      font-family: var(--serif);
      font-size: 15.5px;
      color: var(--white);
      font-weight: 500;
      margin-bottom: 6px;
    }

    .process-step p {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.55);
      line-height: 1.55;
    }

    .process-line {
      position: absolute;
      top: 20px;
      left: -6px;
      width: 12px;
      height: 1px;
      background: rgba(255, 255, 255, 0.25);
    }

    .process-step:first-child .process-line {
      display: none;
    }

    .dates-strip {
      margin-top: 56px;
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
      position: relative;
      z-index: 1;
    }

    .date-pill {
      flex: 1;
      min-width: 180px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.15);
      border-radius: 100px;
      padding: 14px 22px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .date-pill .lbl {
      font-size: 12.5px;
      color: rgba(255, 255, 255, 0.6);
    }

    .date-pill .val {
      font-family: var(--serif);
      font-size: 15px;
      color: var(--white);
    }

    .cfp-cta {
      margin-top: 56px;
      position: relative;
      z-index: 1;
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
    }

    @media(max-width:900px) {
      .cfp-cta {
        justify-content: center;
      }
    }

    /* ============================= PARTNERS SHOWCASE ============================= */
    .partners-showcase {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px;
      max-width: 780px;
      margin: 0 auto;
    }

    .partner-org-card {
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      padding: 40px 32px;
      text-align: center;
      box-shadow: var(--shadow-card);
      transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    }

    .partner-org-card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-soft);
    }

    .partner-org-badge {
      width: 72px;
      height: 72px;
      border-radius: 50%;
      background: linear-gradient(155deg, var(--lavender-soft), var(--blush));
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 20px;
      box-shadow: 0 6px 16px -8px rgba(74, 44, 94, 0.3);
      overflow: hidden;
    }

    .partner-org-badge img {
      width: 42px;
      height: 42px;
      border-radius: 50%;
    }

    .partner-org-badge span {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 500;
      color: var(--plum);
      letter-spacing: 0.02em;
    }

    .partner-org-name {
      font-size: 18px;
      color: var(--plum-deep);
      margin-bottom: 6px;
      line-height: 1.3;
    }

    .partner-org-role {
      font-size: 12px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--lavender);
      font-weight: 600;
    }

    @media(max-width:640px) {
      .partners-showcase {
        grid-template-columns: 1fr;
        gap: 18px;
      }
    }

    /* ============================= SPONSORSHIP ============================= */
    .partner-group {
      margin-top: 64px;
    }

    .partner-group:first-of-type {
      margin-top: 56px;
    }

    .partner-group-title {
      font-size: 22px;
      text-align: center;
      margin-bottom: 6px;
    }

    .partner-group-sub {
      text-align: center;
      font-size: 13.5px;
      color: var(--ink-soft);
      margin-bottom: 28px;
    }

    .tier-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
    }

    .tier-grid-3 {
      grid-template-columns: repeat(3, 1fr);
      margin-top: 24px;
    }

    .tier-grid-2 {
      grid-template-columns: repeat(2, 1fr);
      margin-top: 24px;
    }

    @media(max-width:1000px) {
      .tier-grid {
        grid-template-columns: 1fr 1fr;
      }

      .tier-grid-3 {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media(max-width:560px) {
      .tier-grid {
        grid-template-columns: 1fr;
      }

      .tier-grid-3,
      .tier-grid-2 {
        grid-template-columns: 1fr;
      }
    }

    .tier-card {
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 32px 24px;
      background: var(--white);
      transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .tier-card:hover {
      transform: translateY(-8px);
      box-shadow: var(--shadow-soft);
      border-color: transparent;
    }

    .tier-card.featured {
      background: linear-gradient(180deg, var(--plum) 0%, var(--plum-deep) 100%);
      color: var(--white);
      border-color: transparent;
    }

    .tier-card.featured .tier-name,
    .tier-card.featured .tier-price {
      color: var(--white);
    }

    .tier-card.featured .tier-feat {
      color: rgba(255, 255, 255, 0.75);
    }

    .tier-card.featured .tier-feat li {
      color: rgba(255, 255, 255, 0.75);
    }

    .tier-card.featured .tier-feat li::before {
      color: var(--gold);
    }

    .tier-name {
      font-family: var(--serif);
      font-size: 20px;
      color: var(--plum-deep);
    }

    .tier-price {
      font-size: 13px;
      color: var(--ink-soft);
      margin-top: 6px;
      font-weight: 500;
    }

    .tier-feat {
      margin-top: 20px;
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 11px;
    }

    .tier-feat li {
      font-size: 13.5px;
      color: var(--ink-soft);
      padding-left: 20px;
      position: relative;
      line-height: 1.5;
    }

    .tier-feat li::before {
      content: "—";
      position: absolute;
      left: 0;
      color: var(--gold);
    }

    .tier-card .btn {
      margin-top: 24px;
      width: 100%;
    }

    .brochure-row {
      margin-top: 56px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 24px;
      flex-wrap: wrap;
      background: var(--blush-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 30px 34px;
    }

    .brochure-row p {
      color: var(--ink-soft);
      font-size: 14.5px;
      max-width: 440px;
    }

    .brochure-row h4 {
      font-size: 19px;
      color: var(--plum-deep);
      margin-bottom: 6px;
    }

    /* ============================= REGISTRATION ============================= */
    .reg-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }

    @media(max-width:900px) {
      .reg-grid {
        grid-template-columns: 1fr;
      }
    }

    .reg-card {
      border-radius: var(--radius-lg);
      padding: 38px 30px;
      position: relative;
      overflow: hidden;
      border: 1px solid var(--line);
      background: var(--white);
      transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    }

    .reg-card:hover {
      transform: translateY(-8px);
      box-shadow: var(--shadow-soft);
    }

    .reg-card.popular {
      border-color: var(--lavender);
      box-shadow: 0 20px 50px -20px rgba(184, 154, 217, 0.55);
    }

    .reg-tag {
      position: absolute;
      top: 22px;
      right: -38px;
      background: var(--gold);
      color: var(--white);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 6px 44px;
      transform: rotate(38deg);
    }

    .reg-card h4 {
      font-size: 14px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--lavender);
      font-weight: 600;
      font-family: var(--sans);
    }

    .reg-price {
      font-family: var(--serif);
      font-size: 44px;
      color: var(--plum-deep);
      margin-top: 14px;
    }

    .reg-price span {
      font-size: 15px;
      font-family: var(--sans);
      color: var(--ink-soft);
      font-weight: 500;
    }

    .reg-note {
      font-size: 12.5px;
      color: var(--ink-soft);
      margin-top: 4px;
    }

    .reg-feat {
      margin-top: 26px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .reg-feat li {
      font-size: 14px;
      color: var(--ink-soft);
      padding-left: 24px;
      position: relative;
    }

    .reg-feat li::before {
      content: "✓";
      position: absolute;
      left: 0;
      color: var(--lavender);
      font-weight: 700;
    }

    .reg-card .btn {
      margin-top: 28px;
      width: 100%;
    }

    .fee-table-wrap {
      overflow-x: auto;
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-card);
      border: 1px solid var(--line);
      -webkit-overflow-scrolling: touch;
    }

    .fee-table {
      width: 100%;
      border-collapse: collapse;
      min-width: 760px;
      background: var(--white);
    }

    .fee-table th,
    .fee-table td {
      padding: 14px 16px;
      text-align: center;
      font-size: 13.5px;
      border-bottom: 1px solid var(--line);
      border-right: 1px solid var(--line);
    }

    .fee-table th:last-child,
    .fee-table td:last-child {
      border-right: none;
    }

    .fee-table thead th {
      background: var(--plum-deep);
      color: var(--white);
      font-weight: 600;
      font-size: 12.5px;
    }

    .fee-table thead th span {
      display: block;
      font-weight: 400;
      font-size: 11px;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 2px;
    }

    .fee-table tbody td {
      color: var(--ink-soft);
      font-family: var(--serif);
      font-size: 15px;
    }

    .fee-table tbody .fee-cat {
      font-family: var(--sans);
      font-weight: 700;
      color: var(--plum-deep);
      text-align: left;
      background: var(--blush-soft);
    }

    .fee-table tbody tr:last-child td {
      border-bottom: none;
    }

    .reg-lower {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px;
      margin-top: 56px;
    }

    @media(max-width:800px) {
      .reg-lower {
        grid-template-columns: 1fr;
        gap: 32px;
      }
    }

    .reg-block h4 {
      font-size: 18px;
      color: var(--plum-deep);
      margin-bottom: 16px;
    }

    .terms-list {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .terms-list li {
      font-size: 14px;
      color: var(--ink-soft);
      line-height: 1.6;
      padding-left: 22px;
      position: relative;
    }

    .terms-list li::before {
      content: "—";
      position: absolute;
      left: 0;
      color: var(--gold);
    }

    .payment-intro {
      font-size: 14px;
      color: var(--ink-soft);
      line-height: 1.7;
      margin-bottom: 18px;
    }

    .bank-details {
      background: var(--blush-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 20px 22px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .bank-details div {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      flex-wrap: wrap;
      border-bottom: 1px dashed var(--line);
      padding-bottom: 10px;
    }

    .bank-details div:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }

    .bank-details dt {
      font-size: 11.5px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--lavender);
      font-weight: 600;
    }

    .bank-details dd {
      margin: 0;
      font-size: 13.5px;
      color: var(--plum-deep);
      font-weight: 500;
      text-align: right;
    }

    .upi-qr-block {
      margin-top: 20px;
      background: var(--blush-soft);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 22px;
      display: flex;
      align-items: center;
      gap: 20px;
    }

    .upi-qr-block img {
      width: 108px;
      height: auto;
      border-radius: 10px;
      background: var(--white);
      border: 1px solid var(--line);
      flex-shrink: 0;
    }

    .upi-qr-copy .lbl {
      font-size: 11.5px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--lavender);
      font-weight: 600;
      display: block;
      margin-bottom: 6px;
    }

    .upi-qr-copy .upi-id {
      font-size: 13.5px;
      color: var(--plum-deep);
      font-weight: 500;
      word-break: break-word;
    }

    @media(max-width:480px) {
      .upi-qr-block {
        flex-direction: column;
        text-align: center;
      }
    }

    .reg-actions {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
      justify-content: center;
      margin-top: 48px;
    }

    /* ============================= SPEAKERS ============================= */
    .speaker-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 26px 22px;
    }

    @media(max-width:1000px) {
      .speaker-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:520px) {
      .speaker-grid {
        grid-template-columns: 1fr;
      }
    }

    .speaker-card {
      text-align: center;
    }

    .speaker-photo {
      aspect-ratio: 1/1.08;
      background: linear-gradient(155deg, var(--lavender-soft), var(--blush));
      border-radius: 180px 180px 16px 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
      transition: transform .5s var(--ease), box-shadow .5s var(--ease);
      box-shadow: var(--shadow-card);
    }

    .speaker-card:hover .speaker-photo {
      transform: translateY(-6px);
      box-shadow: var(--shadow-soft);
    }

    .speaker-photo .initials {
      font-family: var(--serif);
      font-size: 44px;
      color: var(--plum);
      opacity: 0.55;
    }

    .speaker-name {
      font-family: var(--serif);
      font-size: 17.5px;
      margin-top: 18px;
      color: var(--plum-deep);
    }

    .speaker-role {
      font-size: 13px;
      color: var(--ink-soft);
      margin-top: 5px;
      line-height: 1.5;
    }

    .speaker-inst {
      font-size: 12px;
      color: var(--lavender);
      margin-top: 3px;
      font-weight: 600;
      letter-spacing: 0.02em;
    }

    .discipline-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 18px;
    }

    .discipline-grid .why-card {
      text-align: center;
    }

    .discipline-grid .why-icon {
      margin: 0 auto 14px;
    }

    .discipline-grid h4 {
      font-size: 15px;
    }

    @media(max-width:900px) {
      .discipline-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:520px) {
      .discipline-grid {
        grid-template-columns: 1fr;
      }
    }

    /* ============================= SCHEDULE ============================= */
    .day-tabs {
      display: inline-flex;
      gap: 6px;
      padding: 6px;
      background: var(--blush-soft);
      border-radius: 100px;
      margin-bottom: 48px;
    }

    .day-tab {
      padding: 11px 26px;
      border-radius: 100px;
      font-size: 13.5px;
      font-weight: 600;
      color: var(--ink-soft);
      border: none;
      background: transparent;
      transition: .35s var(--ease);
    }

    .day-tab.active {
      background: var(--plum);
      color: var(--white);
      box-shadow: 0 10px 24px -10px rgba(74, 44, 94, 0.5);
    }

    .timeline {
      position: relative;
      display: none;
      flex-direction: column;
      gap: 0;
    }

    .timeline.active {
      display: flex;
    }

    .timeline::before {
      content: "";
      position: absolute;
      left: 118px;
      top: 8px;
      bottom: 8px;
      width: 1px;
      background: var(--line);
    }

    @media(max-width:640px) {
      .timeline::before {
        left: 14px;
      }
    }

    .tl-item {
      display: grid;
      grid-template-columns: 100px 1fr;
      gap: 24px;
      padding: 22px 0;
      position: relative;
    }

    @media(max-width:640px) {
      .tl-item {
        grid-template-columns: 1fr;
        gap: 8px;
        padding-left: 32px;
      }
    }

    .tl-time {
      font-family: var(--serif);
      font-size: 15px;
      color: var(--plum);
      padding-top: 2px;
    }

    .tl-dot {
      position: absolute;
      left: 114px;
      top: 26px;
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--gold);
      border: 2px solid var(--white);
      box-shadow: 0 0 0 1px var(--line);
    }

    @media(max-width:640px) {
      .tl-dot {
        left: 10px;
      }
    }

    .tl-card {
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 22px 24px;
      transition: transform .35s var(--ease), box-shadow .35s var(--ease);
    }

    .tl-card:hover {
      transform: translateX(4px);
      box-shadow: var(--shadow-card);
    }

    .tl-card h4 {
      font-size: 16.5px;
      color: var(--plum-deep);
    }

    .tl-card p {
      font-size: 13.5px;
      color: var(--ink-soft);
      margin-top: 6px;
    }

    .tl-meta {
      display: flex;
      gap: 14px;
      margin-top: 10px;
      flex-wrap: wrap;
    }

    .tl-badge {
      font-size: 11.5px;
      padding: 4px 12px;
      border-radius: 100px;
      background: var(--blush-soft);
      color: var(--plum);
      font-weight: 600;
    }

    /* ============================= VENUE ============================= */
    .venue-grid {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 0;
      border-radius: var(--radius-lg);
      overflow: hidden;
      box-shadow: var(--shadow-soft);
    }

    @media(max-width:900px) {
      .venue-grid {
        grid-template-columns: 1fr;
      }
    }

    .venue-map {
      min-height: 420px;
      background: var(--blush-soft);
      position: relative;
    }

    .venue-map iframe {
      width: 100%;
      height: 100%;
      min-height: 420px;
      border: 0;
      filter: saturate(0.85);
    }

    .venue-info {
      background: var(--plum-deep);
      color: var(--white);
      padding: 52px 44px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 26px;
    }

    .venue-info h3 {
      color: var(--white);
      font-size: 26px;
    }

    .venue-info .addr {
      color: rgba(255, 255, 255, 0.7);
      font-size: 14.5px;
      line-height: 1.7;
    }

    .travel-list {
      display: flex;
      flex-direction: column;
      gap: 18px;
      margin-top: 6px;
    }

    .travel-item {
      display: flex;
      gap: 16px;
      align-items: flex-start;
    }

    .travel-icon {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .travel-item h5 {
      font-size: 14.5px;
      color: var(--white);
      font-weight: 600;
      margin-bottom: 3px;
    }

    .travel-item p {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.5;
    }

    .stay-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    .stay-grid-2 {
      grid-template-columns: repeat(2, 1fr);
    }

    @media(max-width:768px) {
      .stay-grid {
        grid-template-columns: 1fr;
      }
    }

    @media(max-width:640px) {
      .stay-grid-2 {
        grid-template-columns: 1fr;
      }
    }

    /* ============================= CONTACT ============================= */
    .contact-grid {
      display: grid;
      grid-template-columns: 1fr 0.85fr;
      gap: 64px;
    }

    @media(max-width:900px) {
      .contact-grid {
        grid-template-columns: 1fr;
        gap: 44px;
      }
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
    }

    @media(max-width:520px) {
      .form-row {
        grid-template-columns: 1fr;
      }
    }

    .field {
      margin-bottom: 18px;
    }

    .field label {
      display: block;
      font-size: 12.5px;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--plum-deep);
      margin-bottom: 8px;
      text-transform: uppercase;
    }

    .field input,
    .field textarea,
    .field select {
      width: 100%;
      padding: 14px 16px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--line);
      background: var(--blush-soft);
      font-size: 14.5px;
      color: var(--ink);
      transition: border-color .3s, background .3s;
      appearance: none;
      -webkit-appearance: none;
    }

    .field select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%236B5E75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 16px center;
      padding-right: 40px;
    }

    .field input:focus,
    .field textarea:focus,
    .field select:focus {
      border-color: var(--lavender);
      background-color: var(--white);
      outline: none;
    }

    .field textarea {
      resize: vertical;
      min-height: 120px;
    }

    .field-hint {
      font-size: 12px;
      color: var(--ink-soft);
      margin-top: 6px;
    }

    .form-group-note {
      background: var(--lavender-soft);
      border-radius: var(--radius-sm);
      padding: 14px 16px;
      font-size: 13px;
      color: var(--plum-deep);
      line-height: 1.6;
      margin-bottom: 18px;
    }

    .form-note {
      font-size: 12px;
      color: var(--ink-soft);
      margin-top: 10px;
    }

    .form-success,
    .form-error {
      display: none;
      background: var(--blush-soft);
      border: 1px solid var(--lavender);
      border-radius: var(--radius-md);
      padding: 22px 24px;
      font-size: 14.5px;
      color: var(--plum-deep);
    }

    .form-error {
      border-color: #d98a8a;
      background: #fbe9e9;
    }

    .form-success.show,
    .form-error.show {
      display: block;
    }

    .contact-form.hide {
      display: none;
    }

    .contact-side {
      display: flex;
      flex-direction: column;
      gap: 28px;
    }

    .contact-item {
      display: flex;
      gap: 16px;
      align-items: center;
    }

    .contact-item .ico {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--white);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      box-shadow: 0 6px 16px -8px rgba(74, 44, 94, 0.3);
    }

    .contact-item h5 {
      font-size: 14px;
      color: var(--plum-deep);
      font-weight: 600;
      margin-bottom: 4px;
    }

    .contact-item p,
    .contact-item a {
      font-size: 14.5px;
      color: var(--ink-soft);
    }

    .contact-item a:hover {
      color: var(--plum);
    }

    .social-row {
      display: flex;
      gap: 12px;
      margin-top: 6px;
    }

    .social-row a {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      border: 1px solid var(--line);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: .3s var(--ease);
    }

    .social-row a:hover {
      background: var(--plum);
      border-color: var(--plum);
      color: var(--white);
      transform: translateY(-3px);
    }

    /* ============================= FOOTER ============================= */
    .site-footer {
      background: var(--plum-deep);
      color: rgba(255, 255, 255, 0.65);
      padding: 80px 0 30px;
      margin-top: 60px;
    }

    .footer-top {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr 1fr;
      gap: 48px;
      padding-bottom: 56px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    @media(max-width:900px) {
      .footer-top {
        grid-template-columns: 1fr 1fr;
        row-gap: 40px;
      }
    }

    @media(max-width:520px) {
      .footer-top {
        grid-template-columns: 1fr;
      }
    }

    .footer-brand {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 16px;
    }

    .footer-brand img {
      width: 44px;
      height: 44px;
      border-radius: 50%;
    }

    .footer-brand strong {
      font-family: var(--serif);
      color: var(--white);
      font-size: 16px;
      display: block;
    }

    .footer-col h6 {
      font-size: 12.5px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--lavender);
      font-weight: 600;
      margin-bottom: 18px;
    }

    .footer-col a {
      display: block;
      font-size: 14px;
      color: rgba(255, 255, 255, 0.62);
      padding: 6px 0;
      transition: color .3s;
    }

    .footer-col a:hover {
      color: var(--white);
    }

    .footer-bottom {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px;
      padding-top: 28px;
      font-size: 12.5px;
      color: rgba(255, 255, 255, 0.4);
    }

    /* skip link */
    .skip-link {
      position: absolute;
      left: -999px;
      top: 0;
      background: var(--plum);
      color: var(--white);
      padding: 12px 20px;
      z-index: 9999;
      border-radius: 0 0 10px 0;
    }

    .skip-link:focus {
      left: 0;
    }