@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/400-italic.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/500-italic.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/700.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/red-hat-display@latest/700-italic.css');

html {
box-sizing: border-box;
font-size: 100%;
}

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

html,
body {
margin: 0;
}

body {
font-family: 'Red Hat Display', sans-serif;
}

.site-header {
background: linear-gradient(135deg, #ffffff 0%, #f4fafa 60%, #e8f5f4 100%);
border-bottom: 2px solid #BCDDDE;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
position: relative;
overflow: hidden;
}

.site-header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, #2A9789 0%, #74C6AC 50%, #BCDDDE 100%);
pointer-events: none;
}

.header-top-bar {
max-width: 1024px;
margin: 0 auto;
padding: 16px 40px 8px 40px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}

.logo-zone {
display: flex;
align-items: center;
gap: 16px;
flex-shrink: 0;
}

.logo-frame {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 8px;
background: #ffffff;
border-left: 3px solid #2A9789;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06), 0 0 0 1px #BCDDDE;
flex-shrink: 0;
}

.logo-frame img {
width: 32px;
height: 32px;
object-fit: contain;
display: block;
opacity: 0;
transition: opacity 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.logo-frame img.loaded {
opacity: 1;
}

.brand-name {
font-size: 19px;
font-weight: 700;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b3d3a;
white-space: nowrap;
}

.brand-name span {
color: #2A9789;
}

.header-proof {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
background: rgba(42, 151, 137, 0.07);
border-radius: 30px;
border: 1px solid #BCDDDE;
flex-shrink: 0;
}

.proof-dot {
width: 8px;
height: 8px;
border-radius: 46px;
background: #2A9789;
flex-shrink: 0;
}

.proof-text {
font-size: 15px;
font-weight: 500;
line-height: 1.35;
color: #1b3d3a;
white-space: nowrap;
}

.header-nav-row {
max-width: 1024px;
margin: 0 auto;
padding: 0 40px 16px 40px;
display: flex;
align-items: center;
gap: 8px;
}

.nav-divider {
width: 1px;
height: 24px;
background: #BCDDDE;
margin-right: 8px;
flex-shrink: 0;
}

.site-nav {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}

.nav-link {
display: inline-flex;
align-items: center;
padding: 8px 16px;
font-size: 15px;
font-weight: 500;
line-height: 1.35;
letter-spacing: 0.01em;
color: #2d5c58;
text-decoration: none;
border-radius: 8px;
border: 1px solid transparent;
position: relative;
overflow: hidden;
transition: color 0.35s cubic-bezier(0.34, 1.2, 0.64, 1), border-color 0.35s ease-in-out;
min-height: 44px;
}

.nav-link::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0;
background: #2A9789;
transition: height 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
z-index: 0;
}

.nav-link:hover::after {
height: 100%;
}

.nav-link:hover {
color: #ffffff;
border-color: #2A9789;
}

.nav-link span {
position: relative;
z-index: 1;
}

.nav-link.active {
color: #ffffff;
background: #2A9789;
border-color: #2A9789;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.nav-link.active::after {
height: 100%;
}

.nav-link:focus {
outline: none;
border-color: #2A9789;
background: rgba(42, 151, 137, 0.08);
color: #1b3d3a;
}

.site-footer {
background: linear-gradient(180deg, #1b3d3a 0%, #122b28 100%);
color: #BCDDDE;
padding: 72px 40px 40px 40px;
}

.footer-inner {
max-width: 1024px;
margin: 0 auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
}

.footer-cols {
display: flex;
gap: 40px;
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}

.footer-col {
display: flex;
flex-direction: column;
gap: 16px;
min-width: 180px;
}

.footer-col-label {
font-size: 15px;
font-weight: 700;
line-height: 1.35;
letter-spacing: 0.06em;
text-transform: uppercase;
color: #74C6AC;
}

.footer-about-text {
font-size: 15px;
font-weight: 400;
line-height: 1.6;
color: #a8ccc9;
max-width: 280px;
}

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

.footer-link-list li a {
font-size: 15px;
font-weight: 400;
line-height: 1.6;
color: #a8ccc9;
text-decoration: none;
border-radius: 2px;
transition: color 0.32s ease-in-out;
}

.footer-link-list li a:hover {
color: #74C6AC;
}

.footer-link-list li a:focus {
outline: none;
color: #74C6AC;
background: rgba(116, 198, 172, 0.12);
}

.footer-contact-item {
display: flex;
flex-direction: column;
gap: 8px;
}

.footer-contact-item a {
font-size: 15px;
font-weight: 400;
line-height: 1.6;
color: #a8ccc9;
text-decoration: none;
transition: color 0.32s ease-in-out;
}

.footer-contact-item a:hover {
color: #74C6AC;
}

.footer-contact-item span {
font-size: 15px;
line-height: 1.6;
color: #a8ccc9;
}

.footer-disclaimer-block {
width: 100%;
padding: 24px;
background: rgba(188, 221, 222, 0.07);
border-radius: 8px;
border: 1px solid rgba(116, 198, 172, 0.18);
}

.footer-disclaimer-text {
font-size: 15px;
font-weight: 400;
line-height: 1.8;
color: #7fa8a4;
text-align: center;
max-width: 760px;
margin: 0 auto;
}

.footer-bottom {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 24px;
border-top: 1px solid rgba(188, 221, 222, 0.15);
flex-wrap: wrap;
gap: 16px;
}

.footer-copy {
font-size: 15px;
font-weight: 400;
line-height: 1.35;
color: #5c8885;
}

.footer-logo-anchor {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.06);
border-left: 3px solid #2A9789;
box-shadow: 0 0 0 1px rgba(116, 198, 172, 0.22);
flex-shrink: 0;
}

.footer-logo-anchor img {
width: 28px;
height: 28px;
object-fit: contain;
display: block;
opacity: 0;
transition: opacity 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.footer-logo-anchor img.loaded {
opacity: 1;
}

.footer-legal-links {
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: center;
}

.footer-legal-links a {
font-size: 15px;
font-weight: 400;
line-height: 1.35;
color: #5c8885;
text-decoration: none;
transition: color 0.32s ease-in-out;
}

.footer-legal-links a:hover {
color: #74C6AC;
}

.footer-legal-links a:focus {
outline: none;
color: #74C6AC;
}

.age-overlay {
position: fixed;
inset: 0;
background: rgba(18, 43, 40, 0.96);
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}

.age-box {
background: linear-gradient(160deg, #ffffff 0%, #f4fafa 100%);
border-radius: 16px;
padding: 40px;
max-width: 460px;
width: 100%;
text-align: center;
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
border: 1px solid #BCDDDE;
}

.age-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
border-radius: 46px;
background: #2A9789;
color: #ffffff;
font-size: 19px;
font-weight: 700;
line-height: 1.1;
margin-bottom: 24px;
}

.age-question {
font-size: 19px;
font-weight: 700;
line-height: 1.35;
color: #1b3d3a;
margin: 0 0 16px 0;
}

.age-sub {
font-size: 15px;
font-weight: 400;
line-height: 1.6;
color: #4a7470;
margin: 0 0 40px 0;
}

.age-actions {
display: flex;
flex-direction: column;
gap: 16px;
}

.age-confirm-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 16px 40px;
font-family: 'Red Hat Display', sans-serif;
font-size: 16px;
font-weight: 700;
line-height: 1.35;
color: #ffffff;
background: #2A9789;
border: none;
border-radius: 8px;
cursor: pointer;
min-height: 52px;
position: relative;
overflow: hidden;
transition: box-shadow 0.35s cubic-bezier(0.34, 1.2, 0.64, 1);
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.age-confirm-btn::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0;
background: #1e7068;
transition: height 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
z-index: 0;
}

.age-confirm-btn:hover::after {
height: 100%;
}

.age-confirm-btn span {
position: relative;
z-index: 1;
}

.age-confirm-btn:focus {
outline: none;
border: 2px solid #74C6AC;
background: #1e7068;
}

.age-confirm-btn:active {
box-shadow: inset 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.age-decline-btn {
background: none;
border: none;
font-family: 'Red Hat Display', sans-serif;
font-size: 15px;
font-weight: 500;
line-height: 1.35;
color: #4a7470;
cursor: pointer;
padding: 8px 16px;
border-radius: 8px;
transition: color 0.32s ease-in-out, background 0.32s ease-in-out;
min-height: 44px;
}

.age-decline-btn:hover {
color: #1b3d3a;
background: rgba(42, 151, 137, 0.07);
}

.age-decline-btn:focus {
outline: none;
color: #1b3d3a;
background: rgba(42, 151, 137, 0.10);
}

.age-declined-msg {
display: none;
font-size: 15px;
font-weight: 400;
line-height: 1.6;
color: #4a7470;
margin-top: 24px;
padding: 16px;
background: rgba(188, 221, 222, 0.2);
border-radius: 8px;
}

@media (max-width: 768px) {
.header-top-bar {
padding: 16px 24px 8px 24px;
flex-wrap: wrap;
gap: 16px;
}

.header-nav-row {
padding: 0 24px 16px 24px;
flex-wrap: wrap;
}

.proof-text {
font-size: 15px;
}

.footer-cols {
flex-direction: column;
gap: 40px;
}

.footer-bottom {
flex-direction: column;
align-items: center;
text-align: center;
}

.footer-legal-links {
justify-content: center;
}

.site-footer {
padding: 40px 24px 40px 24px;
}
}

@media (max-width: 640px) {
.header-top-bar {
padding: 16px 16px 8px 16px;
}

.header-nav-row {
padding: 0 16px 16px 16px;
}

.proof-text {
display: none;
}

.site-footer {
padding: 40px 16px 40px 16px;
}

.age-box {
padding: 24px 16px;
}
}

@media (max-width: 1024px) {
.header-top-bar {
padding: 16px 24px 8px 24px;
}

.header-nav-row {
padding: 0 24px 16px 24px;
}
}

.legal-wrapper {
max-width: 1024px;
margin: 0 auto;
padding: 72px 40px;
color: #1b2a2e;
line-height: 1.8;
}

.legal-wrapper h1 {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b2a2e;
margin-bottom: 40px;
margin-top: 0;
padding-bottom: 24px;
border-bottom: 2px solid #BCDDDE;
}

.legal-wrapper h2 {
font-size: 19px;
line-height: 1.35;
letter-spacing: -0.01em;
color: #2A9789;
margin-top: 72px;
margin-bottom: 16px;
padding-top: 8px;
}

.legal-wrapper h3 {
font-size: 16px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1b2a2e;
margin-top: 40px;
margin-bottom: 16px;
font-weight: 700;
}

.legal-wrapper h4 {
font-size: 15px;
line-height: 1.6;
letter-spacing: 0.02em;
color: #2A9789;
margin-top: 24px;
margin-bottom: 8px;
font-weight: 600;
text-transform: uppercase;
}

.legal-wrapper h5 {
font-size: 15px;
line-height: 1.6;
letter-spacing: 0.01em;
color: #1b2a2e;
margin-top: 24px;
margin-bottom: 8px;
font-weight: 600;
}

.legal-wrapper h6 {
font-size: 15px;
line-height: 1.6;
letter-spacing: 0.02em;
color: #4a6b70;
margin-top: 16px;
margin-bottom: 8px;
font-weight: 600;
}

.legal-wrapper strong,
.legal-wrapper b {
font-weight: 700;
color: #1b2a2e;
}

.legal-wrapper em,
.legal-wrapper i {
font-style: italic;
color: #2e4a50;
}

.legal-wrapper a {
color: #2A9789;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px;
transition: color 0.35s cubic-bezier(0.34, 1.2, 0.64, 1), text-decoration-color 0.38s ease-in-out;
text-decoration-color: #74C6AC;
}

.legal-wrapper a:hover {
color: #1d6e63;
text-decoration-color: #2A9789;
}

.legal-wrapper a:active {
color: #155950;
}

.legal-wrapper hr {
border: none;
border-top: 1px solid #BCDDDE;
margin-top: 40px;
margin-bottom: 40px;
height: 0;
}

.legal-wrapper div {
margin-bottom: 16px;
}

.legal-wrapper div p,
.legal-wrapper p {
font-size: 16px;
line-height: 1.8;
margin-top: 0;
margin-bottom: 16px;
color: #2e4a50;
}

@media (max-width: 768px) {
.legal-wrapper {
padding: 40px 24px;
}

.legal-wrapper h1 {
font-size: 43px;
}

.legal-wrapper h2 {
margin-top: 40px;
}
}

@media (max-width: 640px) {
.legal-wrapper {
padding: 40px 16px;
}

.legal-wrapper h1 {
font-size: 19px;
letter-spacing: -0.01em;
padding-bottom: 16px;
margin-bottom: 24px;
}

.legal-wrapper h2 {
margin-top: 40px;
font-size: 16px;
}

.legal-wrapper h3 {
margin-top: 24px;
}
}

.gms-root {
max-width: 100%;
overflow-x: hidden;
}

.gms-root .gms-inner {
max-width: 1024px;
margin: 0 auto;
padding: 0 24px;
}

.gms-root .title-block {
padding: 72px 0 40px;
background: #fff;
}

.gms-root .title-block .gms-inner {
display: flex;
flex-direction: row;
align-items: center;
gap: 40px;
}

.gms-root .tb-img-card {
flex: 0 0 340px;
position: relative;
border-radius: 16px;
overflow: hidden;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.gms-root .tb-img-card img {
width: 340px;
height: 280px;
object-fit: cover;
filter: grayscale(100%);
opacity: 0;
transition: opacity 0.38s cubic-bezier(0.34, 1.2, 0.64, 1), filter 0.42s ease-in-out;
display: block;
}

.gms-root .tb-img-card img.loaded {
opacity: 1;
}

.gms-root .tb-img-card img:hover {
filter: grayscale(60%);
}

.gms-root .tb-shape-a {
position: absolute;
top: -16px;
right: -16px;
width: 64px;
height: 64px;
border-radius: 46px;
background: #BCDDDE;
opacity: 0.5;
pointer-events: none;
}

.gms-root .tb-shape-b {
position: absolute;
bottom: 16px;
left: -8px;
width: 24px;
height: 80px;
border-radius: 8px;
background: #2A9789;
opacity: 0.18;
pointer-events: none;
}

.gms-root .tb-text {
flex: 1 1 0;
display: flex;
flex-direction: column;
gap: 16px;
}

.gms-root .tb-pre {
font-size: 15px;
line-height: 1.6;
color: #2A9789;
letter-spacing: 0.06em;
font-weight: 600;
text-transform: uppercase;
}

.gms-root .tb-heading {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b2a28;
font-weight: 800;
margin: 0;
}

.gms-root .tb-desc {
font-size: 16px;
line-height: 1.6;
color: #3a4f4d;
margin: 0;
max-width: 420px;
}

.gms-root .tb-arrow {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin-top: 8px;
}

.gms-root .tb-arrow-line {
width: 48px;
height: 2px;
background: linear-gradient(90deg, #2A9789, #74C6AC);
border-radius: 2px;
}

.gms-root .tb-arrow-dot {
width: 8px;
height: 8px;
border-radius: 30px;
background: #2A9789;
}

.gms-root .demo-block {
padding: 72px 0;
background: linear-gradient(160deg, #1b2a28 60%, #2A9789 100%);
}

.gms-root .demo-block .gms-inner {
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
}

.gms-root .demo-label {
font-size: 15px;
line-height: 1.6;
color: #74C6AC;
letter-spacing: 0.08em;
text-transform: uppercase;
font-weight: 600;
text-align: center;
}

.gms-root .demo-heading {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #fff;
font-weight: 800;
text-align: center;
margin: 0;
}

.gms-root .demo-sub {
font-size: 16px;
line-height: 1.6;
color: #BCDDDE;
text-align: center;
max-width: 520px;
margin: 0;
}

.gms-root .demo-container {
width: 100%;
max-width: 720px;
border-radius: 16px;
overflow: hidden;
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
border: 2px solid rgba(116, 198, 172, 0.25);
background: #0f1e1c;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
aspect-ratio: 16/9;
position: relative;
}

.gms-root .demo-overlay {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 24px;
padding: 40px;
width: 100%;
height: 100%;
}

.gms-root .demo-icon-wrap {
width: 72px;
height: 72px;
border-radius: 46px;
background: rgba(42, 151, 137, 0.18);
border: 2px solid rgba(116, 198, 172, 0.35);
display: flex;
align-items: center;
justify-content: center;
}

.gms-root .demo-play-svg {
width: 28px;
height: 28px;
fill: #74C6AC;
}

.gms-root .demo-overlay-text {
font-size: 16px;
line-height: 1.6;
color: #BCDDDE;
text-align: center;
max-width: 320px;
margin: 0;
}

.gms-root .demo-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 40px;
border-radius: 8px;
background: #2A9789;
color: #fff;
font-size: 16px;
font-weight: 700;
letter-spacing: 0.03em;
text-decoration: none;
border: none;
cursor: pointer;
position: relative;
overflow: hidden;
transition: box-shadow 0.35s cubic-bezier(0.34, 1.2, 0.64, 1), color 0.32s ease-in-out;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.gms-root .demo-btn::before {
content: '';
position: absolute;
left: 0;
bottom: -100%;
width: 100%;
height: 100%;
background: #1b6e64;
transition: bottom 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
z-index: 0;
border-radius: 8px;
}

.gms-root .demo-btn:hover::before {
bottom: 0;
}

.gms-root .demo-btn:hover {
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.gms-root .demo-btn:active {
box-shadow: inset 2px 3px 4px -2px rgba(42, 151, 137, 0.18);
}

.gms-root .demo-btn span {
position: relative;
z-index: 1;
}

.gms-root .details-block {
padding: 72px 0 40px;
background: #f4fafa;
}

.gms-root .details-block .gms-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: start;
}

.gms-root .details-dense {
display: flex;
flex-direction: column;
gap: 16px;
border-radius: 16px;
background: #fff;
padding: 40px;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
border-left: 4px solid #2A9789;
border-top: 1px solid #BCDDDE;
}

.gms-root .details-dense-head {
font-size: 19px;
line-height: 1.35;
font-weight: 800;
color: #1b2a28;
letter-spacing: 0.04em;
text-transform: uppercase;
margin: 0;
}

.gms-root .details-row {
display: flex;
flex-direction: column;
gap: 8px;
padding: 16px 0;
border-bottom: 1px dashed #BCDDDE;
}

.gms-root .details-row:last-child {
border-bottom: none;
}

.gms-root .details-label {
font-size: 15px;
line-height: 1.35;
color: #5a7a78;
font-weight: 600;
letter-spacing: 0.04em;
}

.gms-root .details-label span {
color: #2A9789;
}

.gms-root .details-val {
font-size: 16px;
line-height: 1.6;
color: #1b2a28;
font-weight: 400;
}

.gms-root .details-open {
display: flex;
flex-direction: column;
gap: 24px;
padding: 40px 0 40px 16px;
}

.gms-root .details-open-head {
font-size: 19px;
line-height: 1.35;
font-weight: 800;
color: #1b2a28;
letter-spacing: 0.04em;
text-transform: uppercase;
margin: 0;
}

.gms-root .details-open p {
font-size: 16px;
line-height: 1.8;
color: #3a4f4d;
margin: 0;
}

.gms-root .details-stat-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-top: 8px;
}

.gms-root .stat-pill {
border-radius: 8px;
background: #fff;
border: 1px solid #BCDDDE;
padding: 16px;
display: flex;
flex-direction: column;
gap: 8px;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
transition: box-shadow 0.4s cubic-bezier(0.34, 1.2, 0.64, 1), transform 0.36s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.gms-root .stat-pill:hover {
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
transform: translateY(-2px);
}

.gms-root .stat-num {
font-size: 43px;
line-height: 1.1;
font-weight: 800;
color: #2A9789;
letter-spacing: -0.02em;
}

.gms-root .stat-desc {
font-size: 15px;
line-height: 1.35;
color: #5a7a78;
}

.gms-root .concepts-block {
padding: 72px 0;
background: #fff;
}

.gms-root .concepts-block .gms-inner {
display: flex;
flex-direction: column;
gap: 40px;
}

.gms-root .concepts-top {
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
}

.gms-root .concepts-head {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b2a28;
font-weight: 800;
margin: 0;
max-width: 480px;
}

.gms-root .concepts-aside {
font-size: 15px;
line-height: 1.6;
color: #5a7a78;
max-width: 260px;
text-align: right;
flex-shrink: 0;
}

.gms-root .concepts-dashed-accent {
border: 2px dashed #74C6AC;
border-radius: 16px;
padding: 40px;
background: linear-gradient(135deg, rgba(188, 221, 222, 0.18) 0%, rgba(116, 198, 172, 0.08) 100%);
display: flex;
flex-direction: column;
gap: 24px;
}

.gms-root .concepts-dashed-accent .dsh-head {
font-size: 19px;
line-height: 1.35;
font-weight: 800;
color: #2A9789;
letter-spacing: 0.05em;
text-transform: uppercase;
margin: 0;
}

.gms-root .concepts-dashed-accent .dsh-body {
font-size: 16px;
line-height: 1.8;
color: #1b2a28;
margin: 0;
}

.gms-root .concepts-list {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
list-style: none;
margin: 0;
padding: 0;
}

.gms-root .concept-item {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
padding: 24px;
border-radius: 8px;
background: #f4fafa;
border: 1px solid #BCDDDE;
transition: background 0.37s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow 0.4s ease-in-out;
}

.gms-root .concept-item:hover {
background: #fff;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.gms-root .concept-num {
font-size: 19px;
line-height: 1.1;
font-weight: 800;
color: #2A9789;
flex-shrink: 0;
min-width: 32px;
}

.gms-root .concept-body {
display: flex;
flex-direction: column;
gap: 8px;
}

.gms-root .concept-name {
font-size: 16px;
line-height: 1.35;
font-weight: 700;
color: #1b2a28;
}

.gms-root .concept-text {
font-size: 15px;
line-height: 1.6;
color: #5a7a78;
margin: 0;
}

@keyframes wipeIn {
from {
clip-path: inset(0 100% 0 0);
}

to {
clip-path: inset(0 0% 0 0);
}
}

.gms-root .tb-img-card img.loaded {
animation: wipeIn 0.72s cubic-bezier(0.34, 1.2, 0.64, 1) both;
}

@media (max-width: 1024px) {
.gms-root .title-block .gms-inner {
gap: 24px;
}

.gms-root .tb-img-card {
flex: 0 0 280px;
}

.gms-root .tb-img-card img {
width: 280px;
height: 230px;
}

.gms-root .tb-heading {
font-size: 43px;
}
}

@media (max-width: 768px) {
.gms-root .title-block .gms-inner {
flex-direction: column;
align-items: flex-start;
}

.gms-root .tb-img-card {
flex: 0 0 auto;
width: 100%;
}

.gms-root .tb-img-card img {
width: 100%;
height: 220px;
}

.gms-root .tb-heading {
font-size: 43px;
}

.gms-root .details-block .gms-inner {
grid-template-columns: 1fr;
}

.gms-root .details-open {
padding: 0;
}

.gms-root .concepts-top {
flex-direction: column;
align-items: flex-start;
}

.gms-root .concepts-aside {
text-align: left;
max-width: 100%;
}

.gms-root .concepts-list {
grid-template-columns: 1fr;
}

.gms-root .demo-heading {
font-size: 43px;
}
}

@media (max-width: 640px) {
.gms-root .title-block {
padding: 40px 0 24px;
}

.gms-root .tb-heading {
font-size: 43px;
}

.gms-root .demo-block {
padding: 40px 0;
}

.gms-root .demo-heading {
font-size: 43px;
}

.gms-root .details-block {
padding: 40px 0 24px;
}

.gms-root .details-dense {
padding: 24px;
}

.gms-root .details-stat-row {
grid-template-columns: 1fr;
}

.gms-root .concepts-block {
padding: 40px 0;
}

.gms-root .concepts-dashed-accent {
padding: 24px;
}

.gms-root .demo-overlay {
padding: 24px;
}
}

.ld-root {
max-width: 100%;
overflow-x: hidden;
}

.ld-root .page-wrap {
max-width: 1024px;
margin: 0 auto;
padding: 0 24px;
}

.ld-root .img-fade {
opacity: 0;
transition: opacity 0.38s ease-in-out;
}

.ld-root .img-fade.loaded {
opacity: 1;
}

.ld-root .title-band {
background: #fff;
padding: 40px 0 40px;
}

.ld-root .title-band .page-wrap {
display: flex;
flex-direction: row;
align-items: center;
gap: 40px;
}

.ld-root .title-text {
flex: 1 1 0;
min-width: 0;
}

.ld-root .title-text .pre-label {
display: inline-block;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.08em;
color: #2A9789;
text-transform: uppercase;
margin-bottom: 16px;
border-left: 3px solid #2A9789;
padding-left: 16px;
}

.ld-root .title-text h1 {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b2a29;
margin: 0 0 16px;
font-weight: 800;
}

.ld-root .title-text h1 span {
color: #2A9789;
}

.ld-root .title-text .sub-para {
font-size: 16px;
line-height: 1.6;
color: #2e3d3c;
margin: 0 0 24px;
max-width: 480px;
}

.ld-root .title-text .stat-row {
display: flex;
flex-direction: row;
gap: 24px;
flex-wrap: wrap;
}

.ld-root .title-text .stat-item {
display: flex;
flex-direction: column;
gap: 8px;
}

.ld-root .title-text .stat-num {
font-size: 43px;
line-height: 1.1;
font-weight: 800;
color: #2A9789;
letter-spacing: -0.02em;
}

.ld-root .title-text .stat-desc {
font-size: 15px;
line-height: 1.35;
color: #4a5e5c;
letter-spacing: 0.02em;
}

.ld-root .title-card {
flex: 0 0 280px;
width: 280px;
border-radius: 16px;
overflow: hidden;
position: relative;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ld-root .title-card img {
display: block;
width: 100%;
height: 320px;
object-fit: cover;
object-position: center;
}

.ld-root .title-card .tint {
position: absolute;
inset: 0;
background: rgba(42, 151, 137, 0.18);
pointer-events: none;
}

.ld-root .team-section {
background: linear-gradient(160deg, #f4fafa 0%, #e8f5f4 100%);
padding: 72px 0;
position: relative;
}

.ld-root .team-section::before {
content: "";
display: block;
position: absolute;
top: -32px;
left: 0;
right: 0;
height: 32px;
background: #fff;
clip-path: ellipse(55% 100% at 50% 0%);
pointer-events: none;
}

.ld-root .team-section .page-wrap {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 40px;
align-items: start;
}

.ld-root .team-left {
display: flex;
flex-direction: column;
gap: 24px;
}

.ld-root .team-left .sec-label {
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.07em;
color: #2A9789;
text-transform: uppercase;
}

.ld-root .team-left h2 {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
font-weight: 800;
color: #1b2a29;
margin: 0;
border-left: 3px solid #2A9789;
padding-left: 16px;
}

.ld-root .team-left .team-desc {
font-size: 16px;
line-height: 1.6;
color: #2e3d3c;
margin: 0;
}

.ld-root .team-right {
display: flex;
flex-direction: column;
gap: 24px;
}

.ld-root .instructor-card {
background: #fff;
border-radius: 16px;
padding: 24px;
display: flex;
flex-direction: row;
gap: 24px;
align-items: flex-start;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
transition: box-shadow 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.ld-root .instructor-card:hover {
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
}

.ld-root .instructor-card .portrait-wrap {
flex: 0 0 88px;
width: 88px;
height: 132px;
border-radius: 8px;
overflow: hidden;
}

.ld-root .instructor-card .portrait-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
}

.ld-root .instructor-card .inst-info {
flex: 1 1 0;
min-width: 0;
}

.ld-root .instructor-card .inst-name {
font-size: 19px;
line-height: 1.35;
font-weight: 700;
color: #1b2a29;
margin: 0 0 8px;
}

.ld-root .instructor-card .inst-role {
font-size: 15px;
line-height: 1.35;
color: #2A9789;
letter-spacing: 0.04em;
margin: 0 0 16px;
}

.ld-root .instructor-card .inst-bio {
font-size: 15px;
line-height: 1.6;
color: #3a4e4d;
margin: 0;
}

.ld-root .studio-facts {
background: #2A9789;
border-radius: 16px;
padding: 24px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}

.ld-root .studio-facts .fact {
display: flex;
flex-direction: column;
gap: 8px;
}

.ld-root .studio-facts .fact-num {
font-size: 43px;
line-height: 1.1;
font-weight: 800;
color: #fff;
letter-spacing: -0.02em;
}

.ld-root .studio-facts .fact-label {
font-size: 15px;
line-height: 1.35;
color: #BCDDDE;
letter-spacing: 0.03em;
}

.ld-root .current-section {
background: #fff;
padding: 72px 0 64px;
position: relative;
}

.ld-root .current-section::before {
content: "";
display: block;
position: absolute;
top: -28px;
left: 0;
right: 0;
height: 28px;
background: linear-gradient(160deg, #f4fafa 0%, #e8f5f4 100%);
clip-path: ellipse(60% 100% at 50% 100%);
pointer-events: none;
}

.ld-root .current-section .page-wrap {
display: flex;
flex-direction: column;
gap: 40px;
}

.ld-root .current-top {
display: grid;
grid-template-columns: 3fr 2fr;
gap: 40px;
align-items: center;
}

.ld-root .current-text .sec-tag {
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.07em;
color: #2A9789;
text-transform: uppercase;
display: block;
margin-bottom: 16px;
}

.ld-root .current-text h2 {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
font-weight: 800;
color: #1b2a29;
margin: 0 0 16px;
}

.ld-root .current-text .cur-para {
font-size: 16px;
line-height: 1.6;
color: #2e3d3c;
margin: 0;
}

.ld-root .current-img-wrap {
border-radius: 16px;
overflow: hidden;
position: relative;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ld-root .current-img-wrap img {
display: block;
width: 100%;
height: 240px;
object-fit: cover;
object-position: center;
}

.ld-root .current-img-wrap::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(180deg, transparent 55%, rgba(42, 151, 137, 0.22) 100%);
pointer-events: none;
}

.ld-root .update-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}

.ld-root .update-item {
border-radius: 8px;
border: 1.5px solid #BCDDDE;
border-top: 4px solid #2A9789;
padding: 24px;
display: flex;
flex-direction: column;
gap: 16px;
background: #f7fcfb;
transition: border-color 0.35s ease-in-out, box-shadow 0.35s ease-in-out;
}

.ld-root .update-item:hover {
border-color: #2A9789;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ld-root .update-item h4 {
font-size: 16px;
line-height: 1.35;
font-weight: 700;
color: #1b2a29;
margin: 0;
letter-spacing: 0.01em;
}

.ld-root .update-item p {
font-size: 15px;
line-height: 1.6;
color: #3a4e4d;
margin: 0;
}

.ld-root .gap-section {
background: linear-gradient(170deg, #eaf6f5 0%, #d4eeec 100%);
padding: 72px 0;
position: relative;
}

.ld-root .gap-section::before {
content: "";
display: block;
position: absolute;
top: -30px;
left: 0;
right: 0;
height: 30px;
background: #fff;
clip-path: ellipse(52% 100% at 50% 0%);
pointer-events: none;
}

.ld-root .gap-section .page-wrap {
display: grid;
grid-template-columns: 1fr 1fr 2fr;
gap: 24px;
align-items: start;
}

.ld-root .gap-col-a {
display: flex;
flex-direction: column;
gap: 16px;
}

.ld-root .gap-col-a .sec-flag {
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.07em;
color: #2A9789;
text-transform: uppercase;
}

.ld-root .gap-col-a h2 {
font-size: 43px;
line-height: 1.1;
font-weight: 800;
letter-spacing: -0.02em;
color: #1b2a29;
margin: 0;
border-left: 3px solid #2A9789;
padding-left: 16px;
}

.ld-root .gap-col-a .gap-intro {
font-size: 16px;
line-height: 1.6;
color: #2e3d3c;
margin: 0;
}

.ld-root .gap-col-b {
display: flex;
flex-direction: column;
gap: 16px;
}

.ld-root .gap-img-wrap {
border-radius: 16px;
overflow: hidden;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.ld-root .gap-img-wrap img {
display: block;
width: 100%;
height: 200px;
object-fit: cover;
object-position: center;
}

.ld-root .gap-pull {
background: #1b2a29;
border-radius: 8px;
padding: 24px;
text-align: right;
}

.ld-root .gap-pull p {
font-size: 16px;
line-height: 1.6;
color: #BCDDDE;
margin: 0;
}

.ld-root .gap-col-c {
display: flex;
flex-direction: column;
gap: 16px;
}

.ld-root .gap-col-c h3 {
font-size: 19px;
line-height: 1.35;
font-weight: 700;
color: #1b2a29;
margin: 0;
letter-spacing: 0.01em;
}

.ld-root .skill-compare {
display: flex;
flex-direction: column;
gap: 16px;
}

.ld-root .skill-row {
background: #fff;
border-radius: 8px;
padding: 16px 24px;
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 16px;
align-items: center;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.ld-root .skill-row .general {
font-size: 15px;
line-height: 1.35;
color: #6a8080;
text-align: left;
}

.ld-root .skill-row .vs-badge {
background: #BCDDDE;
color: #1b2a29;
font-size: 15px;
font-weight: 700;
border-radius: 30px;
padding: 8px 16px;
text-align: center;
letter-spacing: 0.05em;
white-space: nowrap;
}

.ld-root .skill-row .specific {
font-size: 15px;
line-height: 1.35;
color: #1b2a29;
font-weight: 600;
text-align: right;
}

.ld-root .gap-img-wrap2 {
border-radius: 16px;
overflow: hidden;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ld-root .gap-img-wrap2 img {
display: block;
width: 100%;
height: 180px;
object-fit: cover;
object-position: center;
}

@keyframes ld-shake {

0%,
100% {
transform: translateX(0);
}

18% {
transform: translateX(-6px);
}

36% {
transform: translateX(6px);
}

54% {
transform: translateX(-4px);
}

72% {
transform: translateX(4px);
}

90% {
transform: translateX(-2px);
}
}

.ld-root .shake {
animation: ld-shake 0.42s cubic-bezier(0.34, 1.2, 0.64, 1);
}

@keyframes ld-pan {
0% {
background-position: 0% 50%;
}

100% {
background-position: 100% 50%;
}
}

.ld-root .title-band {
background-image: url('./assets/site_visuals/3-best.jpg');
background-size: 220% auto;
background-position: 0% 50%;
animation: ld-pan 28s linear infinite alternate;
position: relative;
}

.ld-root .title-band::after {
content: "";
position: absolute;
inset: 0;
background: rgba(255, 255, 255, 0.93);
pointer-events: none;
}

.ld-root .title-band .page-wrap {
position: relative;
z-index: 1;
}

@media (max-width: 1024px) {
.ld-root .gap-section .page-wrap {
grid-template-columns: 1fr 1fr;
}

.ld-root .gap-col-c {
grid-column: 1 / -1;
}
}

@media (max-width: 768px) {
.ld-root .title-band .page-wrap {
flex-direction: column;
gap: 24px;
}

.ld-root .title-card {
flex: 0 0 auto;
width: 100%;
max-width: 360px;
align-self: center;
}

.ld-root .title-text h1 {
font-size: 43px;
}

.ld-root .team-section .page-wrap {
grid-template-columns: 1fr;
}

.ld-root .current-top {
grid-template-columns: 1fr;
}

.ld-root .update-grid {
grid-template-columns: 1fr;
}

.ld-root .gap-section .page-wrap {
grid-template-columns: 1fr;
}

.ld-root .gap-col-c {
grid-column: auto;
}

.ld-root .skill-row {
grid-template-columns: 1fr;
gap: 8px;
}

.ld-root .skill-row .specific {
text-align: left;
}
}

@media (max-width: 640px) {
.ld-root .title-text h1 {
font-size: 43px;
}

.ld-root .studio-facts {
grid-template-columns: 1fr 1fr;
}

.ld-root .team-section,
.ld-root .current-section,
.ld-root .gap-section {
padding: 40px 0;
}

.ld-root .title-band {
padding: 40px 0;
}
}

.ctus-pg {
max-width: 100%;
overflow-x: hidden;
}

.ctus-pg .band-top {
background: linear-gradient(160deg, #2A9789 0%, #1e6e63 55%, #174f47 100%);
padding: 72px 24px 40px;
position: relative;
}

.ctus-pg .band-top::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at 30% 60%, rgba(116, 198, 172, 0.18) 0%, transparent 65%);
pointer-events: none;
}

.ctus-pg .band-top-inner {
max-width: 1024px;
margin: 0 auto;
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 40px;
position: relative;
z-index: 1;
}

.ctus-pg .band-top-text {
flex: 1 1 0;
}

.ctus-pg .band-top-text .eyebrow {
font-size: 15px;
letter-spacing: 0.12em;
color: #BCDDDE;
line-height: 1.35;
margin-bottom: 16px;
text-transform: uppercase;
}

.ctus-pg .band-top-text h1 {
font-size: 58px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #ffffff;
margin: 0 0 16px;
font-weight: 800;
}

.ctus-pg .band-top-text .sub {
font-size: 19px;
line-height: 1.6;
color: rgba(255, 255, 255, 0.82);
max-width: 480px;
margin: 0;
}

.ctus-pg .band-top-deco {
flex: 0 0 auto;
width: 120px;
height: 120px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}

.ctus-pg .deco-ring {
width: 100px;
height: 100px;
border: 2px solid rgba(188, 221, 222, 0.35);
border-radius: 50%;
position: absolute;
animation: ctus-spin 14s linear infinite;
}

.ctus-pg .deco-ring-inner {
width: 64px;
height: 64px;
border: 2px solid rgba(116, 198, 172, 0.5);
border-radius: 50%;
position: absolute;
animation: ctus-spin 9s linear infinite reverse;
}

.ctus-pg .deco-dot {
width: 16px;
height: 16px;
background: #74C6AC;
border-radius: 50%;
}

@keyframes ctus-spin {
from {
transform: rotate(0deg);
}

to {
transform: rotate(360deg);
}
}

.ctus-pg .deco-ring::after {
content: '';
position: absolute;
top: -4px;
left: 50%;
transform: translateX(-50%);
width: 8px;
height: 8px;
background: #BCDDDE;
border-radius: 50%;
}

.ctus-pg .divider-hand {
width: 100%;
overflow: hidden;
line-height: 0;
background: #f5f7f7;
}

.ctus-pg .divider-hand svg {
display: block;
width: 100%;
}

.ctus-pg .form-area {
background: #f5f7f7;
padding: 72px 24px;
position: relative;
}

.ctus-pg .form-area::after {
content: '';
position: absolute;
top: 40px;
right: 0;
width: 3px;
height: 180px;
background: linear-gradient(to bottom, transparent, #74C6AC, transparent);
border-radius: 2px;
pointer-events: none;
}

.ctus-pg .form-grid {
max-width: 1024px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 380px;
gap: 40px;
align-items: start;
}

.ctus-pg .form-col h2 {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.01em;
color: #1a3a37;
margin: 0 0 16px;
font-weight: 700;
}

.ctus-pg .form-col .lead {
font-size: 16px;
line-height: 1.6;
color: #3a5552;
margin: 0 0 40px;
max-width: 520px;
}

.ctus-pg .form-wrap {
background: #ffffff;
border-radius: 16px;
padding: 40px;
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
}

.ctus-pg .field-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-bottom: 16px;
}

.ctus-pg .field-full {
margin-bottom: 16px;
}

.ctus-pg .float-field {
position: relative;
}

.ctus-pg .float-field input {
width: 100%;
padding: 20px 16px 8px;
border: 1.5px solid #d0dcdb;
border-radius: 8px;
font-size: 16px;
line-height: 1.35;
color: #1a3a37;
background: #f9fbfb;
outline: none;
transition: border-color 0.38s ease-in-out, box-shadow 0.38s ease-in-out, background 0.38s ease-in-out;
box-sizing: border-box;
}

.ctus-pg .float-field input:focus {
border-color: #2A9789;
background: #ffffff;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.ctus-pg .float-field input:focus+label,
.ctus-pg .float-field input:not(:placeholder-shown)+label {
top: 7px;
font-size: 11px;
letter-spacing: 0.06em;
color: #2A9789;
}

.ctus-pg .float-field label {
position: absolute;
left: 16px;
top: 50%;
transform: translateY(-50%);
font-size: 15px;
color: #7a9896;
pointer-events: none;
transition: top 0.32s cubic-bezier(0.34, 1.2, 0.64, 1), font-size 0.32s cubic-bezier(0.34, 1.2, 0.64, 1), color 0.32s ease-in-out;
background: transparent;
line-height: 1.35;
}

.ctus-pg .float-field input:focus+label {
transform: none;
}

.ctus-pg .float-field input:not(:placeholder-shown)+label {
transform: none;
}

.ctus-pg .chk-group-label {
font-size: 15px;
letter-spacing: 0.04em;
color: #3a5552;
margin-bottom: 16px;
display: block;
font-weight: 600;
}

.ctus-pg .chk-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-bottom: 24px;
}

.ctus-pg .chk-item {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
padding: 12px 16px;
border: 1.5px solid #d0dcdb;
border-radius: 8px;
cursor: pointer;
transition: border-color 0.35s ease-in-out, background 0.35s ease-in-out;
background: #f9fbfb;
}

.ctus-pg .chk-item:has(input:checked) {
border-color: #2A9789;
background: #edf7f5;
}

.ctus-pg .chk-item input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: #2A9789;
cursor: pointer;
flex-shrink: 0;
}

.ctus-pg .chk-item span {
font-size: 15px;
line-height: 1.35;
color: #1a3a37;
}

.ctus-pg .privacy-row {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
margin-bottom: 24px;
padding: 16px;
border-radius: 8px;
background: #edf7f5;
border: 1.5px solid #BCDDDE;
}

.ctus-pg .privacy-row input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: #2A9789;
cursor: pointer;
flex-shrink: 0;
margin-top: 2px;
}

.ctus-pg .privacy-row .priv-text {
font-size: 15px;
line-height: 1.6;
color: #3a5552;
}

.ctus-pg .privacy-row .priv-text a {
color: #2A9789;
text-decoration: underline;
text-underline-offset: 2px;
transition: color 0.32s ease-in-out;
}

.ctus-pg .privacy-row .priv-text a:hover {
color: #1e6e63;
}

.ctus-pg .submit-btn {
width: 100%;
padding: 16px 24px;
background: #2A9789;
color: #ffffff;
font-size: 16px;
letter-spacing: 0.05em;
font-weight: 700;
border: none;
border-radius: 8px;
cursor: pointer;
position: relative;
overflow: hidden;
transition: color 0.38s ease-in-out, box-shadow 0.38s ease-in-out;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ctus-pg .submit-btn::before {
content: '';
position: absolute;
left: 0;
bottom: -100%;
width: 100%;
height: 100%;
background: #1e6e63;
border-radius: 8px;
transition: bottom 0.38s cubic-bezier(0.34, 1.2, 0.64, 1);
z-index: 0;
}

.ctus-pg .submit-btn:hover::before {
bottom: 0;
}

.ctus-pg .submit-btn:hover {
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
}

.ctus-pg .submit-btn:active {
box-shadow: inset 0 2px 6px rgba(42, 151, 137, 0.18);
}

.ctus-pg .submit-btn span {
position: relative;
z-index: 1;
}

.ctus-pg .info-col {
display: flex;
flex-direction: column;
gap: 24px;
}

.ctus-pg .info-card {
background: #ffffff;
border-radius: 16px;
padding: 24px;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
border-top: 3px solid #2A9789;
position: relative;
overflow: hidden;
}

.ctus-pg .info-card::before {
content: '';
position: absolute;
top: 0;
right: -20px;
width: 80px;
height: 80px;
background: radial-gradient(circle at center, rgba(116, 198, 172, 0.15) 0%, transparent 70%);
pointer-events: none;
}

.ctus-pg .info-card-label {
font-size: 15px;
letter-spacing: 0.08em;
color: #7a9896;
text-transform: uppercase;
margin-bottom: 8px;
font-weight: 600;
}

.ctus-pg .info-card-val {
font-size: 16px;
line-height: 1.6;
color: #1a3a37;
font-weight: 500;
}

.ctus-pg .info-card-val a {
color: #2A9789;
text-decoration: none;
transition: color 0.35s ease-in-out;
}

.ctus-pg .info-card-val a:hover {
color: #1e6e63;
text-decoration: underline;
}

.ctus-pg .wa-btn {
display: inline-flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin-top: 8px;
padding: 10px 16px;
background: #2A9789;
color: #ffffff;
font-size: 15px;
font-weight: 600;
border-radius: 8px;
text-decoration: none;
transition: background 0.38s ease-in-out, box-shadow 0.38s ease-in-out;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
}

.ctus-pg .wa-btn:hover {
background: #1e6e63;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ctus-pg .wa-btn svg {
flex-shrink: 0;
}

.ctus-pg .ranked-block {
background: #ffffff;
border-radius: 16px;
padding: 24px;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
}

.ctus-pg .ranked-block h4 {
font-size: 15px;
letter-spacing: 0.08em;
color: #7a9896;
text-transform: uppercase;
margin: 0 0 16px;
font-weight: 600;
}

.ctus-pg .rank-item {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin-bottom: 12px;
}

.ctus-pg .rank-item:last-child {
margin-bottom: 0;
}

.ctus-pg .rank-num {
font-size: 15px;
font-weight: 700;
color: #2A9789;
width: 24px;
flex-shrink: 0;
text-align: right;
}

.ctus-pg .rank-label {
font-size: 15px;
color: #1a3a37;
flex: 0 0 auto;
min-width: 90px;
}

.ctus-pg .rank-bar-wrap {
flex: 1 1 0;
height: 6px;
background: #e8f0ef;
border-radius: 30px;
overflow: hidden;
}

.ctus-pg .rank-bar {
height: 100%;
border-radius: 30px;
background: linear-gradient(90deg, #74C6AC, #2A9789);
transition: width 0.45s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.ctus-pg .diag-line {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
border-radius: 16px;
}

.ctus-pg .diag-line::after {
content: '';
position: absolute;
top: -30px;
right: 30px;
width: 1px;
height: 160%;
background: linear-gradient(to bottom, transparent, rgba(42, 151, 137, 0.12), transparent);
transform: rotate(18deg);
transform-origin: top center;
}

@media (max-width: 1024px) {
.ctus-pg .form-grid {
grid-template-columns: 1fr;
}

.ctus-pg .info-col {
display: grid;
grid-template-columns: 1fr 1fr;
}
}

@media (max-width: 768px) {
.ctus-pg .band-top-text h1 {
font-size: 43px;
}

.ctus-pg .band-top-deco {
display: none;
}

.ctus-pg .form-wrap {
padding: 24px;
}

.ctus-pg .field-row {
grid-template-columns: 1fr;
}

.ctus-pg .chk-grid {
grid-template-columns: 1fr;
}

.ctus-pg .info-col {
grid-template-columns: 1fr;
}
}

@media (max-width: 640px) {
.ctus-pg .band-top {
padding: 40px 16px 24px;
}

.ctus-pg .band-top-text h1 {
font-size: 43px;
}

.ctus-pg .form-area {
padding: 40px 16px;
}

.ctus-pg .form-col h2 {
font-size: 43px;
}

.ctus-pg .form-wrap {
padding: 16px;
}
}

.success-pg {
min-height: 60vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 72px 24px;
background: linear-gradient(circle at center, rgba(42, 151, 137, 0.07) 0%, #fff 68%);
}

.success-pg .success-wrap {
max-width: 1024px;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
}

.success-pg .icon-check {
width: 72px;
height: 72px;
flex-shrink: 0;
}

.success-pg .success-card {
background: #fff;
border-radius: 16px;
box-shadow: 2px 4px 28px -2px rgba(42, 151, 137, 0.10);
padding: 40px;
max-width: 560px;
width: 100%;
text-align: center;
border-top: 3px solid #2A9789;
}

.success-pg .success-card .card-label {
font-size: 15px;
line-height: 1.6;
letter-spacing: 0.08em;
color: #2A9789;
text-transform: uppercase;
font-weight: 600;
margin-bottom: 16px;
}

.success-pg .success-card .card-title {
font-size: 43px;
line-height: 1.1;
letter-spacing: -0.02em;
color: #1b3a38;
font-weight: 700;
margin-bottom: 16px;
}

.success-pg .success-card .card-body {
font-size: 16px;
line-height: 1.6;
color: #3d5a58;
margin-bottom: 40px;
}

.success-pg .success-card .card-body strong {
color: #2A9789;
}

.success-pg .success-card .divider-line {
width: 48px;
height: 2px;
background: #BCDDDE;
border-radius: 2px;
margin: 0 auto 40px;
}

.success-pg .success-card .detail-row {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
background: #f4fbfa;
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
text-align: left;
}

.success-pg .success-card .detail-row .detail-icon {
flex-shrink: 0;
width: 20px;
height: 20px;
margin-top: 2px;
}

.success-pg .success-card .detail-row .detail-text {
font-size: 15px;
line-height: 1.6;
color: #3d5a58;
}

.success-pg .success-card .detail-row .detail-text span {
color: #2A9789;
font-weight: 600;
}

.success-pg .back-link {
display: inline-block;
font-size: 15px;
line-height: 1.35;
color: #fff;
background: #2A9789;
padding: 16px 40px;
border-radius: 8px;
text-decoration: none;
font-weight: 600;
letter-spacing: 0.03em;
box-shadow: 2px 3px 4px -2px rgba(42, 151, 137, 0.06);
position: relative;
overflow: hidden;
transition: color 0.38s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow 0.42s ease-in-out;
}

.success-pg .back-link::before {
content: "";
position: absolute;
inset: 0;
background: #1b6e64;
transform: translateY(100%);
transition: transform 0.35s cubic-bezier(0.34, 1.2, 0.64, 1);
border-radius: 8px;
z-index: 0;
}

.success-pg .back-link:hover::before {
transform: translateY(0);
}

.success-pg .back-link:hover {
box-shadow: 2px 9px 48px -2px rgba(42, 151, 137, 0.10);
}

.success-pg .back-link:focus-visible {
outline: 3px solid #74C6AC;
outline-offset: 3px;
}

.success-pg .back-link:active {
box-shadow: inset 2px 3px 4px -2px rgba(42, 151, 137, 0.18);
}

.success-pg .back-link .link-text {
position: relative;
z-index: 1;
}

@media (max-width: 640px) {
.success-pg {
padding: 40px 16px;
}

.success-pg .success-card {
padding: 24px 16px;
}

.success-pg .success-card .card-title {
font-size: 19px;
line-height: 1.35;
}

.success-pg .back-link {
padding: 16px 24px;
}
}