@charset "UTF-8";
:root{--bg:#f6f7f4;--ink:#252d28;--muted:#7c837d;--line:#e6e9e2;--accent:#d9ee8c;--radius:14px;font-family:Inter,"Segoe UI","Noto Sans JP",Meiryo,sans-serif;font-size:14px;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9ebf52;outline-offset:4px}a{color:inherit}button{color:inherit}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h2{font-size:17px;font-weight:650}h3{font-size:13px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:20px;z-index:20;background:var(--accent);padding:12px}.skip-link:focus{top:10px}
.app-shell{display:flex;min-height:100vh}.sidebar{width:226px;flex-shrink:0;border-right:1px solid var(--line);background:#fafbf8;padding:32px 20px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:4;overflow-y:auto;overscroll-behavior:contain}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:21px;letter-spacing:-.8px;font-weight:700;padding:0 5px;margin-bottom:24px}.brand small{display:block;font-size:8px;font-weight:600;letter-spacing:1.9px;color:var(--muted);margin-top:5px}.brand-mark{display:block;width:48px;height:48px;object-fit:contain;flex-shrink:0}.nav-caption{font-size:9px;font-weight:700;letter-spacing:1.7px;color:#969b94;margin:0 11px 14px}.main-nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;border-radius:9px;display:flex;align-items:center;gap:11px;width:100%;text-align:left;font-size:12px;padding:13px 11px;color:#787f77;white-space:nowrap}.nav-item:hover{background:#f0f2eb}.nav-item.active{background:#eaf1dc;color:#3f5a2c;font-weight:600}.layer-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 10px 14px}.layer-heading .nav-caption{margin:0}.layer-heading>span{font-size:10px;color:var(--muted)}.layers{display:flex;flex-direction:column;gap:7px}.layer-row{display:flex;align-items:stretch;border:1px solid transparent;border-radius:8px}.layer-row.selected{background:white;border-color:var(--line);box-shadow:0 2px 5px #1e2a2010}.layer-button{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:12px 10px;text-align:left;flex:1;font-size:12px;min-width:0}.layer-button small{margin-left:auto;font-size:9px;color:#899079}.layer-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.layer-1{background:#c58c82}.layer-2{background:#89a780}.layer-3{background:#829ec1}.delete-layer{align-self:center;padding:6px;border:0;background:transparent;color:var(--muted);margin-right:4px}.delete-layer svg{width:14px;height:14px}.delete-layer:hover{color:#a24136}.add-layer{margin-top:12px;border:1px dashed #d4dacb;border-radius:8px;display:flex;gap:7px;align-items:center;justify-content:center;background:transparent;padding:11px;font-size:11px;color:#79836f}.add-layer svg{width:14px}.sidebar-note{font-size:10px;color:#969d92;line-height:1.8;padding:12px 10px}.sidebar-bottom{margin-top:auto;padding-top:28px}.local-note{display:flex;align-items:flex-start;gap:9px;padding:14px 9px 21px;font-size:10px;color:#626d5b;line-height:1.8}.local-note small{display:block;font-size:8px;color:#92998c}.privacy-dot{width:6px;height:6px;background:#97b772;border-radius:50%;margin-top:6px;flex-shrink:0}.help-button{display:flex;align-items:center;gap:9px;background:transparent;border:0;border-top:1px solid var(--line);padding:17px 7px 13px;width:100%;font-size:10px;color:#747e70}.help-button>span:last-child{margin-left:auto}.help-button svg{width:15px;height:15px}.version{display:flex;justify-content:space-between;color:#a4aaa0;font-size:9px;padding:4px 7px}
.app-body{margin-left:226px;flex:1;min-width:0;padding-bottom:91px}.topbar{height:54px;padding:0 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#fafbf8;gap:16px}.breadcrumb{font-size:9px;color:#a0a69d;letter-spacing:1.3px;white-space:nowrap}.breadcrumb>span{margin:0 13px;color:#c4c8be}.breadcrumb strong{font-size:11px;font-weight:400;letter-spacing:0;color:#66705f}.connection-status{display:flex;align-items:center;gap:7px;font-size:11px;color:#868d80;white-space:nowrap}.status-dot{width:6px;height:6px;background:#b9bdb6;border-radius:50%}.connection-status.connected .status-dot{background:#83a760}.connection-status.demo .status-dot{background:#a4b27a}.button{display:inline-flex;gap:8px;align-items:center;justify-content:center;border-radius:8px;padding:11px 16px;border:1px solid transparent;font-size:11px;font-weight:600;white-space:nowrap;transition:background .15s,transform .15s}.button:not(:disabled):active{transform:translateY(1px)}.button-dark{background:var(--ink);color:#fff}.button-dark:hover:not(:disabled){background:#404c3f}.button-dark svg{color:#d9e4cb}.button-subtle{background:#fff;border-color:var(--line);color:#616a5c}.button-subtle:hover:not(:disabled){background:#f4f6ef}.button-subtle svg{width:15px;height:15px}.button-accent{background:var(--accent);color:#34452b;border-color:#c9dc86}.button-accent:hover:not(:disabled){background:#cde47a}.text-button{background:transparent;border:0;padding:5px;font-size:11px;color:#718064;text-decoration:underline;text-underline-offset:3px}
main{max-width:1540px;margin:auto;padding:35px 38px 18px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:27px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:#8d9b7d;margin-bottom:12px}h1{font-size:28px;font-weight:650;letter-spacing:-.7px;line-height:1.5}.page-heading p:not(.eyebrow){font-size:11px;color:#90968b;margin-top:9px;line-height:1.8}.demo-button{background:transparent;border:0;display:flex;align-items:center;gap:8px;font-size:10px;color:#7e8b6f;padding:5px 0;margin-bottom:3px;white-space:nowrap}.demo-button svg{width:15px;height:15px}.notice{padding:12px 16px;border:1px solid #e4dac0;background:#fbf7eb;color:#7e7051;border-radius:8px;margin-bottom:14px;font-size:11px;line-height:1.8;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.notice-demo{background:#edf3e3;border-color:#dce7cb;color:#677a54}.notice-label{font-size:9px;letter-spacing:1px;font-weight:700}.notice .text-button{margin-left:auto}.device-mini{border-radius:9px;background:#f2f4ec;color:#82946e;display:grid;place-items:center;width:38px;height:38px}.device-name{display:flex;flex-direction:column;gap:5px;min-width:0}.device-name strong{font-size:12px;font-weight:600;overflow-wrap:anywhere}.device-name>span{font-size:9px;color:#a0a69b;letter-spacing:.3px}.badge{font-size:9px;border:1px solid #dfe7d1;border-radius:5px;padding:4px 7px;color:#7d8e68;background:#f7f9f1;white-space:nowrap}.editor-grid{display:grid;grid-template-columns:minmax(350px,1fr) 330px;gap:22px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:white;overflow:hidden}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 25px 17px}.section-label{display:block;font-size:8px;letter-spacing:1.7px;color:#a0a799;font-weight:600;margin-bottom:9px}.panel-top h2{font-size:14px}.layer-badge{display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid var(--line);border-radius:5px;font-size:9px;color:#858d7c}
.device-stage{position:relative;min-height:276px;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;background:#fcfdfb;border-top:1px solid #f5f6f2;border-bottom:1px solid #f3f4ef;padding:39px 20px 24px}.stage-grid{position:absolute;inset:0;background-image:radial-gradient(#dfe5d4 .8px,transparent .8px);background-size:18px 18px;opacity:.6;mask-image:radial-gradient(ellipse,#000,transparent 75%)}.device-visual{position:relative;width:min(360px,90%);border:1px solid #d3d6cd;border-bottom:7px solid #b9bfb4;background:#e9ece3;border-radius:15px 15px 19px 19px;padding:15px 20px 20px;box-shadow:0 15px 24px -15px #4d5745a0,0 2px 3px #737c5f20;transform:perspective(600px) rotateX(12deg);transition:box-shadow .3s}.device-logo{font-size:6px;font-weight:700;letter-spacing:1.5px;color:#929987;display:flex;justify-content:space-between;align-items:center;margin:0 4px 15px}.device-logo>span{font-size:12px;letter-spacing:-2px}.visual-keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.visual-key{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:95px;background:#fcfdf9;border:1px solid #cdd3c5;border-bottom:5px solid #cbd1c2;border-radius:9px;box-shadow:0 3px 5px #57634420;position:relative;transition:transform .15s,box-shadow .15s;min-width:0;padding:8px 5px}.visual-key:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 5px 10px #65734d20}.visual-key.selected{border-color:#a1b87b;border-bottom-color:#94ab6c;box-shadow:0 0 0 3px #dcebb849,0 7px 13px #a2bd7533;background:#f7fbed}.visual-key .key-number{position:absolute;top:7px;left:9px;color:#b7bdac;font-size:7px;font-weight:500}.key-icon{display:grid;place-items:center;width:30px;height:30px;color:#707f60;flex-shrink:0}.key-icon svg{width:100%;height:100%}.visual-key .key-shortcut{font-size:10px;line-height:1.4;color:#707f60;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.key-led{width:17px;height:3px;border-radius:3px;background:#b6d489;box-shadow:0 1px 6px #b6d48990;position:absolute;bottom:-4px}.device-visual.led-off .key-led{background:#aeb5a4;box-shadow:none}.device-visual.multicolor .visual-key:nth-child(2) .key-led{background:#8ab5d4;box-shadow:0 1px 6px #8ab5d4}.device-visual.multicolor .visual-key:nth-child(3) .key-led{background:#d8a69d;box-shadow:0 1px 6px #d8a69d}.device-edge{display:flex;align-items:center;justify-content:space-between;position:absolute;bottom:-7px;left:18px;right:18px;height:7px}.device-edge>span:not(.device-usb){width:4px;height:2px;border-radius:1px;background:#818b77}.device-usb{width:20px;height:4px;background:#939d88;border-radius:2px}.stage-caption{position:relative;display:flex;gap:10px;align-items:center;font-size:9px;color:#9ba38f;margin-top:31px;white-space:nowrap}.caption-line{width:18px;height:1px;background:#d6ddcc}.assignment-heading{display:flex;align-items:center;justify-content:space-between;padding:24px 25px 15px}.assignment-heading h3{font-size:11px;font-weight:600;color:#626c59}.assignment-heading>span{font-size:9px;font-family:ui-monospace,Consolas,monospace;color:#a3aa99}.assignments{padding:0 20px 17px;display:flex;flex-direction:column;gap:7px}.assignment-row{display:flex;align-items:center;gap:13px;padding:11px 12px;border:1px solid #edf0e7;border-radius:8px;cursor:pointer;background:#fff;text-align:left;width:100%;min-width:0}.assignment-row.selected{background:#f7faef;border-color:#dbe5c9}.assignment-number{display:grid;place-items:center;width:29px;height:29px;background:#f2f4ed;color:#a3ad95;border:1px solid #e8ecdf;border-bottom:3px solid #e0e6d6;border-radius:6px;font-size:11px;flex-shrink:0}.assignment-copy{flex:1;min-width:0}.assignment-copy strong{display:block;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-copy small{display:block;font-size:8px;color:#99a08f;margin-top:4px}.assignment-row .row-kind{font-size:8px;color:#9aa58b;white-space:nowrap}.assignment-row>svg{width:13px;height:13px;color:#adb7a0}.dirty-dot{width:5px;height:5px;background:#a4bb73;border-radius:50%;flex-shrink:0}.panel-footnote{display:flex;gap:7px;align-items:center;justify-content:center;border-top:1px solid #eef1e8;background:#fcfdf9;padding:13px 12px;font-size:9px;color:#9ba68d;line-height:1.7}.panel-footnote svg{width:12px;height:12px}
.inspector-header{padding:22px 22px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eff1e9}.inspector-header h2{font-size:15px}.key-label{font-size:8px;letter-spacing:1.2px;color:#a3aa9a;display:block;margin-bottom:6px}.inspector-header .selected-key-chip{background:#f1f5e8;border:1px solid #e1e8d6;border-radius:7px;display:grid;place-items:center;width:36px;height:36px;color:#839367;font-size:17px}.inspector-content{padding:20px 22px 22px}.field-label{font-size:10px;font-weight:600;display:block;margin-bottom:11px;color:#65705a}.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:24px}.type-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:12px 3px;color:#8d9780;font-size:8px;min-height:64px}.type-button svg{width:18px;height:18px}.type-button.active{background:#f0f5e5;border-color:#bbcd95;color:#5f7940}.type-button:hover{background:#f7f9f2}.type-button:last-child{grid-column:span 2;flex-direction:row}.form-field{margin-bottom:19px}.field-help{font-size:9px;line-height:1.9;color:#99a08f;margin-top:8px}.key-chips{display:flex;align-items:center;gap:5px;min-height:35px;flex-wrap:wrap;margin-bottom:11px}.key-chip{display:flex;align-items:center;gap:5px;background:#f4f6ef;border:1px solid #e0e6d7;border-radius:5px;padding:7px 9px;font-size:10px;line-height:1}.key-chip button{border:0;background:transparent;color:#a0aa91;font-size:11px;padding:0 0 0 3px}.key-plus{color:#c1c8b7;font-size:10px}.modifiers{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.check-chip input{position:absolute;opacity:0;width:1px;height:1px}.check-chip span{display:block;text-align:center;border:1px solid #e4e9dc;border-radius:5px;padding:9px 2px;color:#97a088;font-size:9px;cursor:pointer}.check-chip input:checked+span{border-color:#c2d59e;background:#edf4de;color:#617d40}.check-chip input:focus-visible+span{outline:3px solid #9ebf52;outline-offset:2px}.right-modifiers{margin-top:8px;color:#969f8a;font-size:9px}.right-modifiers summary{cursor:pointer;margin-bottom:8px}.select-control,.input-control,.text-control{width:100%;background:#fff;border:1px solid #e0e6d7;border-radius:6px;padding:11px 10px;color:#707f60;font-size:11px;min-width:0}.select-control{padding-right:24px}.text-control{line-height:1.8;min-height:132px;resize:vertical;font-family:ui-monospace,Consolas,monospace}.input-control{color:var(--ink)}.output-option{padding:11px;background:#f6f8f0;border-radius:7px}.output-option .field-label{margin-bottom:9px}.output-option .select-control{font-size:10px}.inspector-bottom{border-top:1px solid #eef1e7;padding-top:15px;display:flex;align-items:center;justify-content:space-between;margin-top:17px;color:#a2ab97;font-size:8px}.link-button{font-size:9px;color:#8d9d7a;border:0;background:transparent;padding:4px 0}.mouse-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.simple-check{display:flex;align-items:center;gap:7px;font-size:10px;color:#7b886b;padding:8px 0}.simple-check input{accent-color:#92ad62}.coordinate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.coordinate-grid label{font-size:9px;color:#8d9980}.coordinate-grid input{margin-top:7px;text-align:center;padding:9px 5px}.editor-error{color:#a65846;background:#fff7f1;border:1px solid #f0ddd0;font-size:10px;padding:10px;border-radius:6px;line-height:1.8;margin-top:12px}.unknown-note{font-size:10px;line-height:1.9;color:#927951;background:#fcf8ef;border-radius:7px;padding:12px;margin:0 0 18px}.raw-data{font-family:ui-monospace,Consolas,monospace;font-size:9px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;color:#929c86}
.workspace-footer{display:flex;justify-content:flex-end;gap:12px;font-size:8px;color:#b0b6a7;margin-top:21px}.savebar{position:fixed;bottom:0;left:226px;right:0;z-index:5;background:#fffffff2;backdrop-filter:blur(10px);border-top:1px solid var(--line);height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px}.save-status{display:flex;gap:11px;align-items:center;min-width:0}.saved-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#f1f5e8;color:#92aa70;flex-shrink:0}.saved-icon svg{width:14px;height:14px}.saved-icon.pending{background:#eef5db;color:#819a4f}.saved-icon.pending::after{content:"";width:6px;height:6px;background:#94ac5f;border-radius:50%}.saved-icon.pending svg{display:none}.saved-icon.error{background:#fbede4;color:#b16a50}.save-status strong{display:block;font-size:11px;font-weight:500}.save-status>div>span{display:block;font-size:9px;margin-top:6px;color:#9da58f;line-height:1.5;overflow-wrap:anywhere}.save-actions{display:flex;gap:10px}.save-actions .button{padding:12px 18px}.change-count{display:grid;place-items:center;border-radius:4px;background:#bcd473;color:#526435;min-width:18px;height:18px;font-size:9px}.toast{position:fixed;bottom:106px;left:calc(50% + 100px);transform:translateX(-50%);max-width:min(560px,85vw);background:#2d382b;color:#edf4e3;border:1px solid #46543f;border-radius:10px;padding:14px 21px;font-size:12px;line-height:1.8;z-index:30;box-shadow:0 8px 28px #24301e20}.toast.error{background:#724d3c;border-color:#946854}
.led-grid,.files-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}.settings-panel{padding:25px}.settings-panel h2{font-size:17px;margin-bottom:10px}.settings-panel>p{font-size:11px;line-height:2;color:#909a83;margin-bottom:22px}.effect-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.effect-card{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;color:#829172;font-size:12px}.effect-card.active{border-color:#aec680;background:#f4f8e9;color:#5b753e}.effect-card .effect-lights{display:flex;gap:6px}.effect-lights i{display:block;height:6px;width:18px;background:#c4d5a7;border-radius:3px}.effect-card[data-effect="1"] .effect-lights i{background:#d9ded3}.effect-card[data-effect="2"] .effect-lights i:nth-child(2){background:#9cbd61}.effect-card small{font-size:9px;color:#97a28b}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding:19px 0 0;font-size:12px}.switch-row small{display:block;font-size:9px;color:#9ba58f;line-height:1.8;margin-top:6px}.switch-row input{appearance:none;width:33px;height:19px;border-radius:15px;background:#d3daca;position:relative;flex-shrink:0;cursor:pointer}.switch-row input::before{content:"";width:13px;height:13px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .15s}.switch-row input:checked{background:#91ac61}.switch-row input:checked::before{transform:translateX(14px)}.led-explainer{margin-top:24px;border:1px solid #e3e9d9;border-radius:8px;background:#f8fbf2;padding:15px;font-size:10px;line-height:2;color:#899978}.file-actions{display:flex;gap:10px;flex-wrap:wrap}.backup-summary{padding:15px;background:#f7f9f2;border-radius:8px;font-size:10px;line-height:2;color:#859274;margin-bottom:16px;overflow-wrap:anywhere}.capability-list{margin:20px 0 0}.capability-list>div{display:flex;justify-content:space-between;align-items:center;font-size:11px;border-top:1px solid #edf0e6;padding:15px 0;gap:12px}.capability-list dt{color:#8a9580}.capability-list dd{margin:0;color:#6c8258;text-align:right}.unsupported-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:230px;line-height:2}.unsupported-panel svg{width:32px;height:32px;color:#a5b593;margin-bottom:18px}.unsupported-panel h2{font-size:16px}.unsupported-panel p{max-width:320px;margin:5px 0;font-size:11px}
dialog{border:1px solid #e0e6d6;border-radius:16px;padding:0;color:var(--ink);background:#fff;max-width:min(520px,calc(100vw - 32px));width:520px;max-height:85vh;overflow:auto;box-shadow:0 25px 100px #26321e40}dialog::backdrop{background:#25321d55;backdrop-filter:blur(3px)}.dialog-content{padding:30px}.dialog-content h2{font-size:22px;line-height:1.6;margin-bottom:18px}.dialog-content p,.dialog-content li{font-size:12px;line-height:2;color:#7f8d6f}.dialog-content p+p{margin-top:12px}.dialog-content ul{padding-left:20px;margin:14px 0}.dialog-content .changes-list{background:#f7f9f2;border-radius:8px;padding:12px 20px 12px 32px;max-height:240px;overflow:auto}.dialog-content a{color:#667f47}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.dialog-content .field-help{font-size:10px}
@media(min-width:1550px){main{padding-top:42px}.editor-grid{grid-template-columns:minmax(500px,1fr) 360px}.device-stage{min-height:330px}.device-visual{width:400px}.visual-key{min-height:112px}.panel-top{padding-bottom:22px}.assignments{padding-bottom:25px}}
@media(max-width:1180px){.sidebar{width:205px;padding:27px 16px 18px}.brand{font-size:19px}.app-body{margin-left:205px}.savebar{left:205px}.topbar{padding:0 25px}main{padding:30px 25px 18px}.editor-grid{grid-template-columns:minmax(280px,1fr) 292px;gap:16px}.inspector-content{padding:18px}.panel-top{padding:22px 20px 17px}.device-visual{padding:13px 14px 18px}.visual-keys{gap:10px}.visual-key{min-height:83px}.savebar{padding:0 25px}.save-actions .button{padding:11px 13px}.page-heading{align-items:start}.demo-button{margin-top:25px}.assignment-row .row-kind{display:none}}
@media(max-width:1000px){.sidebar{width:182px;padding:27px 11px 18px}.brand{gap:8px;font-size:18px;padding:0}.brand-mark{width:44px;height:44px}.brand small{font-size:7px;letter-spacing:1.5px}.nav-item{font-size:10px;gap:8px}.app-body{margin-left:182px}.savebar{left:182px}.breadcrumb{display:none}.topbar{display:none}.editor-grid{grid-template-columns:1fr}.keymap-panel .device-stage{min-height:268px}.device-visual{width:355px}.visual-key{min-height:97px}.inspector-content{display:grid;grid-template-columns:1fr 1fr;gap:22px}.type-section{border-right:1px solid var(--line);padding-right:22px}.type-grid{grid-template-columns:repeat(2,1fr)}.type-button:last-child{grid-column:span 2}.inspector-header{padding:20px}.inspector-bottom{grid-column:1/-1;margin-top:0}.save-status>div>span{max-width:200px}.led-grid,.files-grid{grid-template-columns:1fr}.demo-button{font-size:9px}h1{font-size:25px}}
@media(max-width:720px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:18px 18px 15px;border-right:0;border-bottom:1px solid var(--line);gap:0}.brand{margin-bottom:17px;width:max-content}.brand small{display:none}.brand-mark{width:40px;height:40px}.sidebar>.nav-caption,.sidebar-bottom,.sidebar-note{display:none}.main-nav{flex-direction:row;gap:6px}.nav-item{width:auto;flex:1;justify-content:center;font-size:9px;padding:10px 5px;gap:5px}.nav-item svg{width:15px;height:15px}.layer-heading{margin:19px 2px 9px}.layers{flex-direction:row;gap:6px;flex-wrap:wrap}.layer-row{flex:1;min-width:80px}.layer-button{font-size:10px;padding:9px 7px;gap:6px}.layer-button small{font-size:7px}.delete-layer{padding:3px}.delete-layer svg{width:12px;height:12px}.add-layer{margin:9px 0 0;padding:8px;font-size:9px}.app-body{margin-left:0;padding-bottom:127px}.connection-status{font-size:10px}.button{font-size:10px;padding:10px 12px}main{padding:24px 18px 15px}.page-heading{display:block;margin-bottom:22px}h1{font-size:24px}.page-heading p:not(.eyebrow){font-size:10px}.demo-button{margin-top:11px;font-size:10px}.eyebrow{font-size:8px}.device-mini{width:32px;height:32px}.device-name strong{font-size:11px}.device-name>span{font-size:8px}.editor-grid{gap:17px}.panel-top{padding:20px 18px 15px}.panel-top h2{font-size:13px}.device-stage{padding:30px 14px 22px}.device-visual{width:325px}.visual-key{min-height:86px}.stage-caption{font-size:8px;margin-top:26px}.assignment-heading{padding:19px 18px 13px}.assignments{padding:0 14px 17px}.assignment-row{padding:10px}.assignment-copy strong{font-size:10px}.panel-footnote{font-size:8px}.inspector-content{display:block;padding:19px}.type-section{border:0;padding:0}.type-grid{grid-template-columns:repeat(3,1fr)}.type-button:last-child{grid-column:span 2}.type-button{font-size:9px}.savebar{left:0;height:119px;padding:12px 18px;display:block}.save-status{gap:8px;margin-bottom:10px}.saved-icon{width:22px;height:22px}.save-status strong{font-size:10px}.save-status>div>span{font-size:8px;margin-top:3px;max-width:none}.save-actions{justify-content:space-between}.save-actions .button-accent{flex:1}.save-actions .button{padding:11px 14px}.toast{left:50%;bottom:133px;font-size:11px}.workspace-footer{font-size:7px}.settings-panel{padding:22px}.dialog-content{padding:24px}.dialog-content h2{font-size:19px}.dialog-content p,.dialog-content li{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* Interface copy stays readable; tiny lettering is reserved for decorative device details. */
.keyboard-layout-panel{margin:22px 0 0;border:1px solid var(--line);border-radius:8px;background:#fafbf8}.keyboard-layout-panel>summary{cursor:pointer;padding:13px 16px;font-size:12px;font-weight:600;color:#637253}.keyboard-layout-panel>summary #layout-status{display:inline-block;margin-left:16px;font-size:11px;font-weight:400;color:#78866a;line-height:1.7}.layout-settings{display:flex;align-items:center;gap:16px;padding:14px 16px;border-top:1px solid var(--line)}.layout-control{flex:0 0 210px}.layout-control .field-label{margin-bottom:7px}.layout-description{flex:1;min-width:0}.layout-description .field-help{margin:0;line-height:1.8}.layout-settings>.button{flex-shrink:0}.text-control[readonly]{background:#f4f6ef;color:#8d9780}@media(max-width:1180px){.layout-settings{gap:12px;flex-wrap:wrap}.layout-description{flex-basis:250px}.layout-settings>.button{margin-left:auto}}@media(max-width:720px){.keyboard-layout-panel>summary{padding:12px;font-size:11px}.keyboard-layout-panel>summary #layout-status{display:block;margin:5px 0 0 14px}.layout-settings{padding:12px;gap:12px}.layout-control{flex:1;min-width:180px}.layout-description{order:3;flex-basis:100%}.layout-settings>.button{font-size:10px;padding:10px}}
.nav-item{font-size:12px}.button{font-size:12px}.connection-status{font-size:12px}.page-heading p:not(.eyebrow){font-size:12px;color:#77846b}.device-name strong{font-size:13px}.device-name>span{font-size:10px;color:#7d886e}.section-label{color:#7e8b70}.assignment-copy strong{font-size:13px}.assignment-copy small{font-size:10px;color:#7e8b70}.assignment-row .row-kind{font-size:10px;color:#7c8b6c}.field-label{font-size:11px;color:#637253}.field-help{font-size:11px;color:#78866a}.type-button{font-size:10px}.select-control,.input-control,.text-control{font-size:12px}.check-chip span{font-size:10px;color:#768467}.right-modifiers{font-size:10px;color:#7b886c}.inspector-bottom{font-size:9px;color:#7f8c70}.link-button{font-size:10px;color:#70865b}.save-status strong{font-size:12px}.save-status>div>span{font-size:10px;color:#7d8a6c}.panel-footnote{font-size:10px;color:#798a66}.layer-button{font-size:12px}.notice{font-size:12px}.local-note{color:#637253}.stage-caption{color:#7a8a68}.workspace-footer{color:#889679}
@media(max-width:720px){.nav-item{font-size:10px}.button{font-size:11px}.connection-status{font-size:10px}.layer-button{font-size:11px}.device-name strong{font-size:12px}.device-name>span{font-size:9px}.notice{font-size:11px}.save-status strong{font-size:11px}.save-status>div>span{font-size:9px}.panel-footnote{font-size:9px}.assignment-copy strong{font-size:12px}.workspace-footer{font-size:8px}}
.product-panel{padding:20px;margin-bottom:22px}.product-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.product-heading h2{font-size:14px}.product-heading>span{font-size:10px;color:#78866a;white-space:nowrap}.product-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-link{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fafcf6;text-decoration:none;transition:background .15s,border-color .15s}.product-link:hover{background:#f0f5e6;border-color:#bbcd95}.product-copy{min-width:0}.product-copy small{display:block;font-size:10px;color:#78866a;line-height:1.7}.product-copy strong{display:block;font-size:15px;margin-top:4px}.product-cta{display:flex;align-items:center;gap:7px;font-size:11px;color:#486838;white-space:nowrap}.product-cta svg{width:14px;height:14px}.affiliate-disclosure{font-size:11px;line-height:1.8;color:#78866a;margin-top:13px}@media(max-width:720px){.product-panel{padding:16px;margin-bottom:17px}.product-heading{align-items:start}.product-heading h2{font-size:13px}.product-links{grid-template-columns:1fr;gap:9px}.product-link{padding:14px}.affiliate-disclosure{font-size:10px}}
.start-heading+.product-panel{margin-top:22px}

.sidebar>*{flex-shrink:0}.connection-panel{padding:14px 12px;margin-bottom:26px;background:#fff;border:1px solid var(--line);border-radius:11px}.connection-heading{display:flex;align-items:center;gap:8px}.connection-heading .section-label{margin:0 auto 0 0;font-size:9px;letter-spacing:1px}.connection-panel .connection-status{font-size:10px;gap:5px}.connection-heading .text-button{font-size:10px;padding:2px 0}.device-summary{display:flex;align-items:center;gap:9px;margin:13px 0;min-width:0}.connection-panel .device-mini{width:32px;height:32px;flex-shrink:0}.connection-panel .device-name{flex:1}.connection-panel .device-name strong{font-size:12px;line-height:1.5}.connection-panel .device-name>span{font-size:10px;line-height:1.7;letter-spacing:0;overflow-wrap:anywhere}.connection-panel .badge{display:inline-block;white-space:normal;font-size:9px;line-height:1.6}.connection-controls{display:grid;gap:8px;margin-top:12px}.connection-controls .button{width:100%;font-size:11px;padding:10px 8px}.connection-controls .button svg{width:15px;height:15px}.connection-panel .demo-button{width:100%;justify-content:center;margin:10px 0 0;padding:5px 0;font-size:10px}.connection-panel .notice{padding:10px;margin:12px 0 0;font-size:10px;overflow-wrap:anywhere}.offline-settings{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;line-height:1.8;color:#78866a}.offline-settings .link-button{margin-top:5px}.app-body.disconnected{padding-bottom:0}.app-body.disconnected .topbar,.app-body.disconnected .savebar,.app-body.disconnected #workspace>:not(#product-panel):not(#start-guide){display:none!important}@media(max-width:720px){.connection-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin-bottom:16px;padding:12px}.connection-heading{grid-column:1/-1}.device-summary{grid-column:1;grid-row:2;margin:0;gap:8px}.connection-controls{grid-column:2;grid-row:2 / span 2;align-self:center;margin:0;gap:7px}.connection-controls .button{font-size:10px;min-height:38px;padding:8px 10px}.connection-panel .badge{grid-column:1;width:max-content;max-width:100%}.connection-panel .demo-button,.connection-panel .notice,.offline-settings{grid-column:1/-1}.connection-panel .demo-button{margin:0}}

.start-guide{margin-bottom:24px}.start-heading h1{font-size:26px;letter-spacing:0}.start-heading>p{margin-top:12px;font-size:13px;line-height:1.9;color:#637253;max-width:900px}.start-privacy{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid #dce7cb;border-radius:10px;background:#edf3e3;margin:22px 0}.start-privacy>svg{width:22px;height:22px;color:#617d40;margin-top:2px}.start-privacy h2{font-size:14px;line-height:1.7;color:#486838}.start-privacy p{font-size:12px;line-height:1.9;color:#637253;margin-top:5px}.start-privacy small{display:block;font-size:10px;line-height:1.8;color:#78866a;margin-top:5px}.start-howto>h2,.start-support>h2{font-size:15px;margin-bottom:14px}.setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:0 0 22px;padding:0}.setup-steps li{display:flex;align-items:flex-start;gap:12px;padding:18px 16px;border:1px solid var(--line);border-radius:10px;background:#fff}.step-number{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border:1px solid #dce7cb;border-radius:50%;background:#f0f5e6;font-size:12px;font-weight:600;color:#486838}.setup-steps h3{font-size:14px;line-height:1.8}.setup-steps p{font-size:11px;line-height:1.9;color:#78866a;margin-top:6px}.start-support-grid{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.4fr);gap:18px;align-items:start}.start-support{padding:20px}.start-support>p{font-size:12px;line-height:1.9;color:#637253;margin-top:10px}.start-support .supported-browsers{font-weight:600;color:#34452b;margin-top:0}.start-support .support-note{font-size:11px;color:#78866a}.support-reference{display:inline-block;font-size:11px;color:#486838;margin-top:12px;text-underline-offset:3px}.supported-device-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.supported-device-table thead th{font-size:10px;font-weight:600;color:#78866a;padding:0 0 9px}.supported-device-table tbody th,.supported-device-table td{border-top:1px solid var(--line);padding:12px 0;vertical-align:middle}.supported-device-table tbody th{font-weight:500;padding-right:10px}.supported-device-table strong{display:block;font-size:12px;font-weight:600}.supported-device-table small{display:block;font-size:10px;color:#78866a;margin-top:4px}.supported-device-table code{font-family:ui-monospace,Consolas,monospace;font-size:11px;white-space:nowrap}.supported-device-table td+td,.supported-device-table thead th+th+th{padding-left:14px}@media(max-width:1000px){.start-support-grid{grid-template-columns:1fr}.setup-steps{grid-template-columns:1fr}.setup-steps li{padding:15px 16px}.setup-steps p{margin-top:3px}}@media(max-width:720px){.start-heading h1{font-size:22px;line-height:1.6}.start-heading>p{font-size:12px}.start-privacy{padding:14px;gap:9px;margin:18px 0}.start-privacy h2{font-size:13px}.start-privacy p{font-size:11px}.start-support{padding:16px}.start-support-grid{gap:14px}.supported-device-table{font-size:11px}.supported-device-table td+td,.supported-device-table thead th+th+th{padding-left:8px}}

.language-control{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 8px 10px;font-size:11px;color:var(--muted);white-space:nowrap}.language-control select{border:1px solid var(--line);border-radius:6px;background:white;padding:6px 8px;color:var(--ink);font-size:11px}.language-control select:disabled{opacity:.5}
