@layer reset{*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}button,input{font:inherit;color:inherit}button{appearance:none;cursor:pointer;background:0 0;border:none;padding:0}fieldset{border:none;min-inline-size:0;margin:0;padding:0}legend{margin-block-end:var(--space-2);padding:0}}@layer colors{:root{--primary:oklch(63.4% .212 36.2);--primary-hi:oklch(75.4% .163 53.5);--signal:var(--primary);--signal-red:oklch(58% .21 25);--led-off:oklch(36% .01 50);--orange:var(--primary);--orange-hi:var(--primary-hi);--key-white:oklch(95% .01 80);--knob-white:oklch(74.1% .004 355);--knob-lit:oklch(92% .005 80);--key-grey:oklch(47% .005 315);--knob-grey:oklch(45.5% .003 345);--fader-cap:#575757;--key-black:oklch(18.2% 0 0);--key-dark:oklch(28.7% .004 308);--key-light:oklch(59.6% .008 355);--key-soft:oklch(82.3% .005 49);--key-pale:oklch(77.3% .005 49);--key-loop:oklch(62.4% .003 70);--key-legend:oklch(82.2% .003 345);--knob-tick:oklch(70.8% .003 345);--highlight:oklch(from var(--chassis) calc(l + .05) c h);--shade:oklch(from var(--chassis) calc(l - .18) c h);--cast:oklch(from var(--chassis) calc(l - .55) .02 h / .38);--seat:oklch(from var(--chassis) calc(l - .3) c h);--ao:oklch(12% .01 30);--deck:oklch(72.4% .005 315);--join-ink:oklch(32% .012 55/.9);--spec:oklch(96% .02 55);--drop-contact:oklch(from var(--ao) l c h / .72);--drop-form:oklch(from var(--ao) l c h / .42);--drop-ambient:oklch(from var(--ao) l c h / .22);--grain-blend:multiply;--grain-opacity:.58;--grain-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 110'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--grain-size:110px 110px;--wash-hi:.028;--wash-lo:.08;--lid-lift:.12;--lid-alpha:.7;--lid-soft-lift:.06;--lid-soft-alpha:.25;--armor:var(--chassis);--frame:var(--deck);--enamel:var(--primary);--visor:oklch(18% .01 40);--screen-rail-fill:#161616;--lcd-white:#f8f8f8;--lcd-red:#e02810;--lcd-cyan:#5394b5;--lcd-magenta:#b84878;--lcd-purple:#b84878;--lcd-enamel:#f05020;--lcd-skin:#d89c6c}}@layer spacing{:root{--viewport-min:325px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--radius-device:14px;--radius-tab:6px;--radius-key:8px;--radius-nav:10px;--radius-full:999px;--pip:1.35rem;--pip-inset:var(--space-2);--gutter:calc(var(--pip) + 2 * var(--pip-inset));--block-gutter:var(--gutter);--nav-unit:3.75rem;--knob-size:var(--nav-unit);--mixer-gap:calc(var(--nav-unit) * 17 / 36);--legend-gap:calc(var(--nav-unit) * 4 / 36);--screen-w:calc(var(--nav-unit) * 37 / 36);--screen-h:calc(var(--nav-unit) * 72 / 36)}}@layer typography{:root{--font-ui:"IBM Plex Sans", ui-sans-serif, sans-serif;--font-jp:"IBM Plex Sans JP", "IBM Plex Sans", sans-serif;--font-lcd:"IBM Plex Mono", ui-monospace, monospace;--text-name:1.25rem;--text-mark:clamp(2.35rem, 5.2vw, 3.15rem);--text-model:clamp(1.1rem, 2.4vw, 1.5rem);--text-spec:clamp(.95rem, 2vw, 1.25rem);--text-legend:.625rem;--text-key:.8125rem;--text-jp:clamp(.95rem, 2vw, 1.25rem);--text-lcd:.875rem}.type-name{font-family:var(--font-ui);font-size:var(--text-name);letter-spacing:0;overflow-wrap:anywhere;font-weight:300;line-height:1.15}.type-lockup{flex-wrap:wrap;align-items:center;gap:0;display:flex}.type-mark{font-family:var(--font-ui);font-size:var(--text-mark);letter-spacing:.01em;font-weight:300;line-height:.95}.type-model{font-family:var(--font-ui);font-size:var(--text-model);letter-spacing:.06em;text-transform:uppercase;font-weight:400;line-height:1}.type-dash{font-family:var(--font-jp);font-size:var(--text-model);letter-spacing:0;font-weight:400;line-height:1}.type-spec{font-family:var(--font-ui);font-size:var(--text-spec);letter-spacing:.06em;text-transform:uppercase;overflow-wrap:anywhere;font-feature-settings:"kern" 1, "tnum" 1;font-weight:400;line-height:1.2;text-decoration:none}.type-legend{font-family:var(--font-ui);font-size:var(--text-legend);letter-spacing:.14em;text-transform:uppercase;font-feature-settings:"kern" 1, "tnum" 1;font-weight:500;line-height:1;text-decoration:none}.type-key{font-family:var(--font-ui);font-size:var(--text-key);letter-spacing:.06em;text-transform:uppercase;font-feature-settings:"kern" 1, "tnum" 1;font-weight:500;line-height:1;text-decoration:none}.type-jp{font-family:var(--font-jp);font-size:var(--text-jp);color:var(--primary);font-weight:400;line-height:1.2}.type-lcd{font-family:var(--font-lcd);font-size:var(--text-lcd);letter-spacing:.04em;font-feature-settings:"tnum" 1;font-weight:400}}@layer layout{.grid-center{place-items:center;display:grid}.stack{grid-template-rows:var(--block-gutter) auto;place-items:center;gap:0;display:grid}.stack.legend-start{grid-template-columns:var(--block-gutter) auto;grid-template-rows:auto;justify-items:stretch}.stack.stamped{grid-template-rows:var(--block-gutter) auto var(--block-gutter)}.frame{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:auto minmax(0,1fr) auto;place-items:stretch stretch;display:grid}.frame.aside{grid-template-columns:auto minmax(0, 1fr) auto minmax(0, calc(302 / var(--spec-n,952) * var(--art,100cqi)))}.lines{color:var(--bracket-ink,var(--border-color,currentcolor));grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.lines:before,.lines:after{content:"";background-color:currentColor;width:100%;height:clamp(1px,.1ch,2px);display:block}.lines.block{grid-template-rows:1fr auto 1fr;grid-template-columns:auto;justify-items:center;gap:.5rem}.lines.block:before,.lines.block:after{width:clamp(1px,.1ch,2px);height:100%}.bracket{--bracket-inset-start:calc(var(--block-gutter) + var(--knob-size) / 2);--bracket-inset-end:calc(var(--block-gutter) + var(--knob-size) / 2);box-sizing:border-box;width:var(--bracket-tick,var(--space-2));max-width:var(--bracket-tick,var(--space-2));min-width:var(--bracket-tick,var(--space-2));pointer-events:none;color:var(--bracket-ink,var(--key-white));background:0 0;border-block:1px solid;border-inline-start:1px solid;place-self:stretch center;margin-block-start:var(--bracket-inset-start);margin-block-end:var(--bracket-inset-end)}.bracket:not(:empty):not(.mid){grid-template-columns:var(--bracket-tick,var(--space-2)) auto;align-items:center;column-gap:var(--space-1);border:none;grid-auto-rows:1fr;width:max-content;min-width:0;max-width:none;display:grid}.bracket:not(:empty):not(.mid):before{content:"";box-sizing:border-box;width:var(--bracket-tick,var(--space-2));border-block:1px solid;border-inline-start:1px solid;grid-area:1/1/-1;align-self:stretch}.bracket:not(:empty):not(.mid)>*{grid-column:2}.bracket.end:not(.mid){border-inline-start:none;border-inline-end:1px solid}.bracket.end:not(:empty):not(.mid){grid-template-columns:auto var(--bracket-tick,var(--space-2))}.bracket.end:not(:empty):not(.mid):before{border-inline-start:none;border-inline-end:1px solid;grid-column:2}.bracket.end:not(:empty):not(.mid)>*{grid-column:1}.bracket.mid{grid-template-columns:var(--bracket-tick,var(--space-2));width:var(--bracket-tick,var(--space-2));max-width:var(--bracket-tick,var(--space-2));border:none;grid-template-rows:minmax(0,1fr) minmax(0,1fr);place-items:stretch center;min-width:0;display:grid}.bracket.mid:before,.bracket.mid:after{content:"";box-sizing:border-box;width:var(--bracket-tick,var(--space-2));border-inline-start:1px solid;align-self:stretch;min-height:0}.bracket.mid:before{border-block-start:1px solid;grid-row:1}.bracket.mid:after{border-block-end:1px solid;grid-row:2}.bracket.mid.end:before,.bracket.mid.end:after{border-inline-start:none;border-inline-end:1px solid}.bracket.mid:not(:empty){grid-template-rows:minmax(0,1fr) auto minmax(0,1fr)}.bracket.mid:not(:empty):after{grid-row:3}.bracket.mid:not(:empty)>*{writing-mode:vertical-rl;text-orientation:sideways;letter-spacing:.14em;background:0 0;grid-area:2/1;align-self:center;min-width:0;padding-inline:.35em}.cluster{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}}@layer light{:root{--light-x:-.5;--light-y:-.55;--light-key:.9;--light-fill:.7;--light-hue:55;--wash-hi:.028;--wash-lo:.08;--lid-lift:.12;--lid-alpha:.7;--lid-soft-lift:.06;--lid-soft-alpha:.25;--grain-opacity:.58;--bevel-hi-lift:.1;--bevel-lo-drop:.18;--surface:var(--armor);--grain-inset:0 0 0 3px}:root,.scene{--cast-x:calc(var(--light-x) * -1);--cast-y:calc(var(--light-y) * -1);--lamp-x:calc(var(--light-x) - .15);--lamp-y:calc(var(--light-y) - .15);--lid-line:oklch(from var(--spec) l c h / .85);--hi:oklch(from var(--spec) l c h / calc(var(--light-key) * .55));--lamp-shade:oklch(from var(--ao) l c h / calc((var(--light-key) - var(--light-fill)) * .35 + .28))}*{--cast-x:calc(var(--light-x) * -1);--cast-y:calc(var(--light-y) * -1);--lid-hi:oklch(from var(--surface) calc(l + var(--lid-lift)) c h / var(--lid-alpha));--lid-soft:oklch(from var(--surface) calc(l + var(--lid-soft-lift)) c h / var(--lid-soft-alpha));--lid-x:inset calc(var(--cast-x) * 1px) 0 0 var(--lid-line), inset calc(var(--cast-x) * 1px) 0 3px var(--lid-hi), inset calc(var(--cast-x) * 2px) 0 6px var(--lid-soft);--lid-x-soft:inset calc(var(--cast-x) * 1px) 0 3px var(--lid-hi), inset calc(var(--cast-x) * 2px) 0 6px var(--lid-soft);--lid-y:inset 0 calc(var(--cast-y) * 1px) 3px var(--lid-hi), inset 0 calc(var(--cast-y) * 2px) 6px var(--lid-soft);--lid-xy:var(--lid-x), var(--lid-y);--drop-slab:calc(var(--cast-x) * 5px) calc(var(--cast-y) * 5px) 6px 0 var(--drop-contact), calc(var(--cast-x) * 12px) calc(var(--cast-y) * 12px) 14px 1px var(--drop-form), calc(var(--cast-x) * 20px) calc(var(--cast-y) * 20px) 22px 2px var(--drop-ambient), calc(var(--cast-x) * 28px) calc(var(--cast-y) * 28px) 30px 0 oklch(from var(--ao) l c h / .12)}.grain{isolation:isolate;position:relative}.grain:before{content:"";inset:var(--grain-inset);z-index:0;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background-image:var(--grain-image);background-size:var(--grain-size);position:absolute}.material{--surface:var(--armor);--bevel-hi:oklch(from var(--surface) calc(l + var(--bevel-hi-lift)) c h);--bevel-lo:oklch(from var(--surface) calc(l - var(--bevel-lo-drop)) c h);--shadow-rest:inset calc(var(--cast-x) * 1px) calc(var(--cast-y) * 1px) 1px var(--bevel-hi), inset calc(var(--light-x) * 1px) calc(var(--light-y) * 1px) 1px var(--bevel-lo), calc(var(--cast-x) * 2px) calc(var(--cast-y) * 2px) 4px var(--cast);--shadow-press:inset calc(var(--light-x) * 1px) calc(var(--light-y) * 1px) 2px var(--bevel-lo), inset calc(var(--cast-x) * 1px) calc(var(--cast-y) * 1px) 1px var(--bevel-hi), inset 0 3px 6px oklch(from var(--ao) l c h / .4);--shadow-flush:inset calc(var(--cast-x) * 1px) calc(var(--cast-y) * 1px) 1px var(--bevel-hi), inset calc(var(--light-x) * 1px) calc(var(--light-y) * 1px) 1px var(--bevel-lo);--disc-contact:6px;--disc-form:14px;--disc-ambient:24px;--disc-hi:oklch(from var(--spec) l c h / .65);--disc-hi-soft:oklch(from var(--spec) l c h / .35);--shadow-disc:calc(var(--cast-x) * var(--disc-contact)) calc(var(--cast-y) * var(--disc-contact)) calc(var(--disc-contact) * .5) oklch(from var(--ao) l c h / .5), calc(var(--cast-x) * var(--disc-form)) calc(var(--cast-y) * var(--disc-form)) calc(var(--disc-form) * .5) oklch(from var(--ao) l c h / .32), calc(var(--cast-x) * var(--disc-ambient)) calc(var(--cast-y) * var(--disc-ambient)) calc(var(--disc-ambient) * .58) oklch(from var(--ao) l c h / .16), inset calc(var(--cast-x) * 2px) calc(var(--cast-y) * 2px) 1px 0 var(--disc-hi), inset calc(var(--cast-x) * 4px) calc(var(--cast-y) * 4px) 3px 0 var(--disc-hi-soft);--shadow-led:inset calc(var(--light-x) * 1px) calc(var(--light-y) * 1px) .35px 0 oklch(from var(--spec) l c h / .75);--shadow-tick:calc(var(--cast-x) * 2px) calc(var(--cast-y) * 2px) 1px oklch(from var(--ao) l c h / .4), calc(var(--cast-x) * 4px) calc(var(--cast-y) * 4px) 2px oklch(from var(--ao) l c h / .24), calc(var(--cast-x) * 7px) calc(var(--cast-y) * 7px) 4px oklch(from var(--ao) l c h / .12), inset calc(var(--cast-x) * 2px) calc(var(--cast-y) * 2px) 1px 0 oklch(from var(--spec) l c h / .7), inset calc(var(--cast-x) * 3px) calc(var(--cast-y) * 3px) 2px 0 oklch(from var(--spec) l c h / .35);--shadow-knob:calc(var(--cast-x) * 3px) calc(var(--cast-y) * 3px) 4px 0 oklch(from var(--ao) l c h / .32), calc(var(--cast-x) * 8px) calc(var(--cast-y) * 8px) 8px 1px oklch(from var(--ao) l c h / .2), calc(var(--cast-x) * 16px) calc(var(--cast-y) * 16px) 14px 0 oklch(from var(--ao) l c h / .12), calc(var(--cast-x) * 24px) calc(var(--cast-y) * 24px) 20px 0 oklch(from var(--ao) l c h / .06);--shadow-pad:calc(var(--cast-x) * 3px) calc(var(--cast-y) * 3px) 4px 0 oklch(from var(--ao) l c h / .32), calc(var(--cast-x) * 8px) calc(var(--cast-y) * 8px) 8px 1px oklch(from var(--ao) l c h / .2), calc(var(--cast-x) * 16px) calc(var(--cast-y) * 16px) 14px 0 oklch(from var(--ao) l c h / .12), calc(var(--cast-x) * 24px) calc(var(--cast-y) * 24px) 20px 0 oklch(from var(--ao) l c h / .06);--shadow-key:calc(var(--cast-x) * 8px) calc(var(--cast-y) * 8px) 3px 0 oklch(from var(--ao) l c h / .5), calc(var(--cast-x) * 12px) calc(var(--cast-y) * 12px) 6px 0 oklch(from var(--ao) l c h / .32), calc(var(--cast-x) * 16px) calc(var(--cast-y) * 16px) 9px 0 oklch(from var(--ao) l c h / .16), inset calc(var(--cast-x) * 1px) calc(var(--cast-y) * 1px) 0 oklch(from var(--spec) l c h / .7), inset calc(var(--cast-x) * 2px) calc(var(--cast-y) * 2px) 3px oklch(from var(--spec) l c h / .35), inset calc(var(--light-x) * 1.5px) calc(var(--light-y) * 1.5px) 2.5px oklch(from var(--ao) l c h / .32);--shadow-key-press:inset calc(var(--light-x) * 2px) calc(var(--light-y) * 2px) 3px oklch(from var(--ao) l c h / .48), inset calc(var(--cast-x) * 1px) calc(var(--cast-y) * 1px) 1px oklch(from var(--spec) l c h / .32);--shadow-groove:inset calc(var(--cast-x) * 1.5px) calc(var(--cast-y) * 1.5px) 2.5px oklch(from var(--ao) l c h / .48), inset calc(var(--light-x) * 1px) calc(var(--light-y) * 1px) 1.5px oklch(from var(--spec) l c h / .28)}}@layer theme{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--chassis:oklch(90.4% .006 31);--ink:oklch(22% .01 55);--studio:oklch(98.5% .002 90)}html[data-theme-dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--chassis:oklch(22.5% .003 90);--ink:oklch(78% .008 90);--studio:oklch(30% .004 90);--key-grey:oklch(62% .005 90);--key-black:oklch(16% .004 90);--highlight:oklch(33.5% .003 90);--shade:oklch(16.5% .003 90);--cast:oklch(8% .002 90/.5);--seat:oklch(15.5% .003 90);--ao:oklch(5% 0 0);--deck:oklch(from var(--chassis) calc(l - .05) c h);--join-ink:oklch(8% 0 0/.9);--spec:oklch(52% .01 90);--light-hue:90;--light-key:.82;--light-fill:.4;--drop-contact:oklch(4% 0 0/.78);--drop-form:oklch(3% 0 0/.5);--drop-ambient:oklch(2% 0 0/.3);--wash-hi:.11;--wash-lo:.03;--lid-lift:.22;--lid-alpha:.35;--lid-soft-lift:.1;--lid-soft-alpha:.12;--grain-opacity:.12;--grain-blend:soft-light;--bevel-hi-lift:.18;--bevel-lo-drop:.06}html:has(#theme-dark:checked){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--chassis:oklch(22.5% .003 90);--ink:oklch(78% .008 90);--studio:oklch(30% .004 90);--key-grey:oklch(62% .005 90);--key-black:oklch(16% .004 90);--highlight:oklch(33.5% .003 90);--shade:oklch(16.5% .003 90);--cast:oklch(8% .002 90/.5);--seat:oklch(15.5% .003 90);--ao:oklch(5% 0 0);--deck:oklch(from var(--chassis) calc(l - .05) c h);--join-ink:oklch(8% 0 0/.9);--spec:oklch(52% .01 90);--light-hue:90;--light-key:.82;--light-fill:.4;--drop-contact:oklch(4% 0 0/.78);--drop-form:oklch(3% 0 0/.5);--drop-ambient:oklch(2% 0 0/.3);--wash-hi:.11;--wash-lo:.03;--lid-lift:.22;--lid-alpha:.35;--lid-soft-lift:.1;--lid-soft-alpha:.12;--grain-opacity:.12;--grain-blend:soft-light;--bevel-hi-lift:.18;--bevel-lo-drop:.06}}@layer base{html{min-width:var(--viewport-min);background:var(--studio);color:var(--ink);scroll-behavior:smooth}body{font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-weight:400;line-height:1.3}}@layer components,sandbox;@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/IBMPlexSans-Light.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexSans-Regular.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexSans-Medium.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans JP;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/IBMPlexSansJP-Light.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans JP;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexSansJP-Regular.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-Regular.woff2)format("woff2")}@property --light-x{syntax:"<number>";inherits:true;initial-value:-.5}@property --light-y{syntax:"<number>";inherits:true;initial-value:-.55}@property --lamp-x{syntax:"<number>";inherits:true;initial-value:-.65}@property --lamp-y{syntax:"<number>";inherits:true;initial-value:-.7}@property --light-key{syntax:"<number>";inherits:true;initial-value:.9}@property --light-fill{syntax:"<number>";inherits:true;initial-value:.7}@property --wash-hi{syntax:"<number>";inherits:true;initial-value:.028}@property --wash-lo{syntax:"<number>";inherits:true;initial-value:.08}@property --lid-lift{syntax:"<number>";inherits:true;initial-value:.12}@property --lid-alpha{syntax:"<number>";inherits:true;initial-value:.7}@property --lid-soft-lift{syntax:"<number>";inherits:true;initial-value:.06}@property --lid-soft-alpha{syntax:"<number>";inherits:true;initial-value:.25}@property --grain-opacity{syntax:"<number>";inherits:true;initial-value:.58}@property --bevel-hi-lift{syntax:"<number>";inherits:true;initial-value:.1}@property --bevel-lo-drop{syntax:"<number>";inherits:true;initial-value:.18}@property --led-on{syntax:"<number>";inherits:true;initial-value:0}
