/* Communication channels: real reported levels, not invented percentages. */
.languages.language-spectrum{display:block;background:radial-gradient(ellipse at 80% 30%,#23485c40,transparent 60%),#0d1926;overflow:clip}
.language-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:43px}
.language-heading h2{margin:18px 0 0;font-size:clamp(38px,4.4vw,64px)}
.language-heading>p{max-width:265px;color:#9cb2c3;font-size:13px;line-height:1.85;margin-bottom:6px}
.language-console{position:relative;padding:28px;border:1px solid #88b7cc33;border-radius:17px;background:linear-gradient(120deg,#152737b3,#0d1926b3);box-shadow:0 24px 70px #00000015}
.language-console:before{content:'';position:absolute;top:-1px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,#83d7edaa,transparent)}
.language-console-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 25px;color:#89a4b9;font:9px/1.7 'DM Mono',monospace;letter-spacing:.12em}
.language-console-header span:first-child{display:flex;align-items:center;gap:9px;color:#b4cbd9}.language-console-header i{width:5px;height:5px;background:#83d7ed;border-radius:50%;box-shadow:0 0 13px #83d7ed88}
.language-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:start}
.language-channel{--signal:#83d7ed;position:relative;min-width:0;border:1px solid #7399b22d;border-radius:11px;background:linear-gradient(145deg,#20384a77,#12202f77);transition:border-color .3s,box-shadow .3s;overflow:clip}
.language-channel .language-content{list-style:none;padding:26px;position:relative;isolation:isolate;overflow:hidden}
.language-channel .language-content:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 95% 0%,color-mix(in srgb,var(--signal) 13%,transparent),transparent 70%);opacity:.3;transition:opacity .4s;z-index:-1}
.language-channel:hover{border-color:color-mix(in srgb,var(--signal) 48%,transparent);box-shadow:0 8px 40px color-mix(in srgb,var(--signal) 5%,transparent)}
.language-channel:hover .language-content:before{opacity:1}
.language-identity{display:flex;gap:15px;align-items:center}.language-flag{width:51px;height:35px;flex:none;border:1px solid #ffffff35;border-radius:5px;object-fit:cover;box-shadow:0 6px 14px #0003;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.language-channel:hover .language-flag{transform:perspective(250px) rotateY(-12deg) rotateZ(-3deg) translateY(-2px);box-shadow:5px 9px 18px #0005}
.language-identity h3{font-size:18px;line-height:1.3;letter-spacing:-.025em;margin:0 0 4px;color:#e7f0f6}.language-identity small{display:block;font:8px/1.5 'DM Mono',monospace;letter-spacing:.12em;color:#7f9bb0}
.language-grade{display:flex;align-items:baseline;gap:12px;margin:28px 0 22px;color:var(--signal)}.language-grade strong{font-size:clamp(35px,4vw,52px);line-height:1.05;font-weight:500;letter-spacing:-.05em}.language-grade span{font:9px/1.5 'DM Mono',monospace;color:#9bb3c4;letter-spacing:.06em}
.language-scale{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;position:relative;padding-top:5px}
.language-scale span{position:relative;text-align:center;padding-top:14px;color:#688197;font:8px/1.5 'DM Mono',monospace}.language-scale span:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:2px;background:#526b7b3d}.language-scale .reached{color:#a5bfd0}.language-scale .reached:before{background:var(--signal);box-shadow:0 0 10px color-mix(in srgb,var(--signal) 18%,transparent)}.language-scale .current{color:var(--signal);font-weight:500}.language-scale .current:after{content:'';position:absolute;top:-3px;left:50%;width:10px;height:10px;background:var(--signal);border:2px solid #152738;border-radius:50%;box-shadow:0 0 12px var(--signal);transform:translateX(-50%)}
.language-native{height:18px;position:relative;padding-top:18px;font:8px/1.5 'DM Mono',monospace;letter-spacing:.11em;color:#9fbfb5}.language-native:before{content:'';position:absolute;top:5px;left:0;right:0;height:4px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--signal) 65%,#345264),var(--signal));box-shadow:0 0 18px color-mix(in srgb,var(--signal) 17%,transparent)}.language-native:after{content:'';position:absolute;top:1px;right:0;width:12px;height:12px;border:2px solid #162938;border-radius:50%;background:var(--signal);box-shadow:0 0 18px var(--signal)}
.language-secondary{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.language-secondary .language-channel{--signal:#9badc8;background:#0d192666}.language-secondary .language-content{display:grid;grid-template-columns:1fr auto;gap:18px 26px;padding:21px 26px}.language-secondary .language-flag{width:38px;height:26px;filter:saturate(.7)}.language-secondary .language-identity h3{font-size:15px}.language-secondary .language-grade{margin:0;gap:9px}.language-secondary .language-grade strong{font-size:30px}.language-secondary .language-scale{grid-column:1/-1;max-width:none}
.language-spectrum.in-view .language-scale .reached:before,.language-spectrum.in-view .language-native:before{animation:language-connect .9s cubic-bezier(.2,.7,.2,1) both;transform-origin:left}
.language-spectrum.in-view .language-channel:nth-child(2) .language-native:before{animation-delay:.12s}.language-spectrum.in-view .language-channel:nth-child(3) .language-scale .reached:before{animation-delay:.24s}
@keyframes language-connect{from{transform:scaleX(0);opacity:.3}to{transform:scaleX(1);opacity:1}}
@media(min-width:1550px){.language-console{padding:34px}.language-channel .language-content{padding:32px}.language-identity h3{font-size:21px}.language-flag{width:60px;height:40px}}
@media(max-width:950px){.language-heading{display:block}.language-heading>p{max-width:430px;margin-top:23px}.language-console{padding:21px}.language-channel .language-content{padding:21px 17px}.language-identity{gap:11px}.language-flag{width:42px;height:29px}.language-identity h3{font-size:16px}.language-grade{display:block}.language-grade span{display:block;margin-top:9px}.language-secondary .language-grade{display:flex}.language-secondary .language-grade span{margin:0}.language-secondary .language-content{padding:21px 17px}}
@media(max-width:620px){.language-heading{margin-bottom:30px}.language-heading h2{font-size:36px}.language-heading>p{font-size:12px}.language-console{padding:17px 13px;border-radius:13px}.language-console-header{font-size:7px;gap:10px;letter-spacing:.04em;margin-bottom:19px}.language-primary,.language-secondary{grid-template-columns:1fr;gap:11px}.language-primary .language-content{display:grid;grid-template-columns:1fr auto;gap:16px;padding:20px 17px}.language-grade{margin:0;text-align:right}.language-grade strong{font-size:29px}.language-grade span{font-size:7px;margin-top:5px}.language-identity h3{font-size:16px}.language-flag{width:39px;height:27px}.language-identity small{font-size:7px}.language-scale,.language-native{grid-column:1/-1}.language-secondary{margin-top:20px;padding-top:18px;border-top:1px solid #7897af26}.language-secondary .language-content{gap:13px;padding:16px 17px}.language-secondary .language-grade{display:block}.language-secondary .language-grade strong{font-size:25px}.language-secondary .language-flag{width:32px;height:22px}.language-secondary .language-identity h3{font-size:14px}}
/* Keep the CEFR rulers physically equal, even inside the wider secondary cards. */
.language-console{container-type:inline-size}
.language-secondary .language-scale{width:calc((100cqw - 30px)/3 - 54px);max-width:100%}
@media(max-width:950px){.language-secondary .language-scale{width:calc((100cqw - 30px)/3 - 36px)}}
@media(max-width:620px){.language-secondary .language-scale{width:100%}}
@media(prefers-reduced-motion:reduce){.language-spectrum *, .language-spectrum *:before,.language-spectrum *:after{animation:none!important;transition:none!important}.language-channel:hover .language-flag{transform:none}}
