/* YOSI — new theme. Tokens from the UI mock. Manrope is self-hosted (OFL). */
@font-face{font-family:'Manrope';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/manrope-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/manrope-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/manrope-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/manrope-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/manrope-latin-800-normal.woff2') format('woff2')}
:root{
  --green:#609372; --green-d:#4f7d60; --green-l:#e3efe8;
  --blue:#1d4a8b; --denim:#2f5d8f; --denim-tex:linear-gradient(180deg,rgba(18,52,102,.72),rgba(10,36,78,.86)),url("../img/denim.webp") 0 0/520px auto #143868; --denim-d:#274e7a; --blue-d:#143868; --blue-soft:#3f5a88; --blue-l:#e8eef7;
  --ink:#0b1a2a; --charcoal:#212121; --footer:#021e34;
  --muted:#6b7683; --line:#e3e6ea; --mist:#f4f5f6; --white:#fff;
  --font:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --r-card:24px; --r-photo:16px; --r-pill:999px;
  --wrap:1200px; --gutter:clamp(16px,4vw,40px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:var(--font);color:var(--ink);background:#fff;line-height:1.55;font-size:16px;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul,ol{list-style:none}
svg{aspect-ratio:1/1;flex:none}
h1,h2,h3,h4{font-weight:500;letter-spacing:-.04em;line-height:1.04}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(56px,8vw,110px) 0;position:relative;overflow-x:clip}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:200}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}

/* eyebrow + titles */
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--blue);display:block;margin-bottom:14px}
.band .eyebrow,.on-dark .eyebrow{color:#cfe0ff}
.display{font-size:clamp(40px,6vw,78px)}
.h2{font-size:clamp(34px,4.6vw,60px)}
.h3{font-size:clamp(22px,2.2vw,30px);letter-spacing:-.03em}
.lead{font-size:clamp(16px,1.35vw,19px);color:var(--muted);max-width:60ch}
.muted{color:var(--muted)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:var(--r-pill);font-weight:600;font-size:14px;transition:.2s;white-space:nowrap}
.btn svg{width:14px;height:14px}
.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-d);transform:translateY(-1px)}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-d)}
.btn-ghost{border:1px solid var(--line);background:#fff}.btn-ghost:hover{border-color:var(--ink)}
.btn-white{background:#fff;color:var(--ink)}.btn-white:hover{background:var(--mist)}
.btn-sm{padding:8px 16px;font-size:13px}

/* decorative ring */
.section>.wrap{position:relative;z-index:1}
.ring{position:absolute;border:clamp(50px,9vw,120px) solid var(--mist);border-radius:50%;pointer-events:none;z-index:0}
.ring.r1{width:min(900px,90vw);aspect-ratio:1;right:-20%;top:0}
.ring.r2{width:min(700px,80vw);aspect-ratio:1;left:-25%;top:30%}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;padding:14px var(--gutter);background:linear-gradient(#fff 70%,rgba(255,255,255,0))}
.hdr{max-width:calc(var(--wrap) + 80px);margin:0 auto;display:flex;align-items:center;gap:14px;background:#fff;border-radius:0 0 28px 28px}
.hdr .logo{display:flex;align-items:center;flex:none}
.hdr .logo img{height:46px;width:auto}
.nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.nav>li{position:relative}
.nav>li>a{display:block;padding:7px 15px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:13px;font-weight:500;color:#555;transition:.15s}
.nav>li>a:hover{border-color:var(--ink);color:var(--ink)}
.nav>li>a.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.has-sub>a::after{content:"";display:inline-block;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:8px}
.sub{position:absolute;left:0;top:100%;padding-top:10px;min-width:230px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:5}
.sub ul{background:#fff;border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:0 20px 50px rgba(11,26,42,.12)}
.sub a{display:block;padding:9px 14px;border-radius:12px;font-size:13.5px;font-weight:500}
.sub a:hover{background:var(--mist)}
.nav>li:hover .sub,.nav>li:focus-within .sub{opacity:1;visibility:visible;transform:none}
.hdr .actions{display:flex;gap:8px;align-items:center}
.login-link{font-size:13px;font-weight:600;padding:8px 14px}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;align-items:center;justify-content:center}
.burger span,.burger span::before,.burger span::after{display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:.2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-6px}.burger span::after{top:6px}
@media(max-width:1080px){
  .burger{display:flex;margin-left:auto}
  .hdr .actions{display:none}
  .nav{position:fixed;inset:0;top:0;background:#fff;flex-direction:column;align-items:stretch;padding:90px var(--gutter) 30px;gap:4px;overflow:auto;transform:translateX(100%);transition:.28s;margin:0;z-index:-1}
  body.menu-open .nav{transform:none}
  body.menu-open .burger{position:relative;z-index:3}
  .nav>li>a{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 4px;font-size:18px}
  .nav>li>a.active{background:none;color:var(--blue);border-color:var(--line)}
  .sub{position:static;opacity:1;visibility:visible;transform:none;padding:0;display:none}
  .sub ul{border:0;box-shadow:none;padding:0 0 8px 12px}
  .has-sub.open .sub{display:block}
  .nav .m-actions{display:flex;gap:10px;margin-top:20px}
}
@media(min-width:1081px){.m-actions{display:none!important}}

/* ---------- hero ---------- */
.hero{padding:0 var(--gutter) 0}
.hero-card{max-width:calc(var(--wrap) + 80px);margin:0 auto;border-radius:32px;overflow:hidden;position:relative;min-height:min(78vh,640px);display:grid;grid-template-columns:1.05fr 1fr;background:linear-gradient(120deg,#d9e6f2,#eef3f8 55%,#dde9f4)}
.hero-card .photo{position:relative;min-height:420px;overflow:hidden}
.hero-card .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.hero-card .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(238,243,248,.95))}
.hero-copy{padding:clamp(28px,5vw,64px) clamp(24px,4vw,56px) 120px clamp(24px,3vw,48px);display:flex;flex-direction:column;justify-content:center;gap:22px;position:relative;z-index:2}
.hero-copy h1{font-size:clamp(40px,5.2vw,68px);color:var(--ink)}
.hero-copy h1 em{font-style:normal;color:var(--blue)}
.hero-copy p{max-width:48ch;color:#3a4756}
.social-rail{position:absolute;left:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:3}
.social-rail a,.socials a{width:36px;height:36px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.social-rail svg,.socials svg{width:15px;height:15px}
.stats{position:absolute;right:0;bottom:0;background:#fff;border-radius:28px 0 0 0;padding:22px 34px;display:flex;gap:30px;z-index:3}
.stat{display:flex;gap:12px;align-items:center}
.stat b{font-size:clamp(36px,4vw,54px);font-weight:400;letter-spacing:-.05em;color:var(--blue);line-height:1}
.stat:nth-child(2) b{color:var(--green)}
.stat span{font-size:13px;font-weight:600;display:block}
.stat small{font-size:11px;color:var(--muted);display:block;max-width:15ch;line-height:1.3}
.stat+.stat{padding-left:30px;border-left:1px solid var(--line)}
@media(max-width:900px){
  .hero-card{grid-template-columns:1fr}
  .hero-card .photo{min-height:300px}
  .hero-card .photo::after{background:linear-gradient(transparent 60%,rgba(238,243,248,.95))}
  .hero-copy{padding:10px 24px 40px}
  .stats{position:static;border-radius:0;padding:20px 24px;gap:14px;justify-content:space-between;flex-wrap:wrap;grid-column:1}
  .stat+.stat{padding-left:14px}.stat small{display:none}
  .social-rail{display:none}
}

/* ---------- about ---------- */
.about-head{text-align:center;max-width:980px;margin:0 auto}
.about-head h2{font-size:clamp(28px,4.2vw,54px)}
.about-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:56px;position:relative;z-index:1}
.acard{border-radius:var(--r-card);padding:22px;min-height:330px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}
.acard.dark{background:var(--charcoal);color:#fff;justify-content:space-between}
.acard.blue{background:var(--denim-tex);color:#fff}
.acard.blue::before{content:"";position:absolute;width:210px;aspect-ratio:1;border-radius:50%;border:38px solid #f4f5f6;right:-70px;top:-100px}
.acard.blue.alt::before{left:auto;right:-60px;top:auto;bottom:-110px}
.acard h3{font-size:24px;position:relative}
.acard p{font-size:13px;opacity:.75;position:relative}
.acard img{border-radius:12px;height:150px;width:100%;object-fit:cover}
.acard .hr{height:1px;background:rgba(255,255,255,.25)}
.about-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid var(--line);margin-top:56px;padding-top:30px;position:relative;z-index:1}
.about-cta p{font-size:clamp(18px,2vw,24px);font-weight:500;letter-spacing:-.03em;max-width:42ch;line-height:1.3}
@media(max-width:1000px){.about-cards{grid-template-columns:1fr 1fr}.about-cta{flex-direction:column;align-items:flex-start}}
@media(max-width:560px){.about-cards{grid-template-columns:1fr}}

/* ---------- bridge ---------- */
.bridge{display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px;align-items:center}
.bridge h2{font-size:clamp(40px,5vw,66px);color:var(--ink)}
.bridge .photo{border-radius:var(--r-card);overflow:hidden;aspect-ratio:4/4.6}
.bridge .photo img{width:100%;height:100%;object-fit:cover}
.points li{padding-bottom:34px}
.points .n{font-size:11px;font-weight:700;color:var(--blue);display:flex;gap:10px;align-items:center;margin-bottom:12px}
.points .n::after{content:"";width:28px;height:1px;background:var(--line)}
.points li:nth-child(2) .n{color:var(--green)}
.points h3{font-size:24px;margin-bottom:10px}
.points p{color:var(--muted);font-size:14px}
@media(max-width:1000px){.bridge{grid-template-columns:1fr}}

/* ---------- textured blue bands: denim (twill weave, thread fibres, worn patches) ---------- */
.band{color:#fff;position:relative;overflow:hidden;background:linear-gradient(rgba(14,46,96,.3),rgba(14,46,96,.3)),url("../img/denim.webp") 0 0/520px auto #4f7fbd}
.band::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 55%,rgba(255,255,255,.08),transparent 70%);pointer-events:none}
.band>*{position:relative;z-index:1}
.vm{display:grid;gap:0}
.vm-row{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-top:1px solid rgba(255,255,255,.35);padding:34px 0}
.vm-row:first-of-type{border-top:0}
.vm-row h2{font-size:clamp(40px,5.4vw,76px);line-height:.95;letter-spacing:-.045em}
.vm-row .glyph{width:clamp(40px,4vw,56px);display:block;margin-bottom:14px}
.vm-row p{color:#dfe8f6;font-size:clamp(16px,1.35vw,19px);line-height:1.55;max-width:56ch}
.vm-row.flip{direction:rtl}.vm-row.flip>*{direction:ltr}
.vm-row.flip h2{text-align:right}.vm-row.flip p{text-align:right;margin-left:auto}
.vm-head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:10px 0 20px}
.vm-head h2{font-size:clamp(40px,5.4vw,76px);line-height:.95}
@media(max-width:800px){.vm-row,.vm-row.flip{grid-template-columns:1fr;direction:ltr;gap:18px}.vm-row.flip h2,.vm-row.flip p{text-align:left;margin-left:0}.vm-row.flip .glyph{margin-left:0!important}}

/* ---------- events ---------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line)}
.tabs button{padding:12px 0;font-size:14px;font-weight:600;color:#a0a7b0;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button.on{color:var(--ink);border-color:var(--ink)}
.ev{display:grid;grid-template-columns:128px 1fr auto auto;gap:26px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}
.ev img{width:128px;height:106px;object-fit:cover;border-radius:var(--r-photo)}
.ev .tag{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:6px;display:flex;gap:8px;align-items:center}
.ev .tag i{font-style:normal;background:var(--green-l);color:var(--green-d);border-radius:var(--r-pill);padding:2px 9px;letter-spacing:.04em;text-transform:none;font-size:11px}
.ev h3{font-size:clamp(24px,3vw,38px);margin-bottom:6px}
.ev p{font-size:13.5px;color:var(--muted);max-width:60ch}
.ev .when{text-align:right}
.ev .when b{display:block;font-size:24px;font-weight:500;letter-spacing:-.03em}
.ev .when small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9aa1ab}
.ev .go{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:.2s}
.ev .go:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.ev .go svg{width:14px}
.empty{padding:40px 0;color:var(--muted)}
@media(max-width:760px){.ev{grid-template-columns:90px 1fr;gap:14px}.ev img{width:90px;height:80px}.ev .when{text-align:left;grid-column:2}.ev .go{display:none}}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;align-items:start}
.person{position:relative}
.person .ph{aspect-ratio:3/3.9;background:#cfd6de;position:relative;overflow:hidden}
.person .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:.4s}
.person .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:rgba(63,90,136,.88);transform:translateY(100%);transition:.3s}
.person:hover .ph::after{transform:none}
.person:hover .ph img{transform:scale(1.03)}
.person h4{font-size:16px;font-weight:600;letter-spacing:-.02em;margin-top:12px}
.person span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.person .initials{position:absolute;inset:0;display:grid;place-items:center;font-size:44px;font-weight:300;color:#fff;background:linear-gradient(135deg,var(--blue),#5b88c6)}
.people.more{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.people.more h4{font-size:14px}
.more-tile{display:flex;flex-direction:column;justify-content:center;gap:14px;background:var(--green);color:#fff;border-radius:0;padding:24px;aspect-ratio:3/3.9}
.more-tile h4{font-size:24px;color:#fff;margin:0;line-height:1.1}
@media(max-width:1000px){.people{grid-template-columns:repeat(3,minmax(0,1fr))}.people.more{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.people,.people.more{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- quote slider ---------- */
.quote{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center;padding:clamp(56px,7vw,100px) 0}
.quote h2{font-size:clamp(36px,4.4vw,58px)}
.quote .side p{color:#cfdcf1;font-size:14px;margin-top:20px;max-width:34ch}
.quote blockquote{font-size:clamp(26px,3.4vw,44px);letter-spacing:-.035em;line-height:1.1;font-weight:500;min-height:5.6em}
.quote .who{display:flex;gap:12px;align-items:center;margin-top:28px;font-size:13px;color:#cfdcf1}
.quote .who b{color:#fff;display:block}
.arrows{display:flex;gap:10px;margin-top:34px}
.arrows button{width:46px;height:46px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center}
.arrows button:hover{background:#e8eef7}
.arrows svg{width:16px}
@media(max-width:900px){.quote{grid-template-columns:1fr;gap:30px}}

/* ---------- ticker ---------- */
.ticker{overflow:hidden;padding:34px 0;display:grid;gap:6px}
.ticker .row{display:flex;gap:34px;white-space:nowrap;width:max-content;font-size:clamp(32px,4.4vw,60px);font-weight:500;letter-spacing:-.04em;line-height:1;text-transform:uppercase;animation:mq 40s linear infinite}
.ticker .row.rev{animation-direction:reverse;animation-duration:48s}
.ticker .row span.s{display:inline-block;width:.6em}
@keyframes mq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker .row{animation:none}}
.ticker.names{padding:22px 0;display:block}
.ticker.names .row{gap:28px;align-items:center;font-size:16px;font-weight:600;letter-spacing:-.02em;text-transform:none;animation-name:mq}
.ticker.names .row:hover{animation-play-state:paused}
.ticker.names .row .s svg{opacity:.7}

/* ---------- impact ---------- */
.impact-grid{display:grid;grid-template-columns:.9fr 2.1fr;gap:36px;align-items:end;margin-top:34px}
.impact-art{border-radius:var(--r-card);overflow:hidden;aspect-ratio:1;background:var(--blue-l);position:relative}
.impact-art img{width:100%;height:100%;object-fit:cover}
.bars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:end;height:340px}
.bar{position:relative;color:#fff;padding:16px;display:flex;flex-direction:column;justify-content:flex-end;height:var(--h)}
.bar::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:var(--cap,70px);background:repeating-linear-gradient(135deg,transparent 0 5px,var(--c) 5px 7px)}
.bar{background:var(--c)}
.bar b{font-size:34px;font-weight:400;letter-spacing:-.04em;line-height:1}
.bar span{font-size:11px;font-weight:600;opacity:.85}
@media(max-width:900px){.impact-grid{grid-template-columns:1fr}.impact-art{max-height:320px;aspect-ratio:16/9}.bars{height:300px;gap:10px}.bar b{font-size:26px}}

/* ---------- news ---------- */
.news{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:#fff;position:relative;z-index:1}
.news-lead{grid-column:span 1;grid-row:span 1;background:var(--green);color:#fff;padding:26px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;min-height:340px}
.news-lead h2{font-size:clamp(36px,3.6vw,52px);position:relative;z-index:1}
.news-lead .eyebrow{color:#e3efe8}
.news-lead .glyph{position:absolute;right:-26px;top:34%;width:190px;opacity:.95}
.news-lead p{font-size:13px;color:#e3efe8;max-width:20ch}
.ncard{padding:22px;border-left:1px solid var(--line);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:14px;transition:.2s}
.ncard:hover{background:var(--mist)}
.ncard:nth-child(-n+4){border-top:0}
.ncard .tags{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-size:10px;padding:3px 10px;border-radius:var(--r-pill);background:var(--green);color:#fff;font-weight:600}
.pill.soft{background:var(--green-l);color:#6b8a78}
.ncard h3{font-size:21px;line-height:1.08}
.ncard img{border-radius:12px;aspect-ratio:4/2.9;object-fit:cover;width:100%}
.ncard p{font-size:13px;color:var(--muted)}
.ncard .more{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-top:auto}
@media(max-width:1000px){.news{grid-template-columns:1fr 1fr}.news-lead{grid-column:span 2}.news-lead .glyph{top:10%}}
@media(max-width:560px){.news{grid-template-columns:1fr}.news-lead{grid-column:auto}}

/* ---------- gallery ---------- */
.g-band{padding:clamp(56px,7vw,100px) 0 clamp(80px,9vw,130px);text-align:center}
.g-band h2{font-size:clamp(36px,5vw,66px)}
.g-band .lead{color:#d6e3f7;margin:16px auto 0;max-width:56ch;font-size:14px}
.carousel{margin-top:46px;position:relative}
.car-track{display:flex;gap:30px;transition:transform .5s cubic-bezier(.3,.7,.2,1);align-items:center;padding-bottom:30px}
.car-slide{flex:none;width:min(62vw,640px);aspect-ratio:3/2;border-radius:2px;overflow:hidden;opacity:.55;transform:scale(.86);transition:.5s;box-shadow:0 30px 60px rgba(0,0,0,.25);cursor:zoom-in}
.car-slide.on{opacity:1;transform:none}
.car-slide img{width:100%;height:100%;object-fit:cover}
.car-btn{position:absolute;top:44%;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;z-index:2;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.car-btn.prev{left:2vw}.car-btn.next{right:2vw}.car-btn svg{width:16px}
@media(max-width:700px){.car-slide{width:78vw}.car-track{gap:14px}}
.grid-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.grid-gal button{aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-photo);background:var(--mist)}
.grid-gal img{width:100%;height:100%;object-fit:cover;transition:.4s}
.grid-gal button:hover img{transform:scale(1.05)}
.lb{position:fixed;inset:0;background:rgba(2,30,52,.94);z-index:300;display:none;place-items:center;padding:30px}
.lb.on{display:grid}
.lb img{max-height:86vh;max-width:92vw;border-radius:6px}
.lb .x{position:absolute;top:18px;right:22px;color:#fff;font-size:34px;line-height:1}
.lb .car-btn{top:50%}

/* ---------- faq ---------- */
.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.faq-art{position:sticky;top:110px;max-width:420px}
.faq-art .box{aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--blue-l)}
.faq-art img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.faq h2{font-size:clamp(38px,5vw,64px);margin-bottom:34px}
details.q{border-top:1px solid var(--line);padding:20px 0}
details.q:last-child{border-bottom:1px solid var(--line)}
details.q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-weight:600;font-size:16px;letter-spacing:-.01em}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{content:"+";font-size:22px;font-weight:300;line-height:1;transition:.2s}
details.q[open] summary::after{transform:rotate(45deg)}
details.q p{margin-top:12px;color:var(--muted);font-size:14.5px;max-width:60ch}
@media(max-width:900px){.faq{grid-template-columns:1fr;gap:30px}.faq-art{display:none}}

/* ---------- CTA ---------- */
.cta{background:var(--green);border-radius:var(--r-card);color:#fff;padding:clamp(30px,5vw,56px);display:grid;grid-template-columns:1.3fr 1fr auto;gap:40px;align-items:center}
.cta h2{font-size:clamp(40px,6vw,84px);line-height:.95}
.cta p{font-size:14px;color:#eaf4ee;max-width:34ch}
.cta .go{width:106px;height:106px;border:1px solid #fff;border-radius:20px;display:grid;place-items:center;transition:.2s}
.cta .go:hover{background:#fff;color:var(--green)}
.cta .go svg{width:44px}
@media(max-width:900px){.cta{grid-template-columns:1fr;gap:24px}.cta .go{width:70px;height:70px}}

/* ---------- footer ---------- */
.site-footer{background:var(--footer);color:#c4d0dc;margin-top:clamp(56px,8vw,100px);padding-top:60px;position:relative;overflow:hidden}
.f-grid{display:grid;grid-template-columns:1.2fr .8fr 1.2fr 1fr;gap:0}
.f-col{padding:0 32px;border-left:1px solid rgba(255,255,255,.12)}
.f-col:first-child{padding-left:0;border:0}
.f-col h5{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#7f93a7;margin-bottom:20px;font-weight:700}
.f-col h4{color:#fff;font-size:15px;font-weight:600;letter-spacing:0;margin-bottom:14px}
.f-col p,.f-col li{font-size:13.5px;margin-bottom:10px}
.f-col a:hover{color:#fff}
.f-col .ic{display:flex;gap:10px;align-items:flex-start}
.f-col .ic svg{width:14px;height:14px;flex:none;margin-top:4px;color:#fff}
.socials{display:flex;gap:10px;margin-bottom:16px}
.socials a{background:transparent;border:1px solid rgba(255,255,255,.25);box-shadow:none;color:#fff}
.socials a:hover{background:#fff;color:var(--footer)}
.f-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding:22px 0;font-size:12px;color:#8ea0b2}
.f-base nav{display:flex;gap:22px}
.wordmark{font-size:clamp(120px,27vw,360px);font-weight:900;letter-spacing:.04em;text-align:center;line-height:.8;margin-top:20px;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0) 85%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;padding-bottom:10px;height:.62em;overflow:hidden}
@media(max-width:900px){.f-grid{grid-template-columns:1fr 1fr;gap:34px 0}.f-col:nth-child(3){border-left:0;padding-left:0}.f-col:nth-child(odd){padding-left:0;border-left:0}}
@media(max-width:560px){.f-grid{grid-template-columns:1fr}.f-col{border:0;padding:0}}

/* ---------- inner pages ---------- */
.page-hero{padding:clamp(40px,6vw,80px) 0 clamp(30px,4vw,50px);position:relative;overflow:hidden}
.page-hero h1{font-size:clamp(44px,7vw,92px);max-width:16ch}
.page-hero .lead{margin-top:20px}
.crumbs{font-size:12px;color:var(--muted);margin-bottom:20px;display:flex;gap:8px}
.crumbs a:hover{color:var(--ink)}
.banner-img{border-radius:var(--r-card);overflow:hidden;max-height:420px;margin-top:40px}
.banner-img img{width:100%;height:420px;object-fit:cover}
.prose{max-width:72ch;font-size:16.5px;color:#2b3846}
.prose p{margin-bottom:1.1em}.prose h3{font-size:28px;margin:1.6em 0 .6em}
.prose ul{list-style:disc;padding-left:1.3em;margin-bottom:1.2em}.prose li{margin-bottom:.4em}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:1000px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.2s}
.card:hover{box-shadow:0 18px 40px rgba(11,26,42,.08);transform:translateY(-2px)}
.card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.card .b{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-size:22px}.card p{font-size:14px;color:var(--muted)}
.card .lock{display:inline-flex;gap:6px;align-items:center;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.card.locked{background:var(--mist)}
.steps{counter-reset:s;display:grid;gap:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:60px 1fr;gap:16px;padding:22px 0;border-top:1px solid var(--line)}
.steps li::before{content:"0" counter(s);font-size:13px;font-weight:700;color:var(--blue);padding-top:4px}
.steps b{display:block;font-size:19px;letter-spacing:-.02em;margin-bottom:4px}.steps span{color:var(--muted);font-size:14.5px}
.fee{background:var(--denim-tex);color:#fff;border-radius:var(--r-card);padding:34px;display:flex;flex-direction:column;gap:12px}
.fee b{font-size:64px;font-weight:400;letter-spacing:-.05em;line-height:1}
.fee span{opacity:.8;font-size:14px}
.chk li{display:flex;gap:12px;padding:10px 0;font-size:15px;border-bottom:1px solid var(--line)}
.chk li::before{content:"";width:20px;height:20px;flex:none;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");margin-top:2px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media(max-width:900px){.two{grid-template-columns:1fr;gap:30px}}

/* forms */
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-size:12.5px;font-weight:700;letter-spacing:.02em}
.field input,.field select,.field textarea{font:inherit;border:1px solid #cdd3da;border-radius:14px;padding:13px 15px;background:#fff;width:100%;transition:.15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:3px solid rgba(29,74,139,.15)}
.field small{color:var(--muted);font-size:12px}
.form-card{border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(24px,4vw,40px);background:#fff}
.note{background:var(--blue-l);border-radius:14px;padding:14px 16px;font-size:13.5px;color:#25427a}
.note.warn{background:#fff6e0;color:#7a5a12}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);background:var(--ink);color:#fff;padding:13px 22px;border-radius:var(--r-pill);font-size:14px;opacity:0;pointer-events:none;transition:.3s;z-index:400}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* events page */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px;align-items:center}
.chip{padding:8px 16px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:13px;font-weight:600;background:#fff}
.chip.on{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.cal{border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.cal-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.cal-h b{font-size:20px;letter-spacing:-.02em}
.cal-h div{display:flex;gap:8px}
.cal-h button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-g .dow{padding:10px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;border-bottom:1px solid var(--line)}
.cal-g .d{min-height:92px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.cal-g .d:nth-child(7n){border-right:0}
.cal-g .d.out{background:#fafbfc}
.cal-g .d.today b{background:var(--blue);color:#fff}
.cal-g .d b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:600;color:var(--ink)}
.cal-g .d.today b{color:#fff}
.cal-g .e{display:block;margin-top:4px;padding:3px 7px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.25;background:var(--blue);color:#fff;text-align:left;width:100%}
.cal-g .e.partner{background:var(--green)}
@media(max-width:700px){.cal-g .d{min-height:56px;padding:4px}.cal-g .e{font-size:0;height:6px;padding:0}}
.legend{display:flex;gap:18px;font-size:12.5px;color:var(--muted);margin:16px 0 0}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:var(--blue)}.legend i.p{background:var(--green)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(11,26,42,.55);display:none;place-items:center;z-index:300;padding:20px}
.modal.on{display:grid}
.modal .box{background:#fff;border-radius:var(--r-card);padding:34px;max-width:480px;width:100%;position:relative}
.modal .x{position:absolute;top:14px;right:18px;font-size:26px;line-height:1}
.modal h3{font-size:28px;margin-bottom:10px}

/* directory */
.dir-bar{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:14px;margin-bottom:26px;box-shadow:0 10px 30px rgba(11,26,42,.05)}
.dir-bar .field{margin:0}
.dir-bar .field label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.dir-bar .btn{align-self:end;height:48px;justify-content:center}
@media(max-width:800px){.dir-bar{grid-template-columns:1fr}}
.doc{display:grid;grid-template-columns:78px 1fr auto;gap:18px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff}
.doc .av{width:78px;height:78px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#6f9ad3);color:#fff;display:grid;place-items:center;font-size:26px;font-weight:300}
.doc h3{font-size:20px}.doc p{font-size:13.5px;color:var(--muted)}
.doc .sp{display:inline-block;font-size:11px;font-weight:700;color:var(--green-d);background:var(--green-l);padding:3px 10px;border-radius:var(--r-pill);margin-bottom:6px}
.doc-list{display:grid;gap:14px}
@media(max-width:620px){.doc{grid-template-columns:60px 1fr}.doc .av{width:60px;height:60px;font-size:20px}.doc .btn{grid-column:1/-1}}

/* login + portal */
.login-wrap{min-height:60vh;display:grid;place-items:center;padding:30px 0 60px}
.login-card{width:min(460px,100%);border:1px solid var(--line);border-radius:28px;padding:clamp(26px,4vw,42px);background:#fff;box-shadow:0 24px 60px rgba(11,26,42,.08)}
.login-card h1{font-size:40px;margin-bottom:8px}
.otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:6px 0 16px}
.otp input{text-align:center;font-size:22px;font-weight:600;padding:12px 0;border:1px solid #cdd3da;border-radius:12px;width:100%}
.portal{display:grid;grid-template-columns:250px 1fr;gap:34px;align-items:start}.portal>*{min-width:0}   /* wide panels (card details) must not stretch the column past a phone screen */
.pnav{position:sticky;top:100px;display:grid;gap:4px;border:1px solid var(--line);border-radius:20px;padding:10px}
.pnav a{padding:11px 14px;border-radius:12px;font-weight:600;font-size:14px;display:flex;justify-content:space-between}
.pnav a:hover{background:var(--mist)}.pnav a.on{background:var(--charcoal);color:#fff}
.panel{display:none}.panel.on{display:block}
.panel>h2{font-size:38px;margin-bottom:20px}
.me{display:flex;gap:18px;align-items:center;background:var(--blue);color:#fff;border-radius:var(--r-card);padding:24px;margin-bottom:22px}
.me .av{width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:26px;font-weight:300;flex:none;overflow:hidden}
.me .av img{width:100%;height:100%;object-fit:cover}
.me b{font-size:22px;letter-spacing:-.02em;display:block}.me span{font-size:13px;opacity:.8}
.row-list{display:grid;gap:10px}
.row-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:16px}
.row-item b{display:block}.row-item small{color:var(--muted)}
.badge{font-size:11px;font-weight:700;padding:4px 11px;border-radius:var(--r-pill);background:var(--green-l);color:var(--green-d)}
.badge.gray{background:var(--mist);color:var(--muted)}
@media(max-width:860px){.portal{grid-template-columns:1fr}.pnav{position:static;grid-template-columns:repeat(2,1fr)}}
.gate{text-align:center;padding:60px 20px;border:1px dashed #c8d0d9;border-radius:var(--r-card)}
.gate h2{font-size:34px;margin-bottom:10px}

/* utilities */
.mt-1{margin-top:12px}.mt-2{margin-top:24px}.mt-3{margin-top:40px}.mt-4{margin-top:64px}
.center{text-align:center}
.reveal{opacity:0;transform:translateY(22px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
@media print{.site-header,.site-footer{display:none}}
.page-hero>.wrap{position:relative;z-index:1}

/* ---- home animations ---- */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes zoomout{from{transform:scale(1.18)}to{transform:scale(1.06)}}
@keyframes slideup{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes sheen{to{background-position:-200% 0}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(96,147,114,.5)}100%{box-shadow:0 0 0 18px rgba(96,147,114,0)}}
.hero-card .photo img{transform:scale(1.06);animation:zoomout 1.8s cubic-bezier(.2,.7,.2,1) both;will-change:transform}
.hero-copy h1,.hero-copy p,.hero-copy .btn{opacity:0;animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-copy h1{animation-delay:.15s}.hero-copy p{animation-delay:.35s}.hero-copy .btn{animation-delay:.55s}
.hero-copy h1 em{background:linear-gradient(100deg,var(--blue) 30%,#609372 50%,var(--blue) 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sheen 6s linear 1.5s infinite}
.social-rail a{opacity:0;animation:rise .7s ease forwards}
.social-rail a:nth-child(1){animation-delay:.7s}.social-rail a:nth-child(2){animation-delay:.8s}.social-rail a:nth-child(3){animation-delay:.9s}.social-rail a:nth-child(4){animation-delay:1s}
.stats{animation:slideup .9s cubic-bezier(.2,.7,.2,1) .7s both}
.hero-copy .btn-primary{animation:rise .9s cubic-bezier(.2,.7,.2,1) .55s forwards,pulse 2.4s ease-out 2s 3}
.btn svg{transition:transform .25s}.btn:hover svg{transform:translateX(4px)}
.ring{transition:transform .2s linear;will-change:transform}
.stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.stagger.reveal{opacity:1;transform:none}
.stagger.in>*{opacity:1;transform:none}
.stagger.in>*:nth-child(2){transition-delay:.12s}.stagger.in>*:nth-child(3){transition-delay:.24s}.stagger.in>*:nth-child(4){transition-delay:.36s}
.acard{transition:transform .35s ease,box-shadow .35s ease}
.stagger.in>.acard:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(11,26,42,.18)}
.acard img{transition:transform .8s ease}.acard:hover img{transform:scale(1.05)}
.bars.grow .bar{height:0;transition:height 1.2s cubic-bezier(.2,.7,.2,1)}
.bars.grow .bar::before{opacity:0;transition:opacity .6s ease 1s}
.bars.grow .bar>*{opacity:0;transition:opacity .5s ease .8s}
.bars.grow.in .bar{height:var(--h)}.bars.grow.in .bar::before,.bars.grow.in .bar>*{opacity:1}
.bars.grow.in .bar:nth-child(2){transition-delay:.12s}.bars.grow.in .bar:nth-child(3){transition-delay:.24s}.bars.grow.in .bar:nth-child(4){transition-delay:.36s}
.news>*,.people>*{transition:transform .35s ease}
.news>a:hover,.person:hover{transform:translateY(-5px)}
@media(prefers-reduced-motion:reduce){
 .hero-card .photo img,.hero-copy h1,.hero-copy p,.hero-copy .btn,.social-rail a,.stats,.hero-copy h1 em{animation:none!important;opacity:1;transform:none}
 .hero-copy h1 em{-webkit-text-fill-color:var(--blue);background:none}
 .stagger>*{opacity:1;transform:none;transition:none}
 .bars.grow .bar{height:var(--h);transition:none}.bars.grow .bar::before,.bars.grow .bar>*{opacity:1}
}

/* ---- home: calendar + upcoming cards ---- */
.legend i.a{background:#e0a21b}
.cal-g .e.dl{background:#fff4d6;color:#7a5200;border:1px solid #f0d58a}
.up-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:22px;align-items:start}
.cal.mini .cal-g .d{min-height:64px;padding:5px;font-size:11px}
.cal.mini .cal-g .e{font-size:0;height:6px;padding:0;margin-top:3px}
.cal.mini .cal-g .e.dl{height:6px;border:0;background:#e0a21b}
.up-card{border:1px solid var(--line);border-radius:var(--r-card);padding:22px;background:#fff;display:flex;flex-direction:column;gap:6px}
.up-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}.up-h h3{font-size:22px;letter-spacing:-.03em}
.up-h .dot{width:10px;height:10px;border-radius:50%;background:var(--blue)}.up-card.amber .up-h .dot{background:#e0a21b}
.uc{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line);transition:transform .25s}
.uc:hover{transform:translateX(4px)}
.uc .dbox{width:64px;text-align:center;background:var(--mist);border-radius:14px;padding:8px 4px}.uc.dl .dbox{background:#fff4d6}
.uc .dbox b{display:block;font-size:24px;font-weight:500;letter-spacing:-.04em;line-height:1}.uc .dbox span{font-size:9.5px;letter-spacing:.1em;font-weight:700;color:var(--muted)}
.uc h4{font-size:16px;font-weight:600;letter-spacing:-.02em;line-height:1.25}.uc p{font-size:12.5px;color:var(--muted);margin-top:2px}
.uc svg{width:18px;color:var(--blue)}
.uc .left{font-size:11.5px;font-weight:700;background:var(--mist);color:var(--blue);border-radius:var(--r-pill);padding:5px 10px;white-space:nowrap}.uc .left.soon{background:#ffe3df;color:#b3261e}
.up-card .more{margin-top:auto;padding-top:14px;font-size:13px;font-weight:600;color:var(--blue);display:inline-flex;gap:6px;align-items:center}.up-card .more svg{width:14px}
@media(max-width:1100px){.up-grid{grid-template-columns:1fr 1fr}.up-grid .cal{grid-column:1/-1}}
@media(max-width:700px){.up-grid{grid-template-columns:1fr}}

/* ---- about / yosicon / activities ---- */
.grp{font-size:clamp(26px,3vw,36px);margin:46px 0 18px;letter-spacing:-.03em}.grp:first-child{margin-top:0}
.card img{background:var(--mist)}
.grid-4 .card img[src*="qr-"],.grid-4 .card img[src*="poster"],.grid-4 .card img[src*="irock"]{object-fit:contain;padding:8px}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pillar{border:1px solid var(--line);border-radius:var(--r-card);padding:26px;background:#fff}
.pillar b{display:block;font-size:22px;letter-spacing:-.03em;margin-bottom:8px}.pillar p{font-size:14.5px;color:var(--muted)}
.timeline{display:grid;gap:0;position:relative}
.tl{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.tl time{font-size:clamp(26px,3vw,40px);letter-spacing:-.04em;color:var(--blue);line-height:1}
.tl b{display:block;font-size:19px;letter-spacing:-.02em}.tl span{font-size:14.5px;color:var(--muted)}
.tl.now time{color:var(--green)}
.edition{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;align-items:center;padding:34px 0;border-top:1px solid var(--line)}
.edition:nth-of-type(even){direction:rtl}.edition:nth-of-type(even)>*{direction:ltr}
.edition img{border-radius:var(--r-card);width:100%;aspect-ratio:16/10;object-fit:cover}
.edition h3{font-size:clamp(30px,3.6vw,48px);letter-spacing:-.04em;margin:6px 0 4px}
.estats{display:flex;gap:26px;flex-wrap:wrap;margin:16px 0}
.estats div b{display:block;font-size:34px;font-weight:400;letter-spacing:-.04em;color:var(--blue);line-height:1}.estats div span{font-size:12px;color:var(--muted)}
.wg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.wg .chip{background:#fff}.wg .chip.c1{border-color:#b7cdea;background:#eef4fc}.wg .chip.c2{border-color:#bfdccb;background:#eef7f1}.wg .chip.c3{border-color:#f0d58a;background:#fff8e4}
.wgkey{display:flex;gap:18px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.wgkey i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.gal-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gal-strip img{border-radius:var(--r-photo);aspect-ratio:4/3;object-fit:cover;width:100%}
.quote-card{background:var(--blue);color:#fff;border-radius:var(--r-card);padding:34px;font-size:clamp(20px,2.2vw,28px);letter-spacing:-.03em;line-height:1.25}
.quote-card small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:14px;color:#cfe0ff}
@media(max-width:900px){.pillars{grid-template-columns:1fr}.edition,.edition:nth-of-type(even){grid-template-columns:1fr;direction:ltr}.tl{grid-template-columns:76px 1fr}.gal-strip{grid-template-columns:1fr 1fr}}

/* ---- resources page ---- */
.rnav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.rnav .wrap{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.rnav a{white-space:nowrap;padding:8px 16px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:13px;font-weight:600;background:#fff}
.rnav a:hover{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.rsec{scroll-margin-top:60px}
.cert-box{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;background:var(--mist);border-radius:var(--r-card);padding:clamp(24px,4vw,48px)}
.yt-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}
.yt-player{position:relative;aspect-ratio:16/9;border-radius:var(--r-card);overflow:hidden;background:#0b1a2a}.yt-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-list{display:flex;flex-direction:column;gap:12px}
.yt-item{display:grid;grid-template-columns:128px 1fr;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:8px;background:#fff}
.yt-item:not(:has(img)){grid-template-columns:1fr;padding:18px}
.yt-item img{width:128px;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.yt-item b{font-size:14px;line-height:1.3;display:block}.yt-item small{color:var(--muted);font-size:12px}
@media(max-width:900px){.cert-box,.yt-wrap{grid-template-columns:1fr}}

/* ---- hubs, event + publication pages ---- */
.hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.hub-card{border:1px solid var(--line);border-radius:var(--r-card);padding:26px;background:#fff;display:flex;flex-direction:column;gap:8px;transition:.25s}
.hub-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,26,42,.1)}
.hub-card h3{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.04em}.hub-card p{font-size:14px;color:var(--muted)}
.hub-card .more{margin-top:auto;padding-top:12px;font-size:13px;font-weight:600;color:var(--blue);display:inline-flex;gap:6px;align-items:center}.hub-card .more svg{width:14px}
.ev h3 a:hover{color:var(--blue)}
.fact-card{border:1px solid var(--line);border-radius:var(--r-card);padding:8px 22px;background:#fff}
.fact-card>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.fact-card>div:last-child{border:0}
.fact-card span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted)}.fact-card b{font-weight:600;text-align:right}
.dl-list{display:grid;gap:0}.dl-list li{padding:12px 0;border-top:1px solid var(--line)}.dl-list b{display:block}.dl-list span{font-size:13.5px;color:var(--muted)}
.pub-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;border-top:1px solid var(--line);font-size:17px}
.pub-others{display:grid;gap:8px}.pub-others a{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border:1px solid var(--line);border-radius:14px;font-weight:600;background:#fff}.pub-others a:hover{background:var(--mist)}.pub-others small{color:var(--muted);font-weight:500}

/* ===== Vizzie assistant ===== */
.vz{position:fixed;right:14px;bottom:0;z-index:300;font-family:var(--font)}
.vz [hidden]{display:none!important}
.vz-peek{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;animation:vzIn .9s cubic-bezier(.2,1.4,.4,1) both}
.vz-char{position:relative;width:118px;height:190px;background:none;border:0;cursor:pointer;padding:0;flex:none;-webkit-tap-highlight-color:transparent}
.vz-char img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:bottom;transform-origin:50% 100%;animation:vzFloat 3.2s ease-in-out infinite,vzWave 2.4s ease-in-out .9s 3;filter:drop-shadow(0 8px 12px rgba(11,26,42,.3));transition:transform .25s}
.vz-char:hover img{transform:scale(1.06) rotate(-2deg)}
.vz-char::after{content:"Ask Vizzie";position:absolute;right:100%;bottom:70px;margin-right:6px;white-space:nowrap;background:var(--ink);color:#fff;font:700 13px var(--font);padding:7px 12px;border-radius:12px;opacity:0;transform:translateX(6px);transition:.2s;pointer-events:none}
.vz-char:hover::after,.vz-char:focus-visible::after{opacity:1;transform:none}
.vz[data-state=chat] .vz-char::after,.vz[data-state=peek] .vz-char::after{display:none}
.vz-glow{position:absolute;left:50%;bottom:2px;width:100px;height:18px;margin-left:-50px;border-radius:50%;background:radial-gradient(closest-side,rgba(29,74,139,.35),transparent);animation:vzShadow 3.2s ease-in-out infinite}
.vz-sp{position:absolute;z-index:2;width:12px;height:12px;background:#f5c04b;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:vzTwinkle 2.4s ease-in-out infinite}
.vz-sp.s1{left:-2px;top:34px}.vz-sp.s2{right:4px;top:10px;animation-delay:.8s;background:#609372}.vz-sp.s3{right:-4px;top:96px;animation-delay:1.5s;width:9px;height:9px}
.vz-bubble{position:absolute;right:100%;bottom:105px;margin-right:2px;width:max-content;max-width:190px;min-height:46px;background:#fff;color:var(--ink);border:2px solid var(--blue);border-radius:18px 18px 4px 18px;padding:11px 16px;font:700 16px/1.3 var(--font);text-align:left;cursor:pointer;box-shadow:0 10px 28px rgba(11,26,42,.18);animation:vzPop .5s both;transform-origin:100% 100%}
.vz-bubble::after{content:"";position:absolute;right:-9px;bottom:10px;width:14px;height:14px;background:#fff;border-right:2px solid var(--blue);border-top:2px solid var(--blue);transform:rotate(45deg)}
.vz-hi::after{content:"";display:inline-block;width:2px;height:1em;margin-left:2px;background:var(--blue);vertical-align:-2px;animation:vzCaret 1s steps(1) infinite}
.vz-x{position:absolute;right:100%;bottom:152px;margin-right:-12px;z-index:3;width:24px;height:24px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:16px;line-height:1;cursor:pointer;opacity:.85}
.vz-x:hover{opacity:1}
.vz.talking .vz-char img{animation:vzTalk .5s ease-in-out infinite}
.vz-panel{position:absolute;right:134px;bottom:14px;width:min(380px,calc(100vw - 170px));height:min(580px,calc(100vh - 36px));background:#fff;border-radius:22px;box-shadow:0 24px 60px rgba(11,26,42,.3);display:flex;flex-direction:column;overflow:hidden;animation:vzOpen .35s cubic-bezier(.2,1.2,.4,1) both;transform-origin:100% 100%}
.vz-panel>header{display:flex;align-items:center;gap:12px;padding:12px 14px;background:linear-gradient(135deg,var(--blue-d),var(--blue));color:#fff}
.vz-panel>header img{width:46px;height:46px;border-radius:50%;background:#dfe9ff;object-fit:cover;object-position:50% 20%;border:2px solid rgba(255,255,255,.7)}
.vz-panel>header div{flex:1;line-height:1.2}.vz-panel>header b{display:block;font-size:17px}.vz-panel>header small{opacity:.8;font-size:12px}
.vz.talking header img{animation:vzTalk .5s ease-in-out infinite}
.vz-min{background:rgba(255,255,255,.15);border:0;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer}
.vz-min:hover{background:rgba(255,255,255,.3)}
.vz-log{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px;background:var(--mist)}
.vz-m{display:flex;gap:8px;align-items:flex-end;max-width:92%;animation:vzMsg .3s both}
.vz-m.me{align-self:flex-end;justify-content:flex-end}
.vz-m>img{width:30px;height:30px;border-radius:50%;background:#dfe9ff;object-fit:cover;object-position:50% 20%;flex:none}
.vz-t{background:#fff;border-radius:16px 16px 16px 4px;padding:10px 13px;font-size:14.5px;line-height:1.5;box-shadow:0 1px 3px rgba(11,26,42,.08);overflow-wrap:anywhere}
.vz-m.me .vz-t{background:var(--blue);color:#fff;border-radius:16px 16px 4px 16px}
.vz-t ul,.vz-t ol{margin:6px 0 4px 18px}.vz-t li{margin:3px 0}.vz-t small{color:var(--muted)}.vz-t a{color:var(--blue);text-decoration:underline}
.vz-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.vz-links a{background:var(--blue-l);color:var(--blue);text-decoration:none;font-weight:700;font-size:13px;padding:6px 12px;border-radius:var(--r-pill)}
.vz-links a:hover{background:var(--blue);color:#fff}
.vz-m.typing .vz-t{display:flex;gap:4px;padding:14px}
.vz-m.typing i{width:7px;height:7px;border-radius:50%;background:var(--blue-soft);animation:vzDot 1s infinite}
.vz-m.typing i:nth-child(2){animation-delay:.15s}.vz-m.typing i:nth-child(3){animation-delay:.3s}
.vz-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 14px;background:var(--mist)}
.vz-chips:not(:empty){padding-bottom:12px}
.vz-chips button{border:1.5px solid var(--blue);background:#fff;color:var(--blue);font:700 13px var(--font);padding:7px 13px;border-radius:var(--r-pill);cursor:pointer}
.vz-chips button:hover{background:var(--blue);color:#fff}
.vz-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.vz-form input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:var(--r-pill);padding:11px 16px;font:500 14.5px var(--font)}
.vz-form input:focus{outline:0;border-color:var(--blue)}
.vz-form button{width:44px;height:44px;border-radius:50%;border:0;background:var(--blue);color:#fff;cursor:pointer;display:grid;place-items:center}
.vz-form button:hover{background:var(--blue-d)}
.vz-note{font-size:11px;color:var(--muted);padding:0 14px 10px;background:#fff;text-align:center}.vz-note a{text-decoration:underline}
@keyframes vzIn{from{transform:translateY(120%) scale(.6);opacity:0}60%{transform:translateY(-8px) scale(1.04);opacity:1}to{transform:none}}
@keyframes vzFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes vzWave{0%,100%{rotate:0deg}20%{rotate:-7deg}40%{rotate:6deg}60%{rotate:-5deg}80%{rotate:3deg}}
@keyframes vzShadow{0%,100%{transform:scaleX(1);opacity:.9}50%{transform:scaleX(.8);opacity:.55}}
@keyframes vzTwinkle{0%,100%{transform:scale(0) rotate(0);opacity:0}50%{transform:scale(1) rotate(90deg);opacity:1}}
@keyframes vzPop{from{transform:scale(.3);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}
@keyframes vzCaret{50%{opacity:0}}
@keyframes vzBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes vzPulse{0%{box-shadow:0 0 0 0 rgba(96,147,114,.7)}100%{box-shadow:0 0 0 12px rgba(96,147,114,0)}}
@keyframes vzOpen{from{transform:scale(.6) translateY(30px);opacity:0}to{transform:none;opacity:1}}
@keyframes vzMsg{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
@keyframes vzDot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
@keyframes vzTalk{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.1) rotate(-6deg)}75%{transform:scale(1.1) rotate(6deg)}}
@media (max-width:640px){.vz{right:8px}.vz-char{width:84px;height:136px}.vz-char::after{display:none}.vz-bubble{bottom:78px;max-width:160px;font-size:15px}.vz-x{bottom:124px}.vz-panel{right:0;bottom:142px;width:calc(100vw - 16px);height:calc(100vh - 170px);height:calc(100dvh - 170px);max-height:560px}}
@media (prefers-reduced-motion:reduce){.vz *{animation:none!important}.vz-sp{display:none}}

/* ===== YOSICON editions, countdown ===== */
.con-logo{width:180px;max-width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;object-fit:contain;flex:none}
.con-logo.sm{width:120px;padding:8px;border-radius:14px}
.con-head{display:flex;gap:clamp(18px,3vw,38px);align-items:center;flex-wrap:wrap}
.con-head>div{flex:1;min-width:260px}.con-head h1{max-width:20ch}
.con-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:18px}
.con-card{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:var(--r-card);padding:20px;background:#fff;transition:.25s;position:relative}
.con-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,26,42,.1)}
.con-card.up{border-color:var(--blue);background:var(--blue-l)}
.con-card h3{font-size:26px;letter-spacing:-.03em}.con-card p{font-size:14px;margin-top:4px}.con-card .eyebrow{margin-bottom:6px}
.con-card>svg{width:20px;height:20px;position:absolute;top:18px;right:18px;color:var(--blue)}
.con-imgs{display:grid;gap:14px;margin:26px 0}.con-imgs img{width:100%;border-radius:var(--r-photo);max-height:460px;object-fit:cover}
.yr-nav{display:flex;gap:8px;flex-wrap:wrap}.yr-nav a{padding:8px 16px;border:1.5px solid var(--line);border-radius:var(--r-pill);font-weight:700;font-size:14px}
.yr-nav a.on,.yr-nav a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.countdown{display:flex;gap:clamp(8px,1.6vw,16px);flex-wrap:wrap;margin-top:22px}
.countdown>div{min-width:78px;flex:1 1 78px;max-width:120px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 8px;text-align:center;box-shadow:0 8px 22px rgba(11,26,42,.07)}
.countdown b{display:block;font-size:clamp(28px,4vw,44px);line-height:1;letter-spacing:-.04em;color:var(--blue);font-variant-numeric:tabular-nums}
.countdown span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-weight:700}
.countdown.done{opacity:.6}
.cd-note{font-size:13px;color:var(--muted);margin-top:10px}
.con27{background:linear-gradient(135deg,#eaf1fb,#f3f8f5);margin:clamp(10px,2vw,24px) 0;padding:clamp(28px,4vw,52px) 0;position:relative;overflow:hidden}
.con27::before{content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;border:2px dashed rgba(29,74,139,.25);animation:conSpin 40s linear infinite}
.con27-in{display:grid;grid-template-columns:auto 1.2fr 1.3fr;gap:clamp(20px,4vw,48px);align-items:center;position:relative}
.con27-logo{display:block;width:clamp(150px,16vw,210px);background:#fff;border-radius:20px;padding:14px;box-shadow:0 14px 34px rgba(11,26,42,.12);transition:.3s}
.con27-logo:hover{transform:rotate(-2deg) scale(1.03)}
.con27 h2{font-size:clamp(36px,5vw,60px);letter-spacing:-.045em;line-height:1}.con27 .lead{margin-top:10px;max-width:42ch}
@keyframes conSpin{to{transform:rotate(360deg)}}
@media (max-width:900px){.con27-in{grid-template-columns:1fr;justify-items:start}.con27-logo{width:150px}}
@media (prefers-reduced-motion:reduce){.con27::before{animation:none}}

/* ===== Calculators ===== */
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:start}
.calc-out{border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(20px,3vw,30px);background:var(--mist);display:grid;gap:12px;position:sticky;top:90px}
.calc-out .big{background:#fff;border-radius:18px;padding:18px;text-align:center;border:1px solid var(--line)}
.calc-out .big b{display:block;font-size:clamp(36px,5vw,52px);letter-spacing:-.04em;color:var(--blue);line-height:1.1}
.calc-out .big span{font-size:13px;color:var(--muted);font-weight:600}
.chk-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;background:#fff;border-radius:14px;padding:12px 14px;border-left:5px solid var(--green)}
.chk-row.bad{border-left-color:#d0842c}.chk-row small{display:block;font-size:12px;color:var(--muted);font-weight:500}
.chk-row i{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d)}.chk-row.bad i{color:#b36a14}
.verdict{border-radius:14px;padding:14px 16px;font-size:15px}.verdict.ok{background:var(--green-l);color:var(--green-d)}.verdict.bad{background:#fdecd6;color:#8a4d0c}
.warn-line{font-size:14px;color:#8a4d0c;font-weight:600}
@media (max-width:860px){.calc-grid{grid-template-columns:1fr}.calc-out{position:static}}
.nav a,.nav .has-sub>a{white-space:nowrap}
.form-card .h3{margin-bottom:12px}

/* ===== YOSI Session application ===== */
.ys-card{border:1.5px solid var(--blue);background:var(--blue-l);border-radius:var(--r-card);padding:clamp(20px,3vw,30px);margin-top:24px}
.ys-card h3{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.03em;margin:4px 0 6px}
.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.role-pick label{cursor:pointer}.role-pick input{position:absolute;opacity:0;pointer-events:none}
.role-pick span{display:block;border:1.5px solid var(--line);border-radius:16px;padding:16px;transition:.15s;background:#fff}
.role-pick b{display:block;font-size:17px}.role-pick small{color:var(--muted)}
.role-pick input:checked+span{border-color:var(--blue);background:var(--blue-l);box-shadow:0 0 0 3px rgba(29,74,139,.14)}
.role-pick input:focus-visible+span{outline:3px solid rgba(29,74,139,.35)}
.field input[readonly]{background:var(--mist);color:var(--muted)}
.field-err{color:#a4410c;font-weight:600;font-size:14px;margin:4px 0 14px}
@media (max-width:520px){.role-pick{grid-template-columns:1fr}}
@media (min-width:1081px) and (max-width:1340px){.nav>li>a{padding:7px 10px;font-size:12.5px}.nav{gap:3px}}

/* ===== Eye Siksha ===== */
.partner-logos{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0 22px}
.partner-logos .pl{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:16px;padding:10px 16px;background:#fff}
.partner-logos img{width:44px;height:44px;object-fit:contain}.partner-logos span{font-weight:600;font-size:14px}
.team-wrap{margin-top:8px}
details.team-d{border-top:1px solid var(--line);padding:14px 0}details.team-d:last-child{border-bottom:1px solid var(--line)}
details.team-d summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between}
details.team-d summary::-webkit-details-marker{display:none}details.team-d summary::after{content:"+";font-size:20px;font-weight:300}
details.team-d[open] summary::after{content:"–"}
.team-l{list-style:none;margin:12px 0 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 18px}
.team-l li b{display:block;font-size:14.5px}.team-l li span{font-size:13px;color:var(--muted)}
.chk-grid{display:flex;flex-wrap:wrap;gap:10px 22px}.chk-grid label,.consent{display:flex;gap:9px;align-items:center;font-size:14.5px;cursor:pointer}
.chk-grid input,.consent input{width:auto}
.consent{margin:16px 0;align-items:flex-start;font-size:14px}
.pay-box{background:var(--blue-l);border-radius:16px;padding:16px 18px;display:grid;gap:4px;margin:14px 0;text-align:left}.pay-box span{font-size:14px;color:var(--muted)}
.rep-row{display:flex;gap:8px;margin-bottom:8px}.rep-row input{flex:1;min-width:0;font:inherit;border:1px solid #cdd3da;border-radius:12px;padding:11px 13px}
.rep-row .x{width:38px;border:0;background:var(--mist);border-radius:50%;cursor:pointer;font-size:18px}
.json-out{background:var(--ink);color:#d9e4f2;border-radius:16px;padding:18px;overflow:auto;max-height:340px;font-size:12px;margin-top:14px}

/* ===== Eye Siksha map ===== */
.esmap{--zn:#2a4d8f;--zs:#e0793f;--ze:#3f9a6a;--zw:#c2487a;--zc:#7d5bbf;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.esmap-stage{position:relative;max-width:560px;width:100%;margin:0 auto}
.esmap-svg{width:100%;height:auto;display:block;overflow:visible}
.st{stroke:#fff;stroke-width:.9;stroke-linejoin:round;opacity:0;transform:translateY(8px);transition:opacity .35s,filter .25s}
.z-n{fill:var(--zn)}.z-s{fill:var(--zs)}.z-e{fill:var(--ze)}.z-w{fill:var(--zw)}.z-c{fill:var(--zc)}.st.z-x{fill:#cfd6de}
.esmap.in .st{animation:stIn .7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*22ms)}
@keyframes stIn{to{opacity:.88;transform:none}}
.st.rest{animation:none!important;opacity:.88;transform:none}.st.rest,.st{transition:opacity .35s,transform .4s cubic-bezier(.2,.8,.2,1),filter .4s}
.esmap-stage::after{content:"";position:absolute;left:12%;right:12%;bottom:-2%;height:26px;background:radial-gradient(closest-side,rgba(16,35,63,.28),transparent);filter:blur(6px);opacity:0;transition:opacity .4s;pointer-events:none}
.esmap.hl .esmap-stage::after{opacity:1}
.zone{cursor:pointer;outline:none;transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .4s,opacity .35s}
.pz{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.esmap.hl .zone:not(.on){opacity:.35}
.esmap.hl .zone.on,.esmap.hl .pz.on{transform:translate(-3px,-9px)}
.esmap.hl .zone.on{filter:drop-shadow(5px 14px 9px rgba(16,35,63,.45))}
.esmap.hl .zone.on .st.rest{opacity:1}
.zone:focus-visible .st{stroke:#10233f;stroke-width:1.6}
.es-pin{cursor:pointer;opacity:0;transform-box:fill-box;transform-origin:50% 100%}
.esmap.in .es-pin{animation:pinDrop .6s cubic-bezier(.3,1.5,.5,1) forwards;animation-delay:calc(1.1s + var(--p)*120ms)}
@keyframes pinDrop{from{opacity:0;transform:translateY(-26px)}to{opacity:1;transform:none}}
.es-pin .pb{fill:#fff;stroke:#10233f;stroke-width:1.4}.es-pin.up .pb{fill:#ffc83d}.es-pin.done .pb{fill:#10233f;stroke:#fff}
.es-pin .pr{fill:none;stroke:#ffc83d;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pinPulse 2s ease-out infinite}
@keyframes pinPulse{from{transform:scale(.5);opacity:.9}to{transform:scale(2.6);opacity:0}}
.es-pin:hover .pb,.es-pin:focus .pb{stroke-width:2.4}.es-pin:focus{outline:none}
.esmap-tip{position:absolute;z-index:3;pointer-events:none;background:#10233f;color:#fff;border-radius:12px;padding:9px 13px;font-size:13px;line-height:1.35;max-width:230px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.esmap-tip b{display:block;font-size:14px}.esmap-tip small{opacity:.8}
.zl-list{display:grid;gap:8px;margin:22px 0 14px}
.zl{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;text-align:left;transition:transform .2s,box-shadow .2s}
.zl:hover,.zl.on{transform:translateX(4px);box-shadow:0 6px 18px rgba(16,35,63,.12)}
.zl i{width:14px;height:14px;border-radius:50%;flex:none}.zl.z-n i{background:var(--zn)}.zl.z-s i{background:var(--zs)}.zl.z-e i{background:var(--ze)}.zl.z-w i{background:var(--zw)}.zl.z-c i{background:var(--zc)}
.zl span{flex:1}.zl b{font-weight:500;font-size:13px;color:var(--muted)}
.pin-key{display:flex;gap:22px;font-size:14px;color:var(--muted);margin-bottom:18px}.pin-key span{display:flex;align-items:center;gap:8px}
.pk{width:14px;height:14px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #10233f}.pk.up{background:#ffc83d}.pk.done{background:#10233f}
.esmap-cta{display:flex;flex-wrap:wrap;gap:12px}
.esmap-credit{grid-column:1/-1;font-size:11px;color:var(--muted);text-align:center;margin-top:-10px}
@media(max-width:860px){.esmap{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.st,.es-pin{opacity:.9!important;transform:none!important;animation:none!important}.es-pin .pr{animation:none}}

/* ===== Publication submissions ===== */
.pub-pick{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.role-pick label.off{opacity:.45;cursor:not-allowed}
.role-pick input:checked+span{border-color:var(--blue,#274b8f);box-shadow:0 0 0 3px rgba(39,75,143,.15)}
.form-card input[type=file]{padding:10px;background:#fff}
@media(max-width:560px){.role-pick{grid-template-columns:1fr}}

/* ===== YOSICON 2027 landing ===== */
.c27-banner{display:flex;gap:clamp(20px,4vw,54px);align-items:center;flex-wrap:wrap;margin-top:6px}
.c27-logo{width:clamp(150px,20vw,240px);height:auto}
.c27-banner>div{flex:1;min-width:280px}
.c27-banner h1{font-size:clamp(34px,5.4vw,70px);max-width:16ch;margin:6px 0 16px}
.c27-facts{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:20px}
.c27-facts span{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:600;font-size:15px}
.c27-facts svg{width:16px;height:16px;color:var(--blue)}
.c27-cta{display:flex;flex-wrap:wrap;gap:12px}
.btn.off{opacity:.55;cursor:not-allowed;pointer-events:none}
.c27-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.c27-nav a{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:600}
.c27-nav a:hover{border-color:var(--ink)}
.c27-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.act-card{border:1px solid var(--line);border-radius:var(--r-card,24px);padding:28px;background:#fff;display:grid;gap:12px;align-content:start;box-shadow:0 10px 30px rgba(11,26,42,.06)}
.act-card .btn{justify-self:start;margin-top:6px}
.section.tint{background:var(--mist,#f3f6fa)}
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:24px}
.hl{background:#fff;border-radius:22px;padding:26px;border:1px solid var(--line)}.hl i{font-style:normal;font-weight:800;font-size:34px;color:var(--blue);opacity:.25;letter-spacing:-.04em}
.hl h3{font-size:20px;margin:6px 0}.hl p{color:var(--muted);font-size:15px}
.gl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;margin-top:24px}
.gl{position:relative;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);aspect-ratio:3/4;outline:none}
.gl-ph{position:absolute;inset:0;background:linear-gradient(160deg,#dbe6f6,#bcd0ec);display:grid;place-items:center}
.gl-ph img{width:100%;height:100%;object-fit:cover}.gl-ph span{font-size:64px;font-weight:800;color:#fff;letter-spacing:-.04em}
.gl-t{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;background:linear-gradient(transparent,rgba(11,26,42,.85));color:#fff}
.gl-t b{display:block;font-size:17px}.gl-t small{opacity:.85;font-size:13px}
.gl-cv{position:absolute;inset:0;background:rgba(16,35,63,.94);color:#fff;padding:22px;display:flex;flex-direction:column;justify-content:center;gap:8px;opacity:0;transform:translateY(16px);transition:.3s}
.gl-cv p{font-size:14px;line-height:1.55;opacity:.92}
.gl:hover .gl-cv,.gl:focus .gl-cv,.gl:focus-within .gl-cv{opacity:1;transform:none}
.gl-s{position:absolute;top:12px;left:12px;font-style:normal;font-size:11px;font-weight:700;background:#ffc83d;color:#10233f;border-radius:999px;padding:3px 10px}
.cf{margin-top:30px;padding-bottom:10px;outline:none;overflow:hidden}
.cf-stage{position:relative;height:clamp(380px,48vw,470px);perspective:1300px;max-width:1000px;margin:0 auto}
.cf-card{position:absolute;left:50%;top:0;width:min(300px,64vw);margin-left:calc(min(300px,64vw)/-2);transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .5s;cursor:pointer;transform-style:preserve-3d}
.cf-face{aspect-ratio:3/4;border-radius:22px;overflow:hidden;box-shadow:0 24px 50px rgba(11,26,42,.28);background:#fff}
.cf-face img{width:100%;height:100%;object-fit:cover}
.cf-face.ph{background:linear-gradient(155deg,#1d4a8b,#10233f);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px}
.cf-face.ph .cf-logo{width:120px;height:auto;background:#fff;border-radius:18px;padding:10px;object-fit:contain}.cf-face.ph b{font-size:24px;letter-spacing:-.02em}.cf-face.ph small{opacity:.8;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.cf-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;opacity:0;transition:opacity .4s}.cf-card.on .cf-meta{opacity:1}
.cf-meta small{display:block;color:var(--muted);font-size:13px}
.cf-ctl{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:6px}
.cf-b{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer}.cf-b svg{width:16px;height:16px}.cf-b:hover{border-color:var(--ink)}
.cf-dots{display:flex;gap:8px}.cf-dots button{width:9px;height:9px;border-radius:50%;background:#cdd5df;border:0;padding:0;cursor:pointer;transition:.2s}.cf-dots button.on{background:var(--blue);width:24px;border-radius:6px}
.lt-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:26px 0 12px;flex-wrap:wrap}
.letter-sheet{background:#fff;border:1px solid var(--line);border-radius:6px;padding:clamp(22px,4vw,48px);box-shadow:0 14px 40px rgba(11,26,42,.1);font-size:15px;line-height:1.65}
.letter-sheet p{margin-bottom:12px}.lt-head{display:flex;gap:16px;align-items:center;border-bottom:2px solid var(--blue);padding-bottom:12px;margin-bottom:18px}.lt-head img{height:54px;width:auto}.lt-head small{color:var(--muted)}
.lt-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px;color:var(--muted)}.lt-foot{font-size:12px;color:var(--muted);margin-top:26px}
#c27-letters .tabs{margin-bottom:20px}
@media(prefers-reduced-motion:reduce){.cf-card{transition:none}}

.yn-yr{margin:26px 0 6px}.yn-yr:first-child{margin-top:0}

.yn-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
body.rd-open{overflow:hidden}
.rd{position:fixed;inset:0;z-index:2000;background:linear-gradient(160deg,rgba(40,100,190,.34),rgba(20,60,130,.46));-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);display:flex;flex-direction:column;color:#fff;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.rd-top{display:flex;align-items:center;gap:14px;padding:12px 16px}.rd-top b{flex:1;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-n{font-size:.85rem;opacity:.8}
.rd-x{background:none;border:0;color:#fff;font-size:2rem;line-height:1;cursor:pointer;padding:0 6px}
.rd-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 10px}
.rd-pg{position:relative;height:100%;max-width:100%;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 18px 40px rgba(0,0,0,.5))}
.rd-pg img{max-height:100%;max-width:100%;object-fit:contain;background:#fff;pointer-events:none;-webkit-user-drag:none}
.rd-shield{position:absolute;inset:0}
.rd-b{flex:none;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:1.9rem;line-height:1;cursor:pointer}.rd-b:hover:not(:disabled){background:rgba(255,255,255,.3)}.rd-b:disabled{opacity:.25;cursor:default}
.rd-foot{text-align:center;font-size:.78rem;opacity:.7;padding:10px}
@media(max-width:640px){.rd-b{position:absolute;bottom:44px;z-index:2}.rd-p{left:14px}.rd-nx{right:14px}.rd-stage{padding:0}}
@media print{.rd{display:none}}

.rd-pg{perspective:2200px;perspective-origin:20% 50%}
.rd-pg{overflow:visible}
.rd-leaf{position:absolute;transform-origin:left center;transform-style:preserve-3d;pointer-events:none;z-index:2;will-change:transform}
.rd-lf{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;box-shadow:0 0 30px rgba(0,0,0,.3)}
.rd-fs{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,0) 70%);backface-visibility:hidden;-webkit-backface-visibility:hidden;opacity:0}
.rd-lb{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(270deg,#f6f3ec,#e2ddd0);box-shadow:0 0 30px rgba(0,0,0,.3)}
.rd-shade{position:absolute;pointer-events:none;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,0) 55%)}
.rd-b{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25)}
.rd-top,.rd-foot{background:rgba(255,255,255,.07)}
.rd-top,.rd-foot{background:rgba(20,60,130,.5)}
.rd-logo{height:34px;width:auto;flex:none;pointer-events:none}.rd-top b{text-align:center}@media(max-width:640px){.rd-logo{height:26px}.rd-top b{font-size:.8rem}}

.dl-lock{position:relative;opacity:.88}.dl-lock svg{width:13px;height:13px;margin-right:7px;vertical-align:-1px}
.dl-lock::after{content:attr(data-tip);position:absolute;right:0;bottom:calc(100% + 10px);background:#14213d;color:#fff;font-size:.78rem;font-weight:500;line-height:1.3;padding:7px 11px;border-radius:8px;white-space:nowrap;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s,transform .18s;z-index:5;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.dl-lock::before{content:"";position:absolute;right:22px;bottom:calc(100% + 4px);border:6px solid transparent;border-top-color:#14213d;border-bottom:0;opacity:0;transition:opacity .18s;pointer-events:none;z-index:5}
.dl-lock:hover::after,.dl-lock:focus-visible::after{opacity:1;transform:none}.dl-lock:hover::before,.dl-lock:focus-visible::before{opacity:1}

.yp-bar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:6px 0 20px}
.yp-chips{display:flex;gap:8px;flex-wrap:wrap}
.yp-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--ink,#14213d)}
.yp-chip.on,.yp-chip:hover{background:var(--blue,#1d4a8b);border-color:var(--blue,#1d4a8b);color:#fff}
.yp-search{border:1px solid var(--line);border-radius:999px;padding:9px 16px;font:inherit;font-size:14px;min-width:220px;background:#fff}
.yp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.yp-card{display:flex;flex-direction:column;gap:8px;text-align:left;border:1px solid var(--line);border-radius:var(--r-card,18px);background:#fff;padding:10px 10px 14px;font:inherit;cursor:pointer;transition:transform .18s,box-shadow .18s}
.yp-card:hover,.yp-card:focus-visible{transform:translateY(-4px);box-shadow:0 14px 30px rgba(20,40,80,.14)}
.yp-th{position:relative;display:block;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#1d4a8b,#3b7bd0)}
.yp-th img{width:100%;height:100%;object-fit:cover;display:block}
.yp-play{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92)}
.yp-play::after{content:"";position:absolute;left:13px;top:10px;border-left:11px solid #1d4a8b;border-top:7px solid transparent;border-bottom:7px solid transparent}
.yp-t{font-weight:700;font-size:15px;line-height:1.3;padding:0 4px}.yp-card small{color:var(--muted);font-size:12px;padding:0 4px}
.ytm-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:10px 16px 24px}
.ytm-frame{position:relative;width:min(1100px,100%);aspect-ratio:16/9;max-height:calc(100vh - 150px);border-radius:14px;overflow:hidden;background:#000;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.ytm-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ytm-yt{color:#fff;font-size:13.5px;text-decoration:underline;display:inline-flex;gap:6px;align-items:center}.ytm-yt svg{width:13px;height:13px}
.ytm-share{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.ytm{touch-action:auto;-webkit-user-select:auto;user-select:auto}

.zp-ov{position:fixed;inset:0;z-index:2000;background:rgba(16,35,63,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px;animation:zpIn .2s ease}
@keyframes zpIn{from{opacity:0}to{opacity:1}}
.zp{background:#fff;border-radius:22px;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.35);border-top:8px solid var(--zn);animation:zpUp .28s cubic-bezier(.2,.8,.2,1)}
@keyframes zpUp{from{transform:translateY(16px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.zp.z-s{border-top-color:var(--zs)}.zp.z-e{border-top-color:var(--ze)}.zp.z-w{border-top-color:var(--zw)}.zp.z-c{border-top-color:var(--zc)}.zp.z-n{border-top-color:var(--zn)}
.zp header{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 4px}.zp h3{font-size:26px;margin:4px 0 0}
.zp-x{background:none;border:0;font-size:30px;line-height:1;cursor:pointer;color:var(--muted)}
.zp section{padding:14px 26px}.zp h4{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.zp h4 i{font-style:normal;background:#eef2f8;border-radius:999px;padding:1px 8px;margin-left:6px}
.zp-mem{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.zp-mem li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px}.zp-mem img,.zp-av{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:#e6ecf5;display:grid;place-items:center;font-weight:700;color:#1d4a8b}
.zp-ev{list-style:none;margin:0;padding:0;display:grid;gap:8px}.zp-ev a{display:block;border:1px solid var(--line);border-radius:12px;padding:10px 14px;transition:background .15s}.zp-ev a:hover{background:#f4f7fc}.zp-ev b{display:block;font-size:14.5px}.zp-ev small{color:var(--muted);font-size:12.5px}
.zp footer{padding:6px 26px 24px}
/* archive search + topic chips */
.yn-tools{margin-bottom:18px}.yn-q{width:100%;max-width:420px;padding:11px 16px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:14px;background:#fff}
.yn-tools .chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.yn-tools .chip{cursor:pointer;font:inherit;font-size:13px;font-weight:600;padding:7px 14px;color:var(--ink)}.yn-tools .chip.on,.yn-tools .chip:hover{background:var(--blue);border-color:var(--blue);color:#fff}

/* What's happening now banner (homepage) */
.live-now{background:#14213d;color:#fff;border-bottom:3px solid #e5484d}
.live-now .ln-in{max-width:1200px;margin:0 auto;padding:10px var(--gutter);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.live-now .ln-dot{width:11px;height:11px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 0 0 rgba(255,77,79,.7);animation:lnp 1.6s infinite;flex:none}
@keyframes lnp{70%{box-shadow:0 0 0 10px rgba(255,77,79,0)}100%{box-shadow:0 0 0 0 rgba(255,77,79,0)}}
.live-now b{letter-spacing:.12em;font-size:12.5px}.live-now .ln-t{flex:1;min-width:200px;font-weight:600}.live-now .ln-t i{font-weight:400;opacity:.8}
.live-now .ln-one .btn{padding:8px 18px;font-size:14px;background:#e5484d;color:#fff}.live-now .ln-one .btn:hover{background:#c93a3f}
.live-now.many .ln-in{display:block;padding-top:14px;padding-bottom:16px;animation:lnx .35s ease}
@keyframes lnx{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.live-now .ln-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.live-now .ln-n{opacity:.85;font-size:14px}.live-now .ln-all{margin-left:auto;color:#fff;font-weight:600;font-size:14px}
.live-now .ln-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.live-now .ln-card{display:flex;flex-direction:column;gap:4px;background:#ffffff14;border:1px solid #ffffff33;border-radius:12px;padding:12px 14px;color:#fff;text-decoration:none}.live-now .ln-card:hover{background:#ffffff26}
.live-now .ln-top{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.live-now .ln-card b{letter-spacing:0;font-size:16px;line-height:1.25}.live-now .ln-sp{font-size:13px;opacity:.85}.live-now .ln-go{font-weight:700;color:#ffb3b5;font-size:14px;margin-top:2px}
@media(prefers-reduced-motion:reduce){.live-now .ln-dot,.live-now.many .ln-in{animation:none}}

/* ---- calendar colour categories (YOSI Online / Physical / YOSICON / India / International) ---- */
:root{--c-yosi_online:#0f8a8a;--c-yosi_physical:#1d4a8b;--c-yosi_event:#d9480f;--c-yosicon:#b4235a;--c-india:#3f8f4f;--c-state:#0284c7;--c-intl:#7040b5}
.cal-g .e.c-yosi_online,.cpill.c-yosi_online,.cdot.c-yosi_online{background:var(--c-yosi_online)}
.cal-g .e.c-yosi_physical,.cpill.c-yosi_physical,.cdot.c-yosi_physical{background:var(--c-yosi_physical)}
.cal-g .e.c-yosicon,.cpill.c-yosicon,.cdot.c-yosicon{background:var(--c-yosicon)}
.cal-g .e.c-india,.cpill.c-india,.cdot.c-india{background:var(--c-india)}
.cal-g .e.c-intl,.cpill.c-intl,.cdot.c-intl{background:var(--c-intl)}
.cal-g .e.c-yosi_event,.cpill.c-yosi_event,.cdot.c-yosi_event{background:var(--c-yosi_event)}
.cal-g .e.c-state,.cpill.c-state,.cdot.c-state{background:var(--c-state)}
.cal-g .e{display:flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-g .e.cont{opacity:.72}
.yi{width:13px;height:13px;border-radius:50%;background:#fff;padding:1px;flex:none;vertical-align:-2px;margin-right:4px}
.cal-g .e .yi{margin-right:0}
.cpill{display:inline-flex;align-items:center;gap:4px;color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;font-style:normal;letter-spacing:.02em}
.cpill.yosi-s{background:#fff;color:var(--blue);border:1px solid var(--blue)}
.cpill.yosi-s .yi{margin:0;padding:0}
.cdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.eyebrow .cdot{margin-right:8px}
.legend{flex-wrap:wrap;row-gap:8px}
.legend i.c-yosi_online{background:var(--c-yosi_online)}.legend i.c-yosi_physical{background:var(--c-yosi_physical)}.legend i.c-yosicon{background:var(--c-yosicon)}.legend i.c-india{background:var(--c-india)}.legend i.c-intl{background:var(--c-intl)}.legend i.c-yosi_event{background:var(--c-yosi_event)}.legend i.c-state{background:var(--c-state)}
.legend .yi{width:14px;height:14px;border:1px solid var(--line);margin:0 6px 0 0}
.cal.mini .cal-g .e.has-yi{background-image:radial-gradient(circle,#fff 1.6px,transparent 2px);background-size:8px 6px;background-repeat:no-repeat;background-position:3px center}
.cal.mini .cal-g .e .yi{display:none}
.cal.mini .cal-g .e.dl{background:#e0a21b}
.ev-act{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
details.atc{position:relative;font-size:13px}
details.atc summary{list-style:none;cursor:pointer;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-weight:600;color:var(--blue);white-space:nowrap;background:#fff}
details.atc summary::-webkit-details-marker{display:none}
details.atc[open] summary{border-color:var(--blue)}
.atc-m{position:absolute;right:0;z-index:20;top:calc(100% + 6px);min-width:190px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(11,26,42,.14);padding:6px;display:flex;flex-direction:column}
.atc-m a,.atc-m button{text-align:left;padding:9px 12px;border-radius:8px;font:inherit;font-size:13px;color:var(--ink);background:none;border:0;cursor:pointer}
.atc-m a:hover,.atc-m button:hover{background:#f1f5fb}
.cal-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.ys-note{background:#eef4ff;border-color:#c9dafc}
@media(max-width:700px){.ev-act{align-items:flex-start}.cal-g .e .yi{display:none}}
.cal-g{grid-template-columns:repeat(7,minmax(0,1fr))}
.legend .yi{border:1px solid var(--blue);display:inline-block}
.legend span{display:inline-flex;align-items:center}
.ev img[src$="icon.png"]{object-fit:contain;padding:20px;background:#f1f5fb}
/* ---- YOSI events: programme on the event page, rating stars (portal.js) ---- */
.prog{border-top:1px solid var(--line);margin-top:8px}
.prog .ps{display:grid;grid-template-columns:74px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.prog .pt{font-weight:700;font-size:15px;color:var(--blue)}.prog .pt small{display:block;font-weight:500;color:var(--muted);font-size:12.5px}
.prog .ptk{list-style:none!important;padding:0!important;margin:6px 0 0!important}.prog .ptk li{font-size:14.5px;padding:3px 0;margin:0}
.stars{display:flex;gap:8px;flex-wrap:wrap}.stars label{cursor:pointer}.stars input{position:absolute;opacity:0}
.stars span{display:inline-block;padding:9px 14px;border:1px solid #cdd3da;border-radius:12px;font-weight:600}.stars input:checked+span{background:var(--blue);color:#fff;border-color:var(--blue)}
.stars input:focus-visible+span{outline:3px solid rgba(29,74,139,.25)}
/* ---- Join YOSI: three steps ---- */
.join-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.js-card{border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px;background:#fff;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;scroll-margin-top:90px}
.js-card h3{font-size:21px;letter-spacing:-.02em}.js-n{width:44px;height:44px;border-radius:50%;background:var(--green-l);color:var(--green-d);display:grid;place-items:center;font-weight:800;font-size:18px}
.js-opt{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px;cursor:pointer}.js-opt input{margin-top:4px;flex:none}
@media (max-width:1000px){.join-steps{grid-template-columns:1fr}}
/* ---- homepage: journey pathways ---- */
.paths{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.path{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px;background:#fff;transition:transform .2s,box-shadow .2s,border-color .2s;min-height:250px}
.path:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 18px 40px -24px rgba(11,26,42,.4)}
.path h3{font-size:22px;letter-spacing:-.025em}.path p{color:var(--muted);font-size:14.5px}.path .eyebrow{margin-bottom:4px}
.path .more{margin-top:auto;font-weight:700;font-size:14px;display:flex;gap:6px;align-items:center}.path .more svg{width:14px;height:14px}
.path.dark{background:var(--blue);border-color:var(--blue);color:#fff}.path.dark p{color:#d6e2f5}.path.dark .eyebrow{color:#cfe0ff}
@media (max-width:1000px){.paths{grid-template-columns:1fr 1fr}}@media (max-width:560px){.paths{grid-template-columns:1fr}.path{min-height:0}}
/* ---- homepage: journey pathways ---- */
.paths{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.path{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px;background:#fff;transition:transform .2s,box-shadow .2s,border-color .2s;min-height:250px}
.path:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 18px 40px -24px rgba(11,26,42,.4)}
.path h3{font-size:22px;letter-spacing:-.025em}.path p{color:var(--muted);font-size:14.5px}.path .eyebrow{margin-bottom:4px}
.path .more{margin-top:auto;font-weight:700;font-size:14px;display:flex;gap:6px;align-items:center}.path .more svg{width:14px;height:14px}
.path.dark{background:var(--blue);border-color:var(--blue);color:#fff}.path.dark p{color:#d6e2f5}.path.dark .eyebrow{color:#cfe0ff}
@media (max-width:1000px){.paths{grid-template-columns:1fr 1fr}}@media (max-width:560px){.paths{grid-template-columns:1fr}.path{min-height:0}}
/* Vizzie tucked away on task pages (forms, registration, member area): small, no greeting bubble */
.vz.vz-tuck .vz-char{width:62px;height:100px}.vz.vz-tuck .vz-bubble,.vz.vz-tuck .vz-x,.vz.vz-tuck .vz-sp{display:none}.vz.vz-tuck .vz-glow{width:56px;margin-left:-28px}
.vz.vz-tuck[data-state=chat] .vz-char{width:118px;height:190px}
/* Webinars page */
.wb-steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:14px}
.wb-steps li{counter-increment:s;position:relative;padding-left:46px;font-size:15px;color:var(--muted)}
.wb-steps li b{color:var(--ink);display:block}
.wb-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.wb-card img{aspect-ratio:16/9}
.wb-card h3 a:hover{text-decoration:underline}
.wb-card .more{font-weight:700;font-size:13.5px;display:inline-flex;gap:6px;align-items:center;color:var(--blue)}.wb-card .more svg{width:13px;height:13px}
.wb-ph-t{display:none}.wb-ph .wb-ph-t{display:block}
.wb-ph{aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),#0b1a2a);color:#fff;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:13px}
.wr-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:620px){.wr-dates{grid-template-columns:1fr}}
/* ---------- YOSI Wings: menu panel ---------- */
.hdr{position:relative}
.nav>li.mega-li{position:static}
.sub.mega{left:50%;width:min(1180px,calc(100vw - 32px));transform:translate(-50%,6px)}
.nav>li.mega-li:hover .sub.mega,.nav>li.mega-li:focus-within .sub.mega{transform:translate(-50%,0)}
.mega .mega-in{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;background:#fff;border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;padding:16px 12px 8px;box-shadow:0 20px 50px rgba(11,26,42,.12)}
.mega .mega-col{padding:2px 4px;min-width:0}
.mega .mega-col ul{background:none;border:0;box-shadow:none;padding:0;border-radius:0}
.mega a.mega-h{display:block;padding:8px 10px 10px;margin-bottom:4px;border-radius:12px;border-top:3px solid var(--wc)}
.mega a.mega-h b{display:block;font-size:12.5px;letter-spacing:.08em;color:var(--wc)}
.mega a.mega-h small{display:block;font-size:11.5px;color:var(--muted);font-weight:500;line-height:1.3;margin-top:2px}
.mega .mega-col li a{padding:5px 10px;font-size:13px;line-height:1.3;white-space:normal}
.mega .mega-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--mist);border:1px solid var(--line);border-top:0;border-radius:0 0 22px 22px;padding:10px 22px;font-size:13px;box-shadow:0 20px 50px rgba(11,26,42,.12)}
.mega .mega-foot a{display:inline-flex;gap:6px;align-items:center;padding:0;font-weight:700}.mega .mega-foot a:hover{background:none;text-decoration:underline}.mega .mega-foot svg{width:12px;height:12px}
.mega .mega-foot span a{display:inline;font-weight:700}
@media(max-width:1080px){
  .nav>li.mega-li{position:relative}
  .sub.mega{width:auto;transform:none!important}
  .mega .mega-in{display:block;border:0;box-shadow:none;padding:0 0 4px 12px;border-radius:0}
  .mega .mega-col ul{display:none}
  .mega a.mega-h{border:0;border-left:3px solid var(--wc);border-radius:0;padding:8px 12px;margin:2px 0}
  .mega a.mega-h small{display:none}
  .mega .mega-foot{background:none;border:0;box-shadow:none;padding:6px 12px 10px 24px}
}
/* ---------- YOSI Wings: wing and activity pages ---------- */
.wing-hero{background:linear-gradient(180deg,color-mix(in srgb,var(--wl) 32%,#fff) 0%,#fff 100%)}
.wing-hero .eyebrow{color:var(--wc)}.wing-hero .ring{border-color:color-mix(in srgb,var(--wl) 60%,transparent)}
.wdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--wc);margin-right:8px;vertical-align:1px}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.wcard{border:1px solid var(--line);border-top:4px solid var(--wc);border-radius:var(--r-card);padding:22px;display:flex;flex-direction:column;gap:8px;background:#fff;transition:.2s}
.wcard:hover{box-shadow:0 18px 40px rgba(11,26,42,.08);transform:translateY(-2px)}
.wcard h3{font-size:21px}.wcard p{font-size:14px;color:var(--muted)}.wcard .more{margin-top:auto;color:var(--wc);font-weight:700;font-size:13.5px;display:inline-flex;gap:6px;align-items:center}.wcard .more svg{width:12px;height:12px}
.wchips{display:flex;gap:8px;flex-wrap:wrap}.wchip{padding:8px 16px;border-radius:99px;border:1.5px solid var(--wc);color:var(--wc);font-weight:700;font-size:13px;background:#fff}.wchip:hover{background:var(--wc);color:#fff}
.wtwo{grid-template-columns:minmax(0,1fr) 300px;align-items:start}
.wside{border:1px solid var(--line);border-left:4px solid var(--wc);border-radius:16px;padding:16px 18px;background:#fff}
.wside-h{display:block;font-weight:800;color:var(--wc);margin:2px 0 8px;letter-spacing:.04em}
.wside ul{list-style:none;padding:0;margin:0}.wside li a{display:block;padding:6px 8px;border-radius:8px;font-size:14px}.wside li a:hover{background:var(--mist)}.wside li a.on{background:var(--mist);font-weight:700}
.wpn{display:flex;justify-content:space-between;gap:12px;margin-top:40px;border-top:1px solid var(--line);padding-top:16px;font-weight:600}
.wlinks{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
@media(max-width:900px){.wtwo{grid-template-columns:1fr}}
/* ---------- YOSI Wings page: the butterfly ---------- */
.wings-stage{padding:10px var(--gutter) 0;background:radial-gradient(ellipse at 50% 40%,#f3f7fb 0%,#fff 70%)}
.wings-stage>.wrap{padding:0}
.ws-head{max-width:780px}.ws-head h1{font-size:clamp(34px,4.4vw,58px)}.ws-head .lead{font-size:clamp(15px,1.5vw,18px);margin-top:6px}
.ws-canvas{position:relative;margin:6px auto 0;max-width:1180px}
#wsvg{display:block;width:100%;height:auto;max-height:calc(100vh - 96px);overflow:visible;touch-action:manipulation}
#wsvg .lobe{cursor:pointer;outline:none}
#wsvg .lobe .lf{fill-opacity:.1;transition:fill-opacity .7s ease}
#wsvg .lobe .ls{fill:none;stroke:var(--wc);stroke-width:2.5;stroke-dasharray:7 7;stroke-opacity:.45;transition:stroke-opacity .5s,stroke-width .3s}
#wsvg .lobe .lv{fill:none;stroke:#fff;stroke-width:2;stroke-opacity:0;transition:stroke-opacity .7s}
#wsvg .lobe .spot{fill:#fff;fill-opacity:0;transition:fill-opacity .7s}
#wsvg .lobe.on .lf{fill-opacity:1}#wsvg .lobe.on .ls{stroke-dasharray:none;stroke-opacity:.9;stroke:color-mix(in srgb,var(--wc) 70%,#000)}
#wsvg .lobe .lb{fill:none;stroke:color-mix(in srgb,var(--wc) 50%,#0b1a2a);stroke-width:22;stroke-opacity:0;transition:stroke-opacity .7s}
#wsvg .lobe.on .lv{stroke-opacity:.35}#wsvg .lobe.on .spot{fill-opacity:.9}#wsvg .lobe.on .lb{stroke-opacity:.85}
#wsvg .lobe>g{transition:filter .35s}
.ws-ready #wsvg .lobe:hover>g,.ws-ready #wsvg .lobe:focus-visible>g,.ws-ready #wsvg .lobe.hov>g{filter:brightness(1.08) saturate(1.1)}
.ws-ready #wsvg .lobe:focus-visible .ls{stroke-width:6;stroke-opacity:1}
#wsvg .lab{opacity:0;transition:opacity .6s;pointer-events:none}#wsvg .lab.on{opacity:1}
#wsvg .lab .l1{font:800 40px/1 Manrope,system-ui,sans-serif;letter-spacing:.06em;fill:#fff;paint-order:stroke;stroke:rgba(11,26,42,.18);stroke-width:3px}
#wsvg .lab .l2{font:600 15.5px/1 Manrope,system-ui,sans-serif;fill:#fff;opacity:.95}
#wsvg .lab .l3{font:700 13px/1 Manrope,system-ui,sans-serif;fill:#fff;opacity:.85;letter-spacing:.12em;text-transform:uppercase}
#wsvg #wbody{opacity:0;transition:opacity 1s}.ws-ready #wsvg #wbody,#wsvg #wbody.on{opacity:1}
#wsvg #wbody{filter:drop-shadow(0 6px 10px rgba(11,26,42,.3))}
#wsvg .ant{fill:none;stroke:#1f2a37;stroke-width:3;stroke-linecap:round}#wsvg .antk{fill:#1f2a37}
#wsvg #twig{fill:none;stroke:#7a5a3a;stroke-width:9;stroke-linecap:round}#wsvg .leaf{fill:#7fb069}
#wsvg #silk ellipse{fill:none;stroke:#fff;stroke-width:2;stroke-opacity:.9;stroke-dasharray:140;stroke-dashoffset:140}
#wsvg #chrys path{fill:url(#chg);stroke:#56813d;stroke-width:1.5}#wsvg #chG{fill:none!important;stroke:#e8f3d2!important;stroke-width:2!important}
#wsvg #cat circle.sg{stroke:#3f7a2e;stroke-width:1.5}
.ws-cap{min-height:30px;text-align:center;font-size:clamp(15px,1.8vw,20px);font-weight:600;color:var(--ink);margin:4px 0 0;transition:opacity .5s}
.ws-ctl{position:absolute;top:0;right:0;display:flex;gap:8px}
.ws-tip{position:absolute;z-index:3;width:300px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--wc,#1d4a8b);border-radius:16px;padding:14px 16px;box-shadow:0 20px 50px rgba(11,26,42,.14);pointer-events:none}
.ws-tip b{display:block;color:var(--wc);letter-spacing:.06em}.ws-tip small{display:block;color:var(--muted);margin-bottom:6px}.ws-tip ul{margin:0;padding-left:18px;font-size:13.5px}.ws-tip li{margin:2px 0}
.ws-tip em{display:block;margin-top:8px;font-style:normal;font-size:12.5px;color:var(--wc);font-weight:700}
.wlist{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.wl{border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.wl-h{display:block;padding:18px 20px;background:linear-gradient(110deg,var(--wc),color-mix(in srgb,var(--wc) 55%,var(--wl)));color:#fff}
.wl-h b{display:block;font-size:20px;letter-spacing:.04em}.wl-h span{font-size:13.5px;opacity:.92}
.wl ul{list-style:none;padding:10px 12px;margin:0;flex:1}.wl li a{display:block;padding:6px 8px;border-radius:8px;font-size:14.5px}.wl li a:hover{background:var(--mist);color:var(--wc)}
.wl-more{display:flex;gap:6px;align-items:center;padding:12px 20px;border-top:1px solid var(--line);font-weight:700;font-size:13.5px;color:var(--wc)}.wl-more svg{width:12px;height:12px}
.wl:target,.wl.hl{box-shadow:0 0 0 3px var(--wc)}
.ws-con{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:start;border-top:1px solid var(--line);padding-top:30px}
@media(max-width:1000px){.wlist{grid-template-columns:1fr 1fr}.ws-con{grid-template-columns:1fr}}
@media(max-width:640px){.wlist{grid-template-columns:1fr}#wsvg .lab .l3{display:none}#wsvg .lab .l1{font-size:48px}.ws-ctl{position:static;justify-content:center;margin-top:4px}}
@media (prefers-reduced-motion:reduce){#wsvg .lobe .lf,#wsvg .lab,#wsvg #wbody{transition:none}}
.ws-canvas:not(.ws-ready) #wsvg .lobe{pointer-events:none}
.ws-ctl [hidden]{display:none!important}
.mega a.mega-h,.mega a.mega-h b,.mega a.mega-h small{white-space:normal}

/* council: four across, then three */
.people.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.people.four{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.people.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* colourful Join YOSI button: the six wing colours, slowly flowing */
.btn-primary[href^="membership.html"]{background:linear-gradient(100deg,#2c63b5,#6f4fc4,#c4475e,#d9821c,#3f8f5e,#178f9e,#2c63b5);background-size:300% 100%;color:#fff;text-shadow:0 1px 2px rgba(11,26,42,.35);box-shadow:0 6px 18px rgba(111,79,196,.28);animation:joinflow 7s linear infinite}
.btn-primary[href^="membership.html"]:hover{background-color:transparent;filter:brightness(1.08) saturate(1.1);transform:translateY(-1px)}
@keyframes joinflow{to{background-position:300% 0}}
@media (prefers-reduced-motion:reduce){.btn-primary[href^="membership.html"]{animation:none;background-size:100% 100%}}

/* home hero: the YOSICON 2026 group photo across the top, faded downwards into the text */
@media(min-width:901px){
  .hero-card{grid-template-columns:1fr;min-height:0;background:#eef3f8}
  .hero-card .photo{height:min(66vh,620px);min-height:380px}
  .hero-card .photo img{object-position:50% 18%}
  .hero-card .photo::after{background:linear-gradient(180deg,transparent 42%,rgba(238,243,248,.7) 72%,#eef3f8 100%)}
  .hero-copy{margin-top:-110px;padding:0 clamp(64px,6vw,96px) 150px;max-width:none;align-items:center;text-align:center;position:static}
  .hero-copy h1{font-size:clamp(44px,5.6vw,76px)}
  .hero-copy h1 em{display:block}
  .hero-copy p{max-width:62ch;margin-inline:auto}
  .hero-copy .hero-cta{position:absolute;left:clamp(64px,6vw,96px);bottom:48px;z-index:4}
}
.hero-card .photo img{object-position:50% 18%}

/* ---------- about: interactive journey timeline ---------- */
.jt{position:relative}
.jt-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.jt-hint{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.jt-btns{display:flex;gap:8px}
.jt-btns button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#fff;transition:.2s}
.jt-btns button:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.jt-btns button:disabled{opacity:.35;cursor:default}
.jt-scroll{position:relative;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:6px 0 10px;cursor:grab}
.jt-scroll::-webkit-scrollbar{display:none}
.jt-scroll.drag{cursor:grabbing;scroll-snap-type:none}
.jt-line{position:absolute;left:0;top:calc(6px + 52px + 8px + 6px);height:3px;background:var(--line);border-radius:3px;width:var(--w,100%);pointer-events:none}
.jt-fill{position:absolute;left:0;top:0;bottom:0;width:var(--p,0);background:linear-gradient(90deg,var(--blue),var(--green));border-radius:3px;transition:width .2s}
.jt-track{display:flex;gap:0;list-style:none;margin:0;padding:0;width:max-content;min-width:100%}
.jt-track li{flex:0 0 clamp(210px,21vw,270px);scroll-snap-align:start}
.jt-track a{display:grid;gap:8px;padding:0 22px 18px 0;position:relative;height:100%;align-content:start;border-radius:18px;transition:transform .3s}
.jt-track time{font-size:clamp(30px,3.4vw,46px);letter-spacing:-.045em;color:var(--blue);line-height:1;height:52px;display:flex;align-items:flex-end;transition:.3s;transform-origin:left bottom}
.jt-dot{width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--blue);position:relative;z-index:1;margin:0 0 4px;transition:.3s}
.jt-track b{display:block;font-size:17px;letter-spacing:-.02em;line-height:1.2;margin-top:4px}
.jt-track span{font-size:13.5px;color:var(--muted);line-height:1.45}
.jt-track a:hover time,.jt-track a:focus-visible time,.jt-track li.on time{transform:scale(1.12)}
.jt-track a:hover .jt-dot,.jt-track a:focus-visible .jt-dot,.jt-track li.on .jt-dot{background:var(--blue);box-shadow:0 0 0 7px rgba(29,74,139,.16)}
.jt-track a:hover b{color:var(--blue)}
.jt-track a:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.jt-now time{color:var(--green)}.jt-now .jt-dot{border-color:var(--green);animation:jtp 2s ease-out infinite}
.jt-now a:hover .jt-dot,.jt-now li.on .jt-dot{background:var(--green)}
@keyframes jtp{0%{box-shadow:0 0 0 0 rgba(96,147,114,.55)}100%{box-shadow:0 0 0 14px rgba(96,147,114,0)}}
.jt-track li{opacity:0;transform:translateY(14px);animation:jtin .6s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*.07s)}
@keyframes jtin{to{opacity:1;transform:none}}
.jt-bubble{position:absolute;z-index:20;width:280px;background:#fff;border-radius:18px;box-shadow:0 22px 50px -18px rgba(11,26,42,.45);border:1px solid var(--line);overflow:hidden;pointer-events:none;animation:jtb .18s ease-out}
.jt-bubble::before{content:"";position:absolute;top:-7px;left:var(--ax,40px);width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.jt-bubble img{width:100%;height:120px;object-fit:cover;display:block;background:var(--blue-l)}
.jt-bubble .bt{padding:14px 16px 16px;display:grid;gap:8px;position:relative;background:#fff}
.jt-bubble p{font-size:13.5px;color:#33475b;line-height:1.5}
.jt-bubble em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--blue)}
@keyframes jtb{from{opacity:0;transform:translateY(6px)}}
@media(max-width:760px){.jt-scroll{overflow:visible;cursor:auto}.jt-line,.jt-bar,.jt-bubble{display:none}.jt-track{display:grid;width:auto;border-left:3px solid var(--line);margin-left:7px}.jt-track li{flex:none;opacity:1;transform:none;animation:none}.jt-track a{padding:0 0 22px 24px}.jt-dot{position:absolute;left:-10px;top:30px}.jt-track time{height:auto}}
@media(prefers-reduced-motion:reduce){.jt-track li{animation:none;opacity:1;transform:none}.jt-now .jt-dot{animation:none}}

/* ---- calendar: deadlines in red with an exclamation mark ---- */
.legend i.a{background:#d92d3f;color:#fff;width:14px;height:14px;font:800 10px/14px Manrope,sans-serif;text-align:center;font-style:normal;vertical-align:-2px}
.cal-g .e.dl{background:#d92d3f;color:#fff;border:0;gap:5px}
.cal-g .e.dl::before{content:"!";flex:none;display:inline-grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#fff;color:#d92d3f;font:800 10px/1 Manrope,sans-serif}
.cal.mini .cal-g .e.dl{background:#d92d3f;font-size:0;height:12px;display:flex;align-items:center;justify-content:center;padding:0}
.cal.mini .cal-g .e.dl::before{content:"!";width:10px;height:10px;font-size:8px;background:transparent;color:#fff}

/* ---- homepage games strip ---- */
.gstrip{padding:56px 0 64px;overflow:hidden}
.gs-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.gs-head h2{margin:0}
.gs-view{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.gs-track{display:flex;gap:22px;width:max-content;animation:gs-scroll 90s linear infinite;padding:14px 0 22px}
.gs-dup{display:contents}
.gs-view:hover .gs-track,.gs-view:focus-within .gs-track,.gs-view:active .gs-track{animation-play-state:paused}
.gs-card{position:relative;flex:none;width:270px;height:340px;border-radius:28px;overflow:hidden;background:var(--gs);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 14px 30px rgba(11,26,42,.18);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.gs-card::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 50% 0,rgba(255,255,255,.28),transparent 60%),linear-gradient(180deg,transparent 58%,rgba(0,0,0,.28));pointer-events:none}
.gs-art{position:absolute;left:0;top:0;width:100%;height:240px;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.gs-art svg{width:100%;height:100%;display:block}
.gs-card:hover{transform:translateY(-8px) rotate(-1.2deg);box-shadow:0 26px 50px rgba(11,26,42,.28)}
.gs-card:hover .gs-art{transform:scale(1.06)}
.gs-chip{position:absolute;left:14px;top:14px;z-index:2;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.94);color:#17233a;padding:6px 11px;border-radius:99px}
.gs-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px 18px 18px}
.gs-name{font-weight:800;font-size:23px;line-height:1.1;letter-spacing:-.035em;text-shadow:0 2px 10px rgba(0,0,0,.25)}
.gs-play{flex:none;width:44px;height:44px;border-radius:50%;background:#fff;color:#17233a;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(0,0,0,.25);transition:transform .25s}
.gs-play svg{width:18px;height:18px;margin-left:2px}
.gs-card:hover .gs-play{transform:scale(1.14)}
@keyframes gs-scroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.gs-track{animation:none}.gs-view{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.gs-dup{display:none}}
/* YOSI 360 and Career Portal logos (Nov 2026) */
.login-logo{display:block;width:72px;height:72px;border-radius:18px;margin:0 0 16px;box-shadow:0 12px 26px -12px rgba(2,12,40,.6)}
.y360-tag{display:flex;align-items:center;gap:12px;margin-bottom:12px}.y360-tag img{width:44px;height:44px;border-radius:12px;flex:none;box-shadow:0 8px 18px -9px rgba(2,12,40,.6)}.y360-tag .eyebrow{margin:0}
.card img[src*="/career-portal-"]{object-fit:contain;padding:0;background:#1b2230}
/* Use YOSI with Claude (member area) */
.cc-url{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}.cc-url code{flex:1;min-width:0;overflow-wrap:anywhere;background:var(--mist,#f1f4f7);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px}
.cc-steps,.cc-ask{padding-left:22px;margin:6px 0;line-height:1.6}.cc-steps{list-style:decimal}.cc-ask{list-style:disc}.cc-steps li,.cc-ask li{display:list-item}.cc-ask li{color:var(--muted)}
/* reader: pinch-zoom on phones (main.js setZ) */
.rd-stage{touch-action:none}.rd-pg img{transform-origin:50% 50%}.rd.rd-zoomed .rd-stage{overflow:hidden}.rd.rd-zoomed .rd-b{opacity:.35}

/* secretary round: wing cards shaded, survival kit */
.wcard{background:color-mix(in srgb,var(--wc) 7%,#fff);border-color:color-mix(in srgb,var(--wc) 22%,var(--line))}
.wcard:hover{background:color-mix(in srgb,var(--wc) 11%,#fff)}
.kit-intro{max-width:760px;color:var(--muted);margin:6px 0 18px}
.kit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:14px}.kit-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.kit-c{border:1px solid color-mix(in srgb,var(--wc) 25%,var(--line));background:color-mix(in srgb,var(--wc) 6%,#fff);border-radius:var(--r-card);padding:20px;min-width:0}
.kit-h h3{font-size:22px;color:var(--wc);margin:0}.kit-h small{display:block;font-weight:700;color:var(--ink);margin-top:2px}
.kit-l{font-size:14px;color:var(--muted);margin:8px 0 10px}
.kit-c ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.kit-c li{display:grid;gap:2px;font-size:14px;line-height:1.45;color:var(--muted)}
.kit-c li b{color:var(--ink)}.kit-c li a{color:var(--wc);font-weight:700;display:inline-flex;gap:6px;align-items:center}.kit-c li a b{color:var(--wc)}.kit-c li a svg{width:12px;height:12px}
.kit-x{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:16px;padding:16px 20px;border-radius:var(--r-card);border:1px dashed var(--wc);color:var(--ink);font-size:15px}.kit-x b{color:var(--wc)}
.kit-credit{margin:14px 0 0;font-size:13px;color:var(--muted)}
@media(max-width:900px){.kit-grid,.kit-grid.two{grid-template-columns:1fr}}

/* secretary round: vision/mission and name strip in dark blue on light denim */
.band.band-light,.band.names-band{color:#0c2a57;background:linear-gradient(rgba(255,255,255,.66),rgba(255,255,255,.66)),url("../img/denim.webp") 0 0/520px auto #cfe0f5}
.band.band-light .vm-row{border-top-color:rgba(12,42,87,.22)}
.band.band-light .vm-row h2{color:#0c2a57}.band.band-light .vm-row p{color:#14335f;font-weight:500}.band.band-light .glyph{color:#0c2a57;fill:#0c2a57}
.band.names-band .ticker.names .row,.band.names-band .ticker.names span{color:#0c2a57}.band.names-band .ticker.names .row .s svg{fill:#0c2a57;color:#0c2a57}
.person.hl-p .ph{box-shadow:0 0 0 3px #e0a21b,0 10px 24px rgba(11,26,42,.14)}.person.hl-p span:not(.initials){color:var(--blue);font-weight:700}

/* partner societies: two overlapping bubbles, YOSI and the partner */
.pp{display:flex;align-items:center;margin-bottom:12px}
.pp span{width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid #fff;box-shadow:0 0 0 1px #d9e3f0,0 6px 14px rgba(11,26,42,.12);display:grid;place-items:center;overflow:hidden;position:relative}
.pp .pp-b{margin-left:-16px;background:var(--blue-l,#e8eef7)}
.pp img{width:78%;height:78%;object-fit:contain;grid-area:1/1}.pp .pp-b img{width:100%;height:100%;padding:6px;background:#fff;z-index:1}
.pp i{grid-area:1/1;font-style:normal;font-weight:800;font-size:15px;color:var(--blue-d,#143868);letter-spacing:.02em}
.gs-credit{margin:18px 0 0;font-size:13px;color:var(--muted);text-align:center}

.yn-latest{position:relative;background:linear-gradient(120deg,#eaf1fb,#fff);border:2px solid var(--blue);border-radius:var(--r-card);padding:26px 22px 20px;margin-bottom:10px;box-shadow:0 18px 40px rgba(29,74,139,.14)}
.yn-latest b{font-size:20px}.yn-lt{position:absolute;top:-12px;left:18px;background:var(--blue);color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:99px}

.sp-box{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 14px;margin-top:6px}.sp-o{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:400}.sp-o input{width:auto}

.gc-p i{position:relative;overflow:hidden}.gc-p i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}.tm-tag{display:inline-block;margin:-6px 0 14px;padding:4px 12px;border-radius:999px;background:#eef3fb;color:#27458f;font-size:13px;font-weight:600}
/* partner bubbles, larger and clearer */
.pp{margin-bottom:16px}
.pp span{width:84px;height:84px;border-width:3px}
.pp .pp-b{margin-left:-26px}
.pp .pp-a img{width:100%;height:100%;padding:10px}
.pp .pp-b img{padding:11px}

/* flipbook: two-page spread on laptops, one page on phones; zoom on laptops */
.rd-tools{display:flex;gap:6px;align-items:center}.rd-tools button{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:999px;height:32px;min-width:32px;padding:0 12px;font-size:.8rem;cursor:pointer}.rd-tools .rd-zm{font-size:1.1rem;line-height:1;padding:0}
.rd-pg.rd-two img{max-width:50%}.rd-pg.rd-two .rd-img2{box-shadow:inset 18px 0 22px -18px rgba(0,0,0,.35)}.rd-img2[hidden]{display:none}
.rd-fd img{animation:rdfd .3s ease}@keyframes rdfd{from{opacity:.15}to{opacity:1}}
.rd.rd-zoomed .rd-shield{cursor:grab}
@media(max-width:899px){.rd-tools .rd-v{display:none!important}}
@media(max-width:640px){.rd-tools .rd-zm{display:none}}

/* partner bubbles: translucent glass, both logos stay visible where they overlap */
.pp{display:inline-flex;padding:8px 14px 8px 10px;border-radius:999px;background:linear-gradient(120deg,#cfe0ff 0%,#e9dcff 55%,#ffe4cf 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.pp span{background:linear-gradient(145deg,rgba(255,255,255,.62),rgba(255,255,255,.16));-webkit-backdrop-filter:blur(7px) saturate(1.4);backdrop-filter:blur(7px) saturate(1.4);border:1.5px solid rgba(255,255,255,.85);box-shadow:inset 0 2px 5px rgba(255,255,255,.9),inset 0 -6px 12px rgba(40,70,140,.12),0 8px 18px rgba(30,60,130,.18)}
.pp .pp-b{background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,255,255,.12))}
.pp img,.pp .pp-a img,.pp .pp-b img{background:transparent;mix-blend-mode:multiply}
.pp span::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 28% 20%,rgba(255,255,255,.75),rgba(255,255,255,0) 45%);pointer-events:none;z-index:2}
.pp{display:flex;width:max-content;max-width:100%}
.pp-b img ~ i{display:none}
