:root {
  --application-border: #e7e5e4;
  --application-muted: #6f6962;
  --application-card: #fff;
  --application-focus: #5748e8;
}

.rs-application-shell { width:min(1120px,calc(100% - 40px)); margin:0 auto; }
.rs-application-hero { position:relative; overflow:hidden; padding:72px 0 54px; background:linear-gradient(180deg,#fafafa,#f5f5f5); }
.rs-application-hero::before { position:absolute; inset:-180px 42% auto -120px; width:520px; height:520px; border-radius:50%; background:#e9e0ee; filter:blur(100px); opacity:.72; content:""; }
.rs-application-hero__inner { position:relative; max-width:820px; text-align:center; }
.rs-application-kicker,.rs-application-form__heading span { color:var(--application-muted); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.rs-application-hero h1 { margin:14px 0 18px; font-family:"EB Garamond",serif; font-size:clamp(46px,9vw,76px); font-weight:300; letter-spacing:-.035em; line-height:.96; }
.rs-application-hero p { max-width:680px; margin:0 auto; color:#4e4e4e; font-size:18px; line-height:1.7; }
.rs-application-flow { border-block:1px solid var(--application-border); background:#fff; }
.rs-application-flow__grid { display:grid; grid-template-columns:1fr; }
.rs-application-flow__grid>div { display:grid; grid-template-columns:36px 1fr; gap:3px 12px; padding:18px 4px; border-bottom:1px solid var(--application-border); }
.rs-application-flow span { grid-row:1/3; color:#8d82c5; font-size:11px; font-weight:600; letter-spacing:.08em; }
.rs-application-flow strong { font-size:14px; font-weight:600; }
.rs-application-flow small { color:var(--application-muted); font-size:12px; }
.rs-application-section { padding:64px 0 96px; }
.rs-application-layout { display:grid; gap:36px; }
.rs-application-aside { align-self:start; }
.rs-application-aside h2,.rs-application-form__heading h2,.rs-application-success h2 { margin:10px 0 14px; font-family:"EB Garamond",serif; font-size:34px; font-weight:300; line-height:1.05; }
.rs-application-aside p { color:#4e4e4e; line-height:1.7; }
.rs-application-aside a { display:inline-flex; min-height:44px; align-items:center; color:#0c0a09; font-size:14px; font-weight:500; }
.rs-application-form { display:flex; flex-direction:column; gap:20px; border:1px solid var(--application-border); border-radius:24px; padding:24px; background:var(--application-card); box-shadow:0 24px 70px rgba(76,67,59,.07); }
.rs-application-form__heading { margin-top:12px; padding-top:24px; border-top:1px solid var(--application-border); }
.rs-application-form__heading:first-child { margin-top:0; padding-top:0; border-top:0; }
.rs-application-form__heading h2 { margin-bottom:0; font-size:28px; }
.rs-field { display:flex; flex-direction:column; gap:8px; }
.rs-field label { color:#0c0a09; font-size:14px; font-weight:500; }
.rs-field input,.rs-field select,.rs-field textarea { box-sizing:border-box; width:100%; min-height:48px; border:1px solid #d6d3d1; border-radius:10px; padding:12px 14px; background:#fafafa; color:#0c0a09; font:400 16px/1.5 "Inter",sans-serif; }
.rs-field textarea { resize:vertical; }
.rs-field input:focus-visible,.rs-field select:focus-visible,.rs-field textarea:focus-visible { outline:2px solid var(--application-focus); outline-offset:2px; border-color:var(--application-focus); }
.rs-file-field input { padding:10px; background:#f5f3ff; }
.rs-file-selected { margin:0; color:#315f55; font-size:13px; font-weight:500; }
.rs-application-submit { min-height:52px; border:0; border-radius:999px; padding:14px 28px; background:var(--rs-cta); color:#fff; font-size:15px; font-weight:600; cursor:pointer; }
.rs-application-submit:disabled { opacity:.55; cursor:wait; }
.rs-application-success { border:1px solid var(--application-border); border-radius:24px; padding:44px; background:#fff; text-align:center; }
.rs-application-success p { color:#4e4e4e; line-height:1.7; }

@media (min-width:700px) {
  .rs-application-flow__grid { grid-template-columns:repeat(4,1fr); }
  .rs-application-flow__grid>div { border-right:1px solid var(--application-border); border-bottom:0; padding:20px; }
  .rs-application-flow__grid>div:last-child { border-right:0; }
  .rs-application-form { padding:38px; }
}

@media (min-width:920px) {
  .rs-application-layout { grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr); gap:72px; }
  .rs-application-aside { position:sticky; top:110px; }
}

@media (prefers-reduced-motion:reduce) { .rs-application-submit { transition:none; } }
