:root{--paper:#eae9e3;--ink:#202320;--line:#bcbfb6;--blue:#698eff;--green:#00ed95;--white:#ffffff;--orange:#ff423f;font-family:Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,select,input{font:inherit}button,select,.file-label{border:1px solid var(--line);background:transparent;padding:10px 13px;border-radius:0;color:inherit}button,.file-label{cursor:pointer}button:hover,.file-label:hover{background:#d9dcd3}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #264cbf;outline-offset:4px}.masthead,footer{display:flex;justify-content:space-between;gap:20px;margin:0 4vw;padding:24px 0;font:11px 'Courier New',monospace;letter-spacing:.06em}.masthead{border-bottom:1px solid var(--ink)}.masthead a{text-decoration:none}main{max-width:1440px;margin:auto;padding:0 4vw}.intro{display:flex;justify-content:space-between;align-items:center;padding:60px 0 36px;gap:36px}.eyebrow,.section-label,.links,.caption,.view-options,.tkeys,footer{font:11px 'Courier New',monospace;line-height:1.5}.eyebrow{letter-spacing:.05em}h1{font-size:clamp(60px,7.7vw,116px);font-weight:400;letter-spacing:-.065em;line-height:.94;margin:24px 0 28px}.lede{font-size:18px;line-height:1.55;margin-bottom:0;max-width:650px}.mark{display:grid;grid-template-columns:repeat(2,90px);gap:12px;margin-right:7vw}.mark i{width:90px;height:90px;border-radius:50%;display:block;border:1px solid #20232025}.mark i:nth-child(1){background:var(--blue)}.mark i:nth-child(2){background:var(--green)}.mark i:nth-child(3){background:var(--white)}.mark i:nth-child(4){background:var(--orange)}.links{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;gap:28px;padding:18px 0;flex-wrap:wrap}.links span{margin-left:auto;color:#50584e}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;margin:42px 0 64px}.section-label{display:flex;justify-content:space-between;margin:0 0 20px}.tabs{display:flex;gap:4px;margin-bottom:16px}.tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.screen-well{background:#d6d9cf;min-height:370px;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow:auto;border:1px solid #bcbfb6}#screen{background:#000;flex-shrink:0;width:640px;height:320px}#screen svg{display:block;width:100%;height:100%;shape-rendering:geometricPrecision}.tkeys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.caption{color:#4c544a;margin:14px 0 18px;max-width:720px}.view-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.view-options select{padding:6px}#validation{font-size:12px;line-height:1.5;color:#85312f}.controls label{display:block;font-size:12px}.slider-label{display:flex;justify-content:space-between;margin:18px 0 6px}.controls input[type=range]{width:100%;accent-color:var(--blue)}.controls .state-label{margin:24px 0}.state-label select{width:100%;margin-top:8px}.font-panel{border-top:1px solid var(--ink);padding-top:18px;margin-top:28px}.font-panel h2{font-size:25px;font-weight:400;letter-spacing:-.03em}.font-panel p{font-size:13px;line-height:1.6}.font-panel a,.font-panel details{font-size:12px;line-height:1.6}.file-label{display:block;margin:14px 0 8px;text-align:center}.file-label input{display:block;max-width:100%;font-size:11px;margin-top:8px}.font-panel button{width:100%;font-size:12px}#font-status{overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}.principles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;border-top:1px solid var(--ink);padding-top:28px}.principles h2{font-size:28px;font-weight:400;letter-spacing:-.035em;line-height:1.1}.principles p,.principles a{font-size:14px;line-height:1.7}.principles .eyebrow{font-size:11px}.principles article+article{border-left:1px solid var(--line);padding-left:32px}#type-specimen{background:black;margin:20px 0;max-width:320px}#type-specimen svg{width:100%;display:block}.swatches{display:grid;grid-template-columns:1fr 1fr;gap:5px;font:600 13px/1.4 var(--sw-font-mono);margin:22px 0}.swatches span{padding:20px 10px;color:#0b1015}.swatches span:nth-child(1){background:var(--blue)}.swatches span:nth-child(2){background:var(--green)}.swatches span:nth-child(3){background:var(--white)}.swatches span:nth-child(4){background:var(--orange)}.closing{border-top:1px solid var(--ink);margin-top:56px;padding:32px 0 56px;display:grid;grid-template-columns:1fr 1fr;gap:48px}.closing>p{font-size:38px;line-height:1.05;letter-spacing:-.04em;margin:0}.closing div{max-width:540px;font-size:15px;line-height:1.7}.closing div p:first-child{margin-top:0}footer{border-top:1px solid var(--ink)}@media(max-width:1120px){.workbench{grid-template-columns:minmax(0,1fr)}.controls{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.controls>.section-label{grid-column:1/-1}.font-panel{grid-row:2/4;grid-column:2;margin-top:0}.mark{margin:0}.screen-well{justify-content:center}}@media(max-width:680px){.masthead>span,.masthead>a:last-child{display:none}.intro{padding-top:40px}.mark{grid-template-columns:repeat(2,32px);gap:6px;align-self:flex-end}.mark i{width:32px;height:32px}.lede{font-size:16px}.links{gap:14px}.links span{margin:0}.principles{grid-template-columns:1fr}.principles article+article{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.controls{display:block}.font-panel{margin-top:24px}.screen-well{justify-content:flex-start;min-height:220px}.closing{grid-template-columns:1fr;gap:20px}footer{flex-direction:column;gap:6px}}
.credits{border-top:1px solid var(--ink);padding:28px 0 48px;max-width:900px}.credits h2{font-size:30px;font-weight:400;letter-spacing:-.03em}.credits p{font-size:14px;line-height:1.8}.credits summary{font-size:14px;cursor:pointer}footer{flex-direction:column;gap:8px}footer p{margin:0}.document{max-width:900px;padding-top:48px;padding-bottom:56px;line-height:1.8}.document h1{font-size:clamp(40px,6vw,70px);line-height:1.05;margin:20px 0 32px;letter-spacing:-.05em}.document h2{font-size:26px;font-weight:400;line-height:1.2;margin-top:44px}.document p,.document li{font-size:16px}.document pre{background:#d9dcd3;padding:18px;overflow:auto;font-size:13px;white-space:pre}.document code{font-size:.9em}.document table{display:block;overflow:auto;border-collapse:collapse;font-size:13px}.document th,.document td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}.document img{max-width:100%}
.reference-screens{padding:42px 0 56px}.reference-screens figure{margin:0}.primary-reference{background:#d6d9cf;border:1px solid var(--line);padding:28px;display:flex;gap:36px;align-items:center}.primary-reference img{display:block;width:min(100%,640px);height:auto;background:#000}.reference-screens figcaption{font:12px 'Courier New',monospace;line-height:1.7;max-width:340px}.secondary-references{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px}.secondary-references figure{display:flex;gap:24px;align-items:center}.secondary-references img{display:block;width:min(60%,320px);height:auto}.reference-screens .caption{margin-bottom:0}#type-specimen img{display:block;max-width:100%;height:auto}@media(max-width:1100px){.primary-reference{display:block}.primary-reference figcaption{margin-top:18px;max-width:640px}.secondary-references figure{display:block}.secondary-references img{width:100%}.secondary-references figcaption{margin-top:12px}}@media(max-width:600px){.primary-reference{padding:16px}.secondary-references{grid-template-columns:1fr}}

.screen-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px;margin-top:36px}.screen-gallery figure{margin:0;padding:0 0 24px;border-bottom:1px solid var(--line)}.screen-gallery img{display:block;width:100%;height:auto;background:#000}.screen-gallery h2{font-size:22px;margin:18px 0 8px}.screen-gallery p{font-size:14px;line-height:1.7;margin:0}.support{border-top:1px solid var(--line);margin-top:28px;padding-top:12px}.support h3{font-size:20px;font-weight:400}@media(max-width:680px){.screen-gallery{grid-template-columns:1fr}}

body>.links{margin:0 4vw}.document>p>img{display:block;width:min(100%,640px);height:auto;margin:24px 0;background:#000}.document h2{scroll-margin-top:20px}.pattern-entry{font-size:16px;margin:24px 0 0}.live-example{font-size:15px;margin:28px 0}.document p,.document li,.document td{overflow-wrap:anywhere}.document pre{max-width:100%}.links a{white-space:nowrap}@media(max-width:480px){main,.document{padding-left:20px;padding-right:20px}.document h1{font-size:40px}.masthead,footer{margin-left:20px;margin-right:20px}body>.links{margin-left:20px;margin-right:20px}.links{gap:12px 18px}.reference-screens .section-label{gap:12px;flex-wrap:wrap}.document table{max-width:100%}}

/* Documentation uses one static shell, with wide specimens and a quiet reading column. */
.skip-link{position:absolute;left:20px;top:-100px;background:var(--ink);color:var(--paper);padding:12px;z-index:2}.skip-link:focus{top:12px}.docs-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:48px;max-width:1320px;margin:auto;padding:0 4vw}.docs-sidebar{padding:40px 0;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto}.kit-nav section+section{margin-top:24px}.kit-nav h2{font:11px 'Courier New',monospace;letter-spacing:.06em;text-transform:uppercase;color:#555e53;margin:0 0 8px}.kit-nav a{display:block;font-size:14px;line-height:1.4;padding:7px 10px;margin-left:-10px;text-decoration:none;border-left:2px solid transparent}.kit-nav a:hover{background:#dadcd4}.kit-nav a[aria-current=page]{border-left-color:var(--ink);font-weight:bold;background:#dce0d6}.docs .document{min-width:0;width:100%;max-width:860px;margin:0;padding:40px 0 56px}.docs .document>p,.docs .document>ul,.docs .document>ol{max-width:72ch}.docs .document h1{font-size:clamp(36px,4.5vw,62px);margin:0 0 24px}.docs .document>p>img{width:min(100%,760px)}.page-contents{border-block:1px solid var(--line);margin:28px 0 36px;padding:18px 0}.page-contents p{font:11px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}.page-contents ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 24px}.page-contents li{font-size:13px!important}.reading-links{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--ink);margin-top:48px;padding-top:20px}.reading-links a{font-size:14px;text-decoration:none;max-width:45%}.reading-links a:last-child{text-align:right}.reading-links span{display:block;font:11px 'Courier New',monospace;color:#555e53;margin-bottom:6px}.mobile-contents{display:none}.docs h2,.docs h3{scroll-margin-top:24px}@media(max-width:860px){.docs-layout{display:block;padding:0 24px}.docs-sidebar{display:none}.mobile-contents{display:block;margin:20px 24px 0;border-block:1px solid var(--line);padding:14px 0}.mobile-contents summary{cursor:pointer;font-size:14px}.mobile-contents .kit-nav{padding:24px 10px 10px}.docs .document{padding-top:28px}.docs .masthead{align-items:center}.docs .masthead>span{display:none}.docs .masthead>a:last-child{display:block}.page-contents ul{display:block}.page-contents li+li{margin-top:6px}}

/* SquareWave Studio web identity; instrument-screen tokens live separately. */
@font-face{font-family:'Inter Variable';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/inter-latin-wght-normal.woff2') format('woff2')}
:root{--sw-primary:#0e7490;--sw-primary-hover:#155e75;--sw-surface:#fff;--sw-surface-raised:oklch(.985 .002 240);--sw-border:oklch(.922 .004 240);--sw-border-strong:oklch(.82 .006 240);--sw-text:oklch(.14 .01 240);--sw-text-secondary:oklch(.44 .01 240);--sw-font-sans:'Inter Variable',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;--sw-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono',monospace;--paper:var(--sw-surface);--ink:var(--sw-text);--line:var(--sw-border-strong);font-family:var(--sw-font-sans)}
a{color:var(--sw-primary)}a:hover{color:var(--sw-primary-hover)}a:focus-visible,summary:focus-visible,button:focus-visible{outline-color:var(--sw-primary)}.masthead{font:13px var(--sw-font-sans);letter-spacing:0;align-items:center;border-color:var(--sw-border);padding:18px 0}.masthead a{color:var(--ink)}.masthead a:hover{color:var(--sw-primary)}.studio-brand{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:650;white-space:nowrap}.studio-brand img{width:28px;height:28px}.studio-brand span{color:var(--sw-primary)}.eyebrow,.section-label,.links,.caption,.view-options,.tkeys,footer,.kit-nav h2,.page-contents p,.reading-links span{font-family:var(--sw-font-mono)}h1{font-weight:550;letter-spacing:-.055em}.intro h1{font-size:clamp(56px,7vw,104px)}.kit-nav a[aria-current=page]{color:var(--sw-primary);border-left-color:var(--sw-primary);background:var(--sw-surface-raised)}.kit-nav a:hover{background:var(--sw-surface-raised)}.kit-nav h2,.page-contents p,.reading-links span{color:var(--sw-text-secondary)}.primary-reference,.screen-well,.document pre{background:var(--sw-surface-raised);border-color:var(--sw-border)}.links,.principles,.credits,.closing,footer,.page-contents,.reading-links{border-color:var(--sw-border)}.document pre,.document code{font-family:var(--sw-font-mono)}.document pre,.mobile-contents{border-radius:6px}.document>p>img[src*='references/manual/']{background:#212121}.document p:has(>em){color:var(--sw-text-secondary);font-size:14px}.mobile-contents summary{min-height:28px}.docs .document h1{font-weight:550}@media(max-width:480px){.masthead{gap:12px}.studio-brand{font-size:14px;gap:8px}.studio-brand img{width:24px;height:24px}.docs .masthead>a:nth-child(2){font-size:12px}.docs .masthead>a:last-child{font-size:12px}}

/* Current SquareWave Studio identity. Instrument palettes are unchanged. */
@font-face{font-family:'Archivo Variable';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url('assets/fonts/archivo-latin-standard-normal.woff2') format('woff2')}
:root{color-scheme:dark;--sw-primary:#63b0ca;--sw-primary-hover:#9ad4e6;--sw-surface:#0b1015;--sw-surface-raised:#121b24;--sw-border:#263342;--sw-border-strong:#3a4b5e;--sw-text:#f1f5f9;--sw-text-secondary:#aab8c7;--sw-font-heading:'Archivo Variable','Arial Narrow',Arial,sans-serif}
.masthead,.docs .masthead{margin:0;padding:0 4vw;min-height:73px;background:var(--sw-surface);border-bottom:1px solid var(--sw-border);gap:28px;flex-wrap:wrap}.studio-brand{font-family:var(--sw-font-heading);font-weight:760;font-stretch:118%;font-size:17px;letter-spacing:-.01em;gap:10px;min-height:44px}.studio-brand span{color:var(--sw-text)}.studio-brand img{width:30px;height:30px}.masthead .kit-title{margin-left:auto;color:var(--sw-text-secondary);font-size:14px}.kit-version{font:11px var(--sw-font-mono);color:var(--sw-text-secondary)}.masthead .repo-link{font-size:14px}.intro h1,.document h1,.document h2,.document h3,.principles h2,.closing>p{font-family:var(--sw-font-heading);font-stretch:118%;font-weight:650}.intro h1{font-weight:800;font-stretch:125%;letter-spacing:-.025em}.document h1{letter-spacing:-.025em}.document p:has(>em),.caption{color:var(--sw-text-secondary)}.document code{color:inherit}.document pre{color:var(--sw-text);background:var(--sw-surface-raised)}.kit-nav a:hover,.kit-nav a[aria-current=page]{background:var(--sw-surface-raised)}button:hover,.file-label:hover{background:var(--sw-surface-raised)}.reference-screens figcaption,.section-label,.credits p{color:var(--sw-text-secondary)}.document p:has(>img+img){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:none}.document p:has(>img+img)>img{width:100%;margin:12px 0}.document img{border:1px solid var(--sw-border)}@media(max-width:600px){.document p:has(>img+img){grid-template-columns:1fr;gap:4px}.masthead,.docs .masthead{padding:10px 24px;gap:10px 16px}.studio-brand{font-size:15px}.studio-brand img{width:26px;height:26px}.masthead .kit-version,.masthead .repo-link,.docs .masthead>a:last-child{display:none}.masthead .kit-title{font-size:12px!important}.studio-brand span{display:inline}}

/* Community documentation shell: a fixed instrument canvas inside a fluid page. */
:root{--sw-font-heading:var(--sw-font-sans)}
html,body{min-width:0;width:100%}
img,svg{max-width:100%;height:auto}
main,.docs-layout,.document,.intro,.intro>div,.principles>article,.reference-screens figure,.secondary-references,.closing>*,.kit-identity,.masthead-actions{min-width:0}
.masthead,.docs .masthead{padding:16px 4vw;gap:16px 24px;align-items:center}
.kit-identity{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px}
.masthead .kit-title{margin:0;color:var(--sw-text);font:650 20px var(--sw-font-sans)}
.masthead .kit-maintainer{font-size:12px;color:var(--sw-text-secondary)}
.masthead-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-left:auto;font-size:13px}
.masthead .kit-version{display:inline}
.document h1,.document h2,.document h3,.principles h2,.closing>p{font-family:var(--sw-font-sans);font-stretch:normal}
.intro h1{font-family:'Archivo Variable',sans-serif}
h1,h2,h3,.masthead,footer{overflow-wrap:break-word}
.table-scroll{max-width:100%;overflow-x:auto;margin:24px 0;overscroll-behavior-inline:contain}
.document .table-scroll table{display:table;width:100%;margin:0;overflow:visible}
.table-scroll:focus-visible{outline:2px solid var(--sw-primary);outline-offset:4px}
.document pre,main pre{min-width:0;max-width:100%;overflow:auto}
footer{font:12px/1.7 var(--sw-font-sans);letter-spacing:0;padding:28px 0}
.edit-link{font-size:13px!important;margin-top:40px;color:var(--sw-text-secondary)}
@media(max-width:600px){
 .masthead,.docs .masthead{padding:16px 24px;gap:14px}
 .kit-identity{width:100%;gap:6px 12px}
 .masthead .kit-title{font-size:19px!important}
 .masthead-actions{margin-left:0;width:100%;justify-content:space-between;gap:8px}
 .masthead .kit-version{display:inline!important}
 .intro{display:block}
 .intro h1{font-size:clamp(46px,13vw,68px)}
 .closing>p{font-size:32px}
 .document h1{overflow-wrap:anywhere}
 .docs-layout{padding:0 20px}
 .document td,.document th{min-width:120px}
 .document .table-scroll{width:100%}
}

.masthead .kit-maintainer{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.kit-maintainer img{display:block;width:18px;height:18px;flex-shrink:0}

.skill-intro{font-size:15px;line-height:1.7;max-width:65ch;margin:16px 0 0}.closing h2{font:600 22px/1.3 var(--sw-font-sans);margin:0 0 16px}

/* Keep the encoder identity visible without competing with the headline. */
.intro>.mark{display:grid;flex-shrink:0;grid-template-columns:repeat(2,72px);gap:12px;margin:0 2vw 0 0;align-self:center}
.intro>.mark i{width:72px;height:72px;border:1px solid #ffffff20}
@media(max-width:900px){.intro{align-items:flex-start;gap:24px}.intro>.mark{grid-template-columns:repeat(2,44px);gap:8px;margin:8px 0 0}.intro>.mark i{width:44px;height:44px}}
@media(max-width:600px){.intro h1{font-size:clamp(34px,10.1vw,56px)}.intro>.mark{grid-template-columns:repeat(4,32px);gap:10px;margin:28px 0 0}.intro>.mark i{width:32px;height:32px}}

/* Page themes never alter the instrument-screen colours. */
:root[data-theme=light]{color-scheme:light;--sw-primary:#0e7490;--sw-primary-hover:#155e75;--sw-surface:#ffffff;--sw-surface-raised:#f5f7f8;--sw-border:#dbe1e7;--sw-border-strong:#a0aab5;--sw-text:#17212b;--sw-text-secondary:#526171}
:root[data-theme=light] .intro>.mark i{border-color:#17212b30}
.github-links{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.masthead-actions a{display:inline-flex;align-items:center;min-height:44px}
.masthead .github-stars{gap:6px;justify-content:center;border:1px solid var(--sw-border-strong);border-radius:6px;padding:0 10px;font-variant-numeric:tabular-nums}
.github-stars svg{flex-shrink:0;width:16px;height:16px}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid var(--sw-border-strong);border-radius:6px;color:var(--sw-text);background:transparent}
.theme-toggle[hidden]{display:none}
.theme-toggle:hover{background:var(--sw-surface-raised)}
.theme-toggle svg{width:20px;height:20px}
.theme-moon,:root[data-theme=light] .theme-sun{display:none}
:root[data-theme=light] .theme-moon{display:block}
.github-stars [data-star-count]{min-width:3ch;text-align:center}
@media(max-width:600px){.masthead-actions{display:grid;grid-template-columns:1fr auto auto;gap:8px}.masthead-actions .kit-version{grid-column:1/-1;margin:0}.github-links{gap:8px}}

/* Use the same content edges for the masthead, page and footer. */
:root{--page-width:1440px;--page-gutter:4vw}
body.docs{--page-width:1320px}
body>main,.docs-layout{max-width:var(--page-width);padding-inline:var(--page-gutter)}
.masthead,.docs .masthead,body>footer{width:calc(min(100%,var(--page-width)) - 2*var(--page-gutter));max-width:none;margin-inline:auto;padding-inline:0}
@media(max-width:860px){body.docs{--page-gutter:24px}}
@media(max-width:600px){body.docs{--page-gutter:20px}}
@media(max-width:480px){body{--page-gutter:20px}}
.mobile-contents{margin-inline:var(--page-gutter)}
