
    :root {
      --ink: #17312d;
      --muted: #5d706d;
      --brand: #123b35;
      --brand-2: #1e6659;
      --gold: #c9a85f;
      --paper: #ffffff;
      --soft: #f2f7f5;
      --line: #d8e5e1;
      --danger: #a33b36;
      --success: #176c4d;
      --shadow: 0 22px 65px rgba(18,59,53,.13);
      --radius: 22px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background:
        radial-gradient(circle at 15% 0%, rgba(201,168,95,.18), transparent 34%),
        radial-gradient(circle at 95% 10%, rgba(30,102,89,.16), transparent 30%),
        linear-gradient(180deg, #eef6f3 0%, #f8fbfa 42%, #eef5f3 100%);
      font-family: -apple-system, BlinkMacSystemFont, "Noto Sans Sinhala",
        "Segoe UI", Arial, sans-serif;
      line-height: 1.55;
      min-height: 100vh;
    }

    button, input, select, textarea { font: inherit; }

    .page {
      width: min(940px, calc(100% - 28px));
      margin: 0 auto;
      padding: max(20px, env(safe-area-inset-top)) 0
        max(42px, env(safe-area-inset-bottom));
    }

    .hero {
      position: relative;
      overflow: hidden;
      padding: 38px 30px 32px;
      border-radius: 28px;
      background: linear-gradient(135deg, var(--brand), #0d2e2a 70%);
      color: #fff;
      box-shadow: var(--shadow);
    }

    .hero::after {
      content: "";
      position: absolute;
      width: 260px;
      height: 260px;
      right: -90px;
      top: -90px;
      border: 1px solid rgba(255,255,255,.17);
      border-radius: 50%;
      box-shadow:
        0 0 0 38px rgba(255,255,255,.035),
        0 0 0 76px rgba(255,255,255,.025);
    }

    .mark {
      width: 62px;
      height: 62px;
      display: grid;
      place-items: center;
      border-radius: 18px;
      background: rgba(255,255,255,.1);
      border: 1px solid rgba(255,255,255,.18);
      margin-bottom: 20px;
    }

    .mark svg { width: 34px; height: 34px; }

    .eyebrow {
      margin: 0 0 7px;
      color: #e4cc95;
      font-size: .79rem;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    h1 {
      position: relative;
      z-index: 1;
      margin: 0;
      max-width: 760px;
      font-size: clamp(1.65rem, 5vw, 2.75rem);
      line-height: 1.18;
      letter-spacing: -.025em;
    }

    .hero-en {
      margin: 10px 0 0;
      max-width: 720px;
      color: rgba(255,255,255,.78);
      font-size: 1rem;
    }

    .notice-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-top: 18px;
    }

    .notice {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: rgba(255,255,255,.88);
      padding: 18px;
      box-shadow: 0 10px 30px rgba(18,59,53,.06);
    }

    .notice strong { display: block; margin-bottom: 5px; }
    .notice p { margin: 0; color: var(--muted); font-size: .94rem; }
    .notice.privacy { border-left: 5px solid var(--gold); }
    .notice.status { border-left: 5px solid var(--brand-2); }

    form {
      margin-top: 18px;
      background: var(--paper);
      border: 1px solid rgba(216,229,225,.9);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .section {
      padding: 26px;
      border-bottom: 1px solid var(--line);
    }
    .section:last-of-type { border-bottom: 0; }

    .section-title {
      display: flex;
      align-items: flex-start;
      gap: 13px;
      margin-bottom: 20px;
    }

    .section-number {
      flex: 0 0 36px;
      height: 36px;
      display: grid;
      place-items: center;
      color: #fff;
      background: var(--brand);
      border-radius: 11px;
      font-weight: 800;
    }

    .section-title h2 {
      margin: 0;
      font-size: 1.12rem;
      line-height: 1.3;
    }

    .section-title p {
      margin: 3px 0 0;
      color: var(--muted);
      font-size: .88rem;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 17px;
    }

    .field.full { grid-column: 1 / -1; }

    label {
      display: block;
      margin-bottom: 7px;
      font-weight: 750;
      font-size: .94rem;
    }

    .en {
      display: block;
      color: var(--muted);
      font-size: .78rem;
      font-weight: 550;
      margin-top: 1px;
    }

    .optional {
      color: var(--muted);
      font-weight: 550;
      font-size: .76rem;
    }

    input, select, textarea {
      width: 100%;
      border: 1px solid #cbdcd7;
      background: #fbfdfc;
      color: var(--ink);
      border-radius: 12px;
      padding: 13px 14px;
      outline: none;
      transition: border-color .18s, box-shadow .18s, background .18s;
    }

    textarea { min-height: 112px; resize: vertical; }

    input:focus, select:focus, textarea:focus {
      border-color: var(--brand-2);
      background: #fff;
      box-shadow: 0 0 0 4px rgba(30,102,89,.11);
    }

    .help {
      margin: 6px 0 0;
      color: var(--muted);
      font-size: .75rem;
    }

    .inline-check {
      display: flex;
      gap: 9px;
      align-items: flex-start;
      margin-top: 9px;
      color: var(--muted);
      font-size: .83rem;
    }

    .inline-check input {
      width: 18px;
      height: 18px;
      margin: 2px 0 0;
      accent-color: var(--brand-2);
      flex: 0 0 auto;
    }

    fieldset {
      margin: 0;
      padding: 0;
      border: 0;
    }

    legend {
      display: block;
      margin-bottom: 9px;
      font-weight: 750;
      font-size: .94rem;
    }

    .choice-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .choice {
      display: flex;
      align-items: center;
      gap: 9px;
      border: 1px solid #cbdcd7;
      border-radius: 12px;
      padding: 12px 13px;
      background: #fbfdfc;
      cursor: pointer;
    }

    .choice:has(input:checked) {
      border-color: var(--brand-2);
      background: #edf7f4;
      box-shadow: inset 0 0 0 1px var(--brand-2);
    }

    .choice input {
      width: 18px;
      height: 18px;
      margin: 0;
      accent-color: var(--brand-2);
    }

    .consent-box {
      padding: 16px;
      border: 1px solid var(--line);
      background: var(--soft);
      border-radius: 14px;
    }

    .consent-box + .consent-box { margin-top: 12px; }

    .consent-box label {
      display: flex;
      gap: 11px;
      align-items: flex-start;
      margin: 0;
      cursor: pointer;
    }

    .consent-box input {
      width: 20px;
      height: 20px;
      flex: 0 0 auto;
      margin-top: 2px;
      accent-color: var(--brand-2);
    }

    .consent-copy {
      font-size: .9rem;
      font-weight: 650;
    }

    .consent-copy .en {
      margin-top: 5px;
      line-height: 1.45;
    }

    .actions {
      padding: 22px 26px 26px;
      background: #f7faf9;
    }

    .submit {
      width: 100%;
      border: 0;
      border-radius: 14px;
      padding: 15px 20px;
      color: #fff;
      background: linear-gradient(135deg, var(--brand-2), var(--brand));
      font-weight: 850;
      cursor: pointer;
      box-shadow: 0 12px 28px rgba(18,59,53,.2);
      transition: transform .18s, opacity .18s;
    }

    .submit:hover { transform: translateY(-1px); }
    .submit:disabled { cursor: wait; opacity: .68; transform: none; }

    .submit small {
      display: block;
      margin-top: 2px;
      color: rgba(255,255,255,.74);
      font-weight: 550;
    }

    .status-message {
      display: none;
      margin-top: 14px;
      padding: 14px;
      border-radius: 12px;
      font-size: .9rem;
    }

    .status-message.sending {
      display: block;
      color: #604a16;
      background: #fff7dd;
      border: 1px solid #ead393;
    }

    .status-message.success {
      display: block;
      color: #12593f;
      background: #e9f8f1;
      border: 1px solid #a9dac6;
    }

    .status-message.error {
      display: block;
      color: #852f2b;
      background: #fff0ef;
      border: 1px solid #e3b1ae;
    }

    footer {
      padding: 21px 5px 0;
      text-align: center;
      color: var(--muted);
      font-size: .78rem;
    }

    .required-note {
      margin: 0 0 16px;
      color: var(--muted);
      font-size: .8rem;
    }

    .required { color: var(--danger); }

    .honeypot {
      position: absolute !important;
      left: -10000px !important;
      top: auto !important;
      width: 1px !important;
      height: 1px !important;
      overflow: hidden !important;
    }

    @media (max-width: 680px) {
      .page { width: min(100% - 18px, 940px); }
      .hero { padding: 29px 21px 25px; border-radius: 22px; }
      .notice-grid, .grid { grid-template-columns: 1fr; }
      .field.full { grid-column: auto; }
      .section { padding: 22px 18px; }
      .actions { padding: 18px; }
      .choice-row { grid-template-columns: 1fr; }
      input, select, textarea { font-size: 16px; }
    }

    @media (prefers-reduced-motion: reduce) {
      * { scroll-behavior: auto !important; transition: none !important; }
    }
  