@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=DM+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --form-bg:#f4f1ea;--form-surface:#f8f5ef;--form-surface-hover:#ece8df;--form-surface-selected:#e7e1d6;
  --form-text-primary:#0f1c2d;--form-text-secondary:#5e625f;--form-text-muted:#787b77;
  --form-accent:#a8834b;--form-accent-strong:#876735;--form-border:#c9c2b6;--form-border-strong:#817b71;
  --form-error:#a23b32;--form-success:#2f6a4f;--form-focus:#b28a4a;--form-on-primary:#f8f5ef;
  --form-font-display:"Cormorant Garamond",Georgia,serif;--form-font-body:"DM Sans","Helvetica Neue",Arial,sans-serif;--form-font-meta:"IBM Plex Mono",ui-monospace,monospace;
  --form-content-max:52.5rem;--form-duration-fast:140ms;--form-duration-selection:220ms;--form-duration-screen:320ms;
  --form-ease-enter:cubic-bezier(.16,1,.3,1);--form-ease-exit:cubic-bezier(.4,0,1,1);--form-radius:.25rem;
}
*,*::before,*::after{box-sizing:border-box}
html{min-height:100%;background:var(--form-bg);scroll-behavior:smooth}
body{min-height:100%;margin:0;background:var(--form-bg);color:var(--form-text-primary);font-family:var(--form-font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{font:inherit}
.skip-link{position:fixed;z-index:20;top:10px;left:10px;transform:translateY(-150%);padding:10px 14px;background:var(--form-text-primary);color:var(--form-on-primary)}.skip-link:focus{transform:none}
.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto auto 1fr auto}
.app-head{height:84px;padding:0 max(clamp(22px,5vw,72px),env(safe-area-inset-left));display:flex;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--form-border) 70%,transparent)}
.brand{display:inline-flex;align-items:center}.app-head img{display:block;width:150px;height:auto}.app-head span{margin-left:auto;color:var(--form-text-secondary);font:500 10px/1.2 var(--form-font-meta);letter-spacing:.16em;text-transform:uppercase}
.progress{height:3px;background:#ddd7cc;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--form-accent);transform-origin:left center;transition:width 400ms var(--form-ease-enter)}
.application{display:grid;align-items:center;width:min(var(--form-content-max),calc(100% - 48px));margin:auto;padding:clamp(44px,7vh,82px) 0 64px}
.step{display:none;outline:0}.step.active{display:block;animation:question-enter var(--form-duration-screen) var(--form-ease-enter) both}.step.leaving{pointer-events:none;animation:question-leave 200ms var(--form-ease-exit) forwards}
@keyframes question-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes question-leave{to{opacity:0;transform:translateY(-8px)}}
.kicker{display:block;color:var(--form-accent-strong);font:500 11px/1.3 var(--form-font-meta);letter-spacing:.15em;text-transform:uppercase}
.step h1{max-width:820px;margin:20px 0 14px;color:var(--form-text-primary);font:400 clamp(36px,4.2vw,54px)/1.06 var(--form-font-display);letter-spacing:-.025em;text-wrap:balance}.step h1 em{color:var(--form-accent-strong);font-style:italic;font-weight:400}
.description{max-width:680px;margin:0 0 34px;color:var(--form-text-secondary);font-size:clamp(16px,1.3vw,18px);line-height:1.58;text-wrap:pretty}
.choices{display:grid;gap:10px;max-width:760px;border:0;padding:0;margin:0}.choice{position:relative;display:flex;align-items:center;gap:15px;width:100%;min-height:56px;padding:13px 18px;text-align:left;border:1px solid var(--form-border);border-radius:var(--form-radius);background:color-mix(in srgb,var(--form-surface) 74%,transparent);color:var(--form-text-primary);font:500 clamp(15px,1.3vw,17px)/1.4 var(--form-font-body);cursor:pointer;box-shadow:0 0 0 transparent;transition:transform var(--form-duration-fast) ease,border-color var(--form-duration-fast) ease,background var(--form-duration-fast) ease,box-shadow var(--form-duration-fast) ease}
.choice::after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--form-accent);opacity:0;transition:opacity var(--form-duration-fast) ease}.choice:hover{transform:translateY(-1px);border-color:var(--form-border-strong);background:var(--form-surface-hover);box-shadow:0 6px 18px rgba(15,28,45,.07)}
.choice:focus-visible,.button:focus-visible,.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible,.upload:focus-within{outline:2px solid var(--form-focus);outline-offset:3px}
.choice.selected{transform:scale(.997);border-color:var(--form-text-primary);background:var(--form-surface-selected);box-shadow:none}.choice.selected::after{opacity:1}
.choice b{display:grid;place-items:center;flex:0 0 30px;height:30px;border:1px solid var(--form-accent);border-radius:2px;color:var(--form-accent-strong);font:500 11px/1 var(--form-font-meta);transition:background var(--form-duration-fast) ease,color var(--form-duration-fast) ease}.choice.selected b{background:var(--form-text-primary);border-color:var(--form-text-primary);color:var(--form-on-primary)}
.choice-hint{display:block;margin-top:16px;color:var(--form-text-muted);font:400 10px/1.45 var(--form-font-meta);letter-spacing:.04em}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px;max-width:800px}.field{display:grid;gap:9px;min-width:0}.field.full{grid-column:1/-1}.field label{color:var(--form-text-secondary);font:500 11px/1.3 var(--form-font-meta);letter-spacing:.12em;text-transform:uppercase}
.field input,.field textarea,.field select{width:100%;min-height:56px;padding:13px 2px;border:0;border-bottom:1px solid var(--form-border-strong);border-radius:0;background:transparent;color:var(--form-text-primary);font:400 clamp(20px,2.1vw,27px)/1.35 var(--form-font-display);outline:0;transition:border-color var(--form-duration-fast) ease,background var(--form-duration-fast) ease}
.field input::placeholder,.field textarea::placeholder{color:#99978f;opacity:1}.field textarea{min-height:152px;resize:vertical}.field input:hover,.field textarea:hover,.field select:hover{border-bottom-color:var(--form-text-primary)}.field input:focus,.field textarea:focus,.field select:focus{border-bottom:2px solid var(--form-accent);padding-bottom:12px}.field input:user-invalid,.field select:user-invalid,.field textarea:user-invalid{border-bottom-color:var(--form-error)}.field small{color:var(--form-text-muted);font:400 10px/1.5 var(--form-font-meta)}
.phone-control{display:grid;grid-template-columns:minmax(220px,1fr) 1.35fr;gap:20px}.phone-control select{color:var(--form-text-primary);font:500 15px/1.4 var(--form-font-body);cursor:pointer}.phone-control input{font:400 18px/1.4 var(--form-font-body)}
.step--file{text-align:center}.step--file h1,.step--file .description{margin-inline:auto}.step--file .actions{justify-content:center}.upload{position:relative;padding:42px 28px;border:1px dashed var(--form-border-strong);border-radius:var(--form-radius);background:color-mix(in srgb,var(--form-surface) 70%,transparent);transition:border-color var(--form-duration-fast),background var(--form-duration-fast)}.upload:hover{border-color:var(--form-accent);background:var(--form-surface-hover)}.upload .field{display:flex;flex-direction:column;align-items:center;text-align:center}.upload-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:4px;border:1px solid var(--form-accent);border-radius:50%;color:var(--form-accent);font:400 27px/1 var(--form-font-display)}.upload-label{color:var(--form-text-secondary);font:500 11px/1.3 var(--form-font-meta);letter-spacing:.12em;text-transform:uppercase}.file-input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.file-picker{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;padding:11px 18px;border:1px solid var(--form-text-primary);border-radius:2px;background:transparent;color:var(--form-text-primary);font:500 11px/1 var(--form-font-meta);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--form-duration-fast),color var(--form-duration-fast)}.file-picker:hover{background:var(--form-text-primary);color:var(--form-on-primary)}.file-input:focus-visible+.file-picker{outline:2px solid var(--form-focus);outline-offset:3px}.file-name{max-width:100%;margin-top:4px;overflow-wrap:anywhere;color:var(--form-text-secondary);font:400 12px/1.45 var(--form-font-body)}
.actions{display:flex;align-items:center;gap:12px;margin-top:38px}.button{min-height:48px;padding:15px 22px;border:1px solid var(--form-text-primary);border-radius:2px;background:var(--form-text-primary);color:var(--form-on-primary);font:500 11px/1 var(--form-font-meta);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:transform var(--form-duration-fast),background var(--form-duration-fast),color var(--form-duration-fast),box-shadow var(--form-duration-fast)}.button:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,28,45,.12)}.button:active{transform:none}.button.secondary{background:transparent;color:var(--form-text-primary)}.button.secondary:hover{background:var(--form-surface-hover);box-shadow:none}.button:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}
.save-state{margin-left:4px;color:var(--form-text-muted);font:400 10px/1.4 var(--form-font-meta)}.ending{text-align:center}.ending .description{margin-inline:auto}.ending .button{display:inline-flex;align-items:center;text-decoration:none;margin-top:8px}.fine{max-width:640px;margin:28px auto 0;color:var(--form-text-muted);font-size:12px;line-height:1.6}
.error{display:none;max-width:760px;margin-top:18px;padding:13px 15px;border-left:3px solid var(--form-error);background:#f3e6e1;color:#7d2c27;font-size:14px;line-height:1.45}.error.visible{display:block}
.app-foot{padding:20px max(clamp(22px,5vw,72px),env(safe-area-inset-left)) max(20px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:20px;border-top:1px solid color-mix(in srgb,var(--form-border) 70%,transparent);color:var(--form-text-muted);font:400 9px/1.4 var(--form-font-meta);letter-spacing:.1em;text-transform:uppercase}.app-foot a{color:inherit;text-underline-offset:3px}
@media(max-width:767px){.app-head{height:70px}.app-head img{width:126px}.app-head span{display:none}.application{align-items:start;width:min(100% - 40px,var(--form-content-max));padding:42px 0 48px}.step h1{margin-top:16px;font-size:clamp(31px,9vw,39px);line-height:1.08}.description{margin-bottom:28px;font-size:16px}.fields{grid-template-columns:1fr;gap:24px}.field.full{grid-column:auto}.phone-control{grid-template-columns:minmax(125px,.8fr) 1.2fr;gap:14px}.choice{min-height:54px;padding:13px 14px;font-size:16px}.choice-hint{display:none}.actions{align-items:stretch;flex-wrap:wrap;margin-top:30px}.button{flex:1;min-width:130px}.save-state{order:3;flex-basis:100%;margin:3px 0 0}.upload{padding:30px 18px}.app-foot{flex-direction:column;gap:8px}}
@media(max-width:359px){.application{width:calc(100% - 32px)}.phone-control{grid-template-columns:1fr;gap:8px}.step h1{font-size:29px}.choice b{flex-basis:28px;height:28px}.button{width:100%;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress i,.choice,.choice::after,.choice b,.button,.field input,.field textarea,.field select{transition:none}.step.active,.step.leaving{animation-duration:1ms}.choice:hover,.button:hover{transform:none}}
@media(forced-colors:active){.choice.selected::after{background:Highlight}.choice.selected{border:2px solid Highlight}.progress i{background:Highlight}}
