  :root{
    --ink:#1b2430;
    --ink-soft:#4b5a6a;
    --line:#d8dfe6;
    --paper:#ffffff;
    --panel:#f6f8fa;
    --accent:#232f5a;
    --accent-dark:#141c38;
    --accent-soft:#eaecf3;
    --error:#a3312a;
    --radius:6px;
    --serif: Georgia, 'Times New Roman', Times, serif;
    --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--panel);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.5;
    padding:32px 16px 64px;
  }
  .sheet{
    max-width:920px;
    margin:0 auto;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
  }
  header.masthead{
    background:var(--paper);
    color:var(--ink);
    padding:34px 40px 22px;
    text-align:center;
  }
  .logo-wrap{
    margin-bottom:16px;
  }
  .logo-wrap svg{
    width:380px;
    height:auto;
    display:block;
    margin:0 auto;
  }
  header.masthead .kicker{
    font-family:var(--sans);
    font-size:12.5px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:700;
    margin-bottom:8px;
  }
  header.masthead h1{
    font-family:var(--serif);
    font-size:26px;
    font-weight:700;
    color:var(--accent-dark);
    margin:0 0 8px;
  }
  header.masthead p.lede{
    font-family:var(--serif);
    font-size:15.5px;
    color:var(--ink-soft);
    margin:0 auto;
    max-width:52ch;
  }
  .brand-bar{
    height:5px;
    background:linear-gradient(90deg,#1f3fae 0%,#2ec9ec 24%,#a3ec82 48%,#ebdc4a 68%,#ef6217 84%,#b51a0f 100%);
  }
  .intro{
    padding:26px 40px 6px;
    font-size:14.5px;
    color:var(--ink-soft);
  }
  .intro p{margin:0 0 14px;}
  .intro .notice{
    background:var(--accent-soft);
    border-left:3px solid var(--accent);
    padding:12px 16px;
    border-radius:4px;
    font-size:13.5px;
    color:var(--ink);
  }
  form{padding:8px 40px 40px;}
  fieldset{
    border:none;
    border-top:1px solid var(--line);
    margin:0 0 8px;
    padding:26px 0 6px;
  }
  fieldset:first-of-type{border-top:none;}
  legend{
    font-family:var(--serif);
    font-size:18px;
    font-weight:700;
    color:var(--accent-dark);
    padding:0;
    margin-bottom:4px;
  }
  .section-note{
    font-size:13px;
    color:var(--ink-soft);
    margin:0 0 16px;
  }
  .field{
    margin-bottom:18px;
  }
  .row{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  .row .field{flex:1 1 220px;}
  label{
    display:block;
    font-size:13.5px;
    font-weight:600;
    margin-bottom:5px;
    color:var(--ink);
  }
  label .optional{
    font-weight:400;
    color:var(--ink-soft);
    font-style:italic;
  }
  label .req{color:var(--error);}
  .help{
    font-size:12.5px;
    color:var(--ink-soft);
    margin:4px 0 0;
  }
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  select,
  textarea{
    width:100%;
    padding:10px 12px;
    font-size:14px;
    font-family:var(--sans);
    color:var(--ink);
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    outline:none;
    transition:border-color .15s;
  }
  input:focus, select:focus, textarea:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(31,78,95,.12);
  }
  textarea{resize:vertical;min-height:96px;font-family:var(--sans);}
  textarea.large{min-height:150px;}
  .chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .chip{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    font-weight:400;
    color:var(--ink);
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:999px;
    padding:7px 14px 7px 10px;
    cursor:pointer;
    transition:border-color .15s, background .15s;
  }
  .chip:has(input:checked){
    border-color:var(--accent);
    background:var(--accent-soft);
    color:var(--accent-dark);
    font-weight:600;
  }
  .chip input{margin:0;}
  .tci-panel{
    display:none;
    margin-top:6px;
    padding:16px 16px 4px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
  }
  .tci-panel.show{display:block;}
  .other-wrap{
    display:none;
    margin-top:8px;
  }
  .other-wrap.show{display:block;}
  .file-field{
    border:1px dashed var(--line);
    border-radius:var(--radius);
    padding:14px 16px;
    background:var(--panel);
  }
  .file-field input[type="file"]{
    width:100%;
    font-size:13px;
  }
  .checklist{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .check-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:12px 14px;
  }
  .check-item input{
    margin-top:3px;
    flex:0 0 auto;
  }
  .check-item label{
    margin:0;
    font-size:13.5px;
    font-weight:400;
    color:var(--ink);
  }
  .actions{
    margin-top:30px;
    padding-top:22px;
    border-top:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
  }
  .submit-btn{
    background:var(--accent);
    color:#fff;
    border:none;
    padding:12px 28px;
    font-size:14.5px;
    font-weight:600;
    border-radius:var(--radius);
    cursor:pointer;
    transition:background .15s;
  }
  .submit-btn:hover{background:var(--accent-dark);}
  .actions .fine-print{
    font-size:12px;
    color:var(--ink-soft);
    max-width:32ch;
  }
  .status-msg{
    display:none;
    margin-top:16px;
    padding:12px 16px;
    border-radius:var(--radius);
    font-size:13.5px;
  }
  .status-msg.success{
    display:block;
    background:#e8f3ea;
    border:1px solid #a9d3ae;
    color:#2a5c33;
  }
  .status-msg.error{
    display:block;
    background:#fbeceb;
    border:1px solid #e3b3af;
    color:var(--error);
  }
  footer.foot{
    padding:18px 40px 28px;
    font-size:12px;
    color:var(--ink-soft);
    border-top:1px solid var(--line);
  }
  @media (max-width:600px){
    header.masthead, .intro, form, footer.foot{padding-left:22px;padding-right:22px;}
  }
