:where(body:has(.handwerker)) .mobile-contract,:where(body:has(.handwerker)) .mobile-contract-close,:where(body:has(.handwerker)) .mobile-camera{display:none}:where(body:has(.handwerker)) .game-dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}:where(body:has(.handwerker)) button{touch-action:manipulation}:where(body:has(.handwerker)) .game-shell.compact-ui{height:100dvh;min-height:0;overflow:hidden auto}:where(body:has(.handwerker)) .compact-ui:not(.is-playing){height:auto;min-height:100svh;padding:80px 0 22px}:where(body:has(.handwerker)) .compact-ui:not(.is-playing) .start-panel{width:calc(100% - 40px);max-width:370px;margin:12px auto 20px;position:relative;top:auto;left:auto}:where(body:has(.handwerker)) .compact-ui:not(.is-playing) .start-footer{gap:8px;padding:12px 22px;position:relative}:where(body:has(.handwerker)) .compact-ui .start-footer>span:nth-child(2),:where(body:has(.handwerker)) .compact-ui .scene-note,:where(body:has(.handwerker)) .compact-ui .scene-stamp,:where(body:has(.handwerker)) .compact-ui .topbar-center,:where(body:has(.handwerker)) .compact-ui .alpha-label{display:none}:where(body:has(.handwerker)) .compact-ui .topbar,:where(body:has(.handwerker)) .compact-ui.is-playing .topbar{padding:calc(8px + env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));gap:8px}:where(body:has(.handwerker)) .compact-ui .wordmark{gap:7px;font-size:18px}:where(body:has(.handwerker)) .compact-ui .logo-icon{width:36px;height:36px}:where(body:has(.handwerker)) .compact-ui .topbar-actions .icon-button:last-child{display:grid}:where(body:has(.handwerker)) .compact-ui .topbar-actions .icon-button:first-of-type{display:none}:where(body:has(.handwerker)) .compact-ui .icon-button,:where(body:has(.handwerker)) .compact-ui.is-playing .topbar-actions .icon-button{width:44px;min-width:44px;height:44px}:where(body:has(.handwerker)) .compact-ui input{font-size:16px!important}:where(body:has(.handwerker)) .compact-ui .name-field{padding:12px}:where(body:has(.handwerker)) .compact-ui .color-dot{border:6px solid #f8faf4;border-radius:50%;width:40px;height:40px}:where(body:has(.handwerker)) .compact-ui .color-options{gap:3px}:where(body:has(.handwerker)) .compact-ui .color-dot.selected{outline-offset:0}:where(body:has(.handwerker)) .compact-ui .mode-list{min-height:46px!important}:where(body:has(.handwerker)) .compact-ui .mode-trigger{padding:8px!important;font-size:12px!important}:where(body:has(.handwerker)) .compact-ui .join-toggle,:where(body:has(.handwerker)) .compact-ui .how-link{min-height:44px;padding:10px 0;font-size:12px}:where(body:has(.handwerker)) .compact-ui .setup-card{padding:18px}:where(body:has(.handwerker)) .compact-ui .join-form button{min-width:44px}:where(body:has(.handwerker)) .compact-ui .start-panel h1{font-size:54px}:where(body:has(.handwerker)) .compact-ui .loading-badge{width:max-content;font-size:12px;position:fixed;top:auto;bottom:20px;left:50%;transform:translate(-50%)}:where(body:has(.handwerker)) .game-shell.compact-ui.is-playing{--dock-bottom:calc(8px + env(safe-area-inset-bottom));--hud-top:calc(70px + env(safe-area-inset-top));--world-bottom:86px;overscroll-behavior:none;height:100svh;min-height:0;overflow:hidden}:where(body:has(.handwerker)) .compact-ui.is-playing.build-open{--world-bottom:266px}:where(body:has(.handwerker)) .compact-ui.is-playing.build-collapsed{--world-bottom:168px}:where(body:has(.handwerker)) .compact-ui.is-playing.has-placement .touch-controls{bottom:calc(var(--world-bottom) + 64px + env(safe-area-inset-bottom))}:where(body:has(.handwerker)) .compact-ui.is-playing .world-canvas{top:calc(var(--hud-top) + 54px);bottom:calc(var(--world-bottom) + env(safe-area-inset-bottom))}:where(body:has(.handwerker)) .compact-ui.is-playing .wordmark>span:last-child{display:none}:where(body:has(.handwerker)) .compact-ui .crew-bar{gap:7px;max-width:calc(100% - 108px);padding:5px 8px;overflow:hidden}:where(body:has(.handwerker)) .compact-ui .crew-member>span{width:28px;height:28px}:where(body:has(.handwerker)) .compact-ui .crew-member b{display:none}:where(body:has(.handwerker)) .compact-ui .empty-player{width:32px;height:32px}:where(body:has(.handwerker)) .compact-ui .mobile-contract{top:var(--hud-top);left:max(12px, env(safe-area-inset-left));width:calc(100% - 150px - env(safe-area-inset-left) - env(safe-area-inset-right));min-height:46px;color:var(--ink);text-align:left;z-index:11;background:#f8faf2f5;border:1px solid #fff;border-radius:10px;align-items:center;gap:7px;padding:7px 9px;display:flex;position:absolute}:where(body:has(.handwerker)) .mobile-contract>span{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:6px;min-width:0;font-size:11px;font-weight:700;display:flex;overflow:hidden}:where(body:has(.handwerker)) .mobile-contract>strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:10px}:where(body:has(.handwerker)) .mobile-contract>svg{width:14px}:where(body:has(.handwerker)) .compact-ui .contract-panel{display:none}:where(body:has(.handwerker)) .compact-ui .contract-panel.expanded{top:calc(var(--hud-top) + 54px);left:max(12px, env(safe-area-inset-left));width:min(300px,100% - 24px);max-height:calc(100dvh - var(--hud-top) - 145px);overscroll-behavior:contain;z-index:24;padding:18px 17px 0;display:block;overflow-y:auto;box-shadow:0 10px 60px #25392c60}:where(body:has(.handwerker)) .compact-ui .contract-panel:before{display:none}:where(body:has(.handwerker)) .compact-ui .mobile-contract-close{float:right;background:#e8efdf;border:0;border-radius:8px;place-items:center;width:44px;height:44px;margin:-10px -8px 0 4px;display:grid}:where(body:has(.handwerker)) .compact-ui .contract-panel h2{font-size:24px}:where(body:has(.handwerker)) .compact-ui .job-checklist{grid-template-columns:1fr;gap:2px}:where(body:has(.handwerker)) .compact-ui .job-item{gap:8px;min-height:44px;font-size:13px}:where(body:has(.handwerker)) .compact-ui .job-item b{font-size:12px}:where(body:has(.handwerker)) .compact-ui .contract-tip{font-size:11px}:where(body:has(.handwerker)) .compact-ui .room-panel{top:var(--hud-top);right:max(12px, env(safe-area-inset-right));z-index:11}:where(body:has(.handwerker)) .compact-ui .room-code-button{gap:7px;width:122px;min-height:46px;padding:7px 9px}:where(body:has(.handwerker)) .compact-ui .room-code-button strong{letter-spacing:1.6px;font-size:16px}:where(body:has(.handwerker)) .compact-ui .room-code-button>div>span,:where(body:has(.handwerker)) .compact-ui .room-code-button>svg{display:none}:where(body:has(.handwerker)) .compact-ui .room-count{padding:5px;font-size:10px}:where(body:has(.handwerker)) .compact-ui .network-status{max-width:125px;font-size:9px}:where(body:has(.handwerker)) .compact-ui .network-status:not(.offline){display:none}:where(body:has(.handwerker)) .compact-ui .play-side-tools{top:calc(var(--hud-top) + 57px);right:max(12px, env(safe-area-inset-right));z-index:9}:where(body:has(.handwerker)) .compact-ui .play-side-tools .icon-button{width:40px;min-width:40px;height:40px}:where(body:has(.handwerker)) .compact-ui .play-side-tools .icon-button:not(:first-child){display:none}:where(body:has(.handwerker)) .compact-ui .mobile-camera{left:max(12px, env(safe-area-inset-left));top:calc(var(--hud-top) + 56px);z-index:9;gap:3px;display:flex;position:absolute}:where(body:has(.handwerker)) .mobile-camera button{color:#526c4f;background:#eef5e2dd;border:1px solid #c1d0b7;border-radius:8px;place-items:center;width:38px;height:40px;display:grid}:where(body:has(.handwerker)) .compact-ui .play-bottom{left:max(10px, env(safe-area-inset-left));right:max(10px, env(safe-area-inset-right));width:auto;max-width:none;bottom:var(--dock-bottom);z-index:12;gap:7px;transform:none}:where(body:has(.handwerker)) .compact-ui .tool-dock{justify-content:space-around;gap:0;width:100%;min-height:54px;padding:4px}:where(body:has(.handwerker)) .compact-ui .tool-dock>button{flex-direction:column;gap:3px;min-width:44px;min-height:44px;padding:5px 3px;font-size:9px}:where(body:has(.handwerker)) .compact-ui .tool-dock>button svg{width:19px;height:19px}:where(body:has(.handwerker)) .compact-ui .tool-dock kbd,:where(body:has(.handwerker)) .compact-ui .dock-separator{display:none}:where(body:has(.handwerker)) .compact-ui .context-hint{white-space:normal;text-align:center;max-width:100%;height:17px;font-size:9px;line-height:1.2}:where(body:has(.handwerker)) .compact-ui .build-tray{border-radius:12px;width:100%;padding:7px 9px 0}:where(body:has(.handwerker)) .compact-ui .build-tray-top{gap:5px;padding-bottom:5px}:where(body:has(.handwerker)) .compact-ui .build-tray-top>span{gap:0;font-size:0}:where(body:has(.handwerker)) .compact-ui .build-tray-top>span>small{display:none}:where(body:has(.handwerker)) .compact-ui .build-tray-top>button{place-items:center;min-width:40px;min-height:40px;display:grid}:where(body:has(.handwerker)) .compact-ui .category-list{gap:0!important;height:40px!important}:where(body:has(.handwerker)) .compact-ui .category-list button{gap:4px!important;min-height:36px!important;padding:7px 9px!important;font-size:11px!important}:where(body:has(.handwerker)) .compact-ui .piece-cards{overscroll-behavior-x:contain;gap:6px;padding:7px 0;overflow-x:auto}:where(body:has(.handwerker)) .compact-ui .piece-card{flex:1;min-width:57px;min-height:69px;padding:2px 3px 6px}:where(body:has(.handwerker)) .compact-ui .piece-card img{width:54px;height:43px}:where(body:has(.handwerker)) .compact-ui .piece-card span{font-size:9px}:where(body:has(.handwerker)) .compact-ui .piece-card kbd{display:none}:where(body:has(.handwerker)) .compact-ui .build-hint{min-height:41px;padding:0}:where(body:has(.handwerker)) .compact-ui .build-hint>span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}:where(body:has(.handwerker)) .compact-ui .build-hint button{min-height:40px;padding:7px;font-size:11px;font-weight:700}:where(body:has(.handwerker)) .compact-ui .build-hint kbd{display:none}:where(body:has(.handwerker)) .compact-ui .touch-controls{pointer-events:none;left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));bottom:calc(var(--world-bottom) + env(safe-area-inset-bottom));z-index:10;justify-content:space-between;align-items:center;display:flex;position:absolute}:where(body:has(.handwerker)) .compact-ui .touch-pad{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:auto;background:#dce8d19c;border:2px solid #f9ffebd9;border-radius:50%;place-items:center;width:86px;height:86px;display:grid;position:relative}:where(body:has(.handwerker)) .compact-ui .touch-pad:before{content:"";border-radius:50%;position:absolute;inset:-12px}:where(body:has(.handwerker)) .compact-ui .touch-pad[data-active]{background:#e3ecd5e6;border-color:#fff4b5}:where(body:has(.handwerker)) .compact-ui .touch-pad span{color:#78916d;width:45px;height:45px;transform:translate(var(--stick-x,0px), var(--stick-y,0px));pointer-events:none;background:#f8fdebe6;border-radius:50%;place-items:center;font-size:30px;display:grid}:where(body:has(.handwerker)) .compact-ui .touch-controls>button{color:#6e855c;touch-action:none;pointer-events:auto;background:#f4f8e8ed;border:1px solid #e0eaca;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:60px;height:60px;display:flex}:where(body:has(.handwerker)) .touch-controls>button>span{font-size:9px;font-weight:700}:where(body:has(.handwerker)) .interaction-status{z-index:8;color:#49634e;background:#f5f8e8ed;border:1px solid #fff9;border-radius:12px;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 520px);padding:10px 14px;display:flex;position:absolute;top:100px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #3d594315}:where(body:has(.handwerker)) .interaction-status .interaction-icon{background:#dce8d1;border-radius:9px;flex-shrink:0;place-items:center;width:35px;height:35px;display:grid}:where(body:has(.handwerker)) .interaction-status strong,:where(body:has(.handwerker)) .interaction-status div>span{display:block}:where(body:has(.handwerker)) .interaction-status strong{font-size:12px}:where(body:has(.handwerker)) .interaction-status div>span{color:#71806b;margin-top:3px;font-size:10px}:where(body:has(.handwerker)) .interaction-status button{color:#42523a;background:#ffdc6a;border:0;border-radius:8px;align-items:center;gap:7px;min-height:40px;padding:8px 12px;font-size:12px;font-weight:700;display:flex}:where(body:has(.handwerker)) .interaction-status.carrying{background:#fff5d7}:where(body:has(.handwerker)) .interaction-status.carrying .interaction-icon{background:#ffe392}:where(body:has(.handwerker)) .interaction-status div>.interaction-wind{color:#9b6614;font-weight:700}:where(body:has(.handwerker)) .build-status{pointer-events:none;border-left:4px solid #e5b047}:where(body:has(.handwerker)) .build-status button{pointer-events:auto;min-width:42px}:where(body:has(.handwerker)) .build-status.ready{border-left-color:#36a879}:where(body:has(.handwerker)) .build-status.blocked{background:#fff0e8;border-left-color:#d76855}:where(body:has(.handwerker)) .build-status.blocked div>span{color:#a74b39}:where(body:has(.handwerker)) .build-status .interaction-icon{background:#ffdf8e}:where(body:has(.handwerker)) .build-status.ready .interaction-icon{background:#c9edd8}:where(body:has(.handwerker)) .is-playing:not(.compact-ui) .game-toast{pointer-events:none;top:188px}:where(body:has(.handwerker)) .compact-ui .interaction-status{top:calc(var(--hud-top) + 105px);gap:7px;width:auto;max-width:none;padding:7px 9px;left:12px;right:12px;transform:none}:where(body:has(.handwerker)) .compact-ui .interaction-status .interaction-icon{width:27px;height:31px}:where(body:has(.handwerker)) .compact-ui .interaction-status strong{font-size:11px}:where(body:has(.handwerker)) .compact-ui .interaction-status div>span{font-size:9px;line-height:1.25}:where(body:has(.handwerker)) .compact-ui .interaction-status button{min-width:62px;min-height:42px;margin-left:auto;padding:6px;font-size:11px}:where(body:has(.handwerker)) .tool-dock button:disabled{cursor:not-allowed;opacity:.4}@media (max-height:500px) and (min-width:480px){:where(body:has(.handwerker)) .compact-ui .interaction-status{padding:5px 8px;top:51px;left:110px;right:98px}:where(body:has(.handwerker)) .compact-ui .interaction-status .interaction-icon{display:none}:where(body:has(.handwerker)) .compact-ui .interaction-status button{min-height:36px}:where(body:has(.handwerker)) .compact-ui .interaction-status strong{font-size:10px}:where(body:has(.handwerker)) .compact-ui .interaction-status div>span{font-size:8px}}:where(body:has(.handwerker)) .placement-confirm{background:#f8faf2f7;border:1px solid #fff;border-radius:10px;align-items:center;gap:7px;width:100%;padding:6px 8px;display:flex}:where(body:has(.handwerker)) .placement-confirm>span{color:#52694a;flex:1;min-width:0;font-size:11px;line-height:1.3}:where(body:has(.handwerker)) .placement-confirm>.primary-button{white-space:nowrap;width:auto;min-height:44px;padding:8px 12px;font-size:12px}:where(body:has(.handwerker)) .placement-confirm>button:last-child{color:#6d7b63;background:0 0;border:0;place-items:center;min-width:40px;min-height:44px;display:grid}:where(body:has(.handwerker)) .build-selection{background:#f8faf2f7;border:1px solid #fff;border-left:4px solid #e5b047;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:0 4px;width:100%;padding:3px 8px 8px;display:flex}:where(body:has(.handwerker)) .build-selection button{color:#566c4e;background:0 0;border:0;align-items:center;gap:7px;min-height:42px;font-size:12px;font-weight:700;display:flex}:where(body:has(.handwerker)) .build-selection.ready{border-left-color:#36a879}:where(body:has(.handwerker)) .build-selection.blocked{background:#fff0e8;border-left-color:#d76855}:where(body:has(.handwerker)) .build-feedback{color:#697a59;flex-basis:100%;padding:0 7px;font-size:10px;line-height:1.3}:where(body:has(.handwerker)) .build-selection.blocked .build-feedback{color:#a74b39}:where(body:has(.handwerker)) .compact-ui .game-toast{top:auto;bottom:calc(var(--world-bottom) + 100px + env(safe-area-inset-bottom));pointer-events:none;width:max-content;max-width:calc(100% - 32px);font-size:11px}:where(body:has(.handwerker)) .compact-ui .wind-warning{top:calc(var(--hud-top) + 103px);z-index:8;pointer-events:none;padding:7px 10px}:where(body:has(.handwerker)) .compact-ui .game-dialog{padding:22px!important}:where(body:has(.handwerker)) .compact-ui .instructions p{gap:9px;font-size:12px}:where(body:has(.handwerker)) .compact-ui .instructions kbd{min-width:58px}:where(body:has(.handwerker)) .compact-ui .result-reopen{top:calc(var(--hud-top) + 110px);z-index:10;min-height:44px}@media (max-width:370px){:where(body:has(.handwerker)) .mobile-contract>span>svg{display:none}:where(body:has(.handwerker)) .mobile-contract{flex-wrap:wrap}:where(body:has(.handwerker)) .mobile-contract>span{flex-basis:100%}:where(body:has(.handwerker)) .mobile-contract>strong{margin-right:auto}:where(body:has(.handwerker)) .compact-ui .mobile-contract{padding:5px 8px}:where(body:has(.handwerker)) .compact-ui .build-tray-top>span{display:none}:where(body:has(.handwerker)) .compact-ui .category-list button{padding:7px!important}:where(body:has(.handwerker)) .compact-ui .category-list button>svg{display:none}:where(body:has(.handwerker)) .compact-ui .start-panel h1{font-size:48px}:where(body:has(.handwerker)) .compact-ui .setup-card{padding:15px}}@media (max-height:500px) and (min-width:480px){:where(body:has(.handwerker)) .compact-ui:not(.is-playing){padding-top:64px}:where(body:has(.handwerker)) .compact-ui:not(.is-playing) .start-panel{grid-template-columns:1fr 1fr;align-items:start;gap:10px 28px;width:calc(100% - 60px);max-width:720px;display:grid}:where(body:has(.handwerker)) .compact-ui .start-panel .eyebrow{grid-area:1/1;margin-top:15px}:where(body:has(.handwerker)) .compact-ui .start-panel h1{grid-area:2/1;margin:4px 0;font-size:43px}:where(body:has(.handwerker)) .compact-ui .start-panel .intro{grid-area:3/1;margin:0;font-size:13px}:where(body:has(.handwerker)) .compact-ui .start-panel .player-pills{grid-area:4/1;margin:0}:where(body:has(.handwerker)) .compact-ui .start-panel .setup-card{grid-area:1/2/span 5}:where(body:has(.handwerker)) .compact-ui .start-panel .how-link{grid-area:5/1}:where(body:has(.handwerker)) .game-shell.compact-ui.is-playing{--hud-top:calc(8px + env(safe-area-inset-top));--world-bottom:70px}:where(body:has(.handwerker)) .compact-ui.is-playing .topbar{width:64px;right:auto}:where(body:has(.handwerker)) .compact-ui.is-playing .crew-bar{display:none}:where(body:has(.handwerker)) .compact-ui.is-playing .topbar-actions{right:148px;top:calc(8px + env(safe-area-inset-top));display:flex;position:fixed}:where(body:has(.handwerker)) .compact-ui .mobile-contract{width:225px;max-width:calc(100% - 240px);left:70px}:where(body:has(.handwerker)) .compact-ui .room-panel{right:12px}:where(body:has(.handwerker)) .compact-ui .mobile-camera{grid-template-columns:repeat(2,40px);display:grid;top:64px;left:12px}:where(body:has(.handwerker)) .compact-ui .mobile-camera button{width:40px;height:36px}:where(body:has(.handwerker)) .compact-ui .play-side-tools{display:none}:where(body:has(.handwerker)) .compact-ui.is-playing .world-canvas{inset:48px 0 65px 45px}:where(body:has(.handwerker)) .compact-ui.is-playing.build-open .world-canvas{right:274px}:where(body:has(.handwerker)) .compact-ui.is-playing.build-open,:where(body:has(.handwerker)) .compact-ui.is-playing.build-collapsed,:where(body:has(.handwerker)) .compact-ui.is-playing.has-placement{--world-bottom:70px}:where(body:has(.handwerker)) .compact-ui .play-bottom{gap:5px;left:110px;right:100px}:where(body:has(.handwerker)) .compact-ui .context-hint{display:none}:where(body:has(.handwerker)) .compact-ui .build-tray{right:max(12px, env(safe-area-inset-right));width:256px;padding:5px 8px 0;position:fixed;bottom:64px}:where(body:has(.handwerker)) .compact-ui .build-tray-top>span{display:none}:where(body:has(.handwerker)) .compact-ui .build-tray-top{gap:2px}:where(body:has(.handwerker)) .compact-ui .category-list button{min-height:34px!important;padding:6px!important}:where(body:has(.handwerker)) .compact-ui .piece-card{min-width:56px;min-height:61px}:where(body:has(.handwerker)) .compact-ui .piece-card img{height:36px}:where(body:has(.handwerker)) .compact-ui .build-hint>span{display:none}:where(body:has(.handwerker)) .compact-ui .build-hint{justify-content:flex-end}:where(body:has(.handwerker)) .compact-ui .touch-controls,:where(body:has(.handwerker)) .compact-ui.is-playing.has-placement .touch-controls{bottom:calc(8px + env(safe-area-inset-bottom));left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));align-items:flex-end}:where(body:has(.handwerker)) .compact-ui .touch-pad{width:78px;height:78px}:where(body:has(.handwerker)) .compact-ui .touch-controls>button{width:60px;height:56px}:where(body:has(.handwerker)) .compact-ui .placement-confirm{width:calc(100% - 220px);min-width:0;position:fixed;bottom:152px;left:110px}:where(body:has(.handwerker)) .compact-ui .build-selection{width:256px;position:fixed;bottom:72px;right:12px}:where(body:has(.handwerker)) .compact-ui .placement-confirm>span{font-size:10px;display:block}:where(body:has(.handwerker)) .compact-ui .contract-panel.expanded{max-height:calc(100dvh - 136px);top:60px;left:70px}:where(body:has(.handwerker)) .compact-ui .game-toast{max-width:320px;top:128px;bottom:auto}:where(body:has(.handwerker)) .compact-ui .wind-warning{top:65px}}:where(body:has(.handwerker)) .game-shell{isolation:isolate;height:100svh;min-height:650px;position:relative;overflow:hidden}:where(body:has(.handwerker)) .world-canvas{touch-action:none;position:absolute;inset:0}:where(body:has(.handwerker)) .world-canvas canvas{width:100%;height:100%;display:block}:where(body:has(.handwerker)) .world-vignette{pointer-events:none;background:linear-gradient(90deg,#c5d8c499,#0000 50%),linear-gradient(#0000 84%,#a9c1ac8c);position:absolute;inset:0}:where(body:has(.handwerker)) .topbar{z-index:10;justify-content:space-between;align-items:center;gap:20px;padding:27px 38px;display:flex;position:absolute;top:0;left:0;right:0}:where(body:has(.handwerker)) .wordmark{color:var(--ink);letter-spacing:-.6px;align-items:center;gap:11px;font-family:Fredoka,sans-serif;font-size:23px;font-weight:700;line-height:1;text-decoration:none;display:flex}:where(body:has(.handwerker)) .logo-icon{background:var(--ink);color:var(--yellow);border-radius:13px;place-items:center;width:43px;height:43px;display:grid;transform:rotate(-5deg)}:where(body:has(.handwerker)) .amp{color:#6b8373;margin:0 5px;font-size:16px}:where(body:has(.handwerker)) .logo-dot{color:#c18629}:where(body:has(.handwerker)) .topbar-center{letter-spacing:1.7px;align-items:center;gap:8px;margin-right:50px;font-size:11px;font-weight:700;display:flex}:where(body:has(.handwerker)) .status-dot,:where(body:has(.handwerker)) .green-dot{background:#4d8067;border-radius:50%;width:7px;height:7px;display:inline-block}:where(body:has(.handwerker)) .status-dot{box-shadow:0 0 0 4px #8cab9440}:where(body:has(.handwerker)) .topbar-actions{align-items:center;gap:9px;display:flex}:where(body:has(.handwerker)) .alpha-label{letter-spacing:1.1px;opacity:.7;margin-right:14px;font-size:10px;font-weight:700}:where(body:has(.handwerker)) .icon-button{width:38px;height:38px;color:var(--ink);background:#e2eddd88;border:1px solid #73978145;border-radius:11px;place-items:center;display:grid}:where(body:has(.handwerker)) .icon-button:hover{background:#f1f5e8}:where(body:has(.handwerker)) .start-panel{z-index:2;width:340px;position:absolute;top:clamp(111px,15vh,172px);left:clamp(25px,4.5vw,82px)}:where(body:has(.handwerker)) .eyebrow{letter-spacing:1.6px;color:#567363;align-items:center;gap:9px;font-size:10px;font-weight:700;display:flex}:where(body:has(.handwerker)) .tiny-line{background:#728c74;width:20px;height:2px}:where(body:has(.handwerker)) .game-shell h1{letter-spacing:-2px;margin:20px 0 19px;font-family:Fredoka,sans-serif;font-size:62px;font-weight:600;line-height:.98}:where(body:has(.handwerker)) .game-shell h1>span{color:#f8faf0;text-shadow:0 2px #6e8d7250;position:relative}:where(body:has(.handwerker)) .game-shell h1 svg{fill:none;stroke:#dbac36;stroke-width:6px;stroke-linecap:round;width:100%;height:12px;position:absolute;bottom:-9px;left:0}:where(body:has(.handwerker)) .intro{color:#4a6455;margin:0 0 18px;font-size:16px;line-height:1.55}:where(body:has(.handwerker)) .player-pills{gap:13px;margin-bottom:22px;font-size:11px;font-weight:600;display:flex}:where(body:has(.handwerker)) .player-pills>span{align-items:center;gap:6px;display:flex}:where(body:has(.handwerker)) .setup-card{background:#f8faf4f5;border:1px solid #ffffffb0;border-radius:17px;padding:20px;box-shadow:0 9px 0 -5px #466d4a20,0 16px 40px #405a4520}:where(body:has(.handwerker)) .field-label{letter-spacing:1.4px;color:#768776;margin-bottom:8px;font-size:9px;font-weight:700;display:block}:where(body:has(.handwerker)) .name-field{background:#eef2e9;border:1px solid #dce4d7;border-radius:9px;align-items:center;gap:10px;padding:11px 13px;display:flex}:where(body:has(.handwerker)) .name-field>svg{color:#84927e}:where(body:has(.handwerker)) .name-field input{color:var(--ink);background:0 0;border:0;outline:none;width:100%;font-size:14px}:where(body:has(.handwerker)) .name-field input::placeholder{color:#94a08d}:where(body:has(.handwerker)) .color-row{color:#6a7d6b;justify-content:space-between;align-items:center;margin:13px 0 17px;font-size:12px;display:flex}:where(body:has(.handwerker)) .color-options{gap:8px;display:flex}:where(body:has(.handwerker)) .color-dot{color:#354d42;border:2px solid #0000;border-radius:50%;place-items:center;width:25px;height:25px;display:grid}:where(body:has(.handwerker)) .color-dot.selected{outline-offset:2px;outline:2px solid #506959}:where(body:has(.handwerker)) .mode-tabs{gap:0!important}:where(body:has(.handwerker)) .mode-list{background:#e9eee3!important;border-radius:9px!important;width:100%!important;height:40px!important;padding:4px!important;display:flex!important}:where(body:has(.handwerker)) .mode-trigger{border-radius:6px!important;gap:6px!important;padding:7px 9px!important;font-size:11px!important;font-weight:700!important}:where(body:has(.handwerker)) .mode-trigger[data-active]{background:#fffef5!important;box-shadow:0 2px 4px #45633015!important}:where(body:has(.handwerker)) .mode-description{text-align:center;color:#84917e;min-height:38px;padding:10px 0 12px;line-height:1.5;font-size:10.5px!important}:where(body:has(.handwerker)) .primary-button{background:var(--yellow);color:#35402f;border:1px solid #e0b039;border-bottom:4px solid #d1a030;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:13px 16px;font-size:14px;font-weight:700;display:flex;box-shadow:0 3px 6px #9c831111}:where(body:has(.handwerker)) .primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 12px #70602125}:where(body:has(.handwerker)) .primary-button:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}:where(body:has(.handwerker)) .join-toggle{color:#637b67;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px 0 0;font-size:11px;font-weight:600;display:flex}:where(body:has(.handwerker)) .join-toggle>svg:last-child{margin-left:3px}:where(body:has(.handwerker)) .join-form{gap:7px;margin-top:14px;display:flex}:where(body:has(.handwerker)) .join-form input{letter-spacing:3px;background:#eef2e9;border:1px solid #d8e0d2;border-radius:7px;width:100%;padding:10px 12px;font-size:14px;font-weight:700}:where(body:has(.handwerker)) .join-form button{color:#47614b;background:#d7e5cf;border:0;border-radius:7px;padding:0 12px}:where(body:has(.handwerker)) .how-link{color:#5f7d64;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;width:100%;padding-top:18px;font-size:11px;display:flex}:where(body:has(.handwerker)) .scene-stamp{background:#f8f6dc;border:1px solid #ffffffa0;border-radius:3px;align-items:center;gap:12px;padding:15px 20px;display:flex;position:absolute;bottom:106px;right:7vw;transform:rotate(-3deg);box-shadow:2px 4px #435c4020}:where(body:has(.handwerker)) .stamp-icon{color:#839274;border:1.5px dashed #809173;border-radius:50%;place-items:center;width:41px;height:41px;display:grid}:where(body:has(.handwerker)) .scene-stamp strong{letter-spacing:1.4px;font-size:10px;display:block}:where(body:has(.handwerker)) .scene-stamp span:not(.stamp-icon){color:#82907a;margin-top:5px;font-size:10px;display:block}:where(body:has(.handwerker)) .scene-note{color:#72744c;background:#f4d97d;padding:24px 18px 14px;font-family:Fredoka,sans-serif;font-size:18px;line-height:1.12;position:absolute;top:128px;right:6vw;transform:rotate(7deg);box-shadow:2px 6px #48624312}:where(body:has(.handwerker)) .note-small{margin-top:9px;font-family:DM Sans,sans-serif;font-size:9px;display:block}:where(body:has(.handwerker)) .note-pin{background:#f8faeb80;width:50px;height:19px;position:absolute;top:-9px;left:38%;transform:rotate(-14deg)}:where(body:has(.handwerker)) .start-footer{color:#56745b;justify-content:space-between;align-items:center;gap:15px;padding:22px 38px;font-size:10px;display:flex;position:absolute;bottom:0;left:0;right:0}:where(body:has(.handwerker)) .start-footer>span:nth-child(2){align-items:center;gap:6px;display:flex}:where(body:has(.handwerker)) .footer-divider{opacity:.4;margin:0 7px}:where(body:has(.handwerker)) .start-footer button{color:inherit;background:0 0;border:0}:where(body:has(.handwerker)) .loading-badge{z-index:9;background:#f6f9e9f5;border-radius:14px;align-items:center;gap:12px;padding:18px 25px;font-size:14px;display:flex;position:absolute;top:50%;left:63%;transform:translate(-50%,-50%);box-shadow:0 8px 40px #5a715626}:where(body:has(.handwerker)) .loader{border:2px solid #d2ddc5;border-top-color:#638569;border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}:where(body:has(.handwerker)) .form-error{color:#895f34;background:#f6e7ce;border-radius:7px;margin:12px 0 0;padding:9px;font-size:12px;line-height:1.45}:where(body:has(.handwerker)) .game-dialog{max-width:440px!important;color:var(--ink)!important;background:#f8faf2!important;border-radius:20px!important;gap:15px!important;padding:30px!important}:where(body:has(.handwerker)) .dialog-heading{font-family:Fredoka,sans-serif;font-size:29px!important;font-weight:600!important;line-height:1.1!important}:where(body:has(.handwerker)) .dialog-icon{background:#ffe59a;border-radius:14px;place-items:center;width:54px;height:54px;margin-bottom:3px;display:grid}:where(body:has(.handwerker)) .instructions{flex-direction:column;gap:13px;margin:8px 0 14px;display:flex}:where(body:has(.handwerker)) .instructions p{align-items:center;gap:12px;margin:0;font-size:12px;line-height:1.5;display:flex}:where(body:has(.handwerker)) .instructions kbd{text-align:center;min-width:66px}:where(body:has(.handwerker)) .instructions span{color:#70826e}:where(body:has(.handwerker)) kbd{color:#5e715c;background:#fffdf4;border:1px solid #d2dbc9;border-bottom-width:3px;border-radius:5px;padding:4px 6px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:700;display:inline-block}:where(body:has(.handwerker)) .settings-row{border-bottom:1px solid #dce4d5;justify-content:space-between;align-items:center;padding:15px 0;font-size:14px;display:flex}:where(body:has(.handwerker)) .muted-copy{color:#778873;font-size:13px;line-height:1.6}:where(body:has(.handwerker)) .secondary-button{color:var(--ink);background:#edf2e6;border:1px solid #d0dcc8;border-radius:9px;justify-content:space-between;align-items:center;gap:9px;padding:13px 16px;font-size:13px;font-weight:600;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@media (min-height:850px){:where(body:has(.handwerker)) .start-panel{top:16vh}:where(body:has(.handwerker)) .setup-card{padding:24px}:where(body:has(.handwerker)) .game-shell h1{font-size:70px}:where(body:has(.handwerker)) .intro{margin-bottom:24px}:where(body:has(.handwerker)) .player-pills{margin-bottom:27px}:where(body:has(.handwerker)) .name-field{padding:13px}:where(body:has(.handwerker)) .mode-list{height:44px!important}:where(body:has(.handwerker)) .primary-button{padding:15px 17px}:where(body:has(.handwerker)) .how-link{padding-top:22px}}@media (max-width:1050px){:where(body:has(.handwerker)) .topbar-center{display:none}:where(body:has(.handwerker)) .scene-note{font-size:14px;top:120px;right:28px}:where(body:has(.handwerker)) .scene-stamp{bottom:85px;right:25px}:where(body:has(.handwerker)) .start-panel{width:318px;left:28px}:where(body:has(.handwerker)) .game-shell h1{font-size:58px}:where(body:has(.handwerker)) .topbar{padding:23px 27px}:where(body:has(.handwerker)) .start-footer{padding:19px 26px}:where(body:has(.handwerker)) .start-footer>span:nth-child(2){flex-wrap:wrap;max-width:280px;font-size:9px}}@media (max-width:700px){:where(body:has(.handwerker)) .game-shell{height:100svh;min-height:820px;overflow:auto}:where(body:has(.handwerker)) .topbar{padding:19px 20px}:where(body:has(.handwerker)) .wordmark{gap:8px;font-size:18px}:where(body:has(.handwerker)) .logo-icon{border-radius:10px;width:34px;height:34px}:where(body:has(.handwerker)) .logo-icon svg{width:23px}:where(body:has(.handwerker)) .amp{margin:0 3px;font-size:13px}:where(body:has(.handwerker)) .alpha-label{display:none}:where(body:has(.handwerker)) .topbar-actions{gap:6px}:where(body:has(.handwerker)) .icon-button{border-radius:9px;width:32px;height:32px}:where(body:has(.handwerker)) .topbar-actions .icon-button:last-child{display:none}:where(body:has(.handwerker)) .start-panel{width:calc(100% - 44px);max-width:370px;top:98px;left:22px}:where(body:has(.handwerker)) .eyebrow{font-size:9px}:where(body:has(.handwerker)) .game-shell h1{margin-top:13px;font-size:55px}:where(body:has(.handwerker)) .intro{font-size:14px;line-height:1.5}:where(body:has(.handwerker)) .player-pills{margin-bottom:18px}:where(body:has(.handwerker)) .setup-card{background:#f8faf4f5;padding:20px}:where(body:has(.handwerker)) .scene-note,:where(body:has(.handwerker)) .scene-stamp{display:none}:where(body:has(.handwerker)) .world-vignette{background:linear-gradient(90deg,#b9cfbdc9,#b9cfbd40),linear-gradient(#0000 50%,#b9cfbd)}:where(body:has(.handwerker)) .start-footer{padding:18px 23px;font-size:9px}:where(body:has(.handwerker)) .start-footer>span:nth-child(2){display:none}:where(body:has(.handwerker)) .loading-badge{width:max-content;max-width:90%;top:75%;left:50%}:where(body:has(.handwerker)) .mode-description{font-size:11px!important}:where(body:has(.handwerker)) .mode-trigger{font-size:12px!important}:where(body:has(.handwerker)) .field-label{font-size:10px}:where(body:has(.handwerker)) .how-link,:where(body:has(.handwerker)) .join-toggle{font-size:12px}:where(body:has(.handwerker)) .color-row{font-size:13px}:where(body:has(.handwerker)) .primary-button{padding:14px 16px}}@media (prefers-reduced-motion:reduce){:where(body:has(.handwerker)) *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}:where(body:has(.handwerker)) .is-playing .world-vignette{background:linear-gradient(#0000 73%,#a3bca658)}:where(body:has(.handwerker)) .is-playing .topbar{background:linear-gradient(#c8dac5e6,#0000);padding:18px 27px}:where(body:has(.handwerker)) .is-playing .wordmark{font-size:20px}:where(body:has(.handwerker)) .is-playing .logo-icon{width:36px;height:36px}:where(body:has(.handwerker)) .crew-bar{background:#f6f9edb8;border:1px solid #ffffff85;border-radius:12px;align-items:center;gap:9px;padding:7px 11px;display:flex}:where(body:has(.handwerker)) .crew-member{align-items:center;gap:7px;display:flex}:where(body:has(.handwerker)) .crew-member>span{border-radius:9px;place-items:center;width:30px;height:30px;display:grid}:where(body:has(.handwerker)) .crew-member b{text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:12px;overflow:hidden}:where(body:has(.handwerker)) .crew-member small{letter-spacing:.5px;font-size:7px;font-weight:700;display:none}:where(body:has(.handwerker)) .empty-player{color:#799371;background:0 0;border:1px dashed #9ab093;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}:where(body:has(.handwerker)) .contract-panel{background:#f9faeff5;border-top:5px solid #f3c048;border-radius:4px 15px 15px;width:248px;padding:21px 19px 0;position:absolute;top:100px;left:27px;box-shadow:0 7px 30px #46604918}:where(body:has(.handwerker)) .contract-panel:before{content:"";background:#5c7163;border-radius:4px;width:55px;height:15px;position:absolute;top:-12px;left:90px}:where(body:has(.handwerker)) .contract-heading{letter-spacing:1.5px;color:#81917c;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:8px;font-weight:700;display:flex}:where(body:has(.handwerker)) .contract-heading>span:first-child{align-items:center;gap:7px;display:flex}:where(body:has(.handwerker)) .contract-panel h2{letter-spacing:-.3px;margin:0 0 15px;font-family:Fredoka,sans-serif;font-size:26px;font-weight:600;line-height:1.1}:where(body:has(.handwerker)) .customer-quote{align-items:center;gap:9px;margin-bottom:18px;display:flex}:where(body:has(.handwerker)) .customer-avatar{color:#789473;background:#e1e9d7;border-radius:11px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}:where(body:has(.handwerker)) .customer-quote strong{color:#6b7c64;font-size:10px}:where(body:has(.handwerker)) .customer-quote p{color:#88917d;margin:3px 0 0;font-size:10px;font-style:italic;line-height:1.5}:where(body:has(.handwerker)) .timer-bar{color:#6b7e59;background:#edf1df;border-radius:8px;align-items:center;gap:8px;margin-bottom:20px;padding:11px;font-size:11px;display:flex}:where(body:has(.handwerker)) .timer-bar strong{font-variant-numeric:tabular-nums;margin-left:auto;font-family:Fredoka,sans-serif;font-size:23px;line-height:1}:where(body:has(.handwerker)) .timer-bar.urgent{color:#ad6337;background:#fae1c1}:where(body:has(.handwerker)) .progress-label{color:#839076;justify-content:space-between;margin-bottom:8px;font-size:9px;display:flex}:where(body:has(.handwerker)) .progress-label b{color:#607759}:where(body:has(.handwerker)) .job-progress{margin-bottom:13px;background:#e1e7d6!important;height:5px!important}:where(body:has(.handwerker)) .job-progress [data-slot=progress-indicator]{background:#87a574!important}:where(body:has(.handwerker)) .job-checklist{grid-template-columns:1fr;gap:1px;display:grid}:where(body:has(.handwerker)) .job-item{color:#647459;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:7px 0;font-size:12px;display:flex}:where(body:has(.handwerker)) .job-item:hover{background:#e9eddf}:where(body:has(.handwerker)) .job-item b{color:#9aa38d;margin-left:auto;font-size:10px;font-weight:500}:where(body:has(.handwerker)) .check-box{color:#fff;border:1px solid #cbd5bc;border-radius:4px;place-items:center;width:14px;height:14px;display:grid}:where(body:has(.handwerker)) .job-item.done .check-box{background:#82a06f;border-color:#82a06f}:where(body:has(.handwerker)) .job-item.done>span:nth-child(2){color:#a1aa94;text-decoration:line-through}:where(body:has(.handwerker)) .contract-tip{color:#96a08a;border-top:1px dashed #d8dfcb;margin:12px 0 15px;padding-top:9px;font-size:9px;line-height:1.6}:where(body:has(.handwerker)) .contract-footer{letter-spacing:.5px;color:#9da68e;border-top:1px solid #e2e6d6;justify-content:space-between;padding:12px 0;font-size:7px;display:flex}:where(body:has(.handwerker)) .sandbox-copy{color:#859177;font-size:12px;line-height:1.7}:where(body:has(.handwerker)) .sandbox-stats{border-top:1px dashed #d7dfc9;border-bottom:1px dashed #d7dfc9;justify-content:space-between;margin:20px 0;padding:19px 0;display:flex}:where(body:has(.handwerker)) .sandbox-stats span{color:#8a977d;flex-direction:column;gap:5px;font-size:8px;display:flex}:where(body:has(.handwerker)) .sandbox-stats b{color:#56704d;font-family:Fredoka,sans-serif;font-size:23px}:where(body:has(.handwerker)) .sandbox-tips{color:#839577;flex-direction:column;gap:10px;margin-bottom:20px;font-size:10px;display:flex}:where(body:has(.handwerker)) .sandbox-tips p{align-items:center;gap:8px;margin:0;display:flex}:where(body:has(.handwerker)) .sandbox-tips+.secondary-button{margin-bottom:18px;padding:12px;font-size:10px}:where(body:has(.handwerker)) .room-panel{position:absolute;top:100px;right:27px}:where(body:has(.handwerker)) .room-code-button{color:#526c4f;text-align:left;background:#f7faefd9;border:1px solid #fffa;border-radius:12px;align-items:center;gap:14px;padding:13px 15px;display:flex;box-shadow:0 5px 18px #51694c15}:where(body:has(.handwerker)) .room-code-button>div{flex-direction:column;gap:5px;display:flex}:where(body:has(.handwerker)) .room-code-button span:first-child{letter-spacing:1px;color:#8b9b7e;font-size:8px;font-weight:700}:where(body:has(.handwerker)) .room-code-button strong{letter-spacing:3px;font-family:Fredoka,sans-serif;font-size:21px}:where(body:has(.handwerker)) .room-count{background:#e6eddc;border-radius:5px;padding:5px 6px;font-size:10px}:where(body:has(.handwerker)) .network-status{color:#718a67;justify-content:center;align-items:center;gap:6px;margin-top:9px;font-size:8px;display:flex}:where(body:has(.handwerker)) .network-status .green-dot{width:5px;height:5px}:where(body:has(.handwerker)) .network-status.offline{color:#a5692a;background:#f9e1b8;border-radius:6px;padding:7px}:where(body:has(.handwerker)) .play-side-tools{flex-direction:column;gap:8px;display:flex;position:absolute;top:225px;right:29px}:where(body:has(.handwerker)) .play-side-tools .icon-button{background:#edf5e3bd}:where(body:has(.handwerker)) .play-bottom{flex-direction:column;align-items:center;gap:11px;max-width:calc(100% - 40px);display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}:where(body:has(.handwerker)) .build-tray{background:#f8faeff5;border:1px solid #ffffffb0;border-radius:15px;width:540px;max-width:100%;padding:11px 14px 0;box-shadow:0 8px 30px #53684b26}:where(body:has(.handwerker)) .build-tray-top{border-bottom:1px solid #e0e6d8;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}:where(body:has(.handwerker)) .build-tray-top>span{letter-spacing:1px;color:#6b815f;align-items:center;gap:7px;font-size:9px;font-weight:700;display:flex}:where(body:has(.handwerker)) .build-tray-top small{letter-spacing:0;color:#98a18d;font-size:8px;font-weight:400}:where(body:has(.handwerker)) .build-tray-top>button{color:#8b9980;background:0 0;border:0;padding:2px}:where(body:has(.handwerker)) .category-list{background:#eaf0e1!important;gap:2px!important;height:28px!important;padding:2px!important}:where(body:has(.handwerker)) .category-list button{gap:4px!important;padding:4px 9px!important;font-size:10px!important}:where(body:has(.handwerker)) .category-list button[data-active]{background:#fffff7!important}:where(body:has(.handwerker)) .category-list button>svg{width:12px}:where(body:has(.handwerker)) .piece-cards{gap:7px;padding:12px 0;display:flex}:where(body:has(.handwerker)) .piece-card{color:#718064;background:#edf2e5;border:1px solid #e0e6d3;border-radius:9px;flex-direction:column;flex:1;align-items:center;min-width:0;padding:3px 4px 8px;display:flex;position:relative}:where(body:has(.handwerker)) .piece-card img{object-fit:contain;pointer-events:none;width:70px;max-width:100%;height:66px}:where(body:has(.handwerker)) .piece-card span{white-space:nowrap;letter-spacing:-.1px;font-size:9px;font-weight:500}:where(body:has(.handwerker)) .piece-card kbd{opacity:.5;background:0 0;border:0;padding:0;font-size:8px;position:absolute;top:4px;left:5px}:where(body:has(.handwerker)) .piece-card.active{color:#786134;background:#fff2c4;border:1.5px solid #e7b745;box-shadow:0 2px #dcb04b33}:where(body:has(.handwerker)) .piece-card:hover{transform:translateY(-2px)}:where(body:has(.handwerker)) .build-hint{color:#8f9b81;border-top:1px solid #e0e6d8;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:9px;display:flex}:where(body:has(.handwerker)) .build-hint button{white-space:nowrap;color:#7c8b6f;background:0 0;border:0;align-items:center;gap:5px;font-size:9px;display:flex}:where(body:has(.handwerker)) .build-hint kbd{padding:1px 4px;font-size:8px}:where(body:has(.handwerker)) .tool-dock{background:#30443ff5;border:1px solid #465e4e;border-radius:12px;align-items:center;gap:4px;padding:6px;display:flex;box-shadow:0 5px 18px #2c3f3540}:where(body:has(.handwerker)) .tool-dock>button{color:#c2d0b7;white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:10px;font-size:10px;display:flex}:where(body:has(.handwerker)) .tool-dock>button.active{color:#394830;background:#f5c64e}:where(body:has(.handwerker)) .tool-dock kbd{color:#b9c7ab;background:#42554a;border-color:#53634e;border-bottom-width:2px;padding:2px 4px;font-size:8px}:where(body:has(.handwerker)) .tool-dock .active kbd{color:#715d2b;background:#dfb044;border-color:#b6953b}:where(body:has(.handwerker)) .tool-dock .danger-tool.active{background:#ebac79}:where(body:has(.handwerker)) .dock-separator{background:#61755a66;width:1px;height:23px;margin:0 2px}:where(body:has(.handwerker)) .context-hint{color:#54714f;white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:21px;font-size:9px;display:flex}:where(body:has(.handwerker)) .context-hint kbd{padding:2px 5px;font-size:8px}:where(body:has(.handwerker)) .context-hint .green-dot{width:5px;height:5px}:where(body:has(.handwerker)) .game-toast{z-index:30;background:#fff8dbf5;border:1px solid #fffdf3;border-bottom:3px solid #d8bb75;border-radius:10px;align-items:center;gap:10px;max-width:510px;padding:13px 19px;font-size:12px;font-weight:500;animation:.22s ease-out toastin;display:flex;position:absolute;top:95px;left:50%;transform:translate(-50%);box-shadow:0 7px 23px #455c3c20}:where(body:has(.handwerker)) .game-toast svg{color:#bf9839}:where(body:has(.handwerker)) .wind-warning{color:#866b32;background:#f8d477;border-radius:7px;align-items:center;gap:12px;padding:12px 21px;display:flex;position:absolute;top:170px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 5px #936f3020}:where(body:has(.handwerker)) .wind-warning strong{font-family:Fredoka,sans-serif;font-size:20px;display:block}:where(body:has(.handwerker)) .wind-warning span{font-size:10px}:where(body:has(.handwerker)) .invite-code{text-align:center;letter-spacing:8px;background:#edf1e2;border:2px dashed #cdd9bb;border-radius:10px;padding:18px;font-family:Fredoka,sans-serif;font-size:48px}:where(body:has(.handwerker)) .invite-url{color:#7b8d6f;background:#eff3e8;border:1px solid #d8e2cc;border-radius:6px;width:100%;padding:9px 10px;font-size:10px}:where(body:has(.handwerker)) .result-stars{letter-spacing:8px;color:#e4b338;text-align:center;text-shadow:0 3px #bd952735;font-size:45px}:where(body:has(.handwerker)) .result-dialog{text-align:center}:where(body:has(.handwerker)) .result-stats{background:#ecf2e2;border-radius:12px;justify-content:space-around;padding:21px 0;display:flex}:where(body:has(.handwerker)) .result-stats span{color:#8a9b79;flex-direction:column;gap:6px;font-size:11px;display:flex}:where(body:has(.handwerker)) .result-stats b{color:#65805a;font-family:Fredoka,sans-serif;font-size:30px}:where(body:has(.handwerker)) .result-reopen{background:#ffce51;border:1px solid #ddae3a;border-radius:9px;align-items:center;gap:9px;padding:12px 18px;font-size:12px;font-weight:700;display:flex;position:absolute;top:180px;left:50%;transform:translate(-50%)}:where(body:has(.handwerker)) .touch-controls{display:none}:where(body:has(.handwerker)) .touch-pad{touch-action:none}@keyframes toastin{0%{opacity:0;translate:0 -8px}to{opacity:1;translate:0}}@media (max-width:1150px){:where(body:has(.handwerker)) .contract-panel{width:215px;padding:17px 15px 0;left:19px}:where(body:has(.handwerker)) .contract-panel h2{font-size:23px}:where(body:has(.handwerker)) .crew-member b{max-width:67px;font-size:10px}:where(body:has(.handwerker)) .is-playing .wordmark{font-size:16px}:where(body:has(.handwerker)) .is-playing .topbar{padding:17px 20px}:where(body:has(.handwerker)) .is-playing .alpha-label{display:none}:where(body:has(.handwerker)) .room-panel{right:20px}:where(body:has(.handwerker)) .build-tray{width:490px}:where(body:has(.handwerker)) .game-toast{max-width:400px;font-size:11px}:where(body:has(.handwerker)) .build-hint>span{font-size:8px}}@media (max-height:800px) and (min-width:701px){:where(body:has(.handwerker)) .contract-panel{padding-top:15px;top:87px}:where(body:has(.handwerker)) .contract-heading,:where(body:has(.handwerker)) .contract-panel h2{margin-bottom:10px}:where(body:has(.handwerker)) .customer-quote{margin-bottom:12px}:where(body:has(.handwerker)) .timer-bar{margin-bottom:13px;padding:9px}:where(body:has(.handwerker)) .job-item{padding:5px 0}:where(body:has(.handwerker)) .contract-tip{margin:8px 0 10px;font-size:8px}:where(body:has(.handwerker)) .contract-footer{padding:9px 0}:where(body:has(.handwerker)) .play-bottom{gap:7px;bottom:13px}:where(body:has(.handwerker)) .piece-card img{height:53px}:where(body:has(.handwerker)) .piece-cards{padding:9px 0}:where(body:has(.handwerker)) .room-panel{top:89px}:where(body:has(.handwerker)) .build-hint{padding:7px 0}}@media (max-width:850px){:where(body:has(.handwerker)) .crew-member b{display:none}:where(body:has(.handwerker)) .contract-panel{width:190px}:where(body:has(.handwerker)) .room-code-button{gap:9px;padding:10px}:where(body:has(.handwerker)) .room-code-button strong{font-size:18px}:where(body:has(.handwerker)) .room-code-button>svg{display:none}:where(body:has(.handwerker)) .room-panel{right:17px}:where(body:has(.handwerker)) .contract-tip{font-size:8px}:where(body:has(.handwerker)) .game-toast{width:max-content;max-width:calc(100% - 36px);top:82px}:where(body:has(.handwerker)) .play-bottom{max-width:calc(100% - 30px)}:where(body:has(.handwerker)) .tool-dock>button{gap:5px;padding:9px 8px}:where(body:has(.handwerker)) .tool-dock kbd{display:none}:where(body:has(.handwerker)) .build-tray{width:440px}:where(body:has(.handwerker)) .piece-card img{height:54px}}@media (max-width:700px){:where(body:has(.handwerker)) .is-playing.game-shell{height:100svh;min-height:560px;overflow:hidden}:where(body:has(.handwerker)) .is-playing .topbar{padding:12px 14px}:where(body:has(.handwerker)) .is-playing .wordmark{font-size:14px}:where(body:has(.handwerker)) .is-playing .logo-icon{width:29px;height:29px}:where(body:has(.handwerker)) .is-playing .wordmark .amp{font-size:10px}:where(body:has(.handwerker)) .is-playing .wordmark .logo-dot{display:none}:where(body:has(.handwerker)) .crew-bar{gap:4px;padding:4px 5px}:where(body:has(.handwerker)) .crew-member>span{border-radius:6px;width:23px;height:23px}:where(body:has(.handwerker)) .crew-member>span svg{width:14px}:where(body:has(.handwerker)) .empty-player{width:21px;height:23px}:where(body:has(.handwerker)) .is-playing .topbar-actions{gap:0}:where(body:has(.handwerker)) .is-playing .topbar-actions .icon-button{width:29px;height:29px}:where(body:has(.handwerker)) .is-playing .topbar-actions .icon-button:last-child{display:grid}:where(body:has(.handwerker)) .is-playing .topbar-actions .icon-button:first-of-type{display:none}:where(body:has(.handwerker)) .contract-panel{border-top-width:3px;width:180px;padding:13px 13px 0;top:65px;left:13px}:where(body:has(.handwerker)) .contract-panel:before{width:40px;height:12px;top:-9px;left:65px}:where(body:has(.handwerker)) .contract-heading{margin-bottom:8px;font-size:7px}:where(body:has(.handwerker)) .contract-panel h2{margin-bottom:9px;font-size:21px}:where(body:has(.handwerker)) .customer-quote{display:none}:where(body:has(.handwerker)) .timer-bar{margin-bottom:10px;padding:7px 8px;font-size:9px}:where(body:has(.handwerker)) .timer-bar strong{font-size:20px}:where(body:has(.handwerker)) .timer-bar svg{width:15px}:where(body:has(.handwerker)) .progress-label{margin-bottom:6px;font-size:8px}:where(body:has(.handwerker)) .job-progress{margin-bottom:8px}:where(body:has(.handwerker)) .job-checklist{grid-template-columns:1fr 1fr;gap:1px 8px}:where(body:has(.handwerker)) .job-item{gap:4px;padding:4px 0;font-size:9px}:where(body:has(.handwerker)) .job-item b{font-size:8px}:where(body:has(.handwerker)) .check-box{border-radius:3px;width:10px;height:10px}:where(body:has(.handwerker)) .check-box svg{width:9px}:where(body:has(.handwerker)) .contract-tip{margin:8px 0 10px;padding-top:8px;font-size:8px;line-height:1.4}:where(body:has(.handwerker)) .contract-footer{display:none}:where(body:has(.handwerker)) .room-panel{top:64px;right:13px}:where(body:has(.handwerker)) .room-code-button{gap:7px;padding:9px}:where(body:has(.handwerker)) .room-code-button span:first-child{font-size:6px}:where(body:has(.handwerker)) .room-code-button strong{letter-spacing:2px;font-size:15px}:where(body:has(.handwerker)) .room-count{padding:4px;font-size:8px}:where(body:has(.handwerker)) .network-status{max-width:120px;margin-top:6px;font-size:6px}:where(body:has(.handwerker)) .play-side-tools{gap:6px;top:143px;right:13px}:where(body:has(.handwerker)) .play-side-tools .icon-button{width:31px;height:31px}:where(body:has(.handwerker)) .play-side-tools .icon-button:last-child{display:none}:where(body:has(.handwerker)) .play-side-tools svg{width:16px}:where(body:has(.handwerker)) .play-bottom{gap:7px;width:100%;max-width:calc(100% - 20px);bottom:10px}:where(body:has(.handwerker)) .build-tray{border-radius:11px;width:100%;padding:9px 10px 0}:where(body:has(.handwerker)) .build-tray-top{gap:8px;padding-bottom:7px}:where(body:has(.handwerker)) .build-tray-top>span{letter-spacing:.6px;gap:5px;font-size:8px}:where(body:has(.handwerker)) .build-tray-top>span>small{display:none}:where(body:has(.handwerker)) .category-list{height:26px!important}:where(body:has(.handwerker)) .category-list button{gap:3px!important;padding:3px 7px!important;font-size:9px!important}:where(body:has(.handwerker)) .category-list button svg{width:11px}:where(body:has(.handwerker)) .piece-cards{gap:5px;padding:9px 0}:where(body:has(.handwerker)) .piece-card{border-radius:7px;padding:2px 3px 7px}:where(body:has(.handwerker)) .piece-card img{width:55px;height:47px}:where(body:has(.handwerker)) .piece-card span{font-size:8px}:where(body:has(.handwerker)) .piece-card kbd{display:none}:where(body:has(.handwerker)) .build-hint{padding:7px 0;font-size:8px}:where(body:has(.handwerker)) .build-hint>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:where(body:has(.handwerker)) .build-hint button{font-size:8px}:where(body:has(.handwerker)) .build-hint kbd{display:none}:where(body:has(.handwerker)) .tool-dock{border-radius:10px;justify-content:space-around;gap:2px;width:100%;padding:4px}:where(body:has(.handwerker)) .tool-dock>button{gap:5px;padding:9px 6px;font-size:9px}:where(body:has(.handwerker)) .tool-dock>button svg{width:16px;height:16px}:where(body:has(.handwerker)) .tool-dock>button:last-child{padding:9px 7px}:where(body:has(.handwerker)) .dock-separator{height:20px;margin:0}:where(body:has(.handwerker)) .context-hint{gap:4px;max-width:100%;height:16px;font-size:8px;overflow:hidden}:where(body:has(.handwerker)) .context-hint kbd{padding:1px 3px;font-size:7px}:where(body:has(.handwerker)) .game-toast{max-width:calc(100% - 45px);padding:10px 14px;font-size:10px;top:118px}:where(body:has(.handwerker)) .touch-controls{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:275px;left:20px;right:20px}:where(body:has(.handwerker)) .touch-pad{pointer-events:auto;background:#f7f9e546;border:2px solid #fbffe673;border-radius:50%;place-items:center;width:90px;height:90px;display:grid}:where(body:has(.handwerker)) .touch-pad span{color:#78916d;background:#f4f8e8b3;border-radius:50%;place-items:center;width:45px;height:45px;font-size:30px;display:grid}:where(body:has(.handwerker)) .touch-controls>button{pointer-events:auto;color:#6e855c;background:#f4f8e8a3;border:1px solid #e0eacaad;border-radius:50%;width:48px;height:48px;font-size:28px}:where(body:has(.handwerker)) .wind-warning{z-index:3;padding:8px 13px;font-size:10px;top:325px}:where(body:has(.handwerker)) .wind-warning strong{font-size:15px}:where(body:has(.handwerker)) .wind-warning span{font-size:8px}:where(body:has(.handwerker)) .sandbox-stats{margin:13px 0;padding:12px 0}:where(body:has(.handwerker)) .sandbox-copy{font-size:10px}:where(body:has(.handwerker)) .sandbox-tips{display:none}:where(body:has(.handwerker)) .sandbox-tips+.secondary-button{margin-bottom:13px;padding:9px;font-size:9px}:where(body:has(.handwerker)) .game-dialog{max-width:calc(100% - 30px)!important;padding:25px!important}:where(body:has(.handwerker)) .dialog-heading{font-size:26px!important}}@media (max-height:780px) and (min-width:701px){:where(body:has(.handwerker)) .start-panel{top:99px}:where(body:has(.handwerker)) .game-shell h1{margin:16px 0;font-size:55px}:where(body:has(.handwerker)) .intro{margin-bottom:14px;font-size:14px}:where(body:has(.handwerker)) .player-pills{margin-bottom:17px}:where(body:has(.handwerker)) .setup-card{padding:17px}:where(body:has(.handwerker)) .color-row{margin:11px 0 13px}:where(body:has(.handwerker)) .mode-description{min-height:33px;padding:8px 0 10px}:where(body:has(.handwerker)) .primary-button.start-button{padding:11px 15px}:where(body:has(.handwerker)) .how-link{padding-top:12px}:where(body:has(.handwerker)) .start-footer{padding:16px 28px}:where(body:has(.handwerker)) .join-toggle{padding-top:12px}}:where(body:has(.handwerker)) .admin-game-link{min-height:36px;color:inherit;pointer-events:auto;background:#ffffffc7;border:1px solid #ffffff65;border-radius:9px;justify-content:center;align-items:center;padding:7px 11px;font:700 12px DM Sans,sans-serif;text-decoration:none;display:inline-flex}:where(body:has(.handwerker)) .admin-game-link:focus-visible{outline-offset:3px;outline:3px solid #df9e24}:where(body:has(.handwerker)) .crane-controls{color:#293c3b;pointer-events:auto;background:#fff6d9;border:2px solid #d6a43b;border-radius:18px;align-items:center;gap:12px;max-width:600px;margin:0 auto 10px;padding:14px 16px;display:flex;box-shadow:0 5px #29463d18}:where(body:has(.handwerker)) .crane-controls>output{flex:1;gap:4px;min-width:0;display:grid}:where(body:has(.handwerker)) .crane-controls strong{font-size:16px}:where(body:has(.handwerker)) .crane-controls span{font-size:14px;line-height:1.4}:where(body:has(.handwerker)) .crane-controls button{justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;display:inline-flex}:where(body:has(.handwerker)) .crane-actions{gap:6px;display:flex}:where(body:has(.handwerker)) .crane-tool-label{font-size:12px;font-weight:700}:where(body:has(.handwerker)) .play-side-tools button:has(.crane-tool-label){flex-direction:column;gap:2px;height:56px;display:flex}:where(body:has(.handwerker)) .tool-dock[inert]{display:none}@media (max-width:700px){:where(body:has(.handwerker)) .crane-controls{flex-wrap:wrap;gap:8px;padding:10px}:where(body:has(.handwerker)) .crane-controls>output{flex-basis:calc(100% - 60px)}:where(body:has(.handwerker)) .crane-actions{order:2;width:100%}:where(body:has(.handwerker)) .crane-actions .primary-button{flex:1}}:where(body:has(.handwerker)) .compact-ui .play-side-tools .icon-button:nth-child(2){display:grid}:where(body:has(.handwerker)) .map-picker{border:0;min-width:0;margin:.6rem 0 .85rem;padding:0}:where(body:has(.handwerker)) .map-picker legend{letter-spacing:.07em;margin-bottom:.5rem;font-size:.75rem;font-weight:800}:where(body:has(.handwerker)) .map-picker>div{gap:.5rem;display:flex}:where(body:has(.handwerker)) .map-picker button{text-align:left;color:#293c3b;background:#f8f8ec;border:1px solid #cbd1c3;border-radius:.65rem;flex:1;min-width:0;padding:.65rem}:where(body:has(.handwerker)) .map-picker button[aria-pressed=true]{background:#fff0bb;border-color:#b38020;box-shadow:inset 0 0 0 1px #b38020}:where(body:has(.handwerker)) .map-picker strong{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}:where(body:has(.handwerker)) .map-picker span{margin-top:.2rem;font-size:.8rem;line-height:1.35;display:block}:where(body:has(.handwerker)) .eye-crosshair{color:#fff;text-shadow:0 1px 3px #152d29,1px 0 2px #152d29;pointer-events:none;z-index:3;font:400 24px Arial,sans-serif;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}:where(body:has(.handwerker)) .first-person-view .world-vignette{opacity:.2}:where(body:has(.handwerker)) .first-person-view .contract-panel:not(.expanded){opacity:.88}:where(body:has(.handwerker)) .play-side-tools button:disabled{opacity:.45;cursor:default}:where(body:has(.handwerker)) .play-side-tools button:has(.crane-tool-label){width:72px}:where(body:has(.handwerker)) .game-shell:not(.is-playing){flex-direction:column;height:auto;min-height:100svh;padding:100px 0 52px;display:flex;overflow:clip}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .world-canvas,:where(body:has(.handwerker)) .game-shell:not(.is-playing) .world-vignette{height:100svh;position:fixed}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .start-panel{width:400px;max-width:calc(100% - 40px);max-height:none;margin:auto 0 auto clamp(28px,4.5vw,82px);padding:0;position:relative;top:auto;left:auto;overflow:visible}:where(body:has(.handwerker)) .game-shell:not(.is-playing) h1{margin:12px 0 18px;font-size:46px;line-height:1.04}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .intro{max-width:360px;margin-bottom:12px;font-size:14px;line-height:1.45}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .player-pills{margin-bottom:16px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .setup-card{padding:18px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .name-field{padding:10px 12px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .color-row{margin:12px 0}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .mode-tabs{flex-direction:column;min-width:0;display:flex}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .mode-description{color:#63745f;flex:none;min-height:0;margin:0;padding:8px 0;font-size:12px!important}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .map-picker{margin:8px 0 12px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .map-picker button{min-height:44px;padding:10px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .map-description{color:#63745f;margin:6px 0 0;font-size:12px;line-height:1.4}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .start-button{min-height:46px;padding:11px 14px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .join-toggle{min-height:36px;padding:10px 0 0;font-size:12px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .start-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 16px;margin-top:8px;font-size:12px;display:flex}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .build-shelf{margin:0}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .build-shelf:has(>div){flex-basis:100%}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .build-shelf>button,:where(body:has(.handwerker)) .game-shell:not(.is-playing) .how-link{width:auto;min-height:40px;padding:8px 0;font-size:12px}@media (max-height:800px) and (min-width:1025px){:where(body:has(.handwerker)) .game-shell:not(.is-playing){padding-top:92px;padding-bottom:42px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .eyebrow{display:none}:where(body:has(.handwerker)) .game-shell:not(.is-playing) h1{margin:0 0 14px;font-size:38px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .player-pills{margin-bottom:12px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .setup-card{padding:14px 18px}}@media (max-width:1024px),(max-height:500px),(pointer:coarse){:where(body:has(.handwerker)) .game-shell:not(.is-playing){padding:80px 0 12px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .start-panel{margin:12px auto 20px}:where(body:has(.handwerker)) .game-shell:not(.is-playing) h1{font-size:clamp(32px,8.5vw,46px)}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .start-footer{margin-top:auto;padding:12px 20px;position:relative}:where(body:has(.handwerker)) .game-shell:not(.is-playing) .join-toggle{min-height:44px}}
