*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{overflow:hidden;overscroll-behavior:none;touch-action:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17202a;background:#dfe8e2}button{font:inherit}.lab{display:grid;grid-template-columns:minmax(0,1fr) 320px;width:100%;height:100%}#viewport{position:relative;min-width:0;min-height:0}canvas{display:block;width:100%;height:100%}.hud{position:absolute;left:18px;top:18px;display:flex;gap:10px;align-items:center;max-width:min(640px,calc(100vw - 380px));padding:10px 12px;border:1px solid rgba(255,255,255,.55);border-radius:8px;background:#f5f8f4d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 30px #1a271f21;pointer-events:none}.hud strong{font-size:15px}.hud span{color:#526356;font-size:13px}.side{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:18px;border-left:1px solid #c9d5cc;background:#f6f8f5;box-shadow:-10px 0 24px #31453614;overflow:auto}.brand h1{margin:0;font-size:24px;line-height:1.1}.brand p,.label{margin:0 0 4px;color:#647567;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.panel{padding:14px;border:1px solid #d5ded7;border-radius:8px;background:#fff}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{padding:10px;border-radius:7px;background:#eef4ef}.stat strong{display:block;margin-top:4px;font-size:18px}.motion-list,.class-list{display:grid;gap:8px}.motion-button,.class-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;padding:9px 10px;border:1px solid #d5ded7;border-radius:8px;color:#17202a;background:#fff;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.motion-button:hover,.motion-button:focus-visible,.class-button:hover,.class-button:focus-visible{border-color:#758b76;outline:none}.motion-button.is-active,.class-button.is-active{border-color:#244b36;background:#e4f0e8}.motion-button small,.class-button small{display:block;margin-top:2px;color:#66756a}.class-button{justify-content:flex-start}.swatch{flex:0 0 auto;width:28px;height:28px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #c7d2ca}.key{flex:0 0 auto;min-width:28px;padding:3px 6px;border-radius:6px;color:#f7fbf7;background:#244b36;font-size:12px;text-align:center}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions button{min-height:38px;border:1px solid #c7d2ca;border-radius:8px;background:#fff;cursor:pointer}.actions button:hover,.actions button:focus-visible{border-color:#244b36;outline:none}.status{min-height:44px;color:#526356;font-size:13px;line-height:1.45}.mobile-pad{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:min(560px,calc(100vw - 24px));transform:translate(-50%);padding:10px;border:1px solid rgba(255,255,255,.62);border-radius:8px;background:#f6f8f5e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 14px 32px #16261d2e}.mobile-pad button{min-width:0;min-height:48px;border:1px solid #c7d2ca;border-radius:8px;color:#17202a;background:#fff;font-weight:800;cursor:pointer}.mobile-pad .primary-action{color:#fff;border-color:#244b36;background:#244b36}@media(max-width:860px){.lab{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 238px}.side{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:none;padding:10px 10px max(10px,env(safe-area-inset-bottom));border-left:0;border-top:1px solid #c9d5cc}.brand,.status{display:none}.panel{padding:10px}.stats,.actions{display:none}.motion-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.motion-button{min-height:42px;padding:7px}.motion-button strong{font-size:12px}.motion-button small,.key{display:none}.class-button{min-height:46px;padding:8px}.class-button strong{font-size:13px}.class-button small{font-size:11px}.hud{left:12px;top:12px;display:block;max-width:calc(100vw - 36px);padding:9px 10px}.hud strong,.hud span{display:block}.mobile-pad{display:grid}}@media(max-width:460px){.lab{grid-template-rows:minmax(0,1fr) 224px}.side{grid-template-columns:128px minmax(0,1fr)}.motion-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-pad button{min-height:46px;font-size:13px}}
