/* self-hosted Golos Text (cyrillic, cyrillic-ext, latin), font-display swap */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-400-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-500-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-500-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-600-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-600-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-700-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap;src:url(https://nur-mubarak-qory.vercel.app/fonts/golos-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

:root{--paper:#FFFFFF;
  /* Untitled UI Gray: 50 FAFAFA, 100 F5F5F5, 200 E9EAEB, 300 D5D7DA, 400 A4A7AE, 500 717680, 600 535862, 700 414651, 900 181D27 */
  --g50:#FAFAFA;--g100:#F5F5F5;--g200:#E9EAEB;--g300:#D5D7DA;--g400:#A4A7AE;--g500:#717680;--g600:#717680;--g700:#535862;--g800:#414651;--g900:#181D27;
  --ink:#181D27;
  --ink-2:#181D27;
  --accent:#099250;
  --accent-hover:#087443;
  /* радиусы по Apple HIG: контролы 10, кнопки 14 (large button 50pt), карточки 20, крупные контейнеры 28; непрерывные углы где поддерживается */
  --radius-s:10px;
  --radius-btn:999px;
  --radius-pill:999px;
  --radius-card:20px;
  --radius-xl:28px;
  --hero-radius:var(--radius-xl);
  --container:1280px;
  --page-max:none; /* блоки на всю ширину, контент и меню ограничены --container */
  --gutter:24px;
  --header-h:81px;
  --header-inset:0px;
  --hero-top:68px; /* меню 68px, хиро вплотную */
  --render:url("https://nur-mubarak-qory.vercel.app/img/hero.webp");}
*{box-sizing:border-box;margin:0;padding:0}
button,input,select,textarea{font:inherit;color:inherit}
strong,b{font-weight:600}
html{background:var(--paper);scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:"Golos Text","Noto Naskh Arabic",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;transition:opacity .15s,color .15s,background-color .15s}
.container{width:min(var(--container),calc(100% - 2*var(--gutter)));margin:0 auto}
.page{max-width:var(--page-max);margin:0 auto}
svg[viewBox="0 0 256 256"],svg[viewBox="0 0 16 16"],svg[viewBox="0 0 24 24"]{color:var(--accent)}
.slider .nav button svg,.lb button svg,.btn svg,.copy svg,.nm-burger svg,.fsoc a:hover svg{color:inherit}
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-kids > *{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .reveal-kids.in > *{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal,.js .reveal-kids > *{opacity:1;transform:none;transition:none}
}
.stat{background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;padding:20px;display:flex;flex-direction:column;gap:6px}
.stat b{font-size:28px;line-height:36px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat span{font-size:14px;line-height:20px;color:var(--g700)}
.fabs{position:fixed;right:24px;bottom:24px;z-index:9000;display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .3s,transform .3s}
.fabs.show{opacity:1;transform:none;pointer-events:auto}
.nm-header{--e:cubic-bezier(.28,.11,.32,1);--tint:var(--g200);--green:#099250;--line:1px solid rgba(0,0,0,.09);position:fixed;top:var(--header-inset);left:var(--header-inset);right:var(--header-inset);max-width:none;margin:0 auto;z-index:9999;background:#FFFFFF;border-radius:0;border:0;border-bottom:0;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:background .3s ease;font-family:"Golos Text",'Noto Naskh Arabic',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-tap-highlight-color:transparent}
.nm-host-reset{padding:0!important;margin:0!important;min-height:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.nm-host{height:0!important}
.nm-bar{display:flex;align-items:center;gap:12px;width:min(var(--container),calc(100% - 2*var(--gutter)));margin:0 auto;padding:12px 0;box-sizing:border-box}
.nm-pill{background:transparent}
.nm-logo{flex:0 0 auto;display:flex;align-items:center;height:44px}
.nm-logo img{height:40px;width:auto;display:block}
.nm-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0}
.nm-nav,.nm-lang{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;box-sizing:border-box;height:44px}
.nm-nav{justify-content:center;flex:0 0 auto;margin:0 auto}
.nm-lang{flex:0 0 auto}
.nm-nav li,.nm-lang li{margin:0!important;padding:0!important;list-style:none!important}
.nm-nav a,.nm-lang a{display:flex;align-items:center;height:44px;border-radius:var(--radius-pill);font-weight:500;line-height:1.25;text-decoration:none;transition:background .28s var(--e),color .28s var(--e),box-shadow .28s var(--e),transform .14s ease}
.nm-nav a:active,.nm-lang a:active{transform:scale(.97)}
.nm-nav a{padding:0 14px;font-size:14px;line-height:16px;color:#181D27;white-space:nowrap}
.nm-nav a{position:relative}
.nm-nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:10px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .28s var(--e)}
.nm-nav a::after{display:none}
.nm-nav a:hover{background:var(--g100);color:#181D27;box-shadow:none}
.nm-nav a.nm-active,.nm-nav a.nm-active:hover{background:var(--g200);color:#181D27;box-shadow:none}
.nm-lang a{padding:0 14px;font-size:14px;line-height:16px;color:#181D27}
.nm-lang a:hover{background:var(--g100);color:#181D27;box-shadow:none}
.nm-lang a[aria-current="true"]{background:var(--green);color:#fff}
.nm-full{display:none}
.nm-burger{display:none;border:0;background:transparent;padding:9px;margin-left:auto;cursor:pointer;color:#181D27;line-height:0}
.nm-burger svg{width:26px;height:26px;display:block}
.nm-burger .nm-ico-close,.nm-burger[aria-expanded="true"] .nm-ico-open{display:none}
.nm-burger[aria-expanded="true"] .nm-ico-close{display:block}
.nm-header :focus-visible{outline:2px solid #B37554;outline-offset:2px}
@media (max-width:1240px){.nm-bar{padding:12px 16px;gap:12px}
.nm-burger{display:block}
.nm-logo img{height:44px}
.nm-panel{position:fixed;left:var(--header-inset);right:var(--header-inset);max-width:var(--container);margin:0 auto;top:var(--nm-h,69px);bottom:var(--header-inset);border-radius:var(--radius-card);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:14px 4px 24px;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transition:opacity .3s var(--e),visibility .3s}
.nm-panel.nm-open{opacity:1;visibility:visible}
.nm-nav{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;flex:0 0 auto}
.nm-nav li,.nm-lang{opacity:0;transform:translateY(12px);transition:opacity .38s var(--e),transform .38s var(--e)}
.nm-panel.nm-open .nm-nav li,.nm-panel.nm-open .nm-lang{opacity:1;transform:none}
.nm-panel.nm-open .nm-nav li{transition-delay:calc(.05s + var(--i) * .04s)}
.nm-panel.nm-open .nm-lang{transition-delay:.29s}
.nm-nav li{display:block!important}
.nm-nav a{width:100%;box-sizing:border-box;padding:13px 12px;font-size:19px;line-height:1.3;text-align:left;border-radius:10px}
.nm-lang{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:32px 12px 0}
.nm-lang a{padding:13px 8px;border-radius:10px;font-size:16px;text-align:center;color:#181D27;background:var(--tint)}
.nm-short{display:none}
.nm-full{display:inline}
}
@media (max-width:1240px) and (max-height:560px){.nm-nav a{padding:11px 12px;font-size:17px}
.nm-lang{margin-top:20px}
}
@media (prefers-reduced-motion:reduce){.nm-header *{transition:none!important}
}
.hero{position:relative;
  height:calc(100vh - var(--hero-top) - var(--gutter));min-height:640px;
  margin:var(--hero-top) var(--gutter) 0;
  color:#fff;
  border-radius:var(--hero-radius);
  corner-shape:squircle;
  overflow:hidden;
  isolation:isolate;}
.hero-bg{position:absolute;inset:0;z-index:-2;
  /* hero.png (https://nur-mubarak-qory.vercel.app/img/hero.webp) вшит в файл; чтобы заменить, поставьте url("имя-файла") */
  background:var(--render) center 40% / cover no-repeat #181D27;
  will-change:transform;}
.hero-shade{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 28%,rgba(0,0,0,.45) 52%,rgba(0,0,0,.78) 74%,rgba(4,8,6,.95) 100%);}
.hero .container{position:relative;height:100%;display:flex;flex-direction:column}
.hero-copy{margin-top:auto;padding:0 0 56px 0;max-width:956px}
.hero-text{will-change:opacity}
@keyframes hero-in{from{clip-path:inset(30% 20% 30% 20% round var(--hero-radius));opacity:.6}to{clip-path:inset(0 0 0 0 round var(--hero-radius));opacity:1}}
@keyframes hero-bg-in{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes header-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.hero{animation:hero-in 1.1s var(--ease-out-apple) backwards}
.hero-bg{animation:hero-bg-in 2s var(--ease-out-apple) both}
.hero-copy h1{animation:rise .7s var(--ease-out-apple) .55s both}
.hero-copy p{animation:rise .7s var(--ease-out-apple) .68s both}
.hero-actions{animation:rise .7s var(--ease-out-apple) .8s both}
.nm-header{animation:header-in .7s var(--ease-out-apple) .5s both}
@media (prefers-reduced-motion:reduce){.hero,.hero-bg,.hero-copy h1,.hero-copy p,.hero-actions,.nm-header{animation:none}
}
.hero-copy h1{font-size:52px;line-height:64px;letter-spacing:-.015em;font-weight:600;margin-bottom:20px;text-wrap:balance}
.hero-copy p{font-size:18px;line-height:28px;max-width:640px;color:rgba(255,255,255,.86)}
.hero-actions{display:flex;gap:14px;margin-top:32px}
.btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:48px;padding:0 28px;font-size:16px;font-weight:600;border-radius:var(--radius-pill);border:0;white-space:nowrap}
.btn-primary{color:#fff;background:var(--accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-glass{position:relative;color:#fff;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
.btn-glass:hover{background:rgba(255,255,255,.26)}
main{padding:0}
.section{padding:48px 0}
#about{padding-top:96px}
.label{display:inline-block;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
h2{font-size:44px;line-height:52px;letter-spacing:-.02em;font-weight:600;text-wrap:balance}
h3{font-size:20px;line-height:28px;line-height:1.25;letter-spacing:-.01em;font-weight:600}
.lead{font-size:16px;line-height:24px;color:var(--ink);text-wrap:pretty}
.lead + .lead,.hero-copy p + p{margin-top:0}
.academy-head .lead + .lead,.cert-text .lead + .lead{margin-top:0}
.card{background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle}
.panel{background:var(--g100);border-radius:var(--radius-xl);corner-shape:squircle}
.photo{background:var(--render) center / cover no-repeat #181D27;border-radius:var(--radius-xl);corner-shape:squircle}
.uni-text{margin-top:14px;display:flex;flex-direction:column;gap:0}
.uni-text p.gap{margin-top:16px}
.uni-text p+p{margin-top:16px}
.uni-text p{font-size:16px;line-height:24px;color:var(--ink-2);max-width:760px}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:56px}
.gallery .photo{aspect-ratio:4/3;border-radius:var(--radius-card);background:var(--g200);overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;transition:transform .4s ease}
.gallery .photo{position:relative;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.gallery .photo::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);pointer-events:none}
.gallery .photo::before{content:"";position:absolute;inset:0;background:inherit;background-size:cover;background-position:center;filter:blur(14px);transform:scale(1.08)}
.gallery .photo img{position:relative;z-index:1}
.js .gallery .photo img{opacity:0;transition:opacity .45s ease,transform .4s ease}
.js .gallery .photo img.loaded{opacity:1}
.gallery .photo:hover img{transform:scale(1.04)}
.dots{display:flex;justify-content:center;gap:6px;margin-top:16px}
.dots button{width:8px;height:8px;border-radius:4px;border:0;padding:0;background:var(--g300);cursor:pointer;transition:background .25s,width .25s}
.dots button.on{background:var(--g500);width:16px}
.event-slider .dots{position:absolute;left:0;right:20px;bottom:36px;margin:0;z-index:3}
.event-slider .dots button{background:rgba(255,255,255,.5)}
.event-slider .dots button.on{background:rgba(255,255,255,.85)}
.lb img{max-height:78vh;touch-action:pan-y;user-select:none;-webkit-user-drag:none}
.lb .lb-count{bottom:96px}
.lb-thumbs{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:8px;max-width:92vw;overflow-x:auto;scrollbar-width:none;padding:4px}
.lb-thumbs::-webkit-scrollbar{display:none}
.lb-thumbs button{flex:none;width:64px;height:48px;border:0;padding:0;border-radius:8px;overflow:hidden;opacity:.45;cursor:pointer;background:#000;transition:opacity .2s,box-shadow .2s}
.lb-thumbs button.on{opacity:1;box-shadow:0 0 0 2px #fff}
.lb-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
@media (prefers-reduced-motion:reduce){.js .gallery .photo img{transition:none}
}
.lb{position:fixed;inset:0;z-index:10000;background:rgba(24,29,39,.94);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s}
.lb.open{opacity:1;visibility:visible}
.lb img{max-width:min(92vw,1600px);max-height:88vh;object-fit:contain;border-radius:var(--radius-s);box-shadow:0 20px 60px rgba(0,0,0,.5);transform:scale(.97);transition:transform .25s ease}
.lb.open img{transform:none}
.lb button{position:absolute;width:56px;height:56px;border:0;border-radius:50%;background:rgba(24,29,39,.5);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);transition:background .15s}
.lb button:hover{background:rgba(24,29,39,.7)}
.lb button svg{width:24px;height:24px}
.lb .lb-close{top:20px;right:20px}
.lb .lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb .lb-next{right:20px;top:50%;transform:translateY(-50%)}
.lb .lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:14px;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.lb,.lb img,.gallery img{transition:none}
}
.mission{font-size:18px;line-height:28px;font-weight:500;color:var(--ink);padding-left:16px;border-left:2px solid var(--accent);margin:0;max-width:360px}
.uni-h2{margin-bottom:32px}
.uni-thesis{font-size:20px;line-height:28px;font-weight:500;margin:0 0 16px}
.compare{position:relative;margin-top:14px;aspect-ratio:21/9;border-radius:var(--radius-xl);corner-shape:squircle;overflow:hidden;background:#181D27;user-select:none;isolation:isolate}
.cmp-after,.cmp-before{position:absolute;inset:0}
.cmp-after{background:var(--render) center 40% / cover no-repeat}
.cmp-before{-webkit-mask-image:linear-gradient(90deg,#000 calc(var(--x) - 48px),rgba(0,0,0,0) calc(var(--x) + 48px));mask-image:linear-gradient(90deg,#000 calc(var(--x) - 48px),rgba(0,0,0,0) calc(var(--x) + 48px))}
.cmp-before img{width:100%;height:100%;object-fit:cover;display:block}
.cmp-handle{position:absolute;top:0;bottom:0;left:var(--x);width:0;z-index:2;pointer-events:none}
.cmp-handle span{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;box-shadow:0 6px 20px -6px rgba(0,0,0,.4);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23212121' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M7 8l-4 4l4 4'/><path d='M17 8l4 4l-4 4'/><path d='M3 12h18'/></svg>");background-size:22px;background-position:center;background-repeat:no-repeat}
.cmp-tag{position:absolute;top:24px;z-index:3;height:44px;padding:0 20px;border-radius:var(--radius-pill);background:rgba(24,29,39,.6);color:#fff;font-size:16px;line-height:44px;font-weight:500;pointer-events:none}
.cmp-tag-l{left:24px}
.cmp-tag-r{right:24px}
.cmp-range{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.specs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:1fr;gap:14px;margin-top:48px}
.specs .spec{grid-column:span 4}
.spec{background:var(--g100);border:0;border-radius:var(--radius-card);corner-shape:squircle;padding:24px;display:flex;flex-direction:row;align-items:center;gap:18px}
.spec-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.spec-ico{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.spec .ico{width:32px;height:32px;display:block;color:var(--accent)}
.spec b{font-size:28px;line-height:32px;letter-spacing:-.02em;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.spec span{font-size:16px;line-height:24px;font-weight:400;color:var(--g700)}
.slider{position:relative}
#universitySlider{margin-top:48px}
#buildingSlider{margin-top:14px}
.slider .track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0;margin:0}
.slider .track::-webkit-scrollbar{display:none}
.slider .track .photo{flex:0 0 calc((100% - 28px) / 3);scroll-snap-align:start}
.slider .nav{position:absolute;inset:0;pointer-events:none;z-index:2}
.slider .nav button{position:absolute;top:50%;transform:translateY(-50%);pointer-events:auto}
.slider .nav .prev{left:16px}
.slider .nav .next{right:16px}
.slider .nav button{width:56px;height:56px;border:0;border-radius:50%;background:rgba(24,29,39,.5);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.slider .nav button:hover{background:rgba(24,29,39,.7)}
.slider .nav button:disabled{opacity:.35;cursor:default}
.slider .nav svg{width:24px;height:24px}
@media (prefers-reduced-motion:reduce){.slider .track{scroll-behavior:auto}
}
.about-top .sub{font-size:16px;line-height:20px;font-weight:600;margin-bottom:8px}
.list{padding-left:22px;margin-top:8px}
.list li{margin:4px 0}
.event-card{margin-top:48px}
.event-meta{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px;line-height:20px;font-weight:500;letter-spacing:.01em;color:var(--g700);margin-bottom:16px}
.event-meta span{display:inline-flex;align-items:center;gap:8px}
.event-meta svg{width:20px;height:20px}
.event-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--radius-xl);corner-shape:squircle;overflow:hidden;background:#FFFFFF;isolation:isolate}
.event-slider{position:relative;min-width:0;padding:20px 20px 20px 0;box-sizing:border-box}
.event-slider .track{height:100%;padding:0;margin:0;gap:14px}
.event-slider .track .photo{flex:0 0 100%;aspect-ratio:3/2;height:100%;border-radius:var(--radius-card);corner-shape:squircle;background:var(--g200);overflow:hidden;isolation:isolate;transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.event-slider .track .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-slider .nav .prev{left:16px}
.event-slider .nav .next{right:36px}
.event-body{position:relative;z-index:2;max-width:none;padding:48px;display:flex;flex-direction:column;justify-content:center;gap:0}
.event-body h3{font-size:28px;line-height:36px;letter-spacing:-.02em;font-weight:500;max-width:18ch;margin-bottom:16px}
.event-body p{font-size:16px;line-height:24px;max-width:520px}
.event-body p+p{margin-top:0}
.event-actions{margin-top:32px}
#events,#academy,#youtube{background:var(--g100);padding:96px 0;margin:0 auto;width:min(var(--container),calc(100% - 2*var(--gutter)));border-radius:var(--radius-xl);corner-shape:squircle}
#events .container,#academy .container,#youtube .container{width:min(calc(var(--container) - 96px),calc(100% - 96px))}
#academy,#youtube{margin-top:40px;padding-bottom:0;overflow:hidden}
.panel-grid{position:relative;display:grid;grid-template-columns:6fr 4fr;gap:48px;align-items:end}
.academy-head{text-align:left;max-width:640px;margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding-bottom:96px;align-self:start}
.academy-head h2{margin-bottom:16px}
.academy-head .sub{margin:0}
.academy-head .lead{text-align:left}
#academy,#youtube{padding-bottom:96px;background:var(--g100)}
#academy .academy-head,#youtube .academy-head{padding-bottom:0}
#academy .academy-head{align-self:stretch;max-width:none}
#academy .academy-head .sub{font-size:20px;line-height:28px;font-weight:500;color:var(--ink);margin:0 0 12px}
#academy .academy-head h2{margin-bottom:8px}
#academy .academy-head .lead,#academy .academy-head .sub{max-width:640px}
.academy-cta{margin-top:auto;padding-top:32px}
#events,#academy,#youtube{padding-top:48px;padding-bottom:48px}
#events h2,#academy h2,#youtube h2{font-size:28px;line-height:36px;font-weight:500}
#partners{padding:48px 0}
.tcard{background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;padding:32px;display:flex;flex-direction:column;gap:16px}
.tcard h2{font-size:44px;line-height:52px;font-weight:600;margin:0}
.tcard.tcard-wide{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;background:transparent;border-radius:0}
.tcol{display:flex;flex-direction:column;gap:16px;min-width:0;padding-right:48px}
.tcol-line{border-left:1px solid var(--g300);padding-left:48px;padding-right:0}
.tcard .lead{margin:0}
#academy .panel-grid,#youtube .panel-grid{align-items:stretch}
@keyframes course-scroll-x{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 8px))}}
.tag{display:flex;align-items:center;justify-content:center;height:36px;padding:0 14px;white-space:nowrap;border-radius:var(--radius-pill);background:var(--g200);box-shadow:none;font-size:14px;line-height:20px;font-weight:400;color:var(--g800)}
.stack{position:relative;align-self:center;justify-self:end;width:100%;max-width:440px;padding-top:36px;box-sizing:border-box;display:flex;flex-direction:column}
.stack-card{position:absolute;left:0;right:0;top:0;display:flex;flex-direction:column;background:#FFFFFF;border-radius:var(--radius-card);corner-shape:squircle;overflow:hidden;color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.06),0 12px 32px -16px rgba(0,0,0,.25);transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .6s ease}
.yt-rows{display:flex;flex-direction:column;margin:12px 0 4px;width:100%;border-top:1px solid var(--g300)}
.yt-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--g300)}
.yt-row .yt-ico{flex:none;width:24px;height:24px;color:var(--accent);margin-top:1px}
.yt-row > div{display:flex;flex-direction:column;gap:2px}
.yt-row strong{font-size:16px;line-height:24px;font-weight:600}
.yt-row span{font-size:14px;line-height:20px;color:var(--g700)}
@keyframes course-scroll{from{transform:translateY(0)}to{transform:translateY(calc(-50% - 8px))}}
.course{display:block;flex:none;border-radius:var(--radius-card);corner-shape:squircle;overflow:hidden}
.event-body h3{display:flex;align-items:center;gap:12px}
.reports{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:48px}
.report{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:150px;padding:24px;background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;color:var(--ink);text-decoration:none;transition:background .2s}
.report:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.report svg{width:32px;height:32px;flex:none;color:var(--accent)}
.report-year{font-size:28px;line-height:32px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.report-sub{font-size:14px;line-height:20px;color:var(--g700);margin-top:-22px}
.report-title{font-size:16px;line-height:24px;font-weight:600}
.report.is-audit{background:#EDFCF2}
.report.is-audit:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.row-btns{display:flex;gap:12px;flex-wrap:wrap}
#certificate .slider{margin-top:64px}
.socials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:48px}
.soc{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:150px;padding:24px;background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;color:var(--ink);text-decoration:none;transition:background .15s}
.soc-body{display:flex;flex-direction:column;gap:4px}
.soc-name{font-size:18px;line-height:24px;font-weight:600}
.soc-sub{font-size:14px;line-height:20px;color:var(--g700)}
.soc:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.sico{width:32px;height:32px;flex:none}
.partner-h2{margin-bottom:32px}
.partner2{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:stretch}
.partner2 .partner-text{padding-right:0}
.partner2 .partner-text .sub{margin:24px 0 10px}
.ccard.partner-card{display:grid;grid-template-columns:1fr 1.6fr;gap:0;padding:24px;align-content:center}
.pc-col{min-width:0}
.pc-col .sub{margin-bottom:4px}
.pc-req{border-left:1px solid var(--g300);padding-left:28px;margin-left:28px}
.partner-card .crow:first-of-type,.partner-card .req-row:first-child{border-top:0}
.partner-card .req-head{margin-bottom:0}
.partner-text{display:flex;flex-direction:column;padding-right:24px}
.partner-text h2{margin-bottom:20px}
.partner-text .sub{margin:28px 0 4px}
.partner-text .fmt{padding:12px 0}
.crows{display:flex;flex-direction:column}
.crow{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--g300);color:var(--ink);text-decoration:none;font-size:16px;line-height:24px;font-weight:500}
.crow svg{flex:none;width:24px;height:24px;margin-top:1px;color:var(--accent)}
.crow:hover{color:var(--accent)}
.fmt{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--g300)}
.fmt:last-child{padding-bottom:0}
.fmt > div{display:flex;flex-direction:column;gap:2px}
.fmt strong{font-size:16px;line-height:24px;font-weight:600}
.fmt span{font-size:14px;line-height:20px;color:var(--g700)}
.req-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.req-head .sub{margin:0}
.req-table{margin:0;display:flex;flex-direction:column}
.req-row{display:grid;grid-template-columns:44px 1fr 28px;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--g300)}
.req-row dt{font-size:14px;line-height:20px;color:var(--g600)}
.req-row dd{margin:0;font-size:14px;line-height:20px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:0}
.ccard .list{margin:0;padding-left:20px}
.ccard .list li{margin:4px 0;display:list-item}
.ccard{background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;padding:24px;display:flex;flex-direction:column;gap:4px;font-size:16px;line-height:24px}
.ccard .sub{margin-bottom:4px}
.ccard p{display:flex;align-items:flex-start;gap:10px}
.ccard a{color:var(--ink)}
.req{justify-content:space-between;align-items:center;padding:8px 0;margin:0}
.req+.req{border-top:1px solid var(--g300)}
.copy{flex:none;width:28px;height:28px;margin:-2px 0;border:0;border-radius:50%;background:transparent;color:var(--ink);opacity:.55;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,opacity .15s}
.copy:hover{background:var(--g300);opacity:1}
.copy svg{width:20px;height:20px;display:block}
.copy .ico-check{display:none;color:var(--accent)}
.copy.is-copied .ico-copy{display:none}
.copy.is-copied{opacity:1}
.copy.is-copied .ico-check{display:block}
.cico{width:20px;height:20px;flex:none;margin-top:3px;color:var(--accent)}
.footer{margin-top:48px;padding:48px 0 32px;background:var(--g100);border-radius:var(--radius-xl) var(--radius-xl) 0 0;corner-shape:squircle}
.fcols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:32px;align-items:start}
.fcols > div{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:20px}
.fcontact{gap:8px}
.fcols .fbig{font-size:20px;line-height:28px;font-weight:500}
.faddr{font-size:14px;line-height:20px;color:var(--g700);margin-top:4px}
.fsoc{margin-top:4px}
.ftitle{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--g600);margin-bottom:4px}
.fcols a{color:var(--ink)}
.fcols a:hover{color:var(--accent)}
.fsoc{display:flex;gap:10px;margin-top:8px}
.fsoc a{width:48px;height:48px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .15s}
.fsoc a svg{width:24px;height:24px;transition:color .15s}
.fsoc a:hover{background:var(--accent)}
.fsoc a:hover svg{color:#fff}
.fico{width:20px;height:20px}
.fbottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--g300);font-size:12px;line-height:16px;color:var(--g700);flex-wrap:wrap}
.flegal{display:flex;gap:24px;margin-left:auto}
.flegal a{color:var(--ink);font-size:14px;line-height:20px}
.about-top{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.about-top > div,.about-top > p.lead,.about-top > .cert-thesis{padding-top:6px}
.about-top .lead{max-width:760px}
.about-top > .cert-thesis{margin:0;max-width:760px}
.about-top > p.lead,.about-top > div{margin-top:0}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:48px;align-items:stretch}
.pillar{position:relative;overflow:hidden;padding:32px;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:16px;background:var(--m);border-radius:var(--radius-card);corner-shape:squircle;color:var(--ink);transition:color .35s ease,flex-grow .55s cubic-bezier(.4,0,.2,1)}
.pillar{--mx:50%;--my:50%}
.pillar::before{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .45s ease;
  background:radial-gradient(320px circle at var(--mx) var(--my),var(--a) 0%,transparent 62%)}
.pillar:hover::before{opacity:.55}
@media (prefers-reduced-motion:reduce){.pillar::before{transition:none}
}
.pillar h3{position:relative}
.pillar .ico{position:relative;width:32px;height:32px;display:block;color:var(--ink);transition:color .35s ease}
.pillar h3{font-size:36px;line-height:44px;letter-spacing:-.02em;font-weight:500}
.pillar p{font-size:16px;line-height:24px;color:var(--ink-2)}
.pillar-list{position:relative;list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.pillar-list li{padding:12px 0;border-top:1px solid var(--g300);font-size:16px;line-height:24px;font-weight:500;transition:border-color .35s ease}
.certificate{position:relative;}
.certificate .nmu-cert{position:absolute; inset:0; width:100%; height:100%;}
.nmu-cert{display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:"Golos Text", system-ui, sans-serif; width:100%; height:100%;}
.nmu-cert *{box-sizing:border-box; margin:0; padding:0;}
.nmu-cert__scene{perspective:2400px; width:100%; flex:0 0 auto; display:flex; align-items:center; justify-content:center;}
.nmu-cert__floater{transform-style:preserve-3d; animation:nmu-float 9s ease-in-out infinite;}
.nmu-cert__scene.is-tilting .nmu-cert__floater{animation:none; transition:transform .18s ease-out;}
.nmu-cert__scene.is-leaving .nmu-cert__floater{transition:transform .6s ease;}
@keyframes nmu-float{
  0%   { transform:rotateY(-6deg) rotateX(2.2deg)  translateY(0); }
  25%  { transform:rotateY(0deg)  rotateX(-1.8deg) translateY(-8px); }
  50%  { transform:rotateY(6deg)  rotateX(2.2deg)  translateY(0); }
  75%  { transform:rotateY(0deg)  rotateX(-1.8deg) translateY(-8px); }
  100% { transform:rotateY(-6deg) rotateX(2.2deg)  translateY(0); }
}
.nmu-cert__card{position:relative; width:100%; aspect-ratio:2000/1414; transform-style:preserve-3d; transition:transform 1.1s cubic-bezier(.4,.05,.2,1); cursor:pointer;}
.nmu-cert__card.is-flipped{transform:rotateY(180deg);}
.nmu-cert__face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:6px; overflow:hidden; background:#fff; box-shadow:0 1px 3px rgba(60,45,20,.14), 0 16px 36px -14px rgba(60,45,20,.22);}
.nmu-cert__photo{width:100%; height:100%; display:block; object-fit:cover; user-select:none; -webkit-user-drag:none; filter:saturate(.96) contrast(.985) brightness(1.005);}
.nmu-cert__face::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(165deg, rgba(255,255,255,.05), transparent 45%), radial-gradient(120% 120% at 50% 50%, transparent 70%, rgba(70,58,38,.05) 100%);}
.nmu-cert__back{transform:rotateY(180deg);}
.nmu-cert__glare{position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .35s; background:radial-gradient(45% 60% at var(--gx,50%) var(--gy,40%), rgba(255,255,255,.5), rgba(255,255,255,.16) 45%, transparent 72%); mix-blend-mode:screen;}
.nmu-cert__card:hover .nmu-cert__glare{opacity:1;}
.nmu-cert__sweep{position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg, transparent 35%, rgba(255,255,255,.65) 50%, transparent 65%); background-size:280% 100%; background-position:120% 0; mix-blend-mode:screen; opacity:0;}
.nmu-cert__card.is-sweeping .nmu-cert__sweep{opacity:1; animation:nmu-sweep 1.1s cubic-bezier(.4,.05,.2,1);}
@keyframes nmu-sweep{ from{ background-position:120% 0; } to{ background-position:-60% 0; } }
.nmu-cert__card:focus-visible{outline:2px solid #099250; outline-offset:6px;}
@media (prefers-reduced-motion: reduce){}
#certificate{background:var(--g100);padding:48px 0;margin:0 auto;width:min(var(--container),calc(100% - 2*var(--gutter)));border-radius:var(--radius-xl);corner-shape:squircle}
#certificate .container{width:min(calc(var(--container) - 96px),calc(100% - 96px))}
.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:stretch}
.cert-text{display:flex;flex-direction:column;gap:0}
.cert-thesis{font-size:20px;line-height:28px;font-weight:500;margin:0 0 20px}
.about-top .sub.sub-big{font-size:20px;line-height:28px;font-weight:500;margin:0 0 12px}
.cert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.cert-list li{position:relative;padding-left:32px;font-size:16px;line-height:24px}
.cert-list li svg{position:absolute;left:0;top:2px;width:20px;height:20px;color:var(--accent)}
.cert-text h2{margin-bottom:32px}
.cert-text .row-btns{margin-top:32px}
#certificate .certificate{width:auto; height:0; min-height:100%; aspect-ratio:2000/1414; margin:0; justify-self:end;}
#events,#academy,#youtube,#certificate{margin-top:48px;margin-bottom:48px}
#events,#academy{margin-bottom:40px}
#events + #academy,#academy + #youtube{margin-top:40px}
.uni-top > div{padding-top:0}
.uni-top .uni-thesis{padding-top:6px}
.nm-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}
@media (max-width:1240px){.nm-nav,.nm-lang{height:auto}
.nm-nav{width:100%;margin:0}
.nm-nav a,.nm-lang a{height:auto}
.nm-right{width:100%;flex-direction:column;align-items:stretch;gap:12px;flex:0 0 auto}
.nm-lang{margin:32px 12px 0}
}
.nm-langdd{position:relative;flex:0 0 auto}
.nm-langbtn{height:44px;padding:0 12px 0 16px;border:0;border-radius:var(--radius-pill);background:var(--g100);font-family:inherit;font-size:14px;line-height:16px;font-weight:500;color:#181D27;display:flex;align-items:center;gap:4px;cursor:pointer;transition:background .15s}
.nm-langbtn:hover,.nm-langdd.open .nm-langbtn{background:var(--g200)}
.nm-langbtn svg{width:20px;height:20px;color:#181D27;transition:transform .2s ease}
.nm-langdd.open .nm-langbtn svg{transform:rotate(180deg)}
.nm-langdd .nm-lang{position:absolute;top:calc(100% + 8px);right:0;z-index:5;flex-direction:column;align-items:stretch;gap:2px;height:auto;min-width:200px;padding:8px;background:#fff;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.04);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .18s ease,transform .18s ease,visibility .18s}
.nm-langdd.open .nm-lang{opacity:1;visibility:visible;transform:none}
.nm-langdd .nm-lang a{height:40px;padding:0 10px 0 12px;border-radius:10px;font-size:14px;line-height:16px;gap:10px;color:#181D27}
.nm-langdd .nm-lang a:hover{background:var(--g100)}
.nm-langdd .nm-lang a[aria-current="true"]{background:var(--g200);color:#181D27}
.nm-langdd .nm-lang a[aria-current="true"]:hover{background:var(--g300)}
.nm-langdd .nm-short{display:inline-block;width:24px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.02em;color:var(--g600)}
.nm-langdd .nm-lang a[aria-current="true"] .nm-short{color:#181D27}
.nm-langdd .nm-full{display:inline}
.nm-langdd .nm-lang a[aria-current="true"]::after{content:"";width:18px;height:18px;margin-left:auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23212121' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:1240px){.nm-langdd{width:100%}
.nm-langbtn{display:none}
.nm-langdd .nm-lang{position:static;display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0;padding:0;background:transparent;border-radius:0;box-shadow:none;opacity:1;visibility:visible;transform:none}
.nm-langdd .nm-lang a{height:auto;padding:13px 8px;border-radius:10px;font-size:16px}
.nm-langdd .nm-short{display:none}
.nm-langdd .nm-lang a[aria-current="true"]{background:var(--g300);color:#181D27}
.nm-langdd .nm-lang a[aria-current="true"]::after{display:none}
}
@media (hover:hover) and (min-width:1241px){.nm-langdd::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
.nm-langdd:hover .nm-lang{opacity:1;visibility:visible;transform:none}
.nm-langdd:hover .nm-langbtn{background:var(--g200)}
.nm-langdd:hover .nm-langbtn svg{transform:rotate(180deg)}
}
:root{--motion-fast:150ms;--motion-base:300ms;--motion-in:700ms;--motion-media:900ms;--motion-expand:350ms;--ease-out-apple:cubic-bezier(.25,.1,.25,1);--ease-inter:cubic-bezier(.4,0,.2,1);--lift:-4px;--card-shadow:0 12px 28px rgba(0,0,0,.08)}
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity var(--motion-in) var(--ease-out-apple),transform var(--motion-in) var(--ease-out-apple)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal h2,.js .reveal h3,.js .reveal .sub,.js .reveal .lead,.js .reveal .uni-thesis,.js .reveal .mission,.js .reveal .uni-text,.js .reveal .cert-thesis,.js .reveal .cert-list,.js .reveal .btn{opacity:0;transform:translateY(16px);transition:opacity var(--motion-in) var(--ease-out-apple),transform var(--motion-in) var(--ease-out-apple)}
.js .reveal.in h2,.js .reveal.in h3,.js .reveal.in .sub,.js .reveal.in .lead,.js .reveal.in .uni-thesis,.js .reveal.in .mission,.js .reveal.in .uni-text,.js .reveal.in .cert-thesis,.js .reveal.in .cert-list,.js .reveal.in .btn{opacity:1;transform:none}
.js .reveal.in .sub,.js .reveal.in .lead,.js .reveal.in .uni-thesis,.js .reveal.in .mission,.js .reveal.in .uni-text,.js .reveal.in .cert-thesis,.js .reveal.in .cert-list{transition-delay:130ms}
.js .reveal.in .btn{transition-delay:260ms}
.js .reveal-kids > *{opacity:0;transform:translateY(24px) scale(.97);transition:opacity var(--motion-in) var(--ease-out-apple),transform var(--motion-in) var(--ease-out-apple);transition-delay:var(--d,0s)}
.js .reveal-kids.in > *{opacity:1;transform:none}
.js .reveal .photo,.js .reveal.compare{transform:scale(1.03);transition:transform var(--motion-media) var(--ease-out-apple),opacity var(--motion-in) var(--ease-out-apple)}
.js .reveal.in .photo{transform:translateZ(0)}
.js .reveal.in.compare{transform:none}
.js .reveal.done,.js .reveal.done *,.js .reveal-kids.done > *{transition-delay:0s!important}
.js .reveal-kids.done > *{transition:transform var(--motion-base) var(--ease-inter),box-shadow var(--motion-base) var(--ease-inter),background-color var(--motion-base) var(--ease-inter)}
.js .reveal.done .btn{transition:transform var(--motion-fast) var(--ease-inter),background-color var(--motion-fast) var(--ease-inter)}
.js .reveal.done .photo{transition:transform var(--motion-base) var(--ease-inter)}
@keyframes m-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.h1-lines .hero-copy h1{animation:none;opacity:1;transform:none}
.h1-lines .hero-copy h1 .w{display:inline-block;animation:m-rise var(--motion-in) var(--ease-out-apple) calc(.55s + var(--l,0) * 80ms) both}
.nm-header{transition:background-color var(--motion-base) var(--ease-inter),box-shadow var(--motion-base) var(--ease-inter)}
.nm-header.is-scrolled{background:#FFFFFF;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.nm-nav{position:relative}
.nm-nav li{position:relative;z-index:1}
.nm-ind{position:absolute;left:0;top:0;height:44px;width:0;z-index:0;pointer-events:none;opacity:0;transform:translateX(var(--x,0px));transition:transform var(--motion-base) var(--ease-inter),opacity var(--motion-base) var(--ease-inter)}
.nm-ind.on{opacity:1}
.nm-ind i{position:absolute;top:0;height:44px;background:var(--g200);display:block}
.nm-ind .l{left:0;width:22px;border-radius:22px 0 0 22px}
.nm-ind .m{left:21.5px;width:1px;transform-origin:left center;transform:scaleX(var(--m,1));transition:transform var(--motion-base) var(--ease-inter)}
.nm-ind .r{left:22px;width:22px;border-radius:0 22px 22px 0;transform:translateX(calc(var(--w,44px) - 44px));transition:transform var(--motion-base) var(--ease-inter)}
.js .nm-nav.has-ind a.nm-active,.js .nm-nav.has-ind a.nm-active:hover{background:transparent}
.nm-nav a{transition:background-color var(--motion-fast) var(--ease-inter),color var(--motion-fast) var(--ease-inter)}
.btn,.nm-langbtn,.copy{transition:transform var(--motion-fast) var(--ease-inter),background-color var(--motion-fast) var(--ease-inter),color var(--motion-fast) var(--ease-inter),opacity var(--motion-fast) var(--ease-inter)}
.btn:hover,.nm-langbtn:hover{transform:scale(1.02)}
.btn:active,.nm-langbtn:active,.copy:active{transform:scale(.98)}
.report,.soc,.spec,.yt-row,.pillar{transition:transform var(--motion-base) var(--ease-inter),box-shadow var(--motion-base) var(--ease-inter),background-color var(--motion-base) var(--ease-inter)}
.photo img{transition:opacity .45s var(--ease-out-apple),transform var(--motion-base) var(--ease-inter)}
.gallery .photo:hover img{transform:scale(1.03)}
.fcols > div > a,.flegal a{position:relative;align-self:flex-start;width:fit-content;transition:color var(--motion-fast) var(--ease-inter)}
.fcols > div > a::after,.flegal a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--motion-base) var(--ease-inter)}
.fcols > div > a:hover::after,.flegal a:hover::after{transform:scaleX(1)}
.fsoc a{transition:background-color var(--motion-fast) var(--ease-inter),transform var(--motion-fast) var(--ease-inter)}
.fsoc a:hover{transform:scale(1.02)}
.fsoc a:active{transform:scale(.98)}
.expand{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--motion-expand) var(--ease-inter),opacity var(--motion-expand) var(--ease-inter)}
.expand.open{grid-template-rows:1fr;opacity:1}
.expand > *{min-height:0;overflow:hidden}
@media (prefers-reduced-motion:reduce){.js .reveal,.js .reveal *,.js .reveal-kids > *,.h1-lines .hero-copy h1 .w{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
.nm-ind,.nm-ind i,.nm-header,.btn,.slider .nav button,.lb button,.nm-langbtn,.copy,.report,.soc,.spec,.yt-row,.pillar,.photo img,.fcols > div > a::after,.flegal a::after,.fsoc a,.expand{transition:none!important}
}
#projects{padding-bottom:0}
#projects + #events{margin-top:14px}
.slider .nav button,.lb button{transition:background-color var(--motion-fast) var(--ease-inter)}
.cmp-tag{transition:opacity var(--motion-base) var(--ease-inter)}
.compare.hide-l .cmp-tag-l,.compare.hide-r .cmp-tag-r{opacity:0}
#events{background:transparent;padding:48px 0;margin:0 auto;width:auto;border-radius:0}
#events .container{width:min(var(--container),calc(100% - 2*var(--gutter)))}
#events h2{font-size:44px;line-height:52px;font-weight:600}
#projects{padding-bottom:48px}
#projects + #events{margin-top:0}
#events + #academy{margin-top:48px}
.event-card{background:var(--g100)}
.gallery .photo,.slider .track .photo{isolation:isolate;transform:translateZ(0);-webkit-mask-image:none;mask-image:none;box-shadow:none}
.js .reveal .photo{transform:scale(1.03) translateZ(0)}
.js .reveal.in .photo,.js .reveal.done .photo{transform:translateZ(0)}
.event-card{padding:48px;gap:0 48px;margin-top:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.event-head{grid-column:1/-1;margin:0 0 48px}
#events h2{font-size:28px;line-height:36px;font-weight:500}
.event-body{padding:0}
.event-slider{padding:0}
.event-slider .nav .prev{left:16px}
.event-slider .nav .next{right:16px}
.event-slider .dots{right:0;bottom:16px}
#projects{background:var(--g100)}
#academy,#youtube{background:transparent;padding:48px 0;margin:0 auto;width:auto;border-radius:0}
#academy .container,#youtube .container{width:min(var(--container),calc(100% - 2*var(--gutter)))}
#academy h2,#youtube h2{font-size:44px;line-height:52px;font-weight:600}
#events + #academy,#academy + #youtube{margin-top:0}
#events,#academy,#youtube{padding:0;margin:0;width:auto;background:transparent;border-radius:0}
#projects #events{margin-top:48px}
#projects #academy,#projects #youtube{margin-top:48px;background:#FFFFFF;border-radius:var(--radius-xl);corner-shape:squircle;padding:48px}
#events h2,#academy h2,#youtube h2{font-size:28px;line-height:36px;font-weight:500}
.event-card{background:#FFFFFF}
#academy .panel-grid,#youtube .panel-grid{grid-template-columns:1fr;gap:32px;align-items:start;height:100%}
#academy .panel-grid > *,#youtube .panel-grid > *{min-width:0;max-width:none;justify-self:stretch}
#academy .stack{max-width:none;align-self:end}
#youtube .course{width:240px}
.proj-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.proj-side h2{margin-bottom:32px}
.proj-side .sub{margin:0 0 12px}
.proj-side .lead+.lead{margin-top:0}
.proj-list{display:flex;flex-direction:column;gap:8px;margin-top:32px}
.pi{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;border:0;border-radius:16px;background:#FFFFFF;color:var(--ink);text-align:left;cursor:pointer;font:inherit;transition:box-shadow var(--motion-fast) var(--ease-inter),background-color var(--motion-fast) var(--ease-inter)}
.pi:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.pi.on,.pi.on:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}
.pi-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pi-txt b{font-size:16px;line-height:24px;font-weight:600}
.pi-txt small{font-size:14px;line-height:20px;color:var(--g700)}
.proj-main{min-width:0}
.proj-main > .subsec{display:none;margin:0}
.proj-main > .subsec.on{display:block}
#projects #events{margin-top:0}
.event-card{grid-template-columns:1fr;gap:32px 0}
.event-head{display:block;margin:0 0 0}
.event-head h2{margin-bottom:12px}
.event-slider .track{height:auto}
.event-slider .track .photo{aspect-ratio:3/2;height:auto}
.proj-grid{grid-template-columns:1fr;gap:48px}
.proj-side{display:grid;grid-template-columns:5fr 7fr;gap:0 48px;align-items:start}
.proj-side h2{grid-column:1;grid-row:1/4;margin:0}
.proj-side .sub,.proj-side .lead{grid-column:2}
.proj-side .sub{padding-top:6px}
.proj-list{grid-column:1/-1;flex-direction:row;gap:14px;margin-top:48px}
.pi{flex:1 1 0;min-width:0}
.event-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 48px}
.event-head{display:grid;grid-column:1/-1;margin:0 0 48px}
.event-head h2{margin-bottom:0}
.event-slider .track{height:100%}
.event-slider .track .photo{aspect-ratio:3/2;height:100%}
#academy .panel-grid{grid-template-columns:6fr 4fr;gap:48px;align-items:stretch}
#academy .stack{max-width:440px;justify-self:end;align-self:center}
#projects{background:transparent}
.pi{background:var(--g100)}
.pi:hover{background:var(--g100);box-shadow:inset 0 0 0 1px var(--g300)}
.pi.on,.pi.on:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1.5px var(--accent)}
.event-card{background:var(--g100)}
#projects #academy,#projects #youtube{background:var(--g100)}
.event-card{grid-template-columns:1fr;gap:0}
.event-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 32px;background:#FFFFFF;border-radius:var(--radius-card);corner-shape:squircle;padding:32px}
.event-head{margin:0 0 32px}
#projects #events,#projects #academy,#projects #youtube{margin-top:0}
.proj-grid{gap:14px}
.proj-list{margin-top:48px}
@keyframes tab-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.proj-main > .subsec.on{animation:tab-in 350ms var(--ease-out-apple) both}
@media (prefers-reduced-motion:reduce){.proj-main > .subsec.on{animation:none}
}
.proj-grid{gap:48px}
.proj-main{background:var(--g100);border-radius:var(--radius-xl);corner-shape:squircle;padding:48px}
.proj-main > .subsec{margin:0}
.event-card{background:transparent;padding:0;border-radius:0;overflow:visible}
#projects #academy,#projects #youtube{background:transparent;padding:0;border-radius:0}
.proj-main .proj-list{margin-top:48px}
.pi{background:#FFFFFF}
.pi:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.pi.on,.pi.on:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1.5px var(--accent)}
.proj-main .proj-list{margin:0 0 48px}
#youtube .panel-grid{grid-template-columns:6fr 4fr;gap:48px;align-items:stretch}
#youtube .academy-head{max-width:640px}
#youtube .course{width:auto}
.proj-main{overflow:hidden}
.proj-main .proj-list{display:flex;flex-direction:row;gap:4px;width:max-content;max-width:100%;margin:0 0 48px;padding:4px;background:#FFFFFF;border-radius:var(--radius-pill)}
.proj-list .pi{flex:0 0 auto;width:auto;min-width:0;height:44px;padding:0 20px 0 16px;gap:10px;border-radius:var(--radius-pill);background:transparent;box-shadow:none;color:var(--ink)}
.proj-list .pi:hover{background:var(--g100);box-shadow:none}
.proj-list .pi.on,.proj-list .pi.on:hover{background:var(--ink);color:#FFFFFF;box-shadow:none}
.proj-list .pi-txt b{font-size:16px;line-height:24px;font-weight:500}
.proj-list .pi-txt small{display:none}
.certificate{max-width:100%}
.cert-grid{align-items:center}
@media (max-width:1240px){.ccard.partner-card{grid-template-columns:1fr}
.pc-req{border-left:0;padding-left:0;margin-left:0;border-top:1px solid var(--g300);padding-top:24px;margin-top:24px}
.req-row{grid-template-columns:auto 1fr 28px}
.req-row dd{white-space:normal;overflow-wrap:anywhere}
}
@media (max-width:1024px){.fcols{grid-template-columns:1fr 1fr;gap:32px 24px}
.pillars{grid-template-columns:1fr}
.specs .spec{grid-column:span 6}
.cert-grid{grid-template-columns:1fr;gap:32px}
.certificate{justify-self:stretch;width:100%;height:auto;min-height:0}
.partner2{grid-template-columns:1fr;gap:32px}
.reports{grid-template-columns:repeat(3,minmax(0,1fr))}
.yt-row{gap:12px}
}
@media (max-width:767px){:root{--gutter:16px}
.section{padding:32px 0}
#about{padding-top:64px}
h2,.tcard h2{font-size:32px;line-height:40px}
.pillar h3{font-size:28px;line-height:36px}
.hero{height:auto;min-height:0;margin:var(--hero-top) var(--gutter) 0;border-radius:20px}
.hero-copy{padding:48px 0 32px;max-width:none}
.hero-copy h1{font-size:34px;line-height:42px;margin-bottom:16px}
.hero-copy p{font-size:16px;line-height:24px}
.hero-actions{flex-wrap:wrap;gap:10px;margin-top:24px}
.hero-actions .btn{flex:1 1 auto}
.h1-lines .hero-copy h1 .w{display:inline}
.about-top,.proj-side{grid-template-columns:1fr;gap:16px}
.about-top > div,.about-top > p.lead,.about-top > .cert-thesis,.proj-side .sub{padding-top:0}
.proj-side h2{grid-row:auto;grid-column:1}
.proj-side .sub,.proj-side .lead{grid-column:1}
.tcard.tcard-wide{grid-template-columns:1fr;gap:32px}
.tcol{padding-right:0}
.tcol-line{border-left:0;padding-left:0;border-top:1px solid var(--g300);padding-top:32px}
.pillars,.specs,.reports,.socials{gap:10px;margin-top:32px}
.pillar{padding:24px}
.specs .spec{grid-column:span 12}
.spec{padding:20px}
.spec b{font-size:24px;line-height:28px}
.uni-top > div + div{margin-top:8px}
.mission{max-width:none}
#universitySlider,#buildingSlider,.event-card,.reports,.socials{margin-top:32px}
.slider .track .photo{flex:0 0 84%}
.compare{aspect-ratio:4/3;border-radius:20px}
.cmp-tag{top:16px;height:36px;line-height:36px;font-size:14px;padding:0 14px}
.cmp-tag-l{left:16px}
.cmp-tag-r{right:16px}
.slider .nav button{width:44px;height:44px}
.slider .nav .prev{left:8px}
.slider .nav .next{right:8px}
.proj-main{padding:24px;border-radius:20px}
.proj-main .proj-list{width:auto;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 0 24px}
.proj-main .proj-list::-webkit-scrollbar{display:none}
.proj-list .pi{height:40px;padding:0 14px 0 12px;gap:8px}
.proj-list .pi-txt b{font-size:14px;line-height:20px;white-space:nowrap}
.event-head{margin:0 0 24px}
.event-inner{grid-template-columns:1fr;gap:20px;padding:20px}
.event-body{padding:0}
.event-body h3{font-size:24px;line-height:32px;max-width:none}
.event-slider .track{height:auto}
.event-slider .track .photo{height:auto;aspect-ratio:3/2}
.event-slider .dots{position:static;margin-top:12px;right:auto;bottom:auto}
.event-slider .dots button{background:var(--g300)}
.event-slider .dots button.on{background:var(--g500)}
#academy .panel-grid,#youtube .panel-grid{grid-template-columns:1fr;gap:24px;height:auto}
#academy .stack{max-width:none;justify-self:stretch;align-self:start}
#youtube .academy-head{max-width:none}
#youtube .course{width:200px}
.reports{grid-template-columns:repeat(2,minmax(0,1fr))}
.report{min-height:120px;padding:20px}
.socials{grid-template-columns:repeat(2,minmax(0,1fr))}
.soc{min-height:120px;padding:20px}
.cert-grid{gap:24px}
.cert-text h2{margin-bottom:24px}
.cert-text .row-btns{margin-top:24px}
.partner2{gap:24px}
.ccard.partner-card{padding:20px}
.footer{margin-top:32px;padding:40px 0 24px;border-radius:20px 20px 0 0}
.fcols{grid-template-columns:1fr;gap:28px}
.fcols .fbig{font-size:18px;line-height:26px}
.fbottom{margin-top:32px;gap:12px}
.fbottom .flegal{margin-left:0;width:100%}
.btn{height:44px;padding:0 20px;font-size:15px}
.copy{width:28px}
}
.proj-main .proj-list{margin:0 auto 48px}
.proj-list .pi{padding:0 24px;gap:0;height:48px}
.proj-list .pi-txt b{font-size:18px;line-height:24px;font-weight:500}
.proj-list .pi.on,.proj-list .pi.on:hover{background:var(--accent);color:#FFFFFF}
.proj-list .pi.on:hover{background:var(--accent-hover)}
@media (max-width:767px){.proj-main .proj-list{margin:0 0 24px}
.proj-list .pi{height:40px;padding:0 16px}
.proj-list .pi-txt b{font-size:14px;line-height:20px}
}
.proj-list{display:none!important}
.proj-main{background:transparent;padding:0;border-radius:0;overflow:visible}
.proj-main > .subsec{display:block!important;animation:none!important;background:var(--g100);border-radius:var(--radius-xl);corner-shape:squircle;padding:48px;margin:14px 0 0;overflow:hidden;position:relative}
.proj-main > .subsec:first-child{margin-top:0}
.proj-grid{gap:48px}
@media (max-width:767px){.proj-main > .subsec{padding:24px;border-radius:20px;margin-top:10px}
.proj-grid{gap:24px}
}
#projects #events,#projects #academy,#projects #youtube{display:block;background:var(--g100);border-radius:var(--radius-xl);padding:48px;margin:14px 0 0;overflow:hidden;position:relative}
#projects #events{margin-top:0}
@media (max-width:767px){#projects #events,#projects #academy,#projects #youtube{padding:24px;border-radius:20px;margin-top:10px}
#projects #events{margin-top:0}
}
.proj-grid{gap:40px}
.proj-side{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.proj-side h2{max-width:none;margin:0 0 16px}
.proj-side .sub{padding-top:0;margin:0 0 12px;max-width:720px}
.proj-side .lead{max-width:720px}
.proj-side .lead+.lead{margin-top:0}
.proj-main{background:transparent;padding:0;border-radius:0;overflow:visible}
.proj-main .proj-list{display:flex!important;flex-direction:row;gap:4px;width:max-content;max-width:100%;margin:0 auto 24px;padding:4px;background:#FFFFFF;border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px var(--g300)}
.proj-list .pi{flex:0 0 auto;width:auto;min-width:0;height:44px;padding:0 18px 0 14px;gap:8px;border-radius:var(--radius-pill);background:transparent;color:var(--ink);box-shadow:none}
.proj-list .pi-txt b{font-size:15px;line-height:20px;font-weight:500}
.proj-list .pi-txt small{display:none}
.proj-list .pi:hover{background:var(--g100);box-shadow:none}
.proj-list .pi.on,.proj-list .pi.on:hover{background:var(--accent);color:#FFFFFF;box-shadow:none}
#projects #events,#projects #academy,#projects #youtube{background:var(--g100);border-radius:var(--radius-xl);padding:48px;margin:0;overflow:hidden;position:relative}
.proj-main > .subsec:not(.on){display:none!important}
.proj-main > .subsec.on{display:block!important;animation:tab-in 350ms var(--ease-out-apple) both!important}
.event-inner{background:#FFFFFF}
@media (prefers-reduced-motion:reduce){.proj-main > .subsec.on{animation:none!important}
}
@media (max-width:767px){.proj-grid{gap:24px}
.proj-side{align-items:flex-start;text-align:left}
.proj-main .proj-list{width:auto;max-width:100%;overflow-x:auto;scrollbar-width:none;margin:0 0 16px}
.proj-list .pi{height:40px;padding:0 14px 0 12px}
.proj-list .pi-txt b{font-size:14px;white-space:nowrap}
#projects #events,#projects #academy,#projects #youtube{padding:24px;border-radius:20px}
}
.proj-main{display:grid}
.proj-main > .subsec,.proj-main > .subsec:not(.on){grid-area:1/1;display:block!important;visibility:hidden;opacity:0;pointer-events:none;animation:none!important;margin:0}
.proj-main > .subsec.on{visibility:visible;opacity:1;pointer-events:auto;animation:tab-in 350ms var(--ease-out-apple) both!important}
@media (prefers-reduced-motion:reduce){.proj-main > .subsec.on{animation:none!important}
}
.proj-main{grid-template-columns:1fr}
.proj-main .proj-list{position:relative;grid-row:1;grid-column:1;justify-self:center}
.proj-main > .subsec,.proj-main > .subsec:not(.on){grid-area:2/1;animation:none!important;transition:opacity var(--motion-base) var(--ease-inter),visibility var(--motion-base)}
.proj-main > .subsec.on{animation:none!important}
.pl-ind{position:absolute;top:4px;bottom:4px;left:0;width:var(--w,0px);border-radius:var(--radius-pill);background:var(--accent);transform:translateX(var(--x,0px));transition:transform 350ms var(--ease-inter),width 350ms var(--ease-inter);z-index:0;pointer-events:none}
.proj-list .pi{position:relative;z-index:1}
.proj-list .pi.on,.proj-list .pi.on:hover{background:transparent;color:#FFFFFF}
@media (prefers-reduced-motion:reduce){.pl-ind,.proj-main > .subsec{transition:none!important}
}
.proj-main{grid-template-columns:minmax(0,1fr)}
.proj-main > .subsec{min-width:0}
@media (max-width:767px){.proj-main .proj-list{justify-self:stretch;width:auto;max-width:100%;overflow-x:auto}
}
.proj-side{display:grid;grid-template-columns:5fr 7fr;gap:0 48px;align-items:start;text-align:left}
.proj-side h2{grid-column:1;grid-row:1/4;margin:0;max-width:none}
.proj-side .sub,.proj-side .lead{grid-column:2;max-width:760px}
.proj-side .sub{padding-top:6px;margin:0 0 12px}
.proj-side .lead+.lead{margin-top:0}
.proj-grid{gap:48px}
.proj-main .proj-list{justify-self:start;margin:0 0 24px;background:var(--g100);box-shadow:none}
.proj-list .pi{padding:0 20px;gap:0}
.proj-list .pi:hover{background:var(--g200)}
@media (max-width:767px){.proj-side{grid-template-columns:1fr;gap:16px}
.proj-side h2{grid-row:auto}
.proj-side .sub,.proj-side .lead{grid-column:1}
.proj-side .sub{padding-top:0}
.proj-grid{gap:24px}
}
.proj-side .proj-list{display:flex!important;grid-column:2;justify-self:start;margin:24px 0 0;position:relative;width:max-content;max-width:100%}
.proj-main > .subsec,.proj-main > .subsec:not(.on){grid-area:1/1}
@media (max-width:767px){.proj-side .proj-list{grid-column:1;justify-self:stretch;width:auto;max-width:100%;overflow-x:auto;margin-top:16px}
}
.proj-side .proj-list{flex-direction:row;gap:4px;padding:4px;background:var(--g100);border-radius:var(--radius-pill);box-shadow:none}
@keyframes tab-fade{from{opacity:0}to{opacity:1}}
.proj-main{display:block}
.proj-main > .subsec,.proj-main > .subsec:not(.on){display:none!important;visibility:visible;opacity:1;pointer-events:auto;transition:none}
.proj-main > .subsec.on{display:block!important;animation:tab-fade var(--motion-base) var(--ease-inter) both!important}
@media (prefers-reduced-motion:reduce){.proj-main > .subsec.on{animation:none!important}
}
.proj-list .pi{height:48px;padding:0 24px}
.proj-list .pi-txt b{font-size:18px;line-height:24px;font-weight:500}
@media (max-width:767px){.proj-list .pi{height:44px;padding:0 18px}
.proj-list .pi-txt b{font-size:16px;line-height:20px}
}
#youtube .yt-row .yt-ico{display:none}
#youtube .yt-row{gap:0}
#youtube .yt-rows{border-top:0;margin:16px 0 0}
#youtube .yt-row{display:block;padding:6px 0;border-bottom:0}
#youtube .yt-row > div{display:block}
#youtube .yt-row strong{display:inline;font-size:16px;line-height:24px;font-weight:600}
#youtube .yt-row strong::after{content:" \2014  ";font-weight:400;color:var(--g700)}
#youtube .yt-row span{display:inline;font-size:16px;line-height:24px;color:var(--g700)}
#youtube .yt-foot{display:flex;align-items:center;gap:24px;margin-top:20px}
#youtube .yt-foot .lead{flex:1 1 auto;margin:0;max-width:none}
#youtube .yt-foot p:last-child{margin:0!important;flex:none}
@media (max-width:767px){#youtube .yt-foot{flex-direction:column;align-items:flex-start;gap:16px}
}
#youtube .yt-row span{font-size:14px;line-height:20px}
#youtube .yt-row strong{font-size:16px;line-height:20px}
#youtube .yt-row strong::after{font-size:14px}
#youtube .yt-foot{flex-direction:column;align-items:flex-start;gap:20px}
#youtube .yt-foot .lead{max-width:640px}
#youtube .academy-head .lead,#youtube .yt-row strong,#youtube .yt-row span,#youtube .yt-foot .lead{font-size:16px;line-height:24px}
#youtube .yt-row strong::after{font-size:16px}
#youtube .yt-row{padding:8px 0}
#youtube .yt-row strong{display:block;font-weight:700;color:var(--ink)}
#youtube .yt-row strong::after{content:none}
#youtube .yt-row span{display:block;color:var(--ink)}
#youtube .academy-head > .lead + .lead{margin-top:0;max-width:640px}
#youtube .yt-rows{margin-top:20px}
#youtube .yt-foot{margin-top:24px}
#academy .academy-head .sub,.event-head .sub.sub-big{font-size:18px;line-height:24px;font-weight:600;color:var(--ink)}
.proj-side .proj-list{display:grid!important;grid-template-columns:repeat(3,1fr);width:100%;max-width:none;justify-self:stretch}
.proj-list .pi{width:auto;justify-content:center;padding:0 16px}
.proj-list .pi-txt{align-items:center}
@media (max-width:767px){.proj-side .proj-list{display:flex!important;grid-template-columns:none;width:auto;overflow-x:auto}
.proj-list .pi{flex:0 0 auto;padding:0 18px}
}
.pcard{display:flex;flex-direction:column;width:100%;max-width:440px;justify-self:end;align-self:center;background:#FFFFFF;border-radius:var(--radius-card);corner-shape:squircle;overflow:hidden;color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1px var(--g300);transition:box-shadow var(--motion-base) var(--ease-inter)}
.pcard:hover{box-shadow:inset 0 0 0 1px var(--g400)}
.pcard-hd{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--g300)}
.pcard-av{flex:none;width:40px;height:40px;border-radius:50%;background:var(--g100);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pcard-av img{width:26px;height:auto;display:block}
.pcard-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.pcard-who b{font-size:16px;line-height:20px;font-weight:600}
.pcard-who span{font-size:14px;line-height:18px;color:var(--g700)}
.pcard-cv{position:relative;display:block;aspect-ratio:16/9;background:var(--g200);overflow:hidden}
.pcard-cv img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--motion-base) var(--ease-inter)}
.pcard:hover .pcard-cv img{transform:scale(1.03)}
.pcard-play{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:rgba(255,255,255,.92)}
.pcard-play::after{content:"";position:absolute;left:23px;top:18px;border-left:16px solid var(--ink);border-top:10px solid transparent;border-bottom:10px solid transparent}
.pcard-ft{display:flex;flex-direction:column;gap:4px;padding:16px 20px 20px}
.pcard-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pcard-row b{font-size:18px;line-height:24px;font-weight:600}
.pcard-row span{font-size:14px;line-height:20px;color:var(--g700);white-space:nowrap;flex:none}
#academy .pcard{grid-column:2;grid-row:auto}
#youtube .panel-grid{grid-template-columns:6fr 4fr;gap:48px;align-items:center}
#youtube .academy-head{max-width:640px}
#academy .panel-grid{align-items:center}
@media (max-width:1024px){#academy .panel-grid,#youtube .panel-grid{grid-template-columns:1fr}
.pcard{max-width:none;justify-self:stretch}
}
@media (max-width:767px){.pcard-hd,.pcard-ft{padding-left:16px;padding-right:16px}
}
.pcard-av.pcard-av-img{background:transparent}
.pcard-av.pcard-av-img img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.gallery .photo,.slider .track .photo,.event-slider .track .photo{corner-shape:round}
.gallery .photo::before,.gallery .photo::after{border-radius:inherit}
.gallery .photo img,.slider .track .photo img,.event-slider .track .photo img{border-radius:inherit}
.pillar:nth-child(1) .pillar-list li{border-top-color:#AAF0C4}
.pillar:nth-child(2) .pillar-list li{border-top-color:#B2DDFF}
.pillar:nth-child(3) .pillar-list li{border-top-color:#FEDF89}
.compare,.cmp-before,.cmp-after,.pcard,.pcard-cv,.pcard-av,.event-inner,.course,.lb img,.lb-thumbs button,.lb-thumbs img{corner-shape:round}
.cmp-before img,.pcard-cv img{border-radius:inherit}
.pillar:nth-child(1) .pillar-list li,.pillar:nth-child(2) .pillar-list li,.pillar:nth-child(3) .pillar-list li,.pillar .pillar-list li{border-top-color:#FFFFFF}
.nm-header{box-shadow:none}
.nm-header.is-scrolled{box-shadow:0 2px 12px rgba(0,0,0,.06)}
.proj-side .proj-list{grid-column:1/-1;grid-row:4;justify-self:center;width:max-content;max-width:100%;margin:48px 0 0}
@media (max-width:767px){.proj-side .proj-list{grid-column:1;grid-row:auto;justify-self:stretch;width:auto;margin-top:16px}
}
.proj-grid{gap:0}
.proj-side .proj-list{position:relative;z-index:2;margin:48px 0 0}
.proj-main{margin-top:-28px}
#projects #events,#projects #academy,#projects #youtube{padding-top:76px}
@media (max-width:767px){.proj-grid{gap:24px}
.proj-main{margin-top:0}
#projects #events,#projects #academy,#projects #youtube{padding-top:24px}
}
.proj-side .proj-list{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
.proj-list .pi:hover{background:var(--g100)}
.proj-side .proj-list{box-shadow:0 4px 16px rgba(24,29,39,.08),0 1px 2px rgba(24,29,39,.04)}
.proj-grid{gap:48px}
.proj-main{display:block;margin-top:0;background:var(--g100);border-radius:var(--radius-xl);padding:48px;overflow:visible}
.proj-main .proj-list{display:grid!important;grid-template-columns:repeat(3,1fr);width:max-content;max-width:100%;margin:0 auto 48px;position:relative;z-index:2;padding:4px;gap:4px;background:#FFFFFF;border-radius:var(--radius-pill);box-shadow:0 4px 16px rgba(24,29,39,.08),0 1px 2px rgba(24,29,39,.04)}
#projects #events,#projects #academy,#projects #youtube{background:transparent;padding:0;border-radius:0;overflow:visible;margin:0}
@media (max-width:767px){.proj-grid{gap:24px}
.proj-main{padding:24px;border-radius:20px}
.proj-main .proj-list{display:flex!important;grid-template-columns:none;width:auto;max-width:100%;overflow-x:auto;margin:0 0 24px}
#projects #events,#projects #academy,#projects #youtube{padding:0}
}
.proj-main .proj-list{grid-template-columns:repeat(3,220px)}
@media (max-width:767px){.proj-main .proj-list{grid-template-columns:none}
}
.proj-main{padding-top:24px}
.proj-main .proj-list{border-radius:16px;margin-bottom:40px}
.proj-list .pi{border-radius:12px}
.pl-ind{border-radius:12px}
.proj-list .pi:focus{outline:none}
.proj-list .pi:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:767px){.proj-main{padding-top:16px}
.proj-main .proj-list{margin-bottom:24px}
}
.slider .nav button,.lb button{background:#FFFFFF;color:var(--ink);border:0;box-shadow:0 4px 16px rgba(24,29,39,.14),0 1px 2px rgba(24,29,39,.06);-webkit-backdrop-filter:none;backdrop-filter:none}
.slider .nav button:hover,.lb button:hover{background:#FFFFFF;box-shadow:0 6px 20px rgba(24,29,39,.18),0 1px 2px rgba(24,29,39,.06)}
.slider .nav button svg,.lb button svg{color:var(--ink)}
.slider .nav button:disabled{opacity:.35}
.slider .nav button svg,.lb button svg{width:20px;height:20px;stroke-width:2}
.slider .nav button,.lb button{width:48px;height:48px}
.slider .nav button svg,.lb button svg{width:24px;height:24px}
#universitySlider .nav,#buildingSlider .nav{bottom:24px}
.slider .nav button svg,.lb button svg{width:20px;height:20px}
#projects .event-head{grid-template-columns:1fr 1fr;gap:48px}
@media (max-width:767px){#projects .event-head{grid-template-columns:1fr;gap:16px}
}
.about-top,.proj-side{grid-template-columns:1fr 1fr}
@media (max-width:767px){.about-top,.proj-side{grid-template-columns:1fr}
}
.tcard.tcard-wide{gap:0 64px}
.tcard.tcard-wide .tcol{padding-right:0;gap:20px}
.tcard.tcard-wide .tcol-line{border-left:0;padding-left:0}
.tcard.tcard-wide h2{font-size:56px;line-height:64px;letter-spacing:-.03em;font-weight:600}
@media (max-width:1024px){.tcard.tcard-wide h2{font-size:44px;line-height:52px}
}
@media (max-width:767px){.tcard.tcard-wide{gap:40px}
.tcard.tcard-wide .tcol-line{border-top:0;padding-top:0}
.tcard.tcard-wide h2{font-size:32px;line-height:40px;letter-spacing:-.02em}
}
h2,.tcard h2{font-size:56px;line-height:64px;letter-spacing:-.03em}
@media (max-width:1024px){h2,.tcard h2{font-size:44px;line-height:52px;letter-spacing:-.02em}
}
@media (max-width:767px){h2,.tcard h2{font-size:32px;line-height:40px;letter-spacing:-.02em}
}
.hero-copy h1{font-size:64px;line-height:72px;letter-spacing:-.03em}
@media (max-width:1024px){.hero-copy h1{font-size:52px;line-height:60px;letter-spacing:-.02em}
}
@media (max-width:767px){.hero-copy h1{font-size:34px;line-height:42px;letter-spacing:-.02em}
}
.btn-glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(255,255,255,.16)}
.btn-glass:hover{background:rgba(255,255,255,.24)}
@media (max-width:1240px){.nm-panel{-webkit-backdrop-filter:none;backdrop-filter:none;background:#FFFFFF}
}
.gallery .photo:hover img,.pcard:hover .pcard-cv img{transform:none}
@media (max-width:1240px){.nm-nav a{font-size:18px}
}
@media (max-width:767px){.nm-nav a{font-size:16px}
.btn{font-size:16px}
}

/* mobile menu panel must paint above the transformed hero */
@media (max-width:1240px){.nm-panel{z-index:1001}}
@media (max-width:1240px){.nm-header .nm-panel{top:var(--hero-top,68px);border-radius:0}}

/* calmer motion: no cursor spotlight, no 3D tilt/glare, softer reveals */
.pillar::before{display:none!important}
.js .reveal{transform:translateY(8px)}
.js .reveal-kids > *{transform:translateY(8px)}

/* smaller heading scale: h1 56/64, h2 48/56 */
h2,.tcard h2,.tcard.tcard-wide h2{font-size:48px;line-height:56px;letter-spacing:-.02em}
.hero-copy h1{font-size:56px;line-height:64px;letter-spacing:-.02em}
@media (max-width:1024px){h2,.tcard h2,.tcard.tcard-wide h2{font-size:40px;line-height:48px}.hero-copy h1{font-size:48px;line-height:56px}}
@media (max-width:767px){h2,.tcard h2,.tcard.tcard-wide h2{font-size:32px;line-height:40px}.hero-copy h1{font-size:34px;line-height:42px}}

/* mobile pass */
@media (max-width:1024px){
  #certificate .certificate{width:100%;height:auto;min-height:0;aspect-ratio:2000/1414;justify-self:stretch;max-width:560px;margin:0 auto}
}
@media (max-width:767px){
  #certificate{padding:32px 0}
  #certificate .container{width:calc(100% - 40px)}
  .cert-grid{gap:24px}
  .specs .spec{grid-column:span 6}
  .spec{padding:16px;gap:12px}
  .spec-ico{width:28px;height:28px}
  .spec b{font-size:22px;line-height:28px}
  .spec span{font-size:14px;line-height:20px}
  .proj-main .proj-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none;overflow:visible;padding:4px;gap:4px;margin:0 0 20px}
  .proj-list .pi{height:40px;padding:0 6px;min-width:0}
  .proj-list .pi-txt b{font-size:14px;line-height:20px;white-space:nowrap}
  .fcols{grid-template-columns:1fr 1fr;gap:24px 16px}
  .fcols > .fcontact,.fcols > div:last-child{grid-column:1/-1}
}

/* mobile QA: tap targets and clipped numbers */
.dots button{position:relative}
.dots button::before{content:"";position:absolute;inset:-10px;border-radius:50%}
@media (max-width:767px){
  .spec b{font-size:20px;line-height:26px}
  .copy{width:36px;height:36px;margin:-6px 0;opacity:.7}
  .fcols > div > a{padding:6px 0;margin:-6px 0}
  .fcols .fbig{padding:4px 0;margin:-4px 0}
  .flegal a{padding:6px 0}
}
@media (max-width:400px){
  .specs .spec{grid-column:span 12}
  .spec b{font-size:22px;line-height:28px}
}

/* compare labels off; full-width buttons on mobile */
.cmp-tag{display:none!important}
@media (max-width:767px){
  .btn{display:flex;width:100%;justify-content:center}
  .hero-actions{flex-direction:column;flex-wrap:nowrap;gap:10px}
  .hero-actions .btn{flex:0 0 auto;width:100%}
}

/* mobile menu: the header must never carry a transform while the fixed panel is open */
.nm-header{animation-fill-mode:backwards}
.nm-header:has(.nm-panel.nm-open){animation:none!important;transform:none!important}

/* university gallery: one photo per slide (variant 1) */
#universitySlider .track .photo{flex:0 0 100%;aspect-ratio:16/9}
#universitySlider .nav{bottom:24px}
@media (max-width:767px){#universitySlider .track .photo{flex:0 0 100%;aspect-ratio:16/9}}

/* university: split layout — text left, single-photo slider right (variant 2) */
@media (min-width:1025px){
  #university .container{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:center}
  #university .uni-top{display:block;grid-column:1;min-width:0}
  #university .uni-top > div + div{margin-top:24px}
  #university .uni-top .uni-thesis{padding-top:0}
  #university .uni-h2{margin-bottom:24px}
  #university .mission{max-width:none}
  #universitySlider{grid-column:2;margin-top:0;min-width:0}
  #universitySlider .track .photo{aspect-ratio:3/2}
}

/* building: gallery spacing after specs now that the compare block is gone */
#building #buildingSlider{margin-top:48px}
@media (max-width:767px){#building #buildingSlider{margin-top:32px}}

/* building gallery: one photo per slide, like the university block */
#buildingSlider .track .photo{flex:0 0 100%;aspect-ratio:16/9}
#buildingSlider .nav{bottom:24px}
@media (max-width:767px){#buildingSlider .track .photo{flex:0 0 100%;aspect-ratio:16/9}}

/* building: specs 2x3 on the left, single-photo slider 3:2 on the right (variant 1) */
@media (min-width:1025px){
  #building .container{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:center}
  #building .about-top{grid-column:1/-1;grid-row:1}
  #building .specs{grid-column:1;grid-row:2;margin-top:48px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:14px;min-width:0}
  #building .specs .spec{grid-column:auto}
  #building #buildingSlider{grid-column:2;grid-row:2;margin-top:48px;min-width:0}
  #buildingSlider .track .photo{aspect-ratio:3/2}
}

/* university: thesis above the gallery, mission between the paragraphs */
#university .uni-text{margin-top:24px}
#university .uni-text > p{margin:0}
#university .uni-text > p + p{margin-top:16px}
#university .uni-text .mission{margin:20px 0}
#university .uni-right{min-width:0}
#university .uni-right .uni-thesis{margin:0 0 20px}
#university .uni-right #universitySlider{margin-top:0}
@media (min-width:1025px){
  #university .uni-right{grid-column:2;grid-row:1;align-self:center}
  #university .uni-top{grid-row:1}
}
@media (max-width:1024px){
  #university .uni-right{margin-top:32px}
}
#university .uni-text p.mission{font-size:18px;line-height:28px;font-weight:500;color:var(--ink);padding-left:16px;border-left:2px solid var(--accent);max-width:none;margin:20px 0}
@media (min-width:1025px){#university .container{align-items:start}#university .uni-right{align-self:start}#university .uni-h2{margin-top:0}}

/* university and building: same 50/50 text/gallery proportion */
@media (min-width:1025px){
  #university .container,#building .container{grid-template-columns:1fr 1fr;gap:0 48px}
}

/* university: two-row grid (h2 + thesis, text + photo) with a 32/24/16 rhythm */
#university .container{display:block}
#university .uni-top{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
#university .uni-top > div{padding-top:0;margin-top:0}
#university .uni-h2{margin:0}
#university .uni-top .uni-thesis{margin:0;padding-top:6px}
#university .uni-body{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start;margin-top:32px}
#university .uni-text{margin:0;max-width:520px}
#university .uni-text > p{margin:0}
#university .uni-text > p + p{margin-top:16px}
#university .uni-text p.mission{margin:24px 0}
#university .uni-body #universitySlider{margin-top:0}
@media (max-width:1024px){
  #university .uni-top{grid-template-columns:1fr;gap:16px}
  #university .uni-body{grid-template-columns:1fr;gap:24px;margin-top:24px}
  #university .uni-text{max-width:none}
}
#university .uni-text p.mission + p{margin-top:0}
#university .uni-top > div + div{margin-top:0}

/* university: all text left, photo right, 50/50, top-aligned, 24px rhythm (variant 1) */
#university .uni-body{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start;margin-top:0}
#university .uni-text{display:flex;flex-direction:column;margin:0;max-width:520px}
#university .uni-text > *{margin:0}
#university .uni-text > * + *{margin-top:24px}
#university .uni-text .uni-h2{margin:0}
#university .uni-text p.uni-thesis{font-size:20px;line-height:28px;font-weight:500;color:var(--ink);padding:0;margin:24px 0 0;max-width:none}
#university .uni-text > p + p{margin-top:24px}
#university .uni-text p.mission{margin:24px 0 0}
#university .uni-text p.mission + p{margin-top:24px}
#university .uni-body #universitySlider{margin-top:0}
@media (max-width:1024px){
  #university .uni-body{grid-template-columns:1fr;gap:24px;margin-top:0}
  #university .uni-text{max-width:none}
}




/* about: one gray card with two text columns 50/50; pillars in one row, no fill, tint appears on hover */
#about .container{display:block}
#about .tcard.tcard-wide{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:32px;background:var(--g100);border-radius:var(--radius-card);corner-shape:squircle;align-items:start}
#about .tcard.tcard-wide .tcol{display:block;padding:0 48px 0 0;border:0;background:transparent}
#about .tcard.tcard-wide .tcol-line{padding:0 0 0 48px;border-left:1px solid var(--g300)}
#about .tcard.tcard-wide h2{font-size:36px;line-height:44px;letter-spacing:-.02em;font-weight:600;margin:0 0 16px}
#about .tcard.tcard-wide .lead{margin:0;padding-top:0;max-width:none}
#about .pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:48px}
#about .pillar{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:16px;padding:32px;background:transparent;border-radius:var(--radius-card)}
#about .pillar::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--m);opacity:0;transition:opacity var(--motion-base) var(--ease-inter);pointer-events:none}
#about .pillar:hover::after{opacity:1}
#about .pillar .ico,#about .pillar h3,#about .pillar .pillar-list{grid-column:auto;grid-row:auto;margin:0}
#about .pillar .pillar-list{margin-top:8px}
#about .pillar .pillar-list li{border-top:1px solid var(--g200);transition:border-color var(--motion-base) var(--ease-inter)}
#about .pillar:hover .pillar-list li{border-top-color:#FFFFFF}
@media (max-width:1024px){
  #about .pillars{grid-template-columns:1fr}
}
@media (max-width:767px){
  #about .tcard.tcard-wide{grid-template-columns:1fr;padding:20px;gap:20px}
  #about .tcard.tcard-wide .tcol{padding:0}
  #about .tcard.tcard-wide .tcol-line{padding:20px 0 0;border-left:0;border-top:1px solid var(--g300)}
  #about .tcard.tcard-wide h2{font-size:28px;line-height:36px}
  #about .pillars{gap:10px;margin-top:32px}
  #about .pillar{padding:24px}
}

/* about: pillars flush with the card text edge, hover tint outset by 24 (variant 1) */
#about .pillars{margin:48px 32px 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
#about .pillar{padding:0;overflow:visible;border-radius:0}
#about .pillar::after{inset:-24px;border-radius:var(--radius-card)}
@media (max-width:1024px){
  #about .pillars{grid-template-columns:1fr;gap:40px;margin:48px 32px 0}
}
@media (max-width:767px){
  #about .pillars{gap:32px;margin:32px 20px 0}
  #about .pillar{padding:0}
  #about .pillar::after{inset:-16px}
}

/* about: pillars get a light tint by default (45%), full tint on hover; boxes align with the gray card edges */
#about .pillars{gap:78px}
#about .pillar::after{inset:-32px;opacity:.45}
#about .pillar:hover::after{opacity:1}
#about .pillar .pillar-list li{border-top-color:#FFFFFF}
@media (max-width:1024px){
  #about .pillars{gap:78px}
}
@media (max-width:767px){
  #about .pillars{gap:50px}
  #about .pillar::after{inset:-20px}
}

/* about: heading left; description, then «Біздің мақсатымыз» as a subheading with its text, right */
#about .tcard.tcard-wide .tcol-line .lead{margin:0}
#about .tcard.tcard-wide .about-sub{font-size:18px;line-height:24px;font-weight:600;color:var(--ink);margin:24px 0 8px;letter-spacing:0}
#about .tcard.tcard-wide h2{margin:0}
@media (max-width:767px){#about .tcard.tcard-wide .about-sub{margin:20px 0 8px}}

/* about: head without the gray card and divider — plain 50/50 like other block heads */
#about .tcard.tcard-wide{background:transparent;border-radius:0;padding:0;gap:0 48px}
#about .tcard.tcard-wide .tcol{padding:0}
#about .tcard.tcard-wide .tcol-line{padding:0;border-left:0}
#about .tcard.tcard-wide h2{font-size:48px;line-height:56px;letter-spacing:-.02em}
#about .tcard.tcard-wide .tcol-line .lead:first-child{padding-top:6px}
#about .pillars{margin-top:48px}
@media (max-width:1024px){#about .tcard.tcard-wide h2{font-size:40px;line-height:48px}}
@media (max-width:767px){
  #about .tcard.tcard-wide{padding:0;gap:12px}
  #about .tcard.tcard-wide .tcol-line{padding:0;border-top:0}
  #about .tcard.tcard-wide .tcol-line .lead:first-child{padding-top:0}
  #about .tcard.tcard-wide h2{font-size:32px;line-height:40px}
  #about .pillars{margin-top:32px}
}

/* about: neutral Gray 100 pillars, colored icons, tint only on hover (variant 3) */
#about .pillar::before{content:"";display:block!important;position:absolute;inset:-32px;z-index:-2;border-radius:var(--radius-card);background:var(--g100);pointer-events:none;transition:none}
#about .pillar::after{opacity:0}
#about .pillar:hover::after{opacity:1}
#about .pillar .ico{color:var(--a)}
#about .pillar:nth-child(3) .ico{color:#DC6803}
#about .pillar .pillar-list li{border-top-color:var(--g300)}
#about .pillar:hover .pillar-list li{border-top-color:#FFFFFF}
@media (max-width:767px){#about .pillar::before{inset:-20px}}
#about .pillar::before,#about .pillar:hover::before{opacity:1!important;background:var(--g100)!important;mix-blend-mode:normal;filter:none;transform:none}

/* about: 24px between the head text and the cards; light flat tints matching the icon colors */
#about .pillars{margin-top:56px}
#about .pillar:nth-child(1)::before{background:#EDFCF2!important}
#about .pillar:nth-child(2)::before{background:#EFF8FF!important}
#about .pillar:nth-child(3)::before{background:#FFFAEB!important}
#about .pillar:nth-child(1) .pillar-list li{border-top-color:#AAF0C4}
#about .pillar:nth-child(2) .pillar-list li{border-top-color:#B2DDFF}
#about .pillar:nth-child(3) .pillar-list li{border-top-color:#FEDF89}
#about .pillar:hover .pillar-list li{border-top-color:#FFFFFF}
@media (max-width:1024px){#about .pillars{margin-top:56px}}
@media (max-width:767px){#about .pillars{margin-top:44px}}

/* about: card fills as in the approved mockup */
#about .pillar:nth-child(1)::before{background:#EAF3DE!important}
#about .pillar:nth-child(2)::before{background:#E6F1FB!important}
#about .pillar:nth-child(3)::before{background:#FAEEDA!important}
#about .pillar .pillar-list li{border-top-color:#FFFFFF}
#about .pillar:nth-child(1) .pillar-list li,#about .pillar:nth-child(2) .pillar-list li,#about .pillar:nth-child(3) .pillar-list li{border-top-color:#FFFFFF}

/* about: hover = radial spot in the direction color following the cursor (variant 2) */
#about .pillar:nth-child(1){--spot:#AAF0C4}
#about .pillar:nth-child(2){--spot:#B2DDFF}
#about .pillar:nth-child(3){--spot:#FEDF89}
#about .pillar::after{background:radial-gradient(260px circle at calc(var(--mx,50%) + 32px) calc(var(--my,50%) + 32px),var(--spot) 0%,rgba(255,255,255,0) 70%);opacity:0;transition:opacity .4s var(--ease-out-apple)}
#about .pillar:hover::after{opacity:1}
@media (hover:none){#about .pillar:hover::after{opacity:0}}

/* about: type scale 1.25 on an 8px grid (variant 2) */
#about .tcard.tcard-wide .lead{font-size:18px;line-height:28px}
#about .tcard.tcard-wide .about-sub{font-size:20px;line-height:28px;margin:24px 0 8px}
#about .pillar h3{font-size:32px;line-height:40px}
#about .pillar .pillar-list{margin-top:0}
#about .pillars{margin-top:64px}
@media (max-width:1024px){#about .pillars{margin-top:64px}}
@media (max-width:767px){
  #about .tcard.tcard-wide .lead{font-size:16px;line-height:24px}
  #about .tcard.tcard-wide .about-sub{font-size:18px;line-height:24px;margin:20px 0 8px}
  #about .pillar h3{font-size:28px;line-height:36px}
  #about .pillars{margin-top:52px}
}

/* about: no hover animation on the direction cards */
#about .pillar::after{display:none!important}
#about .pillar,#about .pillar:hover{transform:none!important;box-shadow:none!important;transition:none!important}
#about .pillar:hover .pillar-list li{border-top-color:#FFFFFF}
#about .pillar .ico,#about .pillar h3,#about .pillar .pillar-list li{transition:none!important}

/* about: text 16/24, card titles 28/36, list items 16/24 medium */
#about .tcard.tcard-wide .lead{font-size:16px;line-height:24px}
#about .pillar h3{font-size:28px;line-height:36px}
#about .pillar .pillar-list li{font-size:16px;line-height:24px;font-weight:400}

/* university: thesis above the gallery again; paragraphs 16/24 */
#university .uni-right{min-width:0}
#university .uni-right .uni-thesis{font-size:20px;line-height:28px;font-weight:500;color:var(--ink);margin:0 0 20px;padding:0;max-width:none}
#university .uni-right #universitySlider{margin-top:0}
#university .uni-text p.mission{font-size:16px;line-height:24px}
@media (max-width:1024px){#university .uni-right{margin-top:0}}

/* university: thesis under the heading, 20/28 medium */
#university .uni-text p.uni-thesis{font-size:20px;line-height:28px;font-weight:500;color:var(--ink);margin:24px 0 0;padding:0;max-width:none}
#university .uni-right .uni-thesis{display:none}
@media (max-width:767px){#university .uni-text p.uni-thesis{font-size:18px;line-height:26px}}

/* university: photo stretches to the text column height (variant 1) */
@media (min-width:1025px){
  #university .uni-body{align-items:stretch}
  #university .uni-right{display:flex;flex-direction:column;min-height:0}
  #university .uni-right #universitySlider{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;margin-top:0}
  #universitySlider .track{flex:1 1 auto;min-height:0;height:auto}
  #universitySlider .track .photo{flex:0 0 100%;aspect-ratio:auto;height:100%}
  #universitySlider .track .photo img{width:100%;height:100%;object-fit:cover}
  #universitySlider .dots{flex:none}
}
@media (min-width:1025px){#university .uni-right{align-self:stretch}#university .uni-text{align-self:start}}
#university .uni-text p.uni-thesis{font-size:18px;line-height:26px}
#university .uni-text .uni-h2 + p.uni-thesis{margin-top:36px}
@media (max-width:767px){#university .uni-text .uni-h2 + p.uni-thesis{margin-top:24px}}

/* university: mission spacing 18 above/below; 36px between text and gallery */
#university .uni-text p.mission{margin:18px 0 0}
#university .uni-text p.mission + p{margin-top:18px}
@media (min-width:1025px){
  #university .uni-body{grid-template-columns:520px minmax(0,1fr);gap:0 36px}
}

/* university: gallery as tall as the description under the heading, top on the subheading line */
@media (min-width:1025px){
  #university .uni-body{grid-template-columns:520px minmax(0,1fr);gap:0 36px;align-items:start}
  #university .uni-text{display:contents}
  #university .uni-text > *{grid-column:1}
  #university .uni-text > .uni-h2{grid-row:1}
  #university .uni-right{grid-column:2;grid-row:2 / span 4;align-self:stretch;margin-top:36px}
}
@media (min-width:1025px){
  #university .uni-right{min-height:0}
  #university .uni-right #universitySlider{flex:1 1 0px;min-height:0}
  #universitySlider .track{flex:1 1 0px;min-height:0}
}

/* university: 50/50 columns, photo 3:2 on the subheading line (variant 3) */
@media (min-width:1025px){
  #university .uni-body{grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
  #university .uni-right{align-self:start;display:block;margin-top:36px;min-height:0}
  #university .uni-right #universitySlider{display:block;flex:none;min-height:0;margin-top:0}
  #universitySlider .track{display:flex;flex:none;height:auto;min-height:0}
  #universitySlider .track .photo{flex:0 0 100%;aspect-ratio:3/2;height:auto}
  #universitySlider .dots{position:static;margin-top:16px}
}
@media (min-width:1025px){
  #university .uni-text{display:flex;flex-direction:column;max-width:none;grid-column:1;grid-row:1}
  #university .uni-right{grid-column:2;grid-row:1;margin-top:148px}
}

/* university: 12px between text blocks, 24px under the heading */
#university .uni-text > * + *{margin-top:12px}
#university .uni-text .uni-h2 + p.uni-thesis{margin-top:24px}
#university .uni-text p.mission{margin-top:12px}
#university .uni-text p.mission + p{margin-top:12px}
@media (min-width:1025px){#university .uni-right{margin-top:136px}}
#university .uni-text > p + p{margin-top:12px}

/* university: gallery as tall as the whole text incl. heading; dots inside, smaller, translucent */
@media (min-width:1025px){
  #university .uni-body{align-items:stretch}
  #university .uni-text{align-self:start}
  #university .uni-right{align-self:stretch;display:flex;flex-direction:column;margin-top:0;min-height:0}
  #university .uni-right #universitySlider{display:flex;flex-direction:column;flex:1 1 0px;min-height:0;position:relative;margin-top:0}
  #universitySlider .track{flex:1 1 0px;min-height:0;height:auto}
  #universitySlider .track .photo{flex:0 0 100%;aspect-ratio:auto;height:100%}
  #universitySlider .track .photo img{width:100%;height:100%;object-fit:cover}
  #universitySlider .nav{bottom:0}
}
#universitySlider .dots{position:absolute;left:0;right:0;bottom:16px;margin:0;z-index:3;gap:6px}
#universitySlider .dots button{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.55)}
#universitySlider .dots button.on{width:14px;background:rgba(255,255,255,.9)}
@media (max-width:1024px){#universitySlider{position:relative}#universitySlider .nav{bottom:0}}

/* gallery arrows half outside the photo (university and building) */
@media (min-width:1025px){
  #universitySlider,#buildingSlider,#university .uni-right,#university .uni-body,#building .container{overflow:visible}
  #universitySlider .nav .prev,#buildingSlider .nav .prev{left:-24px}
  #universitySlider .nav .next,#buildingSlider .nav .next{right:-24px}
}

/* building: description under the heading (36 above, 18 below), gallery styled like the university block */
@media (min-width:1025px){
  #building .container{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
  #building .about-top{display:contents}
  #building .about-top > h2{grid-column:1;grid-row:1;margin:0}
  #building .about-top > div,#building .about-top > p.lead{grid-column:1;grid-row:2;margin:36px 0 0;padding-top:0}
  #building .about-top .lead{margin:0;max-width:none}
  #building .specs{grid-column:1;grid-row:3;margin-top:18px}
  #building #buildingSlider{grid-column:2;grid-row:1 / span 3;align-self:stretch;margin-top:0;display:flex;flex-direction:column;min-height:0;position:relative}
  #buildingSlider .track{flex:1 1 0px;min-height:0;height:auto}
  #buildingSlider .track .photo{flex:0 0 100%;aspect-ratio:auto;height:100%}
  #buildingSlider .track .photo img{width:100%;height:100%;object-fit:cover}
  #buildingSlider .nav{bottom:0}
}
#buildingSlider .dots{position:absolute;left:0;right:0;bottom:16px;margin:0;z-index:3;gap:6px}
#buildingSlider .dots button{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.55)}
#buildingSlider .dots button.on{width:14px;background:rgba(255,255,255,.9)}
@media (max-width:1024px){#buildingSlider{position:relative}#buildingSlider .nav{bottom:0}}

/* no entrance animations for the reveal blocks; the header keeps its header-in entrance */
/* hero keeps its original entrance: hero-in clip-path, hero-bg-in zoom, word/line rise, p and buttons rise */
.reveal,.reveal-kids > *,.js .reveal,.js .reveal *:not(.nmu-cert,.nmu-cert *),.js .reveal-kids > *,.mission,.uni-thesis,.uni-text,.cert-thesis,.cert-list,.js .reveal .btn{opacity:1!important;transform:none!important;transition-property:color,background-color,border-color,box-shadow!important;transition-delay:0s!important}
.proj-main > .subsec.on{animation:none!important}

/* building: specs as one gray card with a 3x2 grid of cells divided by lines (variant 5) */
#building .specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:0;background:var(--g100);border-radius:var(--radius-card);corner-shape:round;overflow:hidden;margin-top:18px}
#building .specs .spec{grid-column:auto;background:transparent;border-radius:0;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;border-right:1px solid var(--g300);border-bottom:1px solid var(--g300)}
#building .specs .spec:nth-child(3n){border-right:0}
#building .specs .spec:nth-child(n+4){border-bottom:0}
#building .spec .spec-ico{display:none}
#building .spec .spec-text{gap:2px}
#building .spec b{font-size:28px;line-height:36px;white-space:nowrap}
#building .spec span{font-size:14px;line-height:20px}
@media (max-width:767px){
  #building .specs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}
  #building .specs .spec{padding:16px;border-right:1px solid var(--g300);border-bottom:1px solid var(--g300)}
  #building .specs .spec:nth-child(3n){border-right:1px solid var(--g300)}
  #building .specs .spec:nth-child(n+4){border-bottom:1px solid var(--g300)}
  #building .specs .spec:nth-child(2n){border-right:0}
  #building .specs .spec:nth-child(n+5){border-bottom:0}
  #building .spec b{font-size:22px;line-height:28px}
}
@media (max-width:400px){
  #building .specs{grid-template-columns:1fr}
  #building .specs .spec{border-right:0!important;border-bottom:1px solid var(--g300)!important}
  #building .specs .spec:last-child{border-bottom:0!important}
}
@media (max-width:400px){
  #building .specs{grid-template-columns:repeat(2,minmax(0,1fr))}
  #building .specs .spec{border-right:1px solid var(--g300)!important;border-bottom:1px solid var(--g300)!important}
  #building .specs .spec:nth-child(2n){border-right:0!important}
  #building .specs .spec:nth-child(n+5){border-bottom:0!important}
}

/* building: compact spec cards 3x2, icon above the number, padding 20, number 24 (variant 4) */
#building .specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;background:transparent;border-radius:0;overflow:visible;margin-top:18px}
#building .specs .spec{grid-column:auto;background:var(--g100);border-radius:var(--radius-card);corner-shape:round;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;border:0!important}
#building .spec .spec-ico{display:flex;width:24px;height:24px}
#building .spec .spec-ico svg,#building .spec .spec-ico .ico{width:24px;height:24px}
#building .spec .spec-text{gap:2px}
#building .spec b{font-size:24px;line-height:30px;white-space:nowrap}
#building .spec span{font-size:14px;line-height:20px}
@media (max-width:767px){
  #building .specs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
  #building .specs .spec{padding:16px;gap:10px}
  #building .spec b{font-size:22px;line-height:28px}
}
@media (max-width:400px){
  #building .specs{grid-template-columns:repeat(2,minmax(0,1fr))}
  #building .specs .spec{border:0!important}
}

/* projects: no tabs — Іс-шаралар, NM Academy and YouTube stacked as three gray cards */
#projects .proj-main .proj-list,#projects .proj-side .proj-list{display:none!important}
#projects .proj-main{background:transparent;padding:0;border-radius:0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;box-shadow:none}
#projects #events,#projects #academy,#projects #youtube{display:block!important;animation:none!important;opacity:1!important;background:var(--g100);border-radius:var(--radius-xl);corner-shape:round;padding:48px;margin:0;overflow:visible}
@media (max-width:767px){
  #projects .proj-main{gap:10px}
  #projects #events,#projects #academy,#projects #youtube{padding:24px;border-radius:20px}
}
#projects #events,#projects #academy,#projects #youtube{grid-area:auto!important;grid-row:auto!important;grid-column:auto!important;position:relative;height:auto;min-height:0;visibility:visible!important;pointer-events:auto!important;transform:none!important}

/* projects head: subheading 18/26 medium, paragraphs 16/24 regular */
#projects .proj-side .sub,#projects .proj-side .sub.sub-big{font-size:18px;line-height:26px;font-weight:500;color:var(--ink);margin:0 0 8px}
#projects .proj-side .lead{font-size:16px;line-height:24px;font-weight:400;margin:0}
#projects .proj-side .lead + .lead{margin-top:0}

/* events section without the gray wrapper; forum card itself gray */
#projects #events{background:transparent;padding:0;border-radius:0}
#projects #events .event-inner{background:var(--g100)}
@media (max-width:767px){#projects #events{padding:0}}

/* events: whole section in one gray card like NM Academy / YouTube; forum card white inside (example 5) */
#projects #events{background:var(--g100);padding:48px;border-radius:var(--radius-xl)}
#projects #events .event-inner{background:#FFFFFF}
@media (max-width:767px){#projects #events{padding:24px;border-radius:20px}}

/* events: forum gallery styled like the building block; type sizes per request */
#projects #events h2{font-size:20px;line-height:28px;font-weight:600}
#projects #events .event-head .sub,#projects #events .event-head .sub.sub-big{font-size:18px;line-height:26px;font-weight:500;color:var(--ink)}
#projects #events .event-body h3{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.01em;margin-bottom:12px}
#projects #events .event-meta{font-size:14px;line-height:20px;font-weight:400;letter-spacing:0;margin-bottom:12px}
@media (min-width:1025px){
  #projects #events .event-inner{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;align-items:stretch;overflow:visible}
  #projects #events .event-body{padding:0;min-width:0}
  #projects #events .event-slider{position:relative;display:flex;flex-direction:column;min-height:0;aspect-ratio:auto;width:auto;padding:0;margin:0;align-self:stretch}
  #projects #events .event-slider .track{position:static;flex:1 1 0px;min-height:0;height:auto;border-radius:var(--radius-card);overflow-x:auto}
  #projects #events .event-slider .track .photo{flex:0 0 100%;aspect-ratio:auto;height:100%}
  #projects #events .event-slider .track .photo img{width:100%;height:100%;object-fit:cover}
  #projects #events .event-slider .nav{bottom:0}
  #projects #events .event-slider .nav .prev{left:-24px}
  #projects #events .event-slider .nav .next{right:-24px}
}
#projects #events .event-slider .dots{position:absolute;left:0;right:0;bottom:16px;margin:0;z-index:3;gap:6px}
#projects #events .event-slider .dots button{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.55)}
#projects #events .event-slider .dots button.on{width:14px;background:rgba(255,255,255,.9)}
@media (max-width:767px){#projects #events .event-slider .dots{position:absolute;bottom:12px}}

/* projects: card titles 24/32 medium */
#projects #events h2,#projects #academy h2,#projects #youtube h2,#projects #events .event-body h3{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.01em}
@media (max-width:767px){#projects #events h2,#projects #academy h2,#projects #youtube h2,#projects #events .event-body h3{font-size:22px;line-height:28px}}

/* events: no gray wrapper; forum card gray as chosen earlier */
#projects #events{background:transparent;padding:0;border-radius:0}
#projects #events .event-inner{background:var(--g100)}
@media (max-width:767px){#projects #events{padding:0}}

/* events: text left, forum card right (photo on top inside the card) */
@media (min-width:1025px){
  #projects #events .event-card{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
  #projects #events .event-head{display:block;margin:0;min-width:0}
  #projects #events .event-head h2{margin:0 0 12px}
  #projects #events .event-head > div{padding-top:0}
  #projects #events .event-inner{display:flex;flex-direction:column;gap:20px;padding:24px;margin:0;min-width:0;align-self:start}
  #projects #events .event-slider{order:-1;display:block;flex:none;aspect-ratio:auto;width:auto;min-height:0;position:relative}
  #projects #events .event-slider .track{position:static;display:flex;flex:none;height:auto;min-height:0}
  #projects #events .event-slider .track .photo{flex:0 0 100%;aspect-ratio:16/9;height:auto}
  #projects #events .event-slider .nav .prev{left:12px}
  #projects #events .event-slider .nav .next{right:12px}
  #projects #events .event-slider .nav button{width:40px;height:40px}
  #projects #events .event-body{padding:0}
  #projects #events .event-body p{max-width:none}
  #projects #events .event-actions{margin-top:16px}
}
@media (min-width:1025px){
  #projects #events .event-head{grid-column:1;grid-row:1}
  #projects #events .event-inner{grid-column:2;grid-row:1}
}

/* events: all text left (section head + forum details), gallery right on the full column height, no card (variant 3) */
@media (min-width:1025px){
  #projects #events .event-card{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
  #projects #events .event-head{grid-column:1;grid-row:1;display:block;margin:0;min-width:0}
  #projects #events .event-inner{display:contents}
  #projects #events .event-body{grid-column:1;grid-row:2;padding:0;margin-top:24px;min-width:0}
  #projects #events .event-slider{grid-column:2;grid-row:1 / span 2;order:0;align-self:stretch;display:flex;flex-direction:column;min-height:0;position:relative;width:auto;aspect-ratio:auto;padding:0;margin:0}
  #projects #events .event-slider .track{position:static;display:flex;flex:1 1 0px;min-height:0;height:auto;border-radius:var(--radius-card)}
  #projects #events .event-slider .track .photo{flex:0 0 100%;aspect-ratio:auto;height:100%}
  #projects #events .event-slider .track .photo img{width:100%;height:100%;object-fit:cover}
  #projects #events .event-slider .nav{bottom:0}
  #projects #events .event-slider .nav button{width:48px;height:48px}
  #projects #events .event-slider .nav .prev{left:-24px}
  #projects #events .event-slider .nav .next{right:-24px}
  #projects #events .event-body h3{margin-bottom:12px}
  #projects #events .event-body p{max-width:none}
}

/* forum title on one line, gallery button removed */
#projects #events .event-body h3{max-width:none!important;display:block!important}

/* events: gray card like NM Academy / YouTube, text left + gallery right inside it */
#projects #events{background:var(--g100);border-radius:var(--radius-xl);corner-shape:round;padding:48px}
@media (max-width:767px){#projects #events{padding:24px;border-radius:20px}}
@media (max-width:1024px){#projects #events .event-inner{background:transparent;padding:0;border-radius:0}}

/* academy & youtube: 50/50 columns like the events card */
@media (min-width:1025px){
  #projects #academy .panel-grid,#projects #youtube .panel-grid{grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  #projects #academy .pcard,#projects #youtube .pcard{max-width:none;justify-self:stretch}
}

/* events: forum block (date/place, title, text) in a white inner card on the gray card (text layout variant 4) */
#projects #events .event-body{background:#FFFFFF;border-radius:20px;padding:24px}
#projects #events .event-body > :last-child{margin-bottom:0}
@media (min-width:1025px){#projects #events .event-body{margin-top:24px}}
@media (max-width:1024px){#projects #events .event-body{margin:20px 0;padding:20px;border-radius:16px}}
@media (max-width:767px){#projects #events .event-body{padding:16px}}

/* events mobile: even 24px around the white forum card */
@media (max-width:1024px){#projects #events .event-body{margin:0}#projects #events .event-inner{gap:24px}}

/* forum title 18/26 medium */
#projects #events .event-body h3{font-size:18px!important;line-height:26px!important;font-weight:600!important;letter-spacing:0!important}

/* academy subtitle 18/26 medium */
#projects #academy .academy-head .sub{font-size:18px!important;line-height:26px!important;font-weight:500!important;color:var(--ink)}

/* academy: course card left, text right vertically centred, button right after the text */
#projects #academy .academy-cta{margin-top:24px;padding-top:0}
@media (min-width:1025px){
  #projects #academy .panel-grid{align-items:center}
  #projects #academy .pcard{grid-column:1;grid-row:1}
  #projects #academy .academy-head{grid-column:2;grid-row:1;align-self:center;max-width:none}
}

/* academy mobile: single column, no forced grid columns (old #academy .pcard{grid-column:2} created a 0-width text column) */
@media (max-width:1024px){
  #projects #academy .pcard,#projects #academy .academy-head{grid-column:auto;grid-row:auto;align-self:auto}
}

/* academy: no gray card; course card gets a hairline so its white footer stays visible on the white page */
#projects #academy{background:transparent!important;padding:0!important;border-radius:0!important;margin:34px 0!important}
#projects #academy .pcard{border:1px solid var(--g200)}
@media (max-width:767px){#projects #academy{margin:26px 0!important}}

/* mobile: academy / youtube buttons full width like the other blocks */
@media (max-width:767px){
  #projects .academy-head{align-items:stretch}
  #projects .academy-cta,#projects .yt-foot,#projects .yt-foot p{width:100%}
}

/* youtube: description 16/24, row titles 16/24 semibold */
#projects #youtube .academy-head .lead,#projects #youtube .yt-row span,#projects #youtube .yt-foot .lead{font-size:16px!important;line-height:24px!important}
#projects #youtube .yt-row strong{font-size:16px!important;line-height:24px!important;font-weight:600!important}

/* youtube: text + button left, video right; three directions as white cards in a row below (layout variant 1) */
#projects #youtube .yt-rows{display:grid;gap:14px;margin:0;border:0;width:auto}
#projects #youtube .yt-row{display:flex;flex-direction:column;gap:0;padding:24px;background:#FFFFFF;border-radius:20px;border:0}
#projects #youtube .yt-row .yt-ico{display:block;flex:none;width:24px;height:24px;color:var(--accent);margin:0 0 12px}
#projects #youtube .yt-row strong{margin-bottom:4px}
#projects #youtube .yt-foot{margin-top:24px}
#projects #youtube .yt-foot p{margin:0}
@media (min-width:1025px){
  #projects #youtube .panel-grid{grid-template-columns:1fr 1fr;gap:0 48px;align-items:center}
  #projects #youtube .academy-head{grid-column:1;grid-row:1;align-self:center;max-width:none}
  #projects #youtube .pcard{grid-column:2;grid-row:1}
  #projects #youtube .yt-rows{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px}
}
@media (max-width:1024px){
  #projects #youtube .panel-grid{display:grid;grid-template-columns:1fr;gap:0}
  #projects #youtube .academy-head{display:contents}
  #projects #youtube .yt-rows{order:1;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}
  #projects #youtube .pcard{order:2;margin-top:24px}
  #projects #youtube .yt-foot{order:3;margin-top:24px;width:100%}
}
@media (max-width:767px){
  #projects #youtube .yt-rows{grid-template-columns:1fr}
  #projects #youtube .yt-row{padding:20px;border-radius:16px}
}

/* youtube: directions as white cards with icons inside the left column, video right centred (layout variant 3) */
#projects #youtube .yt-row{flex-direction:row;align-items:flex-start;gap:14px;padding:16px 20px;border-radius:16px}
#projects #youtube .yt-row .yt-ico{margin:2px 0 0}
#projects #youtube .yt-row > div{min-width:0}
@media (min-width:1025px){
  #projects #youtube .academy-head{display:flex;flex-direction:column;align-items:flex-start;grid-column:1;grid-row:1;align-self:center}
  #projects #youtube .pcard{grid-column:2;grid-row:1;align-self:center}
  #projects #youtube .yt-rows{grid-column:auto;grid-row:auto;grid-template-columns:1fr;gap:14px;margin:24px 0 0;width:100%}
  #projects #youtube .yt-foot{margin-top:24px}
}
@media (max-width:767px){#projects #youtube .yt-row{padding:16px}}

/* youtube direction cards: compact, 14px */
#projects #youtube .yt-row{padding:12px 16px;gap:12px;border-radius:14px}
#projects #youtube .yt-row .yt-ico{width:20px;height:20px;margin:0}
#projects #youtube .yt-row strong{font-size:14px!important;line-height:20px!important;margin-bottom:2px}
#projects #youtube .yt-row span{font-size:14px!important;line-height:20px!important}
#projects #youtube .yt-rows{gap:10px}
@media (max-width:767px){#projects #youtube .yt-row{padding:12px 14px}}

/* youtube directions: plain list with icons and hairlines, no white cards (style variant 1) */
#projects #youtube .yt-rows{gap:0;margin-top:24px}
#projects #youtube .yt-row{background:transparent;border-radius:0;padding:12px 0;border-top:1px solid var(--g300);border-bottom:0}
#projects #youtube .yt-row:last-child{border-bottom:1px solid var(--g300)}
@media (max-width:767px){#projects #youtube .yt-row{padding:12px 0}}

/* youtube directions: no icons */
#projects #youtube .yt-row .yt-ico{display:none!important}
#projects #youtube .yt-row{gap:0}

/* reports: low cards, icon left with year + caption stacked beside it (compact variant 2) */
#reports .report{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:0;align-items:center;min-height:0;padding:14px 16px;border-radius:20px}
#reports .report svg{width:24px;height:24px;grid-column:1;grid-row:1 / span 2}
#reports .report-year{grid-column:2;grid-row:1;font-size:20px;line-height:24px;font-weight:500;letter-spacing:-.01em}
#reports .report-sub{grid-column:2;grid-row:2;font-size:13px;line-height:18px;margin:0}
#reports .report-title{grid-column:2;grid-row:1 / span 2;font-size:15px;line-height:20px;font-weight:600}
#reports .reports{margin-top:48px;gap:14px}
@media (max-width:1024px){#reports .reports{margin-top:32px}}
@media (max-width:767px){#reports .reports{gap:10px}#reports .report{padding:12px 14px;border-radius:16px}}

/* reports: audit card not highlighted, no document icons, arrow appears on hover */
#reports .report{grid-template-columns:minmax(0,1fr);position:relative;padding-right:44px}
#reports .report svg{display:none}
#reports .report-year,#reports .report-title{grid-column:1}
#reports .report-sub{grid-column:1}
#reports .report.is-audit{background:var(--g100)}
#reports .report.is-audit:hover{background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--g300)}
#reports .report::after{content:"";position:absolute;right:16px;top:50%;width:20px;height:20px;margin-top:-10px;background:var(--accent);-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 7l-10 10"/><path d="M8 7h9v9"/></svg>') center / 20px 20px no-repeat;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 7l-10 10"/><path d="M8 7h9v9"/></svg>') center / 20px 20px no-repeat;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease}
#reports .report:hover::after,#reports .report:focus-visible::after{opacity:1;transform:none}
@media (hover:none){#reports .report::after{opacity:1;transform:none}}

/* certificate lead 18/26 medium */
#certificate .cert-thesis{font-size:18px!important;line-height:26px!important;font-weight:500!important;letter-spacing:0!important}

/* certificate: customer 3D animation restored (float, tilt, flip, sweep) */
.js .reveal .nmu-cert,.js .reveal .nmu-cert *{opacity:1}

/* socials: low cards, icon left with name + handle beside (compact variant 1) */
#news .soc,.socials .soc{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-height:0;padding:14px 16px;border-radius:20px}
.socials .soc .sico{width:24px;height:24px;flex:none}
.socials .soc-body{gap:0;min-width:0}
.socials .soc-name{font-size:16px;line-height:24px;font-weight:600}
.socials .soc-sub{font-size:13px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.socials{margin-top:48px;gap:14px}
@media (max-width:1024px){.socials{margin-top:32px}}
@media (max-width:767px){.socials{gap:10px}.socials .soc{padding:12px 14px;border-radius:16px}}

/* socials: hover arrow like the reports cards */
.socials .soc{position:relative;padding-right:44px}
.socials .soc::after{content:"";position:absolute;right:16px;top:50%;width:20px;height:20px;margin-top:-10px;background:var(--accent);-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 7l-10 10"/><path d="M8 7h9v9"/></svg>') center / 20px 20px no-repeat;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 7l-10 10"/><path d="M8 7h9v9"/></svg>') center / 20px 20px no-repeat;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease}
.socials .soc:hover::after,.socials .soc:focus-visible::after{opacity:1;transform:none}
@media (hover:none){.socials .soc::after{opacity:1;transform:none}}

/* mobile: no hover arrows in reports / socials, so handles fit in the narrow cards */
@media (max-width:767px){
  #reports .report::after,.socials .soc::after{display:none}
  #reports .report{padding-right:14px}
  .socials .soc{padding-right:14px}
}

/* socials: id-scoped padding so the arrow rule wins over #news .soc; one column on narrow phones so handles fit */
#news .socials .soc{padding-right:44px}
@media (max-width:767px){#news .socials .soc{padding-right:14px}}
@media (max-width:480px){#news .socials{grid-template-columns:1fr}}

/* socials: green buttons without handles */
#news .socials .soc-sub{display:none}
#news .socials .soc{background:var(--accent);color:#FFFFFF;border-radius:999px;padding:16px 20px;box-shadow:none}
#news .socials .soc:hover{background:#087443;box-shadow:none}
#news .socials .soc .sico{color:#FFFFFF}
#news .socials .soc-name{color:#FFFFFF;font-size:16px;line-height:24px;font-weight:600}
#news .socials .soc::after{background:#FFFFFF;right:20px}
#news .socials .soc:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (max-width:767px){#news .socials .soc{padding:14px 18px}}

/* partners: 50/50 head (h2 left, text right) + two gray cards below: contacts and requisites (layout variant 1) */
#partners .partner2{display:contents}
#partners .partner-h2{margin:0}
#partners .partner-text{padding:0}
#partners .partner-text .cert-thesis{margin:0;font-size:18px;line-height:26px;font-weight:500}
#partners .partner-text .sub{margin:24px 0 10px}
#partners .ccard.partner-card{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:14px;background:transparent;padding:0;margin-top:48px;border-radius:0;align-content:start;align-items:start}
#partners .pc-col{background:var(--g100);border-radius:28px;padding:32px;min-width:0}
#partners .pc-req{border:0;padding:32px;margin:0}
@media (min-width:1025px){
  #partners .container{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
  #partners .partner-h2{grid-column:1;grid-row:1}
  #partners .partner-text{grid-column:2;grid-row:1}
  #partners .ccard.partner-card{grid-row:2}
}
@media (max-width:1024px){
  #partners .container{display:grid;grid-template-columns:1fr;gap:0}
  #partners .partner-text{margin-top:24px}
  #partners .ccard.partner-card{margin-top:32px}
}
@media (max-width:767px){
  #partners .ccard.partner-card{grid-template-columns:1fr;gap:10px}
  #partners .pc-col,#partners .pc-req{padding:20px;border-radius:20px}
}

/* partners text: lead 16/24 medium, "Серіктестік форматтары" 16/24 medium, list 16/24 regular */
#partners .partner-text .cert-thesis{font-size:16px!important;line-height:24px!important;font-weight:500!important;letter-spacing:0!important}
#partners .partner-text .sub{font-size:16px!important;line-height:24px!important;font-weight:500!important;color:var(--ink)!important}
#partners .partner-text .cert-list li{font-size:16px;line-height:24px;font-weight:400}

/* partners: no copy buttons in requisites */
#partners .req-row .copy{display:none!important}
#partners .req-row{grid-template-columns:auto 1fr}

/* partners: text left in one column, one gray card right with contacts then requisites (layout variant 2) */
#partners .ccard.partner-card{display:flex;flex-direction:column;gap:0;background:var(--g100);border-radius:28px;padding:32px;margin-top:0;align-items:stretch}
#partners .pc-col{background:transparent;border-radius:0;padding:0}
#partners .pc-req{padding:0;margin:24px 0 0;border:0}
#partners .req-row{grid-template-columns:44px 1fr}
#partners .partner-h2{margin:0 0 24px}
@media (min-width:1025px){
  #partners .container{grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:0 48px;align-items:start}
  #partners .partner-h2{grid-column:1;grid-row:1}
  #partners .partner-text{grid-column:1;grid-row:2;margin:0}
  #partners .ccard.partner-card{grid-column:2;grid-row:1 / span 2;align-self:start}
}
@media (max-width:1024px){
  #partners .partner-text{margin-top:0}
  #partners .ccard.partner-card{margin-top:32px;grid-column:auto}
}
@media (max-width:767px){
  #partners .ccard.partner-card{padding:20px;border-radius:20px}
  #partners .pc-col,#partners .pc-req{padding:0;border-radius:0}
  #partners .pc-req{margin-top:20px}
}

/* partners: requisites as white tiles in two columns, label above value (card variant 3) */
#partners .req-head{margin-bottom:12px}
#partners .req-table{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}
#partners .req-row{display:flex;flex-direction:column;gap:2px;align-items:flex-start;background:#FFFFFF;border-radius:14px;padding:12px 16px;border:0;min-width:0}
#partners .req-row:first-child,#partners .req-row:last-child{grid-column:1 / -1}
#partners .req-row dt{font-size:13px;line-height:18px;color:var(--g600);font-weight:400;margin:0}
#partners .req-row dd{font-size:16px;line-height:24px;font-weight:500;color:var(--ink);margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media (max-width:767px){#partners .req-table{gap:8px}#partners .req-row{padding:10px 14px;border-radius:12px}}

/* partners: contacts as white pill buttons, requisites back to a hairline list (card variant 2) */
#partners .crows{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
#partners .crows .crow{display:inline-flex;align-items:center;gap:8px;background:#FFFFFF;border-radius:999px;padding:10px 16px;border:0;font-size:14px;line-height:20px;font-weight:500;color:var(--ink);text-decoration:none;min-width:0}
#partners .crows .crow:hover{box-shadow:inset 0 0 0 1px var(--g300)}
#partners .crows .crow .cico{width:18px;height:18px;flex:none;color:var(--accent);margin:0}
#partners .pc-req{margin-top:28px}
#partners .req-head{margin-bottom:4px}
#partners .req-table{display:flex;flex-direction:column;gap:0;margin:0}
#partners .req-row{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:10px 0;background:transparent;border-radius:0;border-top:1px solid var(--g300)}
#partners .req-row:first-child{border-top:0}
#partners .req-row dt{font-size:16px;line-height:24px;color:var(--g600);font-weight:400;margin:0}
#partners .req-row dd{font-size:16px;line-height:24px;font-weight:500;color:var(--ink);margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media (max-width:767px){#partners .req-row{grid-template-columns:52px 1fr;padding:8px 0;border-radius:0}#partners .crows .crow{padding:9px 14px}}

/* partners: contact pills inline in a row, wrapping */
#partners .crows{flex-direction:row;align-items:flex-start}
#partners .crows .crow{flex:0 1 auto;width:auto}

/* partners: requisites hidden, WhatsApp button under the contact pills */
#partners .pc-req{display:none}
#partners .partner-cta{margin:24px 0 0}
#partners .ccard.partner-card{align-self:start}

/* partners: contacts as hairline rows, full-width WhatsApp button, card centred against the text (layout variant 4) */
#partners .crows{display:flex;flex-direction:column;gap:0;margin-top:4px;align-items:stretch}
#partners .crows .crow{display:flex;align-items:flex-start;gap:12px;width:100%;background:transparent;border-radius:0;padding:12px 0;border:0;border-top:1px solid var(--g300);font-size:16px;line-height:24px;font-weight:500;color:var(--ink);box-shadow:none}
#partners .crows .crow:first-of-type{border-top:0}
#partners .crows .crow:hover{color:var(--accent);box-shadow:none}
#partners .crows .crow .cico{width:20px;height:20px;margin-top:2px;color:var(--accent)}
#partners .partner-cta{margin-top:24px}
#partners .partner-cta .btn{display:flex;width:100%;justify-content:center}
@media (min-width:1025px){#partners .ccard.partner-card{align-self:center}}
@media (max-width:767px){#partners .crows .crow{padding:10px 0}}

/* partners: green call-to-action card with translucent contact pills and a white button (layout variant 3) */
#partners .ccard.partner-card{background:var(--accent);color:#FFFFFF}
#partners .pc-col .sub{color:#D3F8DF}
#partners .crows{flex-direction:row;flex-wrap:wrap;gap:8px;align-items:flex-start;margin-top:4px}
#partners .crows .crow{width:auto;flex:0 1 auto;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border-radius:999px;padding:10px 16px;border:0;font-size:14px;line-height:20px;font-weight:500;color:#FFFFFF;box-shadow:none}
#partners .crows .crow:first-of-type{border-top:0}
#partners .crows .crow:hover{background:rgba(255,255,255,.24);color:#FFFFFF;box-shadow:none}
#partners .crows .crow .cico{color:#FFFFFF;width:18px;height:18px;margin:0}
#partners .partner-cta{margin-top:24px}
#partners .partner-cta .btn{display:inline-flex;width:auto;background:#FFFFFF!important;color:#087443!important;box-shadow:none}
#partners .partner-cta .btn:hover{background:#EDFCF2!important;color:#087443!important}
#partners .partner-cta .btn:focus-visible{outline:2px solid #FFFFFF;outline-offset:3px}
@media (max-width:767px){#partners .partner-cta .btn{display:flex;width:100%}#partners .crows .crow{padding:9px 14px}}

/* partners: WhatsApp icon inside the button */
#partners .partner-cta .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px}
#partners .partner-cta .btn .btn-ico{width:20px;height:20px;flex:none;color:currentColor}
@media (max-width:767px){#partners .partner-cta .btn{display:flex}}

/* partners: no "Байланыс" label in the card */
#partners .pc-col > .sub{display:none}
#partners .crows{margin-top:0}

/* partners: contact pills 20px */
#partners .crows .crow{font-size:20px;line-height:28px;padding:12px 20px;gap:10px}
#partners .crows .crow .cico{width:22px;height:22px}
@media (max-width:767px){#partners .crows .crow{font-size:18px;line-height:26px;padding:10px 16px}}

/* partners: card title "Серіктес болу", contacts as white text lines with translucent hairlines (improvement 3 + title) */
#partners .pc-col > .sub.card-title{display:block;font-size:28px;line-height:36px;font-weight:600;letter-spacing:-.01em;color:#FFFFFF;margin:0 0 20px}
#partners .crows{flex-direction:column;gap:0;align-items:stretch;margin:0}
#partners .crows .crow{display:flex;width:100%;flex:none;align-items:flex-start;gap:12px;background:transparent;border-radius:0;padding:12px 0;border:0;border-top:1px solid rgba(255,255,255,.28);font-size:20px;line-height:28px;font-weight:500;color:#FFFFFF}
#partners .crows .crow:first-of-type{border-top:0;padding-top:0}
#partners .crows .crow:last-of-type{padding-bottom:0}
#partners .crows .crow:hover{background:transparent;color:#D3F8DF}
#partners .crows .crow .cico{width:22px;height:22px;margin-top:3px;color:#FFFFFF}
#partners .partner-cta{margin-top:28px}
@media (max-width:767px){
  #partners .pc-col > .sub.card-title{font-size:24px;line-height:32px;margin-bottom:16px}
  #partners .crows .crow{font-size:18px;line-height:26px;padding:10px 0}
  #partners .crows .crow:first-of-type{padding-top:0}
  #partners .crows .crow:last-of-type{padding-bottom:0}
  #partners .partner-cta{margin-top:24px}
}

/* hero on phones: full viewport height with the same outer gutters as desktop, copy pinned to the bottom, grows if the text is taller */
@media (max-width:767px){
  .hero{height:auto;min-height:calc(100vh - var(--hero-top) - var(--gutter));min-height:calc(100dvh - var(--hero-top) - var(--gutter));margin:var(--hero-top) var(--gutter) 0;display:flex;flex-direction:column}
  .hero .container{flex:1 1 auto;height:auto;display:flex;flex-direction:column}
  .hero-copy{margin-top:auto;padding:48px 0 28px}
}

/* ===== mobile / tablet pass 2 ===== */
/* tap targets: footer links and legal links at least 44px tall on touch widths */
@media (max-width:1024px){
  footer .fcols > div > a,footer .flegal a{display:inline-flex;align-items:center;min-height:44px;padding:0}
  footer .fcontact .fbig{display:inline-flex;align-items:center;min-height:44px}
  #partners .crows .crow{min-height:44px;align-items:center}
  #partners .crows .crow .cico{margin-top:0}
}
/* academy on phones and tablets: text -> course card -> button, like the YouTube card */
@media (max-width:1024px){
  #projects #academy .panel-grid{display:grid;grid-template-columns:1fr;gap:0;height:auto}
  #projects #academy .academy-head{display:contents}
  #projects #academy .pcard{order:1;margin-top:24px;grid-column:auto;grid-row:auto}
  #projects #academy .academy-cta{order:2;margin:24px 0 0;width:100%}
}
/* phones: even 64px rhythm between blocks (32 + 32) */
@media (max-width:767px){
  #projects{padding-bottom:32px}
  #partners{padding-top:32px;padding-bottom:32px}
  #partners .crows .crow{padding:10px 0}
  #partners .crows .crow:first-of-type{padding-top:0}
}

/* about pillars: compact cards (inset 24, icon 24, tighter gaps) */
#about .pillar::before{inset:-24px!important}
#about .pillars{margin:56px 24px 0;gap:62px}
#about .pillar .ico{width:24px;height:24px;margin:0}
#about .pillar .ico svg{width:24px;height:24px}
#about .pillar h3{margin:12px 0 0}
#about .pillar .pillar-list{margin-top:8px}
#about .pillar .pillar-list li{padding:8px 0}
@media (max-width:1024px){#about .pillars{margin:48px 24px 0;gap:62px}}
@media (max-width:767px){#about .pillar::before{inset:-20px!important}#about .pillars{margin:44px 20px 0;gap:54px}}

/* about pillars: force the compact inner gaps */
#about .pillar .ico{margin:0!important;padding:0!important}
#about .pillar h3{margin:12px 0 0!important}
#about .pillar .pillar-list{margin:8px 0 0!important}
#about .pillar .pillar-list li{padding:8px 0!important}
#about .pillar .pillar-list li:last-child{padding-bottom:0!important}

/* about pillars: no flex gap inside the card, spacing comes from margins only */
#about .pillar{gap:0!important;row-gap:0!important}

/* about pillars: icon and title on one row, list below (layout variant 2) */
#about .pillar{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;align-content:start}
#about .pillar .ico{grid-column:1;grid-row:1}
#about .pillar h3{grid-column:2;grid-row:1;margin:0!important}
#about .pillar .pillar-list{grid-column:1 / -1;grid-row:2;margin:12px 0 0!important}

/* about pillars: 12px between icon and title (earlier gap:0!important won) */
#about .pillar{column-gap:12px!important}


/* mobile menu: full width, bigger items with page gutters and hairline dividers */
@media (max-width:1240px){
  .nm-header .nm-panel{padding:8px var(--gutter) 24px}
  .nm-header .nm-panel .nm-nav{gap:0}
  .nm-header .nm-panel .nm-nav li + li{border-top:1px solid var(--g200)}
  .nm-header .nm-panel .nm-nav a{padding:18px 0;font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.01em;border-radius:0}
  .nm-header .nm-panel .nm-nav a:hover,.nm-header .nm-panel .nm-nav a:focus-visible{background:transparent;color:var(--accent)}
  .nm-header .nm-panel .nm-lang{margin:28px 0 0;gap:10px}
  .nm-header .nm-panel .nm-lang a{padding:15px 10px;font-size:17px;border-radius:12px}
}
@media (max-width:1240px) and (max-height:640px){
  .nm-header .nm-panel .nm-nav a{padding:13px 0;font-size:20px;line-height:28px}
  .nm-header .nm-panel .nm-lang{margin-top:20px}
}

/* slider arrows: restore vertical centring (the animation reset had killed translateY) */
.slider .nav button{transform:translateY(-50%)!important}
/* mobile galleries: square photos */
@media (max-width:767px){
  #universitySlider .track .photo,#buildingSlider .track .photo,#projects #events .event-slider .track .photo{aspect-ratio:1/1;height:auto}
}

/* slider arrows: beat the reveal transform reset (higher specificity) */
.slider .nav button.prev,.slider .nav button.next{transform:translateY(-50%)!important}

/* mobile: forum gallery behaves like the other sliders (full-width slide, no peek) */
@media (max-width:767px){
  #projects #events .event-slider .track .photo{flex:0 0 100%!important}
}

/* course and youtube cards: no border lines, soft shadow instead */
#projects #academy .pcard,#projects #youtube .pcard{border:0!important;box-shadow:0 18px 44px rgba(24,29,39,.06),0 6px 16px rgba(24,29,39,.035),0 2px 5px rgba(24,29,39,.02)}
#projects #academy .pcard:hover,#projects #youtube .pcard:hover{box-shadow:0 24px 56px rgba(24,29,39,.08),0 8px 20px rgba(24,29,39,.045),0 2px 6px rgba(24,29,39,.025)}
#projects #youtube .pcard .pcard-hd{border-bottom:0}

/* block rhythm on desktop and tablet: 144 between sections */
@media (min-width:768px){
  .section{padding:72px 0}
  #about{padding-top:144px}
  #certificate{margin-top:24px;margin-bottom:24px}
  .footer{margin-top:72px}
}

/* 144 rhythm: beat the per-section padding overrides */
@media (min-width:768px){
  #projects{padding-bottom:72px}
  #partners{padding:72px 0}
}

/* ===== scroll reveal (Apple-style): fade + 24px rise, 700ms, cubic-bezier(.16,1,.3,1), once, stagger 80ms ===== */
/* :not(#_) twice lifts specificity above id-scoped !important resets like #about .pillar */
html.sr-on:not(#_):not(#_) .sr{will-change:opacity,transform}
html.sr-on:not(#_):not(#_) .sr:not(.sr-in){opacity:0!important;transform:translateY(24px)!important;transition:none!important}
html.sr-on:not(#_):not(#_) .sr.sr-in{opacity:1!important;transform:none!important;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)!important;transition-delay:var(--sr-delay,0s)!important}
html.sr-on:not(#_):not(#_) .sr.sr-block:not(.sr-in){transform:translateY(32px)!important}
html.sr-on:not(#_):not(#_) .sr.sr-block.sr-in{transition-duration:.9s,.9s!important}
@media (prefers-reduced-motion:reduce){html.sr-on:not(#_):not(#_) .sr{opacity:1!important;transform:none!important;transition:none!important;will-change:auto}}

/* buttons: lighter shade on hover instead of darker */
.btn-primary:hover,.btn-primary:focus-visible{background:#16B364!important;color:#FFFFFF}
.btn-glass:hover,.btn-glass:focus-visible{background:rgba(255,255,255,.32)!important}
#news .socials .soc:hover,#news .socials .soc:focus-visible{background:#16B364;box-shadow:none}
#partners .partner-cta .btn:hover,#partners .partner-cta .btn:focus-visible{background:#EDFCF2!important;color:#087443!important}

/* mobile menu: items and language buttons 18px */
@media (max-width:1240px){
  .nm-header .nm-panel .nm-nav a{font-size:18px;line-height:26px;padding:15px 0}
  .nm-header .nm-panel .nm-lang a{font-size:18px;line-height:26px;padding:13px 10px}
}
@media (max-width:1240px) and (max-height:640px){
  .nm-header .nm-panel .nm-nav a{padding:12px 0}
  .nm-header .nm-panel .nm-lang a{padding:11px 10px}
}

/* about pillars on phones: tighter card */
@media (max-width:767px){
  #about .pillar::before{inset:-16px!important}
  #about .pillars{margin:40px 16px 0;gap:44px}
  #about .pillar .ico{width:20px;height:20px}
  #about .pillar .ico svg{width:20px;height:20px}
  #about .pillar{column-gap:10px!important}
  #about .pillar h3{font-size:22px;line-height:28px}
  #about .pillar .pillar-list{margin-top:8px!important}
  #about .pillar .pillar-list li{font-size:15px;line-height:22px;padding:6px 0!important}
  #about .pillar .pillar-list li:last-child{padding-bottom:0!important}
}

/* phone menu: 2px between items, language buttons 16px */
@media (max-width:767px){
  .nm-header .nm-panel .nm-nav{gap:2px}
  .nm-header .nm-panel .nm-nav a{padding:10px 0}
  .nm-header .nm-panel .nm-lang a{font-size:16px;line-height:24px;padding:12px 10px}
  .nm-header .nm-panel .nm-lang{margin-top:20px}
}

/* phone menu: roomier rows, 44px tap height */
@media (max-width:767px){
  .nm-header .nm-panel{padding-top:8px}
  .nm-header .nm-panel .nm-nav a{padding:9px 0;min-height:44px}
  .nm-header .nm-panel .nm-nav{gap:2px}
}

/* phone: header flush to the edges, square corners; the open menu is a flush full-width sheet */
@media (max-width:767px){
  :root{--header-inset:0px;--hero-top:68px}
  .nm-header:not(#_){top:0;left:0;right:0;border-radius:0}
  .nm-header:not(#_) .nm-panel{top:68px;left:0;right:0;bottom:0}
}

/* phone: logo 40px tall */
@media (max-width:767px){
  .nm-header .nm-logo{height:40px}
  .nm-header .nm-logo img{height:40px}
}

/* phone: more room above the hero text inside the picture */
@media (max-width:767px){
  .hero .hero-copy{padding-top:80px}
}

/* phone: hero fills the viewport (minus header and bottom gutter); smaller title */
@media (max-width:767px){
  .hero:not(#_){height:auto;min-height:calc(100vh - var(--hero-top) - var(--gutter));min-height:calc(100dvh - var(--hero-top) - var(--gutter))}
  .hero .hero-copy h1{font-size:30px;line-height:38px}
}

/* phone: readable hero copy - denser bottom shade plus a text-anchored darkening band */
@media (max-width:767px){
  .hero .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,0) 18%,rgba(0,0,0,.42) 45%,rgba(0,0,0,.8) 70%,rgba(4,8,6,.95) 100%)}
  .hero .hero-copy{position:relative}
  .hero .hero-copy::before{content:"";position:absolute;left:-50vw;right:-50vw;top:-40px;bottom:-200px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.42) 110px,rgba(0,0,0,.66) 210px,rgba(0,0,0,.72) 100%)}
}

/* desktop: hero flush to the top, full-bleed, no radius; the header sits over the picture and turns white on scroll */
@media (min-width:1241px){
  .hero:not(#_){--hero-radius:0;margin:0;height:100vh;height:100dvh;min-height:640px;border-radius:0;corner-shape:round}
  .nm-header:not(#_){background:transparent;box-shadow:none}
  .nm-header:not(#_).is-scrolled{background:#FFFFFF;box-shadow:0 2px 12px rgba(0,0,0,.06)}
}

/* desktop, header over the hero (not scrolled): white logo, white menu items, dark pill on hover */
@media (min-width:1241px){
  .nm-header .nm-logo img{transition:filter .28s var(--e)}
  .nm-header:not(#_):not(.is-scrolled) .nm-logo img{filter:brightness(0) invert(1)}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a{color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a:hover,.nm-header:not(#_):not(.is-scrolled) .nm-nav a:focus-visible{background:#181D27;color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active{background:rgba(255,255,255,.18);color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active:hover{background:#181D27;color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-ind i{background:#181D27}
}

/* desktop: light dark gradient along the top edge of the hero, under the transparent header */
@media (min-width:1241px){
  .hero .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.18) 110px,rgba(0,0,0,0) 220px),linear-gradient(180deg,rgba(0,0,0,0) 28%,rgba(0,0,0,.45) 52%,rgba(0,0,0,.78) 74%,rgba(4,8,6,.95) 100%)}
}

/* desktop: hero inset by 10px on all sides; the transparent header sits inside the picture and goes edge-to-edge once white */
@media (min-width:1241px){
  .hero:not(#_){margin:10px;height:calc(100vh - 20px);height:calc(100dvh - 20px)}
  .nm-header:not(#_){top:10px;left:10px;right:10px;transition:background-color .3s var(--e),box-shadow .3s var(--e),top .3s var(--e),left .3s var(--e),right .3s var(--e)!important}
  .nm-header:not(#_).is-scrolled{top:0;left:0;right:0}
  #about:not(#_){padding-top:calc(144px - 10px)}
}

/* desktop: hero card corners rounded again (variant 3: gutters + radius) */
@media (min-width:1241px){
  .hero:not(#_){--hero-radius:var(--radius-xl);border-radius:var(--radius-xl);corner-shape:squircle}
}

/* tablet + phone: hero inset by 10px on all sides, header inside the picture (white and edge-to-edge on scroll or with the menu open) */
@media (max-width:1240px){
  .hero:not(#_){margin:10px;height:auto;min-height:calc(100vh - 20px);min-height:calc(100dvh - 20px)}
  .nm-header:not(#_){top:10px;left:10px;right:10px;background:transparent;box-shadow:none;transition:background-color .3s var(--e),box-shadow .3s var(--e),top .3s var(--e),left .3s var(--e),right .3s var(--e)!important}
  .nm-header:not(#_).is-scrolled,.nm-header:not(#_):has(.nm-panel.nm-open){top:0;left:0;right:0;background:#FFFFFF;box-shadow:0 2px 12px rgba(0,0,0,.06)}
  .nm-header:not(#_):has(.nm-panel.nm-open){box-shadow:none}
  .nm-header .nm-logo img{transition:filter .28s var(--e)}
  .nm-header .nm-burger{transition:color .28s var(--e)}
  .nm-header:not(#_):not(.is-scrolled):not(:has(.nm-panel.nm-open)) .nm-logo img{filter:brightness(0) invert(1)}
  .nm-header:not(#_):not(.is-scrolled):not(:has(.nm-panel.nm-open)) .nm-burger{color:#FFFFFF}
  .hero .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.18) 110px,rgba(0,0,0,0) 220px),linear-gradient(180deg,rgba(0,0,0,0) 28%,rgba(0,0,0,.45) 52%,rgba(0,0,0,.78) 74%,rgba(4,8,6,.95) 100%)}
  #about:not(#_){padding-top:calc(144px - 10px)}
}
@media (max-width:767px){
  .hero .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.18) 110px,rgba(0,0,0,0) 220px),linear-gradient(180deg,rgba(0,0,0,0) 18%,rgba(0,0,0,.42) 45%,rgba(0,0,0,.8) 70%,rgba(4,8,6,.95) 100%)}
  #about:not(#_){padding-top:calc(64px - 10px)}
}

/* tablet + phone: hero is a flex column so the copy sits at the bottom with an auto-height hero */
@media (max-width:1240px){
  .hero:not(#_){display:flex;flex-direction:column}
  .hero:not(#_) > .container{flex:1 1 auto;height:auto;display:flex;flex-direction:column}
  .hero:not(#_) .hero-copy{margin-top:auto}
}

/* header entrance: the bar fades and slides down after the hero (header-in, .5s delay); on desktop the menu items follow one by one */
@keyframes nav-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (min-width:1241px){
  .nm-nav li{animation:nav-in .5s var(--ease-out-apple) .8s both}
  .nm-nav li:nth-child(2){animation-delay:.85s}
  .nm-nav li:nth-child(3){animation-delay:.9s}
  .nm-nav li:nth-child(4){animation-delay:.95s}
  .nm-nav li:nth-child(5){animation-delay:1s}
  .nm-nav li:nth-child(6){animation-delay:1.05s}
  .nm-nav li:nth-child(7){animation-delay:1.1s}
  .nm-nav li:nth-child(8){animation-delay:1.15s}
  .nm-langbtn,.nm-langdd{animation:nav-in .5s var(--ease-out-apple) 1.1s both}
}
@media (prefers-reduced-motion:reduce){.nm-nav li,.nm-langbtn,.nm-langdd{animation:none!important}}

/* phone: taller hero, 110% of the viewport height */
@media (max-width:767px){
  .hero:not(#_){min-height:calc(110vh - 20px);min-height:calc(110dvh - 20px)}
}

/* iOS: no double-tap zoom on taps (burger open + close in quick succession used to zoom the page) */
a,button,.nm-burger,.btn,.nm-nav a,.nm-lang a{touch-action:manipulation}

/* desktop, header over the hero: lower (36px) and lighter menu pills for hover and the active item */
@media (min-width:1241px){
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a{height:36px}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a:hover,.nm-header:not(#_):not(.is-scrolled) .nm-nav a:focus-visible{background:rgba(255,255,255,.22);color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active{background:transparent}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active:hover{background:rgba(255,255,255,.12)}
  .nm-header:not(#_):not(.is-scrolled) .nm-ind{top:4px;height:36px}
  .nm-header:not(#_):not(.is-scrolled) .nm-ind i{height:36px;background:rgba(255,255,255,.16)}
}

/* desktop, header over the hero: language button 36px tall, translucent white, white text */
@media (min-width:1241px){
  .nm-header:not(#_):not(.is-scrolled) .nm-langbtn{height:36px;background:rgba(255,255,255,.16);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .nm-header:not(#_):not(.is-scrolled) .nm-langbtn svg{color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-langbtn:hover,.nm-header:not(#_):not(.is-scrolled) .nm-langdd.open .nm-langbtn,.nm-header:not(#_):not(.is-scrolled) .nm-langdd:hover .nm-langbtn{background:rgba(255,255,255,.26)}
}

/* hero: flush to the top (no top margin, square top corners); 10px sides and bottom kept; bigger bottom corners */
@media (min-width:1241px){
  .hero:not(#_){margin-top:0;height:calc(100vh - 10px);height:calc(100dvh - 10px);--hero-radius:0 0 40px 40px;border-radius:0 0 40px 40px}
}
@media (max-width:1240px){
  .hero:not(#_){margin-top:0;min-height:calc(100vh - 10px);min-height:calc(100dvh - 10px);--hero-radius:0 0 40px 40px;border-radius:0 0 40px 40px}
}
@media (max-width:767px){
  .hero:not(#_){min-height:calc(110vh - 10px);min-height:calc(110dvh - 10px);--hero-radius:0 0 28px 28px;border-radius:0 0 28px 28px}
}

/* desktop, white header too: menu and language pills 36px tall in every state */
@media (min-width:1241px){
  .nm-header:not(#_) .nm-nav a{height:36px}
  .nm-header:not(#_) .nm-langbtn{height:36px}
  .nm-header:not(#_) .nm-ind{top:4px;height:36px}
  .nm-header:not(#_) .nm-ind i{height:36px}
}

/* desktop, header over the hero: dark translucent pills for menu hover / active item, dark language tab */
@media (min-width:1241px){
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a:hover,.nm-header:not(#_):not(.is-scrolled) .nm-nav a:focus-visible{background:rgba(24,29,39,.72);color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active{background:transparent}
  .nm-header:not(#_):not(.is-scrolled) .nm-nav a.nm-active:hover{background:rgba(24,29,39,.4)}
  .nm-header:not(#_):not(.is-scrolled) .nm-ind i{background:rgba(24,29,39,.55)}
  .nm-header:not(#_):not(.is-scrolled) .nm-langbtn{background:rgba(24,29,39,.55);color:#fff}
  .nm-header:not(#_):not(.is-scrolled) .nm-langbtn:hover,.nm-header:not(#_):not(.is-scrolled) .nm-langdd.open .nm-langbtn,.nm-header:not(#_):not(.is-scrolled) .nm-langdd:hover .nm-langbtn{background:rgba(24,29,39,.78)}
}

/* =====================================================================
   NORMALIZATION LAYER (2026-09-14): one type scale, one spacing scale.
   Type: h1 56→30 fluid · section h2 48→32 fluid · card title 28→24 · h3 20→18
         subhead 18/26 500 (partners 16/24 by request) · body 16/24 400 · caption 14/20 · small 13/18
   Space: 8 12 16 24 32 48 72 144 · between blocks 144 (≥768) / 64 (phone)
         head→content 48 / 32 · panel padding 48 / 24 · card padding 24 / 16 · grid gap 14 / 10
   ===================================================================== */
/* --- type: hero --- */
.hero-copy h1:not(#_){font-size:clamp(30px,2.4vw + 21.4px,56px);line-height:1.18;margin-bottom:clamp(16px,.7vw + 13px,24px)}
.hero-copy p:not(#_){font-size:clamp(16px,.28vw + 14px,18px);line-height:1.5}
/* --- type: section headings (fluid 48 → 32) --- */
.tcard h2:not(#_),.uni-h2:not(#_),.about-top > h2:not(#_),.proj-side h2:not(#_),.cert-text h2:not(#_),.partner-h2:not(#_),#events .event-head h2:not(#_){font-size:clamp(32px,1.52vw + 26px,48px);line-height:1.18;font-weight:600;letter-spacing:-.02em}
/* --- type: card titles inside panels (28 → 24), always semibold --- */
#events h2:not(#_),#academy h2:not(#_),#youtube h2:not(#_){font-size:clamp(24px,.6vw + 19.4px,28px);line-height:1.28;font-weight:600}
#events .event-head h2:not(#_){font-weight:600}
/* --- type: h3 (20 → 18) and the big pillar h3 (36 → 22) --- */
h3:not(#_){font-size:clamp(18px,.2vw + 17px,20px);line-height:1.35;font-weight:600}
#about .pillar h3:not(#_){font-size:clamp(22px,1.33vw + 16.8px,36px);line-height:1.22;font-weight:500}
.event-body h3:not(#_){font-size:18px;line-height:26px;font-weight:600}
/* --- type: subheads, one size everywhere --- */
.sub:not(#_),.sub-big:not(#_),.about-sub:not(#_),.cert-thesis:not(#_),.uni-text > p:not(#_),.academy-head .sub:not(#_),.proj-side .sub:not(#_),#news .about-top .sub:not(#_){font-size:18px;line-height:26px;font-weight:500;color:var(--ink)}
#partners .partner-text .sub:not(#_),#partners .partner-text .cert-thesis:not(#_){font-size:16px;line-height:24px;font-weight:500}
/* --- type: body, captions, small --- */
.lead:not(#_),#about .pillar .pillar-list li:not(#_),.cert-list li:not(#_),.partner-text li:not(#_){font-size:16px;line-height:24px;font-weight:400}
.report-title:not(#_){font-size:16px;line-height:22px;font-weight:600}
.report-sub:not(#_){font-size:13px;line-height:18px}
.ftitle:not(#_){font-size:13px;line-height:18px}
.fbottom:not(#_){font-size:13px;line-height:18px}
.fcols .fbig:not(#_){font-size:clamp(18px,.28vw + 16px,20px);line-height:1.4}
#partners .crow:not(#_){font-size:clamp(18px,.28vw + 16px,20px);line-height:1.4}
/* --- space: head → content --- */
@media (min-width:768px){
  #about .pillars:not(#_){margin-top:48px}
  #building .specs:not(#_){margin-top:32px}
}
@media (max-width:767px){
  #about .pillars:not(#_){margin-top:32px}
  #building .specs:not(#_){margin-top:24px}
}
/* --- space: block rhythm, no exceptions (certificate was 112 on phones) --- */
@media (max-width:767px){
  #certificate:not(#_){margin-top:0;margin-bottom:0;padding:32px 0}
}
/* --- space: card padding tiers --- */
@media (min-width:768px){
  .spec:not(#_),#building .specs .spec:not(#_):not(#_){padding:24px}
  .ccard.partner-card:not(#_){padding:24px}
}
@media (max-width:767px){
  .spec:not(#_),#building .specs .spec:not(#_):not(#_){padding:16px}
  .ccard.partner-card:not(#_){padding:16px}
}
/* --- touch: slider dots get a 36px hit area --- */
@media (hover:none),(max-width:1024px){
  .dots button::before{inset:-14px}
}

/* normalization: stronger selectors where id-scoped rules used to win */
#about .tcard h2:not(#_):not(#_){font-size:clamp(32px,1.52vw + 26px,48px);line-height:1.18;letter-spacing:-.02em}
#about .tcard.tcard-wide .about-sub:not(#_):not(#_){font-size:18px;line-height:26px;font-weight:500}
.nm-langdd .nm-short:not(#_){font-size:13px;line-height:18px}

/* footer: phone, e-mail and address share one size and weight; no hover underline or scale */
.fcontact .fbig:not(#_),.fcontact .faddr:not(#_){font-size:clamp(18px,.28vw + 16px,20px);line-height:1.4;font-weight:500;color:var(--ink);margin:0}
.fcols > div > a::after,.flegal a::after{display:none!important}
.fsoc a:hover,.fsoc a:active{transform:none!important}

/* footer layout: three columns - contacts with social icons below, then two link columns */
.footer .fcols3{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px;align-items:start}
.footer .fcontact{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer .fcontact a{text-decoration:none}
.footer .fcontact .fsoc{display:flex;gap:8px;margin-top:16px}
.footer .fnav{display:flex;flex-direction:column;gap:12px}
.footer .fnav a{color:var(--ink);text-decoration:none;font-size:16px;line-height:24px;font-weight:500;width:fit-content}
.footer .fnav a:hover{color:var(--accent)}
.footer .fbottom{margin-top:40px}
@media (max-width:1024px){
  .footer .fcols3{grid-template-columns:1.4fr 1fr 1fr;gap:24px}
}
@media (max-width:767px){
  .footer .fcols3{grid-template-columns:1fr 1fr;gap:24px 16px}
  .footer .fcontact{grid-column:1 / -1;gap:6px}
  .footer .fcontact .fsoc{margin-top:12px}
  .footer .fnav{gap:0}
  .footer .fnav a{display:inline-flex;align-items:center;min-height:44px}
  .footer .fbottom{margin-top:32px}
}

/* footer: no entrance reveal, no transitions */
.footer,.footer *{transition:none!important;animation:none!important}

/* hero entrance: uniform rounded corners while the card flies in, top corners straighten to the final 0 0 R R */
.hero{--hero-r-anim:40px}
@media (max-width:767px){.hero{--hero-r-anim:28px}}
@keyframes hero-in{from{clip-path:inset(30% 20% 30% 20% round var(--hero-r-anim,40px));opacity:.6}to{clip-path:inset(0 0 0 0 round 0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px));opacity:1}}

/* hero: round corners (not squircle) and a permanent clip-path equal to the entrance's last frame - no corner snap when the animation ends, composited children stay clipped */
.hero:not(#_):not(#_){corner-shape:round;clip-path:inset(0 0 0 0 round 0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px))}

/* hero: rounded on all four corners (40 desktop/tablet, 28 phone); entrance clip matches */
.hero:not(#_):not(#_){--hero-radius:var(--hero-r-anim,40px);border-radius:var(--hero-r-anim,40px);clip-path:inset(0 0 0 0 round var(--hero-r-anim,40px))}
@keyframes hero-in{from{clip-path:inset(30% 20% 30% 20% round var(--hero-r-anim,40px));opacity:.6}to{clip-path:inset(0 0 0 0 round var(--hero-r-anim,40px));opacity:1}}

/* hero picture: external files, AVIF with WebP fallback, portrait crop on phones */
.hero-bg{background-image:image-set(url("https://nur-mubarak-qory.vercel.app/img/hero.avif") type("image/avif"),url("https://nur-mubarak-qory.vercel.app/img/hero.webp") type("image/webp"))}
@media (max-width:767px){
  .hero-bg{background-image:image-set(url("https://nur-mubarak-qory.vercel.app/img/hero-mobile.avif") type("image/avif"),url("https://nur-mubarak-qory.vercel.app/img/hero-mobile.webp") type("image/webp"))}
}

/* hero: full width, no side margins; only the 10px gap below stays */
.hero:not(#_):not(#_){margin:0 0 10px}

/* hero: square top corners, rounded bottom only; no gap below; full viewport height on desktop */
.hero:not(#_):not(#_):not(#_){margin:0;--hero-radius:0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px);border-radius:0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px);clip-path:inset(0 0 0 0 round 0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px))}
@keyframes hero-in{from{clip-path:inset(30% 20% 30% 20% round var(--hero-r-anim,40px));opacity:.6}to{clip-path:inset(0 0 0 0 round 0 0 var(--hero-r-anim,40px) var(--hero-r-anim,40px));opacity:1}}
@media (min-width:1241px){
  .hero:not(#_):not(#_):not(#_){height:100vh;height:100dvh}
  #about:not(#_):not(#_){padding-top:144px}
}
@media (max-width:1240px){
  .hero:not(#_):not(#_):not(#_){min-height:100vh;min-height:100dvh}
  #about:not(#_):not(#_){padding-top:144px}
}
@media (max-width:767px){
  .hero:not(#_):not(#_):not(#_){min-height:110vh;min-height:110dvh}
  #about:not(#_):not(#_){padding-top:64px}
}

/* hero: 10px gap below is back; block rhythm compensated */
.hero:not(#_):not(#_):not(#_){margin:0 0 10px}
@media (min-width:768px){#about:not(#_):not(#_):not(#_){padding-top:calc(144px - 10px)}}
@media (max-width:767px){#about:not(#_):not(#_):not(#_){padding-top:calc(64px - 10px)}}

/* hero: ends 10px above the fold so the outer bottom gap is visible on the first screen */
@media (min-width:1241px){.hero:not(#_):not(#_):not(#_){height:calc(100vh - 10px);height:calc(100dvh - 10px)}}
@media (max-width:1240px){.hero:not(#_):not(#_):not(#_){min-height:calc(100vh - 10px);min-height:calc(100dvh - 10px)}}
@media (max-width:767px){.hero:not(#_):not(#_):not(#_){min-height:calc(110vh - 10px);min-height:calc(110dvh - 10px)}}

/* phone: hero exactly one viewport tall, the 10px outer gap sits below it */
@media (max-width:767px){.hero:not(#_):not(#_):not(#_){min-height:100vh;min-height:100dvh}}

/* ===== 10. Бізді қолдайды: YouTube Shorts carousel (user-supplied embed, scoped) ===== */
.shorts-embed,.shorts-embed *,.shorts-embed *::before,.shorts-embed *::after{box-sizing:border-box;margin:0;padding:0}
.shorts-embed{font-family:'Golos Text','Inter',sans-serif;margin-top:48px}
.shorts-wrap{max-width:100%;width:100%;margin:0 auto;overflow-x:auto;overflow-y:hidden;position:relative;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.shorts-wrap::-webkit-scrollbar{display:none}
.shorts-track{display:flex;gap:16px;width:max-content;padding:12px 0}
.shorts-card{position:relative;flex:0 0 auto;width:240px;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#111;cursor:pointer;text-decoration:none;display:block;box-shadow:0 4px 14px rgba(0,0,0,.08);transition:transform .25s ease,box-shadow .25s ease}
.shorts-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.16)}
.shorts-card img{width:100%;height:100%;object-fit:cover;display:block}
.shorts-card .shorts-gradient{position:absolute;left:0;right:0;bottom:0;height:60%;background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,0) 100%);pointer-events:none}
.shorts-card .shorts-play{position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);background:rgba(255,255,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.shorts-card .shorts-play svg{width:16px;height:16px;margin-left:2px}
.shorts-card .shorts-title{position:absolute;left:10px;right:10px;bottom:10px;color:#fff;font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:600px){
  .shorts-embed{margin-top:32px}
  .shorts-track{padding:12px 12px}
  .shorts-card{width:210px}
  .shorts-card .shorts-title{font-size:14px}
}
.shorts-modal{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:999999;padding:24px}
.shorts-modal.open{display:flex}
.shorts-modal-inner{position:relative;width:360px;max-width:100%;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#000}
.shorts-modal-inner iframe{position:absolute;top:50%;left:50%;width:316%;height:100%;transform:translate(-50%,-50%);border:0}
.shorts-modal-close{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:1;padding:8px 16px;border-radius:20px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 24px rgba(0,0,0,.15);display:flex;align-items:center;gap:6px;cursor:pointer;color:#fff;font-size:14px;font-weight:600;line-height:1;white-space:nowrap}
.shorts-modal-close:hover{background:rgba(255,255,255,.22)}
#supporters .supporters-cta{margin-top:32px}
@media (max-width:767px){#supporters .supporters-cta{margin-top:24px}}

/* shorts modal: close control is a plain dark round X, no border, no glass */
.shorts-modal .shorts-modal-close{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(24,29,39,.85);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;justify-content:center;font:inherit}
.shorts-modal .shorts-modal-close svg{width:20px;height:20px;display:block}
.shorts-modal .shorts-modal-close:hover{background:#181D27}

/* shorts track: enough vertical room inside the scroller so the hover lift and shadow are not clipped */
.shorts-embed .shorts-track{padding-top:16px;padding-bottom:40px}
.shorts-embed{margin-top:32px}
@media (max-width:600px){.shorts-embed{margin-top:16px}}

/* block rhythm: visible gaps 144 (>=768) / 64 (phone) everywhere - carousel padding compensated, certificate panel gets footer-like outer margins */
@media (min-width:768px){
  #supporters:not(#_):not(#_){padding-bottom:calc(72px - 40px)}
  #certificate:not(#_):not(#_){margin:72px auto}
}
@media (max-width:767px){
  #supporters:not(#_):not(#_){padding-bottom:8px}
  #supporters .shorts-embed .shorts-track{padding-bottom:24px}
  #certificate:not(#_):not(#_){margin:32px auto}
}



/* accessibility: filled green darkened from #099250 to #098650 so white text reaches 4.6:1 (was 4.0:1); revert by deleting this rule */
:root{--accent:#098650}
.nm-header{--green:#098650}
/* accessibility: slider dots get a real 24x24 tap target, the visible dot is drawn inside */
.dots:not(#_){gap:0}
.dots button:not(#_){width:24px;height:24px;border-radius:12px;background:transparent;position:relative}
.dots button:not(#_)::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:3px;background:var(--g300);inset:auto;transition:width .25s,background .25s}
.dots button.on:not(#_)::before{width:14px;background:var(--g500)}
.event-slider .dots button:not(#_)::before{background:rgba(255,255,255,.5)}
.event-slider .dots button.on:not(#_)::before{background:rgba(255,255,255,.85)}
@media (max-width:767px){
  .event-slider .dots button:not(#_)::before{background:var(--g300)}
  .event-slider .dots button.on:not(#_)::before{background:var(--g500)}
}

/* slider dots: every dot button is 24x24 regardless of state or slider */
.dots button:not(#_):not(#_):not(#_),.dots button.on:not(#_):not(#_):not(#_){width:24px;height:24px;min-width:24px;padding:0;background:transparent}

/* university/building sliders: dots sit on the photo, keep them white */
#universitySlider .dots button:not(#_)::before,#buildingSlider .dots button:not(#_)::before{background:rgba(255,255,255,.55)}
#universitySlider .dots button.on:not(#_)::before,#buildingSlider .dots button.on:not(#_)::before{background:rgba(255,255,255,.9)}

/* university text: thesis 18/26 medium, the three paragraphs 16/24 regular */
#university .uni-text > p.uni-thesis:not(#_):not(#_){font-size:18px;line-height:26px;font-weight:500;color:var(--ink)}
#university .uni-text > p:not(.uni-thesis):not(#_):not(#_){font-size:16px;line-height:24px;font-weight:400;color:var(--ink)}

/* events: forum title 20/28 medium */
#events .event-body h3:not(#_):not(#_){font-size:20px!important;line-height:28px!important;font-weight:500!important}

/* hero -> about: tighter gap (96 desktop/tablet, 40 phone), hero keeps its 10px outer margin */
@media (min-width:768px){#about:not(#_):not(#_):not(#_):not(#_){padding-top:calc(96px - 10px)}}
@media (max-width:767px){#about:not(#_):not(#_):not(#_):not(#_){padding-top:calc(40px - 10px)}}

/* ===== gallery controls: arrows inside the photo (dark, no shadow, white glyph); dots in a dark capsule at the bottom centre ===== */
.slider .nav button:not(#_):not(#_){width:44px;height:44px;background:rgba(24,29,39,.6)!important;color:#fff!important;box-shadow:none!important;border:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.slider .nav button:not(#_):not(#_):hover{background:rgba(24,29,39,.82)!important}
.slider .nav button:not(#_):not(#_) svg{color:#fff!important;width:22px;height:22px;stroke-width:2}
.slider .nav .prev:not(#_):not(#_):not(#_){left:16px!important;right:auto!important}
.slider .nav .next:not(#_):not(#_):not(#_){right:16px!important;left:auto!important}
.slider .dots:not(#_):not(#_):not(#_){position:absolute;left:0!important;right:0!important;bottom:16px!important;top:auto;transform:none;margin:0 auto!important;width:max-content;padding:2px 6px;border-radius:999px;background:rgba(24,29,39,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:0;z-index:3;flex:none}
.slider .dots button:not(#_):not(#_):not(#_)::before{background:rgba(255,255,255,.5)}
.slider .dots button.on:not(#_):not(#_):not(#_)::before{background:#fff}
@media (max-width:767px){
  .slider .nav button:not(#_):not(#_){width:40px;height:40px}
  .slider .nav .prev:not(#_):not(#_):not(#_){left:12px!important}
  .slider .nav .next:not(#_):not(#_):not(#_){right:12px!important}
  .slider .dots:not(#_):not(#_):not(#_){bottom:12px!important}
}

/* galleries: no dots, arrows only */
.slider .dots:not(#_):not(#_):not(#_):not(#_){display:none!important}

/* fullscreen photo viewer: no counter, no thumbnail strip - arrows and close only */
.lb .lb-count:not(#_):not(#_),.lb .lb-thumbs:not(#_):not(#_){display:none!important}

/* hero title: medium weight */
.hero-copy h1:not(#_):not(#_),.hero-copy h1:not(#_):not(#_) .w{font-weight:500!important}

/* events: card title «Білім беру іс-шаралар» 20/28 medium */
#events .event-head h2:not(#_):not(#_):not(#_){font-size:20px!important;line-height:28px!important;font-weight:500!important}

/* events: «Білім беру іс-шаралар» and «Бақытты әйел формуласы» 24/32 semibold */
#events .event-head h2:not(#_):not(#_):not(#_):not(#_),#events .event-body h3:not(#_):not(#_):not(#_):not(#_){font-size:24px!important;line-height:32px!important;font-weight:600!important}

/* ===== превью внутри редактора Тильды (каждый вайб-блок живёт в своём iframe) ===== */
html.nm-preview{background:var(--paper)}
html.nm-preview-header,html.nm-preview-header body{background:#2B3733;min-height:150px}
html.nm-preview .hero:not(#_):not(#_):not(#_):not(#_){height:640px!important;min-height:0!important}
