@import "https://cdn.jsdelivr.net/npm/@fontsource/fira-code@latest/400.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/fira-code@latest/700.css";

html {
box-sizing: border-box
}

*,
:before,
:after {
box-sizing: inherit
}

body {
margin: 0;
min-height: 100dvh;
overflow-x: hidden;
font-family: 'Fira Code', monospace;
font-size: 16px;
line-height: 1.6;
color: #1D101F;
background: #F7F3FA
}

.page-header {
background: linear-gradient(135deg, #F7F3FA 0%, #bb84e814 100%);
border-bottom: 3px solid #1d101f0f;
padding: 24px 0 0
}

.page-header__inner {
max-width: 1600px;
margin: 0 auto;
padding: 0 40px
}

.page-header__top {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 24px
}

.page-header__brand {
display: flex;
flex-direction: column;
gap: 8px
}

.page-header__logo-container {
background: #ffffffd9;
padding: 16px;
border-radius: 10px;
box-shadow: 0 3px 4px 1px #1d101f0d inset 0 1px 2px #bb84e826;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.page-header__logo-container:hover {
transform: perspective(800px) rotateX(2deg) rotateY(-3deg);
box-shadow: 0 4px 14px 1px #1d101f1a
}

.page-header__logo {
display: block;
width: 42px;
height: 42px;
object-fit: contain
}

.page-header__tagline {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
font-weight: 400;
letter-spacing: .02em;
padding-left: 8px
}

.page-header__location {
display: flex;
align-items: center;
gap: 8px;
padding: 16px 24px;
background: #fff9;
border-radius: 20px;
border: 2px solid #bb84e81f;
transition: background .16s ease-out, border-color .16s ease-out, transform .14s cubic-bezier(0.4, 0, 0.6, 1)
}

.page-header__location:hover {
background: #fffffff2;
border-color: #bb84e859;
transform: perspective(600px) rotateX(-1deg) rotateY(2deg)
}

.page-header__location-icon {
width: 18px;
height: 18px;
flex-shrink: 0
}

.page-header__location-icon svg {
width: 100%;
height: 100%;
fill: #BB84E8
}

.page-header__location-text {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
font-weight: 400
}

.page-header__nav {
background: #ffffffbf;
border-radius: 32px 32px 0 0;
padding: 24px 40px;
box-shadow: 0 4px 14px 1px #1d101f1a
}

.primary-nav__list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
gap: 16px 40px;
justify-content: center;
align-items: center
}

.primary-nav__item {
position: relative
}

.primary-nav__link {
display: block;
font-size: 18px;
line-height: 1.4;
color: #1D101F;
text-decoration: none;
padding: 16px 24px;
border-radius: 10px;
background: transparent;
transition: background .22s ease-out, color .22s ease-out, transform .18s cubic-bezier(0.4, 0, 0.6, 1);
font-weight: 400;
position: relative;
overflow: hidden
}

.primary-nav__link::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: linear-gradient(180deg, #bb84e826 0%, #bb84e840 100%);
transition: height .72s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.primary-nav__link:hover {
color: #1D101F;
transform: perspective(700px) rotateX(-2deg) rotateY(1deg)
}

.primary-nav__link:hover::before {
height: 100%
}

.primary-nav__link:focus {
outline: none;
background: #bb84e81f;
border: 2px solid #BB84E8
}

.page-footer {
background: linear-gradient(165deg, #1D101F 0%, #1d101feb 100%);
color: #F7F3FA;
padding: 80px 0 40px;
margin-top: 80px;
position: relative
}

.page-footer::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 6px;
background: linear-gradient(90deg, #BB84E8 0%, #bb84e866 50%, #BB84E8 100%)
}

.page-footer__inner {
max-width: 1600px;
margin: 0 auto;
padding: 0 40px
}

.page-footer__top {
display: flex;
justify-content: space-between;
align-items: flex-start;
padding-bottom: 40px;
margin-bottom: 40px;
border-bottom: 2px solid #bb84e833;
gap: 80px;
flex-wrap: wrap
}

.page-footer__brand {
flex: 1;
min-width: 280px
}

.page-footer__logo-wrapper {
display: inline-block;
background: #f7f3fa14;
padding: 20px;
border-radius: 20px;
box-shadow: 0 4px 14px 1px #bb84e81a inset 0 2px 4px #f7f3fa14;
margin-bottom: 24px;
transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .2s cubic-bezier(0.4, 0, 0.6, 1)
}

.page-footer__logo-wrapper:hover {
transform: perspective(800px) rotateX(-2deg) rotateY(3deg);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.page-footer__logo {
display: block;
width: 44px;
height: 44px;
object-fit: contain
}

.page-footer__description {
font-size: 16px;
line-height: 1.6;
color: #f7f3fad9;
margin: 0 0 24px;
max-width: 420px
}

.page-footer__contact-group {
display: flex;
flex-direction: column;
gap: 16px
}

.page-footer__contact-item {
display: flex;
align-items: center;
gap: 16px;
padding: 16px;
background: #f7f3fa0a;
border-radius: 10px;
border: 1px solid #bb84e826;
transition: background .18s ease-out, border-color .18s ease-out, transform .14s cubic-bezier(0.4, 0, 0.6, 1)
}

.page-footer__contact-item:hover {
background: #f7f3fa14;
border-color: #bb84e859;
transform: perspective(600px) rotateX(1deg) rotateY(-2deg)
}

.page-footer__contact-icon {
width: 21px;
height: 21px;
flex-shrink: 0
}

.page-footer__contact-icon svg {
width: 100%;
height: 100%;
fill: #BB84E8
}

.page-footer__contact-link {
font-size: 16px;
line-height: 1.4;
color: #F7F3FA;
text-decoration: none;
transition: color .16s ease-out
}

.page-footer__contact-link:hover {
color: #BB84E8
}

.page-footer__contact-link:focus {
outline: none;
color: #BB84E8;
border-bottom: 2px solid #BB84E8
}

.page-footer__contact-text {
font-size: 16px;
line-height: 1.4;
color: #f7f3fad9
}

.page-footer__links {
flex: 1;
min-width: 280px
}

.page-footer__links-heading {
font-size: 21px;
line-height: 1.4;
color: #F7F3FA;
font-weight: 700;
margin: 0 0 24px;
letter-spacing: .03em
}

.footer-nav__list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 16px
}

.footer-nav__item {
position: relative
}

.footer-nav__link {
display: inline-block;
font-size: 18px;
line-height: 1.4;
color: #f7f3fad9;
text-decoration: none;
padding: 8px 16px 8px 0;
transition: color .2s ease-out, padding-left .18s cubic-bezier(0.4, 0, 0.6, 1);
position: relative
}

.footer-nav__link::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 0;
height: 2px;
background: #BB84E8;
transition: width .82s cubic-bezier(0.4, 0, 0.6, 1)
}

.footer-nav__link:hover {
color: #F7F3FA;
padding-left: 24px
}

.footer-nav__link:hover::before {
width: 16px
}

.footer-nav__link:focus {
outline: none;
color: #BB84E8;
background: #bb84e81f;
border-radius: 5px
}

.page-footer__bottom {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 40px;
gap: 40px;
flex-wrap: wrap
}

.page-footer__copyright {
font-size: 16px;
line-height: 1.4;
color: #f7f3faa6
}

.page-footer__meta {
display: flex;
gap: 24px;
align-items: center;
flex-wrap: wrap
}

.page-footer__meta-item {
font-size: 16px;
line-height: 1.4;
color: #f7f3faa6;
padding: 8px 16px;
background: #f7f3fa0a;
border-radius: 5px;
border: 1px solid #bb84e81a
}

.consent-banner {
position: fixed;
bottom: 24px;
right: 24px;
max-width: 480px;
background: #F7F3FA;
border-radius: 20px;
padding: 40px;
box-shadow: 0 8px 60px 1px #1d101f1a;
border: 3px solid #bb84e833;
z-index: 2000;
transform: translateX(120%);
transition: transform .22s cubic-bezier(0.4, 0, 0.6, 1)
}

.consent-banner.visible {
transform: translateX(0)
}

.consent-banner__headline {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
font-weight: 700;
margin: 0 0 16px
}

.consent-banner__text {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px
}

.consent-banner__list {
list-style: none;
margin: 0 0 24px;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px
}

.consent-banner__list-item {
font-size: 16px;
line-height: 1.4;
color: #1d101fd9;
padding-left: 24px;
position: relative
}

.consent-banner__list-item::before {
content: '';
position: absolute;
left: 0;
top: 6px;
width: 8px;
height: 8px;
background: #BB84E8;
border-radius: 3px
}

.consent-banner__opt-out {
display: flex;
align-items: center;
gap: 16px;
padding: 16px;
background: #bb84e814;
border-radius: 10px;
margin-bottom: 24px;
border: 2px solid #bb84e826
}

.consent-banner__toggle {
position: relative;
width: 56px;
height: 32px;
flex-shrink: 0
}

.consent-banner__toggle-input {
opacity: 0;
width: 0;
height: 0;
position: absolute
}

.consent-banner__toggle-slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #1d101f26;
transition: background .18s ease-out;
border-radius: 32px
}

.consent-banner__toggle-slider::before {
position: absolute;
content: '';
height: 24px;
width: 24px;
left: 4px;
bottom: 4px;
background: #F7F3FA;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1);
border-radius: 32px;
box-shadow: 0 3px 4px 1px #1d101f0d
}

.consent-banner__toggle-input:checked+.consent-banner__toggle-slider {
background: #BB84E8
}

.consent-banner__toggle-input:checked+.consent-banner__toggle-slider::before {
transform: translateX(24px)
}

.consent-banner__toggle-input:focus+.consent-banner__toggle-slider {
background: #bb84e859;
border: 2px solid #BB84E8
}

.consent-banner__opt-out-label {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
font-weight: 400
}

.consent-banner__actions {
display: flex;
gap: 16px
}

.consent-banner__btn {
flex: 1;
padding: 16px 24px;
font-size: 18px;
line-height: 1.4;
font-family: 'Fira Code', monospace;
font-weight: 400;
text-transform: lowercase;
border: 2px solid #BB84E8;
border-radius: 10px;
cursor: pointer;
transition: background .18s ease-out, color .18s ease-out, transform .14s cubic-bezier(0.4, 0, 0.6, 1);
position: relative;
overflow: hidden;
background: transparent;
color: #1D101F
}

.consent-banner__btn::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: linear-gradient(180deg, #bb84e826 0%, #bb84e840 100%);
transition: height .68s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.consent-banner__btn:hover {
transform: perspective(600px) rotateX(-2deg) rotateY(1deg)
}

.consent-banner__btn:hover::before {
height: 100%
}

.consent-banner__btn:focus {
outline: none;
background: #bb84e81f;
border-color: #1D101F
}

.consent-banner__btn--primary {
background: #BB84E8;
color: #F7F3FA;
border-color: #BB84E8
}

.consent-banner__btn--primary::before {
background: linear-gradient(180deg, #1d101f26 0%, #1d101f40 100%)
}

.consent-banner__btn--primary:hover {
background: #BB84E8
}

.consent-banner__btn--primary:focus {
background: #BB84E8;
border-color: #1D101F
}

@media (max-width: 1024px) {
.page-header__top {
flex-direction: column;
align-items: flex-start;
gap: 24px
}

.page-header__location {
align-self: flex-start
}

.primary-nav__list {
justify-content: flex-start
}

.page-footer__top {
flex-direction: column;
gap: 40px
}

.page-footer__brand,
.page-footer__links {
min-width: 100%
}

.page-footer__bottom {
flex-direction: column;
align-items: flex-start
}

.consent-banner {
right: 16px;
bottom: 16px;
max-width: calc(100% - 32px);
padding: 24px
}
}

@media (max-width: 640px) {
.page-header__inner {
padding: 0 24px
}

.page-header__nav {
padding: 16px 24px
}

.primary-nav__list {
flex-direction: column;
align-items: flex-start;
gap: 8px
}

.primary-nav__link {
padding: 16px;
width: 100%
}

.page-footer__inner {
padding: 0 24px
}

.consent-banner__actions {
flex-direction: column
}

.consent-banner__btn {
width: 100%
}
}

.legal-info {
max-width: 1600px;
margin: 0 auto;
padding: 80px 24px;
background: #fff
}

.legal-info h1 {
font-size: 68px;
line-height: 1.15;
color: #1D101F;
margin: 0 0 40px;
letter-spacing: -.02em
}

.legal-info h2 {
font-size: 52px;
line-height: 1.15;
color: #1D101F;
margin: 80px 0 24px;
letter-spacing: -.01em
}

.legal-info h3 {
font-size: 27px;
line-height: 1.4;
color: #1D101F;
margin: 40px 0 16px
}

.legal-info h4 {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 24px 0 16px
}

.legal-info h5 {
font-size: 18px;
line-height: 1.4;
color: #1D101F;
margin: 24px 0 8px;
font-weight: 600
}

.legal-info h6 {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
margin: 24px 0 8px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .08em
}

.legal-info p {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px
}

.legal-info ul {
margin: 0 0 24px;
padding: 0 0 0 40px
}

.legal-info ol {
margin: 0 0 24px;
padding: 0 0 0 40px
}

.legal-info li {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 8px
}

.legal-info li:last-child {
margin-bottom: 0
}

.legal-info ul li {
list-style-type: disc
}

.legal-info ol li {
list-style-type: decimal
}

.legal-info a {
color: #BB84E8;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color .18s ease-out
}

.legal-info a:hover {
border-bottom-color: #BB84E8
}

.legal-info hr {
border: none;
height: 1px;
background: #F7F3FA;
margin: 80px 0
}

.legal-info div {
margin: 0 0 24px
}

.legal-info h1+p {
font-size: 21px;
line-height: 1.6;
color: #1d101fb3;
margin-bottom: 40px
}

.legal-info h2+p {
margin-top: 24px
}

.legal-info ul ul {
margin-top: 8px;
margin-bottom: 8px
}

.legal-info ol ol {
margin-top: 8px;
margin-bottom: 8px
}

.legal-info li p {
margin-bottom: 8px
}

.legal-info li p:last-child {
margin-bottom: 0
}

@media (max-width: 768px) {
.legal-info {
padding: 40px 16px
}

.legal-info h1 {
font-size: 52px;
margin-bottom: 24px
}

.legal-info h2 {
font-size: 27px;
margin-top: 40px
}

.legal-info h3 {
font-size: 21px
}

.legal-info h4 {
font-size: 18px
}

.legal-info hr {
margin: 40px 0
}
}

.student-projects-detail {
background: #F7F3FA;
padding: 0;
margin: 0;
max-width: 100%
}

.student-projects-detail .spdtl-hero {
background: linear-gradient(180deg, #BB84E8 0%, transparent 100%);
padding: 160px 24px 80px;
position: relative;
overflow: hidden
}

.student-projects-detail .spdtl-hero::before {
content: '';
position: absolute;
top: 40px;
right: 40px;
width: 2px;
height: 120px;
background: #1d101f26;
transform: rotate(45deg)
}

.student-projects-detail .spdtl-hero::after {
content: '';
position: absolute;
top: 40px;
right: 100px;
width: 60px;
height: 2px;
background: #1d101f26
}

.student-projects-detail .spdtl-hero__container {
max-width: 1600px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 40px
}

.student-projects-detail .spdtl-hero__content {
max-width: 60%
}

.student-projects-detail .spdtl-hero__title {
font-size: 68px;
line-height: 1.15;
color: #1D101F;
margin: 0 0 24px;
letter-spacing: -.02em
}

.student-projects-detail .spdtl-hero__title span {
color: #BB84E8
}

.student-projects-detail .spdtl-hero__description {
font-size: 21px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 40px;
opacity: .85
}

.student-projects-detail .spdtl-hero__link {
display: inline-block;
font-size: 18px;
line-height: 1.4;
color: #1D101F;
text-decoration: none !important;
padding: 16px 40px;
background: #F7F3FA;
border-radius: 10px;
position: relative;
overflow: hidden;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1);
box-shadow: 0 3px 4px 1px #1d101f0d
}

.student-projects-detail .spdtl-hero__link::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #BB84E8;
transition: height .22s ease-out;
z-index: 0
}

.student-projects-detail .spdtl-hero__link:hover::before {
height: 100%
}

.student-projects-detail .spdtl-hero__link:hover {
transform: translateY(-2px) perspective(500px) rotateX(2deg);
box-shadow: 0 8px 60px 1px #1d101f1a
}

.student-projects-detail .spdtl-hero__link span {
position: relative;
z-index: 1
}

.student-projects-detail .spdtl-hero__image-wrapper {
width: 100%;
max-width: 480px;
margin-left: auto;
clip-path: polygon(10% 0, 100% 0, 100% 85%, 90% 100%, 0 100%, 0 15%)
}

.student-projects-detail .spdtl-hero__image {
width: 100%;
height: auto;
display: block;
opacity: 0;
transition: opacity .8s ease-out
}

.student-projects-detail .spdtl-hero__image.loaded {
opacity: 1
}

.student-projects-detail .spdtl-meta {
background: #FFF;
padding: 80px 24px;
position: relative
}

.student-projects-detail .spdtl-meta::before {
content: '?';
position: absolute;
top: 40px;
left: 40px;
font-size: 320px;
line-height: 1;
color: #BB84E8;
opacity: .03;
font-weight: 700;
pointer-events: none
}

.student-projects-detail .spdtl-meta__container {
max-width: 1600px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
position: relative
}

.student-projects-detail .spdtl-meta__container::before {
content: '';
position: absolute;
left: 50%;
top: 0;
bottom: 0;
width: 1px;
background: linear-gradient(180deg, transparent 0%, #1D101F 50%, transparent 100%);
opacity: .12;
transform: translateX(-50%)
}

.student-projects-detail .spdtl-meta__column {
display: flex;
flex-direction: column;
gap: 24px
}

.student-projects-detail .spdtl-meta__item {
display: flex;
flex-direction: column;
gap: 8px
}

.student-projects-detail .spdtl-meta__label {
font-size: 16px;
line-height: 1.4;
text-transform: uppercase;
letter-spacing: .08em;
color: #1D101F;
opacity: .5;
font-weight: 300
}

.student-projects-detail .spdtl-meta__value {
font-size: 27px;
line-height: 1.4;
color: #1D101F;
font-weight: 600
}

.student-projects-detail .spdtl-meta__tag {
display: inline-block;
padding: 8px 16px;
background: #F7F3FA;
border-radius: 5px;
font-size: 18px;
line-height: 1.4;
color: #BB84E8;
width: fit-content
}

.student-projects-detail .spdtl-content {
background: #F7F3FA;
padding: 80px 24px;
position: relative
}

.student-projects-detail .spdtl-content::after {
content: '';
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 1px;
background: #1d101f14;
filter: blur(8px);
transform: translateY(-50%)
}

.student-projects-detail .spdtl-content__container {
max-width: 1600px;
margin: 0 auto;
display: flex;
flex-direction: row;
gap: 80px;
position: relative;
z-index: 1
}

.student-projects-detail .spdtl-content__main {
flex: 1.5
}

.student-projects-detail .spdtl-content__sidebar {
flex: 1;
display: flex;
flex-direction: column;
gap: 40px
}

.student-projects-detail .spdtl-content__heading {
font-size: 52px;
line-height: 1.15;
color: #1D101F;
margin: 0 0 40px;
text-transform: uppercase;
letter-spacing: .02em;
font-weight: 300
}

.student-projects-detail .spdtl-content__text {
font-size: 18px;
line-height: 1.6;
color: #1D101F
}

.student-projects-detail .spdtl-content__text p {
margin: 0 0 24px
}

.student-projects-detail .spdtl-content__text p:last-child {
margin-bottom: 0
}

.student-projects-detail .spdtl-content__text h2 {
font-size: 27px;
line-height: 1.4;
color: #1D101F;
margin: 40px 0 16px;
text-transform: uppercase;
letter-spacing: .04em;
font-weight: 300
}

.student-projects-detail .spdtl-content__text h3 {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 24px 0 16px
}

.student-projects-detail .spdtl-content__text ul {
list-style: none;
padding: 0;
margin: 0 0 24px
}

.student-projects-detail .spdtl-content__text li {
position: relative;
padding-left: 24px;
margin-bottom: 8px;
font-size: 18px;
line-height: 1.6
}

.student-projects-detail .spdtl-content__text li::before {
content: '';
position: absolute;
left: 0;
top: 12px;
width: 6px;
height: 6px;
background: #BB84E8;
border-radius: 3px
}

.student-projects-detail .spdtl-content__text abbr {
text-decoration: none;
border-bottom: 1px dotted #BB84E8;
cursor: help
}

.student-projects-detail .spdtl-content__text dl {
margin: 24px 0
}

.student-projects-detail .spdtl-content__text dt {
font-weight: 600;
margin-top: 16px;
font-size: 18px;
line-height: 1.6
}

.student-projects-detail .spdtl-content__text dd {
margin: 8px 0 0 24px;
font-size: 18px;
line-height: 1.6
}

.student-projects-detail .spdtl-content__text details {
margin: 24px 0;
padding: 16px;
background: #FFF;
border-radius: 10px
}

.student-projects-detail .spdtl-content__text summary {
cursor: pointer;
font-weight: 600;
font-size: 18px;
line-height: 1.6
}

.student-projects-detail .spdtl-content__text small {
font-size: 16px;
line-height: 1.6;
opacity: .7
}

.student-projects-detail .spdtl-content__text strong {
font-weight: 600;
color: #BB84E8
}

.student-projects-detail .spdtl-aside-note {
background: #FFF;
padding: 24px;
border-radius: 10px;
box-shadow: 0 3px 4px 1px #1d101f0d;
position: relative;
overflow: hidden
}

.student-projects-detail .spdtl-aside-note::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 60px;
height: 60px;
background: #BB84E8;
clip-path: polygon(100% 0, 100% 100%, 0 0)
}

.student-projects-detail .spdtl-aside-note__title {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .04em;
font-weight: 300
}

.student-projects-detail .spdtl-aside-note__content {
font-size: 16px;
line-height: 1.6;
color: #1D101F
}

.student-projects-detail .spdtl-program {
background: #FFF;
padding: 24px;
border-radius: 10px;
box-shadow: 0 3px 4px 1px #1d101f0d
}

.student-projects-detail .spdtl-program__title {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .04em;
font-weight: 300
}

.student-projects-detail .spdtl-program__body {
font-size: 16px;
line-height: 1.6;
color: #1D101F
}

.student-projects-detail .spdtl-program__body p {
margin: 0 0 16px
}

.student-projects-detail .spdtl-program__body h2 {
font-size: 18px;
line-height: 1.4;
color: #1D101F;
margin: 24px 0 8px;
font-weight: 600
}

.student-projects-detail .spdtl-program__body ul {
list-style: none;
padding: 0;
margin: 0 0 16px
}

.student-projects-detail .spdtl-program__body li {
position: relative;
padding-left: 24px;
margin-bottom: 8px;
font-size: 16px;
line-height: 1.6
}

.student-projects-detail .spdtl-program__body li::before {
content: '';
position: absolute;
left: 0;
top: 10px;
width: 6px;
height: 6px;
background: #BB84E8;
border-radius: 3px
}

.student-projects-detail .spdtl-program__body small {
font-size: 16px;
opacity: .7
}

.student-projects-detail .spdtl-program__body strong {
font-weight: 600
}

.student-projects-detail .spdtl-reactions {
background: #1D101F;
padding: 80px 24px;
position: relative
}

.student-projects-detail .spdtl-reactions__container {
max-width: 1600px;
margin: 0 auto
}

.student-projects-detail .spdtl-reactions__heading {
font-size: 52px;
line-height: 1.15;
color: #F7F3FA;
margin: 0 0 40px;
text-align: center
}

.student-projects-detail .spdtl-reactions__grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 24px;
max-width: 1000px;
margin: 0 auto
}

.student-projects-detail .spdtl-reactions__item {
position: relative
}

.student-projects-detail .spdtl-reactions__input {
position: absolute;
opacity: 0;
pointer-events: none
}

.student-projects-detail .spdtl-reactions__label {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
padding: 24px 16px;
background: #f7f3fa0d;
border-radius: 20px;
cursor: pointer;
transition: background .18s cubic-bezier(0.4, 0, 0.6, 1), transform .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1);
border: 2px solid transparent
}

.student-projects-detail .spdtl-reactions__label:hover {
background: #f7f3fa14;
transform: translateY(-4px) perspective(500px) rotateX(3deg);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.student-projects-detail .spdtl-reactions__input:checked+.spdtl-reactions__label {
background: #BB84E8;
border-color: #F7F3FA;
transform: scale(1.05);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.student-projects-detail .spdtl-reactions__icon {
width: 60px;
height: 60px;
display: flex;
align-items: center;
justify-content: center
}

.student-projects-detail .spdtl-reactions__icon svg {
width: 100%;
height: 100%;
fill: #F7F3FA;
transition: fill .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.student-projects-detail .spdtl-reactions__input:checked+.spdtl-reactions__label .spdtl-reactions__icon svg {
fill: #1D101F
}

.student-projects-detail .spdtl-reactions__text {
font-size: 16px;
line-height: 1.4;
color: #F7F3FA;
text-align: center;
transition: color .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.student-projects-detail .spdtl-reactions__input:checked+.spdtl-reactions__label .spdtl-reactions__text {
color: #1D101F;
font-weight: 600
}

@media (max-width: 1024px) {
.student-projects-detail .spdtl-hero__content {
max-width: 100%
}

.student-projects-detail .spdtl-hero__title {
font-size: 52px
}

.student-projects-detail .spdtl-meta__container {
grid-template-columns: 1fr;
gap: 40px
}

.student-projects-detail .spdtl-meta__container::before {
display: none
}

.student-projects-detail .spdtl-content__container {
flex-direction: column;
gap: 40px
}

.student-projects-detail .spdtl-reactions__grid {
grid-template-columns: repeat(3, 1fr)
}
}

@media (max-width: 768px) {
.student-projects-detail .spdtl-hero {
padding: 120px 16px 40px
}

.student-projects-detail .spdtl-hero__title {
font-size: 27px
}

.student-projects-detail .spdtl-hero__description {
font-size: 18px
}

.student-projects-detail .spdtl-meta {
padding: 40px 16px
}

.student-projects-detail .spdtl-meta__value {
font-size: 21px
}

.student-projects-detail .spdtl-content {
padding: 40px 16px
}

.student-projects-detail .spdtl-content__heading {
font-size: 27px
}

.student-projects-detail .spdtl-reactions {
padding: 40px 16px
}

.student-projects-detail .spdtl-reactions__heading {
font-size: 27px
}

.student-projects-detail .spdtl-reactions__grid {
grid-template-columns: repeat(2, 1fr);
gap: 16px
}
}

.student-projects-detail ::selection {
background: #bb84e833;
color: #1D101F
}

.apie-mus {
max-width: 1600px;
margin: 0 auto
}

.apie-mus__title-wrapper {
position: relative;
padding: 80px 24px;
background: linear-gradient(172deg, #F7F3FA 0%, #BB84E8 100%);
overflow: hidden
}

.apie-mus__title-wrapper::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(172deg, transparent 0%, #1d101f26 100%);
pointer-events: none
}

.apie-mus__geometric-shape {
position: absolute;
border: 2px solid #f7f3fa4d;
pointer-events: none
}

.apie-mus__geometric-shape:nth-of-type(1) {
width: 180px;
height: 180px;
top: 40px;
right: 80px;
border-radius: 32px;
transform: rotate(25deg)
}

.apie-mus__geometric-shape:nth-of-type(2) {
width: 120px;
height: 120px;
bottom: 80px;
left: 120px;
border-radius: 50%
}

.apie-mus__geometric-shape:nth-of-type(3) {
width: 90px;
height: 90px;
top: 160px;
left: 40px;
border-radius: 10px;
transform: rotate(-15deg)
}

.apie-mus__title-content {
position: relative;
z-index: 1;
max-width: 900px;
margin: 0 auto
}

.apie-mus__main-heading {
font-size: 68px;
line-height: 1.15;
margin: 0 0 24px;
color: #1D101F
}

.apie-mus__gradient-word {
background: linear-gradient(180deg, #1D101F 0%, transparent 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent
}

.apie-mus__title-image-container {
position: relative;
margin: 40px 0 0;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 8px 60px 1px #1d101f1a
}

.apie-mus__title-image {
width: 100%;
height: 380px;
object-fit: cover;
display: block;
filter: brightness(0.85);
transition: opacity .88s cubic-bezier(0.4, 0, 0.6, 1);
opacity: 0
}

.apie-mus__title-image.loaded {
opacity: 1
}

.apie-mus__title-image-container::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 50%;
background: linear-gradient(180deg, #1d101f66 0%, transparent 100%);
pointer-events: none
}

.apie-mus__divider-band {
height: 8px;
background: #BB84E8
}

.apie-mus__foundation {
padding: 80px 24px;
background: #fff;
position: relative
}

.apie-mus__foundation::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url(/site_images/PICS-NAVIGATION-NAVIGATION.jpg);
background-size: cover;
background-position: center;
opacity: .08;
pointer-events: none;
animation: apie-mus-vertical-pan 45s linear infinite
}

@keyframes apie-mus-vertical-pan {
0% {
background-position: center 0
}

100% {
background-position: center 100%
}
}

.apie-mus__foundation-inner {
max-width: 1200px;
margin: 0 auto;
position: relative;
z-index: 1
}

.apie-mus__foundation-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: start
}

.apie-mus__foundation-content {
padding: 40px 0
}

.apie-mus__foundation-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .05em;
font-weight: 300
}

.apie-mus__foundation-text {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px
}

.apie-mus__foundation-aside {
position: relative;
padding: 0 0 0 40px
}

.apie-mus__foundation-aside::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 3px;
height: 100%;
background: #BB84E8
}

.apie-mus__foundation-note {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
opacity: .75;
margin: 0
}

.apie-mus__foundation-image-wrapper {
position: relative;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 4px 14px 1px #bb84e81a;
transform: translateY(0);
transition: transform .72s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .72s cubic-bezier(0.4, 0, 0.6, 1)
}

.apie-mus__foundation-image-wrapper:hover {
transform: translateY(-8px);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.apie-mus__foundation-image {
width: 100%;
height: 520px;
object-fit: cover;
display: block;
transition: opacity .76s cubic-bezier(0.4, 0, 0.6, 1);
opacity: 0
}

.apie-mus__foundation-image.loaded {
opacity: 1
}

.apie-mus__divider-band--secondary {
height: 5px;
background: linear-gradient(90deg, #BB84E8 0%, #F7F3FA 100%)
}

.apie-mus__approach {
padding: 80px 24px;
background: #F7F3FA;
position: relative
}

.apie-mus__approach-inner {
max-width: 1400px;
margin: 0 auto
}

.apie-mus__approach-header {
text-align: center;
margin: 0 0 80px
}

.apie-mus__approach-title {
font-size: 52px;
line-height: 1.15;
margin: 0 0 24px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .04em;
font-weight: 300
}

.apie-mus__approach-subtitle {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 0;
opacity: .8
}

.apie-mus__approach-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px
}

.apie-mus__approach-card {
background: #fff;
padding: 40px;
border-radius: 20px;
box-shadow: 0 3px 4px 1px #1d101f0d;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1);
position: relative;
overflow: hidden
}

.apie-mus__approach-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: #BB84E8;
transform: scaleX(0);
transform-origin: left;
transition: transform .64s cubic-bezier(0.4, 0, 0.6, 1)
}

.apie-mus__approach-card:hover {
transform: perspective(800px) rotateX(2deg) rotateY(-2deg);
box-shadow: 0 8px 60px 1px #1d101f1a
}

.apie-mus__approach-card:hover::before {
transform: scaleX(1)
}

.apie-mus__approach-card-number {
font-size: 68px;
line-height: 1;
color: #BB84E8;
margin: 0 0 24px;
opacity: .3
}

.apie-mus__approach-card-heading {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px;
color: #1D101F
}

.apie-mus__approach-card-text {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.apie-mus__divider-band--tertiary {
height: 6px;
background: #1D101F
}

.apie-mus__methodology {
padding: 80px 24px;
background: #fff;
position: relative;
overflow: hidden
}

.apie-mus__methodology::before {
content: '';
position: absolute;
width: 300px;
height: 300px;
border: 1px solid #bb84e826;
border-radius: 50%;
top: 80px;
right: -100px;
pointer-events: none;
animation: apie-mus-pulse 8s ease-in-out infinite
}

.apie-mus__methodology::after {
content: '';
position: absolute;
width: 200px;
height: 200px;
border: 1px solid #bb84e826;
border-radius: 50%;
bottom: 120px;
left: -50px;
pointer-events: none;
animation: apie-mus-pulse 6s ease-in-out infinite 1s
}

@keyframes apie-mus-pulse {

0%,
100% {
transform: scale(1);
opacity: .3
}

50% {
transform: scale(1.15);
opacity: .6
}
}

.apie-mus__methodology-inner {
max-width: 1200px;
margin: 0 auto;
position: relative;
z-index: 1
}

.apie-mus__methodology-layout {
display: grid;
grid-template-columns: 480px 1fr;
gap: 80px;
align-items: center
}

.apie-mus__methodology-visual {
position: relative
}

.apie-mus__methodology-image-frame {
position: relative;
border-radius: 32px;
overflow: hidden;
box-shadow: 0 8px 60px 1px #bb84e81a;
transform: translateY(0);
transition: transform .84s cubic-bezier(0.4, 0, 0.6, 1)
}

.apie-mus__methodology-image-frame:hover {
transform: translateY(-12px) perspective(800px) rotateY(3deg)
}

.apie-mus__methodology-image {
width: 100%;
height: 580px;
object-fit: cover;
display: block;
transition: opacity .68s cubic-bezier(0.4, 0, 0.6, 1);
opacity: 0
}

.apie-mus__methodology-image.loaded {
opacity: 1
}

.apie-mus__methodology-content {
padding: 40px 0
}

.apie-mus__methodology-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F
}

.apie-mus__methodology-heading-first {
color: #1D101F
}

.apie-mus__methodology-heading-second {
color: #BB84E8 !important
}

.apie-mus__methodology-steps {
list-style: none;
padding: 0;
margin: 0;
position: relative
}

.apie-mus__methodology-steps::before {
content: '';
position: absolute;
left: 11px;
top: 24px;
bottom: 24px;
width: 2px;
background: linear-gradient(180deg, #BB84E8 0%, transparent 100%)
}

.apie-mus__methodology-step {
position: relative;
padding: 0 0 32px 56px;
margin: 0
}

.apie-mus__methodology-step:last-child {
padding-bottom: 0
}

.apie-mus__methodology-step::before {
content: '';
position: absolute;
left: 0;
top: 4px;
width: 24px;
height: 24px;
border-radius: 50%;
background: #BB84E8;
border: 3px solid #fff;
box-shadow: 0 3px 4px 1px #1d101f0d;
z-index: 1
}

.apie-mus__methodology-step-title {
font-size: 21px;
line-height: 1.4;
margin: 0 0 8px;
color: #1D101F;
font-weight: 600
}

.apie-mus__methodology-step-description {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
margin: 0;
opacity: .85
}

.apie-mus__team {
padding: 80px 24px;
background: linear-gradient(180deg, #F7F3FA 0%, #fff 100%);
position: relative
}

.apie-mus__team::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url(/site_images/first-final-lasta.jpg);
background-size: cover;
background-position: center;
background-attachment: fixed;
opacity: .12;
pointer-events: none
}

.apie-mus__team::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(180deg, #bb84e826 0%, #f7f3fa40 100%);
pointer-events: none
}

.apie-mus__team-inner {
max-width: 1400px;
margin: 0 auto;
position: relative;
z-index: 1
}

.apie-mus__team-header {
text-align: center;
margin: 0 0 80px
}

.apie-mus__team-title {
font-size: 68px;
line-height: 1.15;
margin: 0 0 24px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .03em;
font-weight: 300
}

.apie-mus__team-description {
font-size: 21px;
line-height: 1.6;
color: #1D101F;
margin: 0 auto;
max-width: 800px
}

.apie-mus__team-grid {
display: grid;
grid-template-columns: 520px 1fr;
gap: 80px;
align-items: start
}

.apie-mus__team-image-container {
position: relative;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 8px 60px 1px #1d101f1a;
transform: translateY(0);
transition: transform .78s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .78s cubic-bezier(0.4, 0, 0.6, 1)
}

.apie-mus__team-image-container:hover {
transform: translateY(-16px) perspective(800px) rotateX(-2deg);
box-shadow: 0 16px 80px 1px #1d101f26
}

.apie-mus__team-image {
width: 100%;
height: 640px;
object-fit: cover;
display: block;
transition: opacity .82s cubic-bezier(0.4, 0, 0.6, 1);
opacity: 0
}

.apie-mus__team-image.loaded {
opacity: 1
}

.apie-mus__team-content {
padding: 40px 0
}

.apie-mus__team-content-heading {
font-size: 27px;
line-height: 1.4;
margin: 0 0 24px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .05em;
font-weight: 300
}

.apie-mus__team-text {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px
}

.apie-mus__team-list {
list-style: none;
padding: 0;
margin: 40px 0 0
}

.apie-mus__team-list-item {
position: relative;
padding: 0 0 16px 40px;
margin: 0 0 16px;
font-size: 16px;
line-height: 1.6;
color: #1D101F
}

.apie-mus__team-list-item::before {
content: '';
position: absolute;
left: 0;
top: 8px;
width: 16px;
height: 16px;
background: #BB84E8;
border-radius: 3px;
transform: rotate(45deg);
transition: transform .16s ease-out
}

.apie-mus__team-list-item:hover::before {
transform: rotate(45deg) scale(1.2)
}

.apie-mus__invert-click {
display: inline-block;
padding: 16px 40px;
background: #1D101F;
color: #F7F3FA;
border: none;
border-radius: 10px;
font-size: 18px;
cursor: pointer;
transition: background-color .14s ease-out, color .14s ease-out;
margin: 24px 0 0;
text-decoration: none
}

.apie-mus__invert-click:active {
background: #F7F3FA;
color: #1D101F
}

@media (max-width: 1024px) {
.apie-mus__title-wrapper {
padding: 40px 24px
}

.apie-mus__main-heading {
font-size: 52px
}

.apie-mus__title-image {
height: 280px
}

.apie-mus__foundation-grid,
.apie-mus__methodology-layout,
.apie-mus__team-grid {
grid-template-columns: 1fr;
gap: 40px
}

.apie-mus__approach-grid {
grid-template-columns: 1fr
}

.apie-mus__foundation-heading,
.apie-mus__approach-title,
.apie-mus__methodology-heading,
.apie-mus__team-title {
font-size: 27px
}

.apie-mus__foundation-image,
.apie-mus__methodology-image,
.apie-mus__team-image {
height: 320px
}

.apie-mus__foundation,
.apie-mus__approach,
.apie-mus__methodology,
.apie-mus__team {
padding: 40px 24px
}
}

::selection {
background: #bb84e833;
color: #1D101F
}

.contact-outreach {
max-width: 1600px;
margin: 0 auto;
background: #FFF
}

.contact-outreach__intro {
position: relative;
padding: 160px 40px 80px;
overflow: hidden;
background: linear-gradient(180deg, #F7F3FA 0%, transparent 100%)
}

.contact-outreach__intro::before,
.contact-outreach__intro::after {
content: '';
position: absolute;
border-radius: 50%;
filter: blur(80px);
opacity: .08;
pointer-events: none
}

.contact-outreach__intro::before {
width: 420px;
height: 420px;
background: #BB84E8;
top: -100px;
left: -80px
}

.contact-outreach__intro::after {
width: 360px;
height: 360px;
background: #1D101F;
bottom: -120px;
right: -60px
}

.contact-outreach__intro-content {
max-width: 900px;
margin: 0 auto;
text-align: center;
position: relative;
z-index: 2
}

.contact-outreach__intro-image {
width: 100%;
max-width: 640px;
height: 380px;
margin: 0 auto 40px;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 8px 60px 1px #1d101f1a;
position: relative;
animation: contact-outreach-reveal 1.4s cubic-bezier(0.4, 0, 0.6, 1) forwards;
clip-path: inset(0 100% 0 0)
}

@keyframes contact-outreach-reveal {
to {
clip-path: inset(0 0 0 0)
}
}

.contact-outreach__intro-image::after {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at center, transparent 30%, #1d101f59 100%);
pointer-events: none
}

.contact-outreach__intro-image img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
animation: contact-outreach-zoom 8s ease-out infinite alternate
}

@keyframes contact-outreach-zoom {
from {
transform: scale(1)
}

to {
transform: scale(1.08)
}
}

.contact-outreach__intro-title {
font-size: 68px;
line-height: 1.15;
margin: 0 0 24px;
color: #1D101F;
letter-spacing: -.02em
}

.contact-outreach__intro-title-accent {
color: #BB84E8
}

.contact-outreach__channels {
position: relative;
padding: 80px 40px;
background: #FFF
}

.contact-outreach__channels::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 40px;
background: radial-gradient(circle at 20px 0, transparent 20px, #F7F3FA 20px, #F7F3FA 40px, transparent 40px);
background-size: 80px 40px;
background-repeat: repeat-x
}

.contact-outreach__channels-container {
max-width: 1400px;
margin: 0 auto;
display: flex;
flex-direction: row;
gap: 80px
}

.contact-outreach__channels-left {
flex: 0 0 60%
}

.contact-outreach__channels-right {
flex: 0 0 calc(40% - 80px);
border-right: 2px solid #F7F3FA;
padding-right: 40px
}

.contact-outreach__channels-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.contact-outreach__channels-grid {
display: grid;
grid-template-columns: 140px 1fr 140px 1fr;
gap: 40px 24px;
align-items: start
}

.contact-outreach__channel-label {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .12em;
opacity: .6;
display: flex;
align-items: center;
gap: 8px
}

.contact-outreach__channel-icon {
width: 20px;
height: 20px;
background: #BB84E8;
border-radius: 3px;
flex-shrink: 0;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.contact-outreach__channel-label:hover .contact-outreach__channel-icon {
transform: perspective(400px) rotateY(12deg)
}

.contact-outreach__channel-value {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.contact-outreach__channel-value a {
color: inherit;
text-decoration: none;
transition: color .16s ease-out
}

.contact-outreach__channel-value a:hover {
color: #BB84E8
}

.contact-outreach__channels-sidebar {
position: sticky;
top: 80px
}

.contact-outreach__channels-note {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px
}

.contact-outreach__channels-counter {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 48px;
height: 32px;
padding: 0 16px;
background: #BB84E8;
color: #FFF;
font-size: 16px;
line-height: 1;
font-weight: 600;
border-radius: 32px;
margin-top: 16px
}

.contact-outreach__form-section {
position: relative;
padding: 80px 40px 160px;
background: radial-gradient(ellipse at center, #F7F3FA 0%, #FFF 70%)
}

.contact-outreach__form-wrapper {
max-width: 1400px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: start
}

.contact-outreach__form-intro {
position: sticky;
top: 80px
}

.contact-outreach__form-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.contact-outreach__form-description {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 24px;
opacity: .8
}

.contact-outreach__comparison {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin-top: 40px
}

.contact-outreach__comparison-column {
padding: 24px;
background: #FFF;
border-radius: 10px;
box-shadow: 0 3px 4px 1px #1d101f0d;
transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .2s cubic-bezier(0.4, 0, 0.6, 1)
}

.contact-outreach__comparison-column:hover {
transform: perspective(600px) rotateY(-3deg);
box-shadow: 0 4px 14px 1px #1d101f1a
}

.contact-outreach__comparison-column:last-child:hover {
transform: perspective(600px) rotateY(3deg)
}

.contact-outreach__comparison-label {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .12em;
margin: 0 0 16px;
opacity: .6
}

.contact-outreach__comparison-text {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.contact-outreach__form {
background: #FFF;
padding: 40px;
border-radius: 20px;
box-shadow: 0 8px 60px 1px #1d101f1a
}

.contact-outreach__form-group {
margin-bottom: 24px
}

.contact-outreach__form-label {
display: block;
font-size: 16px;
line-height: 1.4;
color: #1D101F;
margin-bottom: 8px;
text-transform: uppercase;
letter-spacing: .08em
}

.contact-outreach__form-input {
width: 100%;
padding: 16px 24px;
font-size: 18px;
line-height: 1.4;
color: #1D101F;
background: #F7F3FA;
border: 2px solid transparent;
border-radius: 10px;
outline: none;
transition: border-color .16s ease-out, box-shadow .16s ease-out;
box-shadow: inset 0 2px 4px #1d101f0a
}

.contact-outreach__form-input:focus {
border-color: #BB84E8;
box-shadow: inset 0 2px 4px #1d101f0a 0 0 0 3px #bb84e826
}

.contact-outreach__form-input::placeholder {
color: #1D101F;
opacity: .4
}

.contact-outreach__form-input::before {
content: '';
display: inline-block;
width: 18px;
height: 18px;
background: #BB84E8;
border-radius: 3px;
margin-right: 8px;
vertical-align: middle
}

.contact-outreach__form-select-wrapper {
position: relative
}

.contact-outreach__form-select {
width: 100%;
padding: 16px 24px;
font-size: 18px;
line-height: 1.4;
color: #1D101F;
background: #F7F3FA;
border: 2px solid transparent;
border-radius: 10px;
outline: none;
appearance: none;
cursor: pointer;
transition: border-color .16s ease-out, box-shadow .16s ease-out;
box-shadow: inset 0 2px 4px #1d101f0a
}

.contact-outreach__form-select:focus {
border-color: #BB84E8;
box-shadow: inset 0 2px 4px #1d101f0a 0 0 0 3px #bb84e826
}

.contact-outreach__form-select-wrapper::after {
content: '';
position: absolute;
right: 24px;
top: 50%;
transform: translateY(-50%);
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #1D101F;
pointer-events: none;
opacity: .6
}

.contact-outreach__form-checkbox-wrapper {
display: flex;
align-items: start;
gap: 16px;
margin-top: 40px;
margin-bottom: 40px
}

.contact-outreach__form-checkbox {
flex-shrink: 0;
width: 24px;
height: 24px;
margin-top: 2px;
cursor: pointer;
accent-color: #BB84E8
}

.contact-outreach__form-privacy {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.contact-outreach__form-privacy a {
color: #BB84E8;
text-decoration: none;
transition: color .16s ease-out
}

.contact-outreach__form-privacy a:hover {
color: #1D101F
}

.contact-outreach__form-submit {
width: 100%;
padding: 20px 40px;
font-size: 18px;
line-height: 1.4;
color: #FFF;
background: #1D101F;
border: none;
border-radius: 10px;
cursor: pointer;
text-transform: lowercase;
letter-spacing: .04em;
position: relative;
overflow: hidden;
transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1)
}

.contact-outreach__form-submit::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0;
background: #BB84E8;
transition: height .7s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1
}

.contact-outreach__form-submit:hover::before {
height: 100%
}

.contact-outreach__form-submit span {
position: relative;
z-index: 2
}

.contact-outreach__form-submit:hover {
transform: perspective(400px) rotateX(-2deg)
}

.contact-outreach__form-submit:active {
transform: perspective(400px) rotateX(-2deg) scale(0.98)
}

.contact-outreach ::selection {
background: #bb84e840;
color: #1D101F
}

@media (max-width: 1024px) {
.contact-outreach__channels-container {
flex-direction: column;
gap: 40px
}

.contact-outreach__channels-left,
.contact-outreach__channels-right {
flex: 1 1 auto
}

.contact-outreach__channels-right {
border-right: none;
padding-right: 0;
border-top: 2px solid #F7F3FA;
padding-top: 40px
}

.contact-outreach__channels-grid {
grid-template-columns: 120px 1fr
}

.contact-outreach__form-wrapper {
grid-template-columns: 1fr;
gap: 40px
}

.contact-outreach__form-intro {
position: static
}
}

@media (max-width: 768px) {
.contact-outreach__intro {
padding: 80px 24px 40px
}

.contact-outreach__intro-title {
font-size: 52px
}

.contact-outreach__intro-image {
height: 280px;
margin-bottom: 24px
}

.contact-outreach__channels {
padding: 40px 24px
}

.contact-outreach__channels-heading {
font-size: 27px;
margin-bottom: 24px
}

.contact-outreach__channels-grid {
grid-template-columns: 1fr;
gap: 16px
}

.contact-outreach__channel-label {
font-size: 16px
}

.contact-outreach__channel-value {
font-size: 18px;
margin-top: 8px
}

.contact-outreach__form-section {
padding: 40px 24px 80px
}

.contact-outreach__form-heading {
font-size: 27px;
margin-bottom: 24px
}

.contact-outreach__comparison {
grid-template-columns: 1fr;
gap: 16px
}

.contact-outreach__form {
padding: 24px
}
}

.front {
background: #F7F3FA;
color: #1D101F;
position: relative;
overflow-x: clip
}

.front::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><rect width="100" height="100" fill="none"/><path d="M0 0L100 0L100 100L0 100Z" stroke="%231D101F" stroke-width="0.5" fill="none" opacity="0.03"/></svg>');
background-size: 80px 80px;
pointer-events: none;
z-index: 1
}

.front>* {
position: relative;
z-index: 2
}

.front__fog {
position: fixed;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle at 30% 40%, #f7f3fa99 0%, transparent 50%);
animation: front__fog-drift 90s linear infinite;
pointer-events: none;
z-index: 1
}

@keyframes front__fog-drift {
0% {
transform: translate(0, 0) rotate(0deg)
}

100% {
transform: translate(15%, 10%) rotate(360deg)
}
}

.front__rotating-shape {
position: absolute;
width: 600px;
height: 600px;
top: 10%;
right: -200px;
opacity: .08;
animation: front__shape-rotate 240s linear infinite;
pointer-events: none
}

.front__rotating-shape svg {
width: 100%;
height: 100%
}

@keyframes front__shape-rotate {
from {
transform: rotate(0deg)
}

to {
transform: rotate(360deg)
}
}

.front__divider {
width: 100%;
height: 60px;
overflow: hidden;
line-height: 0
}

.front__divider svg {
width: 100%;
height: 100%
}

.front__title {
max-width: 1600px;
margin: 0 auto;
padding: 40px 24px;
display: flex;
gap: 40px;
align-items: center;
position: relative
}

.front__title-visual {
flex-shrink: 0;
width: 320px;
height: 380px;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 4px 14px 1px #1d101f1a
}

.front__title-visual img {
width: 100%;
height: 100%;
object-fit: cover;
filter: grayscale(1) contrast(1.3);
transition: opacity .72s cubic-bezier(0.4, 0, 0.6, 1)
}

.front__title-visual img:hover {
filter: grayscale(0.7) contrast(1.2)
}

.front__title-content {
flex: 1
}

.front__title-content h1 {
font-size: 68px;
line-height: 1.15;
margin: 0 0 16px;
letter-spacing: -.02em
}

.front__title-content h1 span:first-child {
color: #1D101F
}

.front__title-content h1 span:last-child {
color: #BB84E8
}

.front__title-content p {
font-size: 21px;
line-height: 1.6;
margin: 0 0 24px;
max-width: 680px
}

.front__title-link {
display: inline-block;
font-size: 18px;
color: #1D101F;
text-decoration: none;
padding: 16px 40px;
border: 2px solid #1D101F;
border-radius: 5px;
transition: background .72s cubic-bezier(0.4, 0, 0.6, 1), color .72s cubic-bezier(0.4, 0, 0.6, 1);
position: relative;
overflow: hidden
}

.front__title-link::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #1D101F;
transition: height .82s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.front__title-link:hover::before {
height: 100%
}

.front__title-link:hover {
color: #F7F3FA
}

@media (max-width: 900px) {
.front__title {
flex-direction: column;
padding: 24px 16px
}

.front__title-visual {
width: 100%;
max-width: 420px;
height: 320px
}

.front__title-content h1 {
font-size: 52px
}
}

.front__stories {
max-width: 1600px;
margin: 0 auto;
padding: 80px 24px;
background: linear-gradient(180deg, #BB84E8 0%, transparent 100%)
}

.front__stories-header {
text-align: center;
margin-bottom: 80px
}

.front__stories-header h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__stories-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px
}

.front__story-card {
background: #fff;
border-radius: 20px;
padding: 40px;
box-shadow: 0 3px 4px 1px #1d101f0d;
transition: transform .18s ease-out, box-shadow .18s ease-out;
position: relative;
overflow: hidden
}

.front__story-card::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 80px;
height: 80px;
background: linear-gradient(135deg, #BB84E8 0%, transparent 100%);
clip-path: polygon(100% 0, 0 0, 100% 100%)
}

.front__story-card:hover {
transform: perspective(800px) rotateX(2deg) rotateY(-2deg);
box-shadow: 0 8px 60px 1px #1d101f1a
}

.front__story-card h3 {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px
}

.front__story-before {
font-size: 16px;
line-height: 1.6;
margin: 0 0 24px;
padding: 16px;
background: #F7F3FA;
border-radius: 3px;
position: relative;
padding-left: 40px
}

.front__story-before::before {
content: '';
position: absolute;
left: 16px;
top: 50%;
transform: translateY(-50%);
width: 12px;
height: 12px;
border-radius: 50%;
background: #BB84E8
}

.front__story-after {
font-size: 18px;
line-height: 1.6;
margin: 0;
font-weight: 600
}

@media (max-width: 1100px) {
.front__stories-grid {
grid-template-columns: repeat(2, 1fr)
}
}

@media (max-width: 700px) {
.front__stories {
padding: 40px 16px
}

.front__stories-header {
margin-bottom: 40px
}

.front__stories-header h2 {
font-size: 27px
}

.front__stories-grid {
grid-template-columns: 1fr;
gap: 24px
}

.front__story-card {
padding: 24px
}
}

.front__recognition {
background: #fff;
padding: 80px 24px;
position: relative
}

.front__recognition-inner {
max-width: 1600px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: start
}

.front__recognition-content h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 24px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__recognition-content p {
font-size: 18px;
line-height: 1.6;
margin: 0 0 16px
}

.front__recognition-list {
display: flex;
flex-direction: column;
gap: 24px
}

.front__recognition-item {
background: #F7F3FA;
padding: 24px 24px 24px 80px;
border-radius: 10px;
position: relative;
transition: transform .22s cubic-bezier(0.4, 0, 0.6, 1)
}

.front__recognition-item:hover {
transform: perspective(600px) rotateY(3deg)
}

.front__recognition-number {
position: absolute;
left: 24px;
top: 50%;
transform: translateY(-50%);
font-size: 52px;
line-height: 1;
font-weight: 700;
color: #BB84E8;
opacity: .4
}

.front__recognition-item h4 {
font-size: 21px;
line-height: 1.4;
margin: 0 0 8px
}

.front__recognition-item p {
font-size: 16px;
line-height: 1.6;
margin: 0
}

@media (max-width: 1000px) {
.front__recognition {
padding: 40px 16px
}

.front__recognition-inner {
grid-template-columns: 1fr;
gap: 40px
}

.front__recognition-content h2 {
font-size: 27px
}
}

.front__currency {
max-width: 1600px;
margin: 0 auto;
padding: 80px 24px;
position: relative
}

.front__currency::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><circle cx="100" cy="100" r="80" fill="none" stroke="%23BB84E8" stroke-width="0.5" opacity="0.1"/></svg>');
background-size: 200px 200px;
opacity: .08;
pointer-events: none
}

.front__currency-header {
text-align: center;
margin-bottom: 80px
}

.front__currency-header h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__currency-header p {
font-size: 21px;
line-height: 1.6;
margin: 0 auto;
max-width: 800px
}

.front__currency-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px
}

.front__currency-block {
background: #fff;
border-radius: 32px;
overflow: hidden;
box-shadow: 0 4px 14px 1px #1d101f1a;
transition: transform .22s cubic-bezier(0.4, 0, 0.6, 1)
}

.front__currency-block:hover {
transform: perspective(1000px) rotateX(-2deg)
}

.front__currency-image {
width: 100%;
height: 280px;
overflow: hidden
}

.front__currency-image img {
width: 100%;
height: 100%;
object-fit: cover;
filter: blur(3px);
transition: filter .72s cubic-bezier(0.4, 0, 0.6, 1)
}

.front__currency-block:hover .front__currency-image img {
filter: blur(0)
}

.front__currency-text {
padding: 40px
}

.front__currency-text h3 {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px
}

.front__currency-text p {
font-size: 18px;
line-height: 1.6;
margin: 0
}

@media (max-width: 900px) {
.front__currency {
padding: 40px 16px
}

.front__currency-header {
margin-bottom: 40px
}

.front__currency-header h2 {
font-size: 27px
}

.front__currency-grid {
grid-template-columns: 1fr;
gap: 24px
}
}

.front__offerings {
background: #1D101F;
color: #F7F3FA;
padding: 80px 24px;
position: relative
}

.front__offerings-inner {
max-width: 1600px;
margin: 0 auto
}

.front__offerings-header {
margin-bottom: 80px
}

.front__offerings-header h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 24px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__offerings-header p {
font-size: 21px;
line-height: 1.6;
margin: 0;
max-width: 900px
}

.front__offerings-columns {
display: grid;
grid-template-columns: 120px 1fr 120px 1fr;
gap: 40px;
align-items: start
}

.front__offerings-label {
font-size: 16px;
line-height: 1.4;
text-transform: uppercase;
letter-spacing: .12em;
color: #BB84E8;
padding-top: 8px
}

.front__offerings-description {
font-size: 18px;
line-height: 1.6
}

.front__offerings-description h4 {
font-size: 21px;
line-height: 1.4;
margin: 0 0 16px;
color: #BB84E8
}

.front__offerings-description p {
margin: 0 0 24px
}

.front__offerings-description p:last-child {
margin: 0
}

@media (max-width: 1100px) {
.front__offerings {
padding: 40px 16px
}

.front__offerings-header {
margin-bottom: 40px
}

.front__offerings-header h2 {
font-size: 27px
}

.front__offerings-columns {
grid-template-columns: 1fr;
gap: 24px
}

.front__offerings-label {
padding-top: 0
}
}

.front__support {
max-width: 1600px;
margin: 0 auto;
padding: 80px 24px;
background: #fff
}

.front__support-header {
text-align: center;
margin-bottom: 80px
}

.front__support-header h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__support-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px
}

.front__support-card {
background: #F7F3FA;
padding: 40px 24px;
border-radius: 10px;
text-align: center;
transition: background .72s cubic-bezier(0.4, 0, 0.6, 1);
animation: front__support-cycle 8s ease-in-out infinite;
animation-delay: calc(var(--card-index) * 2s)
}

.front__support-card:nth-child(1) {
--card-index: 0
}

.front__support-card:nth-child(2) {
--card-index: 1
}

.front__support-card:nth-child(3) {
--card-index: 2
}

.front__support-card:nth-child(4) {
--card-index: 3
}

@keyframes front__support-cycle {

0%,
90%,
100% {
background: #F7F3FA;
transform: scale(1)
}

10%,
80% {
background: #BB84E8;
transform: scale(1.05)
}
}

.front__support-icon {
width: 60px;
height: 60px;
margin: 0 auto 24px;
display: flex;
align-items: center;
justify-content: center
}

.front__support-icon svg {
width: 100%;
height: 100%;
fill: #1D101F
}

.front__support-card h4 {
font-size: 21px;
line-height: 1.4;
margin: 0 0 16px
}

.front__support-card p {
font-size: 16px;
line-height: 1.6;
margin: 0
}

@media (max-width: 1100px) {
.front__support {
padding: 40px 16px
}

.front__support-header {
margin-bottom: 40px
}

.front__support-header h2 {
font-size: 27px
}

.front__support-grid {
grid-template-columns: repeat(2, 1fr)
}
}

@media (max-width: 600px) {
.front__support-grid {
grid-template-columns: 1fr
}
}

.front__bridge {
background: linear-gradient(180deg, #1D101F 0%, transparent 100%);
padding: 80px 24px;
position: relative
}

.front__bridge-inner {
max-width: 1600px;
margin: 0 auto;
text-align: center
}

.front__bridge-inner h2 {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.front__bridge-comparison {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 80px;
align-items: center;
max-width: 1200px;
margin: 0 auto 40px
}

.front__bridge-side {
background: #fff;
padding: 40px;
border-radius: 20px;
box-shadow: 0 4px 14px 1px #1d101f1a
}

.front__bridge-side h3 {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px
}

.front__bridge-side p {
font-size: 18px;
line-height: 1.6;
margin: 0
}

.front__bridge-arrow {
font-size: 68px;
color: #BB84E8;
line-height: 1
}

.front__bridge-cta {
display: inline-block;
font-size: 21px;
color: #1D101F;
background: #F7F3FA;
text-decoration: none;
padding: 24px 80px;
border-radius: 5px;
transition: background .72s cubic-bezier(0.4, 0, 0.6, 1), transform .18s ease-out;
position: relative;
overflow: hidden
}

.front__bridge-cta::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #BB84E8;
transition: height .82s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.front__bridge-cta:hover::before {
height: 100%
}

.front__bridge-cta:hover {
transform: perspective(600px) rotateX(-3deg)
}

@media (max-width: 1000px) {
.front__bridge {
padding: 40px 16px
}

.front__bridge-inner h2 {
font-size: 27px;
margin-bottom: 24px
}

.front__bridge-comparison {
grid-template-columns: 1fr;
gap: 24px
}

.front__bridge-arrow {
transform: rotate(90deg)
}
}

::selection {
background: #bb84e840;
color: #1D101F
}

.student-projects {
max-width: 1600px;
margin: 0 auto;
padding: 0;
background: #F7F3FA
}

.student-projects__radial-hero {
position: relative;
min-height: 580px;
display: flex;
align-items: center;
background: radial-gradient(circle at 15% 30%, #BB84E8, transparent 65%), radial-gradient(circle at 85% 70%, #bb84e866, transparent 50%), #F7F3FA;
padding: 80px 40px;
overflow: hidden
}

.student-projects__radial-hero::before {
content: '';
position: absolute;
width: 8px;
height: 8px;
background: #1D101F;
border-radius: 50%;
top: 120px;
left: 25%;
opacity: .3
}

.student-projects__radial-hero::after {
content: '';
position: absolute;
width: 6px;
height: 6px;
background: #BB84E8;
border-radius: 50%;
top: 180px;
left: calc(25% + 40px);
opacity: .4
}

.student-projects__radial-hero-dot-one {
position: absolute;
width: 5px;
height: 5px;
background: #1D101F;
border-radius: 50%;
top: 240px;
left: calc(25% + 20px);
opacity: .25
}

.student-projects__radial-hero-dot-two {
position: absolute;
width: 7px;
height: 7px;
background: #BB84E8;
border-radius: 50%;
top: 300px;
left: calc(25% + 60px);
opacity: .35
}

.student-projects__radial-hero-grid {
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 80px;
align-items: start;
position: relative;
z-index: 1
}

.student-projects__radial-hero-text h1 {
font-size: 68px;
line-height: 1.15;
margin: 0 0 24px;
color: #1D101F
}

.student-projects__radial-hero-text h1 span {
color: #BB84E8
}

.student-projects__radial-hero-tagline {
font-size: 21px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 40px;
opacity: .85
}

.student-projects__radial-hero-links {
display: flex;
gap: 24px;
flex-wrap: wrap
}

.student-projects__radial-hero-link {
font-size: 18px;
color: #1D101F;
text-decoration: none;
padding: 16px 40px;
border: 2px solid #1D101F;
border-radius: 10px;
transition: background-color .18s cubic-bezier(0.4, 0, 0.6, 1), color .18s cubic-bezier(0.4, 0, 0.6, 1);
position: relative;
overflow: hidden
}

.student-projects__radial-hero-link::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #1D101F;
transition: height .72s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.student-projects__radial-hero-link:hover::before {
height: 100%
}

.student-projects__radial-hero-link:hover {
color: #F7F3FA
}

.student-projects__radial-hero-image-wrap {
position: relative;
border-radius: 20px;
overflow: hidden;
border: 6px solid #F7F3FA;
box-shadow: 0 8px 60px 1px #1d101f1a
}

.student-projects__radial-hero-image-wrap::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, #bb84e84d 0%, transparent 60%);
z-index: 1;
pointer-events: none
}

.student-projects__radial-hero-image {
width: 100%;
height: 420px;
object-fit: cover;
display: block;
opacity: 0;
animation: student-projects-fade-in .8s ease-out .2s forwards
}

@keyframes student-projects-fade-in {
to {
opacity: 1
}
}

.student-projects__divider-wrap {
text-align: center;
padding: 80px 0;
position: relative
}

.student-projects__divider-line {
height: 1px;
background: linear-gradient(90deg, transparent, #1D101F 20%, #1D101F 80%, transparent);
opacity: .2;
position: relative
}

.student-projects__divider-symbol {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 48px;
height: 48px;
background: #F7F3FA;
display: flex;
align-items: center;
justify-content: center;
font-size: 27px;
color: #BB84E8;
font-weight: 700;
border-radius: 50%;
border: 2px solid #BB84E8
}

.student-projects__catalog {
padding: 0 40px 80px;
background: #F7F3FA
}

.student-projects__catalog-heading {
font-size: 52px;
line-height: 1.15;
text-align: center;
margin: 0 0 80px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.student-projects__catalog-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px
}

.student-projects__catalog-card {
background: #fff;
border-radius: 20px;
overflow: hidden;
border: 5px solid #F7F3FA;
box-shadow: 0 4px 14px 1px #1d101f1a;
transition: transform .76s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .76s cubic-bezier(0.4, 0, 0.6, 1);
opacity: 0;
transform: rotateY(-90deg);
transform-style: preserve-3d;
animation: student-projects-card-flip .88s cubic-bezier(0.4, 0, 0.6, 1) forwards
}

.student-projects__catalog-card:nth-child(1) {
animation-delay: .1s
}

.student-projects__catalog-card:nth-child(2) {
animation-delay: .25s
}

.student-projects__catalog-card:nth-child(3) {
animation-delay: .4s
}

.student-projects__catalog-card:nth-child(4) {
animation-delay: .55s
}

@keyframes student-projects-card-flip {
to {
opacity: 1;
transform: rotateY(0deg)
}
}

.student-projects__catalog-card:hover {
transform: perspective(1000px) rotateX(2deg) rotateY(-2deg);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.student-projects__catalog-card-image-wrap {
position: relative;
overflow: hidden;
height: 240px
}

.student-projects__catalog-card-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block
}

.student-projects__catalog-card-content {
padding: 24px
}

.student-projects__catalog-card-tags {
display: flex;
gap: 8px;
margin-bottom: 16px;
flex-wrap: wrap
}

.student-projects__catalog-card-tag {
font-size: 16px;
padding: 8px 16px;
background: #F7F3FA;
color: #1D101F;
border-radius: 5px;
text-transform: lowercase
}

.student-projects__catalog-card-tag.student-projects__catalog-card-tag--user {
background: #BB84E8;
color: #fff
}

.student-projects__catalog-card-title {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px;
color: #1D101F
}

.student-projects__catalog-card-description {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
opacity: .75;
margin: 0 0 24px
}

.student-projects__catalog-card-meta {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 16px;
border-top: 1px solid #F7F3FA;
margin-bottom: 24px
}

.student-projects__catalog-card-meta-item {
font-size: 16px;
color: #1D101F;
opacity: .6
}

.student-projects__catalog-card-meta-item strong {
color: #BB84E8;
font-weight: 700
}

.student-projects__catalog-card-price-wrap {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px
}

.student-projects__catalog-card-price {
font-size: 27px;
color: #1D101F;
font-weight: 700
}

.student-projects__catalog-card-price-terms {
font-size: 16px;
color: #1D101F;
opacity: .6
}

.student-projects__catalog-card-seats {
font-size: 18px;
color: #BB84E8;
margin-bottom: 24px
}

.student-projects__catalog-card-link {
display: block;
text-align: center;
padding: 16px;
background: transparent;
border: 2px solid #1D101F;
border-radius: 10px;
color: #1D101F;
text-decoration: none;
font-size: 18px;
text-transform: lowercase;
transition: background-color .16s ease-out, color .16s ease-out;
position: relative;
overflow: hidden
}

.student-projects__catalog-card-link::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #1D101F;
transition: height .68s cubic-bezier(0.4, 0, 0.6, 1);
z-index: -1
}

.student-projects__catalog-card-link:hover::before {
height: 100%
}

.student-projects__catalog-card-link:hover {
color: #fff
}

.student-projects__stats-section {
background: #fff;
padding: 80px 40px;
position: relative;
overflow: hidden
}

.student-projects__stats-section::before {
content: '';
position: absolute;
top: 0;
left: 30%;
width: 2px;
height: 100%;
background: linear-gradient(170deg, transparent, #BB84E8 30%, #BB84E8 70%, transparent);
opacity: .15;
transform: rotate(-25deg);
transform-origin: top
}

.student-projects__stats-heading {
font-size: 52px;
line-height: 1.15;
text-align: center;
margin: 0 0 80px;
color: #1D101F
}

.student-projects__stats-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px;
max-width: 1200px;
margin: 0 auto
}

.student-projects__stats-card {
text-align: center;
padding: 40px 24px;
background: #F7F3FA;
border-radius: 20px;
transition: transform .22s ease-out
}

.student-projects__stats-card:hover {
transform: perspective(800px) rotateX(-3deg) rotateY(3deg)
}

.student-projects__stats-number {
font-size: 68px;
line-height: 1.15;
color: #BB84E8;
font-weight: 700;
margin: 0 0 16px
}

.student-projects__stats-label {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 0
}

.student-projects__approach-section {
padding: 80px 40px;
background: linear-gradient(180deg, #BB84E8 0%, transparent 100%), #F7F3FA;
position: relative
}

.student-projects__approach-container {
max-width: 1200px;
margin: 0 auto
}

.student-projects__approach-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F
}

.student-projects__approach-intro {
font-size: 21px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 80px;
max-width: 800px
}

.student-projects__approach-columns {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: start
}

.student-projects__approach-column-two {
margin-top: 120px
}

.student-projects__approach-item {
margin-bottom: 40px
}

.student-projects__approach-item-heading {
font-size: 27px;
line-height: 1.4;
margin: 0 0 16px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .06em;
font-weight: 300
}

.student-projects__approach-item-text {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0;
opacity: .8
}

.student-projects__process-section {
padding: 80px 40px;
background: #fff;
position: relative
}

.student-projects__process-section::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-image: url(/site_images/tmp-2025_10-final10.jpg);
background-size: cover;
background-position: center;
opacity: .08;
z-index: 0;
pointer-events: none
}

.student-projects__process-container {
max-width: 1400px;
margin: 0 auto;
position: relative;
z-index: 1
}

.student-projects__process-heading {
font-size: 52px;
line-height: 1.15;
text-align: center;
margin: 0 0 80px;
color: #1D101F;
text-transform: uppercase;
letter-spacing: .08em;
font-weight: 300
}

.student-projects__process-steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px
}

.student-projects__process-step {
background: #f7f3faf2;
padding: 40px 24px;
border-radius: 20px;
border: 4px solid #fff;
box-shadow: 0 3px 4px 1px #1d101f0d;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.student-projects__process-step:hover {
transform: perspective(700px) rotateX(4deg) rotateY(-4deg);
box-shadow: 0 8px 60px 1px #bb84e81a
}

.student-projects__process-step-number {
font-size: 68px;
line-height: 1.15;
color: #BB84E8;
font-weight: 700;
margin: 0 0 24px
}

.student-projects__process-step-title {
font-size: 21px;
line-height: 1.4;
color: #1D101F;
margin: 0 0 16px;
text-transform: uppercase;
letter-spacing: .05em;
font-weight: 300
}

.student-projects__process-step-description {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0;
opacity: .75
}

.student-projects__outcomes-section {
padding: 80px 40px;
background: #F7F3FA
}

.student-projects__outcomes-container {
max-width: 1000px;
margin: 0 auto
}

.student-projects__outcomes-heading {
font-size: 52px;
line-height: 1.15;
margin: 0 0 40px;
color: #1D101F
}

.student-projects__outcomes-list {
list-style: none;
padding: 0;
margin: 0
}

.student-projects__outcomes-item {
display: flex;
align-items: start;
gap: 24px;
margin-bottom: 40px;
padding: 24px;
background: #fff;
border-radius: 10px;
border: 3px solid #F7F3FA;
transition: transform .2s ease-out, box-shadow .2s ease-out
}

.student-projects__outcomes-item:hover {
transform: perspective(600px) rotateX(-2deg) rotateY(2deg);
box-shadow: 0 4px 14px 1px #1d101f1a
}

.student-projects__outcomes-item::before {
content: '';
width: 12px;
height: 12px;
background: #BB84E8;
border-radius: 50%;
flex-shrink: 0;
margin-top: 8px
}

.student-projects__outcomes-item-text {
font-size: 21px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.student-projects ::selection {
background: #bb84e840;
color: #1D101F
}

@media (max-width: 1200px) {
.student-projects__radial-hero-grid {
grid-template-columns: 1fr;
gap: 40px
}

.student-projects__catalog-grid {
grid-template-columns: 1fr
}

.student-projects__stats-grid {
grid-template-columns: repeat(2, 1fr)
}

.student-projects__approach-columns {
grid-template-columns: 1fr;
gap: 40px
}

.student-projects__approach-column-two {
margin-top: 0
}

.student-projects__process-steps {
grid-template-columns: repeat(2, 1fr)
}
}

@media (max-width: 768px) {
.student-projects__radial-hero {
padding: 40px 24px;
min-height: 480px
}

.student-projects__radial-hero-text h1 {
font-size: 52px
}

.student-projects__radial-hero-tagline {
font-size: 18px
}

.student-projects__radial-hero-links {
flex-direction: column
}

.student-projects__catalog {
padding: 0 24px 40px
}

.student-projects__catalog-heading {
font-size: 27px;
margin-bottom: 40px
}

.student-projects__stats-section {
padding: 40px 24px
}

.student-projects__stats-heading {
font-size: 27px;
margin-bottom: 40px
}

.student-projects__stats-grid {
grid-template-columns: 1fr;
gap: 24px
}

.student-projects__stats-number {
font-size: 52px
}

.student-projects__approach-section {
padding: 40px 24px
}

.student-projects__approach-heading {
font-size: 27px
}

.student-projects__approach-intro {
font-size: 18px;
margin-bottom: 40px
}

.student-projects__process-section {
padding: 40px 24px
}

.student-projects__process-heading {
font-size: 27px;
margin-bottom: 40px
}

.student-projects__process-steps {
grid-template-columns: 1fr
}

.student-projects__outcomes-section {
padding: 40px 24px
}

.student-projects__outcomes-heading {
font-size: 27px
}

.student-projects__outcomes-item {
flex-direction: column;
gap: 16px
}

.student-projects__divider-wrap {
padding: 40px 0
}
}

.success-page {
max-width: 1600px;
margin: 0 auto;
padding: 80px 16px;
background: #F7F3FA
}

.success-page .confirmation-block {
max-width: 680px;
margin: 0 auto;
background: #fff;
border-radius: 20px;
padding: 80px 40px;
text-align: center;
box-shadow: 0 4px 14px 1px #bb84e81a
}

.success-page .status-icon {
width: 88px;
height: 88px;
margin: 0 auto 40px;
background: linear-gradient(180deg, #BB84E8 0%, #bb84e800 100%);
border-radius: 32px;
display: flex;
align-items: center;
justify-content: center;
position: relative
}

.success-page .status-icon::before {
content: '';
width: 36px;
height: 20px;
border-left: 4px solid #1D101F;
border-bottom: 4px solid #1D101F;
transform: rotate(-45deg) translateY(-4px)
}

.success-page .confirmation-block h1 {
font-size: 52px;
line-height: 1.15;
color: #1D101F;
margin: 0 0 24px
}

.success-page .confirmation-block p {
font-size: 18px;
line-height: 1.6;
color: #1D101F;
margin: 0 0 40px
}

.success-page .details-grid {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
margin: 40px 0;
padding: 40px 0;
border-top: 1px solid #F7F3FA;
border-bottom: 1px solid #F7F3FA
}

.success-page .detail-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px;
background: #F7F3FA;
border-radius: 10px
}

.success-page .detail-row span:first-child {
font-size: 16px;
line-height: 1.4;
color: #1D101F;
opacity: .7;
text-transform: uppercase;
letter-spacing: .08em
}

.success-page .detail-row span:last-child {
font-size: 18px;
line-height: 1.4;
color: #1D101F;
font-weight: 600
}

.success-page .action-group {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap
}

.success-page .primary-action {
background: #1D101F;
color: #fff;
font-size: 18px;
line-height: 1.4;
padding: 16px 40px;
border: none;
border-radius: 10px;
cursor: pointer;
text-decoration: none;
display: inline-block;
position: relative;
overflow: hidden;
transition: transform .18s ease-out
}

.success-page .primary-action::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background: #BB84E8;
transition: height .72s cubic-bezier(0.4, 0, 0.6, 1);
z-index: 0
}

.success-page .primary-action:hover::before {
height: 100%
}

.success-page .primary-action:hover {
transform: perspective(600px) rotateX(2deg) rotateY(-1deg)
}

.success-page .primary-action span {
position: relative;
z-index: 1
}

.success-page .secondary-action {
background: transparent;
color: #1D101F;
font-size: 18px;
line-height: 1.4;
padding: 16px 40px;
border: 2px solid #1D101F;
border-radius: 10px;
cursor: pointer;
text-decoration: none;
display: inline-block;
transition: background .16s ease-out, color .16s ease-out, transform .16s ease-out
}

.success-page .secondary-action:hover {
background: #1D101F;
color: #fff;
transform: perspective(600px) rotateX(-2deg) rotateY(1deg)
}

.success-page .info-notice {
margin: 40px 0 0;
padding: 24px;
background: #F7F3FA;
border-radius: 10px;
text-align: left
}

.success-page .info-notice p {
font-size: 16px;
line-height: 1.6;
color: #1D101F;
margin: 0
}

.success-page .info-notice p:first-child {
font-weight: 600;
margin-bottom: 8px
}

@media (max-width: 768px) {
.success-page {
padding: 40px 16px
}

.success-page .confirmation-block {
padding: 40px 24px
}

.success-page .confirmation-block h1 {
font-size: 27px
}

.success-page .action-group {
flex-direction: column
}

.success-page .primary-action,
.success-page .secondary-action {
width: 100%;
text-align: center
}
}