/* =====================================================================
  4TRAX — a free itsasynth instrument
  Designed by Macs Moser — macsmoser@gmail.com
  Code built in collaboration with Claude (Anthropic).

  License: PolyForm Noncommercial 1.0.0 (code only — music made with
  4TRAX belongs entirely to its creator, commercial use included).
  https://polyformproject.org/licenses/noncommercial/1.0.0/
  Required Notice: Copyright 2026 Macs Moser (macsmoser@gmail.com)
====================================================================== */

/* Embedded fonts (Barlow Condensed 500/600/700 + Space Mono 400/700, latin subset,
   Google Fonts woff2, OFL/Apache-licensed faces) — self-contained, no external requests. */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(data:font/woff2;base64,d09GMgABAAAAADlYAA4AAAAAhYQAADj7AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoE6G6lqHIl2BmAAhQ4RCAqBsziBkCILhCIAATYCJAOIQAQgBYNwB4h2G9FwBdzxsHEAM2PnZibTzZ0C3cHlOxUqNwrJKdfu7P9TAh1jB3OHlBKJHWyQC8d2UYGieAOn5HtsGpUmvF/K38mIXY6IblZuZrHfeaDUkUg23uXmoyIjh8dm+QiNfZLk8vzT/+X/j7lqdzonVyI/8cgvUKmf57f5594X0MJ7tIKIGI2KASpWLVml1SyiWZSLKPanq+8qXJSriuH5ufX2/9v2/yM3Bqz5+2z726g1UctmgzGkRhp5KHqIijbqVZh9qV7hhXrRelHtVVO97MHNvt+kSAxSVRIMqXAgCUoTjzQYi/HN1YO/STrNSCcZiN4OcoGHrRR4e4WNRIhSKve/NdOvNCdNy9LIQBtCNIThcrFb3n09VdIYlsBA4QXgDJTh3Xu1pr2EH1pZXdYEssIGQcaYrN2d2Erg8aHxBaH+/j5zIS7hX/u1Q1MgeoWWNTEk0dIZQtR2Kvr2i6/A83Ojx/gsJIvNGjbQ1p7ZULU20STI7bjd/+9PdX33P/9TKegfVMoK4rBUpbGGqQR7psIHw3++/hY550iWWaEfVhSQrKJKtkvk9GQrwgQkCKsgGUKkEtOMZ88wjB17OqxD4Z9+b9PyOLR26XYlg1rh8GjGY9xC/3voqS+1uqyKJGptIiNcjI5CRyGT/N/Uko6s7ejSaQJgANuKUtAxMPp/pJFnJDdpd73y9nbetOIvr++NfM2+6t2UUmDpACaEhPCgYBSer278AAMMcAkzveiDBrYgzTQ5HR4mlG97M/0kCLaDEx/nEAUIaHfbzn/72Z+h88uD1rjSjeNjLlKCiASRIkXcuW17c7LNmuxBxfZ1Sg080BAVYG6DBFgWYGbIXwgGCgZjAUP/31VIfIiIHKKkhxgEQcJEQ2LFQqxSIRkyITlaQFrpBumhBFKpClKjL6S//pCBhkCGGg276SbsttuQu+5BHngAeest5K//4IGCyJAxAgKmxOoPb71tKAl0v/rHFgAxEtCZBiFQ5UWDQqJPOmbJAhBN5A3VEYQa5s7P8M0XQwprWO6FAoKea2v2I8N7j6klRhcILsQhBdKeEJeJSSAjHRUdBrL0DkJmXwMkH9eZ/qzeh/oDq33/L+JaJt0evolMZiozZzY0GG0IRmuD0apgtDwYLQlGC0Nof0XVkatExwTBgwcoVoiQUHfsDALDVz1MGCMJjTL8rD0LD4p26Vn8AfzeBU5pR6i2bzx5B34Tfg0NAgfhIL7ZvBZfiS+DRdocJGbUnrKU19N4Ag8t4NFslDXk3Ga8evPV4DQuxUvYXIgjHMKi4jl4IHampuuP+inF+t0wWJ/Xh/V2vVov1tN1oc7VToBL2whsdVnfU/NrFjEn6RtrZA0G9NWqQSsdT86vWdVOkkJBxra5OEbtFciorkVyQkvFqkYYWshYlbwR1BzlLI0QE0DPr/uL63Us/ysXYKx4AR0kv+VKvl5+Np/m/byZl/N8nsxjeQhwRrsTgo8NhTmQxakFzGC1Mt40ZE9/sFwLhqLD2JTdgDOLsZrKZi8TXnkFUg8y5FZmDR5Hc2y6LpxSwDWunWxStAc+C05vI3uxzCO5DSwEwuhgx8pJORoHXgbXc7yAbII0TfWhajcCTb6EXD+YK4AT+dQmvAPesdvNqcdY3Tf4TgbkW5R34OSWovFRL8LpVZ274BsVnJrPbVV9fjPwBXafIp9WfCaUyXZ1ftT5/AGskctJ4F+creph08Eqwth9DakGvuZ73wgbgCenv7WVczxwFuozMvR4TyLPn9W4uOF78Ca/9yZQ3NIyAAcJGowEE0IMFmw0ox0d6NbXPVWsqtN9XOWfU5rJkMTKLJQ/Aw8KyE1fu9eWgdEu2aNzC9bRcbCLd8E7dj1qug4yzv6Ycjvhtx54i7ObSNfGQ6KhBrkWYgSfUHeA5Dmef/0i3PJJdfD+O5wE+RczhnGRU78ZzaosMZzlkaBWjg2HDPSskQB9KtIWBOBen4xrA6/ftorutRc9LRldMPLflvqpMkH1276RGtahydSnwHWRlYJOM8N8hvSjLsJSXaRJTo9m7NatBlxH8oxd3ccu94ayRb5r/cXE5ZZYeOrUa3DIBZc0ue4GzA9JkG+Efj1DRMytnSGlwFDGjS5inqHpP3IYeA8x8q+BgrYmmMIIjRtTJMJvg8SIhVnFISRIw5ehBUrLJiKtbiZ114NAnlKUMuWhqUBIlRGoilB1GDU3izj0JdVPf1wDDeZmCNpZI4wkMiqkxlB+zBFJGz6M1hDsUGgXQrgUUpOUO46RG8/tLajz82kFJXFzecAXoQC8hPyLFIZjvHu7RsNQ9SOGFJF62bTpw4BqosgSYme40OnuMj6Y4E6AtaGjd0YnWMSJVF3pa2VU9mppky2hAVflbRZU40svKdvECa0/sf+njrH4S2CTKEmyFKnSZciUraVWWrPrEjy/z5OvQKEixUpCyIp0aE2QZKBBPaM0+pET4b1ARAgXqvLYp3B00i0c5SJ5ISg/+KSUVdKASRpJhh3UfpQV1OGINYbrYlcQZpNEEOLQBBbh13I2qUjpJGlfQR3IN6pirSFpWhXoAgmbG9KdlkQNJBhajrFw5Zkpz8B+HB2QA6Qt6P/F8Lf2OgkPYGFUF2azFOJX0egayrQ8dUmob2rSUR9N+9e5OkEUJ+eQdrqM343Tg2o3NaMUyfUQFzJlmpsIsW56Ir6TTnmuvt+lMEcnVQTNIDIyNjyTURIjNp3LMLXMM9hoHzgko23KAW17Ku4I6h3AxNYBY1vLPqBPEpqY+OlKGYMNjwcpEXUKGwwrVKf6Lu7J82xzi89BSTPp3L2wBZFFfP7ylp6KDjldgXfAw2qtwc3nJly4wvSwLJ9VT6AVx5iy1zAUiBWdDPzBEN88pJ6oAy8/NJMVeloEp4SZmfRLBRUR3Ynh3mG3sAmk+mihljbph6u/UiRE9edQWNgBHgQLAQsLAUaOBhYCArYSwhB3ppDCpQ7z0HBQIkaCCAViFIhQ4Aa7USKTauHJHOxRIVGUcKvM/1PUDkWoMWIX5QMCuPCLUrVLQIWKBOpQxBTBlKGo9k+C4ENIOqZQC4GoSgshEZJyDxy4vTwRovGdVAUsHKE0RT5DhKiFIC1+BUteLWRGTf60GcexNTnD43Vh9UQQft0e0k4uG3FfrRZiaCV+4eLhE1o7On9IKRn58OXHX6BgIUKZWLVUzWGAISeOXwieg/RbFDYJi55o2yz4s0N4WBkTeG98/AKCQsIi+mUNGDRk2IjRnj/mC8NXlqZJMBdJNZGxI3skCmgcXDx8girskKhz8lMQIgUGS0ZOEWWpytdKPx3NO8Y4KqLG0NCpSCUJ7Zph+tAZy5VJsmTLkauZ5lrMW25Tq2XrvmE9muSRfAUKUwTFSpSmrJxypEKvcl013YJBNdvk2KJe0Fsfffd+G9e/B0yw/MggGJwhMqv1GUl11LLVLVD989BaNS7XD8wRy6bRYsasj7rBVA1TNF4zeLzh+tPb64eIIxMO0oyGcRHymQhhMiSwJw0Eg54OQZyQOph6MAVfWJUOCGGogTikGB6EccahU0LAAIOF36xzOGq/3bZab6X5ZpnFabyRBusrX1d2iNR4E0w0yWRTOE01zSqrrbfBRi6HPIJNmGLbFiFOYLBgqt3T7aGyAg1xrRPiApQCDQdZH79ReBPJc362Mi4QAqNPLucytEfHZmgCPDeY8r4eaOXkz0XcjN7iQDcFat/sSRJGviVM5V/tGUfb94rJ9p4IttUfdGYShxslTz5CREnASCep4+oYBTOLB6TaEY6r5S1IpDi4P5KQjAeDQBGs2f0RBFjuvAQIZ8nqYHwMDd0ek1hoyxjCI6XmJ0wMEuS/jMAkCRVfoaLZfgzMX8S6QMaio09dOJ917sT/WLB9iHXvWHXy7JF+1qk+CwfmsY7QfXQHvYleMzZtPnXp/CWstex0ezGxVgJ39t60bAggRFRIOZSimBIUUZLSIMZ2QEBBGbnIH8zZ+7z7jGfAvCvTMvj+IqKJ0HyTOfhC4qGYgdgYY4ctWWChRRZbYqllllthpRZ/klGCvNicvsZa6yK0ySab26lKc+hYovm7wfZBTHi6UISIR2krlJGGBPDmZY08hdG0Ex21JiQdBQm+YbCuhsLsRiK0FDhiiHZRGI46t6H6AhPtygr0Na3FL6WP7jIMMt18YAIovvgICAMJBQLMISAssFJmg4clI6yyGdLQpRqhuttDC8jIuE46WWGcadoECwkjUCMEGgTXIHLjgkhXWaSqmt1wamQAjE/sGCymzfZLD5RAg+EKK/wvYyByaWs6IfNAPsNB3VgdgZ3GS8uhIgoHTJyUZzf2sOz93dEJDoIlv+DP+zkY1gqzOEB3AfL/OgcsbhsC6jM3AhLIuhA3PC17uWmAWYSxGO7f1hppU+fqeL1d7zZWG9qMttTiAkpMySmaUlMmqoFyUacSmubTxf8zMAs9E6vlhcdeM3JmQLQ22aeIElLSnEaqHnMRQ/fhDp7N6a2bm4L/AuD/P/tRM+BHf390548++7niRyf/yPSB/uPsjxOAANYF9nQT5N7M9yTkdkeYWzPLu7XZ47qD7nrng7cccdQBj9RrVOeQnXZ54Znn/vceJCTiRkpBSUVNx5OeFwOjYKHCmISLECOWhVW8Ew476Y2z5UqQLkOWnPYX1slpXXNrWasLOnIc0Ar9X+yYn5702i173XbfHQ/88nNyfLbOZa+c8iV5vvnaVtvieuujh+PZYqwr/rPdDg24KDQ+Dh4BMTkGS0ZLw50HCW/+fPgK5OeJANEimUWJE6JaMptEqZKkSJOphVzNNNdRW+20l62nIvkKlCj0VLG+eumtj0HKDRak1B//+C8clzQ554KLzkNQZ2YDZHZALT5t08J/RrD4f4DheFB/A9DgHJ3VnzYU4kRpCUMMnQ4py7xBdkSTz82FcZqi7ZEGj8YBfqVmSXnI07SardO8ELRRY56cLEKKC4SVy5FfXX/qkmmHcos0vS16dpko5ekiog5NzCZMNPdKSHkRSEiqCXFORDJYLzH6n30CKvjT5Uwnqp+c77p5OORwK7WJmUvgwBq55HBMW9u1ROvFFd2IIm5e4vxrCqaLgnOMA6lqhUMufoM0dsHFovg52m4rEluILMZfU5tbqCym1wTmeySrvw2nWglqVd+k14GGx9AktPGa1quczGOj64rWyFwv6yiqXuwvF75Ybdv9/K7hSSAyCaLd3hAMPr9ZCSF02zZS65vLgIx/tY4p+lYK5Xp2RWRnpC8wYvFDmcTOMrdMgggCSETRCTkBawghEIPC8kwBQR5jFhDvlMo4hqWQARaXJJOZS+FpQzIkFZDEBTUYkVg5EIfCsWJi1zXFQa+KMPPyRZHjUnLh/7Qb0EjbSamuIWIQaWRR8pjpScdXPBijYP9Nhxc5QWmAWDONthjwW9j3NYJZrDT2EnOJXm4iu6nykjkf6Z3cDSnfE7M+4VD8q1xYHY/eGdnPaQdIos2faZFkTo0KhTIIdklsKi7ZmhOQ8jpWhBK8185/I9Jrwrh4YjBUegdAFBMqIzu0n5u2GVDuqv/bPMrpoZsD/HzaJIeu9wSKNALXXj1N4sg3kKphKg/YWLTPrTPLzQVRlcdc0jEtkAh22fP1glzg9CLFvnrfIX4OBLkkaRNdPXqfa7uD0ojn0IAoY6FaqKqXw8I7uig0ZLcaN/mw6JODE0/Ez2lu7nHcJskarm77LKSp+fq/uVWw9Rrdeidcxi4nVPpR1fAkjnuVwrAVoa1K0u6EQDh2f6fQEONDm//0yqA2pa9ZE1in5OX9iBHSmwxBmj3AeRurg7PO+rn8fgX1kmQmwg63MMRsKk46S38U5Dt3Tc6aSIi4qZ2cmPnI4CmLIaB7UqV1HsBFIOHdgXwk6jUE1ulVUWYe3kWucPzOusguk79a1AK3k1KY2+UlcWGoIkHlDOVGmJBEIHsbCon3EZkjgM9hwK5rElnAeYtc4UIctUEyyVckArdi/lG77b1/GQ3Xpiz8OWCHUq5/gOPAp2ivYBkKKmj2t6jLqdGAINU6RtMhSVTHspvVeQY4YaqnE9Pfb3SZ5EKxL1iXwpsjxAgxHsJEDUaP1BFwyps+AML2nZeX8svIfBxaaKKkUDnZbEVNuWUpP4/Vu5woDnv3iRoBOLgtHMvx19DJOkn8pFR1qBF2XFPTuyQC1h8XdKVgIXZW7WAxq39ipkfCquIna+keUglwNfNImU2ayDQ7DM2hKjctZqGL6H2rEsXcYr2Eq1bOSVlEkkAKiba/+q7Q3sad5VYngk0TOYt1RWC4sSD15f+QIawqt22NF2po+0KD/omCS1j5+0zU4eZ3EuF/WWZMoYDQWGFsfmPsL6wnXF0mWaLtUW2gYuR0oolpdKnwnNVGVdKdYg5Dim4FsN4pZE4EWXPOwRaxFaVj0ubW51huIbelo1+DhbTs499gfi1kZuK3jX2SdHMX9VT3ZdmPtGWENDXqYnp2s0wbkA2LDsXtd79fGUuM5dcyUqdxLLWQ4TDLW5B67nVaij3Hob8fpFs3tY72Ahyq3lTLxpaJnnNI/tMJekmAxQ9XVy6sveqLzU136CCk2ARStWZSi/Usa6oY/rwPsAAnUTNfSrINxRv0FFmy2IJL+oKHGHspvVaAfsJC5wYlypmfiyycNdf0D7pte+YdtXRFH11fMd7lURfMP9W9ks/anM7yWAELVroFvpqPefi/5GAat5B1Op/Q1kbU0ooFLIRM0HKwFC2F91T7kKmk1NZdDdm99tyaqSR6dWmMScJTjSqrmjI9M4AicKMms5hn/CJLJinF6OrWl+XsELzukEzjYpNcGnPnxfs+dYRotmgSgFvy55kzIUtEelW22oo06hC6pw2Ftjy6J+v3/6VdTj0OVo64fNgrOvgPQlUIPPFWjCS2Vbtkk4oSSOXGi5mSv7hrYzH4KUQdpY2qEkxj69qRlUZ+q3Z5EzbnYD5hDizdhaiExdkiI/BbrzeKo0iEt4os0+ZPdQQeE6M/CroHni6TQZPb1giGTn+ElRFtcedAVxHqH66rRLC6sF1TW1fl/8II+ZWFF67IbjFBe6xFVtqcaPp5M73iG3STZlu0HA10eDtSIEEptyAFSFftpPhCIAbozbe7yvPrGGLvEyD2ITL7rf35Y/6sblsx1mZ7h13O/GMW7JWR99nCeEl+faI0VRy15Dotj5f+orH9xJXC1eMV6I9+GQAKbEucfhpXPnFza03Ok/dhjDsNoNar4euZiBrfw8zF1ZWVq+WqD4G1tJE1SRbsR9jiLWbt72uFFNGXAzzfPVk/58S8v1ARoI3DPs4Ls544wy/QWApVLV/pIfwhp371S9CGDreV2aFx/ZaASRYmPY4sX2GYZqmsngwOEFVhHzcwhtepFkcBSohaefIaVXSEMIvXbBwYzY3lHHPZg47O9FOCptwxyJwvOBPLK2nHXzDTeqKmJ7okiKaKj1exGeG8Wyig1esyzlB4GuMsbHhFJg/x+plODzS4WV6gqzhpZVUIXbh+4LMl7XqxIp1MaL0NRQqoI6Oo2e43ttCtnxpf0IfYi4r6usW+3ZnQhtERwJUvv93aWTLMaAma9XndO5q7YSMJE8jys67/qeGsQ7GshtIFiZijiVZJgaiLqEHJVqeHni+OSzgVilYKccqH0xD88po5DpWDLwmQ0gAbcFbgpqHInYCVRYWIcrArvZsHzkYarmAGZDKus+FTfE1dyCeGauLiUrxe10EjQFMaTdcb3BW9OstCYAabg+vX+diiiw1JMZB1p7iA05GjkCsJ/R8JRKt7tlhTG5/2JNKZ5BYKGdX1XAl5dO1tS3iF0cHWcGLeC1mOrsQPW7c1e65zlspMKXEmfenWTxNfxJfbNiMaaJkXRAyaiUSmVzZKJmGlhbhBWA8iFMDGKgYVpKyVpX8M1dLjuhJjs4e1bs+kAwbQ9oTQc2QHd2vnJGneUGNn2C52fr0XwXqU5thuzdWfFWxMoZPL1IjuzJafwGtEP8yaX2ti1KFN13wlKh2F5ltSSevyKo3cDpBcTivQiYAi7WNUKzu1HJiWc5ECEeBKU48M7kLTs4GkwU+qbf+5dPIsC3E6FZLttfUrav9OEUSkeBJTCm48Ci9+gGsAHAMxShARIeAUAC6cPbPTnJpGf2L1oiNUYP/2N9WtPzWN3tTC5MZv/AlKY1b2ovn5qAMMH2prf6L3Xi6SjY0YV6zIvqTqtUIvFqZeeAnHP0cQomO51Oui4QVekzTSWLQ9RtJJLU1TaG1+ntWxRUAlrxxs+rwZZdDKvCvHrVmMwqJdclXDn+UTXm84VPd6w2NRQ/Na6fw1gWCvJhCYR6WHzpZRtpZ/di140BzqVMFrjbuKlXEys6+Qk9xuttnKST1/1t7ABe36PknanUfJOo2l3t5Kv/FHJzgNBATTWMG57pEIUtTKY/+2g7m1qUpbn3YnjfMal4U78nMU5jUIB24R28F2k+2CvuNEvnVb66QnrrM2F0w5pxsH+z1HW1qWxnneekFZru71Mo8Pfvu8nNIhqi9GjzK42zUnEYMgwgfM4q1oRYYGFWVb8qJxzADIXFjtajAOxAJO1y7u266LZGopuNRhiDQnr1slTRJqsydT5L8RNqPsqcAUkkLNPL0bQ56rsrIpF8emVQTJyVzzb/6oe2HzNVBrsz9GPeH0IX2zw2wGHjPFLg6+rENpNi6SjTK8bL6W5zBczSbJ8lNFbbmW4FRUb+thZY5PgMklSSI7F+mIar6WjJCmq3Y5LCMC+M+wkY/Cfv+ZyDocpblks3/5D14o+TR677bTO8Dsf/jexfhj8Dv1wwNHt2zee2j7yt9a1i3/wI3x+tyvYoT0lnNbSzZH2yIAXmHxEkyBHbSbUbCEQCG2G950VEh2IuLmoxhJRs49h2/AoTPLwliOLDg5ij6C8C2YphFqNU1D+DZ+RE1NCC15PdyD8fVjDBFlewTlRxliAKHWzw/ysWshBP04ZF3fD44PDA8kjyJ0DKHbu4Z7uuaFNA7DeGWqMec4fBVCW02dydJQY1siCNc3mGzVHgi/htANbuBms4mBRLY/TgMlChEK4vcl1n6kVr+kXaR9Sa3+SCueYy9IqBYW3PYrd7V9oR47stPjZm7Z6hmZAK4losR+PafQVcw8w4I21NbzrcYBWsyc9VBb/1CHo2ON0HYolYA+oH4be8R4h/FDmA+GZvrY0LcihJwQihBSIySCsFxGPV9j0PjU1ztsZZHW0t+g9IUE21xJGvEYcbWCrQr6Id1CtqgMMMSDBtkt1b3RBdHVLx4f6I3p2EWVaw0fKSP3AgjjwBaEjiD0YHSgygOaZqSVx0kMhLeqUwiqK6he7wKGP7iK29cXjZZD4poLSuUFTe6MDUVz1li9ta3E9djxGg83wbEqby/GsCObcIJsI5ipWmgyxoBl1lDh7YLwQ3tmNoDlM8SqI1/BcV7vvWoOR91zDy9Yf9CfgOsZnQEQjMyAjhkUrC6hnWCOP83SY+AJATXlUzrxNKbHnwQ3cgcG2rrbBgYTbYODpzooojCJXyqGK37RMJ/6uJ8y4PhFrdyNYeMNnIRNO/T8gdp1R8YYKsjnj9TJpdL4nJ6fqFt/W+ELOGTd1MYqmqxw9jvCAm6+IQsqNL9UeLH1AkzBG7dX+qp0CWu3Vdfmq6q0beYpsGLvns8qpkHxPed6FmTSXXODPRDS60SOJ31a1Cq31hps2gCEn0EYABWqsFGXadRkzgt215/+6Mjm6k6RrUBJ9dznD1XNxf6RZNLt7NujwLsRCiPUjSv2OnrdyWT/SDR2j+5xpfJx3ejoNkGQ6dJiuCcgXiSnTWGDLtPQapr1OI0NGXEuGTk7Cj+EMKCVm61ybQBs5PZlY2KEAggVV7+uVH5aIdu69iXVzUzQFO/tCcf6htpEnI2UVL2uKr+7UnPfd+eeohzVyf7BKLhtBrUitA7Crke6MmQE7ORm53X+chfyX81Xauarmv9m6v7SOTAvAe4RXpuiltWGiB4OC2PN4gjJWI44np1AKbBfuJ5NosbYq3W8rxKkkyRCNNj/qpCIsN1wsio5LyEMvsnCMe+bBOkFKo9gOsLnLyouokUIJnMFg1jnFUYpJc1RDJsOQxh+MGZ+SAacAkgOp9fiXDJGMskiFmStKhNsObrYAeXbejQZcrLVXyAWH3vfyD3xrQtkvsz4wB9QcFZXMLlW/yAlmIKnddW329o6RmOpBghluiWUiKdDKI5QtCvq4j3QqHFB2Kz5S6s0yUHpDe3dvpQTQk1FvFw6pSVREEOotSfoCu+m6SYbpQtkOrzrEfoEwlpqKyWOjWoW+YnriVUJr9Pg05wQYA+nmLqX9HALhCblJEVtV5pu/UKrtKk3/aYsb/vsVhhMBi57Q+12IUvBU2CFgZa2y5ien7BUr9lOlU0qLyony6jtyotgAzeT8l/yZjrCppBa49DloSa5kOz2klJHVLpvl6EEAXdpgb0rEQYTndyW1LkjD9rpEXPVr+VFcC3RgidtO+vbE8w2sOBb7oRtNecGosSWQiGm4Cl+FDpC7d7LgVDSIfxRxsAu6YYHmz9qHpQ29DFWbqdAYxhrmodtkdt6/ZlUJJJJ+R+uZnwepsKwy8jefV2RIijQc5gOnLPkbjtd3cCDmAl6uand7WfThljJE1PaiXOzdp7ivUkFtV15j3I7pZhU3gOufh19DKFVOUlJ4wGG8ONsN86xJX3+cCblu2zurJHODu+Gpy5XOixw4xNLtQKcAOfAHoSMCHnIcRIkx1FVIarnh7jTH2rLQ0iKEFK8XQVE/6AQQp/O7l2ydN91yIZy4liTJ1iMUTxZq8OT9D8d8Cbt9n95Ckys3jtPeU45n6ImfehKCjTjjmSkYyO9x6iumVKEhBxW8IOFtwMa7SAUMkmls1tGyza1OodfvSOj8wDNjOYVkWiKU0qclm7Z3hjoLeB+yAUtwkBQ6wfqF+dp5tWt/QRuwNacd3MjHKty+FaaP+7FuWSUZKJ/sV2N7Tx8T6+B/qDkJ8Md6Vh8E92JQKVeTsUqgjP4FfnKijAFz2IRhygHS48b3lOsPf2KSv4yg7tX6yb9G7ODzMPdpflbv+b9/do4Rzw5e2jxIPP+yeJc/5/034+PpybUyJ8LQ7uPdKmRJbb3kq+rPVLWtkt1Qbn7c7eiC6ptFFibV1r0LKtoo/lSIAaqv7bjYf8GmSFBbnR82iznilS9i63XV7TYIP8xjvPmfowX/lmi2K7ce8McnDf4kkD/Go/aptoKxj9En0BoCz1IcAEj1z5v9BRNn4pFjLBFH351PRwJX1O8E523bd9+uYvSY+p18Ullw3bJNYxrgJ+i27ELWbSDfRlFGdGf7xVhEkhcB93JwCW/O2WXB/7mUfg3NXERWcrHOOT/XSdXr5msD5PK1pyvsORS7ObtfPIhl0Ld0c+exxIPCPODxIHHCzj3fLy9UunyCA04hUn9NrCC3WyFFhIhL0JcyU1lcqe0ZDfV0lczUe1KBn2BZNiJI+R+J60peZlFUjxRGJ2Kba2yp4MhYEbfZNvnR2KzhtNm2vOTw1HOdLZ0946mBUdVT4Zt3wdNjRqbvQShOoSKFc6a2kmVwm/5E6EQ+Os+5IFQpHnkMomQDaEym83gadyzovHYy7QYIX/x4k98EyD+p9nxZDjOe9/R5PcFh8vPbLzdRdsqguBG4dVf4lwyhQhvO4ZhnnYhmQRst2DFFwRKg7XCOV9iJOlHRHOahbFa0kLSgQgbZV6VEc7Vg6SwxZtY/SYvgXygxCpY/j2fv/wHFs4lkqTat5MFWf6darKNnR1s/AcMG/+etLXz794au9VEEjBPWmAjQlfs/avh6h8wAiUQ4RvFMMw7KiQTzdkKm4v4LpXDIWlhAynycFUPOVh87A6EXAhJEPJyVY/+hDxInAE0WBQySWXGfyBy10/yZhBC9wZCdwqkofr7KKo5RJ1Y0xb0xllchPQIcak7qygRMQMBwiDRdZxKVLe8Dyx76gcRp+KOPTtC9swx8P0Os/Tz+OPOxShFR08utJv6TwoynvQsgJAMEcBY+eWCnTZNxuadNPNHYtbZ3eyouFunoif9XhOEQunqksK1LQQ6z3ZDy6VK87PG9xGqRojAFDyfljlRV2+raiBv+tvRQKgWfy0qXSqY34feQ0iFSItBevQBw+aaZ8zmZ2o2G5421z5Surr0EUHxfUXx+E4RGQWA7WT/UCqTMmXxePaRZENVidcqhytfU6s686jAshlOzG0t82M0SJfoOcJaMttbCW5M8bHP0B7jyUXIQZi/69lsSjYOuarWKxRXIQ1CEYQqsEhvbzDYNZAw0IP1m6LL9B4whszGzR+EnS5POsi1u+juOgqpuEtal29LVVs3TVSL8t6kISxv91inzoEi7FkNtC7G2EnavvSax8ChwqD0UhCeklVPneS3hHWw9NqTDJnI0W3awaKxbWdmNNQCCqyD1Wo3x9MR9HlSfuSrYiajyvU2SE3xbo1u9fwaceObGiJ8I1vRsrq0vgPhuxjF+7mkrN7jIWxg/X+1pJ7t74gGXO1+0tutAe5od0/Ym+mJlizryeBrE1LFWu0CtuP5SleqjevunFNetiDPVlub54xWMPo8f53M2w4G3PBYJ6CxPRBqzjRsYIyIZ9vPiYmOZUrJGDAscph+idisbyhjDXW1sXrlV5ZmMRowGi2Yr77RWxeuNBlDOl+6qb4Ws5y8T8U8uIxbUioaP1HOvCWtrCrbsoOuuHO2pFQondiqU81ZpRCJTQvBosOGdta0hTrbk1xXrEpdvW7t3anKXqvO3PHlZaq0DQHgenJgOJlJrmXxtoFtRkRNG5P4DO/1M43684rhis/V4KNsuT5MUXiNVU+QLiJ7gxMcaugVmPVZONaK8c7J+tYRR9UZZfnBbE2yveFw72C8z7/gvbZlv31tW1Fz0+i1nX6Xr8u0TyjXUR7MDpbJ4qvGq+oOT7dI8p8y4tDUnvJuOsfjY69n1GVb/8DbrS/82N54A7izoH9mXE+25ORj1z1iu5DZmOG6O4MBX4cfeRk2JMgQQnh9rqelqcDZpqzc/l1D2byJHm0ln63xe5iC92s71eD3kDZwUzmYXy31c/yZSNCT9iFvSuHG6OuJ+bt7I8Wbkae5SaY8rb0eo3jcTFmTz0s6Oxcx1QsXxqVyZ19XTWWwbUhuywmDDS7zvjTL4l6aWb0zGYaMA8cio4MdazF9Xd7WWF/XVmd5o7a5ghhrIpoEHQ0Ntb5YldkUbTb7nIa6dLHx3tO06rmNTKmwfuOQh8+8Ga6usd14O628b0WD0PLHnYx8yaRBKm1bALY2aj/Now/pKiJmY3c8JC+/+PjNKWsM+EgHDjIGVSvHn4mGvB0+5FuoHtuV745py7x5gRZqpL1JXb1wYb8UJLmXTM+bXjQYX9zjfGDwbRe9LNpeLMjerAJQf5CrR+g6hKoQymA02ICRpIzMngJFiCHM3gG1UCPuKuJ1lRYjVI1QKbhNr99SZ5W5TGH+bAuLj40hpEToafDDbcKydoC3+TVV6+uLchCqRIgjK+nky27oEEuM4wq42JA1p1LewDBPgpS3+CGE1IS5Nc1X3CS3gf+OIQahfAj7DMG+sGiJApbGf2NIfY4u+DWLxpwQejnEmyAffLpDItfXz6+snBUqZaSWC0eosoFWsahliTy/uUlD1CD0xZ9QzEvLKgjBEkzBS9Dlt3vBd7vltMOT0WnrltvLwHn9bfqq5focBbMQJcEC/tx1TTCKZ6HphzytfXgzryRwrURyDcBb80Xmq2TXm7fBDbOzAI0lIZQjpEAohtAFhDSYKNvNEDXggbcd569Ll5R0HvAry7X3JmTy+KoLRuO+vYPFor79pnKla98Inze65/xQMo9zNaW4mpOXxzG5Cwvb+fEPC3BYwFF5ebw0NMM0j+dVgc+z+tv1VSv0CGdyS0J0nnvHTKFN2C6jHZ5OXaogZqNC6TWGvA3SKbNE7rxGAtZZlUePebgGzjgyYFLtuPQ9gnTkiGtMulAVCES8MulysWi5VOaV1u1P4UVvkMjBdkP1GwSqBl1fIOLR7ZCRqKgHnx6jyD0P2HNxnPdSo/4M1SvwkZptIR4BGy8hY1U99S/GVI0plLdUtUAmLEn2DUdDXdm2ytXc2x68WXKAsL6o4upOCfjuJ4VO/YtDyLNcf9j+4Ug4EwgGbvZ4jEaPa+HcYkgW3DqN5mKKwk6rnW2hijCOvbu2EBbeZxnzKTqXdsKjwOZdmZwM5uIKnpQURGFgO3oCCHSeAgdzbFygPohsbMjfAnFz8vni7GxYspsggwCmYPEOiK/EaMHFjvrESmx7xclMsJ/f6ZX5ymgxQOyGF44xRJB9HwBSXAIFCeZFw2DFIDtg1QXNb69aY3m/Imgl/G3QMeLVb169ovr18hiu2rHjT27Hdya5QGas5q1eNW+UR1sUAp1TS1/TnTg0RdajNenY5WXzbMYmFooO0vdVb9ptd+g6Z+hDIuEaeW1AOTVpQan4ED1TvXmXw757U/V99EFxqcQ6tM5fdlm78/QaVE9Ond6pe23pfCCeQqsQuvM9/ySEn0CYkq6+C9BTq/IDU/MwiaWq2lVAykXOnxARBfcj1fJaik3BQBGq3aspKBUAus7xGENac3Q1jxIoMKWzEanlqnVw/YzO7jjrJCEZuFVMRrIctOh1bDeseLrC4LpaaFbrwQmWFQK/LcE4pIfr6d3LJ/irdM3KsSp792BYb9+Jp4mX64Ee8EKfiAsA3yxSyHa450gb+PxGi2pEANKPEHEekX60kPOl5nWlDLIMSD+Lze5khLzQE6dbkvydoR16yHKft30wLDfU73DEWy41ORI7GSt2Rqx54NUrVNpup3Fo+vItme9oxQ+tTe8q6IeGh74cSb1L802v6o+f29ls3J/keVNNUysdaGsdb/9z2bDb5ZZ7uT5g9HlNJq8Hx3xeoyn8VICNo77ed/UQ2BGyIATsUP9XoNvTflrjC2T+rCMeMBPfZb/r6fVeTU0OWANpWjzlR9cThLMj7Axmsol0Q6yE9lohNGOqSMOsRKY/6O6Ict0YdypAYlwRnZFRcW0Wwv05uv0MeYOouhbkXrIktFcbp8CFBDtvWwtehJCdmyrQqGux/hci1Hqs04q+7rlxWzxQ4MW4i70kRghvUUqYifpJCLfzyfYEfao/z7s4o1uZZvGxqw5MZK3a0JWspXjDrlO94YGrK7iak0fnWITxWRPpa63bpUqB5JebbC72AfRH0w129CErQtsg3Ibuy4BUkDvnIFIHZI4SdDZLdwSCTp3qGR9w8RBPKOw5Re0jm5FlaQqx7bo7ZSvls91Ymo0I6nEz9BHZ4lWJxD3yANfPHnTMuWOAcBMDXVOwo7nE7Kpufu5AvCzhAzt6UAOH1d1E7GoHVEzdFmbejd7luLQpV3fEv2HzmOa3K01pd8XdZSVFBy90jD00ZimqaXMAWY1u5XKGtJHMquU4l2whmWQxC7JSxQzZDMpaGvz4GKCx++7VezoM94yKWMDRXQ5G7dRqlskOtYaxh0yHRisei2OUuzzKBcfUpIGTrcj5slXDWFVqD6PxqO3vLMJpVGbMwzJyaZK1T7dHpap4YVvV4O+lGzz+qZRIl9vbP8ffStD0a6dL9Wf1PJsJJ9zrpw35fz8XPcYlyBp2Oy68wM4tF8g0luBqpsRdPzJa6w6sCSY3oxRTGmycN1jbVOUvXWsEGEc5cBDb2pqsvD426fVuzPBrc4fnHNifmWX45Hu/BJJ4/hIoGC0qKdAq3QTXKZ5fAkiyZZckXsSFNG2LyfWJnvaEq7knQxUpiGPiQEfa6+vqDDS3pCeoohpnfaTIpJoYP1u02LB6rO6NYQyLzKnrCyhF4ivldKSdphtkatpB85ft49PVGaX240qweyZusPnKj+oCMrRVZ6HeTSauztgqhuINVrD2+XSH7yp7WhBslsoitOzP44U3ai5/XGm6fbja7khXBoyezk6/N50BvjwvzUqqWmWyVmX5sVM/+a3oiNVi6d4Xd3To3EZvZ9qnnV38oLxcPEsheKLvMCU/BrXAxD3c031wcLD7wOHuoeFD3T0HONWeg4d6hlO109HIdDIZ2TIdaW+fjkS2NOp0vO7tzHqZ5gCTp9PJGIgQDyFU4OQVOgtOFBp5PEchypKBjFwHCp/KGM1pa525K2OqrV3Ew1ZnlSIvq1bX7dZoPJVajcvNVOhY5NjaSsbj0ejsO3fR2Pb2pa1bRDILMDwXwiaEChHaj1Cd8H1hWynUQijIeQHlPp8jAPnTSIbQY4iYHBBSqLzUqmnZrScvDJYj/4LjPG1CDdlqXRsveH9FSDU/OTWp1veyIMvQCzZ+7NPpAlVVOv9hr6wk8EMgkLGNarWzNZrZm3NUc+ijz3WBlc+qh97ATqxGQbW898wfcjVTgDyKzB+dQkTRZQ0aUKCWvIy6+wp8twA7wyXDpLDiUYwk60im5THQHzruSxoQLoxDGgiLf56ASzZzPc1zwW1NVuW92sNt5lgxlZqFMIBcm1ppG/FwU1yPc6QI4xBVk9VOFmStko8Gbmqy2fV6m01f06v6EFizlC8S8YVCenhSaCEY7pgtcuQ8TuTp9hQtNp4esr6wW1Q489fy71/HuQ3X1N2838iBqm/eLAGXs6gGoYdRtrmBT2MVHB8+d11+nqOAF3k5vXTR0o7mFbQmV1VSXW6Yb11zE+i9TAeVxRKFWKyQiDsPIN76eZs0UFzxaqt1fk9DanLFsUHkv80FystOBgIIjm9IP8X/eAo9GFgSCYyTbOlAKVvllH35m7n7DtSyt2zWdchZmlQd3ZWX0gt4KR3npXQ2qm4aVyFbJfvy1/87BNynGTQLdzlmabQ0WhotjXnQdchlWoQCui8fQa/gIwqFFKDzaVYZug0ksIaqjUEpW+U4CfWGYN8B/8/eskHXIafQnOzJBj0rR8vqaJbPof+hbZrGQchWXu3bX1/1/Gd6VMb0CkfXz3ab9+HXGg3zbLPMs8yzzGuYZw3voJvwDno876DDvINOZwwszYqlfEwT2BKy25PyXala0LmdObbAnoUOWAjza4sKfrG2BPil2jIevxxWwAL1V6rg3+DfiP8mg9XAUlyOaxYWtTYso+uSlmes7ZgYngeP/TO99FHM7+j98XZx7B9VJa3rWudRl7qOSTQodgvW6Cn1ndCL4P+fMLgmJFyz4MmbcIaUr8eq0B5bz9cjJhyPQd+CNQFL+rcPmn/sJ9ASdeOKynIuR0tZw6poXviXrPC7Nv7Rxk2l+8KiK3JjNwEDfwNgsb1ePfJ+0UeP739gZpDn2pBxY07E3xNGsMEtYcDqBGIx+Iq9c4BfQdvcd27uWHtUNOi9No5pajIcaswJwggWOBQGrE7Q9VAeBjPg0lbVOWjkBejYKOExQWwiFwZZX4BdvYH37L0J+CZE2a9LTAVyv7FP2PUaCJ/2xuMUpCMcqv9COU9nF9O0kyAFCvBMyS7SFw37AjXIp8Ev1yG2qRenmKpYX+pxTCoyOpO7dxysSep9PUSQg39MAngSrE7m7V3ABd6VdTNeE2MIn437bDfkSS373ZOhaZP3LYkBdY9WAXgMNPBL4hPTM0aKRtrZxbKxTozu55Z1daGNm6Xw8jXs2zyLQf9NZ6QUFd2eE7QRtVba09rXopyhpWhRBUH5lZnXMN2sMKivUF6CTddAecnJr4+x1zyWOkvNYiyEz41a945R1UEIyPFnvnt29dHegqa/E9z2K8D3X/+5L2v9J+5z/7921m4PBmAMAwTcCMve/lYgdwtCnvpm9lQo/nzvQOVtwrj1NeJ8nq2jTBm7Ethv7JELFrLGMrnldBuIxTgO2r6409guYeR5bMeI74sCuZ5j8p6Zz1h1YYiOSOiwyF/0MbY2MraLrjsssPhGnjeepkP07c2OjJm0bWBoneHmj9E25pYIgm2wE1bs3kpdS906RHMxuyyAiz+It3FNFg2gmjLp3OqwwnGY2QEm94XfTGYZBXJfL6jsoBBsvCWj7mBpI1M7mInMY3i3p5Ylzx1hsT6d/BLz7mkYnVWCRq7i0TvqbqlX9rXdN8J7CuxrpzsgtVYO1mgHBMfHz2O8KFTfbmyrhbyyYYFtKfkupalRKEEKhEMIaCAOrBAG0X+f+CeiMhfjN35imngEvioMYAFPcTNQBTCnyEn4UdzfSx3A3EZiH2VLT/Gxj8FL0c7zvel8oqSCME0lcirn+BVEWxn2OjBVQY5dI/ztbAjNBXKntj49s9GSAYZr5WhiTI7EkBxkMQm9wZ1Qr3yL1TelGmElHrPzyUwik5FjSw4n77GYkC17xRQ7cU8ss6cp2k37WjWUFw0LcC20lq565ofrv/RVnJmxp7TN5ftEMlWHPRG3HIstBso2ZJbxhDwTgwkw/QPQXwHX7FLCn9jhAb+BMzhuTT8cpjQWmVCWhXWYujq94mKLx64IZPZbhTIfJ7UkGpDApGIENMxwkPad9kNCneqHiTX0I6QYXJ/k96No9OxHC2ZmYq+D4/WdzA5WYb59FOitTLK+QQjVh1UerCYTvUSYljI0kyKPWSXcA6Ru5mqFiqDP1EIhmue+Zfqp0j5gbxWyyHvVCxfKzCR2OmqctuxSdDrN1IKdlQArxU8idUb63EKv8DwOgyzFEgdE14tgEi6GXtsIisKoY63IXaMcWCDqTtbv8JSqsa5Kz9+RWp+clXiZ6+4nn/UCNaoyQjmHiPr5ir0BsKcj6mYRnvXMDlIwglGjE/JtUWCrGXz4KuTnBX9FTjrltACBggQ746xzzgu5xSArdvIN9KKVaDLTNi6R2FCzKNFixLrsilJXWVjFifdKgjTsLlc9JFouXYYamV7K4rD8ndhLthy5mrmmr/4GhOuneVALLWNrpbWB7AYZYqjBVhhmuzbeaqud9ibpoKPhRhplhE4666Kr1/bq5qBDcTLOZGZkyhJLsWTkt1LMuw3hv8gEmTmzZNbMltkjDRM2ssijiDKqqKOJezyijS6e0ccrhnjHGJ/4xi/+CUhggjT47Fe/4XGjpbMJaRWDlY6YQITGSCQg1F1PNkkkBfvPDimOOqZOvZ122WCj/Q6g8LNKQo21DyerGac2E7F33nuAnhdPs62WJzkDLm88E403xWROY4pIpB6eZ05UohOT2FhiTVzikxBbEk1113XTpLrpjhsvkX1CIXL2qjfL/a2SiSB36amz9UZTLaw8euEY4T8sUD1v9kg/Gj5suHf2DzpvPDFy2JwOP7uI+y8GmG1smLPw1KGOMHbeQiS+hQ/tQHG/nA/vohOW8e6/6oTl+CWEgPAbBWFw/4ITFmhSFfxpwooocAIFgEYFFpossI8FikCBgAWCRoUYQIEgCvjTfwFwAoAgAAsE7CMgAGDfBSwQEBCwjw5d0Dvqh/3GPtOn7C7+6Ir/cdCg9w43ozu/ood/Ny6Y2TAaDRaZ2ML5YseA8+2Gwl/TDufYdjxk0td115L/TGRHtTM/S/Yf9RWYuuzQOPwOOzl2wrzB4QlzXulpC+d+MyIw1nIHTxv7QkSYAQAAAA==) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(data:font/woff2;base64,d09GMgABAAAAADooAA4AAAAAi/gAADnNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoE6G6l8HIl2BmAAhQ4RCAqBwAyBmGYLhCIAATYCJAOIQAQgBYN+B4h2GzV1RUaGjQOABPTj3EhEbof/qx9INhtRwcYBSJhOnv1/SuBkiLRuoTL9hYxgcMWaGbOTvRXyJcrx0fbN1SSej5+CabKyX3vPleu/DM30UC2eYf1QYDV0trvRuGFwtauHhd3wdJ5bBLjTQ8rQ3Mnz/e/35T5V7/X/g6AaSI6EkGUHDEoB2qzY8QEF5EaGyEdFdt+fp1Pf+/8UXcAqTa9QaozqxMoZ6bSj3Q3Pb7MH/z/i81H4RCuCRQqtGJMoZQYqgjELMWphbq2rq0XExaIv5+1c5V3vbre720U1zz/sj+/XPvcN/aEmtp8AJjIzJAB58vQvZSdGsGnXgz/TwbimHAbfz+04xsJKM/Yv+Ft7wSb2NmYSxIlqNOdXrg0B5x4vHcxpShvLGwvSuggQGOPjn3zbryyFCpw24NIBJm0PwU7G8OOrNU0cFH1dp0YA+gqHQnZ8ncj4EijgCzDc52lDe/dwl2t5MCkctEbUiGp0wA8ki8b82t2pMMDC8XgU5vKbmzxwiuT/v820/VejOZHM/ygEUoiVoiKoFKSipz8zq+w8ab9XkkkLBpbMI5NksxxYbwCgA4BZypFkAkyPZbjK8elDZaoUTZOi7HMCUb9fafdtXwgmYbm1KrXqKkIBKxYqPnqBO0R/w5JBJeouDtDGXYyNBnKnQkISCe/zf1NLqrFXV5EvHVbCd/cOh5DQvMPy/zMeab5k9z1bd93r62XLi2a0vifJzntep3dWKuwddtoBTMdBB3EIhgn8bybmfVm8tAcpI4eQFRGZtX3lb7Vh/NnjEgkii4gYkcY0gwwyuSb5eudDtpJJXDST+b82h/2aPzxqu7+WO2JpgqGCgIIcSsp7Sm27Ib6MerNSXtBFEmAX4DBUBUOAQoDlBP53t2DIIRUjZGaDJMFQmFgoXjyUqAaS2vxI6itD0lQjks46kJToQ1JuEEkvw0j6mIdkgHHEbbcRd92F7nsAPfIIeu89VOU/SAADNAzyQCFwULxeyGfe2LAFpNyT2aMMkjCAIVCIYv36QWFwdz/VrQxse/2Vagp6V3GpMzOYFmaVJHnbCwhux4Ps/TkJDppFxA1ACJCDC0krOEG4cEF8WFlY6aDlcxVaMZNQmRrm/x/qK9jiUOPODQmNaXPVcSigHJWoBg7M1wLz5cB8ITCfDcynAvMpEKcq1WS9A3DhwN25w1QQMbBrW4Vg+tmxOw+MJL9VhL5EVnYns5a3+pUHN+QlJ8/ZxHN9qo8oMo3PaD+Ob09v6w1YJVc6kZjzay1PDvfM7n4QlzMcRbOycIe+Vl8Xt6Mt5tN3disglXzlZTVGmWms/6Zh9Ud9rrf1WT2oe42Sq3UHXJMXQJN18pk6UYdEB5TcVVtqHXhULodcbBNza7D6pTXKOqsVNMiIo4rELJHm3FNFlAtM0Kq5yHTIW5U4ibgkkohAyLLkn56X32A/tKkHzvdVPqnW/O/n7byWW7mSqbyQM/kNHJNPIn3fNJ4d2ZQ1xFphtdP6MLRnyJf/lUEAMxz0uhvpttvSH94hvscaEKNnPDbhPJc3+XLZdk4VvYDe+7mKGtwKfxjvxf0U8bHyCdGNongBLCEjiY72gZ1DliFKAe87N8FbZuNX1l0yxtSccnfIY4p+rLxxG5cq8TMeDcUHyJ+bHZ728p3ynShmkEdC3fdmdGS1ct29GA3M9qzCu/BhNZ85P2VTEv+WIb5BvAFTDixDVbM9LNpvrUr9gETbEwHkbflUe0Y4q4wmN64Xt6vNxa5gwpTuMzkG8EPc54zcCZ5YpTY8lWMbqFCDL7HhlalmbA9hveFYw7XmUfApfd5b1EMbgEeDKz7Y0WEnjyJC1FBL44AZg2QWp05jlLweqyGfYg7RQgWQuDMJP2bIbmglJ1TNGID+HnUJAnzgfCpG7+400BgZHdar60Hhkff4I9WRJJNiU3gKOuoDrA677WC0JrKzDO0YzLF8q1vw4/MdIg+EgFn/em6oVklIAjCgjkkRngGMUMVesiLxtaBg5xjaLJ7WHzpCeyC2J9Xv6/HNs7KeBNGkw/52+X1Waxg3B9QjB7OVUzpdRSwucx1Nz/TW/o3yXdIrGI+DLdqvRmqf/9hnUMWrNl+9vQNIxqnCXodcdNkVN91C+GMoyChnqY6KSI3lr6NlomPmalYu8uQcW5In8S64jwBrkGBqdrhOKFcL5xoR84LixCMSJaFS1ISprQzUZHCmpvlRnTRhyNQJKtS9qRiOKuEMpRxXxgnl+ZkcBrH1NIymj7lf6o8/x2CLqQzljFOc9asFLegHcgRnLycOcc5FTl3mjCthVg4T3Z0pPqj780lII3M0tAsBgKiM+IWU4sXzemd7H4Z9iF6yZBm93JJFs3ZJMMy0dmP0OP78Zfs2HTbIWRN+tH8kIj2q0NKRMWtkyb3lnEHbH8WpCq0hj34gqU/UuES49WdjjZxwgBSp0qRzcnHzjr+6gspVqBRW3z11t2jVJq5dQkcPBbRnHDrQJTFq7JwlTvmV98m1TgSHBszoMiKo2prcj9JIeg+KdZ+wWIbqHVJItO9g64ssYdlCdCoEl7qKPhtHBZX0JmhSXmmUqgZULYm2l0hlxFhlZM0IVEYwtBdpuYP6xo5FAwoZilS20KTzlM5wIFkc0HOMS9cfnv7u61P3GX1N7Lv6kV4KFCf0fjFCz73/M7t9ueVi6z3oDtraErkcOOF4Nowwyoe1rgLygq5qQ7LYJ/URh2Z0gbBltjTo2UofD3NPgGFmd1cqJmHZGJO2NGS0IrTNNjLZgEa+Cf/KIQPZn9Ll1Qhyc0MzHarTyJLHzsOn159wDswcnxgEQ4aP5hWK9dlbPwFWa/XIuu1o8MhGaWJWO/Mhm69xz+y1amr6nBf8tY6Pl00LCzgHhKGC0J3uLw3sjFF5GT41cHEmebLsSksspY3CcUL8WRfw/MOcu7Uo3hMWDtMeb2KhYn1niOsuQdJHEMuRBC5qhlkqy1ZA6JQd0yPCVngQAxQDBigEE64YoFAMGRVGuAkPRoTsOg8HD5Nk2CQhIBkBSQhgwYUNIWfUQpez2iNEqzhwM6M9ES4OhdKpULukHCgQ4CSVLpKAiQ0NLCtEpiDMwbLU3wUhh8oIk9ipQdiMEyKRZOWBRzhXJlIsuUhzKyRIoFQz1Zc5ZzALJKjxULA5ay7xcC1djodp4RoLNPo2Z9ydww3mVhQqbbHOhlxhFiRtIQ9HICOnbFaf1oSWmQ9ffvwFCGIXIlS4RE30m2nEvHeOy4ryLJJ3KqcciY0JSiCHDhHp1a6kzoO6qIf6aICGaITGyEQWspGDXOQhHwXJ0gqn1rSiK+XILhFcYZAB7R4s4MBDgAxyKPyV/YnZV0RSb2IDAhxwwQOfBJW/tX62WhRQUvqbfAU/+CMAQQgmu6DXG840tKt2iTpCXdRDfTRAQzRCY/smbWvakE6t6Tw0QEBAQATIQz4KqLCmIqi4j5L8pbX0Fw20zdGqrqAbuqOHr2ezeiV7l+qzqC/oR/1PGtynIfIf2hBnX1VkHqrfqRK/sHLiKsTjn9AxR0F++VniTDYuLRadYPKdOVCE8D+TxUCJMGCA24khAkYKQhMgJwIhwoQBLrBCFIxaWYhwqkAQI41ETDABIkDYMcAJ++20zRrLLDDNTjtNMMoQ/Qxq1SCMRGuU0cYYa5zxJphokuVWWGOtdbY45AlidMGjrUATgMncop217OJmKQptaR/aAgASfmSGbFTvyPlewcupEgPFkAkNoAEn0ArMtuf0j7OzrH3nZTfgTru/lg1mneFsocKQM8LVogt+d9mgxZVPl6demdHgiwaAIQh4amaefIWIkXIibjAttvJhFy0ZxG4dLPbgLViUJBAz8Be7kwSJlIgPohT03HgJFCFhN4eQ03FVe3O4eHwRHpLRcuEvTBwG6AsjsKRh4SdUrNSbs0sdeMFsRE+WlZfiZPT/B7uO8NRG9WJXfiYesVQcyC7Bx9nDNjawan1a+fJQaTcc77z6uU84H/k3F9NwCSBUKOFhIVAQBi6J9iqgwlegc8HJ/JC7F8+gsCOrMvdZpoiDwxzjOGTC9GsJiWi4Efs3mWue+RZYaJHFllhqWZVzGT5SZC7KEyutsnppPrTehq2pHelkK7q0I7J9MJhWtFJynga1oOfDlQbe/ixTfU7DaMvQ4aKsTDTkBiLrYD6yDItRTTRYNBlOTYO0yqbLp0rDxZr1Hp5F7skNhNPRZHMAY8Bw/chRSAeFAgFOINBcy0A4uc+ri+U2pAzeUrr74XEFhzxiYIjOZkVipEkbV0JSFromJVdBGlHGR1GH3GDhxgzm+AjbdR0i7VP+2M7wQSXmtf2Nf9gQJX2bGDQbahIF9UhFAbfZf8l1TLEAlp9Y5ll8kjsvr94W9oDNXcgXYxNMJ4dYB/gsoIbsBdZbE6h4GoXBTD+vfS/2ubkCR4RJMMj/zhNTVZN1pe7V/SZRhsqo9zpXLpanyBXyTLlZ7pB7bBs2NhWEgve/ADjCJlyiJTEmXGfzCoAuVChy5EK5dGWTPO+rwn4D3AUw1gH7Z26PCv8FYO+nP3cC/nztz2l/Hn+48M+Sh+YHxv3L988BAlwEbncP5IVscY48ZZ15Iuv8bG2Xmw6674NP3nHEUQc8UeEUp0Mq7fDKCy/t8RFKSUVNy8TMwoWVJxsvEh92ocKEixApTrwEiZKdcNhJ75wLDilbLiEvCyjxYh406ErXRgvN1DSy8fx/8WW/XfHWHbvd9dA9j/zxcxTw1YSr3jjtW1Tww1c22RwavPfZi6HDRiNcs81W2+0lYHHkeDIKIiMdPQMPrty40/AWwJefIP6eCRQrSrQYSUKUcSqSpoZiLh5+ZUqFTBdVrUZEULN2rdp0iPtMnkGzzDbHmG5zaRT41z/+CweXXXHeRZdcgLD/qQHZCqjDQDYDrO4DWysApjuA+nv7a7R67iHoe6TtBAYIJ6OPOpK7Fild4pPx2VDtMopMJj656bxkPmhTVZvmMV6Djlb0mGBUpnPCh/Ohh+tZq22QRXLPxIsIYpasJVMxNhjUBI3OSsDOIpiAKRMQLVM0kmyFQvFkbbBKQQJG3/ColhZENFzOtMqMVnzVLJDHHD6NaRhpHUSjvlI5li3oYlskBRE6XSMktFVAXkjxeCqc52P5BpYyNI3UI5HuDduF+wDFRFrehHQpeCBCT1FaALQLtDadWckdz7vd0slGuJm61+WI1w2EFSwY42AFO6soz5klFWX8+BOy+vyNRjTKj6LwMUzj4izP//6FMvtC8fuDyUCN+Lf72m3V9N0m8/mRkhqtUkiPLmdTTNMvkmBaApQcLiUkKAAFCAoLaINeHAxC2EIYAAIl8PKkCYVMQKwg4OXIk1ssyDYTAbRJ7TfmUfS8yF6XipW8SpzIK/2l0pfEDH7h/w8OBGnGNYwQBe0XG4Rvbwv2Mamw2vteBZiF+o/GexsKIKTD2TRLTPATODYK4TzyYisfEu3KOHQpxrZri4hW5OVCwMWwQjq0QXJLjwIDmbp/zMrJOQD2n0SYJ1i6JFoQQhuNg8RBk+u9c5HHyvBGNP3B9x4CP1XUUDzwRDZiHbqAljDMUsGbb+KfAmsJEFIsHvkURdAEguXGF401Lhj/6ScouGNdIMp8J0dehAwk7qiMk0HiFRd51ECPB4TGHOmnwi9wkBoAeUhfEhxXcKAHjWyU+6wnylB3HhKpXbD3JGLTmIMPJD0GJMITXtQkzAgIGKxxNLviPMKz884pT9jKSbi0gU20LeR0TDCHpJEGN2rUWLUko9YD+EbF7F/x2wKfdFyhsA1PXpZmgKH/mmmOinkMRuMjzef1mOelydmMtwp4dIDrQ4teYyHIjRnXkIc56Uti7LGbYxo4Jy+S1K9yBcRh9M35Xjg/duteJ14DT+Dc6M27psaVZCQ/EkItKZwcoURxOjVLX6OuiQxn2cuvD41f4ajMfNVHJ4WKVkyKEEFcZpOKmSeoXtxNPTwL6KK18AM6+xQ2sJelYBzl4KyNck2FA1OeXAlWnbW6kC2FS+WsgIWjBEKuVsdnLPScnARsKhLhKehqocaislUA8WUoyCSxadgweH48WQjsNpBuKKx80MmyAOiDkn5bbbHKs59YVImahBbgIVuH9jw32VqoE93GJvFJPLhog/ls22SPUFoMYVo/VWg0R8pBFW4RP3ejiHs42TFtB4FUzB34AnS+TGArnqFp1MX6JY2UTeGOzSRNI5fNI6mfMWjpQUuULEwqs/xF0qUGnpBoVIGZza4fGijbIHJB140SRoXrSJF2kIvX93DPDA5c6UKVDk4peUkQ1R3PrUBrbhwxB4/Wldp5CNH0qc8BzqKyMBiupTqs4al/JpYdi86xuzXsRknURSds0VNWk7k7gTsAwKm/IdiR+OfoklENnsB2J5kNw14XwTTuHAunTYItRBXgQkJTSJWkUcP+KwjXqVhHkkRU38FL6JMRGlwBctpZJ3BJZtlz1Tnbqq2WS1huMwyA3gCHKupcdbu4Ept4t/MQHXWXfl/SrHTCcG/N6aJcNi1hJ6uyKb3T6QOM+W0KnMxVK5iq6k9EBapU5LcAr47i8j0lVMA+Qjh9ehniEhb4AhzHqdpjNw8Y9i7bwNpjbM4RTk4h2UYgF6FE3vl2He6p0UzCyDqRvyhnxg1UMsNPguvJZm7NH+U3H0T0JehtGkvkWYxlfM0hr2rLClFQUbG/ROfSShtiKUnFwyh3Z9L7q75ifEpL0FiHzEasPEv+GXuwyKnRdfXpyJgwM19m3c7l37bRfsalkynBD9XXU/1a15TDmXkzEoepTJVMW3eiSfrNuudvoLSQwesLbsgx31g12EKWkhk5qG5lm2TQIzeV6GaJMqy2PSoiEcWV4SzmxZzpMujPqMmrDWgxPDOYAOZIaCvUE9mRmuhOwGaVJCaIGXBwXkfI2vErwLIcNuxeLewCkjy2bNcChGRboPDqvDElNHGAyM9wKudm5q8aYStnizBKrMOMM7PS6pWS1T90kqVX25dIcTb5EGC+eKgzbqPYtJxC9cDM2hTxMOsaENKc2kGLH5A6tCfNCva6ZDaR5AgCy7mGnEoNA1K2yb9i1TyE8oVmSU+nRb6V3pNXWrOnxN8QFxbz8R4qn39X3Kn3YxvmlTWqjZA7pU/Ik2wekF80nUgNzE2GVAfDXY4ZoI1BjmI1ghwZO78eMBG7bTg4xiS3h0LJdkM8yVYvtI+8235fctdX/rqh8xwv2xin/tVimtKcPk3Z5NA9lz55vGVvO/PMKzl1IUR0mSWZghrms7zMHXoUTS7qmq/AGGGT5fuXQzpOlOuoUkK/+jih0F3AoiVQUrLlUd58Xe2/46ctby64W3NrJRP6MF3ZhH9DTnCytpP0o/SUZhBwj717WS76TmANWAREu9Q60nXBwZmD1KbH3ErzwsQRmHwXeZZooAmrhKhZUg4OQma/bGwf/X6bydoeID1xYw6ovnxJ15O/qwu3x/rN1JrQnRMPVzmlu9wYmBn/UVoP1YQRk/fIFi/LPrsQHqbNt5O7X3OSGm9wLCisucFf54mRNxQbfRBUcCEWs8uRpw/p/jh2YkhVYS42wEGmL9qWmqg/pNon4YVYvuwsZFl0j9qD+ixKnt1r5Hl1+yzlQzq5yUbJ4dViLSig4Sxa2kSi/p8Ee9HioC6JNt86BHUkQ+8APbyB9DzkTq1Jq1TMd63RIezeKmFiOH5sYmaJVGrLEwTlVLGed8bcSl/qoa+YRCR0nMP1K1cypjcux7QzxZb8jkUABjuC08Je8VvhX/Da6rD+qrlBdlAo/RYDECA2amR/RkRV3cQqxdeT3MCpz0zosqlHKAd5dwc4uWo3ZFllKQVhdoclvWb9JAfoKqhXk+mC00jIDYTcy4lAqYb+j4Ei7khVLSLOeJgAtgfHDVBdSittis4aNe3kY6olw2kUn8XM7FoAPoRZtiEJUyiPiqSQCjYTMNlIp4T0asb72TfxejQROj0Ak0Av2e9mv2z6RiCc5KIJNEt4n+hrMd7oNk0zE5zRcFpSn8MZ5ApPkwFPrVGrjjC8l4TBc/fyAfch3EN4B0zDysFi0DTU85Jifql+k7pFxNwB9Ofdr9xd0TTDDKEfA5ZC9DB9BdVFiasMsvoZshITvNwGcoGg7g1aJX+uN4wR3fjlKJ7ymH1D3fEOa9ox+zST8leMm0JfKbeUkRCr7Jpu2TeMdfJLK5sVtadZYLpa8lGbEaNB3jT6A2/8yOlb8nTfhgYBCiBT4mNUjQc7ODpsHc8TW+ud+klLJB3vhXYcy91cAyqPf1ihphbrO/Pea+xG/Gb2cyLelmE7Tto68oAXsrSSNOmI9TPDGOBA6WAluVr9XeKK0m+783fvjW+cri6oK/cVWiMatN0Hqv3ZiWwfhHgc4d65VjfANBUal7HqHBMy9vtXgerQHBVUsxdUnzcE27GIM9zov/FZLxI4QItzqEMPdwvB0MIRTkpLkzQWlFHb6OA2948AwFOqsdsO4h3iZknL7AKfBZxTNhK7ql4NktBWFyincdGXzbeGTq9D9i6owWK5KX/aHP4uCADONV69WRiktrhzD6au1edVYn3XKuYgsMhsyNT5lESDh22lezC8CDka1y5X9Fdx4Gq1kp6dTfS4g55uDbCt/XECwiEJFusqnMM9NaFFPSbY2nIODDNVsu0Zr1YVH4nIaqlXOIMrZtBIl2iRuQjGMEeKWyqeQab5kyX6oKjPzNUsvaOQpeCgZj98Mi+S38zQoGAoojb4xruJRSd4PJd7SVYVq6hU99twVwEzyOrVpnGMRE6txlJeB2wrsqpCnPPIfMVSQhh9ZRGYarI2jeCZqX3JQEEAc1pnPCu5299bUxfaqJX/BTBOzokWxIfFycOfvwjPXwnIzfnyxNsjhL38PPnU8pgfTDpwRSAjcxNd7cPD7aUPqs6C558SyyIU7HaA+V4o+l4k+l/k/1/k8GHJTZCyiALp28fwIaZ23X4xYwVDvHY/QmeMrr+P1kFUzyKjZC0L3K2XgK9AuAvCEZiALTCRd+BueMmpDSlTrTOb7vYbEU5GazZjPtXOEx6A0IaaaXowC3ZCCAQoSvQIwIttA22xF3t04LEinojPbGpqc2tNijJ7P7oE7oQwXVGXpSpVpoeuNWm1VXIdj/ZasIra213nifV21dVrNMY4NyODKM4Qy36WiH+WxWQ/iSU/ySQVmo9jdX0bnwI48QPCrxYqa/cwK812A1M76+tUsW8ca8TOv2og5MvDbmZ5PNRTa2CmdcCn6/u6orlRP0f1Ty8ehVN7JEhmpkSmhXAKJM6Wa5vKrRCKmvJUhBjkNmsw/0aGVqaBcB+EGeUso+6LEJ7Yo0bBtmACvipadVQZPfmr8kD6hC1g60gQe9QIhlByEZDXjkQkHPGn1NX1dUQy69rZKb+49i8p1eaAA27FIaZlMXaq/Xykb+d2kHmGDBYPZkMYJ46AWBXEEoxWfioYo/Ykarx/F/llr4vEH8v+O3/SPzUliRj6d/APWows/j/gnE/1Za5PRcg7xkgoDVvAyO6AZAP7Iod8HUl77pkgfG3ITxkFA2cZg+y8zHkUJaY/5EcQ/+QSMXmepZedg/mju5TKml2g3hksNeBcX2Ypppo3Ti5GwCJYwiac89PAampfT11xnS9vaOj/Yv01SEb58pCcL5VSuE6KFFzaF0wLIKT5jpoc9jOsNNIEd8L91rKgPNhCD+v7Erb9Tu7skoO/rY3e9EqkfDnYbFKI5KAgRnaDTRMy6mKOYocX85AaWwPbiFAm+X5Wv8fMpOyTNVZ9c1Fj20BlKYSYAHBw17tBNTdrtC1yLYQnINQCW06NRd88rVDbWGmylUA4f3rZvISbZq7Qbkeq42TDRRd7ZjaYfMXtSw1ozUunGtSwtNhVfKZCQ0PU5LAxU98UiT5NrUj9VCR6MxVYVSEOB1Foz/K8Ya+x6JuK8rWxURZBqs9EMMbochc8DKEutVmlbk7VgYPUWl1O2CYbOU1nmZ/6q1D4syxl7lbOXU2lraarvTba3RURXptJSeonIuFrqSmNo+99ofAYoj0dUXDmrASftQBCk+aooyM9CmZSe2fO+PIwwO/y38Xiz33wPPLljH6vGHhSvMoRTvcSHPM8i6CI61kMX8DUrt4vZiwBi8TLAZvrzu1wWTvM9uhwwJQYZkoX7jfqLTHLZZmV3gOkdt6KEJmsuoanjWIq10tklHx/jgoboVZiBOfc7nOp4AjIgyj896SVzpjHUBV+B2I0VXFgSoT/6CaIGgeTjNpOy3xzkkwg1x8J1udCzRocWOhd9aW1HP6/xkeMBN1DclRPq2tMeFv0EIokF/jsuIKBjwBciQY6IhX4gTJxDoQqSZJE9BAPzKTGChvqWoqbzRCmSfcKiTNGMTZExnHE31VVlrlihdn8f+Ur3lC6AibgfQhThUd57GVlJYtn0U9iFF9sepmlRLkJENhSn170iwVGIMwUHefxd4kzn3slX2iBUCX9VyLeygMRui9SeaHcG/Xm8tgGhKWYK+kmmYxa2BbSlt08YrPymnIzwdstOgaGU+OxsguheH00Go8FCD8hPgX4R3n83eIj4t183jEeEwB8AoKSeG0UbKlASBT5wsU47JetT9I41n2Zk9LCpvdcTkag2tXT/QG62/zJWIiBzcv1eqPlFyp9EQ//ByvbgNyUFlG7PYh288CuRtp4Y6Xyq5QR4H28LB6ri8VjZY8bNaWlan2W3ISuIbjGUsJAU40jtHWrKpXD+9IRKtaP2ab/SkpjlVTaDa1ivsTnHxetER83dqICzHlX9LVliPbwOKMmFTYbupGRQg1lkVhbtJzeRH1oyavHD8Sy4BggKw6Y+KTSXd3tEK5yhyJUwhRYwVKskro6TysJlSgohwRZXkjAnZUA+z3YZf3+QOfISsmDE3gr8/zeG14tghIChdDrjpafq/REPIX/EEZEIF50XPSU6DiPt9tG3s0DUbo7Vlklrg8VkA3wBYtTfGM967cRaP41D5Tk31IozyqVh5WKSUVhfgJ+VWcU9wtS/8ggLjsr5oYwNw1vwaemHOrfEL5Nv5W6VjXp2gCw36ysout/OkpRAxHZZGeMUv3Wnic45DGbOdY5hqmmXSYbyAiH/MhLtSp/eJwCuru+qryPL2Uml8/beIPnxQwbxXeZiRjZ5v/5VxkLsZY/mSKeYvwSDvgN5kTfG/Wbe4dUey9IZL9d+2nwT89dXrIs78ckEbPzj7aOjPVtZIIzibWbMY2FLqjlQLyxl0RHRXomTMDw4Ml/gicQUrr+yoQVAiM3yF3nKtFtDK5ByMPW26zZDidax13babt27bsw9lIFmP22gnKl6PjsuNVrZlFOYrCksSJSdklhulQe6zll+mcmxWchXe2ydOX6c68lx5rHjz2TG7sqIax9q4MP6ui+aNnFSv88cxHGrAGLbjHysCxg824+b7f4qHg3j29dQCu6x84w93GKXyMM6KdqL3vHi9i+LUD0G5xHnu8IkP12RouGGNjWH/geX6TyYpk36rWnsw1IsnTpFuVV5Rair1kAmdQvB0XEIHZhPyt5f9u5VM6j+mXNWaicOJQH5lPiFR5qTv06nQjvHp+bIPjRB+NtJT53sKmqoqq51hipB3LRuCu5vLmE8OHdx6cm9d4zLarB1Cq629MyGKtLtINI05/h6rasaH5Ld08rhAnYDDsgTDXn5CBTMKCsCxE9l4FeFwoeyv7O5sVB8kpJzYXwO1lNBQVoHTk7GDR40yFMswQsjQaMZqoIMZhb8TiA8VuHGmQjRuKTqZSC6YFQ5/sEgrJ+Pn+tzAceVY1+jXrWmI64xzAJyLOYlKQd+VLFWA4GiXu+WmADbjXbpWGbbfEoeoJsIKsy+0hMbfcXYsbsNfzryv43vR9wfJmzvieT1Y5DpjEWY7mGmRkZw3NysUXU0gEXMbINg1lZsP6yGYuB9xUbbMDphnM5cMFPKJ2xEMd02QiKaLIxfAEpSTtB4QS0gUhaGAJRAvbSbNt/zaDMceoA6MyeEnuxE50j5YFF+ZMK5WFn84Y3LRDaoT11DslZUHbrelRlbb2zBSFRAMuJIgGe1jl5w/Mqih6TObkHdY/r5swaPo3hey3YpOJGcR9ALOq7QtZiRATQ8bd5x2Lzfgm/BdwiVbowYCqozWK6pET13dByMLaVr3qqr2oJi3/nOu12ocNWCNkcKovxtyqP7iFzk+EyG/M8+ab3eZW5YRwlIQY2S6n+Jz/foymmLptN8CCUEBWslNR5cxPwB5iAWlhMBahtdzksS4zuAofDmW9aYnEOE2dOt7HmEBnJyVZiDtuaPO8sLr43QBp4COvpry+qv5w46ogZDfUFRQXiXpNDOPp5Wlna5yLRXX79uyLQc5Y6Jt3ZUaAwRCMzGOQabKJSDi4M4CD3gZg9Q+107+BPtY6gtSZfcUAgOIOrYCLffnKQyr7WmupEV61F3uh9zh35GqwnpWuLqP4Z4YqqjlokoE7F8SEcFyhVO3jc7XZFRk6JbSUn+ZsqMuqZNENUObqBzUHOWIhg8DixOM038CgJJZ8u8LeDO2FK3z0Vwj0vIkThXzgLYTpv6XoVtogS4Y+MQNgIoalrbnpgKtj9ozBNh4TiNTUVLeX0Mg0D08SgiJZkch+2q2S8QtsKTuY+NTa8lzaq2rJK34XwScRIgFddi0NVSAnY84+SzyOXtUdqKlrLaWUWBckV7myurUy0VKZ0tS74kvVs/ilpO2JgM9S+6nok9HA+Q2LKHONwH87K5AkzVI9wuY+pQW0tb5+eR+mHUMmoawM2zOl/kAQqOmBUYfNBea8L/dXh0P/ra19UWFhf6P/DnCt60xcOZ32sMdoyy+os+Y6YqSnPYlR/bDu0RyBImDvY7FFzlVDc4kqw2AlPUyuRUuPtZBNjNp9IarbP43AezQbro53NteH25jDFR5kg+Pukccdfz0FDavkgR5wmAK7HMEWGkPKCAqUg0zbG4TxsB2exeqNJp4QXc4eCgoYz1lCDZDQrrSwtSyoVPDoJpODDfWMpmL2EbGI9amIhqBeCtus+qz3gnvrAOXHkaWXRnoQjcjAqFv8iU4ZXSMWstmi0uztiVjSFE67pX4CzaLY6j4RSvJ3VFTW9ERjUyY6FhcrgfaHgXZ9Xqen33OCz/nlo4KgVQc3j67y0qz0pPQ15Fq73MnKc3hpwNzml3PkvVmAhxk7ZvJrl4LyJZM3IkaOhzupoVXsZNl2NkDHGEM4g63Ov8gU3bHa5OOB7lq/fH6QrmjqTfcWemhc2UErd5ZWUILgCWUIlUtYViVYlyuhlJt5wnb7mupqeo3zME/8kHV0GRLrEU1EDSx8ulSgdvuf5ghf8uhS5LvemQHhLBRZH+Kfp1FY6lnhovKfX7kBvOAMpyTf9Gelc5JzWXFj7p8mqo3hc7gxensli72+0FhbMMA0ErKY8buZzOzmS2e4nONxnPIgbpwnjgj3D4TxRPdAp4g74nuVynqttJFjl/sN8/q0AeOEQ1afodf7sMhIDS92V1TBk5tTTGamb2wLJiaU37PZ0UXreDYHwfp4sSemwvcMHlRSn237W7tvabF8j4tN/JS4TvzKZh17AtB/6t9aaKu5FLP6RzMA12IQI8BPQQfeeZDv8bd8rOR/j+M8sLso0CDnFeTbr19NSXvlK/+UVNgeJN8jmlt89QJnKFKepLxrMzlwpjY3jLhynouli/E5KPs4UlAtpcTdElT8qlMs9He2w4pptHuYpsjhHP0kB/BcYDoYjCjeLYhXTu0KfHylAqeU532Bqab7KzMsKB3/MIiye7mOzecqAQRx30bNQEhX/BuMF2Ul4apBHzAjSPRvpa8WrJbZow7xHECO7QpL1mg78O4vwlNJXzYZzfXIOmMLiPKv5T1Oy6E2WLZb0Gp3xUdI0xMB2SrM+kkV1rKQs8S06N8ClpAa5vCxgreU1OnkUO4TCC4zUdKfX9Qudj4qaPSrMB27eNPVtXyHhP3pya2bmygvLpSnLRhe5XAMPLxdKx6eWZmauP7lMJFy+rb9VJuSVo0wcLeMxXpEprUeYSDLnEpPxIEmX9IAhyAF/Rhc7rKa/jKzhp2LJr9LxD5Npg2vV6uQoX6F91Ww40ouStNzzTUNZKgY1VXIb4wZSaWyUXEWAx3y2TQftWCm1mDugbElA3udiLJGktXyuxrygLPfHDKUpLc2kzKDZLdvKYH2CJmCCqc35RMzwgdj3CZh0egukg0dHse9WAnFw9KIPKYIrUXe+qcj9dc1AMrD1ZjMHJr6XgHLToy1/v22VfyaSCRUsBh7xnYYCc0OjqTDW1R3Vrsp69tp+sQByDwo+OKtUvqBQnlUoJpUA+5aFFIEGFPcu+oDMRRLLaAkwvPaUViKak+raq1me2n1KsP6RBARhxMj2q4xk6DvJIVOqQho2ygqpN0XPpI+7fBq2EQGbMeRGQdU2l0/Tgmo7YwerS9UslF2qWRYc1CWOcMPAuy0BCymQ2QpRtbdOKaBAYgJzuS8klkC0CpLa+pIidGjQcnoLDRD9cvRlVBqnBgA/wr+3X4UNUfLPBasYCJ0xhKne3U/K5wN0r7MbQwUvj08UvG4stWNzqP6Muitvvll3afXdZQ648P1a4Cvj44NeujvXdC0rcpy1veuKi/NfDi8/yajFT6youJlfPC2/itlJErx90r1Nc12uBTMOSvfxiHuTrlUga92PXus9JT04o++Q7qa90lNoyVudX1zsuFk5fAKvZZwcDr+cWvOBYl0Cbr/JWwhJH4TPwKmolW63QP4j1adslS3Y3bYD61cQEKMQlfMD1bqbFXQDRACPUNVmFgQzB2i3InzvdRVWzdSqr4sZA/t8fPc5sjvNBMfPitPjUJUcA6wmpEGtBNRbR2dsjyFwumU0zfFbD0LDWuiBih08MsqZbAL0Fqo9o3IHmcwPuB+pRljAgwUfG3UA0d04Ic7BheXuzaZAwsxNbIHyrWGI38AZ/UyJvRilnVJxCo4DxdviYlxnw+XM62hs8iFsObQTZ1/orrzlRMkenNHEwC0Ndd52VU+7UMR0u3My73S4qxwE+OXbwgeJ4mIzRM3+aS957hPOP+zWt4yKQ2YUqXrUi0LzLQXnTkHuLm4akjtQpN2HMX6Zm/93sfa/6zF/UZLH42GjC6zF2YdUqqfUqklchgX7+6e3FjOd6B0yKt8eOmr4INDoilhn+IJN/xkgKEZWoX+9LYbipJI2fwR7RoF+ZlcGfnJWcoUP4t6m8kB1vLuuCLp/mES4L5RCK8JVF++sLm2uxIIIbe0cJpku4c8luHNkpRA+RqnlfajC5qFT/439yOobKJHN5oKPB3CQv/Uy/Ei43yfy/41kgRd01i1SdSIxJ1oyo4ZVjtDXzMTJmLivjyOer6uHcByDjddVUDAb3N0T4Y9E4QIFW2IQwkw4FUOGxjuGwvCkV7ChKpnpBzdTeENREkLH9rptAN/OSzuQi3VSA+QpXWBzTwK6wT4LIVwAP065QF2IhZUg5f9jmwGY5gGzdkPUXFvLRtnRqMl5D5lRcpUB66D3ISsZNQOxQR992upLlXU2ULkVHNi+Uipd8WAjzzcqndxK/N7bT9fMDbAgdEYfNvF9azj8fctSeh91KDzw1ATWTl9q5WBRLuRdSm/HJkIsLNESOzRntq420Ac2dyVgLZVUYSv0f+kUD+DvsvG6dGfbyVEGBznRtezTZar/SpJ1/FD++dtEyuyuja7sjSXz3XkqkKqK8EfGVFgrppo7RkLojBkMVdGnZJRc9KmK0QiSdm1GMhAfL1oD4YlDy1N7N50LdPwlaLtzpV+lCmg0Kr9f/enkU2f746SyAz6V2rDSntFz0M4opRa5Sl89r1S+kqZ4oEx/oPDc21bURIAGbpWKqcR/PC346g72gL3yr+cVBQCrHg6EltYKVXhrV3+ZO9ek/HSKZ1ut4xWr0oI7Vprxdw7HqQiG+3Gcf4yCp07x01Tu9nROsbWp2VzkGwtULKZXZvH8jniD0eLe7CJTMihsSHGHbZ0V48GShxpSHHhX/xNPNTbnvuNVLEorYf/GYiXYcWw+AVkgD0Op2CJ6ZKHCGMhpqO+I1TpzYzyT8r0jGeF4S5W9VmcM24oKozUu874vfm4pG+aXHIwYNpYoXZUKZVV32LJKTJybpTDadaJjPNYbW82K04UhpemZbFlmGri+J6qIGYOTINRDSIJm7Qw0+Jjh4agzpz2a5wDLbyTqguyPVUQVHOXyjvKl0QXXBqY+yJbc/KTwARtlDai8ekNOabU6t7pjxnQG4laAitbw+LsFqct/K83IPmAyWYKDcpQ9P7PYEOqsr0lZfm2RQHK+No+RVBh8TCxc9YQMpFMPNDYeSMQb9x5oSCQONoRIPJGL2q6jfPriQGBJRVlggdu7omJRIFJW4QTMQ4W6r027XtOq083WwA7Ixhl0/Dscfx/fpSYTTVrU6Z4q7RwdYF9uNFtiuQ5LY6MlL6/BEiKO3DxHgzmvsLYyPC2ryZmena21lmcVV1QW+dYsMHBLdHM4EabK4iBkuISCT3tdSr6YJKoi4lZ2TPphGv0QnQmIMQc1XtaLzkUQ4g4WAWJz+eNO7EP6vXGeuyhK/O4nZD+dQNF3sPhKbsyf6VUqs7xg6d0SrSaUo9cBSjR6fakmRPQ5YFuq1afWHUlLOyJPnZQRJ1PB6bMRvvcN79riDQynyQIeZ3Vk5nF2+mLqN/x3X2l5AhpGxyhExRYrTUEQQV8hR4OEzcAOIJsROjbEEGdfHx/AiGEq93UwuvFWC8Dr0BiltEhp+/dBa7MRs+e3gxen1Vod7XZGI0ZF0kPtEVoJMBX6bEUddmwJ3e/s4JGoWBTLvZuefjeA1YKdJp/Pan3iFovfBBvHb+EE7/P497ncW3zeLS4YCZIm+jD+m10bdw6pLnwoTeGz6+A/ny0FX308a56Lo9Q5wrC4euk2YZtLM+0wmh3XYLd/22rFVAqV/WotB6XzLg71fuS1ItQZZM5RsBe0HhIBI79tW9/csrGxZXP90Dp238HGQ+c/fqFilwehKlIP1Pxq+bbtRfXPSDvzxacAmxhgEcRuXvACCM66lKosuHQAjwmk2MHD4GypLafkqlplrKpVJqta5VDF5dEIXxBA0HwpVfHYLwBXpFSZr7JX9eGlnld95BQUQc5CEaoeDg+D05TIckQHgtiL4Ay9gJyHIoSPgpLoQSxDCnqvzkAAweEaVcbi0gHcP5BiPQ+DI5X6gYjtAwgOvq+qJA/gLqX5oxEeIIAgvbSqyB7931EJD8BHsQ5r2/btQ8ZbZvJQOqmZyjA1UxlTRIGA+3kYHCEdBZSOqkMZqjqU0apD2SP75CjNZR9SBoab4NEZUXlqB8WFWz23LswFOWBhHvbDfBwoFxzkQqiL5OKYukRdKpeFMA9vyfmkLKhLsgLYssW5ynx+nsoa8CzM485VTSPGz5kL/x0n/vvmr4Mfdwkf/Y80FafH6YvHmc+EjopuIE5VlIpp+Etg7wOSG0n8hmWrfsVZAj9PZaF4ah0/TzRC9RSMBcQVYNN/F2j/xaU9JK/N0c39Fs72JYRKKJO/oDAYDxbfXZ8s2LN66gerpTfocx8A1nq5A+8VeeTk9gCHQL7oYVvdBlI/5UvY8WoWjLcBLv+6R50W4DcPrlxDaeLTLvmyJ36V6PNtRw9Rdet9vlggVf6ThUo3UFIIcwQS8HiLaxLV3EPT1vCrPGluloVK78FrAa5GRxj8x56jWVclNMAV3KNEn3TgU/HlsiEHC7JQdff83ldJZaWzUOk9Klc1ITVIx71HB/LT9H9d59mLN6gmacIJIB8QYzEeneMWkqW7hwiV7MFn7qSYStx+CTsqT9UcweETaUS/RUp0e2IxS4xfPJi2IdF6pNkWKq3BQKD21iTwAXN397ZCXjW9ZJ5k6HY+9923cllLrjiYWYTexJw4Wb2cFoHhXaPFIhRnT66yeDl5acG3LrtziymmugJAvrVrJvfXXQGob2mn2BUsdFMUG6Yqc6cNRlyzihMVSINZ8Pqx1FUI5I7XjerWn5vUBf8LPH0J+HHNP+/vxM/Mrt1b1ep/PekhHgEI+GV60f6nYEfaHPt8aLZmg5Lvb1cqP1DUOV8k5zp7XiHtfPfZ89dpPYOD9HrNHrT1HO7W4Y8pm196oxMfYp90gUPW6XLzDqnrqOmseZr98qpgum10t/t1T3LLGyz5QCBlfsE0JxnybiXv4frYwZBzzHmx1Ryzvf1yiifwIs6f1hmdEz2v+l7i5w6r/Szkbpg9u2hO1JJbDbhTcOf5uUTyhM/s55tj4Pxf4Fl+nUlF5/TmUwK5lCnydJM7WHJbb15JlQOkm/cMzbRb8iwxq2u5Ct6eiEGj+cu8h9gXVnSh7fzreOYoa9Ip40+TyyO/lCyVLDnDnE+I2WH0nJVtprJMa07T5Sc64IYeWnBglZYwTPOSFRaNhcTIQRVX7snEhwVlFBn/gUKa/XAokzJWfIW52wufJs5Z4uLC3QNervAIR7KXPOcyrwik3PjTtPl0HpFiYkmXpCmwst00+Hxjh4ckJkqqxA6JppSQzY9OJfkOEqcNWRqB3ADBB3yB+iCfC7ZGJJ1vtCtRJ9k69Bx9aen91HXs1D1b6BeKgWAfjui8Rye1cStfzc2OG/gq83GuucBv/vtvRf4udepJhgyGPM1jEZByijhWyuRLylGQhyXZzQS+F/gzYH8vGMc4pN0Tn9DawpfYwC35z3Wf1mxcQukyC5NdyZhyeSGIqS0JgmzlAM3Ej5ZZmzDAUh4ErsgAvBWKc/1aZPPcI7V9/1oq1ZJrGUF6Xcty1eFaToBoT7z2gWcNxpUzOYQd212b2bpOb3AX9Lp7vcsrT7yO6vtowifEpcVsvQaMcBvQL65dvznaxelUN6BXXES72fkQ/61yEUJFCxe/HySnlfJI+t9JkhbCXGLyq0vbTy2kzTONtU0dcryyXKRwEeLYtHixdkMBr6k6A7qhttRONUOLOmXy5pyVAFmDOdrLvyDaGdJq+7IN6EsKRWY6JLMKd1WI8/WNV5F+9mwFGSAoH6eckOWobMdM4ctPjiyvBMh1zWlnBAoSzO6sc867IOSXlnp5/k4XXZLvdVNttkXU+LLRYsSKE++qawq8JUGiJMneSFETn61bvz571OIzwO8rdc1s/MebJahEqZC7ehg2EgR6mh4UGisPhKYqjQobM898c+010EnNfTcvV/TneEhrUQstNtRgMXXqNfjGbh1NORQK8iigDOWw0CJ6BkbprCjZ9L+1MFCJKhRRjZqwQ4QTbnjhRxBhRBFHEmlkSUlq5EmLIsqkJyOZyUp2VFFHY6+vfvUbNjUPVusxlpMsc8RoKhydNApKnTQrko4VrW22q+6SY5wqVNphrXX2O4AlT0j0RtiHT5iRZsVA9MFHz7Hx4mm6FTI5YyTwJjPGKOONM8HwmGLW2RexxBpb7MlNXhzJT0EKU5RpJrrvpklquOeeWXEpqwmF6F363oG23upwKXWov8tgMtvR3vjAIC3YVKLv7epowRJNiaauLN87S+to6nbsLkV9lcRxgwnKQH+7UxgcGSCaps8iiqoAFK1G13Dfujldo6joFAzUWgrhuv6ufqKvBeLJFY2YAAGEEUl0YoDEMUAEkmdIPgiI4ARx4gBMAAgOJAIDBAKBYxAIDgwRCNzRrQZXXmybJsxPcHqIzrFfTfWbLNxG0Vw3oPdvg0LPZDJa5zStFOWxPkWDKj+vlssd512XmA25y+30p2gXW3v7WuktbU0wFe2BKX4aJ32wqzcenWBhdg4M9GhfhZYuHh8YVLoKBQA=) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
  :root{
    --panel:#1b1d21; --raised:#23262b; --raised2:#2b2f35; --edge:#3a3f46;
    --track-col:#33383f; --line:#0b0c0e;   /* UI v3: knob fill track + hairline (promoted sub-slice 2) */
    --lbl:#d9d3c6;   /* UI v3: brighter control label */
    --edge-soft:#31363d;   /* UI v3: subtle section divider */
    --well:#101114; --slab:#22252a; --slab-hi:#2b2f35;   /* UI v3: recessed well + stage slab + raised control face */
    --ink:#ece8df; --dim:#b0aa9f; --dimmer:#857f76;
    --amber:#93a961; --amber-soft:#bcd08e; --teal:#93a961; --teal-dim:#3c4a26;
    --pink:#e8579c; --pink-soft:#f39bc4;
    --shadow:0 1px 0 rgba(255,255,255,.04), 0 6px 18px rgba(0,0,0,.45);
    --label:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
    --mono:'Space Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

    /* type scale (each maps to its current value — nudge to resize a whole tier at once) */
    --fs-3xs:8px; --fs-2xs:10px; --fs-xs:11px; --fs-sm:12px; --fs-md:13px; --fs-lg:15px;
    /* spacing — the layout feel */
    --gap-controls:10px 13px; --pad-module:9px 11px 11px; --gap-knob:5px; --gap-step:5px;
  }
  *{box-sizing:border-box}
  html,body{margin:0;height:100%}
  body{
    background:
      radial-gradient(1200px 600px at 70% -10%, #232a2e 0%, transparent 60%),
      var(--panel);
    color:var(--ink); font-family:var(--label);
    -webkit-font-smoothing:antialiased; overscroll-behavior:none;
  }
  .uppercase{text-transform:uppercase; letter-spacing:.09em}

  /* ---- Start overlay ---- */
  #overlay{
    position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center;
    background:radial-gradient(800px 500px at 50% 30%, #262b30, #131518 70%);
  }
  .start-card{ width:min(440px,90vw); text-align:center; padding:34px 30px; }
  .start-card h1{ font-size:clamp(38px,9vw,62px); margin:0; line-height:.9; font-weight:700; letter-spacing:.02em;}
  .start-card .sub{ color:var(--dim); margin:10px 0 26px; font-size:17px; letter-spacing:.04em;}
  .start-btn{
    font-family:var(--label); font-weight:700; font-size:22px; letter-spacing:.12em;
    text-transform:uppercase; color:#1b1d21; background:linear-gradient(180deg,var(--amber-soft),var(--amber));
    border:none; border-radius:10px; padding:16px 40px; cursor:pointer;
    box-shadow:0 0 0 1px rgba(147,169,97,.45), 0 10px 30px rgba(147,169,97,.22);
  }
  .start-btn:active{ transform:translateY(1px); }
  .devices{ margin-top:26px; text-align:left; display:flex; flex-direction:column; gap:12px;}
  .devices label{ font-size:14px; color:var(--dim); display:block; margin-bottom:5px;}
  .powerline{ margin-top:22px; font-size:13px; color:var(--dimmer); letter-spacing:.05em;}

  /* ---- Header ---- */
  header{
    position:sticky; top:0; z-index:45; display:flex; align-items:center; gap:14px;
    /* z 45 > drawer 40: the topbar never overlaps the drawers spatially (they start below it),
       but its File dropdown must float ABOVE an open drawer, and children can't escape the
       topbar's stacking context. */
    padding:7px 14px; flex-wrap:wrap;
    background:linear-gradient(180deg,#222529,#191b1e);
    border-bottom:1px solid #0d0e10; box-shadow:0 4px 14px rgba(0,0,0,.4);
  }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand .led{ width:11px; height:11px; border-radius:50%; background:var(--amber);
    box-shadow:0 0 8px var(--amber), 0 0 2px #fff inset; }   /* scoped: was bare .led, leaking glow onto step LEDs */
  .brand b{ font-size:21px; font-weight:700; letter-spacing:.04em;}
  .brand span{ color:var(--dim); font-size:12px; letter-spacing:.18em; }
  .hgroup{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
  .hctl{ display:flex; align-items:center; gap:8px; }
  .hctl label{ font-size:var(--fs-md,13px); color:var(--dim); letter-spacing:.08em; text-transform:uppercase;}
  .hbtn{
    font-family:var(--label); text-transform:uppercase; letter-spacing:.08em; font-weight:600;
    background:var(--raised2); color:var(--ink); border:1px solid var(--edge); border-radius:7px;
    padding:7px 13px; cursor:pointer; font-size:14px;
  }
  .hbtn.icon{ padding:7px 10px; font-size:17px; line-height:1; }
  /* 2026-07-17: inactive icon toggles are NO LONGER dimmed (dimming reads as disabled — author);
     default = fully visible, active = the highlight border below. */
  .hbtn.icon[aria-pressed="true"]{ box-shadow:inset 0 0 0 1px var(--amber); color:var(--amber-soft); }
  #themeToggle.icon{ opacity:1; box-shadow:none; color:var(--ink); }
  .hbtn:hover{ border-color:var(--amber); color:var(--amber-soft); }
  .hbtn:active{ transform:translateY(1px); }
  .hbtn.on{ box-shadow:inset 0 0 0 1px var(--amber); color:var(--amber-soft); }
  .hbtn.rec-on, .hbtn.rec-on:hover{ background:var(--pink); border-color:var(--pink); color:var(--panel); }   /* flat armed record (Solid: pink = armed); pin hover so the amber border can't bleed through */
  .hbtn.rec-on:disabled{ opacity:.75; }   /* ringing out: held pink, inert */
  .hbtn.icon svg{ width:18px; height:18px; fill:currentColor; display:block; }   /* transport-style SVG icons at header scale (the ● text glyph rendered as a tiny dot) */
  .hbtn.mini{ padding:5px 9px; font-size:11px; border-radius:6px; letter-spacing:.06em; }
  /* MIDI-map overlay: a CC badge per mappable knob, revealed only while Map mode is on */
  .cc-badge{ display:none; position:absolute; top:-3px; right:-3px; z-index:5; pointer-events:none;
    font-family:var(--mono); font-size:9px; line-height:1; padding:1px 3px; border-radius:4px;
    background:var(--amber-soft); color:#1b1d21; }
  .cc-badge.unset{ background:transparent; color:var(--dim); box-shadow:inset 0 0 0 1px var(--edge); }
  body.map-on .cc-badge{ display:block; pointer-events:auto; cursor:pointer; }
  .cc-badge.learning{ background:var(--amber); color:#1b1d21; box-shadow:0 0 0 2px var(--amber-soft); }

  /* ---- Part tabs (Kit = 4 parts) ---- */
  #partTabs{
    position:sticky; top:var(--topbar-h, 52px); z-index:19; display:flex; align-items:center; gap:14px;
    padding:6px 14px; flex-wrap:wrap;
    background:linear-gradient(180deg,#1d2023,#181a1d);
    border-bottom:1px solid #0d0e10; box-shadow:0 3px 10px rgba(0,0,0,.28);
  }
  .part-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .part-tab{
    --acc:var(--amber-soft);
    display:flex; align-items:center; gap:8px; line-height:1;
    font-family:var(--label); text-transform:uppercase; letter-spacing:.08em; font-weight:600; font-size:14px;
    background:var(--raised); color:var(--dim); border:1px solid var(--edge); border-radius:7px;
    padding:6px 12px; cursor:pointer;
  }
  .part-tab .dot{ width:9px; height:9px; border-radius:50%; background:var(--acc); box-shadow:0 0 6px var(--acc); opacity:.5; }
  .part-tab .pv{ font-family:var(--mono); font-size:var(--fs-xs,11px); color:var(--dimmer); }
  .part-tab:hover{ border-color:var(--acc); color:var(--ink); }
  .part-tab.on{ color:var(--ink); border-color:var(--acc); box-shadow:inset 0 0 0 1px var(--acc); background:var(--raised2); }
  .part-tab.on .dot{ opacity:1; }
  .part-tab.on .pv{ color:var(--acc); }
  .part-tab.off{ opacity:.5; }
  .part-tab.off .dot{ opacity:.25; box-shadow:none; background:transparent; border:1px solid var(--acc); }
  body.light #partTabs{ background:linear-gradient(180deg,#eeece4,#e6e3d9); border-bottom:1px solid #c2bdb0; box-shadow:0 3px 10px rgba(60,64,40,.10); }
  body.light .part-tab{ background:#e6e2d7; color:#6f6a5f; border-color:#cdc8ba; }
  body.light .part-tab.on{ background:#f1eee5; color:#2a2c22; }
  /* --- master output meter (right edge of the Part bar) --- */
  .master-meter{ display:flex; align-items:center; gap:9px; margin-left:auto;
    padding:4px 10px; background:var(--raised); border:1px solid var(--edge); border-radius:7px; }
  .master-meter .mm-label{ font-family:var(--label); text-transform:uppercase; letter-spacing:.10em;
    font-weight:600; font-size:10px; color:var(--dimmer); }
  /* Gradient lives on the TRACK (color zones geographically fixed — orange/red only show when the
     level actually reaches them); a dark cover anchored right shrinks to REVEAL it. Same idiom as
     the fold-out mixer's .meter-cover — the old fill-with-gradient compressed the whole spectrum
     into any fill width, so the tip read orange even at -30 dB (author report, 2026-07-16). */
  .master-meter .mm-track{ position:relative; width:200px; height:12px; border-radius:3px; overflow:hidden;
    background:linear-gradient(90deg,#3fb56b 0%,#8fce4e 55%,#e7c14a 78%,#e8663e 89%,#e33b2e 100%);
    box-shadow:inset 0 0 0 1px var(--edge); }
  .master-meter .mm-cover{ position:absolute; right:0; top:0; bottom:0; width:100%;
    background:#0c0e10;
    transition:width .04s linear; }
  .master-meter .mm-0db{ position:absolute; top:-1px; bottom:-1px; left:88.9%; width:1px; background:var(--ink); opacity:.5; }
  .master-meter .mm-db{ font-family:var(--mono); font-size:11px; color:var(--dim); min-width:30px; text-align:right; }
  .master-meter .mm-clip{ width:10px; height:10px; border-radius:50%; cursor:pointer;
    background:#3a1512; box-shadow:inset 0 0 0 1px var(--edge); transition:background .05s, box-shadow .05s; }
  .master-meter .mm-clip.lit{ background:#ff4436; box-shadow:0 0 8px #ff4436, inset 0 0 0 1px #ff6a5e; }
  body.light .master-meter .mm-cover{ background:#d9d5c8; }
  body.light .master-meter .mm-clip{ background:#e3d3c6; }
  select.dev{
    font-family:var(--mono); font-size:13px; background:#15171a; color:var(--ink);
    border:1px solid var(--edge); border-radius:6px; padding:6px 8px; max-width:170px;
  }
  .spacer{ flex:1 }
  /* ---- settings cog: far-right "set & forget" dropdown ---- */
  .settings-wrap{ position:relative; display:flex; align-items:center; }
  #settingsToggle[aria-expanded="true"]{ box-shadow:inset 0 0 0 1px var(--amber); color:var(--amber-soft); }
  .settings-menu{
    position:absolute; top:calc(100% + 9px); right:0; z-index:30;
    display:flex; flex-direction:column; gap:13px;
    min-width:212px; padding:14px;
    background:linear-gradient(180deg,var(--raised2),var(--raised));
    border:1px solid var(--edge); border-radius:10px;
    box-shadow:0 12px 30px rgba(0,0,0,.45);
  }
  .settings-menu[hidden]{ display:none; }
  /* little pointer toward the cog */
  .settings-menu::before{
    content:""; position:absolute; top:-6px; right:14px; width:11px; height:11px;
    background:var(--raised2); border-left:1px solid var(--edge); border-top:1px solid var(--edge);
    transform:rotate(45deg);
  }
  .settings-row{ display:flex; flex-direction:column; gap:5px; }
  .settings-row.row-h{ flex-direction:row; align-items:center; justify-content:space-between; gap:12px; }
  .settings-row label{ font-size:11px; color:var(--dim); }
  .settings-row select.dev{ width:100%; max-width:none; }
  body.light .settings-menu{ box-shadow:0 12px 26px rgba(60,64,40,.18); }

  /* ---- MIDI panic button ---- */
  .panic-btn{
    margin-left:4px; padding:0; width:30px; height:30px; flex:0 0 auto;
    display:inline-flex; align-items:center; justify-content:center;
    background:transparent; border:none; cursor:pointer; border-radius:6px;
    -webkit-tap-highlight-color:transparent;
  }
  .panic-btn svg{ width:22px; height:22px; display:block; }
  .panic-btn polygon{ fill:#fff; }
  .panic-btn .mark{ fill:#191b1e; }              /* exclamation reads as a cutout */
  .panic-btn:hover polygon{ fill:#fff; filter:drop-shadow(0 0 5px rgba(255,255,255,.55)); }
  .panic-btn:active{ transform:translateY(1px); }
  .panic-btn.flash polygon{ fill:#ff5a4d; }
  .panic-btn.flash .mark{ fill:#fff; }
  body.light .panic-btn polygon{ fill:#2a2c30; }   /* dark octagon stays visible on the pale header */
  body.light .panic-btn .mark{ fill:#f3f1ea; }
  body.light .panic-btn.flash polygon{ fill:#ff5a4d; }

  /* ---- Layout: Signal Path chain + Modulation band (sub-slice 5 reflow) -------------------
     The old deterministic grid is retired. #rack is a vertical stack of bands; the Signal Path
     band holds a horizontal .chain of .stage panels joined by .flow arrows; the Modulation band
     holds a .modrow. Modules keep their .g-* classes (still used for per-module styling hooks),
     but grid-area assignment is gone — placement now comes from the band/stage containers. */
  /* LAYOUT LOCK (2026-07-12, author item 3): the instrument is a FIXED-WIDTH PANEL — on
     larger screens it centers with margins and NEVER reflows (hardware doesn't stretch).
     The header locks with it so the whole thing reads as one panel, not a web page. */
  #topbar, #partTabs, main{ max-width:1470px; margin-left:auto; margin-right:auto; }   /* partTabs is its own strip between header and rack — locks with them */
  main{ padding:12px; padding-bottom:150px; }
  #rack{ display:flex; flex-direction:column; gap:11px; }
  /* Top row: Track (voicing) + Mix (sends/pan/level), title inline-left with a horizontal control row */
  /* Wireframe 2026-07-11: both top modules size to CONTENT (Track no longer greedy), so Mix slides
     left and clears the fold-out tabs on the far right. Controls bottom-align (knob labels share one
     baseline); titles and bare toggles stay vertically centered. */
  .mrow.top-row{ display:flex; gap:11px; align-items:stretch; }   /* .mrow.top-row: outranks .mrow's flex-start so both modules stretch to equal height */
  .top-row > .module{ display:flex; align-items:center; gap:15px; background:var(--slab); border:2px solid var(--line);
    border-radius:10px; padding:9px 14px; box-shadow:var(--shadow); container-type:normal; }
  .top-row > .module.g-voi{ flex:1.62 1 0; }   /* widened again 2026-07-12: preset bar joined and Mode was wrapping — Mix donates its slack (author call) */
  .m-title .m-num{ display:inline-block; min-width:0.72em; }   /* the DIGIT rides in a fixed box: "Track 1..4" render identical widths (a min-width on the whole title only floored it — wide digits still shifted; author: app feels unstable) */
  /* sound-pool block in the Track module (slice 1, author mockup): the top-row module is a
     HORIZONTAL flex (its head renders inline, like MIX), so title+toggle and the preset bar
     share one stacked left column (.track-id) — controls keep their row to the right. */
  .track-id{ display:flex; flex-direction:column; justify-content:center; gap:6px; flex:0 0 auto; min-width:150px; }
  .track-id .m-head{ margin:0; justify-content:flex-start; align-items:center; gap:10px; }   /* toggle hugs the track name, vertically centered — the global space-between flung it to the column edge */
  .preset-bar{ display:flex; align-items:center; gap:6px; padding:0; position:relative; }   /* relative: anchors .pool-pop */
  .pool-pop{ position:absolute; top:calc(100% + 7px); left:0; z-index:32; min-width:212px;
    display:flex; flex-direction:column; gap:9px; padding:11px;
    background:linear-gradient(180deg,var(--raised2),var(--raised));
    border:1px solid var(--edge); border-radius:10px; box-shadow:0 8px 22px rgba(0,0,0,.45); }
  .pool-pop-name{ height:26px; background:var(--panel-2,#26262c); color:var(--ink); border:1px solid var(--line);
    border-radius:6px; font-family:var(--label); font-size:12.5px; letter-spacing:.03em; padding:0 7px; }
  .pool-pop-name:focus{ outline:none; border-color:var(--amber); }
  .pool-pop-btns{ display:flex; gap:7px; }
  .pool-pop-btns .hbtn{ flex:1 1 auto; height:24px; }
  .pool-pop-ow{ border-color:var(--amber); color:var(--amber-soft); }   /* the in-place edit action — eye-catch, not alarm */
  /* 2026-07-17: skin hoisted off .preset-bar so EVERY .preset-sel gets it (the step editor's
     Sound lock was falling to browser-default white — the cascade-ambush pattern again);
     bar-specific LAYOUT stays scoped below. */
  .preset-sel{ height:26px; background:var(--panel-2,#26262c);
    color:var(--lbl); border:1px solid var(--line); border-radius:6px; font-family:var(--label);
    font-size:11px; letter-spacing:.05em; text-transform:uppercase; padding:0 6px; }
  .preset-bar .preset-sel{ flex:1 1 auto; min-width:0; }
  .sp-sound{ min-width:110px; }
  .preset-bar .preset-add{ flex:0 0 auto; width:26px; height:26px; padding:0; font-size:15px; line-height:1; }
  .preset-dice svg{ width:15px; height:15px; display:block; margin:0 auto; fill:currentColor; }   /* flat die icon */   /* UNLINKED from .col-left (2026-07-11): Drift knob moved in; extra width eaten from Mix by decision — Track/osc edge alignment consciously dropped */
  .top-row > .module.g-fx{ flex:1.0 1 0; }   /* content stays left-aligned; module narrower than the filter column below it */
  .top-row .m-head{ margin:0; flex:0 0 auto; }
  .top-row .m-title{ font-size:17px; }
  .top-row > .module > .row{ flex:0 1 auto; gap:10px 15px; align-items:flex-end; flex-wrap:nowrap; }
  .top-row > .module > .row > .toggle{ align-self:center; }
  .top-row .vdivider{ min-height:0; }   /* align-self:stretch spans it; min-height would inflate the module */

  /* Module rows (wireframe arrangement: full-width osc block, then Filter/Amp, then LFOs/Envelopes) */
  .mrow{ display:flex; gap:11px; align-items:flex-start; }
  .mrow > .module{ flex:1 1 auto; min-width:0; }
  /* Inline knob values dropped on the synth page — the LCD is the readout now (hover or drag a knob).
     Anchored to #rack.synth-view (a stable flag), so it survives layout restructures. FX/mixer/system keep values. */
  #rack.synth-view .knob-wrap .val{ display:none; }
  /* Two-column masonry (wireframe): left = osc + LFOs; right = filters/matrix, envelopes, amp */
  .synth-cols{ display:flex; gap:11px; align-items:stretch; }   /* columns bottom-align (wireframe) */
  .synth-col{ display:flex; flex-direction:column; gap:11px; min-width:0; }
  /* LFO row soaks up whatever height the right column adds, so nothing dangles below the LFOs */
  .col-left > .lfo-row{ flex:1 1 auto; align-items:stretch; }
  .col-left{ flex:1.12 1 0; }
  .col-right{ flex:1.0 1 0; }
  .col-row{ display:flex; gap:11px; align-items:flex-start; }
  .amp-row{ align-items:stretch; }   /* Amp stretches to match Env 2's height */
  .col-right > .amp-row{ flex:1 1 auto; }   /* absorbs the right column's slack (mirrors .lfo-row on the left) so Env 2 + Amp reach the same bottom line as the LFOs */
  .col-row > .module{ flex:1 1 0; min-width:0; }
  .fm-row{ align-items:stretch; }   /* matrix box reaches the filter module's height */
  .fm-row > .g-flt{ flex:2.1 1 0; min-width:0; }
  .fm-row > .g-mtx{ flex:1 1 0; min-width:0; }
  /* Merged Filters module (wireframe 2026-07-11): Filter 1 + Filter 2 as two rows of ONE grid split
     by a horizontal divider, so the Frequency/Resonance/third-control columns of both rows align.
     Row anatomy: controls-left (title+type head, key-track / on-toggle+slope sub) | Freq | Reso | EG·SER/PAR */
  .filters-mod .flt-grid{ display:grid; grid-template-columns:minmax(0,1fr) auto auto auto;
    column-gap:16px; row-gap:12px; align-items:end; justify-items:center; }   /* bottom-align each row's parts */
  .flt-grid .knob-wrap{ width:auto; }
  .flt-grid .knob-wrap .lbl{ white-space:nowrap; }
  .flt-grid > .flt-left{ justify-self:start; display:flex; flex-direction:column; gap:11px; min-width:0; }
  .flt-head{ display:flex; align-items:center; gap:10px; }
  .flt-head .m-title{ white-space:nowrap; }
  .flt-head .fh-type .lbl{ display:none; }
  .flt-head .fh-type .seg-btns{ flex-wrap:nowrap; }
  .flt-head .fh-type .seg-btns button{ padding:5px 7px; }
  .flt-sub{ display:flex; align-items:flex-end; gap:12px; }
  .flt-sub .seg .seg-btns{ flex-wrap:nowrap; }
  .seg > .lbl:empty{ display:none; }   /* label-less segmented (e.g. Slope) leaves no ghost gap */
  .flt-div{ grid-column:1/-1; justify-self:stretch; height:2px; background:var(--edge-soft); border-radius:1px; }
  /* enlarged filter cutoff knob */
  .kw-big .knob{ --knob:58px; }

  /* Inline Mod Matrix (V4.1, wireframe 2026-07-11): Source + Destination STACKED in a column with the
     Amount knob beside them; captions dropped (label lives inside the dropdown as the 'off' text).
     Slot grid below (compact height). No wrap — the knob can't fall to a second line. */
  .mtx-inline{ display:flex; flex-direction:column; gap:11px; }
  .mtx-inline .mtx-slots{ margin-top:auto; }   /* stretched box: editor stays top, slot grid pins bottom */
  .mtx-ed{ display:flex; flex-direction:row; align-items:center; gap:13px; flex-wrap:nowrap; }
  .mtx-selcol{ display:flex; flex-direction:column; gap:8px; flex:1 1 auto; min-width:0; }
  .mtx-ed .modsel{ width:100%; max-width:100%; }
  .mtx-ed .modsel .lbl{ display:none; }
  .mtx-ed .modsel select{ width:100%; min-width:0; }
  .mtx-ed .knob-wrap{ width:auto; flex:0 0 auto; }
  .mtx-slots{ display:grid; grid-template-columns:repeat(5,1fr); gap:4px; }
  .mtx-slot{ font-family:var(--mono); font-size:11px; font-weight:700; height:24px; border-radius:5px;
    border:2px solid var(--line); background:var(--slab-hi); color:var(--dim); cursor:pointer; position:relative; }
  .mtx-slot:hover{ color:var(--ink); }
  .mtx-slot.used{ color:var(--amber-soft); }
  .mtx-slot.used::after{ content:""; position:absolute; top:2px; right:2px; width:5px; height:5px; border-radius:50%; background:var(--amber); }
  .mtx-slot.sel{ background:var(--amber); color:var(--well); border-color:var(--amber); }
  .mtx-slot.sel.used::after{ background:var(--well); }

  /* Visual envelopes (row 3) + LFO/Amp row (row 4) */
  .mrow-env > .module, .mrow-lfo > .module{ flex:1 1 0; min-width:0; }
  .env-mod{ display:flex; flex-direction:column; gap:10px; }
  .env-head{ display:flex; align-items:center; gap:10px; }
  .env-toggles{ margin-left:auto; display:flex; gap:12px; }
  .env-panel{ display:flex; }
  .env-box{ position:relative; width:100%; height:96px; background:var(--well); border-radius:8px;
    box-shadow:inset 0 0 0 2px var(--line); }
  .env-svg{ position:absolute; inset:0; width:100%; height:100%; border-radius:8px; display:block; }
  .env-line{ fill:none; stroke:var(--amber-soft); stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
  .env-fill{ fill:var(--amber); opacity:.10; stroke:none; }
  .env-hd{ position:absolute; width:13px; height:13px; margin:-7px 0 0 -7px; border-radius:50%;
    background:var(--ink); box-shadow:0 0 0 2px var(--well), 0 1px 3px rgba(0,0,0,.55); z-index:2; touch-action:none; }
  .env-hd:hover{ background:#fff; }
  .env-hd.h-a, .env-hd.h-r{ cursor:ew-resize; }
  .env-hd.h-ds{ cursor:move; }

  /* LFO module (wireframe 2026-07-11, lfo-upgrade): 2-col grid — col 1 title/Rate, col 2 Shape row
     over the control row, so Sync/One-Shot start at the Shape row's left edge. Row 2 bottom-aligns
     (Rate/Sync/One-Shot/Phase labels share one baseline). */
  .lfo-mod{ display:flex; flex-direction:column; }
  .lfo-mod .knob, .g-vca .knob{ --knob:50px; }   /* match the enlarged oscillator knobs */
  .lfo-grid{ flex:1; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto 1fr;
    column-gap:24px; row-gap:14px; align-items:start; min-width:0; }
  .lfo-grid > .m-title{ align-self:center; white-space:nowrap; }
  .lfo-grid > .lfo-shape{ justify-self:start; }
  .lfo-grid > .lfo-shape .seg-btns{ flex-wrap:nowrap; }
  .lfo-grid > .knob-wrap{ align-self:end; justify-self:start; }
  .lfo-ctl{ align-self:end; display:flex; align-items:flex-end; gap:22px; min-width:0; }
  .lfo-togs{ display:flex; flex-direction:column; gap:11px; align-items:flex-start; }
  .lfo-togs .toggle{ flex-direction:row; align-items:center; gap:8px; white-space:nowrap; }
  .lfo-togs .toggle .lbl{ font-size:var(--fs-xs,11px); font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--lbl); }
  /* waveform scope + phase slider (labels bottom-align with the toggles via .lfo-ctl align-items:end) */
  .lfo-scope{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; align-items:center; gap:8px; }
  .lfo-scope-cv{ display:block; width:100%; height:64px; background:var(--well); border-radius:8px;
    box-shadow:inset 0 0 0 2px var(--line); }
  .lfo-phase{ -webkit-appearance:none; appearance:none; width:calc(100% - 10px); height:3px; margin:4px 0;
    border-radius:2px; background:var(--amber-soft); outline:none; cursor:ew-resize; }
  .lfo-phase::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:15px; height:15px;
    border-radius:50%; background:var(--ink); box-shadow:0 0 0 2px var(--well); cursor:ew-resize; }
  .lfo-phase::-moz-range-thumb{ width:15px; height:15px; border-radius:50%; background:var(--ink);
    border:2px solid var(--well); cursor:ew-resize; }
  .lfo-scope > .lbl{ font-size:var(--fs-xs,11px); font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--lbl); }

  /* Merged Oscillators + Noise: one set of column headers over 3 osc rows + a noise row */
  .osc-grid{ display:grid; align-items:center;
    grid-template-columns: 34px minmax(140px,0.7fr) 54px 54px 54px 58px 66px 64px 84px 54px;   /* pwm 58 / level 66 / free 54: air on BOTH sides of the c-div and c-free dividers (~4-8px, matching the fm side) */
    column-gap:7px; row-gap:0; }
  .osc-h{ font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--dim);
    text-align:center; padding:0 0 6px; }
  .osc-c{ display:flex; align-items:center; justify-content:center; padding:9px 0; min-height:78px;
    align-self:stretch; }   /* stretch: seam borders share one line even when cell contents differ in height */
  .osc-c.c-wave, .osc-c.c-typespan{ justify-content:flex-start; }   /* wave/type groups sit left, natural width */
  /* number badge = source on/off (step-LED grammar: flat amber on, dark well off) */
  .osc-tog{ min-width:26px; height:26px; padding:0 6px; border-radius:6px; cursor:pointer;
    border:1px solid var(--edge); background:var(--well); color:var(--dim);
    font-family:var(--mono); font-weight:700; font-size:13px; line-height:1; }
  .osc-tog.on{ background:var(--amber); border-color:var(--line); color:var(--well); }
  .osc-tog:hover{ filter:brightness(1.12); }
  /* filter balance: bipolar knob over F1/F2 end tags (gate-knob ends pattern) */
  .osc-c.c-bal{ padding:4px 0; }   /* the F1/F2 tag stack must fit INSIDE the 78px row, not grow it */
  .osc-bal{ display:flex; flex-direction:column; align-items:center; gap:2px; }
  .bal-ends{ display:flex; justify-content:space-between; width:100%; max-width:54px;
    font-family:var(--mono); font-size:9px; color:var(--dim); line-height:1; }
  .osc-merged .knob-wrap{ width:auto; gap:2px; }
  .osc-merged .knob{ --knob:50px; }   /* enlarged (default 42px): fills the freed width + adds module height */
  .osc-merged .knob-wrap .lbl{ display:none; }        /* one set of labels = the column headers */
  .osc-c.c-fm .knob-wrap{ flex-direction:row; gap:7px; }   /* FM route tag rides beside the knob (wireframe markers) */
  .osc-merged .osc-c.c-fm .knob-wrap .lbl{ display:block; font-size:9px; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase; color:var(--dimmer); white-space:nowrap; }
  .osc-merged .toggle{ justify-content:center; gap:0; }
  .osc-merged .seg{ width:auto; }
  .osc-merged .seg-btns{ justify-content:flex-start; flex-wrap:nowrap; }
  .osc-merged .seg-btns button{ padding:5px 7px; min-width:0; flex:0 0 auto; }
  .osc-merged .seg-btns button svg{ width:19px; height:11px; }
  .osc-c.c-typespan{ grid-column: span 2; }           /* noise Type borrows the empty OCT cell; Pitch sits in FINE */
  /* vertical section dividers (header + body cells share the class so the line is continuous) */
  .osc-h.c-div, .osc-c.c-div, .osc-h.c-fm, .osc-c.c-fm, .osc-h.c-free, .osc-c.c-free{ border-left:2px solid var(--edge-soft); }
  /* horizontal seam above the noise row (last 10 grid children) */
  .osc-grid > *:nth-child(n+41){ border-top:2px solid var(--edge-soft); padding-top:12px; }
  .band{ display:flex; flex-direction:column; gap:9px; }
  .band-label{ display:flex; align-items:center; gap:9px; margin:2px 2px -2px; }
  .band-label .tick{ width:8px; height:8px; background:var(--amber); border-radius:2px; }
  .band-label .bl{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--dim); font-weight:800; }
  .band-label .rule{ flex:1; height:2px; background:var(--raised); border-radius:2px; }
  .chain{ display:flex; align-items:stretch; gap:0; }
  .stage{ background:var(--slab); border:2px solid var(--line); border-radius:10px; padding:9px 12px 11px;
    display:flex; flex-direction:column; min-width:0; flex:1 1 auto; box-shadow:var(--shadow); }
  .flow{ flex:0 0 30px; display:flex; align-items:center; justify-content:center; }
  .flow::before{ content:""; width:24px; height:14px; background:var(--amber);
    clip-path:polygon(0 32%, 52% 32%, 52% 6%, 100% 50%, 52% 94%, 52% 68%, 0 68%); }
  .s-head{ display:flex; align-items:center; gap:8px; margin-bottom:9px; }
  .s-num{ font-family:var(--mono); font-weight:700; font-size:11px; color:var(--well); background:var(--amber);
    border-radius:4px; min-width:19px; height:19px; display:inline-flex; align-items:center; justify-content:center; }
  .s-title{ font-size:15px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--ink); }
  .s-kind{ font-size:9px; font-weight:600; letter-spacing:.16em; color:var(--dimmer); text-transform:uppercase; margin-left:auto; }
  .s-body{ flex:1; min-height:0; display:flex; flex-direction:column; gap:9px; }
  .modrow{ display:flex; gap:10px; align-items:stretch; }
  .modrow > .module{ flex:1 1 auto; min-width:0; }
  /* intermediate: flatten nested module panels inside a stage so they read as sections rather than
     boxes-in-boxes. Full strip conversion is the per-module detail pass that follows this reflow. */
  .stage .module{ background:none; border:none; box-shadow:none; border-radius:0; padding:0; container-type:normal; }
  .stage .module .m-title{ font-size:12px; color:var(--dim); letter-spacing:.1em; }
  .stage .module .m-kind{ display:none; }
  /* FX page: swap the synth grid for a flexible row of standalone effect modules */
  /* FOUR EQUAL COLUMNS (2026-08-08). Was a wrapping flex row with per-module flex bases, which made
     the four effects four different widths AND let the tall one push the rest onto a second row —
     the Bus Comp ended up under the on-screen keyboard. A four-track grid is uniform and, more
     importantly, cannot reflow: nothing can push anything down because nothing is below anything. */
  #rack.view-fx{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:10px; }
  /* stretch, not start: four panels of the SAME size read as a set. Top-aligned natural heights left
     the two short ones floating with a ragged baseline across the row. */
  #rack.view-fx .fxmod{ min-width:0; }
  /* Tighter innards: four columns is less width each, and the old padding was tuned for a full-width
     comp strip. Knobs and groups close up rather than the panels growing taller. */
  #rack.view-fx .module{ padding:9px 10px 10px; }
  #rack.view-fx .fxmod .row{ gap:8px; row-gap:9px; flex-wrap:wrap; }
  #rack.view-fx .fxmod .group{ gap:8px; }
  #rack.view-fx .fxmod .knob-wrap{ min-width:0; }
  /* A toggle standing in a row of knobs sits on the DIAL centre line, not the top of the row. The
     switch is 20px and the dial 42, so it drops by half the difference — derived, not hardcoded, so
     it tracks the knob size. (Only direct row children: the comp's In switch lives in a colstack
     beside the GR meter, where top alignment is right.) */
  #rack.view-fx .fxmod .row > .toggle{ margin-top:calc((var(--knob,42px) - 20px) / 2); }
  /* In + GR meter sit SIDE BY SIDE in the narrow column. Stacked they cost a full 84px line of their
     own, which was the difference between the comp fitting and slipping under the fixed keyboard on
     a shorter screen. */
  #rack.view-fx .fxmod-comp .colstack{ flex-direction:row; align-items:center; gap:16px; }
  /* The master is the exception among the four — a quiet tag rather than a full-width header. */
  #rack.view-fx .m-tag{ font-family:var(--label); font-size:var(--fs-2xs,10px); letter-spacing:.12em;
    text-transform:uppercase; color:var(--dimmer); white-space:nowrap; }
  /* Bus-comp gain-reduction meter: 0..20 dB bar + fixed-width readout (dynamic numbers live in
     fixed chrome). Amber fill = audio-domain reduction. */
  .comp-gr{ display:flex; flex-direction:column; align-items:center; gap:4px; min-width:88px; }
  .comp-gr-bar{ position:relative; width:84px; height:10px; border-radius:3px; overflow:hidden;
    background:var(--raised2); box-shadow:inset 0 0 0 1px var(--edge); }
  .comp-gr-bar i{ position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--amber); }
  .comp-gr-val{ font-family:var(--mono); font-size:11px; width:44px; text-align:center; color:var(--amber-soft); }
  #rack.view-fx .rvb-tabs{ display:flex; flex-wrap:wrap; gap:3px; margin-bottom:10px; }
  #rack.view-fx .rvb-tab{ font:inherit; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
    color:var(--dim); background:transparent; border:1px solid var(--edge); border-radius:6px;
    padding:4px 9px; cursor:pointer; transition:color .12s,border-color .12s; }
  #rack.view-fx .rvb-tab:hover{ color:var(--ink); }
  #rack.view-fx .rvb-tab.on{ color:var(--ink); border-color:var(--amber-soft); background:rgba(0,0,0,.18); }
  #rack.view-fx .fxmod-rvb .hrule{ height:1px; background:var(--edge); opacity:.7; margin:7px 0 5px; }
  .part-tab.fx-tab .dot{ background:var(--ink); box-shadow:none; opacity:.4; }
  .part-tab.fx-tab.on .dot{ opacity:1; box-shadow:0 0 6px var(--ink); }
  .module{
    background:var(--slab); border:2px solid var(--line); border-radius:10px; padding:var(--pad-module,9px 12px 11px);
    box-shadow:var(--shadow); position:relative; min-width:0;
    container-type:inline-size;
  }
  .m-head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:8px; }
  .m-title{ font-size:var(--fs-lg,15px); font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink);}
  .m-kind{ font-size:var(--fs-2xs,10px); letter-spacing:.16em; color:var(--dimmer); text-transform:uppercase;}
  .row{ display:flex; flex-wrap:wrap; gap:var(--gap-controls,10px 13px); align-items:flex-start; }

  /* ---- Knob ---- */
  .knob-wrap{ display:flex; flex-direction:column; align-items:center; gap:var(--gap-knob,5px); width:50px; position:relative; }
  /* v3 knob (sub-slice 2): value shown by an accent fill arc (--fa..--fb); a recessed
     center cap; a small cap-dot pointer. Unipolar knobs fill from min (--fa defaults to 0,
     --fb derives from --ang); bipolar knobs get --fa/--fb set in JS to fill out from center. */
  .knob{
    --knob:42px; --fa:0deg; --fb:calc(var(--ang, -135deg) + 135deg); --acc:var(--amber-soft);
    width:var(--knob); height:var(--knob); border-radius:50%; position:relative; cursor:ns-resize;
    touch-action:none; flex:0 0 auto; user-select:none;
  }
  .knob::before{ /* value fill ring */
    content:""; position:absolute; inset:0; border-radius:50%;
    background:conic-gradient(from -135deg,
      var(--track-col) 0 var(--fa),
      var(--acc) var(--fa) var(--fb),
      var(--track-col) var(--fb) 270deg,
      transparent 270deg 360deg);
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 7px), #000 calc(100% - 7px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 7px), #000 calc(100% - 7px));
  }
  .knob::after{ /* flat center cap — completely flat, no gradient (key to the Solid look) */
    content:""; position:absolute; inset:8px; border-radius:50%;
    background:var(--raised2);
    box-shadow:inset 0 0 0 2px var(--line);
  }
  .knob:hover::after{ filter:brightness(1.14); }
  .knob .cap-dot{ /* pointer */
    content:""; position:absolute; left:50%; top:9px; width:3px; height:9px; margin-left:-1.5px;
    border-radius:2px; background:var(--ink); z-index:2;
    transform-origin:50% calc(var(--knob)/2 - 9px); transform:rotate(var(--ang,-135deg));
  }
  .knob-wrap .lbl{ font-size:var(--fs-xs,11px); color:var(--lbl); font-weight:600; letter-spacing:.05em; text-transform:uppercase; text-align:center; line-height:1.05;}
  .knob-wrap .val{ font-family:var(--mono); font-size:var(--fs-xs,11px); color:var(--amber-soft); min-height:13px;}

  /* ---- Segmented / select / toggle ---- */
  /* v3 segmented (sub-slice 3): flat chunky buttons; 2px gaps reveal the dark well as dividers;
     active button is solid amber. */
  .seg{ display:flex; flex-direction:column; gap:4px; }
  .seg .lbl{ font-size:var(--fs-sm,12px); color:var(--dim); font-weight:600; letter-spacing:.06em; text-transform:uppercase;}
  .seg-btns{ display:flex; gap:2px; background:var(--line); border:2px solid var(--line); border-radius:7px; overflow:hidden; flex-wrap:nowrap;}   /* 2026-07-12: a wrapped segmented reads as two controls — never wrap; width comes from module flex */
  .seg-btns button{
    font-family:var(--label); font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
    background:var(--slab-hi); color:var(--dim); border:none; border-radius:0; padding:6px 9px; line-height:1; cursor:pointer; min-width:27px;
  }
  .seg-btns button svg{ width:22px; height:13px; display:block; margin:0 auto; }
  .seg-btns button:hover:not(.on){ color:var(--ink); background:#343941; }
  .seg-btns.vert{ flex-direction:column; flex-wrap:nowrap; align-items:stretch; }
  .seg-btns.vert button{ text-align:left; padding:6px 11px; }
  .seg-btns.vert.center button{ text-align:center; padding-left:6px; padding-right:6px; }
  /* 2x2 (or NxN) grid layout — gaps reveal the well colour as dividers */
  .seg-btns.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:2px; flex-wrap:nowrap; }
  .colstack{ display:flex; flex-direction:column; gap:10px; align-items:stretch; }
  .colstack .knob-wrap{ align-self:center; }
  /* Mixer: each source is a switch (left) + level knob (right) on one line, vintage-console style */
  .g-mix .colstack{ gap:14px; }
  .g-mix .colstack > .row{ flex-wrap:nowrap; justify-content:space-between; align-items:center; gap:12px; width:100%; }
  .g-mix .colstack > .row .knob-wrap{ align-self:center; margin:0; }
  .seg-btns button.on{ background:var(--amber); color:var(--well); }
  /* v3 toggle (sub-slice 3): flat rounded-rect switch; grey thumb off, amber thumb + teal track on. */
  .toggle{ display:flex; align-items:center; gap:8px; }
  .switch{ width:38px; height:20px; border-radius:5px; background:var(--well); box-shadow:inset 0 0 0 2px var(--line);
    position:relative; cursor:pointer; flex:0 0 auto;}
  .switch i{ position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:3px;
    transition:left .12s, background .12s; background:var(--dimmer);}
  .switch.on{ background:var(--teal-dim); }
  .switch.on i{ left:21px; background:var(--amber-soft);}
  .toggle .lbl{ font-size:var(--fs-md,13px); color:var(--lbl); font-weight:600; text-transform:uppercase; letter-spacing:.06em;}
  .switch.on ~ .lbl{ color:var(--amber-soft); }
  /* inert switch: present but not yet functional (sync slice B) — flat-dimmed, no pointer */
  .switch.inert{ opacity:.35; cursor:default; pointer-events:none; }
  .switch.inert ~ .lbl{ opacity:.5; }
  /* slice B: tempo knob while slaved to external clock — slaved gray, immovable (JS guard is
     the authority; pointer-events is the belt to its suspenders) */
  .knob-wrap.ext-locked{ opacity:.4; pointer-events:none; }
  /* on/off switch that sits in a module title bar */
  .m-switch{ display:flex; align-items:center; gap:8px; align-self:center; cursor:pointer; }
  .m-switch .lbl{ font-size:var(--fs-sm,12px); color:var(--lbl); font-weight:600; text-transform:uppercase; letter-spacing:.1em; min-width:22px; }
  .m-switch .switch{ width:34px; height:18px; }
  .m-switch .switch i{ width:12px; height:12px; }
  .m-switch .switch.on i{ left:19px; }

  /* mod-source dropdown (compact, matches segmented control) */
  .modsel{ display:flex; flex-direction:column; gap:5px; }
  .modsel .lbl{ font-size:var(--fs-sm,12px); color:var(--dim); letter-spacing:.06em; text-transform:uppercase;}
  .modsel select{
    font-family:var(--label); font-size:14px; letter-spacing:.03em; text-transform:uppercase;
    background:#191b1e; color:var(--ink); border:1px solid var(--edge); border-radius:7px;
    padding:6px 7px; cursor:pointer; min-width:72px;
  }
  .modsel select.routed{ color:var(--amber-soft); border-color:var(--amber);}
  .modsel select:focus{ outline:none; border-color:var(--amber);}

  /* ---- Sequencer ---- */
  .seq-grid{ display:grid; grid-template-columns:repeat(16,1fr); gap:5px; }
  .step{ display:flex; flex-direction:column; align-items:center; gap:var(--gap-step,5px);
    background:#15171a; border:1px solid var(--edge); border-radius:7px; padding:7px 2px 0; position:relative;}
  /* Playhead (2026-07-17, author): the running position lights the step's TRIG LED instead of
     outlining the whole cell — the chasing-light, small and peripheral. The light passes
     over ON and OFF steps alike (brighter than the on-state olive so it reads on both). Pink
     .sel outline (edit focus) is untouched — time is transient, focus is deliberate. */
  .step.cur .led{ background:#dce9b4; border-color:var(--amber); color:#1b1d21; }
  /* pink = the selected step (bound to the edit panel); composes with the amber playhead */
  .step.sel{ border-color:var(--pink); box-shadow:0 0 0 1px var(--pink); }
  /* ---- transpose mod lane (song mode) ---- */
  .xlane{ margin-top:12px; border-top:1px solid var(--edge); padding-top:10px; display:flex; flex-direction:column; gap:8px; width:100%; }
  .g-song .xlane{ margin-top:0; border-top:none; padding-top:0; }
  .xl-head{ display:flex; align-items:flex-end; gap:17px; flex-wrap:wrap; }   /* shared baseline, like .seq-head */
  .xl-head .xl-title, .xl-head .xl-song{ align-self:center; }
  .xl-title{ font-size:var(--fs-lg,15px); font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink); }   /* 2026-07-17: pinned identical to .tg-title (was 12px amber — the header-size mismatch) */
  .xl-cap{ font-size:var(--fs-sm,12px); color:var(--dim); letter-spacing:.06em; text-transform:uppercase; }   /* matches .seq-len .lbl */
  .xl-en{ padding:5px 12px; border-radius:6px; border:1px solid var(--edge); background:var(--raised); color:var(--dim);
    font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
  .xl-en:hover{ border-color:var(--amber); color:var(--amber-soft); }
  .xl-en.on{ background:var(--amber); color:var(--well); border-color:var(--line); }   /* flat Solid */
  .xl-len{ display:flex; align-items:center; gap:6px; }
  /* (old .xl-rate button styles retired 2026-07-11: Rate now wears the shared .seg/.seg-btns classes) */
  .xl-len input[type=range]{ width:96px; accent-color:var(--amber); cursor:pointer; }
  .xl-lenval{ font-family:var(--mono); font-size:12px; color:var(--amber-soft); min-width:18px; text-align:right; }
  /* ---- trance gate lane (2026-07-14, round 2: plain 1/16 gates): 16 level cells inside the
     sequencer's LEFT COLUMN, sharing the grid's 16-col template and 5px gap — cell/step
     alignment is structural. Header row BELOW the cells (the documented UI exception). Fill
     is the track green (--amber), the same family as every audio-domain element. ---- */
  .seq-left{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:10px; }
  .tgate .tg-cells{ display:grid; grid-template-columns:repeat(32,1fr); gap:5px; }   /* 1/32: TWO cells per note-grid step (grid is repeat(16)); same 5px gap */
  .tg-cell{ height:30px; border-radius:5px; background:#15171a; border:1px solid var(--edge);
    position:relative; overflow:hidden; cursor:pointer; user-select:none; touch-action:none; }
  .tg-cell:hover{ border-color:var(--amber); }
  .tg-fill{ position:absolute; left:0; right:0; bottom:0; height:0%; background:var(--amber); pointer-events:none; }
  .tg-cell.set{ border-color:var(--teal-dim); }
  /* Gate playhead (2026-07-17, author): runs like the note grid's LED chase but DELIBERATELY
     near-subliminal — the lane is polymetric (own division/length), so the moving cell shows the
     two clocks phasing without competing with the primary chase. Border warms to muted olive,
     background lifts a shade; the loud 2px outline is retired. */
  .tg-cell.cur{ border-color:rgba(147,169,97,.55); background:#1a1d18; }
  .tg-head{ display:flex; align-items:center; gap:17px; margin-top:12px; }   /* breathing room over the header (author eye-check, round 3) */
  .tg-title{ font-size:var(--fs-lg,15px); font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink); }
  /* transpose lane: reserve the step-panel column's width (216px + the 14px body gap) so its
     16 cells fall on the SAME columns as the note grid and the gate lane above — the OCD fix.
     Known limit: when a narrow viewport wraps the panel under the grid, the reserve overhangs. */
  .g-song .xlane{ padding-right:calc(216px + 14px); }

  .xl-cells{ display:grid; grid-template-columns:repeat(16,1fr); gap:5px; }
  .xl-cell{ height:34px; display:flex; align-items:center; justify-content:center; border-radius:7px;
    background:#15171a; border:1px solid var(--edge); color:var(--ink); font-family:var(--mono); font-size:13px;
    font-weight:700; cursor:pointer; position:relative; user-select:none; }
  .xl-cell:hover{ border-color:var(--amber); }
  .xl-cell.set{ background:linear-gradient(180deg,var(--pink),#c33c81); color:#fff; border-color:var(--pink); }
  .xl-cell.sel{ box-shadow:0 0 0 2px var(--amber-soft); }
  .xl-cell.armed{ border-color:var(--pink); box-shadow:0 0 0 2px var(--pink), 0 0 10px -1px var(--pink); animation:xlblink .7s steps(1) infinite; }
  @keyframes xlblink{ 50%{ box-shadow:0 0 0 2px transparent; border-color:var(--edge); } }
  /* Transpose chase (2026-07-17): unified with the subtle gate treatment, but border-warm ONLY —
     .set cells carry their state in the background (pink), so a background shift would mask
     content while the playhead passes. */
  .xl-cell.cur{ border-color:var(--amber-soft); }
  .xl-cell.beyond{ opacity:.28; cursor:default; }
  .xl-cell.cond::after{ content:''; position:absolute; top:3px; right:3px; width:5px; height:5px; border-radius:50%;
    background:var(--amber-soft); box-shadow:0 0 3px var(--amber); }
  .xl-cond{ display:flex; align-items:center; gap:8px; }
  .xl-cond input[type=range]{ width:160px; accent-color:var(--pink); cursor:pointer; }
  .xl-condval{ font-family:var(--mono); font-size:11px; color:var(--amber-soft); min-width:44px; }
  .xpose-toggle{ display:flex; align-items:flex-end; }
  body.light .xl-en.on{ background:linear-gradient(180deg,#dde5cd,#cdd9b6); color:var(--amber-soft); }
  /* grid + edit panel side by side */
  .seq-body{ display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; }
  .seq-body .seq-grid{ flex:1 1 auto; min-width:0; }
  .step-panel{ flex:0 0 216px; width:216px; background:#15171a; border:1px solid var(--edge); border-radius:9px;
    padding:11px 12px; display:flex; flex-direction:column; gap:11px; }
  /* column that stacks the step panel with the global honor-locks toggle (the column is the 216px
     flex item in .seq-body; the panel inside sizes to content so its flex-basis isn't read as height) */
  .step-panel-col{ flex:0 0 216px; width:216px; display:flex; flex-direction:column; gap:9px; }
  .step-panel-col .step-panel{ flex:0 0 auto; width:100%; }
  .honor-locks{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px;
    background:#15171a; border:1px solid var(--edge); border-radius:9px; cursor:pointer; user-select:none; }
  .honor-locks .hl-lbl{ font-size:var(--fs-xs,11px); color:var(--dim); text-transform:uppercase; letter-spacing:.07em; }
  .honor-locks .switch{ width:36px; height:20px; flex:none; }
  .honor-locks .switch i{ width:14px; height:14px; }
  .honor-locks .switch.on i{ left:19px; }
  .sp-head{ font-family:var(--label); text-transform:uppercase; letter-spacing:.08em; font-size:13px; font-weight:700; line-height:1.3; }
  .sp-head .sp-edit{ color:var(--ink); }
  .sp-head .sp-stepnum{ color:var(--pink-soft); }
  .sp-head .sp-dash{ color:var(--dim); }
  .sp-head .sp-note{ font-family:var(--mono); font-size:12px; color:var(--amber-soft); letter-spacing:0; }
  .step-panel .hbtn{ white-space:nowrap; }
  .sp-section{ display:flex; flex-direction:column; gap:7px; border-top:1px solid var(--edge); padding-top:9px; }
  .sp-section:first-child{ border-top:none; padding-top:0; }
  .sp-title{ font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--dim); }
  .sp-title-row{ display:flex; justify-content:space-between; align-items:baseline; }
  .sp-title-row .sp-val{ color:var(--amber-soft); }
  .sp-row{ display:flex; align-items:center; gap:8px; }
  .sp-row .sp-lbl{ font-size:var(--fs-xs,11px); color:var(--dim); min-width:52px; }
  .sp-row input[type=range]{ flex:1; accent-color:var(--pink); cursor:pointer; min-width:0; }
  .sp-row .sp-val{ font-family:var(--mono); font-size:11px; color:var(--amber-soft); min-width:38px; text-align:right; }
  .sp-wide{ width:100%; accent-color:var(--pink); cursor:pointer; }
  .sp-btnrow{ display:flex; align-items:stretch; gap:8px; }
  .sp-btnrow .sp-arm{ flex:1; }
  .sp-div{ width:1px; align-self:stretch; background:var(--edge); flex:0 0 auto; }
  .sp-btns{ display:flex; gap:6px; flex-wrap:wrap; }
  .sp-reset{ width:100%; }
  .sp-arm.on, .sp-arm.on:hover{ background:var(--pink); border-color:var(--pink-soft); color:var(--well); box-shadow:none; }   /* armed: lighter-pink ring; :hover pinned so .hbtn:hover's amber can't bleed through */
  .hbtn:focus{ outline:none; }
  .hbtn:focus-visible{ outline:2px solid var(--amber-soft); outline-offset:2px; }
  .sp-arm.on:focus-visible{ outline-color:var(--pink-soft); }
  body.light .step-panel{ background:#f3f1ea; }
  /* pitch fader (Solid): well track, amber fill, white handle riding the level; fill+handle driven
     by --p; handle stays inside the frame (no edge peek). Disabled = dimmed + inert. */
  .pfader{ --p:.5; position:relative; width:16px; height:96px; margin:0 auto; background:var(--well);
    border-radius:4px; cursor:ns-resize; touch-action:none; user-select:none;
    box-shadow:inset 0 0 0 2px var(--line); }
  .pfader .pf-fill{ position:absolute; left:2px; right:2px; bottom:2px; border-radius:2px;
    height:calc(var(--p)*(100% - 4px)); background:var(--amber); opacity:.55; }
  .pfader .pf-hd{ position:absolute; left:-4px; right:-4px; height:8px; border-radius:2px;
    bottom:calc(2px + var(--p)*(100% - 12px)); background:var(--ink);
    box-shadow:0 2px 0 var(--line); pointer-events:none; }
  .pfader:hover .pf-hd{ background:#fff; }
  .pfader.disabled{ opacity:.35; pointer-events:none; }
  .pitch-read{ font-family:var(--mono); font-size:var(--fs-2xs,10px); color:var(--amber-soft);}
  .gate{ width:100%; max-width:30px; height:20px; border-radius:5px; border:1px solid var(--edge); background:#1f2227;
    cursor:pointer; }
  .gate.on{ background:var(--amber); border-color:var(--line); }
  /* new step-cell parts (phase 1): green on/off LED, rotary gate knob, audition speaker */
  .step .shead{ display:flex; flex-direction:column; align-items:center; gap:3px; width:100%; }
  .led{ width:100%; max-width:32px; height:20px; border-radius:5px; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:13px; font-weight:700; color:#1b1d21;
    border:1px solid var(--line); background:var(--amber); box-shadow:none; }   /* number-in-LED (2026-07-17): flat pill carries the step number */
  .led:hover{ filter:brightness(1.12); }
  .led.off{ background:var(--well); border-color:var(--edge); color:var(--lbl); }
  .sgate{ display:flex; flex-direction:column; align-items:center; gap:2px; width:100%; }
  .sknob{ width:40px; height:40px; border-radius:50%; position:relative; cursor:ns-resize; touch-action:none; flex:0 0 auto;
    background:var(--slab-hi); box-shadow:inset 0 0 0 2px var(--line); }   /* flat Solid face */
  .sknob::after{ content:""; position:absolute; left:50%; top:5px; width:3.5px; height:14px; margin-left:-1.75px;
    border-radius:2px; background:var(--amber-soft);
    transform-origin:50% 15px; transform:rotate(var(--ang,-135deg)); }
  .sgate-ends{ display:flex; justify-content:space-between; width:100%; max-width:46px; font-family:var(--mono); font-size:9px; color:var(--dim); line-height:1; }
  .sgate-lbl{ font-size:10px; letter-spacing:.05em; color:var(--lbl); text-transform:uppercase; }
  .srat .sknob.lit::after{ background:var(--amber); }   /* ratchet engaged (>×1): amber pointer — reads at a glance across the row */
  /* step-record box (2026-07-12 feedback): TWO ROWS — header alone on top, then the record arm
     left-aligned with the [◀ n ▶] nav appearing to its RIGHT while armed. Nothing moves on arm. */
  .steprec-bar{ flex-direction:column; align-items:stretch; gap:8px; }
  .steprec-bar .hl-lbl{ margin-right:0; }
  .steprec-row{ display:flex; align-items:center; gap:12px; }
  .steprec-bar .play{ width:52px; height:44px; }
  .steprec-bar .play svg{ width:32px; height:32px; }     /* the record circle reads as a record circle now */
  /* audition strip doubles as the step cell's bottom cap: full-bleed, only the top seam kept */
  .spk{ width:calc(100% + 4px); margin:0 -2px; height:24px; border-radius:0 0 6px 6px;
    border:none; border-top:1px solid var(--edge); background:var(--slab-hi);
    display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .spk svg{ width:16px; height:12px; display:block; }
  .spk .spk-b{ fill:var(--dim); }
  .spk .spk-w{ fill:none; stroke:var(--dim); stroke-width:1.8; stroke-linecap:round; }
  .spk:hover .spk-b{ fill:var(--ink); }
  .spk:hover .spk-w{ stroke:var(--ink); }
  .spk:hover{ border-color:var(--amber); color:var(--amber-soft); }
  .spk:active{ background:#241f1c; }
  .lock-badge{ position:absolute; top:-4px; right:-4px; z-index:4; min-width:12px; height:12px; padding:0 2px;
    border-radius:6px; font-family:var(--mono); font-size:8px; line-height:12px; text-align:center;
    background:var(--pink); color:#1b1d21; box-shadow:0 0 0 1px #14161a; }
  /* p-lock marking (2d): a control that carries a lock for the SELECTED step. Pink ring + a corner
     dot (shape, not colour alone, for accessibility). Applied to the control's wrapper. */
  /* box marker still used by not-yet-converted control types; knobs opt out (they show a pink FILL). */
  /* box marker still used by not-yet-converted control types (modsel, fader); converted controls
     show pink on their own highlight instead. */
  [data-lockctl].locked:not(.knob-wrap):not(.toggle):not(.seg):not(.m-switch){ position:relative; border-radius:7px; box-shadow:0 0 0 1px var(--pink), 0 0 7px -1px var(--pink); }
  [data-lockctl].locked:not(.knob-wrap):not(.toggle):not(.seg):not(.m-switch)::after{ content:''; position:absolute; top:-3px; left:-3px; width:6px; height:6px; border-radius:50%;
    background:var(--pink); box-shadow:0 0 4px var(--pink); z-index:5; pointer-events:none; }
  /* v3 p-lock on a knob: the value fill itself turns pink — no box. */
  .knob-wrap.locked .knob{ --acc:var(--pink); }
  .knob-wrap.locked .cap-dot{ background:var(--pink-soft); }
  /* v3 p-lock on a segmented control: the active button turns pink. */
  .seg.locked .seg-btns button.on{ background:var(--pink); color:var(--well); }
  /* v3 p-lock on a toggle/head switch: a pink ring marks the lock (any state); on adds pink track+thumb. */
  .toggle.locked .switch, .m-switch.locked .switch{ box-shadow:inset 0 0 0 2px var(--pink); }
  .toggle.locked .switch.on, .m-switch.locked .switch.on{ background:rgba(232,87,156,.28); }
  .toggle.locked .switch.on i, .m-switch.locked .switch.on i{ background:var(--pink-soft); }
  .toggle.locked .switch.on ~ .lbl{ color:var(--pink-soft); }
  /* Sequencer header (2026-07-11): ONE line, shared bottom baseline (same treatment as the synth
     top row): title centered, control bottoms flex-end, bare toggles re-centered, right cluster
     (Length · Bar · Euclid) pushed to the module's right edge. */
  .seq-head{ display:flex; align-items:flex-end; gap:17px; }
  .seq-head .m-title{ align-self:center; margin-right:4px; }
  .seq-head .xpose-toggle{ align-self:flex-end; }   /* toggle bottom on the shared baseline, level with Euclid's */
  .seq-head .seg .seg-btns{ flex-wrap:nowrap; }
  .seq-right{ margin-left:auto; display:flex; align-items:center; gap:20px; }
  /* sequencer header tools: length slider + bar selector, aligned right */
  /* .seq-head already bottom-aligns the whole row (that is what puts Xpose on the baseline);
     this group has to join it rather than centre its own children against it. */
  .euclid{ display:flex; align-items:flex-end; gap:8px; }
  .euclid .vdivider{ margin:0 6px; }
  /* DIRECT child only: the group's own "Euclid" caption. As a descendant selector this also
     restyled the Pulses knob's label (12px/dim vs the 11px/ink every other knob uses), so the
     two knobs sitting side by side wore different labels. */
  .euclid > .lbl{ font-size:var(--fs-sm,12px); color:var(--dim); letter-spacing:.06em; text-transform:uppercase; }
  /* The pulse count is a knob now (2026-08-20). Deliberately NOT restyled: Swing sits
     immediately to its right, so the two must be the same knob at the same size on the
     same baseline. Only the group's own label/switch are pulled up to that baseline. */
  /* flat Solid ranges (sequencer + step panel): 3px track, round ink thumb; per-scope track colors */
  .g-seq input[type=range], .g-song input[type=range], .step-panel input[type=range]{
    -webkit-appearance:none; appearance:none; height:3px; border-radius:2px; outline:none;
    background:var(--amber-soft); cursor:pointer; }
  .g-seq input[type=range]::-webkit-slider-thumb, .g-song input[type=range]::-webkit-slider-thumb,
  .step-panel input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none; width:14px; height:14px; border-radius:50%;
    background:var(--ink); box-shadow:0 0 0 2px var(--well); cursor:ew-resize; }
  .g-seq input[type=range]::-moz-range-thumb, .g-song input[type=range]::-moz-range-thumb,
  .step-panel input[type=range]::-moz-range-thumb{
    width:14px; height:14px; border-radius:50%; background:var(--ink); border:2px solid var(--well); cursor:ew-resize; }
  .step-panel .sp-row input[type=range], .step-panel .sp-wide,
  .g-song .xl-cond input[type=range]{ background:var(--pink); }   /* p-lock / condition domain stays pink */
  .euclid .switch{ cursor:pointer; }
  .seq-len{ display:flex; align-items:center; gap:8px; }
  .seq-len .lbl{ font-size:var(--fs-sm,12px); color:var(--dim); letter-spacing:.06em; text-transform:uppercase; }
  .seq-len input[type=range]{ width:120px; accent-color:var(--amber); cursor:pointer; }
  .seq-len .len-val{ font-family:var(--mono); font-size:var(--fs-sm,12px); color:var(--amber-soft); min-width:18px; text-align:right; }
  .bar-sel{ display:flex; align-items:center; gap:8px; }
  .bar-sel .lbl{ font-size:var(--fs-sm,12px); color:var(--dim); letter-spacing:.06em; text-transform:uppercase; }
  .bar-btns{ display:flex; border:1px solid var(--edge); border-radius:7px; overflow:hidden; }
  .bar-btns button{ font-family:var(--label); font-size:13px; padding:6px 11px; cursor:pointer;
    background:var(--raised2); color:var(--dim); border:none; border-left:1px solid var(--edge); }
  .bar-btns button:first-child{ border-left:none; }
  .bar-btns button:hover{ color:var(--amber-soft); }
  .bar-btns button.on{ background:linear-gradient(180deg,#33373d,#262a2f); color:var(--amber-soft); box-shadow:inset 0 0 0 1px var(--amber); }
  /* step states: out-of-meter (dead), past loop length (beyond), off (rest) */
  .step.beyond{ opacity:.4; }
  .step.dead{ opacity:.22; }
  .step.off > :not(.shead){ opacity:.38; }
  .onpad{ width:100%; max-width:30px; height:14px; border-radius:5px; border:1px solid var(--edge); background:#1f2227;
    display:flex; align-items:center; justify-content:center; font-size:10px; line-height:1; color:var(--dimmer); cursor:pointer; }
  .onpad:hover{ border-color:var(--amber); }
  .onpad.off{ color:var(--amber-soft); border-color:var(--amber); background:#241f1c; }
  body.light .bar-btns button{ background:#fcfbf7; }
  body.light .bar-btns button.on{ background:linear-gradient(180deg,#dde5cd,#cdd9b6); }
  /* Transport: flat rounded-square icon buttons, white glyph at rest. Play fills GREEN while running,
     Record fills PINK while armed (same pink as p-lock recording). Compact so the bar doesn't wrap. */
  .play{ display:inline-flex; align-items:center; justify-content:center;
    width:42px; height:40px; padding:0; line-height:0;
    background:transparent; color:var(--ink); border:1px solid var(--edge); border-radius:10px; cursor:pointer;}
  .play svg{ width:30px; height:30px; fill:currentColor; display:block; }
  .rec svg{ width:28px; height:28px; }
  .play:hover{ border-color:var(--dim); }
  .play:focus{ outline:none; }
  .play:focus-visible{ outline:2px solid var(--amber-soft); outline-offset:2px; }   /* keyboard focus, palette-matched (was browser blue) */
  .play.on{ background:linear-gradient(180deg,#8fa85c,#6f8641); color:#161812; border-color:var(--amber);}   /* green — running */
  .rec{ margin-left:6px; }
  .rec.on{ background:linear-gradient(180deg,var(--pink),#c33c81); color:#1b0f16; border-color:var(--pink);} /* pink — armed */
  .rec.on:hover{ border-color:var(--pink); }
  /* [◀ step# ▶] record cursor nav — appears only while armed (display toggled in JS) */
  .rec-nav{ display:flex; align-items:center; gap:4px; margin-left:8px; }
  .rec-arrow{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:28px; padding:0;
    font-size:11px; line-height:1; color:var(--ink); background:transparent; border:1px solid var(--edge); border-radius:6px; cursor:pointer; }
  .rec-arrow:hover{ border-color:var(--pink); color:var(--pink-soft); }
  .rec-arrow:focus{ outline:none; }
  .rec-arrow:focus-visible{ outline:2px solid var(--pink-soft); outline-offset:1px; }
  .rec-step{ font-family:var(--mono); font-weight:700; font-size:13px; color:var(--pink-soft);
    min-width:22px; text-align:center; }

  /* ---- Keyboard ---- */
  #keyboard{
    position:fixed; left:0; right:0; bottom:0; z-index:18;
    background:#1b1d20; border-top:1px solid #0c0d0f;   /* Solid: flat, gradients dropped (2026-07-17) */
    box-shadow:0 -6px 20px rgba(0,0,0,.45); padding:10px 12px 14px;
  }
  .kb-hint{ font-size:12px; color:var(--dimmer); letter-spacing:.06em; text-align:center; margin-bottom:7px;}
  .keys{ position:relative; height:84px; max-width:1440px; margin:0 auto; display:flex; touch-action:none;}   /* 2026-07-17: full 5-octave board, mouse-first — smaller keys, wider span */
  .wkey{ flex:1; background:#ece8dc; border:1px solid #0c0d0f; border-radius:0 0 3px 3px;
    margin:0 1px; position:relative; cursor:pointer;}   /* Solid: flat (2026-07-17) */
  .wkey.down{ background:var(--amber-soft); }
  /* Real-piano black-key geometry (2026-07-17, author wireframe): each black key straddles the
     RIGHT boundary of its host white key (left:100%, centered by translateX), then each semitone
     carries its true offset in white-key widths: the C#/D# pair spreads OUTWARD from D (-10%/+10%),
     the trio leans F# left (-13%), G# center (0), A# right (+13%). */
  .bkey{ position:absolute; top:0; left:100%; width:58%; height:62%; background:#191b1e;
    border:1px solid #000; border-radius:0 0 3px 3px; z-index:2; cursor:pointer; transform:translateX(-50%);}
  .bkey.down{ background:#5d6b3c; }
  .bkey.b-cs{ left:90%; }  .bkey.b-ds{ left:110%; }
  .bkey.b-fs{ left:87%; }  .bkey.b-gs{ left:100%; } .bkey.b-as{ left:113%; }

  /* ---- pitch / mod ribbons: horizontal, centered under the keys. Wheel-sized flat hit
     surface (a tall track + full-height thumb bar), not a thin slider. ---- */
  .kb-wheels{ display:flex; justify-content:center; gap:56px; max-width:920px; margin:12px auto 0; }
  .kb-wheel{ display:flex; align-items:center; gap:12px; }
  .oct-btn{ width:34px; height:30px; padding:0; border-radius:6px; border:1px solid var(--line);
    background:var(--well,#141518); color:var(--ink); font-size:16px; font-weight:700; line-height:1;
    cursor:pointer; }
  .oct-btn:active{ background:var(--raised); }
  .oct-read{ font-family:var(--mono); font-size:13px; color:var(--amber-soft);
    width:26px; text-align:center; }   /* fixed-width box: dynamic number in fixed chrome (doctrine) */
  .kb-wlbl{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--lbl); }
  .ribbon{ position:relative; width:230px; height:30px; background:var(--well,#141518);
    border:1px solid var(--line); border-radius:6px; cursor:ew-resize; touch-action:none; }
  .ribbon .detent{ position:absolute; left:50%; top:4px; bottom:4px; width:1px; background:var(--edge); }
  .ribbon .thumb{ position:absolute; top:2px; bottom:2px; width:30px; left:calc(50% - 15px);
    background:var(--amber-soft); border-radius:4px; pointer-events:none; }   /* JS places both; travel stays inside the track */

  .note{ font-family:var(--mono); }
  /* ==== RESPONSIVE DEGRADATION (2026-07-17) ====
     Doctrine: the 1470px fullscreen state (author's 13" M2 Air) is CANONICAL and untouchable —
     every rule below lives inside a max-width media block whose ceiling (1440) sits 30px under
     the canonical viewport, so nothing here can EVER fire on the reference machine. Below
     canonical width we do not compress modules (flex crush shatters fixed-px internals);
     we REARRANGE them at full designed width, and wide fixed grids scroll INSIDE their module.
     (Replaced here: two dead media queries targeting the retired main-grid areas — inert since
     the band restructure, kept only as an ambush for a future rule.) */

  /* Tier 1 — below canonical: the synth masonry stacks. Each column takes the full row, so
     every module gets MORE room than at 1470, never less; the two-column balance is a
     1470-only arrangement by design. Height-matching flexes (.lfo-row/.amp-row absorbers)
     become no-ops in the stacked flow — harmless. */
  @media (max-width:1440px){
    .synth-cols{ flex-direction:column; align-items:stretch; }
    .col-left, .col-right{ flex:1 1 auto; }
    /* the osc table is the widest fixed internal (~740px of fixed columns): if anything
       narrows past it, pan inside the module rather than paint outside it */
    .g-osc{ overflow-x:auto; }
  }

  /* Tier 2 — module pairs wrap instead of crush. Basis floors ≈ each module's designed
     minimum; a pair that no longer fits side by side drops to a second line at full width. */
  @media (max-width:980px){
    .mrow, .col-row{ flex-wrap:wrap; }
    .mrow > .module, .col-row > .module{ flex:1 1 340px; }
    .fm-row > .g-flt{ flex:2.1 1 420px; }
    .fm-row > .g-mtx{ flex:1 1 280px; }
    /* sequencer lanes: ONE shared scroll container so note grid, gate lane, and transpose
       lane pan together and their structural column alignment survives; cells keep a fixed
       usable minimum instead of shrinking to slivers */
    .seq-left{ overflow-x:auto; padding-bottom:6px; }
    .seq-grid{ grid-template-columns:repeat(16, minmax(38px,1fr)); }
    .tgate .tg-cells{ grid-template-columns:repeat(32, minmax(19px,1fr)); }
    .xl-cells{ grid-template-columns:repeat(16, minmax(38px,1fr)); }
    /* the 216px step-panel reserve exists to align xlane columns with the grid above; once
       the panel wraps below the grid the premise is gone and the reserve just overhangs
       (the documented known limit) — drop it. The xlane is its OWN module (g-song, below the
       sequencer), so it is NOT inside the .seq-left scroll container and carries its own guard;
       cross-module column alignment is a 1470-only property and is consciously released here. */
    .g-song .xlane{ padding-right:0; overflow-x:auto; padding-bottom:6px; }
  }

  /* Tier 3 — single column; the keyboard pans instead of shrinking below playable. */
  @media (max-width:760px){
    /* base body{overflow-x:clip} (line ~954) propagates to the VIEWPORT — the reason no tight
       window could side-scroll. THREE rounds to kill it, each defeat instructive:
       R1: overrode body{overflow-x} here — silently beaten; the base rule sits LATER at equal
           specificity (media queries add none). The cascade-order ambush, self-inflicted.
       R2: html{overflow-x:auto} — cuts the body->viewport propagation (spec: body propagates
           only while the root's overflow is visible). Scrollbar woke up, BUT with propagation
           cut the base clip now applied to the BODY BOX itself: the page scrolled exactly to
           the body's 560px floor and CHOPPED everything wider (author screenshot: steps 11+
           unreachable at full right scroll).
       R3: `html body` (0,0,2) out-specifies the late base rule (0,0,1) — wins regardless of
           source order. Ambush-proof by construction, not by position.
       Floored body: below 560px the page pans instead of crushing; body's background
       propagates to the canvas so the overflow area stays in-theme. Floor = eye-tune. */
    html{ overflow-x:auto; }
    html body{ overflow-x:visible; min-width:560px; }
    .mrow > .module, .col-row > .module{ flex-basis:100%; }
    .step-panel-col{ flex:1 1 100%; width:auto; }
    #keyboard{ overflow-x:auto; }
    .keys{ min-width:720px; }   /* 36 whites ≈ 20px each: the playable floor */
    .kb-wheels{ flex-wrap:wrap; gap:14px 28px; }
  }
  .footer-note{ grid-column:1/-1; color:var(--dimmer); font-size:13px; letter-spacing:.04em; line-height:1.5; }

  /* sub-sections within a module */
  .subgroup{ display:flex; flex-direction:column; gap:9px; }
  .sub-cap{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--amber-soft); opacity:.85; }
  /* Voicing panel: center its Unison subgroup so Detune/Spread match the other centered knobs */
  .g-voi .subgroup{ align-items:center; }
  .g-voi .subgroup .row{ justify-content:center; }
  .vdivider{ width:1px; align-self:stretch; min-height:64px; background:linear-gradient(var(--edge),transparent); margin:0 2px; }
  /* in narrow modules the groups stack — flip the divider horizontal */
  @container (max-width:350px){
    .vdivider{ width:100%; flex-basis:100%; min-height:0; height:1px; margin:3px 0;
      background:linear-gradient(90deg,var(--edge),transparent); }
  }

  /* consolidated oscillator strips */
  .osc-strip{ display:flex; align-items:flex-start; gap:9px 13px; flex-wrap:wrap; padding:8px 0; border-bottom:1px solid #2a2e33; }
  .osc-strip:last-child{ border-bottom:none; padding-bottom:2px; }
  .strip-tag{ font-family:var(--label); font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    color:var(--amber-soft); font-size:14px; width:42px; padding-top:16px; flex:0 0 auto; }

  /* per-step glide pad */
  .gpad{ width:100%; max-width:30px; height:17px; border-radius:5px; border:1px solid var(--edge); background:#1f2227;
    cursor:pointer; font-family:var(--label); font-size:12px; font-weight:700; color:var(--dimmer);
    display:flex; align-items:center; justify-content:center; letter-spacing:.05em; }
  .gpad.on{ background:var(--amber); border-color:var(--line); color:var(--well); box-shadow:none; }   /* flat Solid */

  /* compact header knobs (tempo + volume) */
  header .knob-wrap{ width:auto; flex-direction:row; align-items:center; gap:8px; }
  header .knob{ --knob:34px; }
  header .knob-wrap .lbl{ font-size:var(--fs-sm,12px); }

  /* effects horizontal bar */
  .fx-bar .fx-row{ display:flex; align-items:flex-start; gap:0; flex-wrap:wrap; }
  .fx-bar .subgroup{ padding:0 22px; }
  .fx-bar .subgroup:first-child{ padding-left:2px; }
  .fx-bar .vdivider{ min-height:72px; margin:0; }

  /* ============================================================
     LIGHT THEME  — warm "paper panel" reskin that keeps the olive/amber
     identity. Activated by toggling .light on <body>. Palette variables flip,
     and the handful of components with baked-in dark fills are overridden below.
     ============================================================ */
  body.light{
    --panel:#e7e4db; --raised:#f3f1ea; --raised2:#fcfbf7; --edge:#c8c4b8;
    --ink:#2b2c27; --dim:#6b6860; --dimmer:#7c776d;
    --amber:#7a9249; --amber-soft:#546a2d; --teal:#7a9249; --teal-dim:#dde5cd;
    --pink:#cc3585; --pink-soft:#a82a6c;
    --shadow:0 1px 0 rgba(255,255,255,.6), 0 4px 14px rgba(60,64,40,.14);
    background:
      radial-gradient(1200px 600px at 70% -10%, #eef0e4 0%, transparent 60%),
      linear-gradient(180deg,#e4e1d7,#d9d6cc);
  }
  body.light #overlay{ background:radial-gradient(800px 500px at 50% 30%, #f3f2ec, #ddd9cd 70%); }
  body.light header{ background:linear-gradient(180deg,#f3f1ea,#e6e3d9); border-bottom:1px solid #c2bdb0; box-shadow:0 4px 14px rgba(60,64,40,.12); }
  body.light select.dev{ background:#fcfbf7; }
  body.light .module{ background:linear-gradient(180deg,#f4f2ec,#e9e6dd); }
  body.light .knob{
    background:radial-gradient(circle at 38% 30%, #ffffff, #d8d4c8 70%, #c4c0b4);
    box-shadow:0 2px 4px rgba(60,64,40,.22), 0 0 0 1px #b9b4a7, inset 0 1px 1px rgba(255,255,255,.7);
  }
  body.light .seg-btns button{ background:#eceadf; }
  body.light .seg-btns button.on{ background:var(--amber); color:var(--raised2); }
  body.light .switch{ background:#d6d2c6; }
  body.light .modsel select{ background:#fcfbf7; }
  body.light .step{ background:#eceadf; }
  body.light .gate, body.light .gpad{ background:#e4e1d6; }
  body.light .play.on{ background:linear-gradient(180deg,#dde5cd,#cdd9b6); color:var(--amber-soft); }
  body.light .osc-strip{ border-bottom:1px solid #d6d2c6; }
  body.light #keyboard{ background:linear-gradient(180deg,#eceadf,#ded9cd); border-top:1px solid #c2bdb0; box-shadow:0 -6px 20px rgba(60,64,40,.16); }
  body.light .wkey{ background:linear-gradient(#ffffff,#e9e5da); border:1px solid #b3afa3; }
  body.light .bkey{ background:linear-gradient(#3c413a,#22251f); border:1px solid #1a1c17; }
  /* ---- reusable right-edge drawer rail (stacked tabs: Channel Mixer, Mod Matrix) ---- */
  body{ overflow-x:clip; }
  /* File dropdown (topbar): same design language as the System buttons, anchored to File */
  .file-wrap{ position:relative; }
  .file-menu{ position:absolute; top:calc(100% + 6px); left:0; z-index:60; min-width:172px;
    background:var(--raised); border:1px solid var(--edge); border-radius:10px; padding:6px;
    display:flex; flex-direction:column; gap:2px; box-shadow:0 12px 28px rgba(0,0,0,.45); }
  .file-menu button{ font-family:var(--label); font-weight:600; letter-spacing:.08em; text-transform:uppercase;
    font-size:13px; color:var(--ink); background:none; border:none; border-radius:7px; cursor:pointer;
    text-align:left; padding:8px 10px; }
  .file-menu button:hover{ background:var(--raised2); }
  .file-menu[hidden]{ display:none; }   /* the class's display:flex must not defeat `hidden` */
  .file-menu .fm-sep{ height:1px; background:var(--edge); margin:3px 2px; }

  /* Drawers sit UNDER the topbar (author call 2026-07-22): transport + LCD stay visible
     while mixing. --topbar-h is JS-measured (ceil-1), so +1px lands exactly on its edge. */
  .drawer{ position:fixed; top:calc(var(--topbar-h, 63px) + 1px); right:0;
    height:calc(100vh - var(--topbar-h, 63px) - 1px); width:344px; z-index:40;
    background:var(--panel); border-left:1px solid var(--edge); box-shadow:-10px 0 28px rgba(0,0,0,.38);
    transform:translateX(100%); transition:transform .26s cubic-bezier(.4,0,.2,1); display:flex; }
  .drawer.open{ transform:translateX(0); }
  .drawer.drawer-wide{ width:min(1100px,96vw); }   /* fits 4 tracks + divider + 3 aux + master on ONE row (~1060px content) */
  .rail-tab{ position:absolute; left:-34px; width:34px; height:150px;
    display:flex; align-items:center; justify-content:center;
    background:var(--raised2); border:1px solid var(--edge); border-right:none;
    border-radius:9px 0 0 9px; cursor:pointer; color:var(--dim); box-shadow:-4px 0 14px rgba(0,0,0,.25);
    writing-mode:vertical-rl; text-orientation:mixed; letter-spacing:.2em; text-transform:uppercase;
    font-size:12px; font-weight:700; user-select:none; }
  .rail-tab:hover{ color:var(--ink); border-color:var(--amber); }
  .rail-tab.active{ color:var(--ink); border-color:var(--amber); background:var(--raised); }
  .mtx-head{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
  .mtx-head h3{ font-family:var(--label); letter-spacing:.08em; text-transform:uppercase; }
  .mtx-head .head-note{ color:var(--dim); font-size:11.5px; letter-spacing:.03em; }
  .mtx-head .head-note .fxlink{ color:var(--amber-soft); cursor:pointer; text-decoration:underline;
    text-underline-offset:2px; }
  .mtx-head .head-note .fxlink:hover{ color:var(--amber); }
  .drawer-body{ flex:1; padding:20px 16px; overflow-y:auto; display:flex; flex-direction:column; gap:12px; }
  /* ---- channel mixer strips ---- */
  .mix-strips{ display:flex; gap:14px; align-items:stretch; flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }   /* never line-breaks; scrolls horizontally if the viewport is narrower than the drawer */
  .mix-strip{ flex:0 0 auto; width:88px; display:flex; flex-direction:column; align-items:center; gap:12px;
    background:var(--raised); border:1px solid var(--edge); border-radius:12px; padding:14px 6px; }  /* mixer diet 07-13: 104->88, knobs to full size, values to the LCD */
  .mix-strip .mix-title{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); cursor:pointer; }
  .mix-strip .mix-title:hover{ color:var(--amber); }
  .mix-strip.sel{ border-color:var(--amber); box-shadow:0 0 0 1px var(--amber) inset; }
  .mix-strip.mix-master{ background:var(--raised2); border-color:var(--edge); width:172px; }
  .mix-master .mix-grid{ display:grid; grid-template-columns:1fr 1fr; gap:11px 6px; justify-items:center; width:100%;
    border-top:1px solid var(--edge); padding-top:8px; }   /* diet fix 07-13: row gap 0->11 — same implicit-spacer loss */
  .mix-master .mix-comprow{ display:flex; flex-wrap:wrap; gap:4px 6px; align-items:center; justify-content:center; width:100%;
    border-top:1px solid var(--edge); padding-top:8px; }
  .mix-master .mix-grid .knob-wrap, .mix-master .mix-comprow .knob-wrap{ margin:0; }   /* diet 07-13: full-size knobs (was scale .78) */
  .mix-sub{ font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--dimmer); align-self:flex-start; margin-top:2px; }
  .mix-strip.mix-master .mix-title{ color:var(--amber-soft); cursor:default; }
  .mix-strip.mix-master .mix-title:hover{ color:var(--amber-soft); }
  .mix-ms{ display:flex; gap:6px; }
  .aux-ms{ justify-content:center; }
  .ms-btn{ width:28px; height:22px; border-radius:5px; border:1px solid var(--edge); background:var(--raised2);
    color:var(--dim); font-size:11px; font-weight:700; cursor:pointer; line-height:1; }
  .ms-btn:hover{ color:var(--ink); border-color:var(--amber); }
  .ms-btn.m.on{ background:#c0433a; border-color:#c0433a; color:#fff; }
  .ms-btn.s.on{ background:var(--amber); border-color:var(--amber); color:var(--panel); }
  .mix-strip.ducked .fader-wrap, .mix-strip.ducked .knob-wrap, .mix-strip.ducked .mix-sends{ opacity:.4; }
  /* fader + meter side by side */
  .strip-fm{ display:flex; gap:8px; align-items:center; }
  /* gradient fixed to the full track; the cover masks from the top down to the current level, so
     orange/red only show once the signal reaches those zones (not a scaling gradient) */
  .mix-meter{ position:relative; width:10px; height:150px; border-radius:5px; overflow:hidden;
    background:linear-gradient(to top,#3fb56b 0%,#8fce4e 55%,#e7c14a 74%,#e8663e 88%,#e33b2e 100%);
    box-shadow:inset 0 0 0 1px var(--edge); }
  .meter-cover{ position:absolute; left:0; right:0; top:0; height:100%; background:#0c0e10; transition:height .04s linear; }
  body.light .meter-cover{ background:#d9d5c8; }
  .meter-stereo{ display:flex; gap:2px; }
  .meter-stereo .mix-meter{ width:8px; }
  .mix-strip .mix-sends{ display:flex; flex-direction:column; gap:11px; width:100%; align-items:center;
    border-top:1px solid var(--edge); padding-top:8px; }   /* diet fix 07-13: gap 2->11 — the hidden .val line was the implicit spacer */
  .mix-strip .mix-sends .knob-wrap, .mix-strip > .knob-wrap{ margin:0; }   /* diet 07-13: full-size knobs (was scale .84) */
  .mix-strips .knob-wrap .val{ display:none; }                             /* diet 07-13: knob values live on the LCD (hover-to-peek) */
  .mix-strips .mix-comprow .knob-wrap .val{ display:block; }               /* the agreed bus-comp exception: dB stays on the face */
  /* ---- aux return strips (FX 1/2/3): audio-domain send returns, amber accent ---- */
  .mix-divider{ flex:0 0 auto; width:1px; align-self:stretch; margin:0 3px;
    background:linear-gradient(180deg,transparent,var(--edge) 12%,var(--edge) 88%,transparent); }
  .mix-strip.mix-aux{ width:104px; background:var(--raised2); border-color:var(--edge); box-shadow:inset 0 2px 0 var(--teal-dim); }   /* diet 07-13: 120->104 */
  .mix-strip.mix-aux .aux-title{ color:var(--amber-soft); cursor:default; }
  .mix-strip.mix-aux .aux-title:hover{ color:var(--amber-soft); }
  .aux-pick{ display:flex; gap:3px; width:100%; }
  .aux-pick.aux-fx{ flex-direction:column; }
  .aux-pick button{ flex:1 1 auto; min-width:0; padding:5px 6px; border-radius:5px; border:1px solid var(--edge);
    background:var(--raised); color:var(--dim); font-size:10px; font-weight:700; letter-spacing:.04em;
    text-transform:uppercase; cursor:pointer; line-height:1.1; white-space:nowrap; }
  .aux-pick button:hover{ color:var(--ink); border-color:var(--amber); }
  .aux-pick button.on{ background:linear-gradient(180deg,#33373d,#262a2f); color:var(--amber-soft); box-shadow:inset 0 0 0 1px var(--amber); }
  body.light .aux-pick button.on{ background:linear-gradient(180deg,#dde5cd,#cdd9b6); color:var(--amber-soft); }
  /* vertical fader */
  .fader-wrap{ display:flex; flex-direction:column; align-items:center; gap:6px; }
  .fader-wrap .val{ font-size:11px; color:var(--dim); font-variant-numeric:tabular-nums; }
  .fader-wrap .lbl{ font-size:10px; color:var(--dim); letter-spacing:.06em; text-transform:uppercase; }
  .fader-track{ position:relative; width:26px; height:150px; border-radius:8px; touch-action:none;
    background:var(--raised2); border:1px solid var(--edge); cursor:ns-resize; overflow:hidden; }
  .fader-fill{ position:absolute; left:0; right:0; bottom:0;
    background:linear-gradient(0deg,var(--amber),var(--amber-soft)); opacity:.45; }
  .fader-thumb{ position:absolute; left:-3px; right:-3px; height:12px; border-radius:4px;
    background:var(--ink); border:1px solid var(--edge); box-shadow:0 1px 3px rgba(0,0,0,.4); pointer-events:none; }


/* ============================================================================
   UI v3 — sub-slice 1 lift (2026-07-10).  SCOPED under body.ui-v3 and INERT
   until that flag is set; the live UI is untouched with the flag off.
   Lifted from 4trax-solid-v3.html. Deliberately NOT brought over: the
   prototype's global resets (*, html/body, button, :focus-visible), its
   full-viewport body layout, and the reduced-motion @media — the live
   sheet owns those. Shared tokens keep identical values, so even with the
   flag ON the old DOM (which doesn't read the new vars) renders unchanged.
   ============================================================================ */
/* param screen (promoted sub-slice 2): now live in its baseline param-readout role. Provisional
   home in the current tab bar; final placement + richer content (counter/clock/tempo) land with the
   tab-bar rebuild. Every knob reports here on drag; rests dimmed on "4TRAX / ready". */
/* LCD in the TOP BAR (wireframe 2026-07-12): three zones — param (announce target) · time ·
   pattern/BPM/bar-dots + CLOCK placeholder. SOLID AMBER FILL with dark text per the wireframe
   (the instrument's "green screen"); flat, no gradients (Solid). The old #partTabs scoping is
   retired with the move — cascade discipline: these rules own the LCD wherever #topbar puts it. */
#topbar .pscreen{ display:flex; align-items:stretch; flex:0 1 480px; min-width:340px; height:38px;   /* 480 basis + balanced spacers: LCD floats centered between the clusters (author: sleek) */
  background:var(--amber); color:var(--panel); border-radius:7px; overflow:hidden;
  font-family:var(--mono); }
#topbar .lcd-zone{ display:flex; align-items:center; padding:0 12px; }
#topbar .lcd-zone + .lcd-zone{ border-left:1px solid rgba(0,0,0,.35); }
#topbar .lcd-param{ flex:1 1 0; min-width:0; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; }
#topbar .lcd-stat{ flex:1 1 0; min-width:0; justify-content:flex-end; }   /* equal flex on both ends -> the COUNTER sits centered in the LCD */
#topbar .pscreen .pn{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
  color:var(--panel); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
#topbar .pscreen .pval{ font-size:12px; font-weight:700; color:var(--panel); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; max-width:100%; }
#topbar .pscreen.dimmed .pn, #topbar .pscreen.dimmed .pval{ opacity:.55; transition:opacity .8s; }
#topbar .lcd-time{ font-size:17px; font-weight:700; letter-spacing:.04em; }
#topbar .lcd-stat{ gap:10px; }   /* (flex/centering rule above; this keeps the inner gap) */
#topbar .lcd-rows{ display:flex; flex-direction:column; justify-content:center; gap:1px; }
#topbar .lcd-row{ font-size:10px; letter-spacing:.03em; white-space:nowrap; display:flex; align-items:center; gap:5px; }
#topbar .lcd-row b{ font-size:11px; }
#topbar #lcdPlen{ display:inline-block; min-width:2ch; text-align:left; }   /* 1..64: constant 2ch box — no jump crossing 9/10 */
#topbar #bpmRead{ display:inline-block; min-width:3ch; text-align:right; }  /* 40..220: constant 3ch box */
#topbar .lcd-dots{ display:inline-flex; gap:3px; }
#topbar .lcd-dots i{ width:7px; height:7px; border-radius:50%; border:1.5px solid var(--panel); box-sizing:border-box; }
#topbar .lcd-dots i.on{ background:var(--panel); transition:transform .1s ease; }
#topbar .lcd-dots i.on.pulse{ transform:scale(1.45); }   /* quarter-note swell (lcdTimeTick drives it) */
#topbar .lcd-clock{ display:flex; flex-direction:column; align-items:center; gap:1px; font-size:8px;
  letter-spacing:.06em; line-height:1.1; text-transform:uppercase; }
#topbar .lcd-clock b{ font-size:9px; padding:0 5px; border-radius:3px; opacity:.45; }
#topbar .lcd-clock b.on{ background:var(--panel); color:var(--amber); opacity:1; }

body.ui-v3{
    --bg:#17191c; --well:#101114; --lcd:#0a0b0d; --slab:#22252a; --slab-hi:#2b2f35;
    --line:#0b0c0e; --edge-soft:#2e3238;
    --ink:#ece8df; --dim:#b0aa9f; --dimmer:#857f76; --lbl:#d9d3c6;
    --amber:#93a961; --amber-soft:#bcd08e; --teal-dim:#3c4a26;
    --pink:#e8579c; --pink-soft:#f39bc4; --green:#8fa85c;
    --track-col:#33383f;
    --label:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
    --mono:'Space Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
    --knob:40px;
    --drop:0 4px 0 var(--line);
    --drop-sm:0 2px 0 var(--line);

  /* ================= TOP BAR ================= */
  .topbar{ display:flex; align-items:center; gap:16px; flex:0 0 auto; padding:8px 14px;
    background:#1d2024; border-bottom:2px solid var(--line); }
  .brand{ display:flex; align-items:center; gap:9px; }
  .brand .led{ width:10px;height:10px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px var(--line), 0 0 9px var(--amber); }
  .brand b{ font-size:16px;font-weight:800;letter-spacing:.06em;background:var(--amber);color:var(--well);
    padding:3px 8px 4px;border-radius:5px;box-shadow:var(--drop-sm); }
  .brand span{ color:var(--dim);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600; }
  .transport{ display:flex;align-items:center;gap:7px; }
  .tbtn{ display:inline-flex;align-items:center;justify-content:center;cursor:pointer;width:42px;height:36px;
    border-radius:7px;background:var(--slab-hi);border:2px solid var(--line);color:var(--ink);box-shadow:var(--drop-sm); }
  .tbtn:hover{ background:#343941; }
  .tbtn:active{ transform:translateY(2px); box-shadow:none; }
  .tbtn svg{ width:19px;height:19px; } .tbtn.wide{ width:52px; }
  .tbtn.playstop .ic-stop{ display:none; }
  .tbtn.playstop.on{ background:var(--green);border-color:var(--line);color:var(--well); }
  .tbtn.playstop.on .ic-play{ display:none; } .tbtn.playstop.on .ic-stop{ display:block; }
  .tbtn.rec.on{ background:var(--pink);color:var(--well); }
  .glob{ display:flex;align-items:center;gap:16px; }
  .globk{ display:flex;align-items:center;gap:8px; }
  .globk .kv .lbl{ font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lbl); }
  .topbar .spacer{ flex:1; }
  .hbtn{ font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:12px;
    background:var(--slab-hi);color:var(--lbl);border:2px solid var(--line);border-radius:7px;padding:7px 12px;
    cursor:pointer;box-shadow:var(--drop-sm); }
  .hbtn:hover{ color:var(--amber-soft); }
  .hbtn:active{ transform:translateY(2px); box-shadow:none; }
  .hbtn.off{ opacity:.5; }

  /* ================= TRACK TABS + PARAM SCREEN ================= */
  .tabbar{ display:flex; align-items:flex-end; gap:5px; flex:0 0 auto; padding:8px 14px 0;
    background:var(--well); border-bottom:2px solid var(--line); }
  .ptab{ --acc:var(--amber-soft); position:relative; display:flex; align-items:center; gap:7px; cursor:pointer;
    user-select:none; font-weight:700; font-size:13px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--dim); background:#1b1e22; border:2px solid var(--line); border-bottom:none;
    border-radius:8px 8px 0 0; padding:6px 12px 7px; margin-bottom:-2px; line-height:1; overflow:hidden; }
  .ptab::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--acc); opacity:.35; }
  .ptab:hover{ color:var(--ink); } .ptab:hover::before{ opacity:.7; }
  .ptab.on{ background:var(--bg); color:var(--ink); padding-top:9px; padding-bottom:10px; z-index:2; }
  .ptab.on::before{ opacity:1; }
  .ptab .dot{ width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 6px var(--acc);opacity:.4; }
  .ptab.on .dot{ opacity:1; }
  .ptab .pv{ font-family:var(--mono);font-size:9px;color:var(--dimmer); }
  .ptab.on .pv{ color:var(--acc); }
  .ptab.muted{ opacity:.45; } .ptab.muted .dot{ opacity:.2;background:transparent;box-shadow:none;border:1px solid var(--acc); }
  .ptab[data-t="1"]{ --acc:var(--amber-soft);} .ptab[data-t="2"]{ --acc:#6fb0c9;}
  .ptab[data-t="3"]{ --acc:#d3a24e;} .ptab[data-t="4"]{ --acc:var(--pink-soft);}
  .ptab-sep{ width:2px;align-self:stretch;background:#23262b;margin:0 5px 6px; border-radius:2px; }
  .ptab.fx{ --acc:var(--ink); letter-spacing:.12em; }
  .ptab.fx .dot{ border-radius:2px; }

  /* the param screen — one LCD, every control reports here */
  .pscreen{ display:flex;align-items:center;gap:12px;margin-left:auto;align-self:center;margin-bottom:8px;
    min-width:330px;height:32px;padding:0 12px;background:var(--lcd);border:2px solid var(--line);border-radius:7px;
    box-shadow:inset 0 2px 6px rgba(0,0,0,.5);font-family:var(--mono); }
  .pscreen .pn{ font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
  .pscreen .pval{ font-size:13px;font-weight:700;color:var(--amber-soft);margin-left:auto;white-space:nowrap; }
  .pscreen.dimmed .pn,.pscreen.dimmed .pval{ opacity:.45; transition:opacity .8s; }

  .master-meter{ display:flex;align-items:center;gap:8px;align-self:center;margin-bottom:8px;margin-left:10px;
    padding:5px 10px;background:#1b1e22;border:2px solid var(--line);border-radius:7px; }
  /* 2026-07-16 cascade-ambush cleanup: this staged block's .mm-fill (element renamed .mm-cover),
     .mml (unused label class), and .mm-track::after (segment hatching — the un-namespaced ::after
     was painting stripes over the live meter's gradient; the mixer meters are smooth, and the
     master meter now matches them) were removed. .master-meter above stays — it's the live chrome. */
  .mm-track{ position:relative;width:130px;height:11px;border-radius:3px;overflow:hidden;background:var(--well);
    box-shadow:inset 0 0 0 1px var(--line); }

  /* ================= RACK ================= */
  /* NOTE: #rack flex + band-label / chain / stage / flow / s-head layout promoted to the global
     sheet in sub-slice 5 (reflow). Strips/seams below stay staged for the per-module detail pass. */
  .row{ display:flex; flex-wrap:wrap; gap:6px 10px; align-items:flex-start; }
  .rowc{ display:flex; gap:10px; align-items:center; }

  /* ================= CONTROLS (no inline values) ================= */
  /* NOTE: .knob / .knob-wrap were promoted to the global sheet in sub-slice 2 (fill-based knob,
     bipolar-from-center, p-lock pink fill). Remaining control types stay staged below. */

  /* NOTE: .knob (sub-slice 2) and toggle/switch + segmented (sub-slice 3) were promoted to the
     global sheet. Remaining control types stay staged below. */

  .vfader{ --p:.6;--acc:var(--amber-soft);display:flex;flex-direction:column;align-items:center;gap:5px;width:40px; }
  .vfader .lbl{ font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--lbl); }
  .vtrack{ position:relative;width:16px;height:112px;background:var(--well);border-radius:4px;cursor:ns-resize;
    touch-action:none;user-select:none;box-shadow:inset 0 0 0 2px var(--line); }
  .vtrack::before{ content:"";position:absolute;left:2px;right:2px;bottom:2px;height:calc(var(--p)*(100% - 4px));
    background:var(--acc);border-radius:2px; }
  .vtrack::after{ content:"";position:absolute;left:-4px;right:-4px;bottom:calc(var(--p)*100%);height:8px;margin-bottom:-4px;
    background:var(--ink);border-radius:2px;box-shadow:0 2px 0 var(--line); }

  .modsel{ display:flex;flex-direction:column;gap:4px; }
  .modsel .cap{ font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim); }
  .modsel select{ font-family:var(--label);font-size:13px;font-weight:600;text-transform:uppercase;background:var(--well);
    color:var(--ink);border:2px solid var(--line);border-radius:6px;padding:6px 8px;cursor:pointer; }

  /* strips */
  .strip{ display:flex;align-items:center;gap:9px;padding:5px 0;border-bottom:2px solid var(--edge-soft); }
  .strip:last-child{ border-bottom:none; }
  .strip .tag{ font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--amber-soft);font-size:12px;
    width:44px;flex:0 0 auto;line-height:1.05; }
  .strip.mod .tag{ color:var(--pink-soft); }
  .strip .ks{ display:flex;gap:9px;flex:1;justify-content:flex-end;align-items:center; }
  .strip-seam{ display:flex;align-items:center;gap:8px;padding:6px 0 3px; }
  .strip-seam .sl{ font-size:9px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--pink-soft); }
  .strip-seam .sr{ flex:1;height:2px;background:#2b2f35;border-radius:2px; }
  .tglcol{ display:flex;flex-direction:column;gap:5px; }

  /* ADSR */
  .env-svg{ width:100%; height:96px; background:var(--well); border:2px solid var(--line); border-radius:7px;
    touch-action:none; display:block; }
  .env-svg .base{ stroke:var(--edge-soft); stroke-width:1; }
  .env-svg .curve{ fill:rgba(147,169,97,.16); stroke:var(--amber-soft); stroke-width:2.5; stroke-linejoin:round; }
  .env-svg .hd{ fill:var(--amber); stroke:var(--line); stroke-width:2; cursor:grab; }
  .env-svg .hd:active{ cursor:grabbing; }
  .env-cols{ display:flex; gap:12px; align-items:stretch; flex:1; }
  .env-col{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:6px; }
  .env-col .tag{ font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--amber-soft);font-size:12px; }
  .env-col.mod .tag{ color:var(--pink-soft); }

  /* sequencer foldout */
  .g-seq{ background:var(--slab);border:2px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--drop); }
  .seq-bar{ display:flex;align-items:center;gap:12px;padding:8px 12px;cursor:pointer;user-select:none; }
  .seq-bar:hover .st{ color:var(--amber-soft); }
  .seq-bar .chev{ font-size:13px;color:var(--amber-soft);transition:transform .15s;width:12px; }
  .g-seq.open .seq-bar .chev{ transform:rotate(90deg); }
  .seq-bar .st{ font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }
  .seq-bar .hint{ font-family:var(--mono);font-size:10px;color:var(--dimmer);margin-left:auto; }
  .seq-body{ display:none;padding:0 12px 12px; } .g-seq.open .seq-body{ display:block; }
  .seq-grid{ display:grid;grid-template-columns:repeat(16,1fr);gap:5px; }
  .step{ background:#1b1e22;border:2px solid var(--line);border-radius:6px;padding:6px 3px 5px;display:flex;
    flex-direction:column;align-items:center;gap:4px; }
  .step .led{ width:100%;max-width:32px;height:20px;border-radius:4px;cursor:pointer;background:var(--amber);
    box-shadow:inset 0 0 0 2px var(--line); }   /* number-in-LED: glow dropped (Solid flat), geometry matches base .led */
  .step .led.off{ background:var(--well);box-shadow:inset 0 0 0 2px var(--line); }
  .step .led:hover{ filter:brightness(1.2); }
  .step .pbar{ width:100%;max-width:28px;height:28px;border-radius:3px;background:var(--well);position:relative;
    overflow:hidden;box-shadow:inset 0 0 0 1px var(--line); }
  .step .pbar i{ position:absolute;left:0;right:0;bottom:0;background:var(--amber); }
  .step.cur{ border-color:var(--amber-soft); }

  .fit-note{ position:fixed;bottom:8px;left:50%;transform:translateX(-50%);z-index:5;font-family:var(--mono);
    font-size:10px;color:var(--dimmer);background:var(--well);border:2px solid var(--line);border-radius:6px;
    padding:4px 10px;pointer-events:none; }
}
/* ============================= end UI v3 (sub-slice 1) ====================== */
