@font-face { font-family: Cygre; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/cygre-regular.woff2') format('woff2'); }
@font-face { font-family: Cygre; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/cygre-semibold.woff2') format('woff2'); }
@font-face { font-family: Cygre; font-style: normal; font-weight: 700 900; font-display: swap; src: url('/assets/cygre-bold.woff2') format('woff2'); }
@font-face { font-family: Literata; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/literata-cyrillic-400.woff2') format('woff2'); unicode-range: U+0400-04FF,U+0500-052F,U+2116; }
@font-face { font-family: Literata; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/literata-latin-400.woff2') format('woff2'); unicode-range: U+0000-03FF,U+2000-206F,U+20AC,U+2122; }
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; background: #2c2c2c; color: #fff; font-family: Cygre, Arial, sans-serif; }
button, input { font: inherit; }
a { color: #c276ff; }
.site-header { max-width: 1400px; margin: auto; padding: 0 42px; display: flex; align-items: center; gap: 20px; }
.site-logo { width: 100px; height: 80px; display: block; object-fit: contain; }
.site-label { color: #bbb; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.layout { max-width: 1400px; min-height: calc(100vh - 104px); margin: auto; padding: 28px 42px 80px; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(420px, .88fr); gap: clamp(40px, 5vw, 88px); align-items: center; }
.art { align-self: center; }
.art img { width: 100%; max-width: 680px; display: block; }
.content { max-width: 570px; padding: 18px 0; }
h1 { font-family: Cygre, Arial, sans-serif; font-size: clamp(45px, 4.8vw, 69px); line-height: 1.07; letter-spacing: -.035em; margin: 0 0 18px; font-weight: 700; }
.lead { font-family: Literata, Georgia, serif; font-size: 20px; line-height: 1.48; color: #ddd; margin: 0 0 27px; }
.section-label { display: block; font-size: 16px; font-weight: 700; margin: 0 0 10px; }
.choices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 0 26px; }
.choice { position: relative; min-height: 112px; border: 1px solid #737373; border-radius: 6px; background: #333; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; font-size: 16px; font-weight: 700; cursor: pointer; transition: border-color .18s, background .18s, transform .18s; }
.choice:hover { border-color: #bb4cfc; transform: translateY(-2px); }
.choice:has(input:checked) { border: 2px solid #bb4cfc; background: #3c3046; }
.choice:has(input:focus-visible) { outline: 3px solid #d8a4ff; outline-offset: 3px; }
.choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice img { width: 43px; height: 43px; object-fit: contain; display: block; }
.choice .email-icon { width: 42px; height: 42px; padding: 9px; background: #fff; border-radius: 9px; }
.field { width: 100%; height: 54px; padding: 0 2px; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; background: transparent; color: #fff; caret-color: #bb4cfc; font-size: 17px; }
.field:focus { outline: 0; border-bottom: 2px solid #bb4cfc; }
.field::placeholder { color: #999; }
.field:-webkit-autofill { -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 100px #2c2c2c inset; transition: background-color 9999s ease-out; }
.code-note { margin: 0 0 14px; }
.code-field { width: min(100%, 220px); font-size: 25px; letter-spacing: .2em; text-align: center; }
.registered { border-left: 4px solid #bb4cfc; padding: 4px 0 4px 22px; }
.registered h2 { margin: 0 0 10px; font-size: 26px; }
.registered p { margin: 0 0 12px; color: #ddd; line-height: 1.5; }
.interests { border: 0; margin: 25px 0 22px; padding: 0; }
.interests legend { font-weight: 700; margin-bottom: 10px; }
.interest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.interest-grid label { display: flex; align-items: center; min-height: 44px; padding: 4px 0; cursor: pointer; }
.interest-grid label:has(input:focus-visible) { outline: 2px solid #bb4cfc; outline-offset: 2px; }
.interest-grid input, .consent input { accent-color: #bb4cfc; margin: 0 9px 0 0; width: 16px; height: 16px; flex: 0 0 auto; }
.consent { display: flex; align-items: flex-start; font-family: Literata, Georgia, serif; font-size: 14px; line-height: 1.45; color: #d0d0d0; }
.consent input { margin-top: 3px; }
.consent span { flex: 1; }
.submit, .channel { margin-top: 22px; display: block; width: min(100%, 330px); min-height: 56px; padding: 15px 22px; border: 0; border-radius: 999px; background: #bb4cfc; color: #fff; font-size: 16px; font-weight: 700; text-align: center; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .18s, transform .18s; }
.submit:hover:not(:disabled), .channel:hover { background: #8034f8; transform: translateY(-1px); }
.submit:disabled { opacity: .55; cursor: not-allowed; }
.note { font-family: Literata, Georgia, serif; color: #aaa; font-size: 14px; line-height: 1.45; margin: 12px 0 0; }
.existing { margin-top: 28px; }
.existing-link { display: inline; padding: 0; border: 0; background: none; color: #c276ff; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.existing-link:hover { color: #e1b5ff; }
.existing-link:focus-visible, .access-dialog button:focus-visible, .access-dialog a:focus-visible { outline: 3px solid #d8a4ff; outline-offset: 4px; }
.access-dialog { width: min(540px, calc(100% - 32px)); max-height: min(90vh, 720px); padding: 0; border: 1px solid #66576f; border-radius: 16px; background: #303030; color: #fff; box-shadow: 0 24px 80px #0009; }
.access-dialog::backdrop { background: #080609bd; }
.access-dialog-inner { position: relative; padding: clamp(28px, 5vw, 48px); }
.access-dialog-close { position: absolute; top: 14px; right: 16px; width: 42px; height: 42px; border: 0; background: transparent; color: #ded6e3; font-size: 30px; line-height: 1; cursor: pointer; }
.access-dialog-label { display: block; margin: 0 32px 14px 0; color: #cc8bff; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.access-dialog h2 { margin: 0 16px 20px 0; font-size: clamp(28px, 5vw, 39px); line-height: 1.1; letter-spacing: -.035em; }
.access-dialog p { margin: 0 0 16px; font-family: Literata, Georgia, serif; font-size: 17px; line-height: 1.55; color: #eee; }
.access-dialog a { color: #d69cff; overflow-wrap: anywhere; }
.access-dialog-ok { margin-top: 14px; min-height: 50px; min-width: 155px; padding: 12px 26px; border: 0; border-radius: 999px; background: #bb4cfc; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.access-dialog-ok:hover { background: #8034f8; }
.status { border-left: 4px solid #bb4cfc; padding: 11px 15px; background: #3b3340; margin: 0 0 20px; line-height: 1.4; }
.status.error { border-color: #f36b6b; background: #492e2e; }
.hidden { display: none; }
@media (max-width: 900px) { .layout { grid-template-columns: 1fr; gap: 16px; padding-top: 20px; } .art img { max-width: 520px; margin: auto; } .content { max-width: 640px; margin: auto; } }
@media (max-width: 560px) { .site-header { padding: 0 20px; } .site-logo { width: 75px; height: 60px; } .site-label { font-size: 11px; } .layout { padding: 16px 20px 50px; } .art { display: none; } h1 { font-size: 41px; } .lead { font-size: 18px; } .choices { gap: 6px; } .choice { min-height: 98px; font-size: 14px; } .choice img { width: 38px; height: 38px; } .interest-grid { grid-template-columns: 1fr; } .submit, .channel { width: 100%; } }

.cabinet-link { margin-left: auto; flex-shrink: 0; font-size: 14px; text-underline-offset: .2em; }
@media (max-width: 560px) { .site-header:has(.cabinet-link) .site-label { display: none; } }

.textbook-link { margin-left: auto; flex-shrink: 0; font-size: 14px; text-underline-offset: .2em; }
.textbook-link + .cabinet-link { margin-left: 0; }
@media (max-width: 560px) { .textbook-link, .cabinet-link { font-size: 12px; } }
