.lab-hero{background:linear-gradient(115deg,#202b58,#603ea2 65%,#cf6981);color:#fff;border-radius:24px;padding:36px;box-shadow:0 12px 35px #32245322;position:relative;overflow:hidden}.lab-hero h1{font-size:clamp(30px,4vw,52px);color:#fff;margin:12px 0;line-height:1.25}.lab-hero p{color:#eee3ff}.lab-hero .button{background:#fff;color:#332356}.lab-hero .primary{background:#ffe39c;color:#342452}.lab-toolbar{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px 4px}.lab-toolbar label{display:flex;gap:8px;align-items:center}.lab-toolbar input{width:auto}.lab-room{background:repeating-linear-gradient(0deg,#e0bb83 0px,#e0bb83 44px,#bd925f 45px,#e2c397 47px);border:12px solid #38445d;border-top:55px solid #435b70;border-radius:18px;box-shadow:0 18px 0 #253149,0 28px 30px #25314922;padding:24px;margin-bottom:45px}.lab-sign{text-align:center;background:#26374a;color:#fff5c9;padding:16px;border-radius:10px;letter-spacing:2px;font-size:21px;font-weight:bold;margin-bottom:28px}.lab-sign span{display:block;font-size:11px;letter-spacing:3px;color:#b6dfd9;margin-top:5px}.lab-desks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px}.lab-desk{display:flex;align-items:center;flex-direction:column;text-align:center;background:#fff4d9;border:3px solid #8d6444;border-bottom:10px solid #795338;border-radius:14px;padding:18px 8px;color:#29354c;box-shadow:5px 7px 0 #714e3733;text-decoration:none;transition:transform .2s,box-shadow .2s}.lab-desk:hover{transform:translateY(-7px);box-shadow:5px 14px 0 #714e3733}.lab-desk:focus-visible{outline:4px solid #6639cc;outline-offset:5px}.lab-object{font-size:54px;display:block;filter:drop-shadow(3px 5px 1px #0002);margin-bottom:10px;animation:labfloat 4s ease-in-out infinite}.lab-desk:nth-child(even) .lab-object{animation-delay:-2s}.lab-desk small{font-size:12px;margin-top:7px}.lab-team{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin-top:34px}.lab-person{background:#ffffffed;border:3px solid var(--member);border-radius:40px 40px 12px 12px;text-align:center;display:flex;flex-direction:column;padding:12px;color:#243149;text-decoration:none;min-width:115px;max-width:180px}.lab-person>span{font-size:40px}.lab-person small{color:#54536d}.lab-entry{display:flex;justify-content:space-between;gap:10px;background:#2a3657;color:#ffe4a2;padding:22px;border-radius:16px;margin-bottom:22px;font-size:20px;font-weight:bold;text-decoration:none}.lab-entry span{font-size:14px;color:#fff}.lab-reduced *{animation:none!important;transition:none!important}@keyframes labfloat{50%{transform:translateY(-5px)}}@media(prefers-reduced-motion:reduce){.lab-object{animation:none}.lab-desk{transition:none}}@media(max-width:850px){.lab-desks{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-entry{flex-direction:column}}@media(max-width:430px){.lab-room{padding:12px;border-width:6px;border-top-width:25px}.lab-desks{gap:12px}.lab-object{font-size:40px}.lab-hero{padding:23px}.lab-sign{font-size:16px}.lab-person{min-width:100px}}
.lab-station{min-width:0}.lab-station .lab-desk{height:calc(100% - 32px);box-sizing:border-box}.lab-instant{display:block;text-align:center;font-size:12px;margin-top:8px;color:#28354b}.lab-move{display:none;justify-content:center;gap:12px;margin:8px}.editing .lab-move{display:flex}.editing .lab-station{cursor:grab}.editing .lab-desk{height:auto}.lab-edit input[type=checkbox]{width:auto}.lab-walker{position:fixed;z-index:1000;font-size:48px;pointer-events:none;transition:left .65s ease,top .65s ease;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 3px #0004)}.lab-room[data-theme=mint]{background:repeating-linear-gradient(0deg,#c4ead8 0,#c4ead8 44px,#96cdb1 46px)}.lab-room[data-theme=space]{background:repeating-linear-gradient(0deg,#7976a5 0,#7976a5 44px,#555879 46px)}
.avatar-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.avatar-options button{display:flex;flex-direction:column;align-items:center;gap:8px;background:#f8f6ff;color:#30294a;border:2px solid #ddd6f5;padding:14px 8px}.avatar-options button span{font-size:38px}.avatar-options button[aria-pressed=true]{border-color:#7248d8;background:#e7ddff;box-shadow:0 0 0 2px #7248d833}.avatar-options button:focus-visible{outline:3px solid #483295;outline-offset:3px}.my-avatar{box-shadow:0 0 0 4px #fff,0 0 0 7px var(--member)}
.game-panel{background:#f8fbff;border:2px solid #d5dfed;border-radius:22px;margin:24px 0;padding:20px}.game-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.game-heading p{font-size:12px;letter-spacing:2px;color:#47776c}.game-heading h2{margin:5px 0}.game-heading>span{background:#e5defa;padding:10px;border-radius:12px}#labCanvas{width:100%;height:auto;display:block;border-radius:14px;touch-action:manipulation}#labCanvas:focus-visible{outline:4px solid #8269cb;outline-offset:3px}.game-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.game-pad{display:flex;gap:5px}.game-pad button{min-width:44px;min-height:44px;font-size:20px}.game-note{font-size:12px;color:#57637b}.game-controls [hidden]{display:none!important}@media(max-width:500px){.game-panel{padding:10px}.game-heading{display:block}.game-heading>span{display:inline-block}#gameStatus{width:100%}}
