.nav-link{position:relative;padding:6px 0}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.2,0,0,1)}
.nav-link:hover::after,.nav-link[data-active="1"]::after{transform:scaleX(1)}
.nav-cta{border-radius:999px!important;transition:background .16s cubic-bezier(.2,0,0,1),transform .16s cubic-bezier(.2,0,0,1),box-shadow .16s cubic-bezier(.2,0,0,1)}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(255,0,0,.28)}
.nav-cta:active{transform:scale(.985)}
.nav-logo{transition:opacity .16s cubic-bezier(.2,0,0,1)}
.nav-logo:hover{opacity:.7}
.nav-burger{transition:transform .16s cubic-bezier(.2,0,0,1)}
.nav-burger:active{transform:scale(.94)}
.rv{opacity:0;transition:opacity .64s cubic-bezier(.2,0,0,1),transform .64s cubic-bezier(.2,0,0,1),filter .64s cubic-bezier(.2,0,0,1);will-change:opacity,transform}
.rv-up{transform:translateY(28px)}
.rv-left{transform:translateX(-32px)}
.rv-right{transform:translateX(32px)}
.rv-scale{transform:scale(.97)}
.rv-wipe{transform:translateY(36px) scale(.99);filter:blur(6px)}
.rv.in{opacity:1;transform:none;filter:none}
.rv-stagger>*{opacity:0;transform:translateY(20px);transition:opacity .56s cubic-bezier(.2,0,0,1),transform .56s cubic-bezier(.2,0,0,1)}
.rv-stagger.in>*{opacity:1;transform:none}
.rv-stagger>*{transform-origin:center}
.hov-lift{transition:transform .24s cubic-bezier(.2,0,0,1),box-shadow .24s cubic-bezier(.2,0,0,1)}
.hov-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-3)}
@media (prefers-reduced-motion:reduce){.rv,.rv-stagger>*{opacity:1!important;transform:none!important;filter:none!important;transition:none}}
.nav-trigger .nav-chev{display:flex;transition:transform .24s cubic-bezier(.2,0,0,1)}
.nav-trigger .nav-chev.up{transform:rotate(180deg)}
.nav-panel{overflow:hidden;background:var(--white);max-height:0;transition:max-height .34s cubic-bezier(.2,0,0,1)}
.nav-panel-all{color:var(--ink-1000);border-bottom:1px solid var(--border-default);transition:color .16s cubic-bezier(.2,0,0,1)}
.nav-panel-all:hover{color:var(--accent);border-color:var(--accent)}
.nav-panel-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm,4px);background:var(--white);text-decoration:none;border-bottom:1px solid var(--border-hairline);transition:transform .24s cubic-bezier(.2,0,0,1),box-shadow .24s cubic-bezier(.2,0,0,1),border-color .24s cubic-bezier(.2,0,0,1)}
.nav-panel-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-3);border-color:var(--border-default)}
.nav-panel-num{font:var(--text-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--grey-500)}
.nav-panel-title{font:var(--text-h4);font-weight:var(--fw-bold);color:var(--ink-1000)}
.nav-panel-desc{font:var(--text-caption);color:var(--text-secondary)}
.btt{position:fixed;right:28px;bottom:28px;z-index:60;width:92px;height:92px;border:none;background:none;padding:0;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px) scale(.9);transition:opacity .32s cubic-bezier(.2,0,0,1),transform .32s cubic-bezier(.2,0,0,1)}
.btt.show{opacity:1;pointer-events:auto;transform:none}
.btt-disc{position:absolute;inset:0;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(255,0,0,.22);transition:transform .24s cubic-bezier(.2,0,0,1),box-shadow .24s cubic-bezier(.2,0,0,1)}
.btt:hover .btt-disc{transform:scale(1.05);box-shadow:0 12px 32px rgba(255,0,0,.34)}
.btt-arrow{width:22px;height:22px;stroke:#fff;stroke-width:2;fill:none;transition:transform .24s cubic-bezier(.2,0,0,1)}
.btt:hover .btt-arrow{transform:translateY(-3px)}
.btt-ring{position:absolute;inset:0;animation:btt-spin 20s linear infinite;transform-origin:50% 50%}
.btt:hover .btt-ring{animation-duration:6s}
.btt-ring{z-index:2;pointer-events:none}
.btt-ring span{position:absolute;left:50%;top:50%;font:var(--text-eyebrow);font-size:10px;font-weight:700;letter-spacing:0;color:#fff;transform-origin:0 0}
@keyframes btt-spin{to{transform:rotate(360deg)}}
@media (max-width:760px){.btt{right:16px;bottom:16px;width:76px;height:76px}}
.btt:active .btt-disc{transform:scale(.96)}
.btt:focus-visible{outline:2px solid var(--ink-1000);outline-offset:4px;border-radius:50%}
@media (prefers-reduced-motion:reduce){.btt-ring{animation:none}}
.hero-ghost{transition:background-color .18s cubic-bezier(.2,0,0,1),border-color .18s cubic-bezier(.2,0,0,1),color .18s cubic-bezier(.2,0,0,1)}
.hero-ghost:hover{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--white)!important}
/* page transition */
.pt{position:fixed;inset:0;z-index:200;background:var(--ink-1000,#111);pointer-events:none;clip-path:circle(0% at 50% 50%);transition:clip-path .58s cubic-bezier(.2,0,0,1)}
.pt.cover{clip-path:circle(150% at 50% 50%)}
.pt.instant{transition:none}
/* cursor */
@media (hover:hover) and (pointer:fine){
  html.has-cur,html.has-cur *{cursor:none!important}
  html.has-cur a,html.has-cur button,html.has-cur [role="button"],html.has-cur input,html.has-cur textarea,html.has-cur select{cursor:none!important}
}
.cur{position:fixed;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#ff2020;box-shadow:none;z-index:300;pointer-events:none;opacity:0;transition:opacity .2s cubic-bezier(.2,0,0,1),transform .12s cubic-bezier(.2,0,0,1),box-shadow .2s cubic-bezier(.2,0,0,1)}
.cur.on{opacity:1}
.cur.glow{box-shadow:0 0 10px rgba(255,0,0,.85),0 0 26px rgba(255,0,0,.55)}
.cur.down{transform:scale(.72)}
.cur-b{position:fixed;left:0;top:0;border-radius:50%;background:#ff2020;box-shadow:0 0 8px rgba(255,0,0,.6);z-index:299;pointer-events:none;transform:translate(-50%,-50%);animation:cur-drop .72s cubic-bezier(.34,.06,.5,1) forwards}
@keyframes cur-drop{0%{opacity:.9}70%{opacity:.55}100%{opacity:0;transform:translate(calc(-50% + var(--drift,0px)),calc(-50% + var(--fall,40px))) scale(.5)}}
@media (prefers-reduced-motion:reduce){.pt{display:none}}
/* about hero */
.abh{position:relative;overflow:hidden;background:var(--surface-inverse)}
.abh-bg{position:absolute;inset:0;background-image:url("assets/img/page-hero.webp");background-size:cover;background-position:center;filter:grayscale(1) contrast(1.08) brightness(.62)}
.abh-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,17,.92) 0%,rgba(17,17,17,.78) 46%,rgba(17,17,17,.5) 100%)}
@media (max-width:760px){.abh-veil{background:rgba(17,17,17,.82)}}
.evt-card a[target="_blank"]{transition:color .16s cubic-bezier(.2,0,0,1)}
.evt-card a[target="_blank"]:hover{color:var(--accent)!important}
:root{--fs-body-lg:20px;--fs-body:17px;--fs-body-sm:16px;--fs-caption:14px;--fs-micro:13px}
html,body{overflow-x:clip}
.rv-left,.rv-right{overflow-x:clip}
.footer-social{transition:color .16s cubic-bezier(.2,0,0,1)}
.footer-social:hover{color:var(--white)!important}
@media (max-width:760px){button,[role="button"],.nav-burger button{min-height:44px}.nav-panel-card{min-height:44px}}
.yt-lite{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;background:#000;cursor:pointer;display:block}
.yt-lite img{width:100%;height:100%;object-fit:cover;display:block;opacity:.86;transition:opacity .24s cubic-bezier(.2,0,0,1),transform .5s cubic-bezier(.2,0,0,1)}
.yt-lite:hover img{opacity:1;transform:scale(1.02)}
.yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(255,0,0,.35);transition:transform .24s cubic-bezier(.2,0,0,1)}
.yt-lite:hover .yt-play{transform:translate(-50%,-50%) scale(1.08)}
.lang-sw{display:inline-flex;align-items:center;border:1px solid var(--border-hairline);border-radius:var(--radius-control);overflow:hidden;align-self:flex-start;background:var(--white)}
.lang-b{appearance:none;border:none;background:transparent;cursor:pointer;font:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-secondary);padding:0 12px;height:30px;letter-spacing:.02em;transition:background .16s cubic-bezier(.2,0,0,1),color .16s cubic-bezier(.2,0,0,1)}
.lang-b:hover{background:var(--grey-100);color:var(--text-primary)}
.lang-b[aria-pressed="true"]{background:var(--ink-1000);color:var(--white)}
.lang-b+.lang-b{border-left:1px solid var(--border-hairline)}
.lang-b[aria-pressed="true"]+.lang-b{border-left-color:var(--ink-1000)}
@media(max-width:760px){.lang-sw{align-self:stretch}.lang-b{flex:1;height:48px;font:var(--text-body-sm);font-weight:var(--fw-medium)}}
.bi-row+.bi-row{border-top-color:var(--border-hairline)}