/* Puzzle Atrium Mystery Rooms build 2.21 - Gear Tower advanced interactions */
.gear-card-v221{width:min(820px,96vw)}
.gear-lab-v221{position:relative;min-height:430px;margin:18px auto;padding:24px;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(251,191,36,.15),transparent 34%),linear-gradient(180deg,#111827,#020617);border:1px solid rgba(148,163,184,.22);box-shadow:inset 0 0 30px rgba(0,0,0,.45)}
.gear-lab-v221.wrong{animation:shake .25s ease 2}.gear-lab-v221 .gear-source,.gear-lab-v221 .gear-output{position:absolute;top:50%;transform:translateY(-50%);z-index:3;padding:7px 10px;border-radius:999px;background:#0f172a;border:1px solid rgba(251,191,36,.5);color:#fef3c7;font-size:.72rem;font-weight:1000}.gear-lab-v221 .gear-source{left:18px}.gear-lab-v221 .gear-output{right:18px}.gear-lab-v221 .gear-energy-line{position:absolute;left:76px;right:76px;top:50%;height:8px;margin-top:-4px;border-radius:999px;background:linear-gradient(90deg,rgba(251,191,36,.14),rgba(253,230,138,.42),rgba(251,191,36,.14));opacity:.24}.gear-lab-v221.solved .gear-energy-line{opacity:1;box-shadow:0 0 24px rgba(251,191,36,.55);animation:gearPulse 1.1s linear infinite}
.tower-gear-v221{position:absolute;width:134px;height:134px;border:0;border-radius:50%;background:transparent;cursor:grab;touch-action:none;user-select:none;transition:filter .18s ease,transform .18s ease}.tower-gear-v221:active{cursor:grabbing}.tower-gear-v221:before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(#fde68a 0 10deg,#92400e 11deg 20deg);box-shadow:inset 0 0 0 22px #172033,inset 0 0 0 31px #fbbf24,0 10px 24px rgba(0,0,0,.36)}.tower-gear-v221:after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px;border-radius:50%;background:#020617;border:5px solid #fef3c7;z-index:2}.tower-gear-v221 b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;color:#fef3c7;font-size:.88rem}.tower-gear-v221 .gear-notch{position:absolute;left:50%;top:50%;z-index:4;width:18px;height:34px;margin:-17px 0 0 -9px;border-radius:999px;background:#fef08a;box-shadow:0 0 16px rgba(253,224,71,.55);transform:rotate(var(--rot,0deg)) translateY(-55px);transform-origin:50% 50%;transition:background .14s ease,box-shadow .14s ease}.tower-gear-v221 .gear-target-mark{position:absolute;left:50%;top:50%;z-index:5;width:10px;height:30px;margin:-15px 0 0 -5px;border-radius:999px;background:#ef4444;box-shadow:0 0 10px rgba(239,68,68,.55);transform:rotate(var(--target,0deg)) translateY(-62px);transform-origin:50% 50%;opacity:.9}.tower-gear-v221.target{filter:drop-shadow(0 0 14px rgba(34,197,94,.75))}.tower-gear-v221.target:before{box-shadow:inset 0 0 0 22px #052e16,inset 0 0 0 31px #22c55e,0 0 25px rgba(34,197,94,.45)}.tower-gear-v221.target .gear-notch,.tower-gear-v221.target .gear-target-mark{background:#22c55e;box-shadow:0 0 18px rgba(34,197,94,.8)}.tower-gear-v221 .angle-readout{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);font-style:normal;color:#bfdbfe;background:#0f172a;border:1px solid rgba(148,163,184,.24);padding:2px 7px;border-radius:999px;font-size:.72rem;font-weight:900;z-index:6}.gear-lab-v221 .gear-0{left:16%;top:23%}.gear-lab-v221 .gear-1{left:36%;top:42%}.gear-lab-v221 .gear-2{left:53%;top:23%}.gear-lab-v221 .gear-3{left:70%;top:42%}.gear-lab-v221 .gear-hidden-digit{position:absolute;left:50%;bottom:24px;transform:translateX(-50%) scale(.6);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#fde68a;color:#111827;font-size:2rem;font-weight:1000;opacity:0;box-shadow:0 0 32px rgba(253,230,138,.62);transition:.2s}.gear-lab-v221.solved .gear-hidden-digit{opacity:1;transform:translateX(-50%) scale(1)}
.cipher-card-v221{width:min(880px,96vw)}.cipher-window-lab-v221{position:relative;margin:18px auto;padding:22px;border-radius:22px;background:linear-gradient(135deg,#172033,#020617);border:1px solid rgba(148,163,184,.22);overflow:hidden}.cipher-window-lab-v221.wrong{animation:shake .25s ease 2}.cipher-window-lab-v221:before{content:"";position:absolute;inset:18px;border-radius:18px;background:linear-gradient(135deg,rgba(186,230,253,.14),rgba(37,99,235,.10));border:2px solid rgba(125,211,252,.25);pointer-events:none}.cipher-question-v221{position:relative;z-index:2;text-align:center;color:#fdba74;font-size:1.2rem;font-weight:1000;margin:4px 0 16px}.cipher-symbol-line-v221{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:9px;flex-wrap:wrap;margin:16px auto 24px;padding:15px;border-radius:16px;background:#f8fafc;color:#020617;border:3px solid #fb923c;box-shadow:0 12px 28px rgba(0,0,0,.28)}.cipher-glyph-v221{display:grid;place-items:center;min-width:45px;height:48px;padding:0 7px;font-size:2rem;font-family:Georgia,serif;font-weight:900;color:#020617;border-bottom:2px solid rgba(2,6,23,.18)}.cipher-space-v221{width:26px;height:1px}.pigpen-reference-v221{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:740px;margin:0 auto}.pigpen-key-group{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:8px;border-radius:14px;background:rgba(15,23,42,.78);border:1px solid rgba(148,163,184,.28)}.pigpen-key-group.xkey{grid-template-columns:repeat(4,1fr)}.pigpen-key-group span{min-height:46px;display:grid;place-items:center;border-radius:9px;background:#111827;border:1px solid rgba(148,163,184,.18)}.pigpen-key-group b{font-size:1.2rem;color:#f8fafc}.pigpen-key-group small{color:#fde68a;font-weight:1000;letter-spacing:.04em}.cipher-answer-row-v221{display:grid;gap:8px;margin:10px auto;max-width:520px;font-weight:900;color:#e5e7eb}.cipher-window-lab-v221.solved{border-color:rgba(34,197,94,.55);box-shadow:0 0 28px rgba(34,197,94,.15)}.cipher-window-lab-v221.solved .cipher-symbol-line-v221{border-color:#22c55e;box-shadow:0 0 28px rgba(34,197,94,.22)}
.chain-card-v221{width:min(920px,96vw)}.chain-lab-v221{position:relative;min-height:520px;margin:18px auto;padding:22px;border-radius:22px;background:radial-gradient(circle at 50% 48%,rgba(251,191,36,.11),transparent 35%),linear-gradient(180deg,#111827,#020617);border:1px solid rgba(148,163,184,.24);overflow:hidden}.inspection-plate-v221{position:absolute;left:50%;top:16px;transform:translateX(-50%);z-index:8;padding:9px 13px;border-radius:12px;border:1px solid rgba(251,191,36,.45);background:#172033;color:#fef3c7;font-weight:1000;cursor:pointer}.chain-diagram-v221{position:absolute;left:50%;top:62px;transform:translateX(-50%) translateY(-8px);z-index:7;display:grid;gap:4px;min-width:260px;text-align:center;padding:9px 12px;border-radius:14px;background:rgba(2,6,23,.82);border:1px solid rgba(253,230,138,.35);color:#fde68a;opacity:0;transition:.18s}.chain-diagram-v221 span{font-weight:1000;letter-spacing:.08em}.chain-diagram-v221 small{color:#bfdbfe}.chain-lab-v221.inspected .chain-diagram-v221{opacity:1;transform:translateX(-50%) translateY(0)}.weight-tray-v221{position:absolute;left:18px;top:104px;bottom:22px;width:160px;display:flex;flex-direction:column;gap:10px;z-index:4}.weight-token-v221{display:flex;align-items:center;gap:9px;padding:10px;border-radius:14px;border:1px solid rgba(148,163,184,.28);background:#172033;color:#e5e7eb;font-weight:1000;cursor:grab}.weight-token-v221 b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f59e0b;color:#111827}.weight-token-v221.selected{outline:2px solid #fde68a;box-shadow:0 0 18px rgba(253,230,138,.35)}.weight-token-v221.used{opacity:.44;filter:saturate(.5);cursor:not-allowed}.weight-token-v221.wrong{background:rgba(239,68,68,.2);border-color:#ef4444;animation:shake .24s ease 2}.socket-field-v221{position:absolute;left:205px;right:20px;top:110px;bottom:28px;border-radius:22px;background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.08),transparent 36%);border:1px solid rgba(148,163,184,.18)}.weight-socket-v221{position:absolute;width:150px;min-height:82px;border-radius:18px;border:2px dashed rgba(148,163,184,.45);background:rgba(15,23,42,.72);color:#cbd5e1;font-weight:1000;display:grid;place-items:center;gap:4px;cursor:pointer}.weight-socket-v221 span{width:36px;height:36px;border-radius:50%;background:#334155;border:4px solid #94a3b8}.weight-socket-v221.next{border-color:rgba(253,230,138,.7)}.weight-socket-v221.done{background:rgba(22,163,74,.18);border-color:#22c55e;color:#bbf7d0;box-shadow:0 0 18px rgba(34,197,94,.25)}.weight-socket-v221.done span{background:#22c55e;border-color:#bbf7d0}.weight-socket-v221.wrong{background:rgba(239,68,68,.2);border-color:#ef4444;animation:shake .24s ease 2}.weight-socket-v221.north{left:50%;top:10px;transform:translateX(-50%)}.weight-socket-v221.west{left:22px;top:50%;transform:translateY(-50%)}.weight-socket-v221.east{right:22px;top:50%;transform:translateY(-50%)}.weight-socket-v221.south{left:50%;bottom:12px;transform:translateX(-50%)}.weight-socket-v221.centre{left:50%;top:50%;transform:translate(-50%,-50%)}.chain-lab-v221 .chain-hidden-digit{position:absolute;right:34px;bottom:26px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#fde68a;color:#111827;font-size:1.9rem;font-weight:1000;opacity:0;box-shadow:0 0 28px rgba(253,230,138,.62);transition:.18s;z-index:9}.chain-lab-v221.solved .chain-hidden-digit{opacity:1}.chain-progress-v221{margin:10px 0;color:#cbd5e1;font-weight:800}
@media(max-width:900px){.tower-gear-v221{width:96px;height:96px}.tower-gear-v221:before{box-shadow:inset 0 0 0 16px #172033,inset 0 0 0 22px #fbbf24}.gear-lab-v221{min-height:370px}.gear-lab-v221 .gear-0{left:12%;top:27%}.gear-lab-v221 .gear-1{left:34%;top:44%}.gear-lab-v221 .gear-2{left:54%;top:27%}.gear-lab-v221 .gear-3{left:73%;top:44%}.pigpen-reference-v221{grid-template-columns:1fr}.chain-lab-v221{min-height:650px}.weight-tray-v221{position:relative;left:auto;top:auto;bottom:auto;width:auto;flex-direction:row;flex-wrap:wrap;margin-top:118px}.socket-field-v221{left:20px;top:250px}.weight-socket-v221{width:125px}.weight-socket-v221.west{left:8px}.weight-socket-v221.east{right:8px}}
@media(max-width:640px){.tower-gear-v221{width:76px;height:76px}.tower-gear-v221 .gear-notch{height:25px;transform:rotate(var(--rot,0deg)) translateY(-39px)}.tower-gear-v221 .gear-target-mark{height:22px;transform:rotate(var(--target,0deg)) translateY(-45px)}.cipher-glyph-v221{min-width:34px;height:40px;font-size:1.45rem}.weight-socket-v221{width:105px;font-size:.72rem}.socket-field-v221{top:300px}.chain-lab-v221{min-height:700px}}
