{"version":3,"file":"S2AMUI2InterfaceWindow.DYuabmFN.mjs","names":["React.useSyncExternalStore","React.useRef","c","_Fragment","React.useState","React.useCallback","React.useId","React.Fragment","React.Suspense","p","React.useMemo","React.Component","FramerNS.useRouter"],"sources":["https:/framerusercontent.com/modules/Pp5QfXyqX9Dqgj0gM4LG/j8Xk5oPQdhpiFWYaxfvb/S2AMUI2InterfaceWindow.js"],"sourcesContent":["/**\n * S2AMUI2InterfaceWindow.tsx — the manual's \"Interface\" launcher and window, with the two-chord continuous demo.\n * Namespace S2AMUI2 · scope site2a-claude-manual-pilot · T13 (2026-10-02, Claude).\n *\n * Successor of S2AMUIInterfaceWindow.tsx (v8, left unchanged). This file is the light part that every manual page\n * loads: the header button, the Contents row, the NEW note and the window chrome. The instrument itself\n * (S2AMUI2ProtectedHostedDemo.tsx, Codex's reduced hosted build; the earlier S2AMUI2ManualDemo.tsx stays as the\n * fallback) and its help copy (S2AMUI2DemoCopy.tsx) are\n * imported on demand when the window opens (or when a visitor points at, focuses or touches a launcher).\n *\n * Route gate: the continuous window runs only on the pages listed in \"Continuous on\" (the seven live manual pages).\n * Anywhere else — backup copies, the pilot — the component renders the previous launcher from\n * S2AMUIInterfaceWindow.tsx unchanged (loaded on demand), so those pages keep their earlier window.\n *\n * Silent visual example: no audio, no live MIDI, no chord recognition, no processing engine.\n * Owner rule kept: no focus rings, outlines, glow or decorations on the instrument; the window's own controls\n * have a teal focus ring. The demo contract is documented in records/T13/CONTRACT.md.\n *\n * First-open guide (2026-10-03): on the first open, a short guide presses the real controls and the real keyboard\n * answers. It is a timeline the visitor can pause and scrub; its emphasis is a temporary layer above the instrument\n * that leaves the document when the guide ends; the visitor's settings are restored exactly. See \"First-open guide\"\n * below and records/GUIDE3/.\n */function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal,flushSync}from\"react-dom\";import*as FramerNS from\"framer\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// ————————————————————————————————————————————————————————————————————————\n// Copy for the window chrome (help copy for the instrument lives in S2AMUI2DemoCopy.tsx).\n// ————————————————————————————————————————————————————————————————————————\nconst UI={windowTitle:\"Plug-in interface\",eyebrow:\"Interactive guide\",chordGroup:\"Example chord\",caption:\"Adjust the controls to see how they affect the selected chord and bass notes. The keyboard shows the resulting notes. This interactive view is silent.\",captionPhone:\"The keyboard shows the resulting notes. This view is silent.\",idle:\"Hover over a control to see what it does.\",idleTouch:\"Tap a control to see what it does.\",loading:\"Loading example…\",failed:\"Example unavailable.\",moduleFailed:\"The interface could not load.\",retry:\"Try again\",retryShort:\"Retry\",reload:\"Reload page\",stepShort:\"Step\",step:\"Step example\",reduced:\"Reduced motion is on. Use Step example to advance.\",zoomGroup:\"Instrument zoom\",zoomOut:\"Zoom out\",zoomIn:\"Zoom in\",fit:\"Fit\",close:\"Close\",closeHelp:\"Close control help\",helpPrefix:\"Help for \",launcherLabel:\"Interface\",launcherName:\"Explore the interface\",rowLabel:\"Explore the interface\",error:\"The interface could not be shown.\",hintTag:\"New\",hintText:\"Explore the plug-in interface\",hintBadge:\"Interface note (plays on the live page)\",hintDetail:\"Try every control, right in your browser.\",hintCta:\"Open the interface\",hintDisplay:\"Try it yourself\",haloText:\"Open the interface from any manual page\",bloomEyebrow:\"Interactive guide\",bloomTitle:\"Interactive interface\",bloomBody:\"Use the Interface button at any point in the manual to open an interactive view of the plug-in.\",bloomCta:\"Open interface\",hintDismissNote:\"Click or tap anywhere to continue\",hintTicker:\"Invert \\xb7 Voicings \\xb7 Spread \\xb7 Chord Sync \\xb7 Bass Sync \\xb7 Auto Invert \\xb7 Auto Bass Octave \\xb7 Swing \\xb7 90 presets\"};const CHORDS=[{id:0,name:\"C Major 7\",sub:\"with bass\",label:\"C Major 7 with bass\"},{id:4,name:\"Cm11\",sub:\"with bass\",label:\"Cm11 with bass\"}];// The pages that open the continuous window. One list for every instance (header, Contents row, note), so a page\n// can never mix the two windows. Pages outside it — backup copies, the pilot — keep the previous window.\nconst LIVE_ROUTES=\"/manual, /manual/introduction, /manual/real-time-chord-control, /manual/sync-sequencer, /manual/anatomy, /manual/integration, /manual/daw-quickstart\";// The base artwork (also the poster shown while the demo loads). Same files as the demo's ART map.\nconst BASE_ART={light:\"https://framerusercontent.com/images/INUgh3LO75LUgeJXKytKDQUTWs.png\",dark:\"https://framerusercontent.com/images/36dKjIzqO77EWKq4epkf2PvmjRA.png\"};const SCALE_STEPS=[640,800,1024,1280,1536];function sizedURL(url,needed,natural=2048){const step=SCALE_STEPS.find(s=>s>=needed);return step&&step<natural?`${url}?scale-down-to=${step}`:url;}// On-demand modules. One shared promise; a failed attempt is forgotten so \"Try again\" can retry.\nlet demoModules=null;function loadDemo(){if(!demoModules){demoModules=Promise.all([// @ts-ignore -- sibling code file, resolved by Framer at runtime (compiled to its versioned module URL)\nimport(\"https://framerusercontent.com/modules/gOkZSWzzavbHSvLKx9m9/74a6Kpd3cbih4fNArCVR/S2AMUI2ProtectedHostedDemo.js\"),// @ts-ignore -- sibling code file, resolved by Framer at runtime\nimport(\"https://framerusercontent.com/modules/sPjHX4KSBhmq9m1Vf70R/YtLe5auO7a4XzkBKxbuj/S2AMUI2DemoCopy.js\")]).then(([demo,copy])=>{const isComponent=c=>typeof c===\"function\"||!!c&&typeof c===\"object\"&&\"$$typeof\"in c;if(demo?.DEMO_CONTRACT!==1||!isComponent(demo?.default)||!copy?.DEMO_HELP)throw new Error(\"demo contract\");const help=copy.DEMO_HELP;const labels=Object.fromEntries(Object.entries(help).map(([key,entry])=>[key,entry.title]));return{Demo:demo.default,help,labels};});demoModules.catch(()=>{demoModules=null;});}return demoModules;}// ————————————————————————————————————————————————————————————————————————\n// Settings memory: module scope for this page view, sessionStorage across manual pages until the tab closes.\n// Stored: the chord choice and the demo's own validated settings blob (theme, controls, lanes). Never stored:\n// zoom, scroll, help, menus, playback clocks or held notes. The previous window's \"cc-interface-tour:v1\"\n// (old tour) is not read: it describes a different instrument and starts in Light.\n// ————————————————————————————————————————————————————————————————————————\nconst STORAGE_KEY=\"cc-interface-window:v2\";function sessionStore(){try{return typeof window!==\"undefined\"?window.sessionStorage:null;}catch{return null;}}function readStored(){const storage=sessionStore();if(!storage)return null;try{const text=storage.getItem(STORAGE_KEY);if(text===null)return null;const o=JSON.parse(text);if(!o||o.v!==2||o.chord!==0&&o.chord!==4){storage.removeItem(STORAGE_KEY);return null;}return{v:2,chord:o.chord,theme:o.theme===\"light\"?\"light\":\"dark\",demo:o.demo??null};}catch{try{storage.removeItem(STORAGE_KEY);}catch{}return null;}}function writeStored(){const storage=sessionStore();if(!storage)return;try{storage.setItem(STORAGE_KEY,JSON.stringify({v:2,chord:MEMORY.chord,theme:MEMORY.theme,demo:MEMORY.demoSettings}));}catch{}}// ————————————————————————————————————————————————————————————————————————\n// Window store: one window per document, however many launchers are mounted.\n// ————————————————————————————————————————————————————————————————————————\nconst DIALOG_ID=\"s2amui2-interface-window\";const MEMORY={phase:\"closed\",everOpened:false,openSeq:0,closeSeq:0,version:0,opener:null,navRoot:null,chord:0,theme:\"light\",demoSettings:null,loaded:false,saveTimer:0,closeTimer:0,hosts:[],subs:new Set,bridge:null,lock:null,listening:false};function loadMemory(){if(MEMORY.loaded||typeof window===\"undefined\")return;MEMORY.loaded=true;const s=readStored();if(s){MEMORY.chord=s.chord;MEMORY.theme=s.theme;MEMORY.demoSettings=s.demo;}}const emit=()=>{MEMORY.version++;MEMORY.subs.forEach(f=>f());};const subscribe=f=>{MEMORY.subs.add(f);return()=>{MEMORY.subs.delete(f);};};const getVersion=()=>MEMORY.version;const getServerVersion=()=>0;function useStoreVersion(){return React.useSyncExternalStore(subscribe,getVersion,getServerVersion);}function registerHost(id){if(!MEMORY.hosts.includes(id)){MEMORY.hosts.push(id);emit();}}function unregisterHost(id){if(MEMORY.hosts[0]===id&&MEMORY.phase===\"closed\")MEMORY.everOpened=false;MEMORY.hosts=MEMORY.hosts.filter(h=>h!==id);emit();const check=()=>{if(!MEMORY.hosts.length&&MEMORY.phase!==\"closed\")finalizeClose(false);};if(typeof queueMicrotask===\"function\")queueMicrotask(check);else check();}function rememberSettings(settings,theme){// First-open guide: the latest report is always tracked; while a guide runs it is not remembered, so MEMORY and\n// sessionStorage keep the visitor's own settings (see the guide section).\nGUIDE.live=settings;GUIDE.reportMount=GUIDE.mountSeq;if(GUIDE.fresh){GUIDE.fresh=false;GUIDE.defaults=guideShape(settings);}if(GUIDE.hold===2){GUIDE.hold=0;GUIDE.restore=guideJSON(settings)===GUIDE.snap?\"remount\":\"remount-inexact\";}if(GUIDE.hold)return;MEMORY.demoSettings=settings;MEMORY.theme=theme;if(typeof window===\"undefined\")return;// Auto Invert changes the inversion several times a second: write at most every 1.5 s, always the latest state\n// (close, pagehide and a hidden tab also write at once).\nif(MEMORY.saveTimer)return;MEMORY.saveTimer=window.setTimeout(()=>{MEMORY.saveTimer=0;writeStored();},1500);}function rememberChord(chord){MEMORY.chord=chord;writeStored();emit();}// sync=false inside React's commit phase, where flushSync must not be used.\nfunction flushSettings(sync=true){const run=()=>{try{MEMORY.bridge?.flush();}catch{}};if(sync){try{flushSync(run);}catch{run();}}else run();if(typeof window!==\"undefined\")window.clearTimeout(MEMORY.saveTimer);MEMORY.saveTimer=0;if(MEMORY.loaded)writeStored();}const onPageHide=()=>{GUIDE.stop?.();flushSettings();};const onVisibility=()=>{if(document.visibilityState===\"hidden\"){GUIDE.stop?.();flushSettings();}};const onHistory=()=>{if(MEMORY.phase!==\"closed\")finalizeClose(false,true);};function listen(on){if(typeof window===\"undefined\"||MEMORY.listening===on)return;MEMORY.listening=on;const method=on?\"addEventListener\":\"removeEventListener\";window[method](\"pagehide\",onPageHide);document[method](\"visibilitychange\",onVisibility);window[method](\"popstate\",onHistory);window[method](\"hashchange\",onHistory);}const isIOS=()=>{try{return/iP(hone|ad|od)/.test(navigator.platform)||navigator.platform===\"MacIntel\"&&navigator.maxTouchPoints>1;}catch{return false;}};function lockPage(){if(MEMORY.lock||typeof document===\"undefined\")return;const html=document.documentElement,body=document.body,x=window.scrollX,y=window.scrollY,ios=isIOS();const bar=Math.max(0,window.innerWidth-html.clientWidth);MEMORY.lock={htmlOverflow:html.style.overflow,bodyOverflow:body.style.overflow,bodyPadding:body.style.paddingRight,bodyPosition:body.style.position,bodyTop:body.style.top,bodyWidth:body.style.width,x,y,ios,path:location.pathname+location.search};// Root only: an overflow on <body> would make it a scroll container and unstick the sticky manual header.\nhtml.style.overflow=\"hidden\";const bodyStyle=getComputedStyle(body);if(bodyStyle.overflowX!==\"visible\"||bodyStyle.overflowY!==\"visible\")body.style.overflow=\"visible\";if(bar>0)body.style.paddingRight=`${(parseFloat(getComputedStyle(body).paddingRight)||0)+bar}px`;if(ios){body.style.position=\"fixed\";body.style.top=`${-y}px`;body.style.width=\"100%\";}}function unlockPage(){const lock=MEMORY.lock;if(!lock)return;MEMORY.lock=null;const html=document.documentElement,body=document.body;html.style.overflow=lock.htmlOverflow;body.style.overflow=lock.bodyOverflow;body.style.paddingRight=lock.bodyPadding;body.style.position=lock.bodyPosition;body.style.top=lock.bodyTop;body.style.width=lock.bodyWidth;if(location.pathname+location.search===lock.path&&(window.scrollX!==lock.x||window.scrollY!==lock.y))window.scrollTo({left:lock.x,top:lock.y,behavior:\"instant\"});}// Closes an open manual navigation panel before the window opens (the navigation's own state attribute and its\n// own Escape close path).\nfunction closeNavPanels(from){const nav=from?.closest(\"[data-mn2]\")??document.querySelector('[data-mn2][data-menu-open=\"true\"]');if(!nav||nav.getAttribute(\"data-menu-open\")!==\"true\")return nav;document.dispatchEvent(new KeyboardEvent(\"keydown\",{key:\"Escape\",bubbles:true,cancelable:true}));if(nav.getAttribute(\"data-menu-open\")===\"true\")nav.querySelector('[aria-expanded=\"true\"]')?.click();return nav;}function openWindow(opener){if(typeof window===\"undefined\"||MEMORY.phase===\"open\")return;window.clearTimeout(MEMORY.closeTimer);loadMemory();MEMORY.navRoot=closeNavPanels(opener);MEMORY.opener=opener;const wasClosed=MEMORY.phase===\"closed\";MEMORY.phase=\"open\";MEMORY.everOpened=true;if(wasClosed){MEMORY.openSeq++;lockPage();}sessionFlag(OPENED_KEY,true);endHint(true);listen(true);void loadDemo().catch(()=>{});emit();}const prefersReducedMotion=()=>{try{return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}catch{return false;}};function requestClose(restoreFocus=true){if(MEMORY.phase!==\"open\")return;GUIDE.stop?.();try{MEMORY.bridge?.closeMenus();MEMORY.bridge?.dismiss(false);}catch{}flushSettings();MEMORY.phase=\"closing\";emit();window.clearTimeout(MEMORY.closeTimer);MEMORY.closeTimer=window.setTimeout(()=>finalizeClose(restoreFocus),prefersReducedMotion()?0:160);}const isShown=el=>!!el&&el.isConnected&&el.getClientRects().length>0&&getComputedStyle(el).visibility!==\"hidden\"&&!el.closest(\"[inert]\");// syncFlush: callers outside React's commit phase (history events, the dialog's close event) commit pending edits first.\nfunction finalizeClose(restoreFocus,syncFlush=false){if(typeof window===\"undefined\")return;window.clearTimeout(MEMORY.closeTimer);GUIDE.stop?.();if(MEMORY.phase===\"open\")flushSettings(syncFlush);MEMORY.phase=\"closed\";MEMORY.closeSeq++;const dialog=document.getElementById(DIALOG_ID);try{if(dialog?.open)dialog.close();}catch{}releaseFallback();unlockPage();listen(false);emit();if(restoreFocus){const nav=MEMORY.navRoot;const header=nav?.querySelector('[data-s2amui2-launcher=\"header\"]')??document.querySelector('[data-s2amui2-launcher=\"header\"]');const target=[MEMORY.opener,header,nav?.querySelector('[data-framer-name=\"Manual contents toggle\"]')].find(isShown);target?.focus({preventScroll:true});}MEMORY.opener=null;MEMORY.navRoot=null;}// Fallback when <dialog>.showModal is missing: a fixed layer, role=dialog, and inert on the rest of the page.\nconst inertedByFallback=[];function applyFallback(dialog){dialog.setAttribute(\"open\",\"\");dialog.setAttribute(\"role\",\"dialog\");dialog.setAttribute(\"aria-modal\",\"true\");dialog.setAttribute(\"data-s2amui2-fallback\",\"true\");const holder=dialog.closest(\"[data-s2amui2-window]\");for(const el of Array.from(document.body.children))if(el!==holder&&!el.inert){el.inert=true;inertedByFallback.push(el);}}function releaseFallback(){while(inertedByFallback.length){const el=inertedByFallback.pop();if(el)el.inert=false;}const dialog=typeof document!==\"undefined\"?document.getElementById(DIALOG_ID):null;if(dialog?.hasAttribute(\"data-s2amui2-fallback\")){dialog.removeAttribute(\"open\");dialog.removeAttribute(\"data-s2amui2-fallback\");}}let portalHolder=null;function getPortalHolder(){if(portalHolder&&portalHolder.isConnected)return portalHolder;portalHolder=document.querySelector(\"div[data-s2amui2-window]\")??document.createElement(\"div\");portalHolder.setAttribute(\"data-s2amui2-window\",\"\");if(!portalHolder.isConnected)document.body.appendChild(portalHolder);return portalHolder;}// ————————————————————————————————————————————————————————————————————————\n// Layout. The whole instrument is visible at Fit; the instrument stage is the only scroller, and only while zoomed.\n//   side  — wide windows: instrument left, a column with the chord choice, status and help on the right.\n//   stack — tall tablet/desktop windows: instrument on top, chord choice beside the help card below it.\n//   phone — portrait phones: chord choice in the top bar, a zoom row, instrument, a two-line status, help dock.\n// Short landscape phones use \"side\" with phone chrome.\n// ————————————————————————————————————————————————————————————————————————\nconst ART_RATIO=1888/2048;const CAP=1040;const phoneBp=(vw,vh)=>vw<768||vh<500;// Desktop/tablet chooser block as rendered: label 16 + 10 + choices 60 + 10 + status/caption (at least 44, = 140);\n// with reduced motion + 10 + the Step row 56. The caption wraps to as many 14 px / 1.45 lines as its column needs\n// (measured at 14 px: 520 px -> 2 lines, 434 and 353 -> 3, 264 -> 4).\nconst STEP_H=66;const captionH=w=>Math.max(44,Math.ceil(UI.caption.length*6.3/Math.max(120,w)+.15)*20.3);const chooserOf=(w,reduced)=>96+captionH(w)+(reduced?STEP_H:0);// Portrait phones: the zoom row under the top bar (6 + 44 + 6 + 1 hairline), a spacer under the help dock (8 + safe area),\n// and a two-line status slot (13 px / 18 px).\nconst ZOOM_ROW_H=57,BOTTOM_PAD=8,META_P=36;const fitOf=w=>{const fitH=Math.floor(Math.max(48,Math.min(w,CAP))/ART_RATIO);return{fitH,fitW:fitH*ART_RATIO};};// Phone breakpoint, side by side? Decided from the sheet alone (never from the bars the current mode measured), so the\n// two phone modes cannot flip back and forth: wide sheets, and near-square ones where side by side is no smaller.\nfunction landscapeSheet(sheetW,sheetH){if(sheetW/Math.max(1,sheetH-64)>=1.1)return true;if(sheetW<680)return false;const colP=Math.floor(Math.max(200,Math.min(320,sheetW*.4)));const sideFit=fitOf(Math.min(sheetW-44-colP,(sheetH-65-24)*ART_RATIO));const helpP=sheetH-65-ZOOM_ROW_H-BOTTOM_PAD>=520?134:110;const phoneFit=fitOf(Math.min(sheetW-32,(sheetH-73-ZOOM_ROW_H-BOTTOM_PAD-8-helpP-META_P-36)*ART_RATIO));return sideFit.fitW>=phoneFit.fitW*.95;}function computeLayout(sheetW,sheetH,vw,vh,top,bottom,reduced){const bp=phoneBp(vw,vh)?\"p\":vw>=1200?\"d\":\"t\";const bodyH=Math.max(120,sheetH-top-bottom);const fit=fitOf;if(bp===\"p\"&&landscapeSheet(sheetW,sheetH)){// Landscape phone: instrument sized by height on the left; chord choice and help in a column on the right.\nconst padX=16,padY=12,gap=12;const colW=Math.floor(Math.max(200,Math.min(320,sheetW*.4)));const{fitW,fitH}=fit(Math.min(sheetW-2*padX-gap-colW,(bodyH-2*padY)*ART_RATIO));const zoomPlace=sheetW>=560?\"top\":\"col\";// Compact chooser as on phones: choices 60 + 10 + two-line caption, then the 16 px gap (Step/Retry sit in the top bar).\nconst reserved=60+10+META_P+16+(zoomPlace===\"col\"?60:0);const sideColW=Math.floor(Math.min(360,sheetW-2*padX-gap-fitW));const contentW=Math.round(fitW+gap+Math.min(520,Math.max(sideColW,sheetW-2*padX-fitW-gap)));return{mode:\"side\",bp,compact:true,fitW,fitH,colW:sideColW,helpH:Math.max(60,bodyH-2*padY-reserved),lowerW:0,contentW,zoomPlace};}if(bp===\"p\"){const padX=16,gap=12,meta=META_P;const helpH=bodyH>=520?134:110;const areaH=Math.max(100,bodyH-8-helpH-meta-3*gap);const{fitW,fitH}=fit(Math.min(sheetW-2*padX,areaH*ART_RATIO));// Tall phones: the instrument is width-limited, so the help dock takes the remaining height (a fixed size,\n// so nothing moves while notes play or help changes).\nconst dockH=Math.max(helpH,Math.floor(bodyH-8-fitH-meta-3*gap));return{mode:\"phone\",bp,compact:true,fitW,fitH,colW:Math.floor(fitW),helpH:dockH,lowerW:Math.floor(fitW),contentW:0,zoomPlace:\"row\"};}const padX=bp===\"d\"?32:24,padTop=24,padBottom=bp===\"d\"?32:24,gap=bp===\"d\"?32:24;const colW=Math.round(Math.max(280,Math.min(380,vw*.26)));const side=fit(Math.min(sheetW-2*padX-colW-gap,(bodyH-padTop-padBottom)*ART_RATIO));const rowW=Math.min(sheetW-2*padX,1040);const chooserH=chooserOf(rowW>=600?264:rowW,reduced);const lowerMin=rowW>=600?Math.max(224,chooserH):chooserH+12+150;let stack=fit(Math.min(sheetW-2*padX,(bodyH-padTop-padBottom-gap-lowerMin)*ART_RATIO));if(side.fitW>=stack.fitW*.9){const sideCol=Math.min(520,Math.max(colW,sheetW-2*padX-side.fitW-gap));const contentW=Math.round(side.fitW+gap+sideCol);return{mode:\"side\",bp,compact:side.fitW<560,fitW:side.fitW,fitH:side.fitH,colW,helpH:Math.max(140,bodyH-padTop-padBottom-chooserOf(sideCol,reduced)-16),lowerW:0,contentW,zoomPlace:\"top\"};}// Just short of the width where the row below lines up with the instrument: grow to it when the row still fits.\nif(rowW>=602&&stack.fitW<600){const grown=fit(602),rest=bodyH-padTop-padBottom-gap-grown.fitH;if(rest>=Math.max(200,chooserH))stack=grown;}// The row under the instrument lines up with it when it is wide enough for chord choice + help side by side.\nconst lowerW=Math.floor(stack.fitW>=600?stack.fitW:Math.max(stack.fitW,Math.min(rowW,640)));const lowerH=Math.min(300,Math.max(bodyH-padTop-padBottom-gap-stack.fitH,chooserH));return{mode:\"stack\",bp,compact:stack.fitW<560,fitW:stack.fitW,fitH:stack.fitH,colW:lowerW>=600?264:lowerW,helpH:lowerW>=600?lowerH:lowerH-chooserH-12,lowerW,contentW:Math.max(Math.ceil(stack.fitW),lowerW),zoomPlace:\"top\"};}const guessLayout=reduced=>{const vw=window.innerWidth,vh=window.innerHeight,phone=phoneBp(vw,vh),inset=phone?0:vw>=1200?34:26,landscape=phone&&landscapeSheet(vw,vh);return computeLayout(Math.min(1440,vw-inset),vh-inset,vw,vh,phone?65+(landscape?0:ZOOM_ROW_H):vw>=1200?81:73,!phone||landscape?0:BOTTOM_PAD,reduced);};// ————————————————————————————————————————————————————————————————————————\n// Chrome: glyphs, chord choice, help card, zoom, status.\n// ————————————————————————————————————————————————————————————————————————\nconst INTERFACE_GLYPH='<path d=\"M5.81 19.44A8.75 8.75 0 1 1 18.19 19.44\"/><circle cx=\"12\" cy=\"13.25\" r=\"4.75\"/><path d=\"M8.75 10 10.5 11.75\"/>';function InterfaceGlyph(){return /*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",focusable:\"false\",width:18,height:18,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:1.5,strokeLinecap:\"round\",strokeLinejoin:\"round\",dangerouslySetInnerHTML:{__html:INTERFACE_GLYPH}});}const Glyph=({d,size=18})=>/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",focusable:\"false\",width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:1.5*24/size,strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:d})});const CLOSE_PATH=\"M6.5 6.5l11 11M17.5 6.5l-11 11\";const PLUS_PATH=\"M12 3.75v16.5M3.75 12h16.5\";// Lead-in colour of a help entry: terracotta for the chord side, teal for the bass side, ink otherwise.\nconst CHORD_KEYS=/^(combinedInput|chord(On|Rate|RateDown|RateUp|Length|Auto|Velocity|Latch|Grid))$/;const BASS_KEYS=/^(bass(On|Rate|RateDown|RateUp|Length|Auto|Velocity|Latch|Grid)|autoBassOctave)(\\.|$)/;const leadColor=key=>CHORD_KEYS.test(key)?\"var(--token-f240b315-796d-4b48-a3f7-70fc24fafe53, #E8A271)\":BASS_KEYS.test(key)?\"var(--token-f2d01388-084c-4a77-9c7b-6d34a8339270, #79AEAA)\":\"var(--token-967fc827-9638-4b25-8d10-b437f1124ad9, #F2EFE2)\";const helpBind=(bridge,key)=>bridge?bridge.bind(key):{};function ChordChoice({chord,onChord,bridge,compact}){const group=React.useRef(null);return /*#__PURE__*/_jsx(\"div\",{ref:group,className:\"s2amui2-choice\",\"data-compact\":compact?\"true\":undefined,role:\"radiogroup\",\"aria-label\":UI.chordGroup,children:CHORDS.map(c=>{const checked=chord===c.id;const bind=helpBind(bridge,\"combinedInput\");return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"radio\",\"aria-checked\":checked,\"aria-label\":c.label,tabIndex:checked?0:-1,\"data-chord\":c.id,className:\"s2amui2-chord s2amui2-chrome\",...bind,onClick:()=>onChord(c.id),onKeyDown:event=>{if(![\"ArrowLeft\",\"ArrowRight\",\"ArrowUp\",\"ArrowDown\"].includes(event.key)||event.repeat||event.altKey||event.ctrlKey||event.metaKey)return;event.preventDefault();const next=c.id===0?4:0;onChord(next);group.current?.querySelector(`[data-chord=\"${next}\"]`)?.focus({preventScroll:true});},children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-chord-mark\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2amui2-chord-text\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-chord-name\",children:c.name}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-chord-sub\",children:c.sub})]})]},c.id);})});}const REPLAY_PATH=\"M4.75 12a7.25 7.25 0 1 0 2.3-5.3M4.75 4.5v4.4h4.4\";function HelpCard({activeKey,help,prefix,onClose,onReplay}){const entry=activeKey&&help?help[activeKey]??null:null;// One stable card: only the inner text changes. The hidden descriptions are the aria-describedby targets\n// of every control the demo and the window bind to help.\nreturn /*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-help\",\"data-state\":entry?\"active\":\"idle\",children:[help&&prefix&&/*#__PURE__*/_jsx(\"div\",{hidden:true,children:Object.entries(help).map(([key,item])=>/*#__PURE__*/_jsxs(\"span\",{id:`${prefix}-${key}`,children:[item.body,item.tip?` ${item.tip}`:\"\"]},key))}),/*#__PURE__*/_jsxs(\"div\",{className:entry?\"s2amui2-help-card\":\"s2amui2-help-card s2amui2-help-idle\",\"data-s2amui2-help-card\":\"\",\"data-replay\":!entry&&onReplay?\"true\":undefined,role:entry?\"region\":undefined,\"aria-label\":entry?`${UI.helpPrefix}${entry.title}`:undefined,children:[entry&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-help-x s2amui2-chrome\",\"aria-label\":UI.closeHelp,onClick:onClose,children:/*#__PURE__*/_jsx(Glyph,{d:CLOSE_PATH,size:16})}),/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-help-scroll\",children:/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-help-inner\",children:entry?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"p\",{className:\"s2amui2-help-body\",children:[/*#__PURE__*/_jsxs(\"strong\",{style:{color:leadColor(activeKey??\"\")},children:[entry.title,\":\"]}),\" \",entry.body]}),entry.tip&&/*#__PURE__*/_jsx(\"p\",{className:\"s2amui2-help-tip\",\"aria-hidden\":\"true\",children:entry.tip})]}):/*#__PURE__*/_jsxs(\"p\",{className:\"s2amui2-help-idle-text\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-fine\",children:UI.idle}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-coarse\",children:UI.idleTouch})]})},activeKey||\"idle\")}),!entry&&onReplay&&/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"s2g-replay s2amui2-chrome\",\"aria-label\":GUIDE_UI.replay,onClick:onReplay,children:[/*#__PURE__*/_jsx(Glyph,{d:REPLAY_PATH,size:16}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:GUIDE_UI.replay})]})]})]});}function ZoomControl({bridge,zoom,onZoom}){const out=zoom<=1,max=zoom>=2.5;return /*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-zoom\",role:\"group\",\"aria-label\":UI.zoomGroup,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-zoom-seg\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-zbtn s2amui2-chrome\",\"aria-label\":UI.zoomOut,\"aria-disabled\":out,...helpBind(bridge,\"phoneZoomOut\"),onClick:()=>{if(!out)onZoom(zoom-.25);},children:/*#__PURE__*/_jsx(Glyph,{d:\"M3.75 12h16.5\"})}),/*#__PURE__*/_jsxs(\"output\",{className:\"s2amui2-zoom-read\",\"aria-live\":\"polite\",children:[Math.round(zoom*100),\"%\"]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-zbtn s2amui2-chrome\",\"aria-label\":UI.zoomIn,\"aria-disabled\":max,...helpBind(bridge,\"phoneZoomIn\"),onClick:()=>{if(!max)onZoom(zoom+.25);},children:/*#__PURE__*/_jsx(Glyph,{d:PLUS_PATH})})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-fit s2amui2-chrome\",...helpBind(bridge,\"phoneFit\"),onClick:()=>onZoom(1),children:UI.fit})]});}// ————————————————————————————————————————————————————————————————————————\n// First-open guide (2026-10-03; timeline engine, Film refinement). On the first open the interface introduces itself:\n// about twenty-five seconds in which the guide presses the REAL controls (DOM clicks on the demo's own buttons) and the\n// REAL keyboard answers. No audio, no MIDI, no invented behaviour; Auto Invert is not part of it.\n//\n// The tour is a TIMELINE. At every moment t (ms) the demonstrated controls have one defined state, targetAt(t): the\n// theme flipped or not, the inversion, Drop 3, Bass Octave, Chord Sync and Bass Sync, relative to the tour's baseline\n// (the demo's defaults in the visitor's theme). Playing advances t, Pause stops it, the progress line seeks it.\n// Whatever the route to t, the engine drives the real controls to targetAt(t), one real click at a time, each read back\n// before the next, so jumping straight to a step gives the same state as playing up to it. The visual renders from t.\n//\n// Two halves. The ENGINE (this section) owns everything that has to be exactly right: the timeline, the real clicks,\n// the state hold and restore, Pause, seeking, Skip, Escape, Close, first-open memory, the reduced-motion stepper and\n// the caption texts. The VISUAL (GUIDE_VISUAL, one treatment per build, injected below) draws: a caption card in the\n// help dock, a layer above the instrument and, if it wants, a layer over the whole window. A visual never clicks a\n// control, never styles one, and everything it draws leaves the document when the guide ends.\n//\n// State safety: while a guide runs, rememberSettings() leaves MEMORY and sessionStorage alone, so the visitor's own\n// settings are what Close, pagehide, a hidden tab or a route change persist. At the end (or Skip) the controls are\n// driven back to the baseline and the reported settings are compared with the snapshot; any difference remounts the\n// demo from the snapshot.\n// ————————————————————————————————————————————————————————————————————————\nconst GUIDE_KEY=\"cc-interface-guide:v1\";// In the copy, *…* is the chord colour and _…_ the bass colour.\nconst GUIDE_UI={skip:\"Skip\",skipName:\"Skip guide\",pauseName:\"Pause guide\",resumeName:\"Resume guide\",timelineName:\"Guide timeline\",next:\"Next\",done:\"Done\",replay:\"Replay guide\",intro:\"A quick tour\",outro:\"Try it yourself\",silent:\"This view is silent. Chord Chameleon is a MIDI effect: your instrument makes the sound.\",example:\"An example chord stays active here. In the plug-in, Chord Chameleon adapts to the MIDI you play.\",themeTitle:\"Appearance\",theme:\"Switch between Light and Dark themes.\",invertTitle:\"Invert\",invert:\"Rotate the chameleon’s eye to change the inversion. Chord notes shift by an octave.\",voicingTitle:\"Voicings\",voicing:\"Reshape the chord with a voicing. Drop 3 lowers the third-highest chord note by one octave.\",bassTitle:\"Bass Octave\",bass:\"Bass Octave shifts the bass by octaves without changing the chord.\",syncTitle:\"*Chord Sync* & _Bass Sync_\",sync:\"Sequence *chord* and _bass_ notes independently. Each follows its own grid.\",syncStep:\"Sequence *chord* and _bass_ notes independently. Use Step example to advance.\",end:\"Click or hover over any control to see what it does.\",endTouch:\"Tap any control to see what it does.\"};const GUIDE_TIMING={silent:3200,example:3200,themeAim:900,themeShow:1150,themeBack:850,invertAim:1250,invertGap:1100,invertHold:1350,voicingAim:950,voicingHold:1750,octAim:1e3,octHold:1700,chordAim:1150,chordHold:1350,bassAim:450,bassHold:2250,leave:900,end:3200};// hold: 0 = normal; 1 = a guide is running (settings reports are not remembered); 2 = waiting for the restored demo.\nconst GUIDE={mode:\"off\",hold:0,seen:false,// mount: the next demo mount starts from the demo's own defaults in this theme (the guide's baseline).\nmount:null,// fresh: the mounted demo started without stored settings, so its first report is the defaults.\nfresh:false,defaults:null,live:null,snap:\"\",restore:\"\",// mountSeq counts demo mounts; reportMount is the mount the latest settings report came from.\nmountSeq:0,reportMount:0,skip:null,stop:null,finish:null};// The running tour's controls, for the card: pause/resume, seek, a scrub (grab … drop), a step to the next or previous\n// stage (keyboard), and Next/Done with reduced motion. Null while no tour runs.\nconst GUIDE_CTRL={toggle:null,seek:null,grab:null,drop:null,step:null,next:null};const guideJSON=s=>{try{return JSON.stringify(s)??\"\";}catch{return\"\";}};// The settings without the theme: equal to the defaults means the tour can start from the visitor's own state.\nconst guideShape=s=>{try{return JSON.stringify(s,(k,v)=>k===\"t\"?undefined:v)??\"\";}catch{return\"\";}};// Seen = started once. localStorage, so a returning reader is not shown the tour in every new tab; sessionStorage and\n// memory as fallbacks. One flag, no personal data.\nfunction guideSeen(set=false){if(typeof window===\"undefined\")return true;let seen=GUIDE.seen;for(const pick of[()=>window.localStorage,()=>window.sessionStorage]){try{const s=pick();if(set)s.setItem(GUIDE_KEY,\"1\");else if(s.getItem(GUIDE_KEY)===\"1\")seen=true;}catch{}}if(set)GUIDE.seen=true;return set||seen;}// Help events while a guide runs: ignored (and the demo's own help state cleared, so nothing stale is left).\nfunction guideTakesHelp(key){if(GUIDE.mode===\"run\"){if(key){const clear=()=>{try{MEMORY.bridge?.dismiss(false);}catch{}};if(typeof queueMicrotask===\"function\")queueMicrotask(clear);else clear();}return true;}if(GUIDE.mode===\"outro\"&&key)GUIDE.finish?.();return false;}const guideRich=text=>text.split(/(\\*[^*]+\\*|_[^_]+_)/).map((part,i)=>part[0]===\"*\"?/*#__PURE__*/_jsx(\"b\",{className:\"s2g-c\",children:part.slice(1,-1)},i):part[0]===\"_\"?/*#__PURE__*/_jsx(\"b\",{className:\"s2g-b\",children:part.slice(1,-1)},i):part);const guidePlain=text=>text.replace(/[*_]/g,\"\");// Building blocks every Card uses (the tests and assistive tech rely on their classes and labels).\n// GuideTexts: every beat's caption stacked in one grid cell, so the card keeps the height of the longest one.\nfunction GuideTexts({beats,index,textOf,className}){return /*#__PURE__*/_jsx(\"div\",{className:className?`s2g-texts ${className}`:\"s2g-texts\",\"aria-hidden\":\"true\",children:beats.map((x,i)=>/*#__PURE__*/_jsx(\"p\",{\"data-beat\":x.id,\"data-on\":i===index?\"true\":undefined,children:guideRich(textOf(x))},x.id))});}const GUIDE_ICON_PAUSE=/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 16 16\",\"aria-hidden\":\"true\",focusable:\"false\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.6\",y:\"2.6\",width:\"2.9\",height:\"10.8\",rx:\"1\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"9.5\",y:\"2.6\",width:\"2.9\",height:\"10.8\",rx:\"1\"})]});const GUIDE_ICON_PLAY=/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 16 16\",\"aria-hidden\":\"true\",focusable:\"false\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5.2 2.9c-.4-.25-.9.04-.9.5v9.2c0 .46.5.75.9.5l7.3-4.6c.37-.23.37-.77 0-1z\"})});// GuideActions: Pause/Resume (while the tour plays by itself) and Skip until the last beat; with reduced motion,\n// Next / Done instead of Pause. 44 px targets.\nfunction GuideActions({manual,last,playing,className}){return /*#__PURE__*/_jsxs(\"div\",{className:className?`s2g-actions ${className}`:\"s2g-actions\",children:[!manual&&!last&&playing!==undefined&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2g-btn s2g-pause s2amui2-chrome\",\"data-state\":playing?\"playing\":\"paused\",\"aria-label\":playing?GUIDE_UI.pauseName:GUIDE_UI.resumeName,onClick:()=>GUIDE_CTRL.toggle?.(),children:playing?GUIDE_ICON_PAUSE:GUIDE_ICON_PLAY}),!last&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2g-btn s2g-skip s2amui2-chrome\",\"aria-label\":GUIDE_UI.skipName,\"aria-describedby\":\"s2g-caption\",onClick:()=>GUIDE.skip?.(),children:GUIDE_UI.skip}),manual&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2g-btn s2g-next s2amui2-chrome\",\"aria-describedby\":\"s2g-caption\",onClick:()=>GUIDE_CTRL.next?.(),children:last?GUIDE_UI.done:GUIDE_UI.next})]});}// GuideProgress: one segment per beat before the hand-back; the current one fills over the beat (CSS --g-dur).\nfunction GuideProgress({beats,index,last,className}){return /*#__PURE__*/_jsx(\"div\",{className:className?`s2g-prog ${className}`:\"s2g-prog\",\"aria-hidden\":\"true\",children:beats.slice(0,beats.length-1).map((x,i)=>/*#__PURE__*/_jsx(\"i\",{\"data-s\":last||i<index?\"done\":i===index?\"now\":undefined,children:/*#__PURE__*/_jsx(\"b\",{})},x.id))});}// GuideScrubber: the tour's timeline as a slider. Click or tap to seek, drag to scrub (playback holds while the\n// pointer is down and resumes on release only if it was playing), arrow keys step between stages, Home/End go to\n// the ends. The engine moves the fill and the thumb every frame through the card's --g-pos (0…1) and keeps\n// aria-valuenow / aria-valuetext current. At the hand-back it is a full, inert line.\nfunction GuideScrubber({timeline,last,className}){const ref=React.useRef(null),drag=React.useRef(null);const cls=className?`s2g-scrub ${className}`:\"s2g-scrub\";const ticks=timeline.starts.slice(1).map(s=>/*#__PURE__*/_jsx(\"i\",{className:\"s2g-scrub-tick\",style:{left:`${(s/timeline.total*100).toFixed(3)}%`}},s));const track=/*#__PURE__*/_jsxs(\"span\",{className:\"s2g-scrub-track\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2g-scrub-fill\"}),ticks]});if(last)return /*#__PURE__*/_jsx(\"div\",{className:cls,\"data-done\":\"true\",\"aria-hidden\":\"true\",children:track});const at=x=>{const r=ref.current?.getBoundingClientRect();return!r||r.width<=0?0:Math.min(1,Math.max(0,(x-r.left)/r.width))*timeline.total;};const release=e=>{if(drag.current!==e.pointerId)return;drag.current=null;e.currentTarget.removeAttribute(\"data-drag\");GUIDE_CTRL.drop?.();};return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:cls,role:\"slider\",tabIndex:0,\"aria-label\":GUIDE_UI.timelineName,\"aria-valuemin\":0,\"aria-valuemax\":Math.round(timeline.total),onPointerDown:e=>{if(drag.current!==null||e.pointerType===\"mouse\"&&e.button!==0)return;e.preventDefault();try{e.currentTarget.setPointerCapture(e.pointerId);}catch{}e.currentTarget.focus({preventScroll:true});drag.current=e.pointerId;e.currentTarget.setAttribute(\"data-drag\",\"true\");GUIDE_CTRL.grab?.();GUIDE_CTRL.seek?.(at(e.clientX));},onPointerMove:e=>{if(drag.current===e.pointerId)GUIDE_CTRL.seek?.(at(e.clientX));},onPointerUp:release,onPointerCancel:release,onLostPointerCapture:release,onKeyDown:e=>{const k=e.key;if(k===\"ArrowRight\"||k===\"ArrowUp\"||k===\"PageUp\")GUIDE_CTRL.step?.(1);else if(k===\"ArrowLeft\"||k===\"ArrowDown\"||k===\"PageDown\")GUIDE_CTRL.step?.(-1);else if(k===\"Home\")GUIDE_CTRL.seek?.(0);else if(k===\"End\")GUIDE_CTRL.seek?.(timeline.total);else return;e.preventDefault();},children:[track,/*#__PURE__*/_jsx(\"span\",{className:\"s2g-scrub-thumb\",\"aria-hidden\":\"true\"})]});}const GUIDE_WIDE={cx:.5,cy:.5,s:1};const GUIDE_STOP=Symbol(\"guide-stop\");const guideClampCam=(c,s)=>Math.min(0,Math.max(1-s,.5-c*s));const guideCamOf=s=>({tx:guideClampCam(s.cx,s.s),ty:guideClampCam(s.cy,s.s),s:s.s});const guideProjectCam=(r,c)=>({x:c.tx+r.x*c.s,y:c.ty+r.y*c.s,w:r.w*c.s,h:r.h*c.s});const guideTransform=c=>Math.abs(c.s-1)<1e-6&&Math.abs(c.tx)<1e-6&&Math.abs(c.ty)<1e-6?\"\":`translate(${(c.tx*100).toFixed(3)}%, ${(c.ty*100).toFixed(3)}%) scale(${c.s.toFixed(5)})`;// The engine's view of the window: the API handed to the visual, plus what only the engine may do.\nfunction guideApi(win,still,where){const q=sel=>win.querySelector(sel);const canvas=()=>q(\".s2amui2-demo .native-canvas\");const control=id=>q(`.s2amui2-demo [data-control=\"${id}\"]`);// Fractions of the canvas. The camera transforms the canvas and the control alike, so these hold under it.\nconst frac=el=>{const c=canvas();if(!c||!el)return null;const a=c.getBoundingClientRect(),b=el.getBoundingClientRect();if(a.width<=0||a.height<=0)return null;return{x:(b.left-a.left)/a.width,y:(b.top-a.top)/a.height,w:b.width/a.width,h:b.height/a.height};};const box=(ids,pad=0)=>{let x0=9,y0=9,x1=-9,y1=-9;for(const id of ids){const f=frac(control(id));if(!f)continue;x0=Math.min(x0,f.x);y0=Math.min(y0,f.y);x1=Math.max(x1,f.x+f.w);y1=Math.max(y1,f.y+f.h);}if(x1<x0)return null;return{x:x0-pad,y:y0-pad*ART_RATIO,w:x1-x0+2*pad,h:y1-y0+2*pad*ART_RATIO};};let target=GUIDE_WIDE,bass=-1,baseTheme=\"light\",baseNotes=[],lastTf=null;const frames=new Set;let loop=0;const tick=now=>{frames.forEach(f=>{try{f(now);}catch{}});loop=frames.size?window.requestAnimationFrame(tick):0;};const lit=()=>Array.from(win.querySelectorAll(\".s2amui2-demo .native-keyboard [data-note]\"));const notes=()=>{const kb=q(\".s2amui2-demo .native-keyboard\"),kr=frac(kb);if(!kb||!kr)return[];const vb=kb.querySelector(\"svg\")?.viewBox?.baseVal,vw=vb?.width||518,vh=vb?.height||62;// The bass note follows Bass Octave (the baseline's bass was recorded at Bass Octave 0).\nconst on=id=>control(id)?.getAttribute(\"aria-pressed\")===\"true\";const b=bass<0?-1:bass+12*(on(\"bassMinus2\")?-2:on(\"bassMinus1\")?-1:0);const out=[];for(const p of lit()){let bb;try{bb=p.getBBox();}catch{continue;}const note=Number(p.dataset.note);out.push({note,part:note===b?\"bass\":\"chord\",x:kr.x+(bb.x+bb.width/2)/vw*kr.w,top:kr.y+bb.y/vh*kr.h,w:bb.width/vw*kr.w,h:bb.height/vh*kr.h});}return out.sort((a,b)=>a.note-b.note);};let lastMs=-1;const setTf=(tf,ms,s)=>{const d=q(\".s2amui2-demo\");// Written only when something changed (a visual may call this every frame); a remounted demo element or a new\n// camera layer gets the current transform at once.\nif(tf===lastTf&&ms===lastMs&&(!d||d.style.transform===tf))return;lastTf=tf;lastMs=ms;win.style.setProperty(\"--g-cam\",`${still?0:ms}ms`);if(d)d.style.transform=tf;win.querySelectorAll(\"[data-g-cam]\").forEach(el=>{el.style.transform=tf;el.style.setProperty(\"--s\",String(s));});};const api={win,still,where,control,rect:id=>frac(control(id)),box,keyboard:()=>frac(q(\".s2amui2-demo .native-keyboard\")),notes,base:()=>baseNotes,theme:()=>/dark theme/.test(canvas()?.getAttribute(\"aria-label\")??\"\")?\"dark\":\"light\",inversion:()=>Number(control(\"inversion\")?.getAttribute(\"aria-valuenow\")),pressed:id=>control(id)?.getAttribute(\"aria-pressed\")===\"true\",cam:(shot,ms=900)=>{target=shot;lastTf=null;setTf(guideTransform(guideCamOf(shot)),ms,shot.s);},camRaw:c=>setTf(guideTransform(c),0,c.s),shot:()=>target,shotOn:(r,s)=>({cx:r.x+r.w/2,cy:r.y+r.h/2,s}),project:(r,shot=target)=>guideProjectCam(r,guideCamOf(shot)),stageSize:()=>{const s=q(\".s2amui2-stage\");return{w:s?.clientWidth||1,h:s?.clientHeight||1};},frame:fn=>{frames.add(fn);if(!loop)loop=window.requestAnimationFrame(tick);return()=>{frames.delete(fn);};},timeline:()=>TL,targetAt:t=>guideTargetAt(t)};return{api,ready:()=>!!q(\".s2g-stage\")&&!!q(\".s2amui2-demo\"),litCount:()=>lit().length,// The baseline: the theme the tour starts in, and the example's lit keys (the lowest is its bass note — both\n// prepared examples are \"with bass\").\nbaseline:()=>{const n=lit().map(p=>Number(p.dataset.note)).sort((a,b)=>a-b);bass=n.length>1?n[0]:-1;baseTheme=api.theme();baseNotes=notes();},baseTheme:()=>baseTheme,inert:on=>{q(\".s2amui2-demo\")?.toggleAttribute(\"inert\",on);},show:on=>{const st=q(\".s2g-stage\");if(st)st.dataset.on=String(on);if(on)q(\".s2amui2-stage\")?.setAttribute(\"data-guide\",\"\");},width:()=>q(\".s2amui2-stage\")?.clientWidth||640,// Removes every trace from the demo container (the layers leave the document with the guide state).\nreset:()=>{frames.clear();window.cancelAnimationFrame(loop);loop=0;const d=q(\".s2amui2-demo\");if(d){d.style.transform=\"\";d.removeAttribute(\"inert\");}win.style.removeProperty(\"--g-cam\");lastTf=null;lastMs=-1;q(\".s2amui2-stage\")?.removeAttribute(\"data-guide\");}};}const gfWords=s=>s.split(\" \").map(t=>({t}));// The stage titles: short display words and one complete sentence each (the full captions stay in the card).\nconst GF_TITLES=[{id:\"silent\",big:true,words:gfWords(\"A quick tour\"),deck:\"A silent, interactive view\"},{id:\"example\",words:gfWords(\"An example chord\"),deck:\"Shown on the lit keys\"},{id:\"theme\",n:\"01\",words:gfWords(\"Light & dark\"),deck:\"Switch between Light and Dark themes.\"},{id:\"invert\",n:\"02\",words:gfWords(\"Turn the eye\"),deck:\"Turn the eye to change the chord inversion.\"},{id:\"voicing\",n:\"03\",words:gfWords(\"Drop 3\"),deck:\"Drop 3 lowers the third-highest chord note by one octave.\"},{id:\"bass\",n:\"04\",words:gfWords(\"Bass Octave\"),deck:\"Shift the bass down one octave.\"},{id:\"sync\",big:true,wrap:true,top:true,n:\"05\",words:[{t:\"Chord\",c:\"c\"},{t:\"&\",g:1},{t:\"bass\",c:\"b\",g:1}],deck:\"Sequence chord and bass independently on separate grids.\",dg:1}];// When each title's first word starts, after the title comes on: once the camera has (nearly) settled.\nconst GF_D0={silent:1100,example:350,theme:650,invert:1e3,voicing:900,bass:800,sync:1e3};const GF_ORDER=[\"silent\",\"example\",\"theme\",\"invert\",\"voicing\",\"bass\",\"sync\"];// Fallback rectangles (canvas fractions) in case a control cannot be measured.\nconst GF_FB={eye:{x:.169,y:.225,w:.146,h:.134},kb:{x:.0967,y:.689,w:.8145,h:.0895},voi:{x:.101,y:.604,w:.262,h:.065},drop3:{x:.163,y:.604,w:.07,h:.065},oct:{x:.377,y:.636,w:.079,h:.027},sync:{x:.49,y:.81,w:.3,h:.12},theme:{x:.015,y:.022,w:.059,h:.03}};const gfUnion=(a,b)=>{const x=Math.min(a.x,b.x),y=Math.min(a.y,b.y);return{x,y,w:Math.max(a.x+a.w,b.x+b.w)-x,h:Math.max(a.y+a.h,b.y+b.h)-y};};const gfClamp=(v,a,b)=>Math.min(b,Math.max(a,v));// Rough advance width (Caprasimo, em per character) to size titles without measuring the DOM.\nconst gfLen=t=>t.words.map(w=>w.t).join(\" \").length;// The easing curves of the first version, as functions: cubic-bezier(x1, y1, x2, y2) solved for y at x.\nconst gfBez=(x1,y1,x2,y2)=>{const cx=3*x1,bx=3*(x2-x1)-cx,ax=1-cx-bx,cy=3*y1,by=3*(y2-y1)-cy,ay=1-cy-by;const X=u=>((ax*u+bx)*u+cx)*u,Y=u=>((ay*u+by)*u+cy)*u,dX=u=>(3*ax*u+2*bx)*u+cx;return x=>{if(x<=0)return 0;if(x>=1)return 1;let u=x;for(let i=0;i<8;i++){const e=X(u)-x,d=dX(u);if(Math.abs(e)<1e-6||Math.abs(d)<1e-6)break;u-=e/d;}if(u<0||u>1||Math.abs(X(u)-x)>1e-4){let lo=0,hi=1;u=x;for(let i=0;i<40;i++){const v=X(u);if(Math.abs(v-x)<1e-6)break;if(v<x)lo=u;else hi=u;u=(lo+hi)/2;}}return Y(u);};};const GF_EASE=gfBez(.45,.05,.2,1)// GUIDE_EASE: camera, light, scrim heights\n;const GF_RISE=gfBez(.2,.7,.2,1)// the title words\n;const GF_SOFT=gfBez(.25,.1,.25,1)// CSS \"ease\": the fades\n;const gfCut=x=>x>=0?1:0;// A track's value at time t: each key moves from wherever the track is at its start to its own value.\nfunction gfEval(keys,t,mix){let from=keys[0].to;for(let i=0;i<keys.length;i++){const k=keys[i],next=keys[i+1];const at=time=>k.ms<=0?time>=k.at?k.to:from:mix(from,k.to,k.ease(gfClamp((time-k.at)/k.ms,0,1)));if(!next||t<next.at)return t<k.at?from:at(t);from=at(next.at);}return from;}const gfMixN=(a,b,k)=>a+(b-a)*k;const gfMixCam=(a,b,k)=>({tx:gfMixN(a.tx,b.tx,k),ty:gfMixN(a.ty,b.ty,k),s:gfMixN(a.s,b.s,k)});const gfMixL=(a,b,k)=>({x:gfMixN(a.x,b.x,k),y:gfMixN(a.y,b.y,k),kx:gfMixN(a.kx,b.kx,k),ky:gfMixN(a.ky,b.ky,k)});const gfMixA=(a,b,k)=>({x:gfMixN(a.x,b.x,k),y:gfMixN(a.y,b.y,k),w:gfMixN(a.w,b.w,k),h:gfMixN(a.h,b.h,k)});const gfMixGeo=(a,b,k)=>({a:gfMixA(a.a,b.a,k),b:gfMixA(a.b,b.b,k)});const gfMixLev=(a,b,k)=>({wa:gfMixN(a.wa,b.wa,k),wb:gfMixN(a.wb,b.wb,k),A:gfMixN(a.A,b.A,k),A1:gfMixN(a.A1,b.A1,k),F:gfMixN(a.F,b.F,k)});// The dimming levels of the chapters, and F, the length of the long fall (stage widths). Appearance is a key light from\n// the toggle's corner: a long, gentle fall across the instrument, which eases further once the theme has changed so the\n// whole instrument can be watched in the other theme and back. The three control chapters dim the rest a little less\n// than the opening's pool did at its darkest (.56). The finale is broader and calmer.\nconst GF_LEV={theme:{wa:1,wb:0,A:.3,A1:.15,F:.55},themeShown:{wa:1,wb:0,A:.2,A1:.08,F:.7},aim:{wa:1,wb:.45,A:.46,A1:.33,F:.22},shown:{wa:1,wb:1,A:.46,A1:.33,F:.22},sync:{wa:1,wb:1,A:.4,A1:.22,F:.26}};// The fall-off around an area, in stage widths. A control's light is brightest at its centre and starts to fall inside\n// it (.6 of its smaller half size, at most .03), so it reads as light on the control, never as a flat patch with an edge;\n// its short edge reaches .8 of its smaller side outside it (between .04 and .07). The keys stay fully lit to the\n// keyboard's own edges and fall off faster (.35 of their height, .025 to .04), so their light does not spill up over the\n// controls. The long fall is set per chapter (GF_LEV, F).\n// Small stages (phones, landscape phones) are not just a scaled-down Desktop: a control's light is at least 24 px across\n// with at least a 12 px edge, and the long fall is at least 64 px, so a small control still gets a soft, readable pool\n// and a small stage does not fall to its darkest level within a few pixels of it.\nconst GF_EDGE={ctl:{k:.8,min:.04,max:.07,inner:.6,innerMax:.03,half:12,edge:12},keys:{k:.35,min:.025,max:.04,inner:0,innerMax:0,half:0,edge:6},farPx:64};const gfSS=x=>x<=0?0:x>=1?1:x*x*(3-2*x);// The example's keys for any demonstrated state, predicted from its lit keys at the baseline (for framing only).\nconst GF_WI=[0,0,1,1,2,3,3,4,4,5,5,6],GF_BLACK=[0,1,0,1,0,0,1,0,1,0,1,0];const gfPc=n=>(n%12+12)%12;const gfWhite=n=>Math.floor(n/12)*7+GF_WI[gfPc(n)];function gfModel(base){const whites=base.filter(n=>!GF_BLACK[gfPc(n.note)]);let ref=null,step=0;for(const a of whites)for(const b of whites){const d=gfWhite(b.note)-gfWhite(a.note);if(d>0){const s=(b.x-a.x)/d;if(s>0&&d>step/100){ref=a;step=s;}}}if(!ref||step<=0||base.length<3)return null;const r=ref,bass=base.find(n=>n.part===\"bass\")??base[0];const chord=base.filter(n=>n!==bass).map(n=>n.note);return{at:n=>GF_BLACK[gfPc(n)]?{x:r.x+(gfWhite(n)-gfWhite(r.note)+.5)*step,w:step*.62}:{x:r.x+(gfWhite(n)-gfWhite(r.note))*step,w:step},notes:s=>{const c=[...chord].sort((a,b)=>a-b);for(let k=0;k<s.inversion;k++){c.sort((a,b)=>a-b);c[0]+=12;}if(s.drop3&&c.length>=3){c.sort((a,b)=>b-a);c[2]-=12;}return[bass.note+12*s.bassOct,...c];}};}const GUIDE_VISUAL={name:\"film\",label:\"Film (light, camera, display titles)\",// Longer holds after the last change so the light can settle on the lit keys (≈ 24 s to the hand-back).\ntiming:{silent:3e3,example:3e3,themeAim:1e3,invertAim:1400,invertHold:1650,voicingAim:1100,voicingHold:1900,octAim:1100,octHold:1800},director:(api,set)=>{const still=api.still;const phone=()=>api.where().bp===\"p\";const ratio=()=>{const z=api.stageSize();return z.h/Math.max(1,z.w);};const rect=(id,fb)=>api.rect(id)??fb;const kb=()=>api.keyboard()??GF_FB.kb;let model=null;// The lit keys of a demonstrated state, as one rectangle on the keyboard strip.\nconst litOf=s=>{const k=kb();if(!model)return{x:k.x+k.w*.38,y:k.y,w:k.w*.48,h:k.h};const xs=model.notes(s).map(n=>model?model.at(n):{x:0,w:0});const x0=Math.min(...xs.map(p=>p.x-p.w/2)),x1=Math.max(...xs.map(p=>p.x+p.w/2));return{x:x0,y:k.y,w:x1-x0,h:k.h};};const lit=t=>litOf(api.targetAt(t));// Camera centre x for a shot of scale s that keeps [l, r] in frame, as near as possible to a preferred left edge.\nconst fitX=(l,r,s,pref)=>{const lo=r+.012-1/s,hi=l-.012;const x0=lo>hi?(lo+hi)/2:Math.min(hi,Math.max(lo,pref));return x0+.5/s;};// Room under the keyboard for the title band (its scrim ends at the keyboard's lower edge), as a fraction of\n// the stage height.\nconst room=()=>phone()?.16:.17;// A chapter shot: a control on the left, the keys before and after the change, the title room under them.\nconst chapter=(control,span,cap,pref,tight)=>{const k=kb(),l=Math.min(control.x,span.x),r=Math.max(control.x+control.w,span.x+span.w);let s=Math.min(cap,1/(r-l+.03));if(tight)s=Math.min(s,(1-room())/(k.y+k.h-(control.y-.02)));const bottom=Math.min(1,k.y+k.h+(room()+(tight?0:.02))/s);return{cx:fitX(l,r,s,pref(s,l,r)),cy:bottom-.5/s,s};};const shots=T=>{const m=T.marks,S=id=>T.starts[GF_ORDER.indexOf(id)];const exl=lit(S(\"example\")),k=kb();const exs=phone()?1.3:1.25,exBottom=Math.min(1,k.y+k.h+(room()+.02)/exs);const th=rect(\"theme\",GF_FB.theme);const p=api.box([\"chordLength\",\"chordRate\",\"bassLength\",\"bassRate\",\"chordOn\",\"bassOn\",\"chordGrid\",\"bassGrid\"])??GF_FB.sync,n=lit(m.lane);const sl=Math.min(.212,n.x-.012),sr=Math.max(p.x+p.w+.014,n.x+n.w+.012);const ss=Math.min(phone()?2:1.75,1/(sr-sl),1/(p.y+p.h-k.y+.1));const eye=rect(\"inversion\",GF_FB.eye),voi=api.box([\"drop2\",\"drop3\",\"drop24\",\"open\"])??GF_FB.voi,oct=api.box([\"bassMinus2\",\"bassMinus1\",\"bassZero\"])??GF_FB.oct;return{open:{cx:.5,cy:.33,s:1.15},// The lit keys centred, the voicing row and the chameleon's tail above, title room below.\nexample:{cx:gfClamp(exl.x+exl.w/2,exl.x+exl.w+.02-.5/exs,exl.x-.02+.5/exs),cy:exBottom-.5/exs,s:exs},// Pushed in toward the Appearance toggle in the top-left corner, so it is in frame as it flips.\ntheme:{cx:th.x+.5/1.3-.01,cy:th.y+.5/1.3-.01,s:1.3},// The eye in the upper left, the keyboard across the lower frame, and under it the title room.\ninvert:chapter(eye,gfUnion(lit(S(\"invert\")),lit(m.inv2)),phone()?1.5:1.4,s=>eye.x+eye.w/2-.3/s,true),// The voicing row on the left, the keyboard right under it, the title room under that.\nvoicing:chapter(voi,gfUnion(lit(S(\"voicing\")),lit(m.drop3)),phone()?1.5:1.45,()=>voi.x-.02,false),// Bass Octave just above the keys; the bass before and after its octave move, and the chord beside it,\n// centred so the low bass key has room at the frame's edge.\nbass:chapter(oct,gfUnion(lit(S(\"bass\")),lit(m.oct)),phone()?1.5:1.45,(s,l,r)=>(l+r)/2-.5/s,false),// Keyboard and the SYNC panel filling the frame, the bottom SYNC row ~4% above the stage's lower edge.\nsync:{cx:(sl+sr)/2,cy:Math.min(1,p.y+p.h+.04/ss)-.5/ss,s:ss},eye,voi,oct};};// Where a title goes under shot s, and its scrim. Bottom titles: the band between the projected keyboard's\n// lower edge and the stage's lower edge; top titles (subject at the bottom): the band above the keyboard. The\n// title runs the stage width, shrinking to fit; the deck drops first, then the title, if the band is too short.\nconst place=(t,s)=>{const z=api.stageSize(),W=Math.max(1,z.w),H=Math.max(1,z.h),ph=phone();const pad=gfClamp(W*.045,10,28),low=gfClamp(W*.032,8,22);const fs0=ph?t.big?gfClamp(W*.062,14,22):gfClamp(W*.05,13,18):t.big?gfClamp(W*.048,22,32):gfClamp(W*.038,18,25.6);const ds=gfClamp(W*.022,13,16);const l=pad/W,w=Math.max(0,1-2*pad/W);const em=.62,len=gfLen(t);let fs=gfClamp(w*W/(len*em),13,fs0),lines=1;if(len*em*fs>w*W&&t.wrap)lines=2;fs=Math.round(fs*10)/10;const k=kb(),edge=t.top?api.project({x:k.x,y:k.y,w:0,h:0},s).y:api.project({x:k.x,y:k.y+k.h,w:0,h:0},s).y;const band=(t.top?edge:1-edge)*H;const free=band-6;const head=lines*fs*1.08+low;const deckLines=Math.ceil(((t.deck?.length??0)*.5*ds+(t.n?3*ds:0))/Math.max(1,w*W));const withDeck=head+fs*.42+deckLines*ds*1.35;const fit=free<head?\"none\":t.deck&&W>=420&&free>=withDeck&&deckLines<=2?\"all\":\"title\";const block=fit===\"all\"?withDeck:head;const sh=gfClamp(Math.min(band,Math.max(block*2.1,H*.22),H*.42),0,H)/H;return{l,w,fs,ds,pad:low,fit,top:t.top===true,sh};};const C=guideCamOf;// The light laid along a strip (the lit keys): a soft ellipse whose clear core just holds the strip, so the\n// row of lit keys is the brightest thing in frame and the panels above and below fall gently away.\nconst band=(r,s)=>{const q=guideProjectCam(r,C(s)),ar=ratio();return{x:q.x+q.w/2,y:q.y+q.h/2,kx:Math.max(.8,(q.w/2+.035)/.17),ky:Math.max(.5,(q.h*ar/2+.02)/.17)};};// ——— The plan: every track for this window size (rebuilt when the stage resizes or the baseline arrives) ———\nlet plan=null;const build=key=>{const T=api.timeline(),m=T.marks,S=id=>T.starts[GF_ORDER.indexOf(id)];const sh=shots(T),W=GUIDE_WIDE;const drop3=rect(\"drop3\",GF_FB.drop3);const k=(at,to,ms)=>({at,to,ms,ease:ms?GF_EASE:gfCut});const cam=[k(0,C(sh.open),0),k(80,C(W),2700),k(S(\"example\"),C(sh.example),1600),k(S(\"theme\"),C(sh.theme),950),k(m.flip+220,C(W),1500),k(S(\"invert\"),C(sh.invert),1300),k(S(\"voicing\"),C(sh.voicing),1200),k(S(\"bass\"),C(sh.bass),1100),k(S(\"sync\"),C(sh.sync),1400)];const L=(at,to,ms)=>({at,to,ms,ease:ms?GF_EASE:gfCut});// The opening and the example: one broad pool of light (unchanged). It gives way to the chapter focus as\n// Appearance begins.\nconst light=[L(0,{x:.46,y:.36,kx:1.45,ky:1.45},0),L(80,{x:.5,y:.46,kx:1.3,ky:1.3},2700),L(S(\"example\"),band(lit(S(\"example\")),sh.example),1400),L(S(\"theme\"),{x:.5,y:.5,kx:1.8,ky:1.8},900)];const lightOn=[{at:0,to:0,ms:0,ease:gfCut},{at:0,to:1,ms:1e3,ease:GF_SOFT},{at:S(\"theme\"),to:0,ms:1e3,ease:GF_SOFT}];// ——— The chapter focus: the control and the keys it changes ———\nconst pad=(r,x,y=x)=>({x:r.x-x,y:r.y-y,w:r.w+2*x,h:r.h+2*y});// The Appearance toggle; the eye with its label, value and − + buttons; Drop 3; Bass Octave with its label;\n// both SYNC lanes (switches, grids, lengths, rates); the lit keys before and after a change.\nconst themeA=pad(rect(\"theme\",GF_FB.theme),.008,.008);const inv=rect(\"inversion\",GF_FB.eye),invPM=api.box([\"inversionMinus\",\"inversionPlus\"])??inv;const eyeA={x:inv.x-.006,y:inv.y-.022,w:inv.w+.028,h:Math.max(inv.y+inv.h,invPM.y+invPM.h)+.006-(inv.y-.022)};const drop3A=pad(drop3,.002,.002);const octA={x:sh.oct.x-.004,y:sh.oct.y-.034,w:sh.oct.w+.008,h:sh.oct.h+.038};const syncA=pad(api.box([\"chordOn\",\"chordGrid\",\"chordLength\",\"chordRate\",\"chordLatch\",\"chordAuto\",\"chordVelocity\",\"bassOn\",\"bassGrid\",\"bassLength\",\"bassRate\",\"bassLatch\",\"bassAuto\",\"bassVelocity\"])??GF_FB.sync,.012,.01);const keys=(r,x=.014)=>({x:r.x-x,y:r.y-.004,w:r.w+2*x,h:r.h+.008});const geoOf={theme:{a:themeA,b:keys(lit(S(\"example\")))},invert:{a:eyeA,b:keys(gfUnion(lit(S(\"invert\")),lit(m.inv2)))},voicing:{a:drop3A,b:keys(gfUnion(lit(S(\"voicing\")),lit(m.drop3)))},bass:{a:octA,b:keys(gfUnion(lit(S(\"bass\")),lit(m.oct)))},sync:{a:syncA,b:keys(gfUnion(lit(S(\"sync\")),lit(m.lane)),.03)}};// The areas move with the camera's own moves (same start, length and curve).\nconst G=(at,to,ms)=>({at,to,ms,ease:ms?GF_EASE:gfCut});const geo=[G(S(\"theme\"),geoOf.theme,0),G(S(\"invert\"),geoOf.invert,1300),G(S(\"voicing\"),geoOf.voicing,1200),G(S(\"bass\"),geoOf.bass,1100),G(S(\"sync\"),geoOf.sync,1400)];// Cause, then effect: in each control chapter the keys are half lit while the guide aims at the control, and\n// come up fully as they change; they stay lit through the hold.\nconst V=(at,to,ms)=>({at,to,ms,ease:ms?GF_SOFT:gfCut});const lev=[// Appearance: the toggle stands out; once the theme has changed the rest comes up, so the whole\n// instrument can be seen in the other theme and back.\nV(0,GF_LEV.theme,0),V(m.flip,GF_LEV.themeShown,700),V(S(\"invert\"),GF_LEV.aim,1100),V(m.inv1,GF_LEV.shown,500),V(S(\"voicing\"),GF_LEV.aim,700),V(m.drop3,GF_LEV.shown,500),V(S(\"bass\"),GF_LEV.aim,700),V(m.oct,GF_LEV.shown,500),V(S(\"sync\"),GF_LEV.sync,1e3)];const focusOn=[{at:0,to:0,ms:0,ease:gfCut},{at:S(\"theme\"),to:1,ms:900,ease:GF_SOFT}];const runFor=(id,on,off,shot,camMs)=>{const t=GF_TITLES.find(x=>x.id===id);return{id,on,off,d0:GF_D0[id]??400,gate:id===\"sync\"?m.laneAim:-1,shot,cam:camMs,pos:place(t,shot)};};const runs=[runFor(\"silent\",0,S(\"example\"),W,2700),runFor(\"example\",S(\"example\"),S(\"theme\"),sh.example,1600),runFor(\"theme\",m.flip+220,S(\"invert\"),W,1500),runFor(\"invert\",S(\"invert\"),S(\"voicing\"),sh.invert,1300),runFor(\"voicing\",S(\"voicing\"),S(\"bass\"),sh.voicing,1200),runFor(\"bass\",S(\"bass\"),S(\"sync\"),sh.bass,1100),runFor(\"sync\",S(\"sync\"),Infinity,sh.sync,1400)];// The scrims: each side's height follows its titles (with the camera's move); a side fades in after its\n// title arrives and out when the title leaves or the other side takes over.\nconst scrimH={top:[{at:0,to:.3,ms:0,ease:gfCut}],bottom:[{at:0,to:.3,ms:0,ease:gfCut}]};const scrimO={top:[{at:0,to:0,ms:0,ease:gfCut}],bottom:[{at:0,to:0,ms:0,ease:gfCut}]};const on={top:false,bottom:false};const turn=(time,side,sd)=>{for(const s of[\"top\",\"bottom\"]){const want=s===side;if(want&&!on[s])scrimO[s].push({at:time+sd,to:1,ms:600,ease:GF_SOFT});if(!want&&on[s])scrimO[s].push({at:time,to:0,ms:450,ease:GF_SOFT});on[s]=want;}};for(const r of runs){if(r.id===\"theme\")turn(S(\"theme\"),null,0)// Appearance: no title until the theme flips\n;const side=r.pos.top?\"top\":\"bottom\";scrimH[side].push({at:r.on,to:r.pos.sh,ms:r.cam,ease:GF_EASE});turn(r.on,r.pos.fit===\"none\"?null:side,Math.max(0,r.d0-450));}for(const s of[\"top\",\"bottom\"]){scrimO[s].sort((a,b)=>a.at-b.at);scrimH[s].sort((a,b)=>a.at-b.at);}// Reduced motion: each beat's settled framing, cut in place (the chapters with their change made).\nconst off={light:{x:.5,y:.5,kx:1.8,ky:1.8},lightOn:0,focusOn:1};const still={silent:{cam:C(W),light:{x:.5,y:.46,kx:1.3,ky:1.3},lightOn:1,geo:geoOf.theme,lev:GF_LEV.theme,focusOn:0},example:{cam:C(sh.example),light:band(lit(S(\"example\")),sh.example),lightOn:1,geo:geoOf.theme,lev:GF_LEV.theme,focusOn:0},theme:{cam:C(W),...off,geo:geoOf.theme,lev:GF_LEV.themeShown},invert:{cam:C(sh.invert),...off,geo:geoOf.invert,lev:GF_LEV.shown},voicing:{cam:C(sh.voicing),...off,geo:geoOf.voicing,lev:GF_LEV.shown},bass:{cam:C(sh.bass),...off,geo:geoOf.bass,lev:GF_LEV.shown},sync:{cam:C(sh.sync),...off,geo:geoOf.sync,lev:GF_LEV.sync}};set({pos:Object.fromEntries(runs.map(r=>[r.id,r.pos])),ar:ratio()});return{key,cam,light,lightOn,geo,lev,focusOn,runs,scrimH,scrimO,still};};const planKey=()=>{const z=api.stageSize();return`${Math.round(z.w)}x${Math.round(z.h)}:${api.where().bp}:${model?1:0}`;};// ——— Drawing: inline styles written only when they change ———\nconst written=new WeakMap;const put=(el,prop,value)=>{if(!el)return;let w=written.get(el);if(!w){w={};written.set(el,w);}if(w[prop]===value)return;w[prop]=value;el.style.setProperty(prop,value);};const q=sel=>api.win.querySelector(`.s2g-stage[data-visual=film] ${sel}`);const drawLight=(l,o)=>{const el=q(\".gf-light\"),ar=ratio();put(el,\"transform\",`translate(${((l.x-.5)*100).toFixed(3)}%, ${((l.y*ar-.5)*100).toFixed(3)}%) scale(${(4*l.kx).toFixed(3)}, ${(4*l.ky).toFixed(3)})`);put(el,\"opacity\",o.toFixed(3));};// The chapter focus, drawn into the stage's small canvas (one sample every 2–3 px; the browser scales it\n// smoothly) and only when it changes. Each area is a rounded box in stage px; around it the dimming rises over\n// a short edge (f1) to A1, then over a long fall (f2) to A. Lit = 1 - Π(1 - w · light of each area).\nconst fx={el:null,img:null,px:null,key:\"\"};const drawFocus=(g,v,o,cam)=>{const el=q(\".gf-focus\");if(!el)return;put(el,\"opacity\",o.toFixed(3));if(o<=0)return;const z=api.stageSize(),W=z.w,H=z.h,step=W>=480?3:2;const cw=Math.max(1,Math.ceil(W/step)),ch=Math.max(1,Math.ceil(H/step));const box=r=>{const p=guideProjectCam(r,cam);return[p.x*W,p.y*H,p.w*W,p.h*H];};const a=box(g.a),b=box(g.b);const key=[cw,ch,...a,...b].map(n=>Math.round(n*10)).join(\",\")+\"|\"+[v.wa,v.wb,v.A,v.A1,v.F].map(n=>Math.round(n*1e3)).join(\",\");if(key===fx.key&&fx.el===el)return;if(el.width!==cw||el.height!==ch){el.width=cw;el.height=ch;}const ctx=el.getContext(\"2d\");if(!ctx)return;if(!fx.img||fx.img.width!==cw||fx.img.height!==ch){fx.img=ctx.createImageData(cw,ch);fx.px=new Uint32Array(fx.img.data.buffer);}const px=fx.px;const f2=Math.max(GF_EDGE.farPx,v.F*W),k1=v.A>0?Math.min(1,v.A1/v.A):0;// Per area: centre, half size, corner radius, where the fall starts (d0, inside) and its short edge (f1).\nconst shape=([x,y,w,h],e)=>{const hx=Math.max(.5,e.half,w/2),hy=Math.max(.5,e.half,h/2),m=Math.min(hx,hy);return{cx:x+w/2,cy:y+h/2,hx,hy,r:.85*m,d0:-Math.min(e.inner*m,e.innerMax*W),f1:Math.max(e.edge,gfClamp(e.k*2*m,e.min*W,e.max*W))};};const sa=shape(a,GF_EDGE.ctl),sb=shape(b,GF_EDGE.keys);const lightOf=(s,x,y)=>{const qx=Math.abs(x-s.cx)-s.hx+s.r,qy=Math.abs(y-s.cy)-s.hy+s.r;const ox=qx>0?qx:0,oy=qy>0?qy:0;const d=Math.sqrt(ox*ox+oy*oy)+Math.min(Math.max(qx,qy),0)-s.r;if(d<=s.d0)return 1;return 1-(k1*gfSS((d-s.d0)/(s.f1-s.d0))+(1-k1)*gfSS((d-s.f1)/f2));};const sx=W/cw,sy=H/ch,rgb=23<<16|28<<8|34// GF_WARM (34, 28, 23), little-endian RGBA\n;for(let j=0;j<ch;j++){const y=(j+.5)*sy;for(let i=0;i<cw;i++){const x=(i+.5)*sx;const lit=1-(1-v.wa*lightOf(sa,x,y))*(1-v.wb*lightOf(sb,x,y));px[j*cw+i]=(Math.round(255*v.A*(1-lit))<<24|rgb)>>>0;}}ctx.putImageData(fx.img,0,0);fx.key=key;fx.el=el;el.dataset.f=key;};const drawTitles=(t,settled)=>{if(!plan)return;for(const r of plan.runs){const el=q(`.gf-title[data-beat=${r.id}]`);if(!el)continue;const show=r.pos.fit!==\"none\";let o=0;if(settled!==null)o=settled===r.id&&show?1:0;else if(show&&t>=r.on)o=t<r.off?GF_SOFT(Math.min(1,(t-r.on)/200)):GF_SOFT(Math.min(1,(r.off-r.on)/200))*(1-GF_SOFT(Math.min(1,(t-r.off)/280)));put(el,\"opacity\",o.toFixed(3));if(o<=0&&settled===null&&t<r.on){}let i=0;el.querySelectorAll(\".gf-w\").forEach(w=>{const g=Number(w.dataset.g||0),d=g>0?Number(w.dataset.j||0)-1:i++;const start=g>0?r.gate+120+d*75:r.on+r.d0+d*75;const p=settled!==null?1:GF_RISE(gfClamp((t-start)/900,0,1));put(w,\"opacity\",(g>0&&settled===null&&t<r.gate?0:p).toFixed(3));put(w,\"transform\",p>=1?\"none\":`translateY(${((1-p)*.42).toFixed(3)}em)`);});const deck=el.querySelector(\".gf-deck\");if(deck){const gated=(GF_TITLES.find(x=>x.id===r.id)?.dg??0)>0;const start=gated?r.gate+120+300:r.on+r.d0+300;const p=settled!==null?1:GF_RISE(gfClamp((t-start)/900,0,1));put(deck,\"opacity\",(gated&&settled===null&&t<r.gate?0:p).toFixed(3));put(deck,\"transform\",p>=1?\"none\":`translateY(${((1-p)*.3).toFixed(3)}em)`);}}};const drawScrims=(t,settled)=>{if(!plan)return;for(const side of[\"top\",\"bottom\"]){const el=q(`.gf-scrim[data-side=${side}]`);const h=settled?settled.pos.top===(side===\"top\")?settled.pos.sh:.3:gfEval(plan.scrimH[side],t,gfMixN);const o=settled?settled.pos.top===(side===\"top\")&&settled.pos.fit!==\"none\"?1:0:gfEval(plan.scrimO[side],t,gfMixN);put(el,\"transform\",`scaleY(${h.toFixed(4)})`);put(el,\"opacity\",o.toFixed(3));}};// Invisible, zero-ink anchors on the real lit keys (they move with the camera), for the layout test (T42).\nlet sig=\"\";const anchors=()=>{let k=\"\";api.win.querySelectorAll(\".s2amui2-demo .native-keyboard [data-note]\").forEach(e=>{k+=(e.getAttribute(\"data-note\")??\"\")+\",\";});if(k!==sig){sig=k;set({notes:api.notes()});}};let leaving=false;return{on:e=>{if(e.type===\"ready\"){model=gfModel(api.base());plan=null;}if(e.type===\"leave\"){// The hand-back: titles, scrims and light fade out with CSS (the clock has stopped); the engine\n// brings the camera back to the whole instrument.\nleaving=true;set({notes:[]});const ms=still?0:Math.max(320,e.ms);api.win.querySelectorAll(\".s2g-stage[data-visual=film] .gf-title\").forEach(el=>{el.style.transition=`opacity ${still?0:280}ms ease`;el.style.opacity=\"0\";});api.win.querySelectorAll(\".s2g-stage[data-visual=film] .gf-scrim\").forEach(el=>{el.style.transition=`opacity ${still?0:450}ms ease`;el.style.opacity=\"0\";});const l=q(\".gf-light\");if(l){l.style.transition=`transform ${ms}ms ${GUIDE_EASE}, opacity ${still?0:1e3}ms ease`;l.style.opacity=\"0\";}const f=q(\".gf-focus\");if(f){f.style.transition=`opacity ${still?0:1e3}ms ease`;f.style.opacity=\"0\";}}},render:c=>{if(leaving)return;const key=planKey();if(!plan||plan.key!==key)plan=build(key);anchors();if(c.still){const id=GF_ORDER[Math.min(c.beat,GF_ORDER.length-1)],s=plan.still[id];api.camRaw(s.cam);drawLight(s.light,s.lightOn);drawFocus(s.geo,s.lev,s.focusOn,s.cam);const run=plan.runs.find(r=>r.id===id)??null;drawTitles(c.t,run?run.id:\"\");drawScrims(c.t,run);return;}const cam=gfEval(plan.cam,c.t,gfMixCam);api.camRaw(cam);drawLight(gfEval(plan.light,c.t,gfMixL),gfEval(plan.lightOn,c.t,gfMixN));drawFocus(gfEval(plan.geo,c.t,gfMixGeo),gfEval(plan.lev,c.t,gfMixLev),gfEval(plan.focusOn,c.t,gfMixN),cam);drawTitles(c.t,null);drawScrims(c.t,null);}};},Card:({beats,index,beat,manual,last,textOf,playing,timeline})=>/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"gf-head\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"gf-eyebrow\",\"aria-hidden\":\"true\",children:[beat.n?/*#__PURE__*/_jsx(\"span\",{className:\"gf-num\",children:beat.n}):null,/*#__PURE__*/_jsx(\"span\",{className:\"gf-name\",children:guideRich(beat.title)})]}),/*#__PURE__*/_jsx(GuideActions,{manual:manual,last:last,playing:playing})]}),/*#__PURE__*/_jsx(GuideTexts,{beats:beats,index:index,textOf:textOf,className:\"gf-texts\"}),/*#__PURE__*/_jsx(GuideScrubber,{timeline:timeline,last:last,className:\"gf-scrub\"})]}),Stage:({vs})=>{const pos=vs.pos??{};return /*#__PURE__*/_jsxs(\"div\",{className:\"gf-root\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"gf-cam\",\"data-g-cam\":\"\",children:(vs.notes??[]).map(n=>/*#__PURE__*/_jsx(\"i\",{className:\"s2g-pip gf-anchor\",\"data-on\":\"true\",\"data-part\":n.part,style:{left:`${(n.x*100).toFixed(3)}%`,top:`${((n.top+n.h*.5)*100).toFixed(3)}%`}},n.note))}),/*#__PURE__*/_jsx(\"i\",{className:\"gf-light\"}),/*#__PURE__*/_jsx(\"canvas\",{className:\"gf-focus\",width:1,height:1}),/*#__PURE__*/_jsx(\"i\",{className:\"gf-scrim\",\"data-side\":\"bottom\"}),/*#__PURE__*/_jsx(\"i\",{className:\"gf-scrim\",\"data-side\":\"top\"}),GF_TITLES.map(t=>{const p=pos[t.id];if(!p)return null;let i=0;const style={left:`${(p.l*100).toFixed(3)}%`,[p.top?\"top\":\"bottom\"]:`${p.pad.toFixed(1)}px`,maxWidth:`${(p.w*100).toFixed(3)}%`,\"--gf-fs\":`${p.fs}px`,\"--gf-ds\":`${p.ds}px`};return /*#__PURE__*/_jsxs(\"div\",{className:\"gf-title\",\"data-big\":t.big?\"true\":undefined,\"data-beat\":t.id,style:style,children:[/*#__PURE__*/_jsx(\"p\",{className:\"gf-h\",children:t.words.map((w,j)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[j>0?\" \":null,/*#__PURE__*/_jsx(\"span\",{className:\"gf-w\",\"data-c\":w.c,\"data-g\":w.g??undefined,\"data-j\":j,\"data-i\":(w.g??0)>0?undefined:i++,children:w.t})]},j))}),t.deck&&p.fit===\"all\"?/*#__PURE__*/_jsxs(\"p\",{className:\"gf-deck\",children:[t.n?/*#__PURE__*/_jsx(\"span\",{className:\"gf-num\",children:t.n}):null,/*#__PURE__*/_jsx(\"span\",{children:t.deck})]}):null]},t.id);})]});}};// The beats, with the visual's timing.\nconst GT={...GUIDE_TIMING,...GUIDE_VISUAL.timing??{}};const BEATS=[{id:\"silent\",title:GUIDE_UI.intro,text:GUIDE_UI.silent,acc:\"sage\",ms:GT.silent},{id:\"example\",title:GUIDE_UI.intro,text:GUIDE_UI.example,acc:\"sage\",ms:GT.example},{id:\"theme\",n:\"01\",title:GUIDE_UI.themeTitle,text:GUIDE_UI.theme,acc:\"sage\",ms:GT.themeAim+GT.themeShow+GT.themeBack},{id:\"invert\",n:\"02\",title:GUIDE_UI.invertTitle,text:GUIDE_UI.invert,acc:\"terra\",ms:GT.invertAim+GT.invertGap+GT.invertHold},{id:\"voicing\",n:\"03\",title:GUIDE_UI.voicingTitle,text:GUIDE_UI.voicing,acc:\"terra\",ms:GT.voicingAim+GT.voicingHold},{id:\"bass\",n:\"04\",title:GUIDE_UI.bassTitle,text:GUIDE_UI.bass,acc:\"teal\",ms:GT.octAim+GT.octHold},{id:\"sync\",n:\"05\",title:GUIDE_UI.syncTitle,text:GUIDE_UI.sync,acc:\"terra\",ms:GT.chordAim+GT.chordHold+GT.bassAim+GT.bassHold},{id:\"end\",title:GUIDE_UI.outro,text:GUIDE_UI.end,acc:\"sage\",ms:GT.end}];const GUIDE_END=BEATS.length-1;const TL=(()=>{const starts=[];let t=0;for(let i=0;i<GUIDE_END;i++){starts.push(t);t+=BEATS[i].ms;}const S=id=>starts[BEATS.findIndex(b=>b.id===id)];const flip=S(\"theme\")+GT.themeAim,inv1=S(\"invert\")+GT.invertAim,chord=S(\"sync\")+GT.chordAim,laneAim=chord+GT.chordHold;const marks={flip,unflip:flip+GT.themeShow,inv1,inv2:inv1+GT.invertGap,drop3:S(\"voicing\")+GT.voicingAim,oct:S(\"bass\")+GT.octAim,chord,laneAim,lane:laneAim+GT.bassAim};return{starts,total:t,marks,stops:[0,S(\"example\"),marks.flip,marks.inv2,marks.drop3,marks.oct,marks.lane]};})();function guideTargetAt(t){const m=TL.marks;return{flip:t>=m.flip&&t<m.unflip,inversion:t>=m.inv2?2:t>=m.inv1?1:0,drop3:t>=m.drop3,bassOct:t>=m.oct?-1:0,chordOn:t>=m.chord,bassOn:t>=m.lane};}const guideBeatAt=t=>{let b=0;for(let i=0;i<TL.starts.length;i++)if(t>=TL.starts[i])b=i;return b;};const guideValueText=t=>{const b=BEATS[guideBeatAt(t)];return`${b.n?b.n+\" \":\"\"}${guidePlain(b.title)}, ${Math.round(t/1e3)} of ${Math.round(TL.total/1e3)} seconds`;};function useGuide(env){const[view,setView]=React.useState({on:false,beat:0,manual:false,outro:false,playing:false,live:0});const[vs,setVs]=React.useState({});const[api,setApi]=React.useState(null);const latest=React.useRef(env);latest.current=env;const current=React.useRef(null);const started=React.useRef(false);const start=React.useCallback(()=>{const win=latest.current.root.current;if(!win||GUIDE.mode!==\"off\"||GUIDE.hold||MEMORY.phase!==\"open\"||MEMORY.demoSettings==null)return;started.current=true;if(latest.current.zoom!==1)latest.current.setZoom(1);const manual=latest.current.reduced;const g=guideApi(win,manual,()=>latest.current.layout);const cancel=new Set;const snap=guideJSON(MEMORY.demoSettings);const r={cancelAll:()=>{const all=Array.from(cancel);cancel.clear();all.forEach(c=>c());}};let live=true,director=null,alive=true;current.current=r;GUIDE.mode=\"run\";GUIDE.hold=1;GUIDE.snap=snap;GUIDE.restore=\"\";guideSeen(true);try{MEMORY.bridge?.closeMenus();MEMORY.bridge?.dismiss(false);}catch{}setVs({});setApi(g.api);setView({on:true,beat:0,manual,outro:false,playing:!manual,live:0});const set=patch=>{if(alive)setVs(v=>({...v,...patch}));};// A visual that throws never breaks the guide: its events are dropped.\nconst emit=e=>{try{director?.on(e);}catch{}};try{director=GUIDE_VISUAL.director(g.api,set);}catch{director=null;}const sleep=ms=>new Promise((resolve,reject)=>{const c=()=>{window.clearTimeout(t);reject(GUIDE_STOP);};const t=window.setTimeout(()=>{cancel.delete(c);resolve();},ms);cancel.add(c);});const until=async(test,ms)=>{const t0=performance.now();while(!test()){if(performance.now()-t0>ms)return false;await sleep(50);}return true;};const nextPress=()=>new Promise((resolve,reject)=>{const c=()=>{GUIDE_CTRL.next=null;reject(GUIDE_STOP);};cancel.add(c);GUIDE_CTRL.next=()=>{cancel.delete(c);GUIDE_CTRL.next=null;resolve();};});// ——— The clock ———\n// t: position in the tour (ms). playing: the visitor's intent (Pause toggles it); scrubbing: a pointer holds the\n// timeline, so the clock stands still and playback continues on release only if playing is still true.\nlet t=0,playing=!manual,scrubbing=false,beat=-1,loop=0,last=0,liveTimer=0,waitFrom=0,seeked=false,painted=-1,labelled=0;let ready=false,failures=0,presses=0;let pending=null;// A visitor whose settings are not the demo's defaults gets the tour on a demo remounted from its defaults.\nconst needMount=GUIDE.defaults===null||guideShape(MEMORY.demoSettings)!==GUIDE.defaults;const mount0=GUIDE.mountSeq;const isReady=()=>(!needMount||GUIDE.reportMount>mount0)&&g.litCount()>1&&!!win.querySelector('.s2amui2-demo[data-ready=\"true\"]');const clock=()=>{const b=Math.max(0,beat);return{t,beat:b,bt:t-TL.starts[b],playing:playing&&!scrubbing,scrubbing,still:manual,ready};};// The demonstrated controls as they are now, relative to the baseline.\nconst have=()=>{const a=g.api;return{flip:a.theme()!==g.baseTheme(),inversion:a.inversion(),drop3:a.pressed(\"drop3\"),bassOct:a.pressed(\"bassMinus2\")?-2:a.pressed(\"bassMinus1\")?-1:0,chordOn:a.pressed(\"chordOn\"),bassOn:a.pressed(\"bassOn\")};};// The one click that brings the controls a step nearer to w: lanes off first, then in tour order, lanes on last.\nconst nextClick=w=>{const h=have();if(h.bassOn&&!w.bassOn)return\"bassOn\";if(h.chordOn&&!w.chordOn)return\"chordOn\";if(h.flip!==w.flip)return\"theme\";if(h.inversion<w.inversion)return\"inversionPlus\";if(h.inversion>w.inversion)return\"inversionMinus\";if(h.drop3!==w.drop3)return\"drop3\";if(h.bassOct!==w.bassOct)return w.bassOct===-1?\"bassMinus1\":w.bassOct===-2?\"bassMinus2\":\"bassZero\";if(!h.chordOn&&w.chordOn)return\"chordOn\";if(!h.bassOn&&w.bassOn)return\"bassOn\";return null;};const click=id=>{const el=g.api.control(id);if(!el)throw new Error(\"guide: control \"+id);emit({type:\"press\",beat:BEATS[Math.max(0,beat)].id,id,n:presses++,back:false});el.click();};// Each frame: at most one click in flight; the next waits until the last one has visibly changed a control.\nconst reconcile=now=>{if(pending){if(JSON.stringify(have())!==pending.before){pending=null;failures=0;}else if(now-pending.at>700){pending=null;if(++failures>3)throw new Error(\"guide: a control did not answer\");}else return;}const id=nextClick(guideTargetAt(t));if(!id)return;pending={at:now,before:JSON.stringify(have())};click(id);};// The card's position line and the slider's value.\nconst label=()=>{const s=win.querySelector(\".s2g-scrub[role=slider]\");if(s){s.setAttribute(\"aria-valuenow\",String(Math.round(t)));s.setAttribute(\"aria-valuetext\",guideValueText(t));}};const paint=()=>{const p=Math.round(t/TL.total*1e4)/1e4;if(p!==painted){painted=p;win.querySelector(\".s2g-card\")?.style.setProperty(\"--g-pos\",String(p));}};const syncBeat=seek=>{const b=guideBeatAt(t);if(b===beat)return;const forward=b>beat;beat=b;setView(v=>v.on?{...v,beat:b}:v);emit({type:\"beat\",beat:BEATS[b].id,ms:BEATS[b].ms,seek});if(forward&&!seek&&playing)emit({type:\"aim\",beat:BEATS[b].id,id:\"\",accent:BEATS[b].acc,ms:BEATS[b].ms});label();// The live region speaks the step once it settles (not every step a scrub passes through).\nwindow.clearTimeout(liveTimer);const say=()=>setView(v=>v.on&&!v.outro?{...v,live:b}:v);if(seek||scrubbing)liveTimer=window.setTimeout(say,600);else say();};const frame=now=>{loop=0;if(!live)return;try{const dt=last?Math.min(250,now-last):0;last=now;if(!ready&&isReady()){ready=true;g.baseline();g.inert(true);emit({type:\"ready\"});}// The example needs the baseline: playback waits at its start until the demo is ready (6 s at most).\nif(playing&&!scrubbing&&(ready||t<TL.starts[1]))t=Math.min(ready?TL.total:TL.starts[1],t+dt);if(!ready&&t>=TL.starts[1]){if(!waitFrom)waitFrom=now;else if(now-waitFrom>6e3)throw new Error(\"guide: baseline\");}syncBeat(seeked);seeked=false;if(ready)reconcile(now);try{director?.render?.(clock());}catch{}paint();if(now-labelled>1e3){labelled=now;label();}if(ready&&playing&&!scrubbing&&t>=TL.total){finishTour();return;}}catch(error){fail(error);return;}loop=window.requestAnimationFrame(frame);};const controls=on=>{GUIDE_CTRL.toggle=on&&!manual?()=>{if(!live)return;playing=!playing;last=0;setView(v=>v.on?{...v,playing}:v);emit({type:\"pause\",paused:!playing});}:null;GUIDE_CTRL.seek=on?to=>{if(!live)return;t=Math.max(0,Math.min(TL.total,Number.isFinite(to)?to:0));seeked=true;label();}:null;GUIDE_CTRL.grab=on?()=>{if(live)scrubbing=true;}:null;GUIDE_CTRL.drop=on?()=>{if(!live)return;scrubbing=false;last=0;label();}:null;// Keyboard: the next stage, or back to the start of this one (or the previous one when already there).\nGUIDE_CTRL.step=on?dir=>{const points=manual?TL.stops:TL.starts;if(dir>0)GUIDE_CTRL.seek?.(points.find(p=>p>t+1)??TL.total);else GUIDE_CTRL.seek?.([...points].reverse().find(p=>p<t-700)??0);}:null;// Reduced motion: Next goes to where the next step has made its change; after the last, the hand-back.\nGUIDE_CTRL.next=on&&manual?()=>{if(!live)return;const nx=TL.stops.find(p=>p>t+1);if(nx===undefined)finishTour();else GUIDE_CTRL.seek?.(nx);}:null;};const off=()=>{alive=false;window.cancelAnimationFrame(loop);loop=0;window.clearTimeout(liveTimer);try{director?.dispose?.();}catch{}director=null;g.reset();GUIDE.mode=\"off\";GUIDE.skip=GUIDE.stop=GUIDE.finish=null;controls(false);if(current.current===r)current.current=null;setView(v=>v.on?{...v,on:false,outro:false}:v);setApi(null);};// Hand-back: the visual clears the stage while the controls are driven back to the baseline with real clicks;\n// the result is compared with the snapshot. Anything else than an identical report remounts the demo from the\n// snapshot.\nconst end=async outro=>{live=false;GUIDE.skip=null;window.cancelAnimationFrame(loop);loop=0;window.clearTimeout(liveTimer);controls(false);const t0=performance.now(),settle=manual?0:Math.max(320,GT.leave);emit({type:\"leave\",ms:settle});g.api.cam(GUIDE_WIDE);if(ready){if(pending){const p=pending;await until(()=>JSON.stringify(have())!==p.before,700);pending=null;}const home=guideTargetAt(-1);for(let i=0;i<16;i++){const id=nextClick(home);if(!id)break;const before=JSON.stringify(have());click(id);if(!await until(()=>JSON.stringify(have())!==before,700))break;await sleep(34);}}const wasBaseline=!!GUIDE.mount;GUIDE.mount=null;if(!wasBaseline&&await until(()=>guideJSON(GUIDE.live)===snap,700)){GUIDE.restore=\"exact\";GUIDE.hold=0;}else{GUIDE.hold=2;latest.current.remount();await until(()=>GUIDE.hold!==2,6e3);if(GUIDE.hold===2){GUIDE.hold=0;GUIDE.restore=\"remount-unconfirmed\";}}g.show(false);await sleep(Math.max(manual?0:300,settle-(performance.now()-t0)));g.reset();g.inert(false);if(outro){GUIDE.mode=\"outro\";GUIDE.finish=GUIDE.stop=()=>{r.cancelAll();off();};setView(v=>v.on?{...v,beat:GUIDE_END,live:GUIDE_END,outro:true,playing:false}:v);emit({type:\"beat\",beat:\"end\",ms:BEATS[GUIDE_END].ms,seek:false});await (manual?nextPress():sleep(BEATS[GUIDE_END].ms));}off();};// Close, a hidden tab, pagehide, or anything unexpected: stop at once. MEMORY still holds the visitor's\n// settings (that is what gets stored); a demo that stays mounted is put back by a remount from them.\nconst halt=()=>{live=false;r.cancelAll();window.cancelAnimationFrame(loop);loop=0;g.reset();GUIDE.mount=null;if(guideJSON(GUIDE.live)!==snap){GUIDE.hold=2;GUIDE.restore=\"\";latest.current.remount();}else{GUIDE.hold=0;GUIDE.restore=\"exact\";}off();};// A control that is missing or did not answer: hand back at once, restoring as after Skip.\nconst fail=error=>{if(error===GUIDE_STOP)return;if(live){r.cancelAll();end(false).catch(e=>{if(e!==GUIDE_STOP&&GUIDE.mode===\"run\")halt();});}else if(GUIDE.mode===\"run\")halt();};const finishTour=()=>{if(live)end(true).catch(e=>{if(e!==GUIDE_STOP&&GUIDE.mode===\"run\")halt();});};GUIDE.skip=()=>{if(!live)return;r.cancelAll();end(false).catch(e=>{if(e!==GUIDE_STOP&&GUIDE.mode===\"run\")halt();});};GUIDE.stop=halt;const begin=async()=>{if(!await until(()=>g.ready(),2e3))throw new Error(\"guide: stage\");g.inert(true);g.show(true);// The other theme's base artwork, at the size the demo will ask for, so the Appearance flip is immediate.\ntry{const img=new Image;img.decoding=\"async\";img.src=sizedURL(BASE_ART[MEMORY.theme===\"dark\"?\"light\":\"dark\"],2048*g.width()/1888*Math.min(3,window.devicePixelRatio||1));}catch{}const active=document.activeElement;if(!active||active===document.body||active.id===latest.current.titleId)win.querySelector(manual?\".s2g-next\":\".s2g-skip\")?.focus({preventScroll:true});emit({type:\"start\"});// The tour runs from the demo's defaults. A visitor who is already there keeps their own demo; otherwise\n// the demo is remounted from its defaults (in the visitor's theme) while the first caption shows.\nif(needMount){GUIDE.mount={theme:MEMORY.theme};latest.current.remount();}controls(true);loop=window.requestAnimationFrame(frame);};begin().catch(fail);},[]);// The first qualifying open: the demo is loaded and showing, and no guide has started in this browser before.\nReact.useEffect(()=>{if(!env.ready||started.current||GUIDE.mode!==\"off\"||guideSeen())return;const timer=window.setTimeout(()=>{if(!started.current&&document.visibilityState!==\"hidden\")start();},env.reduced?300:650);return()=>window.clearTimeout(timer);},[env.ready,env.reduced,start]);// The window unmounts: stop everything (Close already did; this also covers an error boundary).\nReact.useEffect(()=>()=>{try{GUIDE.stop?.();}catch{}current.current?.cancelAll();current.current=null;GUIDE.mode=\"off\";GUIDE.skip=GUIDE.stop=GUIDE.finish=null;},[]);const b=BEATS[view.beat],last=view.beat===GUIDE_END;const coarse=typeof window!==\"undefined\"&&typeof window.matchMedia===\"function\"&&window.matchMedia(\"(pointer:coarse)\").matches;const textOf=React.useCallback(x=>x.id===\"end\"&&coarse?GUIDE_UI.endTouch:x.id===\"sync\"&&view.manual?GUIDE_UI.syncStep:x.text,[coarse,view.manual]);const where=env.layout;const VCard=GUIDE_VISUAL.Card,VStage=GUIDE_VISUAL.Stage,VSheet=GUIDE_VISUAL.Sheet;const layerProps={api,vs,beat:b,index:view.beat,manual:view.manual,outro:view.outro,where};const said=BEATS[Math.min(view.live,GUIDE_END)];const card=!view.on?null:/*#__PURE__*/_jsxs(\"div\",{className:\"s2g-card\",\"data-visual\":GUIDE_VISUAL.name,\"data-acc\":b.acc,\"data-beat\":b.id,\"data-manual\":view.manual?\"true\":undefined,\"data-outro\":view.outro?\"true\":undefined,\"data-paused\":!view.manual&&!view.outro&&!view.playing?\"true\":undefined,style:{\"--g-dur\":`${b.ms}ms`},children:[/*#__PURE__*/_jsx(VCard,{beats:BEATS,index:view.beat,beat:b,manual:view.manual,outro:view.outro,last:last,textOf:textOf,where:where,vs:vs,playing:view.playing,timeline:TL}),/*#__PURE__*/_jsx(\"p\",{className:\"s2amui2-vh\",id:\"s2g-caption\",role:\"status\",\"aria-live\":\"polite\",children:`${guidePlain(said.title)}. ${guidePlain(textOf(said))}`})]});// Pressing the instrument during the tour hands it straight back.\nconst layer=view.on&&!view.outro?/*#__PURE__*/_jsx(\"div\",{className:\"s2g-stage\",\"data-visual\":GUIDE_VISUAL.name,\"data-beat\":b.id,\"aria-hidden\":\"true\",onPointerDown:event=>{event.preventDefault();GUIDE.skip?.();},children:VStage&&/*#__PURE__*/_jsx(VStage,{...layerProps})}):null;const sheet=view.on&&VSheet?/*#__PURE__*/_jsx(\"div\",{className:\"s2g-sheet\",\"data-visual\":GUIDE_VISUAL.name,\"data-beat\":b.id,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(VSheet,{...layerProps})}):null;return{on:view.on,running:view.on&&!view.outro,still:view.on&&view.manual,card,layer,sheet,replay:start};}// ————————————————————————————————————————————————————————————————————————\n// The window body: chrome around the on-demand demo.\n// ————————————————————————————————————————————————————————————————————————\nconst WindowBody=/*#__PURE__*/React.memo(function WindowBody({titleId}){const version=useStoreVersion();const root=React.useRef(null),topBar=React.useRef(null),zoomRow=React.useRef(null),bottomBar=React.useRef(null);// Reduced motion is read at once, so the Step slot is part of the first layout (no jump when the demo reports it).\nconst[reducedPref]=React.useState(()=>typeof window!==\"undefined\"&&prefersReducedMotion());const[status,setStatus]=React.useState({loading:true,failed:false,reduced:reducedPref});const reduced=status.reduced||reducedPref;const[layout,setLayout]=React.useState(()=>guessLayout(reducedPref));React.useLayoutEffect(()=>{const el=root.current;if(!el||typeof ResizeObserver===\"undefined\")return;const update=()=>{const r=el.getBoundingClientRect();if(r.width<=0||r.height<=0)return;const vw=window.innerWidth,vh=window.innerHeight,top=(topBar.current?.getBoundingClientRect().height??0)+(zoomRow.current?.getBoundingClientRect().height??0);const bottom=bottomBar.current?.getBoundingClientRect().height??0;const next=computeLayout(Math.min(1440,r.width),r.height,vw,vh,top,bottom,reduced);setLayout(old=>JSON.stringify(old)===JSON.stringify(next)?old:next);};update();const ro=new ResizeObserver(update);ro.observe(el);if(topBar.current)ro.observe(topBar.current);if(zoomRow.current)ro.observe(zoomRow.current);if(bottomBar.current)ro.observe(bottomBar.current);return()=>ro.disconnect();},[layout.mode,layout.zoomPlace,reduced]);// Demo modules, loaded on demand (the first open, or earlier on launcher intent).\nconst[mods,setMods]=React.useState(null),[loadError,setLoadError]=React.useState(false),[attempt,setAttempt]=React.useState(0);React.useEffect(()=>{let live=true;setLoadError(false);loadDemo().then(m=>{if(live)setMods(m);},()=>{if(live)setLoadError(true);});return()=>{live=false;};},[attempt]);const[bridge,setBridge]=React.useState(null);const[activeKey,setActiveKey]=React.useState(null);const[artReady,setArtReady]=React.useState(false);const chord=MEMORY.chord;const[zoom,setZoom]=React.useState(1);// Zooming or choosing the other chord during the guide hands the instrument back first.\nconst setZoomStep=next=>{if(next!==1)GUIDE.skip?.();setZoom(Math.max(1,Math.min(2.5,Math.round(next*4)/4)));};// Every open starts at Fit with the current settings.\nconst openSeq=MEMORY.openSeq;React.useLayoutEffect(()=>{setZoom(1);},[openSeq]);// A failed example (or a failed SYNC download) restarts by remounting the demo with the remembered settings.\nconst[demoKey,setDemoKey]=React.useState(0);// GUIDE.mount: the guide's baseline, the demo's own defaults (a demo without stored settings reports them first).\nconst initialSettings=React.useMemo(()=>{const settings=GUIDE.mount?null:MEMORY.demoSettings;GUIDE.fresh=settings==null;GUIDE.mountSeq++;return settings;},[demoKey]);const failedRef=React.useRef(false);const restart=React.useCallback(()=>{setStatus(s=>({loading:true,failed:false,reduced:s.reduced}));setArtReady(false);setDemoKey(k=>k+1);},[]);const onChord=React.useCallback(next=>{if(next!==MEMORY.chord){GUIDE.skip?.();rememberChord(next);}if(failedRef.current)restart();},[restart]);const theme=React.useMemo(()=>GUIDE.mount?GUIDE.mount.theme:MEMORY.theme,[demoKey]);const onBridge=React.useCallback(b=>{MEMORY.bridge=b;setBridge(b);},[]);const onHelp=React.useCallback(key=>{if(!guideTakesHelp(key))setActiveKey(key);},[]);const onStatus=React.useCallback(s=>{failedRef.current=s.failed;setStatus(old=>old.loading===s.loading&&old.failed===s.failed&&old.reduced===s.reduced?old:s);},[]);// If the base artwork never reports, show the instrument anyway after a short wait.\nReact.useEffect(()=>{if(!mods||artReady)return;const t=window.setTimeout(()=>setArtReady(true),2500);return()=>window.clearTimeout(t);},[mods,artReady,demoKey]);const onSettings=React.useCallback((s,meta)=>rememberSettings(s,meta?.theme===\"light\"?\"light\":\"dark\"),[]);const onArtReady=React.useCallback(()=>setArtReady(true),[]);React.useEffect(()=>()=>{if(MEMORY.bridge)MEMORY.bridge=null;},[]);// First-open guide. A new window starts clean: a guide that was stopped by Close left MEMORY untouched.\nReact.useState(()=>{GUIDE.hold=0;GUIDE.mount=null;GUIDE.mode=\"off\";return 0;});const guideWhere=React.useMemo(()=>({mode:layout.mode,bp:layout.bp}),[layout.mode,layout.bp]);const guide=useGuide({root,titleId,ready:!!mods&&artReady&&!loadError&&!status.loading&&!status.failed,reduced,layout:guideWhere,zoom,setZoom,remount:restart});// Help region: a new entry starts at its lead-in; a fade marks more text below (inside the card's frame).\nconst helpCol=React.useRef(null);const helpScroller=()=>helpCol.current?.querySelector(\".s2amui2-help-scroll\")??null;React.useLayoutEffect(()=>{const el=helpScroller();if(el)el.scrollTop=0;},[activeKey]);React.useEffect(()=>{const el=helpScroller();if(!el||typeof ResizeObserver===\"undefined\")return;// The entry's 4 px slide-in briefly adds scrollable overflow: allow for it, and check again when it ends.\nconst update=()=>{const v=String(el.scrollHeight-el.scrollTop-el.clientHeight>6);if(el.dataset.overflow!==v)el.dataset.overflow=v;const t=String(el.scrollTop>2);if(el.dataset.scrolled!==t)el.dataset.scrolled=t;};update();const ro=new ResizeObserver(update);ro.observe(el);for(const child of Array.from(el.children))ro.observe(child);el.addEventListener(\"scroll\",update,{passive:true});el.addEventListener(\"animationend\",update);return()=>{ro.disconnect();el.removeEventListener(\"scroll\",update);el.removeEventListener(\"animationend\",update);};},[activeKey,layout.mode,guide.on]);const phone=layout.mode===\"phone\";// Phone breakpoint, portrait or landscape: one-line caption, no chooser label, Step/Retry as short bar buttons.\nconst phoneChrome=layout.bp===\"p\",landscapePhone=phoneChrome&&!phone;const dpr=typeof window!==\"undefined\"?Math.min(3,window.devicePixelRatio||1):1;const canvasWidth=layout.fitW*zoom;// The poster's size is chosen once per mount (the demo's own artwork then takes over).\nconst posterSrc=React.useMemo(()=>sizedURL(BASE_ART[theme],2048*layout.fitW/1888*dpr),[demoKey,theme]);const statusText=loadError?UI.moduleFailed:status.loading||!mods?UI.loading:status.failed?UI.failed:\"\";const zoomEl=/*#__PURE__*/_jsx(ZoomControl,{bridge:bridge,zoom:zoom,onZoom:setZoomStep});const stepEl=reduced&&!phoneChrome?/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-reduced\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-step s2amui2-chrome\",...helpBind(bridge,\"combinedStep\"),onClick:()=>bridge?.step(),children:UI.step}),/*#__PURE__*/_jsx(\"p\",{children:UI.reduced})]}):null;// A failed module import cannot be retried in place (browsers remember a failed module URL): offer a reload.\nconst retryAction=()=>{if(loadError){try{window.location.reload();}catch{}}else restart();};const failed=loadError||status.failed;const meta=/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-meta\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"s2amui2-caption\",\"data-hidden\":statusText?\"true\":undefined,children:phoneChrome?UI.captionPhone:UI.caption}),/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-statusrow\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"s2amui2-status\",role:\"status\",\"aria-live\":\"polite\",children:statusText}),failed&&!phoneChrome&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-retry s2amui2-chrome\",onClick:retryAction,children:loadError?UI.reload:UI.retry})]})]});const chooser=/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-chooser\",children:[!phoneChrome&&/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-label\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-marker\"}),/*#__PURE__*/_jsx(\"span\",{children:UI.chordGroup})]}),!phone&&/*#__PURE__*/_jsx(ChordChoice,{chord:chord,onChord:onChord,bridge:bridge}),meta,stepEl]});// Visible text is the accessible name (Retry / Reload page); Step keeps \"Step example\", which contains \"Step\".\nconst shortAction=failed?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-step s2amui2-chrome\",onClick:retryAction,children:loadError?UI.reload:UI.retryShort}):reduced?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"s2amui2-step s2amui2-chrome\",\"aria-label\":UI.step,...helpBind(bridge,\"combinedStep\"),onClick:()=>bridge?.step(),children:UI.stepShort}):null;const lastFocus=React.useRef(null);React.useLayoutEffect(()=>{const last=lastFocus.current,active=document.activeElement;if(!last||last.isConnected||MEMORY.phase!==\"open\"||active&&active!==document.body)return;lastFocus.current=null;const radio=last.getAttribute(\"role\")===\"radio\"?root.current?.querySelector('[role=\"radio\"][aria-checked=\"true\"]'):null;(radio??document.getElementById(titleId))?.focus({preventScroll:true});});// While the guide plays, its caption card takes the help card's place; afterwards the idle card offers a replay.\nconst canReplay=!!mods&&!!bridge&&!loadError&&!status.loading&&!status.failed;const helpCard=guide.card??/*#__PURE__*/_jsx(HelpCard,{activeKey:activeKey,help:mods?.help??null,prefix:bridge?.prefix??\"\",onClose:()=>bridge?.dismiss(true),onReplay:canReplay?guide.replay:undefined});void version;return /*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-win\",\"data-layout\":layout.mode,\"data-bp\":layout.bp,\"data-zoomed\":zoom>1,\"data-guide\":guide.on?guide.running?\"run\":\"outro\":undefined,\"data-guide-still\":guide.still?\"true\":undefined,\"data-guide-visual\":guide.on?GUIDE_VISUAL.name:undefined,ref:root,style:{\"--fit-w\":`${layout.fitW}px`,\"--fit-h\":`${layout.fitH}px`,\"--col-w\":`${layout.colW}px`,\"--help-h\":`${layout.helpH}px`,\"--lower-w\":`${layout.lowerW}px`,\"--content-w\":`${layout.contentW}px`},onFocusCapture:event=>{lastFocus.current=event.target;},children:[/*#__PURE__*/_jsxs(\"header\",{className:\"s2amui2-top\",ref:topBar,role:\"none\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-titles\",\"data-phone\":phone?\"true\":undefined,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-eyebrow\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-marker\"}),/*#__PURE__*/_jsx(\"span\",{children:UI.eyebrow})]}),/*#__PURE__*/_jsx(\"h2\",{className:\"s2amui2-title\",id:titleId,tabIndex:-1,children:UI.windowTitle})]}),phone&&/*#__PURE__*/_jsx(ChordChoice,{chord:chord,onChord:onChord,bridge:bridge,compact:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-actions\",children:[layout.zoomPlace===\"top\"&&zoomEl,landscapePhone&&shortAction,/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"s2amui2-close s2amui2-chrome\",\"aria-label\":phone?UI.close:undefined,onClick:closeWindow,children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui2-close-text\",children:UI.close}),/*#__PURE__*/_jsx(Glyph,{d:PLUS_PATH,size:20})]})]})]}),layout.zoomPlace===\"row\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-zoomrow\",ref:zoomRow,children:[zoomEl,shortAction]}),/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-body\",children:[layout.mode===\"side\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-col\",children:[layout.zoomPlace===\"col\"&&zoomEl,chooser,/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-dock\",ref:helpCol,children:helpCard})]},\"col\"),layout.mode===\"stack\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-lower\",children:[chooser,/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-dock\",ref:helpCol,children:helpCard})]},\"lower\"),/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-stage\",\"data-zoomed\":zoom>1,children:[/*#__PURE__*/_jsx(\"img\",{className:\"s2amui2-poster\",\"data-hidden\":mods&&artReady?\"true\":undefined,src:posterSrc,alt:\"\",decoding:\"async\",\"aria-hidden\":\"true\"}),mods&&/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-demo\",\"data-ready\":artReady?\"true\":undefined,children:/*#__PURE__*/_jsx(WindowBoundary,{onCatch:()=>{failedRef.current=true;setStatus(s=>({...s,loading:false,failed:true}));},fallback:()=>/*#__PURE__*/_jsx(\"p\",{className:\"s2amui2-demo-error\",children:UI.error}),children:/*#__PURE__*/_jsx(mods.Demo,{isOpen:true,host:{contract:1,chord,zoom,canvasWidth,compact:layout.compact,container:root,initialTheme:theme,initialSettings,labels:mods.labels,onBridge,onHelp,onStatus,onSettings,onArtReady}},demoKey)},demoKey)}),guide.layer]},\"stage\"),layout.mode===\"phone\"&&/*#__PURE__*/_jsxs(React.Fragment,{children:[meta,/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-dock\",ref:helpCol,children:helpCard})]},\"phone\")]}),layout.zoomPlace===\"row\"&&/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-bottom\",ref:bottomBar,\"aria-hidden\":\"true\"}),guide.sheet]});});// ————————————————————————————————————————————————————————————————————————\n// The window shell (portalled modal <dialog>). The demo is mounted only while the window is open or closing:\n// closing unmounts it, which disposes its player, aborts downloads and removes its timers and listeners.\n// ————————————————————————————————————————————————————————————————————————\nconst closeWindow=()=>requestClose(true);class WindowBoundary extends React.Component{static getDerivedStateFromError(){return{failed:true};}componentDidCatch(){try{this.props.onCatch?.();}catch{}}render(){return this.state.failed?this.props.fallback(()=>this.setState({failed:false})):this.props.children;}constructor(...args){super(...args);_define_property(this,\"state\",{failed:false});}}function WindowShell(){const version=useStoreVersion();const dialog=React.useRef(null),downOnScrim=React.useRef(false);const titleId=\"s2amui2-window-title\";const phase=MEMORY.phase;React.useLayoutEffect(()=>{const d=dialog.current;if(!d)return;if(phase!==\"closed\"&&!d.open){try{if(typeof d.showModal===\"function\")d.showModal();else applyFallback(d);}catch{applyFallback(d);}if(phase===\"open\")window.requestAnimationFrame(()=>document.getElementById(titleId)?.focus({preventScroll:true}));}if(phase===\"closed\"&&d.open){try{d.close();}catch{}}},[phase,version]);const close=closeWindow;// Focus that drops to the page body (a control that disappears, e.g. the chord label) returns to the window title.\nReact.useEffect(()=>{const d=dialog.current;if(!d||phase!==\"open\")return;const onFocusOut=event=>{if(event.relatedTarget)return;const lost=event.target;window.requestAnimationFrame(()=>{const a=document.activeElement;if(MEMORY.phase===\"open\"&&!lost.isConnected&&(!a||a===document.body))document.getElementById(titleId)?.focus({preventScroll:true});});};// Without showModal there is no native cancel request: Escape is handled here (after menus and help).\nconst onKey=event=>{if(event.key===\"Escape\"&&!event.defaultPrevented&&d.hasAttribute(\"data-s2amui2-fallback\")){event.preventDefault();close();}};d.addEventListener(\"focusout\",onFocusOut);document.addEventListener(\"keydown\",onKey);return()=>{d.removeEventListener(\"focusout\",onFocusOut);document.removeEventListener(\"keydown\",onKey);};},[phase]);return /*#__PURE__*/_jsxs(\"dialog\",{id:DIALOG_ID,ref:dialog,className:\"s2amui2-dialog\",\"data-state\":phase,\"aria-labelledby\":titleId,onCancel:event=>{event.preventDefault();const b=MEMORY.bridge;if(b?.menuOpen()){b.closeMenus();return;}if(GUIDE.skip){GUIDE.skip();return;}if(b?.helpActive()){b.dismiss(false);return;}close();},onClose:()=>{if(MEMORY.phase!==\"closed\")finalizeClose(true,true);},onKeyDown:event=>{if(event.key!==\"Escape\"||event.defaultPrevented)return;event.preventDefault();// A dropdown left open while focus moved elsewhere closes before the window does.\nif(MEMORY.bridge?.menuOpen()){MEMORY.bridge.closeMenus();return;}// One Escape skips a running guide and leaves the window open.\nif(GUIDE.skip){GUIDE.skip();return;}close();},onPointerDownCapture:()=>{downOnScrim.current=false;},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:WINDOW_CSS+GUIDE_CSS+GUIDE_VISUAL_CSS}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-scrim\",onPointerDown:event=>{downOnScrim.current=event.target===event.currentTarget;},onClick:event=>{if(downOnScrim.current&&event.target===event.currentTarget&&window.innerWidth>=768)close();downOnScrim.current=false;}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2amui2-sheet\",children:phase!==\"closed\"&&/*#__PURE__*/_jsx(WindowBoundary,{onCatch:()=>{MEMORY.bridge=null;},fallback:()=>/*#__PURE__*/_jsxs(\"div\",{className:\"s2amui2-error\",children:[/*#__PURE__*/_jsx(\"p\",{children:UI.error}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"s2amui2-close s2amui2-chrome\",onClick:close,children:[/*#__PURE__*/_jsx(\"span\",{children:UI.close}),/*#__PURE__*/_jsx(Glyph,{d:PLUS_PATH,size:20})]}),/*#__PURE__*/_jsx(\"h2\",{id:titleId,className:\"s2amui2-vh\",tabIndex:-1,children:UI.windowTitle})]}),children:/*#__PURE__*/_jsx(WindowBody,{titleId:titleId})})})]});}const HINT_STYLES=[\"classic\",\"spotlight\",\"bloom\",\"ribbon\",\"halo\",\"peek\"];const HINT_LABELS={classic:\"Classic pill\",spotlight:\"V1 \\xb7 Spotlight\",bloom:\"V2 \\xb7 Halftone bloom\",ribbon:\"V3 \\xb7 Ribbon\",halo:\"V4 \\xb7 Halo\",peek:\"V5 \\xb7 Instrument peek\"};const OPENED_KEY=\"cc-interface-opened:v1\",HINT_SEEN_KEY=\"cc-interface-hint:v1\";const HINT={state:\"off\",text:\"\",detail:\"\",style:\"classic\",timers:[],cleanup:null};function sessionFlag(key,set=false){const storage=sessionStore();if(!storage)return false;try{if(set){storage.setItem(key,\"1\");return true;}return storage.getItem(key)===\"1\";}catch{return false;}}function endHint(immediate=false){if(typeof window===\"undefined\")return;HINT.timers.forEach(t=>window.clearTimeout(t));HINT.timers=[];HINT.cleanup?.();HINT.cleanup=null;if(HINT.state===\"off\")return;if(immediate||HINT.state===\"out\"){HINT.state=\"off\";emit();return;}HINT.state=\"out\";emit();HINT.timers.push(window.setTimeout(()=>{HINT.timers=[];if(HINT.state===\"out\"){HINT.state=\"off\";emit();}},prefersReducedMotion()?200:700));}// Styles that stay until a deliberate click (or Escape): no hold timer, no scroll dismissal, no any-key dismissal.\nconst PERSISTENT_STYLES=[\"halo\"];function startHint(delay,hold,repeat,text,detail=UI.hintDetail,hintStyle=\"classic\"){if(typeof window===\"undefined\")return()=>{};if(repeat===\"untilOpened\"&&sessionFlag(OPENED_KEY))return()=>{};if(repeat===\"oncePerSession\"&&sessionFlag(HINT_SEEN_KEY))return()=>{};endHint(true);HINT.text=text;HINT.detail=detail;HINT.style=HINT_STYLES.includes(hintStyle)?hintStyle:\"classic\";const persistent=PERSISTENT_STYLES.includes(HINT.style);if(HINT.style===\"peek\"){try{const img=new Image;img.decoding=\"async\";img.src=PEEK_ART;}catch{}}const startY=window.scrollY;let shown=false;const stop=()=>endHint(!shown);const onScroll=()=>{if(!persistent&&Math.abs(window.scrollY-startY)>240)stop();};const onKey=event=>{if(persistent?event.key===\"Escape\":![\"Shift\",\"Control\",\"Alt\",\"Meta\"].includes(event.key))stop();};document.addEventListener(\"pointerdown\",stop,true);document.addEventListener(\"keydown\",onKey,true);window.addEventListener(\"scroll\",onScroll,{passive:true});HINT.cleanup=()=>{document.removeEventListener(\"pointerdown\",stop,true);document.removeEventListener(\"keydown\",onKey,true);window.removeEventListener(\"scroll\",onScroll);};let tries=0;const show=()=>{if(MEMORY.phase!==\"closed\"||document.visibilityState===\"hidden\")return;const navOpen=!!document.querySelector('[data-mn2][data-menu-open=\"true\"]');const launcher=Array.from(document.querySelectorAll('[data-s2amui2-launcher=\"header\"]')).some(isShown);if(navOpen||!launcher){if(++tries<=6)HINT.timers.push(window.setTimeout(show,1500));else endHint(true);return;}shown=true;HINT.state=\"in\";emit();sessionFlag(HINT_SEEN_KEY,true);if(!persistent)HINT.timers.push(window.setTimeout(stop,Math.max(1,hold)*1e3));};HINT.timers.push(window.setTimeout(show,Math.max(0,delay)*1e3));return()=>endHint(true);}// ————————————————————————————————————————————————————————————————————————\n// Launchers.\n// ————————————————————————————————————————————————————————————————————————\nconst windowElement=openSeq=>/*#__PURE__*/_jsx(WindowBoundary,{onCatch:()=>finalizeClose(false),fallback:()=>null,children:/*#__PURE__*/_jsx(WindowShell,{})},openSeq);let prefetched=false;// Intent (pointer over, focus or touch on a launcher): start loading the demo and the poster artwork.\nfunction prefetch(){if(prefetched||typeof window===\"undefined\")return;prefetched=true;try{loadMemory();void loadDemo().catch(()=>{});const layout=guessLayout(false);const img=new Image;img.decoding=\"async\";img.src=sizedURL(BASE_ART[MEMORY.theme],2048*layout.fitW/1888*Math.min(3,window.devicePixelRatio||1));}catch{}}// pending: the same button with the live styles, inert, shown on non-live pages while the previous launcher loads.\nfunction Launcher({row,style,isStatic,pending=false}){const version=useStoreVersion();const hostId=React.useId();const[mounted,setMounted]=React.useState(false);const inert=isStatic||pending;React.useEffect(()=>{if(inert||typeof window===\"undefined\")return;setMounted(true);registerHost(hostId);return()=>unregisterHost(hostId);},[inert,hostId]);const button=React.useRef(null);const[hint,setHint]=React.useState(\"off\");React.useLayoutEffect(()=>{if(row||inert)return;if(HINT.state===\"in\"){const b=button.current;const shown=!!b&&b.getClientRects().length>0&&getComputedStyle(b).visibility!==\"hidden\";setHint(old=>shown?\"in\":old===\"off\"?\"off\":\"out\");}else setHint(old=>HINT.state===\"out\"&&old!==\"off\"?\"out\":\"off\");},[version,row,inert]);const expanded=MEMORY.phase===\"open\";const activate=()=>{if(!inert)openWindow(button.current);};const warm=()=>{if(!inert)prefetch();};const common={ref:button,type:\"button\",\"aria-haspopup\":\"dialog\",\"aria-expanded\":expanded,\"aria-controls\":mounted&&MEMORY.everOpened?DIALOG_ID:undefined,\"data-s2amui2-launcher\":row?\"row\":\"header\",onClick:activate,onPointerEnter:warm,onFocus:warm,onTouchStart:warm};void version;return /*#__PURE__*/_jsxs(\"div\",{className:`s2amui-launch s2amui-launch-${row?\"row\":\"header\"}`,\"data-s2amui-static\":isStatic?\"true\":undefined,style:{...style,position:\"relative\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:(row?ROW_CSS:HEADER_CSS)+(isStatic?row?ROW_STATIC_CSS:HEADER_STATIC_CSS:\"\")}}),row?/*#__PURE__*/_jsxs(\"button\",{...common,className:\"s2amui-row\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-row-icon\",children:/*#__PURE__*/_jsx(InterfaceGlyph,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-row-label\",children:UI.rowLabel})]}):/*#__PURE__*/_jsxs(\"button\",{...common,className:\"s2amui-hbtn\",\"data-hint\":hint===\"off\"?undefined:hint,\"aria-label\":UI.launcherName,onKeyDown:e=>{if(e.key===\"Escape\")e.currentTarget.setAttribute(\"data-tip-off\",\"\");},onBlur:e=>e.currentTarget.removeAttribute(\"data-tip-off\"),onPointerLeave:e=>e.currentTarget.removeAttribute(\"data-tip-off\"),children:[hint===\"in\"&&HINT.style===\"classic\"&&/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-ring\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-hbox\",children:/*#__PURE__*/_jsx(InterfaceGlyph,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-hlabel\",children:UI.launcherLabel}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-tip\",\"aria-hidden\":\"true\",children:UI.launcherName})]}),!row&&hint!==\"off\"&&/*#__PURE__*/_jsx(HintVisual,{state:hint,hintStyle:HINT.style,text:HINT.text||UI.hintText,detail:HINT.detail||UI.hintDetail,anchor:button,onOpen:activate}),mounted&&MEMORY.everOpened&&MEMORY.hosts[0]===hostId&&/*#__PURE__*/createPortal(windowElement(MEMORY.openSeq),getPortalHolder())]});}// ————————————————————————————————————————————————————————————————————————\n// Note variations (2026-10-03). The header launcher renders the chosen style while a note shows; the note instance\n// renders the same markup as a static canvas preview. Everything is decorative (aria-hidden): the real control is\n// the header button, and clicking a note simply opens the window through it.\n// ————————————————————————————————————————————————————————————————————————\nconst PEEK_ART=sizedURL(BASE_ART.light,640);const ARROW=/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:2.2,strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 6l6 6-6 6\"})});const ARROW_UP_LEFT=/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:2.4,strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M17 17 7 7M7 15V7h8\"})});const CROSS=/*#__PURE__*/_jsx(\"svg\",{width:16,height:16,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:2,strokeLinecap:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 6l12 12M18 6 6 18\"})});// Square-lattice halftone whose dots shrink to nothing away from the card corner (style guide: fade by dot size).\nconst BLOOM_DOTS=(()=>{const out=[];for(let j=0;j<13;j++)for(let i=0;i<18;i++){const x=i*12.5+6,y=j*12.5+6;const d=Math.hypot(x-214,y-2);const r=3.1*Math.pow(Math.max(0,1-d/165),1.35);if(r<.3)continue;out.push(/*#__PURE__*/_jsx(\"circle\",{cx:x,cy:y,r:Math.round(r*100)/100},i*100+j));}return out;})();const Orbit=({w,h})=>/*#__PURE__*/_jsxs(\"svg\",{className:\"s2n-orbit\",width:w+16,height:h+16,viewBox:`0 0 ${w+16} ${h+16}`,\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{className:\"ring\",x:1.5,y:1.5,width:w+13,height:h+13,rx:16}),/*#__PURE__*/_jsx(\"rect\",{className:\"dash\",x:1.5,y:1.5,width:w+13,height:h+13,rx:16,pathLength:1e3})]});const KEYS=(()=>{const whites=[0,1,2,3,4,5,6],blacks=[0,1,3,4,5];const lit={0:\"t k1\",2:\"c k2\",4:\"c k3\",6:\"c k4\"};return /*#__PURE__*/_jsxs(\"svg\",{className:\"s2n-keys\",viewBox:\"0 0 118 28\",\"aria-hidden\":\"true\",children:[whites.map(i=>/*#__PURE__*/_jsx(\"rect\",{className:\"w\",x:i*17,y:0,width:16,height:28,rx:2},\"w\"+i)),whites.filter(i=>lit[i]).map(i=>/*#__PURE__*/_jsx(\"rect\",{className:\"lit \"+lit[i],x:i*17,y:0,width:16,height:28,rx:2},\"l\"+i)),blacks.map(i=>/*#__PURE__*/_jsx(\"rect\",{className:\"b\",x:i*17+11.5,y:0,width:9,height:17,rx:1.5},\"b\"+i))]});})();function useAnchorRect(anchor,active){const[rect,setRect]=React.useState(null);React.useLayoutEffect(()=>{if(!active||!anchor){setRect(null);return;}const read=()=>{const b=anchor.current?.getBoundingClientRect();if(!b)return;setRect(o=>o&&o.l===b.left&&o.t===b.top&&o.w===b.width&&o.h===b.height?o:{l:b.left,t:b.top,w:b.width,h:b.height});};read();window.addEventListener(\"resize\",read);window.addEventListener(\"scroll\",read,{passive:true});return()=>{window.removeEventListener(\"resize\",read);window.removeEventListener(\"scroll\",read);};},[anchor,active]);return rect;}function HintVisual({state,hintStyle,text,detail,anchor,onOpen,isStatic=false}){const portalStyle=hintStyle===\"spotlight\"||hintStyle===\"ribbon\";const rect=useAnchorRect(anchor,!isStatic&&(portalStyle||hintStyle===\"halo\"));const css=/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:HINT_CSS}});const open=event=>{event.preventDefault();event.stopPropagation();onOpen?.();};const stat=isStatic?\"\":undefined;const vw=typeof window!==\"undefined\"?window.innerWidth:1200;const body=(withChip=true)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[withChip&&/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-chip\",children:[/*#__PURE__*/_jsx(\"i\",{}),UI.hintTag]}),/*#__PURE__*/_jsx(\"strong\",{className:\"s2n-title\",children:text}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-detail\",children:detail}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-cta\",children:[UI.hintCta,ARROW]})]});if(hintStyle===\"classic\")return /*#__PURE__*/_jsxs(\"span\",{className:\"s2amui-hint\",\"data-state\":state,\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-hint-caret\"}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-hint-tag\",children:UI.hintTag}),/*#__PURE__*/_jsx(\"span\",{className:\"s2amui-hint-text\",children:text})]});if(hintStyle===\"halo\"){const haloText=text===UI.hintText?UI.haloText:text;const pill=/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-pill\",onClick:open,children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-caret\"}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-arrow\",children:ARROW_UP_LEFT}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-pilltext\",children:haloText})]});if(isStatic)return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-halo s2n-stage\",\"data-state\":\"in\",\"data-static\":\"\",\"aria-hidden\":\"true\",children:[css,/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-mock\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-glow\",style:{width:134,height:46}}),/*#__PURE__*/_jsx(Orbit,{w:134,h:46}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-hbox\",children:/*#__PURE__*/_jsx(InterfaceGlyph,{})}),UI.launcherLabel]}),pill]});const w=rect?.w??0,h=rect?.h??0;return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-halo\",\"data-state\":state,\"aria-hidden\":\"true\",children:[css,rect&&/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-glow\",style:{width:w,height:h}}),/*#__PURE__*/_jsx(Orbit,{w:w,h:h})]}),pill]});}if(hintStyle===\"bloom\")return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-bloom\",\"data-state\":state,\"data-static\":stat,\"aria-hidden\":\"true\",children:[css,/*#__PURE__*/_jsxs(\"div\",{className:\"s2n-card\",onClick:open,children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-caret\"}),/*#__PURE__*/_jsx(\"svg\",{className:\"s2n-dots\",viewBox:\"0 0 220 160\",\"aria-hidden\":\"true\",children:BLOOM_DOTS}),/*#__PURE__*/_jsxs(\"svg\",{className:\"s2n-arc\",viewBox:\"0 0 360 360\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:180,cy:180,r:176,stroke:\"rgba(242,239,226,.16)\"}),/*#__PURE__*/_jsx(\"circle\",{cx:180,cy:180,r:128,stroke:\"rgba(121,174,170,.34)\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-eyebrow\",children:UI.bloomEyebrow}),/*#__PURE__*/_jsx(\"strong\",{className:\"s2n-title\",children:text===UI.hintText?UI.bloomTitle:text}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-detail\",children:detail===UI.hintDetail?UI.bloomBody:detail}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-cta\",children:[UI.bloomCta,ARROW]})]})]});if(hintStyle===\"peek\")return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-peek\",\"data-state\":state,\"data-static\":stat,\"aria-hidden\":\"true\",children:[css,/*#__PURE__*/_jsxs(\"div\",{className:\"s2n-card s2n-peekcard\",onClick:open,children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-caret\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-thumb\",children:[/*#__PURE__*/_jsx(\"img\",{src:PEEK_ART,alt:\"\",decoding:\"async\"}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-thumbglow\"})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-peekbody\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-chip\",children:[/*#__PURE__*/_jsx(\"i\",{}),UI.hintTag]}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-display\",children:UI.hintDisplay}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-detail\",children:text}),KEYS,/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-cta\",children:[UI.hintCta,ARROW]})]})]})]});if(hintStyle===\"ribbon\"){const items=UI.hintTicker.split(\" \\xb7 \");const run=key=>/*#__PURE__*/_jsx(\"span\",{children:items.map((item,i)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[item,/*#__PURE__*/_jsx(\"b\",{className:i%2?\"t\":undefined})]},i))},key);const bar=/*#__PURE__*/_jsxs(\"div\",{className:\"s2n-bar\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-chip\",children:[/*#__PURE__*/_jsx(\"i\",{}),UI.hintTag]}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-bartext\",children:[/*#__PURE__*/_jsx(\"strong\",{children:text}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-bardetail\",children:detail})]}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-marquee\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-track\",children:[run(\"a\"),run(\"b\")]})}),/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-cta s2n-barcta\",onClick:open,children:[/*#__PURE__*/_jsx(\"span\",{children:UI.hintCta}),ARROW]}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-x\",children:CROSS})]});if(isStatic)return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-ribbon\",\"data-state\":\"in\",\"data-static\":\"\",\"aria-hidden\":\"true\",children:[css,bar]});if(!rect)return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-ribbon\",\"data-state\":state,\"aria-hidden\":\"true\",style:{top:Math.round(rect.t+rect.h+14)},children:[css,bar]}),getPortalHolder());}// spotlight\nif(isStatic)return /*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-spot s2n-stage dim\",\"data-state\":\"in\",\"data-static\":\"\",\"aria-hidden\":\"true\",children:[css,/*#__PURE__*/_jsxs(\"span\",{className:\"s2n-mock\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"s2n-hbox\",children:/*#__PURE__*/_jsx(InterfaceGlyph,{})}),UI.launcherLabel]}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-card\",children:body()})]});if(!rect)return null;const pad=8,l=rect.l-pad,t=rect.t-pad,w=rect.w+2*pad,h=rect.h+2*pad;const cardLeft=Math.max(12,Math.min(l+2,vw-12-Math.min(380,vw-28)));return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{className:\"s2n s2n-spot\",\"data-state\":state,\"aria-hidden\":\"true\",children:[css,/*#__PURE__*/_jsx(\"div\",{className:\"s2n-catch\",style:{left:0,top:0,width:\"100%\",height:Math.max(0,t)}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-catch\",style:{left:0,top:t+h,width:\"100%\",bottom:0}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-catch\",style:{left:0,top:t,width:Math.max(0,l),height:h}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-catch\",style:{left:l+w,top:t,right:0,height:h}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-dim\",style:{left:l,top:t,width:w,height:h}}),/*#__PURE__*/_jsx(\"div\",{className:\"s2n-card\",style:{left:cardLeft,top:t+h+16},onClick:open,children:body()}),/*#__PURE__*/_jsx(\"span\",{className:\"s2n-dismiss\",children:UI.hintDismissNote})]}),getPortalHolder());}let hintUsers=0;function HintNote({delay,hold,repeat,text,detail,hintStyle,style,isStatic}){// The most recently mounted note wins (later layers mount later), so unhiding a variation takes over from the\n// original note even while both are visible. The note ends when the last note instance unmounts.\nReact.useEffect(()=>{if(isStatic)return;hintUsers++;startHint(delay,hold,repeat,text,detail,hintStyle);return()=>{hintUsers=Math.max(0,hintUsers-1);if(hintUsers===0)endHint(true);};},[isStatic,delay,hold,repeat,text,detail,hintStyle]);if(!isStatic)return /*#__PURE__*/_jsx(\"span\",{\"data-s2amui2-hint\":\"\",hidden:true});// Canvas: the classic note keeps its small badge; a variation shows a static preview of its design.\nif(hintStyle!==\"classic\"&&HINT_STYLES.includes(hintStyle))return /*#__PURE__*/_jsxs(\"div\",{style:{...style,display:\"inline-flex\",flexDirection:\"column\",alignItems:\"flex-start\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(HintVisual,{isStatic:true,state:\"in\",hintStyle:hintStyle,text:text||UI.hintText,detail:detail||UI.hintDetail}),/*#__PURE__*/_jsxs(\"div\",{className:\"s2n-caption\",children:[HINT_LABELS[hintStyle],\" \\xb7 canvas preview \\xb7 plays on the live page\"]})]});return /*#__PURE__*/_jsx(\"div\",{style:{...style,display:\"inline-flex\",alignItems:\"center\",gap:6,padding:\"4px 8px\",border:\"1px dashed rgba(143, 139, 128, 0.7)\",borderRadius:6,color:\"#8F8B80\",font:\"600 11px/1.2 Figtree, Inter, system-ui, sans-serif\",letterSpacing:\".04em\",whiteSpace:\"nowrap\",pointerEvents:\"none\"},children:UI.hintBadge});}// ————————————————————————————————————————————————————————————————————————\n// Route gate: the continuous window on the listed pages; elsewhere the previous launcher, unchanged.\n// ————————————————————————————————————————————————————————————————————————\nconst useRouterMaybe=FramerNS.useRouter;function useRoutePath(){const router=useRouterMaybe?useRouterMaybe():null;try{const id=router?.currentRouteId,r=id&&router?.routes?router.routes[id]:null;if(r&&typeof r.path===\"string\")return r.path;}catch{}return null;}const normalisePath=p=>(p.replace(/[?#].*$/,\"\").replace(/\\/+$/,\"\")||\"/\").toLowerCase();function isLiveRoute(path,list){if(!path)return true;const wanted=list.split(\",\").map(s=>s.trim()).filter(Boolean).map(normalisePath);return wanted.includes(normalisePath(path));}// The previous window, loaded on demand on non-live pages. A failed load is forgotten so a later render can retry.\nlet classicModule=null;function loadClassic(){if(!classicModule){// @ts-ignore -- sibling code file (the previous window), resolved by Framer at runtime\nclassicModule=import(\"https://framerusercontent.com/modules/Nr728GYPCib2VTfRNtr6/ipnhcbHlnS1NhFCyGiIi/S2AMUIInterfaceWindow.js\");classicModule.catch(()=>{classicModule=null;});}return classicModule;}const ClassicLauncher=/*#__PURE__*/React.lazy(()=>loadClassic());/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 160\n * @framerIntrinsicHeight 46\n */export default function S2AMUI2InterfaceLauncher(props){const{presentation=\"header\",hintDelay=1.6,hintHold=5.5,hintRepeat=\"untilOpened\",hintText=UI.hintText,hintDetail=UI.hintDetail,hintStyle=\"classic\",style}=props;const isStatic=useIsStaticRenderer();const routePath=useRoutePath();const[clientPath,setClientPath]=React.useState(null);React.useEffect(()=>{if(!isStatic&&typeof window!==\"undefined\")setClientPath(window.location.pathname);},[isStatic]);// The first client render matches the server render (the continuous launcher); a page outside the list then\n// switches to the previous launcher, whose button looks the same.\nconst classic=!isStatic&&clientPath!==null&&!isLiveRoute(routePath??clientPath,LIVE_ROUTES);// Start loading the previous launcher as soon as the router shows a non-live page.\nReact.useEffect(()=>{if(!isStatic&&routePath&&!isLiveRoute(routePath,LIVE_ROUTES))void loadClassic().catch(()=>{});},[isStatic,routePath]);const pendingEl=presentation===\"hint\"?null:/*#__PURE__*/_jsx(Launcher,{row:presentation===\"row\",style:style,isStatic:false,pending:true});// If the previous launcher cannot load, the continuous launcher takes over rather than leaving a dead button.\nconst failedEl=presentation===\"hint\"?null:/*#__PURE__*/_jsx(Launcher,{row:presentation===\"row\",style:style,isStatic:false});if(classic)return /*#__PURE__*/_jsx(WindowBoundary,{fallback:()=>failedEl,children:/*#__PURE__*/_jsx(React.Suspense,{fallback:pendingEl,children:/*#__PURE__*/_jsx(ClassicLauncher,{presentation:presentation,hintDelay:hintDelay,hintHold:hintHold,hintRepeat:hintRepeat,hintText:hintText,style:style})})});if(presentation===\"hint\")return /*#__PURE__*/_jsx(HintNote,{delay:hintDelay,hold:hintHold,repeat:hintRepeat,text:hintText,detail:hintDetail,hintStyle:hintStyle,style:style,isStatic:isStatic});return /*#__PURE__*/_jsx(Launcher,{row:presentation===\"row\",style:style,isStatic:isStatic});}addPropertyControls(S2AMUI2InterfaceLauncher,{presentation:{type:ControlType.Enum,title:\"Presentation\",options:[\"header\",\"row\",\"hint\"],optionTitles:[\"Header button\",\"Contents row\",\"Page note (points at the header button)\"],defaultValue:\"header\"},hintDelay:{type:ControlType.Number,title:\"Note delay\",defaultValue:1.6,min:0,max:10,step:.1,unit:\"s\",hidden:props=>props.presentation!==\"hint\"},hintHold:{type:ControlType.Number,title:\"Note shows for\",defaultValue:5.5,min:2,max:15,step:.5,unit:\"s\",description:\"Not used by V4 \\xb7 Halo, which stays until clicked.\",hidden:props=>props.presentation!==\"hint\"||PERSISTENT_STYLES.includes(props.hintStyle??\"classic\")},hintRepeat:{type:ControlType.Enum,title:\"Show the note\",options:[\"untilOpened\",\"oncePerSession\",\"always\"],optionTitles:[\"Until the window is opened\",\"Once per session\",\"Every visit\"],defaultValue:\"untilOpened\",hidden:props=>props.presentation!==\"hint\"},hintText:{type:ControlType.String,title:\"Note text\",defaultValue:UI.hintText,hidden:props=>props.presentation!==\"hint\"},hintStyle:{type:ControlType.Enum,title:\"Note style\",options:[\"classic\",\"spotlight\",\"bloom\",\"ribbon\",\"halo\",\"peek\"],optionTitles:[\"Classic pill (current)\",\"V1 \\xb7 Spotlight\",\"V2 \\xb7 Halftone bloom\",\"V3 \\xb7 Ribbon\",\"V4 \\xb7 Halo\",\"V5 \\xb7 Instrument peek\"],defaultValue:\"classic\",hidden:props=>props.presentation!==\"hint\"},hintDetail:{type:ControlType.String,title:\"Note detail\",defaultValue:UI.hintDetail,hidden:props=>props.presentation!==\"hint\"||![\"spotlight\",\"bloom\",\"ribbon\",\"peek\"].includes(props.hintStyle??\"classic\")}});// ————— Styles —————\n// ————————————————————————————————————————————————————————————————————————\n// Styles. Literal values with Framer colour tokens where they exist (a body-level portal may not\n// inherit token variables, so every token carries a literal fallback). Figtree 400/700/800 only.\n// Launcher CSS is server-rendered on 15 pages: it is injected raw (dangerouslySetInnerHTML) and must never\n// contain quotes, angle brackets or ampersands (build.cjs refuses them), so React 18's SSR text escaping\n// can never corrupt it or break hydration.\n// ————————————————————————————————————————————————————————————————————————\nconst FONT=`Figtree, Figtree Placeholder, Inter, system-ui, sans-serif`;const INK=\"var(--token-967fc827-9638-4b25-8d10-b437f1124ad9, #F2EFE2)\";const INK2=\"var(--token-522ed787-4bef-43e3-99e8-782c99524550, #C4C0B2)\";const INK3=\"var(--token-bf52e8f7-07b2-41f9-9012-103095f79e06, #B7B3A5)\";const GROUND=\"var(--token-1eca7cf6-b538-456b-926c-e135a5280ee2, #1B1C1B)\";const GROUND_HI=\"var(--token-76af60d6-a2bf-416d-b001-9def8661cb7a, #262723)\";const SURFACE=\"var(--token-9b390b21-df27-4b79-9c2f-4779c4917c7a, #262725)\";const HAIR=\"var(--token-29a99091-8909-4954-bfe2-19c17c2ea951, rgba(242, 239, 226, 0.13))\";const HAIR_SOFT=\"var(--token-c32aa316-466a-403f-903e-c7b458d0a508, rgba(242, 239, 226, 0.08))\";const TEAL=\"var(--token-f2d01388-084c-4a77-9c7b-6d34a8339270, #79AEAA)\";// The ring follows each control's own radius (the header button stays 10 px, the row 12 px).\nconst RING=`outline:2px solid ${TEAL};outline-offset:2px`;const LIVE=\".s2amui-launch:not([data-s2amui-static])\";const HEADER_CSS=`\n.s2amui-launch{display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;min-width:0;font-family:${FONT}}\n.s2amui-launch *{box-sizing:border-box}\n.s2amui-launch-header{width:100%;pointer-events:none}\n.s2amui-hbtn{pointer-events:auto;appearance:none;-webkit-appearance:none;position:relative;flex:none;display:inline-flex;align-items:center;gap:12px;height:46px;margin:0;padding:5px 18px 5px 5px;border:0;border-radius:10px;background-color:rgba(242,239,226,.16);box-shadow:inset 0 0 0 1px ${HAIR};-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:${INK};font:700 16px/1 ${FONT};letter-spacing:0;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transform-origin:50% 50%;transition:background-color .2s cubic-bezier(.44,0,.56,1),transform .2s cubic-bezier(.44,0,.56,1)}\n.s2amui-hbox{flex:none;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:${GROUND};color:${INK}}\n.s2amui-hlabel{display:block}\n.s2amui-hbtn[aria-expanded=true]{background-color:rgba(242,239,226,.26)}\n.s2amui-hbtn:active{background-color:rgba(242,239,226,.30)}\n.s2amui-hbtn:focus{outline:none}\n.s2amui-hbtn:focus-visible{${RING}}\n.s2amui-tip{display:none}\n@media (hover:hover) and (pointer:fine){.s2amui-hbtn:hover{background-color:rgba(242,239,226,.26);transform:scale(1.1)}}\n@media (max-width:899.98px){${LIVE} .s2amui-hbtn{width:46px;gap:0;padding:5px}${LIVE} .s2amui-hlabel{display:none}}\n@media (max-width:767.98px){${LIVE} .s2amui-hbtn{width:44px;height:44px;padding:4px}}\n@media (max-width:359.98px){${LIVE} .s2amui-hbtn{display:none}}\n@media (hover:hover) and (pointer:fine) and (min-width:360px) and (max-width:899.98px){\n${LIVE} .s2amui-tip{display:block;position:absolute;left:0;top:100%;z-index:5;padding:6px 10px;border-top:8px solid transparent;border-radius:8px/16px 16px 8px 8px;background:${SURFACE};background-clip:padding-box;box-shadow:inset 0 0 0 1px ${HAIR};color:${INK2};font:400 14px/1.3 ${FONT};white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transform-origin:0 0;transition:opacity .15s ease,visibility 0s linear .15s}\n${LIVE} .s2amui-hbtn:focus-visible .s2amui-tip{opacity:1;visibility:visible;transition:opacity .15s ease .4s,visibility 0s linear .4s}\n${LIVE} .s2amui-hbtn:hover .s2amui-tip{opacity:1;visibility:visible;pointer-events:auto;transform:scale(.9091);transition:opacity .15s ease .4s,visibility 0s linear .4s}\n${LIVE} .s2amui-hbtn[data-tip-off] .s2amui-tip{opacity:0;visibility:hidden;pointer-events:none;transition:none}\n}\n@media (prefers-reduced-motion:reduce){.s2amui-hbtn,.s2amui-tip{transition:none!important}.s2amui-hbtn:hover{transform:none}${LIVE} .s2amui-hbtn:hover .s2amui-tip{transform:none}${LIVE} .s2amui-hbtn:is(:hover,:focus-visible):not([data-tip-off]) .s2amui-tip{transition:visibility 0s linear .4s!important}}\n@media (forced-colors:active){.s2amui-hbtn{border:1px solid ButtonText}}\n.s2amui-ring{position:absolute;inset:-5px;border-radius:14px;border:2px solid ${TEAL};opacity:0;pointer-events:none;animation:s2amui-ring 1.6s cubic-bezier(.2,.7,.3,1) .1s 2 both}\n@keyframes s2amui-ring{0%{opacity:0;transform:scale(.94)}22%{opacity:.9}100%{opacity:0;transform:scale(1.16)}}\n.s2amui-hint{position:absolute;left:-2px;top:calc(100% + 14px);z-index:6;display:flex;align-items:center;gap:9px;padding:8px 14px 8px 9px;border-radius:12px;background:${SURFACE};box-shadow:inset 0 0 0 1px rgba(121,174,170,.42),0 12px 30px rgba(0,0,0,.38);color:${INK};font:700 14px/1.2 ${FONT};letter-spacing:-.005em;white-space:nowrap;width:max-content;max-width:calc(100vw - 84px);pointer-events:none;transform-origin:24px 0}\n.s2amui-hint-text{min-width:0;white-space:normal;text-wrap:balance}\n.s2amui-hint-caret{position:absolute;left:17px;top:-6px;width:12px;height:12px;border-radius:3px 0 0 0;background:${SURFACE};box-shadow:inset 1px 1px 0 0 rgba(121,174,170,.42);transform:rotate(45deg)}\n.s2amui-hint-tag{flex:none;padding:4px 6px 3px;border-radius:6px;background:rgba(121,174,170,.16);color:${TEAL};font:800 11px/1 ${FONT};letter-spacing:.14em;text-transform:uppercase}\n.s2amui-hint[data-state=in]{animation:s2amui-hint-in .5s cubic-bezier(.2,.8,.2,1) both}\n.s2amui-hint[data-state=out]{animation:s2amui-hint-out .65s ease both}\n@keyframes s2amui-hint-in{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}\n@keyframes s2amui-hint-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-3px)}}\n${LIVE} .s2amui-hbtn[data-hint] .s2amui-tip{display:none}\n@media (max-width:767.98px){.s2amui-hint{left:-4px;top:calc(100% + 12px);font-size:13px;padding:7px 12px 7px 8px}.s2amui-hint-caret{left:16px}}\n@media (prefers-reduced-motion:reduce){.s2amui-ring{display:none}.s2amui-hint[data-state=in]{animation:s2amui-fade-only .25s linear both}.s2amui-hint[data-state=out]{animation:s2amui-fade-out-only .2s linear both}}\n@keyframes s2amui-fade-only{from{opacity:0}to{opacity:1}}\n@keyframes s2amui-fade-out-only{from{opacity:1}to{opacity:0}}\n@media (forced-colors:active){.s2amui-hint{border:1px solid CanvasText}.s2amui-hint-caret{display:none}.s2amui-ring{border-color:Highlight}}\n`;const HEADER_STATIC_CSS=`\n.s2amui-launch-header[data-s2amui-static]{container-type:inline-size;container-name:s2amuihead}\n@container s2amuihead (max-width:539.98px){.s2amui-hbtn{width:46px;gap:0;padding:5px}.s2amui-hlabel{display:none}}\n@container s2amuihead (max-width:249.98px){.s2amui-hbtn{width:44px;height:44px;padding:4px}}\n@container s2amuihead (max-width:149.98px){.s2amui-hbtn{display:none}}\n`;const ROW_CSS=`\n.s2amui-launch{display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;min-width:0;font-family:${FONT}}\n.s2amui-launch *{box-sizing:border-box}\n.s2amui-launch-row{width:100%}\n.s2amui-row{appearance:none;-webkit-appearance:none;display:flex;align-items:center;gap:14px;width:100%;min-height:44px;margin:0;padding:8px 12px 8px 8px;border:0;border-radius:12px;background-color:transparent;color:var(--token-d888eb93-3b05-464d-b514-9dbcc4686e67, #F2EFE2);font:700 18px/1.25 ${FONT};letter-spacing:-.02em;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease}\n.s2amui-row:focus{outline:none}\n.s2amui-row:focus-visible{${RING}}\n.s2amui-row-icon{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:24px;color:var(--token-270c5195-9a51-49df-bb7c-a77976dacd85, #B7B3A5)}\n.s2amui-row-label{flex:1;min-width:0}\n.s2amui-row[aria-expanded=true]{background-color:rgba(242,239,226,.05)}\n@media (hover:hover){.s2amui-row:hover{background-color:rgba(242,239,226,.05)}}\n@media (max-width:767.98px){${LIVE} .s2amui-row{min-height:48px}}\n@media (prefers-reduced-motion:reduce){.s2amui-row{transition:none!important}}\n`;const ROW_STATIC_CSS=`\n.s2amui-launch-row[data-s2amui-static]{container-type:inline-size;container-name:s2amuirow}\n@container s2amuirow (max-width:400px){.s2amui-row{min-height:48px}}\n`;// Window stylesheet (client-only: rendered inside the portalled dialog after the first open, never on the server).\n// Same palette and type as the launcher; teal focus rings on the window's own controls follow each control's radius.\n// Nothing is drawn over the instrument: its frame hairline sits outside the stage clip.\nconst TERRACOTTA=\"var(--token-f240b315-796d-4b48-a3f7-70fc24fafe53, #E8A271)\";const RING2=`outline:2px solid ${TEAL};outline-offset:2px`;const RING_IN=`outline:2px solid ${TEAL};outline-offset:-2px`;const PAD=\"max(32px, calc((100% - 1440px) / 2 + 32px))\";const PAD_T=\"max(24px, calc((100% - 1440px) / 2 + 24px))\";const WINDOW_CSS=`\ndialog.s2amui2-dialog{position:fixed;inset:0;margin:0;padding:0;border:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;overflow:hidden;background:transparent;color:${INK};font-family:${FONT};box-sizing:border-box;-webkit-text-size-adjust:100%;text-size-adjust:100%}\ndialog.s2amui2-dialog:not([open]){display:none}\ndialog.s2amui2-dialog[data-s2amui2-fallback]{z-index:2147483000}\ndialog.s2amui2-dialog::backdrop{background:transparent}\n.s2amui2-dialog *,.s2amui2-dialog *::before,.s2amui2-dialog *::after{box-sizing:border-box}\n.s2amui2-vh,.s2amui2-titles[data-phone=true]{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.s2amui2-scrim{position:absolute;inset:0;background:rgba(12,13,12,.72)}\n.s2amui2-sheet{position:absolute;inset:16px;display:flex;flex-direction:column;overflow:hidden;border-radius:24px;border:1px solid rgba(242,239,226,.10);box-shadow:0 24px 64px rgba(0,0,0,.45);background:${GROUND} radial-gradient(130% 55% at 50% -8%,${GROUND_HI},${GROUND})}\n@media (max-width:1199.98px){.s2amui2-sheet{inset:12px;border-radius:20px}}\n@media (max-width:767.98px),(max-height:499.98px){.s2amui2-sheet{inset:0;border-radius:0;border:0;box-shadow:none}}\n@keyframes s2amui2-fade{from{opacity:0}to{opacity:1}}\n@keyframes s2amui2-fadeout{from{opacity:1}to{opacity:0}}\n@keyframes s2amui2-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@keyframes s2amui2-rise-p{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}\n@keyframes s2amui2-drop{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)}}\n@keyframes s2amui2-helpin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}\n.s2amui2-dialog[data-state=open] .s2amui2-scrim{animation:s2amui2-fade .2s ease both}\n.s2amui2-dialog[data-state=open] .s2amui2-sheet{animation:s2amui2-rise .24s cubic-bezier(.2,.8,.2,1) both}\n.s2amui2-dialog[data-state=closing] .s2amui2-scrim{animation:s2amui2-fadeout .16s ease-in both}\n.s2amui2-dialog[data-state=closing] .s2amui2-sheet{animation:s2amui2-drop .16s ease-in both}\n@media (max-width:767.98px),(max-height:499.98px){.s2amui2-dialog[data-state=open] .s2amui2-sheet{animation:s2amui2-rise-p .26s cubic-bezier(.2,.8,.2,1) both}}\n.s2amui2-win{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;color:${INK};font-family:${FONT}}\n.s2amui2-chrome{-webkit-tap-highlight-color:transparent}\n.s2amui2-chrome:focus{outline:none}\n.s2amui2-chrome:focus-visible{${RING2}}\n/* Top bar */\n.s2amui2-top{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;height:80px;padding:0 ${PAD};border-bottom:1px solid ${HAIR}}\n.s2amui2-win[data-bp=t] .s2amui2-top{height:72px;padding:0 ${PAD_T}}\n.s2amui2-win[data-bp=p] .s2amui2-top{height:64px;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));gap:10px}\n.s2amui2-win[data-layout=phone] .s2amui2-top{height:72px;padding-top:max(0px,env(safe-area-inset-top,0px));border-bottom:0}\n.s2amui2-win[data-bp=d]:is([data-layout=side],[data-layout=stack]) .s2amui2-top{padding-left:max(${PAD},min(calc((100% - var(--content-w)) / 2),calc((100% - 640px) / 2)));padding-right:max(${PAD},min(calc((100% - var(--content-w)) / 2),calc((100% - 640px) / 2)))}\n.s2amui2-win[data-bp=t]:is([data-layout=side],[data-layout=stack]) .s2amui2-top{padding-left:max(${PAD_T},min(calc((100% - var(--content-w)) / 2),calc((100% - 640px) / 2)));padding-right:max(${PAD_T},min(calc((100% - var(--content-w)) / 2),calc((100% - 640px) / 2)))}\n.s2amui2-win[data-bp=p][data-layout=side] .s2amui2-top{padding-left:max(16px,env(safe-area-inset-left,0px),min(calc((100% - var(--content-w)) / 2),calc((100% - 480px) / 2)));padding-right:max(16px,env(safe-area-inset-right,0px),min(calc((100% - var(--content-w)) / 2),calc((100% - 480px) / 2)))}\n.s2amui2-titles{display:flex;flex-direction:column;gap:6px;min-width:0}\n.s2amui2-eyebrow{display:flex;align-items:center;gap:10px;margin:0;font:800 12px/1.3 ${FONT};letter-spacing:.16em;text-transform:uppercase;color:${INK3}}\n.s2amui2-win[data-bp=p] .s2amui2-eyebrow{display:none}\n.s2amui2-marker{flex:none;width:7px;height:7px;background:${INK3}}\n.s2amui2-title{margin:0;font:700 28px/1.2 ${FONT};letter-spacing:-.015em;color:${INK};white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.s2amui2-title:focus,.s2amui2-title:focus-visible{outline:none}\n.s2amui2-win[data-bp=t] .s2amui2-title{font-size:25px}\n.s2amui2-win[data-bp=p] .s2amui2-title{font-size:17px;line-height:1.3;letter-spacing:-.005em}\n.s2amui2-actions{flex:none;display:flex;align-items:center;gap:24px}\n.s2amui2-win[data-bp=t] .s2amui2-actions{gap:16px}\n.s2amui2-win[data-bp=p] .s2amui2-actions{gap:10px}\n.s2amui2-close{appearance:none;-webkit-appearance:none;flex:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;margin:0;padding:0 16px;border:0;border-radius:10px;background:${INK};color:${GROUND};box-shadow:inset 0 0 0 1px ${HAIR};font:700 16px/1 ${FONT};cursor:pointer}\n@media (max-width:809.98px){.s2amui2-close{font-size:15px}}\n.s2amui2-win[data-bp=p] .s2amui2-close{height:44px;padding:0 12px;gap:8px}\n.s2amui2-win[data-layout=phone] .s2amui2-close{width:52px;height:52px;padding:0;border-radius:12px}\n.s2amui2-win[data-layout=phone] .s2amui2-top{padding-left:max(16px,env(safe-area-inset-left,0px),calc((100% - max(var(--fit-w),288px)) / 2));padding-right:max(16px,env(safe-area-inset-right,0px),calc((100% - max(var(--fit-w),288px)) / 2))}\n.s2amui2-win[data-layout=phone] .s2amui2-close-text{display:none}\n.s2amui2-close svg{transform:rotate(45deg);transition:transform .18s ease}\n@media (hover:hover) and (pointer:fine){.s2amui2-close:hover svg{transform:rotate(135deg)}}\n/* Zoom */\n.s2amui2-zoom{display:flex;align-items:center;gap:8px}\n.s2amui2-zoom-seg{position:relative;display:flex;align-items:stretch;height:44px;border-radius:10px;background:rgba(242,239,226,.04)}\n.s2amui2-zoom-seg::after{content:\"\";position:absolute;inset:0;border:1px solid rgba(242,239,226,.16);border-radius:10px;pointer-events:none}\n.s2amui2-zbtn{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:0;background:transparent;color:${INK};cursor:pointer;transition:background-color .15s ease}\n.s2amui2-zbtn:first-child{border-radius:10px 0 0 10px}.s2amui2-zbtn:last-child{border-radius:0 10px 10px 0}\n.s2amui2-zbtn.s2amui2-chrome:focus-visible{${RING_IN}}\n.s2amui2-zbtn[aria-disabled=true]{color:rgba(242,239,226,.40);cursor:default}\n.s2amui2-zoom-read{position:relative;display:flex;align-items:center;justify-content:center;min-width:60px;padding:0 6px;font:700 13px/1 ${FONT};font-variant-numeric:tabular-nums;color:${INK2}}\n.s2amui2-zoom-read::before,.s2amui2-zoom-read::after{content:\"\";position:absolute;top:10px;bottom:10px;width:1px;background:${HAIR}}\n.s2amui2-zoom-read::before{left:0}.s2amui2-zoom-read::after{right:0}\n.s2amui2-fit,.s2amui2-step,.s2amui2-retry{appearance:none;-webkit-appearance:none;flex:none;height:44px;margin:0;padding:0 16px;border-radius:10px;border:1px solid rgba(242,239,226,.16);background:rgba(242,239,226,.04);color:${INK};font:700 15px/1 ${FONT};cursor:pointer;transition:background-color .15s ease}\n.s2amui2-retry{height:44px;padding:0 14px;font-size:14px}\n.s2amui2-win:not([data-bp=p]) .s2amui2-top :is(.s2amui2-zoom-seg,.s2amui2-zbtn,.s2amui2-fit){height:46px}\n.s2amui2-win:not([data-bp=p]) .s2amui2-top .s2amui2-zbtn{width:46px}\n@media (hover:hover) and (pointer:fine){.s2amui2-zbtn:not([aria-disabled=true]):hover,.s2amui2-fit:hover,.s2amui2-step:hover,.s2amui2-retry:hover{background-color:rgba(242,239,226,.08)}}\n.s2amui2-zbtn:not([aria-disabled=true]):active,.s2amui2-fit:active,.s2amui2-step:active,.s2amui2-retry:active{background-color:rgba(242,239,226,.12)}\n/* Body */\n.s2amui2-body{flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center;gap:32px;padding:24px ${PAD} 32px}\n.s2amui2-win[data-bp=t] .s2amui2-body{gap:24px;padding:24px ${PAD_T}}\n.s2amui2-win[data-layout=stack] .s2amui2-body{flex-direction:column;align-items:center;justify-content:flex-start}\n.s2amui2-win[data-layout=phone] .s2amui2-body{flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:8px 16px 0}\n.s2amui2-win[data-bp=p][data-layout=side] .s2amui2-body{gap:12px;padding:12px max(16px,env(safe-area-inset-right,0px)) 12px max(16px,env(safe-area-inset-left,0px))}\n/* The instrument stage: the only scroller, and only while zoomed. The frame line sits outside the clip. */\n.s2amui2-stage{position:relative;flex:none;width:var(--fit-w);height:var(--fit-h);border-radius:20px;overflow:hidden;background:${GROUND};box-shadow:0 0 0 1px ${HAIR_SOFT}}\n.s2amui2-win[data-bp=t] .s2amui2-stage{border-radius:16px}\n.s2amui2-win[data-bp=p] .s2amui2-stage{border-radius:12px}\n.s2amui2-poster{position:absolute;top:0;left:calc(var(--fit-w) * -16 / 1888);width:calc(var(--fit-w) * 2048 / 1888);height:auto;max-width:none;display:block;pointer-events:none;user-select:none;transition:opacity .25s ease}\n.s2amui2-poster[data-hidden=true]{opacity:0}\n.s2amui2-demo{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .25s ease}\n.s2amui2-demo[data-ready=true]{opacity:1;pointer-events:auto}\n.s2amui2-demo-error{position:absolute;inset:auto 16px 16px;margin:0;padding:12px 14px;border-radius:12px;background:${SURFACE};color:${INK2};font:400 15px/1.45 ${FONT}}\n/* Side column, stack row and phone dock */\n.s2amui2-col{order:2;flex:1 1 var(--col-w);width:auto;min-width:var(--col-w);max-width:520px;display:flex;flex-direction:column;gap:16px;min-height:0;max-height:100%}\n.s2amui2-col>.s2amui2-zoom{flex-wrap:wrap}\n.s2amui2-lower{order:2;display:flex;align-items:stretch;gap:24px;width:var(--lower-w);max-width:100%}\n.s2amui2-lower>.s2amui2-chooser{flex:none;width:var(--col-w)}\n.s2amui2-lower>.s2amui2-dock{flex:1;min-width:0;height:var(--help-h)}\n@media (max-width:767.98px){.s2amui2-lower{flex-direction:column;gap:12px}.s2amui2-lower>.s2amui2-chooser{width:100%}}\n.s2amui2-chooser{display:flex;flex-direction:column;gap:10px}\n.s2amui2-label{display:flex;align-items:center;gap:10px;height:16px;font:800 12px/1.3 ${FONT};letter-spacing:.16em;text-transform:uppercase;color:${INK3}}\n.s2amui2-label .s2amui2-marker{background:${TERRACOTTA}}\n/* Chord choice: a two-option segmented control (radiogroup) */\n.s2amui2-choice{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:rgba(242,239,226,.04);box-shadow:inset 0 0 0 1px rgba(242,239,226,.14)}\n.s2amui2-chord{appearance:none;-webkit-appearance:none;position:relative;display:flex;align-items:center;gap:10px;min-width:0;min-height:52px;margin:0;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:${INK2};text-align:left;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}\n.s2amui2-chord-mark{flex:none;width:8px;height:8px;border-radius:999px;box-shadow:inset 0 0 0 1.5px rgba(242,239,226,.40)}\n.s2amui2-chord-text{display:flex;flex-direction:column;gap:2px;min-width:0}\n.s2amui2-chord-name{font:700 16px/1.2 ${FONT};letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.s2amui2-chord-sub{font:400 12px/1.2 ${FONT};color:${INK3};white-space:nowrap}\n.s2amui2-chord[aria-checked=true]{background:rgba(242,239,226,.10);box-shadow:inset 0 0 0 1px rgba(242,239,226,.26);color:${INK}}\n.s2amui2-chord.s2amui2-chrome:focus-visible{outline-offset:0}\n.s2amui2-chord[aria-checked=true] .s2amui2-chord-mark{background:${TERRACOTTA};box-shadow:none}\n@media (hover:hover) and (pointer:fine){.s2amui2-chord[aria-checked=false]:hover{background:rgba(242,239,226,.06)}}\n.s2amui2-choice[data-compact=true]{flex:1;min-width:0;max-width:340px}\n.s2amui2-choice[data-compact=true] .s2amui2-chord{min-height:44px;padding:4px 10px;gap:8px}\n.s2amui2-choice[data-compact=true] .s2amui2-chord-name{font-size:15px}\n.s2amui2-choice[data-compact=true] .s2amui2-chord-sub{font-size:11px}\n@media (max-width:359.98px){.s2amui2-choice[data-compact=true] .s2amui2-chord{padding:4px 8px;gap:6px}}\n/* Caption and status share one reserved slot */\n.s2amui2-meta{display:grid;min-height:44px}\n.s2amui2-meta>*{grid-area:1/1}\n.s2amui2-meta p{margin:0;font:400 14px/1.45 ${FONT};text-wrap:pretty}\n.s2amui2-statusrow{display:flex;align-items:center;gap:10px;min-width:0}\n.s2amui2-caption{color:${INK3}}\n.s2amui2-caption[data-hidden=true]{visibility:hidden}\n.s2amui2-status{color:${INK2}}\n.s2amui2-win[data-layout=phone] .s2amui2-meta{width:min(100%,max(var(--fit-w),288px));min-height:36px;height:36px}\n.s2amui2-win[data-layout=phone] .s2amui2-meta p{font-size:13px;line-height:18px;text-wrap:balance}\n.s2amui2-win[data-bp=p][data-layout=side] .s2amui2-meta{min-height:36px;height:36px}\n.s2amui2-win[data-bp=p][data-layout=side] .s2amui2-meta p{font-size:13px;line-height:18px;text-wrap:balance}\n.s2amui2-win[data-bp=p] .s2amui2-meta{align-items:center}\n.s2amui2-reduced{display:flex;align-items:center;gap:12px}\n.s2amui2-reduced p{margin:0;font:400 13px/1.4 ${FONT};color:${INK3}}\n/* Help */\n.s2amui2-dock{flex:0 1 auto;min-height:0;width:100%;max-height:var(--help-h);display:flex;flex-direction:column}\n.s2amui2-win[data-layout=phone] .s2amui2-dock{flex:1 1 0;width:min(100%,max(var(--col-w),288px));height:auto;max-height:none;min-height:96px}\n.s2amui2-win[data-layout=phone] .s2amui2-body{padding-bottom:4px}\n/* The card keeps its whole frame; only the text inside it scrolls when a long entry meets a short dock. */\n.s2amui2-help{position:relative;flex:0 1 auto;min-height:0;display:flex;flex-direction:column}\n.s2amui2-win:is([data-layout=stack],[data-layout=phone]) .s2amui2-help{flex:1 1 auto}\n.s2amui2-help-card{position:relative;flex:0 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin:0;padding:22px 24px;border-radius:20px;border:1px solid ${HAIR};background:${SURFACE}}\n.s2amui2-win:is([data-layout=stack],[data-layout=phone]) .s2amui2-help-card{flex:1 1 auto}\n.s2amui2-help-scroll{flex:0 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;margin-right:-12px;padding-right:12px;scrollbar-width:thin;scrollbar-color:rgba(242,239,226,.22) transparent}\n.s2amui2-help-scroll[data-overflow=true]{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent)}\n.s2amui2-help-scroll[data-scrolled=true]{-webkit-mask-image:linear-gradient(180deg,transparent,#000 20px);mask-image:linear-gradient(180deg,transparent,#000 20px)}\n.s2amui2-help-scroll[data-scrolled=true][data-overflow=true]{-webkit-mask-image:linear-gradient(180deg,transparent,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(180deg,transparent,#000 20px,#000 calc(100% - 28px),transparent)}\n.s2amui2-win[data-bp=t] .s2amui2-help-card{padding:20px;border-radius:16px}\n.s2amui2-win[data-bp=p] .s2amui2-help-card{padding:14px 16px;border-radius:12px}\n.s2amui2-help-idle{background:transparent;border-color:${HAIR_SOFT}}\n.s2amui2-help-inner{animation:s2amui2-helpin .14s ease both}\n.s2amui2-help-idle-text{margin:0;font:400 16px/1.55 ${FONT};color:${INK3};text-wrap:pretty}\n.s2amui2-coarse{display:none}\n@media (pointer:coarse){.s2amui2-fine{display:none}.s2amui2-coarse{display:inline}}\n.s2amui2-help-body{margin:0;font:400 16px/1.55 ${FONT};color:${INK2};text-wrap:pretty}\n.s2amui2-win[data-bp=d] .s2amui2-help-body{font-size:17px}\n.s2amui2-win[data-bp=t] .s2amui2-help-body{font-size:15px;line-height:1.5}\n.s2amui2-help-body::before{content:\"\";float:right;width:28px;height:1em}\n.s2amui2-help-body strong{font-weight:800}\n.s2amui2-help-tip{margin:12px 0 0;padding-top:12px;border-top:1px solid ${HAIR};font:400 14px/1.45 ${FONT};color:${INK3}}\n.s2amui2-win[data-bp=d] .s2amui2-help-tip{font-size:15px}\n@media (pointer:coarse){.s2amui2-help-tip{display:none}}\n.s2amui2-help-x{appearance:none;-webkit-appearance:none;position:absolute;top:16px;right:12px;z-index:1;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:999px;background:${SURFACE};box-shadow:0 0 0 4px ${SURFACE};color:${INK2};cursor:pointer;transition:background-color .15s ease}\n.s2amui2-help-x::before{content:\"\";position:absolute;inset:-6px}\n.s2amui2-win[data-bp=p] .s2amui2-help-x{top:8px;right:8px}\n@media (hover:hover) and (pointer:fine){.s2amui2-help-x:hover{background:linear-gradient(rgba(242,239,226,.06),rgba(242,239,226,.06)),${SURFACE}}}\n.s2amui2-zoomrow{flex:none;display:flex;justify-content:center;align-items:center;gap:10px;padding:6px max(12px,env(safe-area-inset-right,0px)) 6px max(12px,env(safe-area-inset-left,0px));border-bottom:1px solid ${HAIR}}\n@media (max-width:389.98px){.s2amui2-zoomrow{gap:8px;padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px))}.s2amui2-zoomrow .s2amui2-zoom-read{min-width:52px}.s2amui2-zoomrow .s2amui2-fit,.s2amui2-zoomrow .s2amui2-step{padding:0 12px}}\n.s2amui2-bottom{flex:none;height:calc(8px + env(safe-area-inset-bottom,0px))}\n.s2amui2-error{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:32px;font:400 17px/1.55 ${FONT};color:${INK2}}\n.s2amui2-error p{margin:0}\n@media (prefers-reduced-motion:reduce){\n.s2amui2-dialog[data-state] .s2amui2-scrim,.s2amui2-dialog[data-state] .s2amui2-sheet{animation:s2amui2-fade .1s linear both!important}\n.s2amui2-dialog[data-state=closing] .s2amui2-scrim,.s2amui2-dialog[data-state=closing] .s2amui2-sheet{animation:none!important;opacity:0}\n.s2amui2-help-inner{animation:none}\n.s2amui2-close svg,.s2amui2-poster,.s2amui2-demo,.s2amui2-zbtn,.s2amui2-fit,.s2amui2-step,.s2amui2-retry,.s2amui2-help-x,.s2amui2-chord{transition:none!important}\n.s2amui2-close:hover svg{transform:rotate(45deg)}\n}\n@media (forced-colors:active){.s2amui2-close,.s2amui2-choice,.s2amui2-fit,.s2amui2-step{border:1px solid ButtonText}.s2amui2-chord[aria-checked=true]{border:2px solid Highlight}.s2amui2-chord-mark{forced-color-adjust:none;background:Canvas;box-shadow:inset 0 0 0 1.5px CanvasText}.s2amui2-chord[aria-checked=true] .s2amui2-chord-mark{background:Highlight;box-shadow:none}.s2amui2-chrome:focus-visible{outline:2px solid CanvasText;outline-offset:2px}.s2amui2-zbtn[aria-disabled=true]{color:GrayText}.s2amui2-help-card{border-color:CanvasText}}\n`;// Page-note variations (client-only: rendered by the header launcher while a note is showing, and by the note\n// instance's canvas preview). Never server-rendered, so quotes and brackets are fine here. Prefix `s2n-`.\n// Palette and type follow the style guide: warm ground/surface, ink, terracotta (chord/CTA) and teal (bass) accents,\n// Figtree for controls and copy, Caprasimo only as a display word; halftone dots fade by shrinking to zero.\nconst TERRA=\"var(--token-f240b315-796d-4b48-a3f7-70fc24fafe53, #E8A271)\";const HINT_CSS=`\n@property --s2n-a{syntax:\"<angle>\";inherits:false;initial-value:0deg}\n.s2n{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;color:${INK};font-family:${FONT};letter-spacing:0;text-align:left;z-index:6}\n.s2n *{box-sizing:border-box}\n.s2n[data-static]{position:relative;width:auto;height:auto;display:inline-block}\n.s2n svg{display:block}\n/* Shared card */\n.s2n-card{position:absolute;left:-2px;top:calc(100% + 14px);z-index:6;display:flex;flex-direction:column;gap:6px;width:max-content;max-width:min(380px,calc(100vw - 28px));padding:14px 16px;border-radius:14px;background:${SURFACE};box-shadow:inset 0 0 0 1px rgba(242,239,226,.12),0 18px 44px rgba(0,0,0,.45);color:${INK};pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}\n.s2n[data-static] .s2n-card{position:relative;left:auto;top:auto}\n@media (max-width:767.98px){.s2n:not([data-static]) .s2n-card:not(.s2n-spot .s2n-card){left:-50px;max-width:calc(100vw - 28px)}.s2n:not([data-static]) .s2n-card>.s2n-caret{left:67px}}\n.s2n-caret{position:absolute;left:17px;top:-6px;width:12px;height:12px;border-radius:3px 0 0 0;background:${SURFACE};box-shadow:inset 1px 1px 0 0 rgba(242,239,226,.12);transform:rotate(45deg)}\n.s2n-chip{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:4px 7px 3px;border-radius:6px;background:rgba(232,162,113,.16);color:${TERRA};font:800 11px/1 ${FONT};letter-spacing:.14em;text-transform:uppercase}\n.s2n-chip i{display:block;width:6px;height:6px;border-radius:50%;background:${TERRA};animation:s2n-blink 1.4s ease-in-out infinite}\n.s2n-title{font:700 16px/1.25 ${FONT};letter-spacing:-.01em;color:${INK};text-wrap:balance;max-width:34ch}\n.s2n-detail{font:400 13.5px/1.45 ${FONT};color:${INK3};text-wrap:pretty;max-width:40ch}\n.s2n-cta{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:4px;padding:9px 12px 9px 14px;border-radius:9px;background:${TERRA};color:${GROUND};font:700 13px/1 ${FONT};letter-spacing:-.005em;white-space:nowrap}\n.s2n-cta svg{width:14px;height:14px;transition:transform .2s ease}\n.s2n-card:hover .s2n-cta svg{transform:translateX(2px)}\n.s2n[data-state=in] .s2n-card{animation:s2n-in .55s cubic-bezier(.2,.9,.25,1.12) both}\n.s2n[data-state=out] .s2n-card{animation:s2n-out .5s ease both}\n@keyframes s2n-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}\n@keyframes s2n-out{from{opacity:1}to{opacity:0;transform:translateY(-4px)}}\n@keyframes s2n-fade{from{opacity:0}to{opacity:1}}\n@keyframes s2n-fadeout{from{opacity:1}to{opacity:0}}\n@keyframes s2n-blink{0%,100%{opacity:1}50%{opacity:.35}}\n/* V1 Spotlight: the page dims, the Interface button stays lit through a ringed hole, the card sits beneath it. */\n.s2n-spot{position:fixed;inset:0;width:auto;height:auto;z-index:2147482000;pointer-events:none}\n.s2n-dim{position:fixed;border-radius:14px;box-shadow:0 0 0 2px rgba(232,162,113,.95),0 0 0 200vmax rgba(27,28,27,.7);pointer-events:none}\n.s2n-catch{position:fixed;pointer-events:auto;cursor:default;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}\n.s2n-spot .s2n-card{position:fixed;left:auto;top:auto;z-index:1}\n.s2n-spot[data-state=in] .s2n-dim,.s2n-spot[data-state=in] .s2n-catch{animation:s2n-fade .4s ease both}\n.s2n-spot[data-state=out] .s2n-dim,.s2n-spot[data-state=out] .s2n-catch{animation:s2n-fadeout .4s ease both}\n.s2n-spot[data-state=out] .s2n-catch{pointer-events:none}\n.s2n-spot .s2n-dismiss{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(38,39,37,.9);color:${INK3};font:600 12px/1 ${FONT};letter-spacing:.04em;white-space:nowrap}\n/* V2 Halftone bloom: a terracotta halftone spills from the card corner into empty space, with two thin arcs. */\n.s2n-bloom .s2n-card{overflow:hidden;min-width:min(340px,calc(100vw - 28px));padding:16px 18px 16px}\n.s2n-bloom .s2n-card>:not(.s2n-dots):not(.s2n-arc):not(.s2n-caret){position:relative;z-index:1}\n.s2n-dots{position:absolute;right:-8px;top:-8px;width:220px;height:160px;z-index:0;pointer-events:none;fill:rgba(232,162,113,.62);animation:s2n-fade .9s ease .15s both}\n.s2n-arc{position:absolute;right:-150px;top:-130px;width:360px;height:360px;z-index:0;pointer-events:none;fill:none;stroke-width:1;animation:s2n-fade .9s ease .25s both}\n.s2n-bloom .s2n-caret{position:absolute;z-index:7}\n.s2n-bloom .s2n-chip{background:rgba(121,174,170,.16);color:${TEAL}}\n.s2n-bloom .s2n-chip i{background:${TEAL}}\n/* Eyebrow: the chip's type, colour and line box without the badge (no fill, dot or side padding), so the card keeps its height. */\n.s2n-eyebrow{display:block;align-self:flex-start;padding:4px 0 3px;color:${TEAL};font:800 11px/1 ${FONT};letter-spacing:.14em;text-transform:uppercase}\n.s2n-bloom .s2n-title,.s2n-bloom .s2n-detail{max-width:30ch}\n/* V3 Ribbon: a rounded strip under the header with the note, a slow ticker of control names, and a button. */\n.s2n-ribbon{position:fixed;left:12px;right:12px;width:auto;height:auto;z-index:2147481000;pointer-events:none}\n.s2n-bar{display:flex;align-items:center;gap:14px;padding:9px 10px 9px 14px;border-radius:14px;background:${SURFACE};box-shadow:inset 0 0 0 1px rgba(232,162,113,.38),0 14px 36px rgba(0,0,0,.42);pointer-events:auto;color:${INK};font-family:${FONT}}\n.s2n-bartext{display:flex;flex-direction:column;gap:2px;min-width:0;flex:none}\n.s2n-bartext strong{font:700 15px/1.2 ${FONT};letter-spacing:-.01em;white-space:nowrap}\n.s2n-bardetail{font:400 12.5px/1.3 ${FONT};color:${INK3};white-space:nowrap}\n.s2n-marquee{flex:1 1 auto;min-width:90px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}\n.s2n-track{display:flex;width:max-content;animation:s2n-marquee 28s linear infinite}\n.s2n-track span{display:inline-flex;align-items:center;gap:0;padding-right:0;font:700 11.5px/1 ${FONT};letter-spacing:.12em;text-transform:uppercase;color:${INK3};white-space:nowrap}\n.s2n-track b{display:inline-block;width:5px;height:5px;margin:0 14px;border-radius:50%;background:${TERRA};opacity:.8}\n.s2n-track b.t{background:${TEAL}}\n@keyframes s2n-marquee{to{transform:translateX(-50%)}}\n.s2n-barcta{margin:0;cursor:pointer}\n.s2n-x{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:${INK2};cursor:pointer}\n.s2n-x:hover{background:rgba(242,239,226,.08)}\n.s2n-ribbon[data-state=in] .s2n-bar{animation:s2n-drop .55s cubic-bezier(.2,.8,.2,1) both}\n.s2n-ribbon[data-state=out] .s2n-bar{animation:s2n-lift .45s ease both}\n@keyframes s2n-drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}\n@keyframes s2n-lift{from{opacity:1}to{opacity:0;transform:translateY(-8px)}}\n.s2n[data-static].s2n-ribbon{position:relative;left:auto;right:auto;top:auto;width:620px;max-width:100%}\n@media (max-width:767.98px){.s2n-bardetail,.s2n-marquee{display:none}.s2n-bar{gap:10px;padding:8px 8px 8px 12px}.s2n-bartext{flex:1 1 auto}.s2n-bartext strong{white-space:normal;font-size:14px}.s2n-barcta span{display:none}.s2n-barcta{padding:9px 10px}.s2n-cta svg{width:16px;height:16px}}\n/* V4 Halo: the button itself glows with an orbiting terracotta ring; the note is a short pill (no badge). */\n.s2n-orbit{position:absolute;left:-8px;top:-8px;z-index:7;pointer-events:none;overflow:visible;animation:s2n-fade .4s ease both}\n/* The attention animation (orbiting dash + breathing glow) loops for as long as the note is showing; it is removed with the note. The loop is slow and soft, and one lap is a single continuous motion, so nothing flashes or restarts. */\n.s2n-orbit .ring{fill:none;stroke:rgba(232,162,113,.22);stroke-width:1.5}\n.s2n-orbit .dash{fill:none;stroke:${TERRA};stroke-width:2.5;stroke-linecap:round;stroke-dasharray:150 850;animation:s2n-dash 3.2s linear infinite}\n@keyframes s2n-dash{to{stroke-dashoffset:-1000}}\n.s2n-glow{position:absolute;left:0;top:0;border-radius:10px;background:transparent;box-shadow:0 0 26px 7px rgba(232,162,113,.32);pointer-events:none;animation:s2n-breathe 3.2s ease-in-out infinite}\n@keyframes s2n-breathe{0%,100%{opacity:.5}50%{opacity:1}}\n.s2n-halo[data-state=out] .s2n-orbit,.s2n-halo[data-state=out] .s2n-glow{animation:s2n-fadeout .4s ease both}\n.s2n-halo .s2n-pill{z-index:8}\n/* On dismissal the orbiting dash stops at once (the glow loop is replaced by its fade-out) while the ring and glow fade away. */\n.s2n-halo[data-state=out] .s2n-orbit .dash{animation:none}\n.s2n-pilltext{min-width:0}\n.s2n-halo.s2n-stage{min-width:340px}\n@media (max-width:767.98px){.s2n-halo:not([data-static]) .s2n-pill{left:-50px;white-space:normal;max-width:calc(100vw - 32px)}.s2n-halo:not([data-static]) .s2n-pill .s2n-caret{left:67px}.s2n-pilltext{text-wrap:balance}}\n.s2n-pill{position:absolute;left:-2px;top:calc(100% + 14px);z-index:6;display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 9px;border-radius:12px;background:${SURFACE};box-shadow:inset 0 0 0 1px rgba(232,162,113,.5),0 12px 30px rgba(0,0,0,.38);font:700 14px/1.2 ${FONT};color:${INK};white-space:nowrap;max-width:calc(100vw - 40px);pointer-events:auto;cursor:pointer}\n.s2n-pill .s2n-caret{box-shadow:inset 1px 1px 0 0 rgba(232,162,113,.5)}\n.s2n-arrow{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:50%;background:${TERRA};color:${GROUND};animation:s2n-nudge 1.1s ease-in-out 6 forwards}\n.s2n-arrow svg{width:12px;height:12px}\n@keyframes s2n-nudge{0%,100%{transform:translate(0,0)}50%{transform:translate(-2px,-2px)}}\n.s2n[data-state=in] .s2n-pill{animation:s2n-in .5s cubic-bezier(.2,.8,.2,1) both}\n.s2n[data-state=out] .s2n-pill{animation:s2n-out .5s ease both}\n.s2n[data-static] .s2n-pill{position:relative;left:auto;top:auto}\n/* V5 Instrument peek: the plug-in itself peeks out of the note, keys lighting up, with a Caprasimo invitation. */\n.s2n-peekcard{flex-direction:row;align-items:stretch;gap:14px;padding:12px;max-width:min(420px,calc(100vw - 28px))}\n.s2n-thumb{position:relative;flex:none;width:104px;border-radius:10px;overflow:hidden;background:#d8d2c4}\n.s2n-thumb img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:30% 27%;transform:scale(2);transform-origin:30% 27%}\n.s2n-thumbglow{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(27,28,27,.55));pointer-events:none}\n.s2n-peekbody{display:flex;flex-direction:column;gap:4px;min-width:0}\n.s2n-display{font:400 23px/1.05 Caprasimo,Caprasimo Placeholder,${FONT};color:${INK};letter-spacing:0;margin-top:2px}\n.s2n-keys{width:118px;height:28px;margin:6px 0 4px}\n.s2n-keys .w{fill:#EDE9DC}.s2n-keys .b{fill:#2b2b29}\n.s2n-keys .lit{opacity:0;animation:s2n-key 2.6s ease-in-out infinite}\n.s2n-keys .lit.c{fill:${TERRA}}.s2n-keys .lit.t{fill:${TEAL}}\n.s2n-keys .k1{animation-delay:0s}.s2n-keys .k2{animation-delay:.18s}.s2n-keys .k3{animation-delay:.36s}.s2n-keys .k4{animation-delay:.54s}\n@keyframes s2n-key{0%,8%{opacity:0}18%,58%{opacity:.95}72%,100%{opacity:0}}\n.s2n-peek[data-state=in] .s2n-card{animation:s2n-rise .6s cubic-bezier(.2,.9,.25,1.15) both}\n@keyframes s2n-rise{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}\n@media (max-width:399.98px){.s2n-peekcard{gap:12px;padding:10px}.s2n-thumb{width:84px}.s2n-display{font-size:20px}}\n/* Canvas previews (static renderer): a mock Interface button so halo and spotlight read on the canvas. */\n.s2n-mock{position:relative;display:inline-flex;align-items:center;gap:12px;height:46px;padding:5px 18px 5px 5px;border-radius:10px;background:rgba(242,239,226,.16);box-shadow:inset 0 0 0 1px ${HAIR};color:${INK};font:700 16px/1 ${FONT}}\n.s2n-mock .s2n-hbox{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:${GROUND}}\n.s2n-stage{position:relative;display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:22px 24px 24px;border-radius:14px;background:${GROUND}}\n.s2n-stage.dim{background:rgba(27,28,27,.98)}\n.s2n-stage.dim .s2n-mock{box-shadow:inset 0 0 0 1px ${HAIR},0 0 0 2px rgba(232,162,113,.95)}\n.s2n-halo.s2n-stage .s2n-mock{width:134px;margin:10px 0 0}\n.s2n-caption{margin-top:8px;color:${INK3};font:600 11px/1.3 ${FONT};letter-spacing:.04em;white-space:nowrap}\n/* Motion and contrast preferences */\n@media (prefers-reduced-motion:reduce){.s2n-orbit .dash,.s2n-orbit,.s2n-glow,.s2n-chip i,.s2n-arrow,.s2n-track,.s2n-keys .lit,.s2n-dots,.s2n-arc{animation:none!important}.s2n-keys .lit{opacity:.95}.s2n[data-state=in] .s2n-card,.s2n[data-state=in] .s2n-pill,.s2n-ribbon[data-state=in] .s2n-bar,.s2n-spot[data-state=in] .s2n-dim,.s2n-spot[data-state=in] .s2n-catch{animation:s2n-fade .25s linear both!important}.s2n[data-state=out] .s2n-card,.s2n[data-state=out] .s2n-pill,.s2n-ribbon[data-state=out] .s2n-bar,.s2n-spot[data-state=out] .s2n-dim,.s2n-spot[data-state=out] .s2n-catch{animation:s2n-fadeout .2s linear both!important}}\n@media (forced-colors:active){.s2n-card,.s2n-bar,.s2n-pill{border:1px solid CanvasText}.s2n-cta{border:1px solid ButtonText;forced-color-adjust:none}.s2n-dim{border:2px solid Highlight}.s2n-caret{display:none}}\n`;// First-open guide, ENGINE stylesheet (client-only, inside the dialog with the window stylesheet). Only what every\n// visual shares: the card frame in the help dock, the caption stack, the Pause/Skip/Next buttons, the timeline\n// scrubber, the progress strip, the layer roots, the camera transition, the stepper's no-motion rule and the Replay\n// button. Each visual adds its own stylesheet (GUIDE_VISUAL_CSS). Nothing here styles an instrument control.\nconst SAGE=\"#9AA28F\";const BRASS=\"#B78A52\";const GUIDE_EASE=\"cubic-bezier(.45,.05,.2,1)\";const GUIDE_CSS=`\n/* Camera: the visual moves the instrument (and its own [data-g-cam] layers) with one shared transition. */\n.s2amui2-stage[data-guide] .s2amui2-demo{transform-origin:0 0;will-change:transform;transition:opacity .25s ease,transform var(--g-cam,.9s) ${GUIDE_EASE}}\n[data-g-cam]{transform-origin:0 0;transition:transform var(--g-cam,.9s) ${GUIDE_EASE};--s:1}\n/* Layer roots. The stage layer covers the instrument (a press on it skips); the sheet layer covers the window and\n   never takes a pointer event. */\n.s2g-stage{position:absolute;inset:0;z-index:3;overflow:hidden;border-radius:inherit;opacity:0;transition:opacity .3s ease;cursor:default;-webkit-tap-highlight-color:transparent}\n.s2g-stage[data-on=true]{opacity:1}\n.s2g-sheet{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}\n.s2g-sheet *{pointer-events:none}\n/* Card frame in the help dock */\n.s2g-card{position:relative;flex:0 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin:0;--acc:${TERRACOTTA}}\n.s2g-card[data-acc=sage]{--acc:${SAGE}}\n.s2g-card[data-acc=teal]{--acc:${TEAL}}\n.s2amui2-win:is([data-layout=stack],[data-layout=phone]) .s2g-card{flex:1 1 auto}\n.s2g-c{color:${TERRACOTTA}}.s2g-b{color:${TEAL}}\n.s2g-texts{position:relative;display:grid}\n.s2g-texts>p{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}\n.s2g-texts>p[data-on=true]{opacity:1;visibility:visible;transition:opacity .35s ease .12s,visibility 0s}\n.s2g-texts b{font-weight:800}\n/* Buttons: 44 px targets (the ::before extends small visual buttons). */\n.s2g-actions{flex:none;display:flex;align-items:center;gap:8px}\n.s2g-btn{appearance:none;-webkit-appearance:none;position:relative;flex:none;height:36px;margin:0;padding:0 14px;border-radius:10px;border:1px solid rgba(242,239,226,.16);background:rgba(242,239,226,.04);color:${INK};font:700 14px/1 ${FONT};cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}\n.s2g-btn::before{content:\"\";position:absolute;inset:-5px -2px}\n.s2g-next{border-color:transparent;background:${INK};color:${GROUND}}\n@media (hover:hover) and (pointer:fine){.s2g-skip:hover{background-color:rgba(242,239,226,.08)}}\n.s2g-skip:active{background-color:rgba(242,239,226,.12)}\n.s2amui2-win[data-bp=p] .s2g-btn{height:32px;padding:0 12px;font-size:13px;border-radius:9px}\n.s2amui2-win[data-bp=p] .s2g-btn::before{inset:-7px -2px}\n/* Pause / Resume: a square icon button in Skip's own style, never louder than it. */\n.s2g-pause{display:inline-flex;align-items:center;justify-content:center;width:36px;padding:0}\n.s2g-pause::before{inset:-5px}\n.s2g-pause svg{width:14px;height:14px;fill:currentColor}\n@media (hover:hover) and (pointer:fine){.s2g-pause:hover{background-color:rgba(242,239,226,.08)}}\n.s2g-pause:active{background-color:rgba(242,239,226,.12)}\n.s2amui2-win[data-bp=p] .s2g-pause{width:32px;padding:0}\n.s2amui2-win[data-bp=p] .s2g-pause::before{inset:-7px}\n/* The timeline scrubber: a hairline with a generous invisible hit area (--g-line-y places the line inside it). The\n   engine moves the fill and the thumb through --g-pos (0…1) on the card. */\n.s2g-scrub{position:relative;flex:none;height:44px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;--g-line-y:50%}\n.s2g-scrub:focus{outline:none}\n.s2g-scrub[data-done]{cursor:default}\n.s2g-scrub-track{position:absolute;left:0;right:0;top:var(--g-line-y);height:1px;background:${HAIR}}\n.s2g-scrub-fill{position:absolute;inset:0;background:rgba(242,239,226,.62);transform-origin:0 50%;transform:scaleX(var(--g-pos,0))}\n.s2g-scrub[data-done] .s2g-scrub-fill{transform:none}\n.s2g-scrub-tick{position:absolute;top:-2px;width:1px;height:5px;margin-left:-.5px;background:rgba(242,239,226,.26)}\n.s2g-scrub-thumb{position:absolute;top:var(--g-line-y);left:calc(var(--g-pos,0) * 100%);width:11px;height:11px;margin:-5px 0 0 -5.5px;border-radius:50%;background:${INK};box-shadow:0 0 0 3px ${GROUND};opacity:0;transform:scale(.45);transition:opacity .16s ease,transform .16s ease;pointer-events:none}\n@media (hover:hover) and (pointer:fine){.s2g-scrub:hover .s2g-scrub-thumb{opacity:1;transform:none}}\n.s2g-scrub[data-drag] .s2g-scrub-thumb,.s2g-card[data-paused] .s2g-scrub-thumb{opacity:1;transform:none}\n@media (pointer:coarse){.s2g-scrub-thumb{opacity:.9;transform:scale(.72)}}\n.s2g-scrub:focus-visible .s2g-scrub-thumb{opacity:1;transform:none;box-shadow:0 0 0 3px ${GROUND},0 0 0 5px ${TEAL}}\n/* Progress strip (optional) */\n@keyframes s2g-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n.s2g-prog{display:flex;gap:4px;height:3px}\n.s2g-prog>i{flex:1;border-radius:2px;background:rgba(242,239,226,.14);overflow:hidden}\n.s2g-prog>i>b{display:block;width:100%;height:100%;background:var(--acc);transform:scaleX(0);transform-origin:0 50%}\n.s2g-prog>i[data-s=done]>b{transform:none}\n.s2g-prog>i[data-s=now]>b{animation:s2g-fill var(--g-dur,3s) linear both}\n.s2g-card[data-manual=true] .s2g-prog>i[data-s=now]>b{animation:none;transform:none}\n/* Replay, in the idle help card */\n.s2g-replay{appearance:none;-webkit-appearance:none;position:relative;flex:none;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;height:36px;margin:6px 0 -6px -10px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:${INK3};font:700 14px/1 ${FONT};cursor:pointer;transition:color .15s ease,background-color .15s ease}\n@media (pointer:coarse){.s2amui2-win:not([data-bp=p]) .s2g-replay{height:44px}}\n@media (hover:hover) and (pointer:fine){.s2g-replay:hover{color:${INK};background-color:rgba(242,239,226,.06)}}\n.s2amui2-win[data-bp=p] .s2g-replay{position:absolute;top:6px;right:6px;z-index:1;width:36px;height:36px;margin:0;padding:0;justify-content:center;border-radius:999px}\n.s2amui2-win[data-bp=p] .s2g-replay::before{content:\"\";position:absolute;inset:-4px}\n.s2amui2-win[data-bp=p] .s2g-replay span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n.s2amui2-win[data-bp=p] .s2amui2-help-idle[data-replay=true] .s2amui2-help-idle-text{padding-right:34px}\n/* The stepper (reduced motion): nothing moves or fades by itself, in any visual. */\n.s2amui2-win[data-guide-still] :is(.s2amui2-demo,[data-g-cam],.s2g-stage,.s2g-sheet,.s2g-card,.s2g-texts>p,.s2g-btn),.s2amui2-win[data-guide-still] :is(.s2g-stage,.s2g-sheet,.s2g-card) *{transition:none!important;animation:none!important}\n.s2amui2-win[data-guide-still] .s2g-prog>i[data-s=now]>b{transform:none}\n@media (prefers-reduced-motion:reduce){\n.s2amui2-stage[data-guide] .s2amui2-demo,[data-g-cam],.s2g-stage,.s2g-sheet,.s2g-texts>p,.s2g-btn,.s2g-replay{transition:none!important}\n.s2g-card,.s2g-card *,.s2g-stage *,.s2g-sheet *{animation:none!important}\n.s2g-prog>i[data-s=now]>b{transform:none}\n}\n@media (forced-colors:active){.s2g-card{border:1px solid CanvasText}.s2g-btn{border:1px solid ButtonText}.s2g-prog>i>b{background:Highlight}.s2g-scrub-track{background:CanvasText}.s2g-scrub-fill,.s2g-scrub-thumb{background:Highlight}}\n`;// Visual D — \"film\": its stylesheet (prefix gf-). Light and titles live in the stage layer; nothing touches the\n// instrument. The vignette falls off smoothly (eased stops) in a warm dark tone, so it reads as light falling away,\n// never as an edge, a ring, a hole or a grey veil.\nconst GF_GROUND=\"27,28,27\";const GF_WARM=\"34,28,23\";const GF_VIGNETTE=(()=>{// The element is one stage width square, scaled 4×k: closest-side = 2k stage widths. At k = 1 the clear core is\n// 0.17 W and the fall reaches its peak (.56) at 0.62 W; beyond that it holds. Smoothstep: no edge, no ring.\nconst r0=.17/2,r1=.62/2,top=.56;const stops=[`rgba(${GF_WARM},0) 0%`,`rgba(${GF_WARM},0) ${(r0*100).toFixed(2)}%`];for(let i=1;i<=12;i++){const t=i/12,e=t*t*(3-2*t);stops.push(`rgba(${GF_WARM},${(e*top).toFixed(3)}) ${((r0+(r1-r0)*t)*100).toFixed(2)}%`);}return`radial-gradient(circle closest-side,${stops.join(\",\")})`;})();// The scrim: ground from 0 at the band's far edge (the keyboard) to .8, eased (smoothstep) over the first 48% of the\n// band and held to the stage edge, so there is no edge anywhere. The element is the stage's height, scaled to the band.\nconst GF_SCRIM=dir=>{const stops=[];for(let i=0;i<=12;i++){const t=i/12,e=t*t*(3-2*t);stops.push(`rgba(${GF_GROUND},${(e*.8).toFixed(3)}) ${((1-t*.48)*100).toFixed(2)}%`);}return`linear-gradient(${dir},${stops.reverse().join(\",\")})`;};const GUIDE_VISUAL_CSS=`\n/* ——— Card: the subtitle track ——— */\n.s2g-card[data-visual=film]{gap:12px;padding:20px 24px 0;border-radius:20px;border:1px solid ${HAIR};background:transparent}\n.s2amui2-win:is([data-layout=stack],[data-layout=phone]) .s2g-card[data-visual=film]{flex:0 1 auto}\n.gf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}\n.gf-eyebrow{display:flex;align-items:baseline;gap:10px;min-width:0;margin:0;font:800 12px/1.3 ${FONT};letter-spacing:.16em;text-transform:uppercase;color:${INK2}}\n.gf-eyebrow .gf-num{flex:none;color:var(--acc);font-variant-numeric:tabular-nums}\n.gf-name{min-width:0}\n.s2g-card[data-visual=film] .s2g-texts>p{font:400 16px/1.55 ${FONT};color:${INK};text-wrap:pretty}\n.gf-texts{margin-bottom:2px}\n/* The timeline line sits where the progress hairline was (14 px under the caption, 20 px above the card's edge); its\n   hit area reaches 18 px above the line and down to the card's edge. */\n.gf-scrub{height:39px;margin-top:-18px;--g-line-y:18px}\n.s2amui2-win[data-bp=t] .s2g-card[data-visual=film]{padding:18px 20px 0;border-radius:16px}\n.s2amui2-win[data-bp=t] .gf-scrub{height:37px}\n.s2amui2-win[data-bp=p] .s2g-card[data-visual=film]{gap:6px;padding:10px 14px 14px;border-radius:12px}\n.s2amui2-win[data-bp=p] .gf-head{min-height:32px}\n.s2amui2-win[data-bp=p] .gf-eyebrow{font-size:11px;gap:8px;letter-spacing:.12em}\n.s2amui2-win[data-bp=p] .gf-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n.s2amui2-win[data-bp=p] .s2g-card[data-visual=film] .s2g-texts>p{font-size:13px;line-height:18px}\n/* Phones (portrait and landscape): the docks are short (118 px at 320 x 568), so the line runs 7 px above the card's\n   lower edge inside its bottom padding; its 28 px hit area reaches up over the padding and the caption's last line. */\n.s2amui2-win[data-bp=p] .gf-scrub{position:absolute;left:14px;right:14px;bottom:0;height:28px;margin:0;--g-line-y:21px}\n\n/* ——— Stage: light and titles ——— */\n.gf-cam{position:absolute;inset:0;pointer-events:none}\n.gf-anchor{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}\n.gf-root{position:absolute;inset:0;overflow:hidden}\n/* The light, the scrims and the titles are drawn from the tour's clock (inline transform and opacity, written each\n   frame by the director with the original durations and easing), so they pause and scrub exactly. */\n.gf-light{position:absolute;left:0;top:0;width:100%;aspect-ratio:1;transform-origin:50% 50%;background:${GF_VIGNETTE};opacity:0;will-change:transform,opacity}\n/* The chapter focus: a small canvas the director draws from the clock, stretched over the stage (smoothly scaled). */\n.gf-focus{position:absolute;left:0;top:0;width:100%;height:100%;display:block;opacity:0;pointer-events:none}\n/* The lower (or upper) third: a full-width ground gradient, as tall as the stage and scaled to its band, so its clear\n   edge stays on the keyboard's edge while the camera moves. */\n.gf-scrim{position:absolute;left:0;right:0;height:100%;opacity:0;pointer-events:none;will-change:transform,opacity}\n.gf-scrim[data-side=bottom]{bottom:0;transform-origin:50% 100%;background:${GF_SCRIM(\"to top\")}}\n.gf-scrim[data-side=top]{top:0;transform-origin:50% 0;background:${GF_SCRIM(\"to bottom\")}}\n.gf-title{position:absolute;opacity:0;--gf-fs:20px;--gf-ds:14px}\n.gf-h{margin:0;font:400 var(--gf-fs)/1.06 Caprasimo,Caprasimo Placeholder,${FONT};letter-spacing:.005em;color:${INK};text-shadow:0 1px 2px rgba(${GF_GROUND},.45);text-wrap:balance}\n.gf-w{display:inline-block;will-change:transform,opacity}\n.gf-w[data-c=c]{color:${TERRACOTTA}}\n.gf-w[data-c=b]{color:${TEAL}}\n.gf-deck{display:flex;align-items:baseline;gap:.7em;margin:.42em 0 0;font:400 var(--gf-ds)/1.35 ${FONT};color:${INK};text-shadow:0 1px 2px rgba(${GF_GROUND},.45)}\n.gf-deck .gf-num{flex:none;font-weight:800;letter-spacing:.16em;font-variant-numeric:tabular-nums}\n.gf-title[data-beat=theme] .gf-num{color:${SAGE}}\n.gf-title:is([data-beat=invert],[data-beat=voicing],[data-beat=sync]) .gf-num{color:${TERRACOTTA}}\n.gf-title[data-beat=bass] .gf-num{color:${TEAL}}\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"S2AMUI2InterfaceLauncher\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"46\",\"framerIntrinsicWidth\":\"160\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./S2AMUI2InterfaceWindow.map"],"mappings":"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"}