/* Shared navigation and control states. No third-party scripts required. */
html{scrollbar-gutter:stable}body.nav-open{overflow:hidden}
.header{transition:box-shadow .2s}.header.is-scrolled{box-shadow:0 8px 30px #0002}
.header-inner{gap:20px;flex-wrap:nowrap;min-height:92px}.header-tools{margin-left:0;padding-top:0;gap:9px}
.desktop-nav{display:flex;position:relative;align-items:center;gap:4px;margin-left:auto;font-size:.86rem;font-weight:750}
.nav-group{position:static}.nav-trigger{display:flex;align-items:center;gap:8px;min-height:46px;padding:10px 12px;border-radius:13px;cursor:pointer;list-style:none;white-space:nowrap;transition:background .18s,color .18s}
.nav-trigger::-webkit-details-marker,.drawer-levels>summary::-webkit-details-marker{display:none}.nav-trigger>svg{width:18px;height:18px}.nav-trigger>svg:last-child:not(:first-child){width:13px;height:13px}
.nav-trigger[aria-current],.nav-group[open]>.nav-trigger{background:var(--raised);color:var(--teal)}.nav-group[open]>.nav-trigger>svg:last-child{transform:rotate(180deg)}
.nav-panel{position:absolute;top:calc(100% + 16px);right:0;width:min(620px,calc(100vw - 32px));padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px #0004;animation:panel-in .18s ease-out;z-index:40}
.nav-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.77rem;color:var(--muted);margin:0 3px 16px}.nav-panel-heading>a{display:flex;align-items:center;gap:8px;color:var(--teal);min-height:32px}.nav-panel-heading svg{width:16px;height:16px}
.nav-levels{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nav-level{display:flex;align-items:center;gap:12px;padding:13px 10px;border-radius:14px;min-width:0;transition:background .18s,transform .18s}.nav-level>span:nth-child(2){flex:1;min-width:0}.nav-level strong{display:block;font-size:.84rem;line-height:1.5}.nav-level small{display:block;color:var(--muted);font-size:.68rem;line-height:1.5;margin-top:3px}.nav-level>svg{width:16px;height:16px;color:var(--teal)}
.nav-level[aria-current]{background:var(--raised)}.nav-level-badge{display:grid;place-items:center;flex:none;width:41px;height:44px;border-radius:13px;background:var(--mint);color:#124b3e;font-size:.85rem;font-weight:850;box-shadow:inset 0 -3px #103b3425}.nav-level-badge.level-2{background:#bfdaf8;color:#234968}.nav-level-badge.level-3{background:#d9ccf7;color:#52377c}.nav-level-badge.level-4{background:#f4dcb0;color:#6a481d}.nav-level-badge.level-5{background:#f1c8d8;color:#763c54}
.language-options{animation:panel-in .16s ease-out}.flag-toggle[aria-expanded=true]>svg{transform:rotate(180deg)}
.button,.icon-button,.flag-toggle,.menu-toggle,.demo-option,.campaign-try{position:relative;isolation:isolate;overflow:hidden;touch-action:manipulation;transition:transform .16s,background .18s,border-color .18s,box-shadow .18s}
.button{background:linear-gradient(145deg,#acf0df,#91e2cf);border:1px solid #b2f6e4;border-bottom:3px solid #4b9885;box-shadow:0 3px 0 #07291e22,0 5px 12px #0001;border-radius:15px;min-height:50px}.button.secondary{background:var(--raised);border:1px solid var(--line);border-bottom:3px solid var(--line)}
.flag-toggle,.icon-button,.menu-toggle{min-width:44px;min-height:46px;border-bottom-width:3px;border-radius:14px}.icon-button>span{align-items:center;justify-content:center}.menu-toggle{display:none;margin:0;order:initial}.menu-lines path{transform-origin:12px 12px;transition:transform .18s,opacity .18s}.menu-toggle[aria-expanded=true] .menu-lines path:first-child{transform:translateY(6px) rotate(45deg);transform-origin:12px 6px}.menu-toggle[aria-expanded=true] .menu-lines path:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-lines path:last-child{transform:translateY(-6px) rotate(-45deg);transform-origin:12px 18px}
.button:active,.icon-button:active,.flag-toggle:active,.menu-toggle:active,.demo-option:active,.campaign-try:active{transform:translateY(2px);box-shadow:none}
.button:disabled,.demo-option:disabled{cursor:default;transform:none;box-shadow:none}.button:disabled{opacity:.48}.button[aria-busy=true]{cursor:progress}.demo-audio-button.is-playing{border-color:var(--teal);background:var(--panel)}
.ui-ripple{position:absolute;pointer-events:none;z-index:2;width:24px;height:24px;margin:-12px;border-radius:50%;background:currentColor;opacity:.14;transform:scale(0)}
:where(a,button,summary):focus-visible{outline:3px solid var(--teal);outline-offset:4px}.button:focus-visible{outline-offset:5px}.nav-trigger:focus-visible,.nav-level:focus-visible,.drawer-link:focus-visible{outline-offset:1px}
.nav-drawer{inset:0 0 0 auto;margin:0;width:min(440px,calc(100% - 14px));max-width:none;height:100vh;height:100dvh;max-height:none;padding:0;border:0;border-left:1px solid var(--line);border-radius:25px 0 0 25px;color:var(--ink);background:var(--panel);box-shadow:-20px 0 70px #0004;overflow:hidden;overscroll-behavior:contain}
.nav-drawer:not([open]){display:none}.nav-drawer[open]{display:flex;flex-direction:column;animation:drawer-in .24s cubic-bezier(.2,.8,.2,1)}.nav-drawer::backdrop{background:#03121acc;backdrop-filter:blur(3px);animation:backdrop-in .2s ease-out}.nav-drawer.is-closing{animation:drawer-out .16s ease-in forwards}.nav-drawer.is-closing::backdrop{animation:backdrop-out .16s ease-in forwards}
.drawer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:28px 23px 21px;border-bottom:1px solid var(--line);flex:none}.drawer-top .eyebrow{font-size:.69rem;margin-bottom:7px}.drawer-top h2{font-size:1.4rem;letter-spacing:-.03em;margin:0;line-height:1.3}.drawer-close{flex:none}.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:17px 16px;overscroll-behavior:contain;scrollbar-width:thin}.drawer-body nav{display:grid;gap:6px}.drawer-link{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;min-height:52px;font-size:.95rem;font-weight:750;transition:background .18s}.drawer-link>span{flex:1}.drawer-link>svg:last-child{width:17px;height:17px;color:var(--muted)}.drawer-link[aria-current]{background:var(--raised);color:var(--teal)}
.drawer-levels{border-top:1px solid var(--line);margin-top:17px;padding-top:13px}.drawer-levels>summary{min-height:48px;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:9px 12px;list-style:none;cursor:pointer;font-size:.79rem;font-weight:800;color:var(--muted)}.drawer-levels>summary svg{width:15px;height:15px}.drawer-levels[open]>summary svg{transform:rotate(180deg)}.drawer-levels .nav-level{padding:12px;margin-block:2px}.drawer-levels .nav-level strong{font-size:.87rem}.drawer-levels .nav-level small{font-size:.72rem}
.drawer-footer{flex:none;padding:18px 22px max(19px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}.drawer-footer .button{width:100%;font-size:.88rem;padding-inline:12px}.drawer-footer small{display:block;text-align:center;color:var(--muted);font-size:.7rem;margin-top:9px}
.faq[open]>p{animation:panel-in .2s ease-out}.faq summary{min-height:44px}.faq summary>span{transition:transform .18s}.quick-links a,.doc-other a{min-height:44px}.doc-toc nav a{min-height:44px}.demo-audio-button.is-loading svg{animation:audio-load .9s linear infinite}
@keyframes panel-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes drawer-in{from{transform:translateX(100%);opacity:.7}to{transform:translateX(0);opacity:1}}@keyframes drawer-out{to{transform:translateX(100%);opacity:.7}}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}@keyframes backdrop-out{to{opacity:0}}@keyframes audio-load{to{transform:rotate(360deg)}}
@media(hover:hover) and (pointer:fine){.nav-trigger:hover,.nav-level:hover,.drawer-link:hover{background:var(--raised);color:var(--teal)}.nav-level:hover>svg,.drawer-link:hover>svg:last-child,.sample-preview:hover .sample-action svg,.card-link:hover svg{transform:translateX(3px)}.button:not(:disabled):hover{background:#b5f6e6;transform:translateY(-2px);box-shadow:0 5px 0 #07291e22,0 10px 20px #0002}.button.secondary:not(:disabled):hover{background:var(--panel);border-color:#71969e}.button:not(:disabled):active{transform:translateY(2px);box-shadow:none}.icon-button:hover svg{transform:rotate(-8deg)}.campaign-try:hover{transform:translateY(-2px)}.footer-links a:hover{text-underline-offset:5px}}
@media(max-width:1160px) and (min-width:961px){.header-inner{gap:12px;min-height:98px}.brand span{font-size:1.3rem}.nav-trigger{padding-inline:9px;gap:6px}.language-picker{display:block}.language-label{position:absolute;top:-18px;right:0;font-size:.65rem;line-height:1.3}.header-tools{gap:7px}}
@media(max-width:960px){.desktop-nav{display:none}.header-inner{min-height:90px;gap:12px;flex-wrap:nowrap}.header-tools{margin-left:auto;gap:7px;padding-top:10px}.menu-toggle{display:inline-flex;width:44px;padding:9px}.brand span{font-size:1.2rem}.brand img{width:38px;height:38px}.language-picker{display:block}.language-label{position:absolute;top:-20px;right:0;font-size:.7rem;line-height:1.3;width:125px;text-align:right}.flag-toggle{padding:8px;gap:6px}.icon-button{padding:9px}.nav-fallback .desktop-nav{display:flex;order:3;width:100%;flex-wrap:wrap}.nav-fallback .header-inner{flex-wrap:wrap}.nav-fallback .menu-toggle{display:none}}
@media(max-width:380px){.header-inner{gap:5px}.brand span{font-size:1.07rem}.brand img{width:32px;height:32px}.brand{gap:6px}.header-tools{gap:5px}.flag-toggle{padding:7px;gap:3px}.flag-toggle .flag-image{width:26px;height:auto}.flag-toggle>svg{width:11px}.icon-button,.menu-toggle{min-width:44px;width:44px;padding:9px}.drawer-top{padding:23px 18px 18px}.drawer-top h2{font-size:1.24rem}.drawer-footer{padding-inline:17px}.drawer-body{padding-inline:12px}}
@media(hover:none){.button:hover,.icon-button:hover,.flag-toggle:hover,.menu-toggle:hover,.program-card:hover,.guide-card:hover,.sample-preview:hover{transform:none}.icon-button:hover svg,.program-card:hover svg{transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ui-ripple{display:none}}
@media print{.nav-drawer{display:none!important}}
/* Selectable home-page previews: real demo links also work without JavaScript. */
.campaign-preview{display:block;min-width:0;scroll-margin-top:115px}.campaign-preview[hidden]{display:none}.campaign-preview .campaign-letter{transition:box-shadow .2s,background .2s}.campaign-preview .campaign-letter>span{display:flex;align-items:center;justify-content:center;width:100%;text-align:center}.campaign-preview .campaign-letter strong{text-align:center}.campaign-preview[data-band="2"] .campaign-letter>span{font-size:clamp(2.2rem,4.5vw,4.4rem)}.campaign-preview[data-band="3"] .campaign-letter>span,.campaign-preview[data-band="4"] .campaign-letter>span{font-size:clamp(2.8rem,5vw,5.5rem)}.campaign-preview[data-band="5"] .campaign-letter>span{font-size:6.5rem}.campaign-preview:not([hidden]) .campaign-letter{animation:preview-reveal .24s ease-out}.campaign-preview-hint{margin:24px 0 10px;color:#bdd6dd;font-size:.74rem;text-align:center}.campaign-visual .campaign-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:0}.campaign-stages a{display:grid;place-items:center;min-width:0;min-height:48px;border:1px solid #75949b;border-bottom:3px solid #456971;border-radius:13px;font-size:.87rem;font-weight:800;background:#213d4c;color:#d0e4e9;transition:background .18s,transform .18s,border-color .18s,box-shadow .18s}.campaign-stages a.is-selected{background:#a8efdb;color:#12483d;border-color:#a8efdb;border-bottom-color:#69b9a4;box-shadow:0 0 0 1px #a8efdb22}.campaign-stages a:focus-visible,.campaign-preview a:focus-visible{outline-color:#a8efdb}.campaign-stages a:active{transform:translateY(2px)}
@keyframes preview-reveal{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.campaign-stages a:hover{background:#315664;border-color:#a8efdb;transform:translateY(-2px)}.campaign-stages a.is-selected:hover{background:#bbf5e5;color:#12483d}.campaign-preview .campaign-letter:hover{background:#bbf5e5;box-shadow:0 6px 0 #609d8c,0 10px 25px #041a222b}}
@media(max-width:760px){.campaign-visual{display:block}.campaign-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.campaign-preview .campaign-letter{grid-column:1;grid-row:2}.campaign-preview .campaign-try{grid-column:2;grid-row:2}.campaign-preview .campaign-letter>span{min-height:112px}.campaign-visual .campaign-stages{gap:7px}.campaign-stages a{min-height:46px}.campaign-preview[data-band="2"] .campaign-letter>span{font-size:2.2rem}.campaign-preview[data-band="3"] .campaign-letter>span,.campaign-preview[data-band="4"] .campaign-letter>span{font-size:3.5rem}.campaign-preview[data-band="5"] .campaign-letter>span{font-size:4.5rem}.campaign-visual-note{margin-top:14px}.campaign-preview-hint{margin-top:21px}}
@media(max-width:430px){.campaign-preview{display:block}.campaign-preview .campaign-letter{margin-top:20px;padding:12px 14px 16px}.campaign-preview .campaign-letter>span{min-height:102px;line-height:1.25}.campaign-preview .campaign-letter strong{font-size:1.04rem}.campaign-preview .campaign-letter small{font-size:.76rem;line-height:1.5}.campaign-preview .campaign-try{margin-top:20px;min-height:48px}.campaign-visual .campaign-stages{gap:6px}.campaign-stages a{min-height:45px;font-size:.79rem;border-radius:11px}.campaign-preview-hint{font-size:.71rem}}
