.ges-apply{
  --ges-bg:#1a1020; --ges-panel:#231629; --ges-line:#3b2843; --ges-text:#f3ecf4;
  --ges-muted:#b9a8bd; --ges-brand:#772978; --ges-brand-hi:#c46fc5; --ges-error:#ff8a8a;
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ges-text); background:var(--ges-bg);
  max-width:720px; margin:0 auto; padding:clamp(24px,5vw,48px);
  border-radius:20px; border:1px solid var(--ges-line); box-sizing:border-box; line-height:1.5;
}
.ges-apply *,.ges-apply *::before,.ges-apply *::after{box-sizing:border-box}
.ges-apply .ges-head{margin-bottom:32px}
.ges-apply .ges-title{font-size:clamp(30px,6vw,46px); font-weight:800; font-stretch:115%; line-height:1.02; margin:0 0 14px; letter-spacing:-.01em; color:var(--ges-text)}
.ges-apply .ges-seats{display:flex; align-items:baseline; gap:10px; margin:0 0 14px}
.ges-apply .ges-seats b{font-size:clamp(40px,9vw,64px); font-weight:800; font-stretch:125%; line-height:1; color:var(--ges-brand-hi)}
.ges-apply .ges-seats span{color:var(--ges-muted); font-size:15px; max-width:30ch}
.ges-apply .ges-intro{color:var(--ges-muted); margin:0; max-width:58ch; font-size:16px}
.ges-apply fieldset{border:0; padding:0; margin:0 0 28px; min-width:0}
.ges-apply legend{font-size:18px; font-weight:700; font-stretch:110%; padding:0; margin-bottom:14px; color:var(--ges-text)}
.ges-apply .ges-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.ges-apply label.ges-l{display:block; font-size:14px; font-weight:600; margin-bottom:6px; color:var(--ges-text)}
.ges-apply .ges-opt{font-weight:400; color:var(--ges-muted)}
.ges-apply input[type=text],.ges-apply input[type=email],.ges-apply input[type=tel],.ges-apply input[type=url],.ges-apply select,.ges-apply textarea{
  width:100%; font:inherit; font-size:16px; color:var(--ges-text); background:var(--ges-panel);
  border:1px solid var(--ges-line); border-radius:10px; padding:12px 14px; margin:0; box-shadow:none;
}
.ges-apply textarea{min-height:120px; resize:vertical}
.ges-apply select{appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--ges-muted) 50%),linear-gradient(135deg,var(--ges-muted) 50%,transparent 50%); background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%; background-size:5px 5px; background-repeat:no-repeat; padding-right:40px}
.ges-apply select option{background:var(--ges-panel); color:var(--ges-text)}
.ges-apply input:focus-visible,.ges-apply select:focus-visible,.ges-apply textarea:focus-visible{outline:2px solid var(--ges-brand-hi); outline-offset:1px; border-color:var(--ges-brand-hi)}
.ges-apply .ges-hint{font-size:13px; color:var(--ges-muted); margin-top:6px; display:flex; justify-content:space-between; gap:12px}
.ges-apply .ges-err{font-size:13px; color:var(--ges-error); margin-top:6px; display:none}
.ges-apply .ges-invalid > .ges-err{display:block}
.ges-apply .ges-invalid input,.ges-apply .ges-invalid select,.ges-apply .ges-invalid textarea{border-color:var(--ges-error)}

.ges-apply .ges-segs{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px}
.ges-apply .ges-seg{position:relative}
.ges-apply .ges-seg input{position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer}
.ges-apply .ges-seg span{display:block; height:100%; padding:14px 16px; border:1px solid var(--ges-line); border-radius:12px; background:var(--ges-panel); transition:border-color .15s,background .15s}
.ges-apply .ges-seg strong{display:block; font-size:15px; font-weight:700}
.ges-apply .ges-seg small{display:block; font-size:13px; color:var(--ges-muted); margin-top:2px}
.ges-apply .ges-seg input:checked + span{border-color:var(--ges-brand-hi); background:#33183a; box-shadow:inset 0 0 0 1px var(--ges-brand-hi)}
.ges-apply .ges-seg input:focus-visible + span{outline:2px solid var(--ges-brand-hi); outline-offset:2px}

.ges-apply .ges-inline{display:flex; gap:22px; flex-wrap:wrap}
.ges-apply .ges-check{display:flex; gap:12px; align-items:flex-start; font-size:15px; margin-bottom:12px; cursor:pointer}
.ges-apply .ges-check input{accent-color:var(--ges-brand-hi); width:18px; height:18px; margin:3px 0 0; flex:none}
.ges-apply .ges-check a{color:var(--ges-brand-hi)}
.ges-apply .ges-note{display:none; margin-top:12px; padding:12px 14px; border-left:3px solid var(--ges-brand-hi); background:var(--ges-panel); font-size:14px; color:var(--ges-muted); border-radius:0 8px 8px 0}
.ges-apply .ges-note.ges-show{display:block}
.ges-apply .ges-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

.ges-apply .ges-submit{width:100%; font:inherit; font-size:17px; font-weight:700; font-stretch:110%; color:#fff; background:var(--ges-brand); border:0; border-radius:12px; padding:16px 20px; cursor:pointer; transition:background .15s}
.ges-apply .ges-submit:hover{background:#8d338e}
.ges-apply .ges-submit:focus-visible{outline:2px solid var(--ges-brand-hi); outline-offset:3px}
.ges-apply .ges-submit[disabled]{opacity:.6; cursor:wait}
.ges-apply .ges-formerr{display:none; color:var(--ges-error); font-size:14px; margin-top:12px}
.ges-apply .ges-small{font-size:13px; color:var(--ges-muted); margin-top:14px; text-align:center}

.ges-apply .ges-done{display:none; text-align:left; padding:8px 0}
.ges-apply .ges-done h3{font-size:clamp(26px,5vw,36px); font-weight:800; font-stretch:115%; margin:0 0 12px; line-height:1.1; color:var(--ges-text)}
.ges-apply .ges-done p{color:var(--ges-muted); margin:0 0 10px; max-width:56ch}
.ges-apply.ges-sent .ges-form,.ges-apply.ges-sent .ges-head{display:none}
.ges-apply.ges-sent .ges-done{display:block}

@media (max-width:600px){ .ges-apply .ges-grid{grid-template-columns:1fr} .ges-apply{border-radius:14px} }
@media (prefers-reduced-motion:reduce){ .ges-apply *{transition:none!important} }
