:where(body:not(:has(.handwerker))) .game-shell{isolation:isolate;width:100%;height:100dvh;min-height:720px;position:relative;overflow:hidden}:where(body:not(:has(.handwerker))) .world-canvas{z-index:-2;position:absolute;inset:0}:where(body:not(:has(.handwerker))) .world-canvas canvas{touch-action:none;width:100%;height:100%;display:block}:where(body:not(:has(.handwerker))) .game-shell:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#e4e8cefa 0%,#e1e5cfd9 23%,#dbe2cd3d 41%,#0000 57%);position:absolute;inset:0}:where(body:not(:has(.handwerker))) .wordmark-or{margin:0 1px;font-size:16px;font-weight:500}:where(body:not(:has(.handwerker))) .brand-icon{background:var(--ink);color:var(--cream);border-radius:12px;place-items:center;width:39px;height:39px;margin-right:7px;display:grid;transform:rotate(-5deg)}:where(body:not(:has(.handwerker))) .top-note{letter-spacing:1.9px;align-items:center;gap:10px;font-size:11px;font-weight:700;display:flex}:where(body:not(:has(.handwerker))) .start-panel{width:342px;position:absolute;top:123px;left:6%}:where(body:not(:has(.handwerker))) .title-middle{letter-spacing:0;align-items:center;gap:13px;margin:5px 0 4px 63px;font:500 27px/1.1 Fredoka,sans-serif;display:flex}:where(body:not(:has(.handwerker))) .title-middle i{background:#90a28b;width:40px;height:2px;transform:rotate(-7deg)}:where(body:not(:has(.handwerker))) .title-middle i:last-child{transform:rotate(7deg)}:where(body:not(:has(.handwerker))) .sink-title{color:#d38735}:where(body:not(:has(.handwerker))) .color-row{color:#687961;justify-content:space-between;align-items:center;margin:15px 0 19px;font-size:12px;display:flex}:where(body:not(:has(.handwerker))) .color-row>div{gap:7px;display:flex}:where(body:not(:has(.handwerker))) .color-choice{color:#fff4d3;border:2px solid #0000;border-radius:50%;place-items:center;width:31px;height:31px;padding:0;display:grid}:where(body:not(:has(.handwerker))) .color-choice.selected{outline-offset:2px;outline:2px solid #52644e}@media (min-width:1600px){:where(body:not(:has(.handwerker))) .start-panel{width:365px;top:16%;left:8%}}@media (max-height:850px) and (min-width:801px){:where(body:not(:has(.handwerker))) .game-shell{min-height:660px}:where(body:not(:has(.handwerker))) .start-panel{width:320px;top:99px}:where(body:not(:has(.handwerker))) .title-middle{font-size:23px}}@media (max-width:800px){:where(body:not(:has(.handwerker))) .top-note{display:none}:where(body:not(:has(.handwerker))) .brand-icon{width:34px;height:34px}:where(body:not(:has(.handwerker))) .start-panel{width:300px;top:102px;left:25px}:where(body:not(:has(.handwerker))) .game-shell:before{background:linear-gradient(90deg,#e4e8ceed 0%,#e1e5cfa1 35%,#0000 83%)}}@media (max-width:480px){:where(body:not(:has(.handwerker))) .game-shell{min-height:760px}:where(body:not(:has(.handwerker))) .start-panel{width:min(300px,100% - 44px);top:95px;left:22px}:where(body:not(:has(.handwerker))) .game-shell:before{background:linear-gradient(90deg,#e4e8cef2 0%,#e1e5cf96 55%,#0000)}:where(body:not(:has(.handwerker))) .topbar .brand-icon{width:30px;height:30px}}:where(body:not(:has(.handwerker))) .is-playing{min-height:600px}:where(body:not(:has(.handwerker))) .is-playing:before{background:linear-gradient(#cfddcba6,#0000 140px)}:where(body:not(:has(.handwerker))) .is-playing .topbar{pointer-events:none;height:82px;padding:0 26px}:where(body:not(:has(.handwerker))) .is-playing .topbar>*{pointer-events:auto}:where(body:not(:has(.handwerker))) .is-playing .wordmark{font-size:21px}:where(body:not(:has(.handwerker))) .crew-bar{align-items:center;gap:10px;display:flex}:where(body:not(:has(.handwerker))) .crew-member{background:#f7f3d8b8;border:1px solid #ffffff80;border-radius:30px;align-items:center;gap:7px;padding:5px 10px 5px 5px;font-size:12px;display:flex;position:relative}:where(body:not(:has(.handwerker))) .crew-member>span{color:#fff6d8;border-radius:50%;place-items:center;width:27px;height:27px;display:grid}:where(body:not(:has(.handwerker))) .crew-member small{letter-spacing:1px;color:#58715b;font-size:7px;position:absolute;top:34px;left:42px}:where(body:not(:has(.handwerker))) .crew-member.down{opacity:.55}:where(body:not(:has(.handwerker))) .crew-empty{color:#5d7c67;background:#f5f3d054;border:1px dashed #5b806c6e;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}:where(body:not(:has(.handwerker))) .mission-panel{background:#fff6ddf0;border-top:5px solid #d4a24d;border-radius:4px 4px 13px 13px;width:224px;padding:23px 20px 0;position:absolute;top:112px;left:27px;box-shadow:0 8px 25px #315d4012}:where(body:not(:has(.handwerker))) .clipboard-clip{background:#b7ba9c;border:3px solid #9ca889;border-radius:5px;width:58px;height:19px;position:absolute;top:-14px;left:83px}:where(body:not(:has(.handwerker))) .mission-eyebrow{letter-spacing:1.1px;color:#798361;align-items:center;gap:7px;font-size:10px;font-weight:700;display:flex}:where(body:not(:has(.handwerker))) .mission-panel h2{letter-spacing:-.5px;margin:13px 0 10px;font:500 27px/1.13 Fredoka,sans-serif}:where(body:not(:has(.handwerker))) .mission-panel>p{color:#738064;margin:0 0 18px;font-size:12px;line-height:1.55}:where(body:not(:has(.handwerker))) .mission-progress{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}:where(body:not(:has(.handwerker))) .mission-progress>span{letter-spacing:.7px;font-size:9px;font-weight:700}:where(body:not(:has(.handwerker))) .mission-progress strong{font:500 25px Fredoka,sans-serif}:where(body:not(:has(.handwerker))) .mission-progress small{font-size:13px}:where(body:not(:has(.handwerker))) .height-progress [data-slot=progress-track]{background:#e0e2c8;height:7px}:where(body:not(:has(.handwerker))) .height-progress [data-slot=progress-indicator]{background:#719d77}:where(body:not(:has(.handwerker))) .height-row{justify-content:space-between;margin-top:9px;font-size:11px;display:flex}:where(body:not(:has(.handwerker))) .height-row span{color:#6f8268}:where(body:not(:has(.handwerker))) .mission-divider{background:#dce0c7;height:1px;margin:17px 0 12px}:where(body:not(:has(.handwerker))) .mission-stat{align-items:center;gap:7px;margin:11px 0;font-size:11px;display:flex}:where(body:not(:has(.handwerker))) .mission-stat svg{color:#829475}:where(body:not(:has(.handwerker))) .mission-stat b{margin-left:auto;font-weight:600}:where(body:not(:has(.handwerker))) .mission-foot{color:#778367;background:#f1ebd4;border-radius:0 0 13px 13px;align-items:center;gap:8px;margin:17px -20px 0;padding:13px 16px;font-size:10px;line-height:1.5;display:flex}:where(body:not(:has(.handwerker))) .room-panel{position:absolute;top:102px;right:26px}:where(body:not(:has(.handwerker))) .network-state{color:#496e5e;justify-content:center;align-items:center;gap:7px;margin-top:9px;font-size:10px;display:flex}:where(body:not(:has(.handwerker))) .network-state .live-dot{width:5px;height:5px}:where(body:not(:has(.handwerker))) .network-state.offline{color:#ad633b}:where(body:not(:has(.handwerker))) .network-state.offline .live-dot{background:#c37946}:where(body:not(:has(.handwerker))) .water-panel{flex-direction:column;align-items:center;gap:12px;width:125px;display:flex;position:absolute;top:245px;right:28px}:where(body:not(:has(.handwerker))) .water-panel>div:first-child{align-items:center;gap:8px;display:flex}:where(body:not(:has(.handwerker))) .water-panel>div:first-child>svg{color:#357b79}:where(body:not(:has(.handwerker))) .water-panel>div:first-child>span{letter-spacing:1px;font-size:8px;font-weight:700}:where(body:not(:has(.handwerker))) .water-panel strong{letter-spacing:0;font:500 29px Fredoka,sans-serif;display:block}:where(body:not(:has(.handwerker))) .water-panel small{font-size:13px}:where(body:not(:has(.handwerker))) .water-track{background:repeating-linear-gradient(0deg,#6c998747 0 1px,#0000 1px 20px),#ecf0d940;border:3px solid #f9f3dac7;border-radius:12px;width:19px;height:184px;position:relative;box-shadow:0 0 0 1px #799b821f}:where(body:not(:has(.handwerker))) .water-track>span{background:#5b9f9d;border-radius:0 0 8px 8px;transition:height .3s;position:absolute;bottom:0;left:0;right:0}:where(body:not(:has(.handwerker))) .water-track>i{color:#6a714d;background:#f7cc6b;border:2px solid #fff0c0;border-radius:50%;place-items:center;width:25px;height:25px;display:grid;position:absolute;left:18px;transform:translateY(50%)}:where(body:not(:has(.handwerker))) .water-caption{letter-spacing:1px;font-size:8px;font-weight:700}:where(body:not(:has(.handwerker))) .round-time{color:#537d6a;align-items:center;gap:6px;font-size:12px;display:flex}:where(body:not(:has(.handwerker))) .camera-tools{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:178px;right:36px}:where(body:not(:has(.handwerker))) .camera-tools>span{font-size:10px}:where(body:not(:has(.handwerker))) .play-bottom{flex-direction:column;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 30px);display:flex;position:absolute;bottom:21px;left:50%;transform:translate(-50%)}:where(body:not(:has(.handwerker))) .interaction-hint{background:#fff7dfde;border:1px solid #fff8e8;border-radius:20px;align-items:center;gap:9px;max-width:100%;padding:8px 15px;font-size:11px;display:flex;box-shadow:0 3px 12px #4665490d}:where(body:not(:has(.handwerker))) .interaction-hint>span:last-child{color:#697e63}:where(body:not(:has(.handwerker))) .interaction-hint.invalid>span:last-child{color:#b3643d}:where(body:not(:has(.handwerker))) .hint-dot{background:#83a173;border-radius:50%;width:6px;height:6px}:where(body:not(:has(.handwerker))) .movement-hint{color:#476958;align-items:center;gap:17px;font-size:10px;display:flex}:where(body:not(:has(.handwerker))) .movement-hint>span{align-items:center;gap:4px;display:flex}:where(body:not(:has(.handwerker))) .movement-hint kbd{background:#edf2d575}:where(body:not(:has(.handwerker))) .lobby-banner{background:#fff6dfef;border:1px solid #fffbeb;border-radius:16px;align-items:center;gap:24px;width:640px;max-width:calc(100% - 550px);padding:21px 24px;display:flex;position:absolute;bottom:173px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #3a5d3912}:where(body:not(:has(.handwerker))) .lobby-banner h3{margin:8px 0;font:500 25px/1.2 Fredoka,sans-serif}:where(body:not(:has(.handwerker))) .lobby-banner p{color:#6e7e62;margin:0;font-size:12px;line-height:1.5}:where(body:not(:has(.handwerker))) .lobby-banner .eyebrow{font-size:9px}:where(body:not(:has(.handwerker))) .lobby-banner>div:last-child{min-width:162px}:where(body:not(:has(.handwerker))) .lobby-banner .secondary-button{margin:0 0 9px;font-size:12px}:where(body:not(:has(.handwerker))) .lobby-banner .primary-button{font-size:12px}:where(body:not(:has(.handwerker))) .crane-panel{background:#fff1c6;border:2px solid #daa744;border-radius:12px;align-items:center;gap:10px;width:100%;padding:12px 16px;display:flex}:where(body:not(:has(.handwerker))) .crane-panel>div{flex:1;min-width:0}:where(body:not(:has(.handwerker))) .crane-panel strong{font-size:14px;display:block}:where(body:not(:has(.handwerker))) .crane-panel span{color:#7b7955;margin-top:3px;font-size:11px;display:block}:where(body:not(:has(.handwerker))) .crane-panel button{background:#ffe4a0;border:1px solid #d8b969;border-radius:7px;justify-content:center;align-items:center;padding:8px;display:flex}:where(body:not(:has(.handwerker))) .crane-panel .crane-release{padding:10px 14px;font-size:12px;font-weight:700}:where(body:not(:has(.handwerker))) .rescue-banner,:where(body:not(:has(.handwerker))) .breath-warning{color:#985333;background:#fff0d8;border:2px solid #d69354;border-radius:12px;align-items:center;gap:12px;padding:15px 20px;display:flex;position:absolute;top:110px;left:50%;transform:translate(-50%)}:where(body:not(:has(.handwerker))) .rescue-banner span{margin-top:5px;font-size:12px;display:block}:where(body:not(:has(.handwerker))) .breath-warning{font-size:12px}:where(body:not(:has(.handwerker))) .breath-warning [data-slot=progress]{width:75px}:where(body:not(:has(.handwerker))) .breath-warning [data-slot=progress-indicator]{background:#ca7955}:where(body:not(:has(.handwerker))) .game-notice{z-index:12;background:#fff0d5;border:1px solid #d8bb7d;border-radius:10px;align-items:center;gap:16px;max-width:calc(100% - 35px);padding:12px 15px;font-size:13px;display:flex;position:absolute;bottom:178px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #425c3225}:where(body:not(:has(.handwerker))) .game-notice button{background:0 0;border:0;padding:3px}:where(body:not(:has(.handwerker))) .game-shell:not(.is-playing) .game-notice{bottom:72px}:where(body:not(:has(.handwerker))) .connecting-card{background:var(--cream);z-index:15;text-align:center;border:1px solid #fff;border-radius:18px;flex-direction:column;align-items:center;gap:14px;width:330px;max-width:90%;padding:27px;display:flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}:where(body:not(:has(.handwerker))) .connecting-card p{color:#6a7d64;margin:0;font-size:14px}:where(body:not(:has(.handwerker))) .help-dialog{max-width:min(555px,100% - 32px)!important}@media (max-width:1100px){:where(body:not(:has(.handwerker))) .is-playing .topbar{padding:0 20px}:where(body:not(:has(.handwerker))) .crew-member b{text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}:where(body:not(:has(.handwerker))) .crew-bar{gap:5px}:where(body:not(:has(.handwerker))) .crew-member small{display:none}:where(body:not(:has(.handwerker))) .mission-panel{width:195px;padding:20px 15px 0;left:20px}:where(body:not(:has(.handwerker))) .mission-panel h2{font-size:25px}:where(body:not(:has(.handwerker))) .mission-foot{margin-left:-15px;margin-right:-15px}:where(body:not(:has(.handwerker))) .clipboard-clip{left:65px}:where(body:not(:has(.handwerker))) .lobby-banner{flex-direction:column;gap:12px;max-width:calc(100% - 430px);padding:17px}:where(body:not(:has(.handwerker))) .lobby-banner>div:last-child{gap:8px;width:100%;display:flex}:where(body:not(:has(.handwerker))) .lobby-banner .secondary-button{margin:0}:where(body:not(:has(.handwerker))) .lobby-banner h3{font-size:22px}:where(body:not(:has(.handwerker))) .lobby-banner p{display:none}:where(body:not(:has(.handwerker))) .lobby-banner .primary-button,:where(body:not(:has(.handwerker))) .lobby-banner .secondary-button{white-space:nowrap;padding:10px}:where(body:not(:has(.handwerker))) .room-panel{right:20px}:where(body:not(:has(.handwerker))) .water-panel{width:108px;right:20px}}@media (max-width:800px){:where(body:not(:has(.handwerker))) .is-playing .topbar{height:66px;padding:0 14px}:where(body:not(:has(.handwerker))) .is-playing .wordmark{font-size:16px}:where(body:not(:has(.handwerker))) .is-playing .brand-icon{width:30px;height:30px;margin-right:2px}:where(body:not(:has(.handwerker))) .crew-bar{gap:5px;position:absolute;top:71px;left:14px}:where(body:not(:has(.handwerker))) .crew-member{padding:3px 7px 3px 3px;font-size:10px}:where(body:not(:has(.handwerker))) .crew-member>span{width:23px;height:23px}:where(body:not(:has(.handwerker))) .crew-empty{width:28px;height:28px}:where(body:not(:has(.handwerker))) .crew-member b{max-width:60px}:where(body:not(:has(.handwerker))) .mission-panel{border-top-width:3px;width:159px;padding:16px 12px 0;top:124px;left:14px}:where(body:not(:has(.handwerker))) .clipboard-clip{width:42px;height:14px;top:-10px;left:56px}:where(body:not(:has(.handwerker))) .mission-eyebrow{gap:4px;font-size:8px}:where(body:not(:has(.handwerker))) .mission-panel h2{margin:9px 0;font-size:21px}:where(body:not(:has(.handwerker))) .mission-panel>p{display:none}:where(body:not(:has(.handwerker))) .mission-progress{margin-top:14px}:where(body:not(:has(.handwerker))) .mission-progress>span{font-size:7px}:where(body:not(:has(.handwerker))) .mission-progress strong{font-size:21px}:where(body:not(:has(.handwerker))) .height-row{font-size:10px}:where(body:not(:has(.handwerker))) .mission-divider{margin:12px 0 10px}:where(body:not(:has(.handwerker))) .mission-stat{gap:4px;font-size:9px}:where(body:not(:has(.handwerker))) .mission-stat svg{width:13px}:where(body:not(:has(.handwerker))) .mission-foot{margin:12px -12px 0;padding:10px;font-size:9px}:where(body:not(:has(.handwerker))) .room-panel{top:116px;right:14px}:where(body:not(:has(.handwerker))) .network-state{max-width:136px;font-size:8px}:where(body:not(:has(.handwerker))) .water-panel{width:81px;top:227px;right:16px}:where(body:not(:has(.handwerker))) .water-track{width:17px;height:126px}:where(body:not(:has(.handwerker))) .water-panel>div:first-child>svg{width:17px}:where(body:not(:has(.handwerker))) .water-panel>div:first-child>span{font-size:7px}:where(body:not(:has(.handwerker))) .water-panel strong{font-size:23px}:where(body:not(:has(.handwerker))) .water-caption{font-size:7px}:where(body:not(:has(.handwerker))) .round-time{font-size:10px}:where(body:not(:has(.handwerker))) .camera-tools{bottom:214px;right:23px}:where(body:not(:has(.handwerker))) .camera-tools>span{display:none}:where(body:not(:has(.handwerker))) .lobby-banner{gap:10px;width:400px;max-width:calc(100% - 32px);padding:13px 16px;bottom:147px}:where(body:not(:has(.handwerker))) .lobby-banner h3{margin:5px 0 0;font-size:20px}:where(body:not(:has(.handwerker))) .lobby-banner>div:first-child{text-align:center;width:100%}:where(body:not(:has(.handwerker))) .lobby-banner .eyebrow{font-size:8px;display:block}:where(body:not(:has(.handwerker))) .lobby-banner>div:last-child{width:100%}:where(body:not(:has(.handwerker))) .play-bottom{gap:8px;bottom:15px}:where(body:not(:has(.handwerker))) .movement-hint{gap:9px;font-size:9px}:where(body:not(:has(.handwerker))) .movement-hint>span:last-child{display:none}:where(body:not(:has(.handwerker))) .interaction-hint{gap:7px;max-width:95%;padding:8px 11px;font-size:10px}:where(body:not(:has(.handwerker))) .interaction-hint>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:where(body:not(:has(.handwerker))) .interaction-hint strong{white-space:nowrap}:where(body:not(:has(.handwerker))) .game-notice{font-size:12px;bottom:152px}:where(body:not(:has(.handwerker))) .rescue-banner,:where(body:not(:has(.handwerker))) .breath-warning{width:max-content;max-width:calc(100% - 35px);padding:12px;top:370px}:where(body:not(:has(.handwerker))) .rescue-banner strong{font-size:14px}:where(body:not(:has(.handwerker))) .rescue-banner span{font-size:11px}:where(body:not(:has(.handwerker))) .crane-panel{gap:7px;padding:9px}:where(body:not(:has(.handwerker))) .crane-panel>svg{width:24px}:where(body:not(:has(.handwerker))) .crane-panel strong{font-size:12px}:where(body:not(:has(.handwerker))) .crane-panel span{font-size:9px}:where(body:not(:has(.handwerker))) .crane-panel .crane-release{padding:9px;font-size:11px}}@media (pointer:coarse){:where(body:not(:has(.handwerker))) .is-playing{min-height:600px}:where(body:not(:has(.handwerker))) .movement-hint{display:none}:where(body:not(:has(.handwerker))) .lobby-banner{bottom:273px}:where(body:not(:has(.handwerker))) .camera-tools{bottom:248px}:where(body:not(:has(.handwerker))) .game-notice{bottom:128px}:where(body:not(:has(.handwerker))) .play-bottom{bottom:17px}}@media (max-width:480px){:where(body:not(:has(.handwerker))) .crew-member b{max-width:45px}:where(body:not(:has(.handwerker))) .crew-member{gap:4px;font-size:9px}:where(body:not(:has(.handwerker))) .crew-empty{width:25px;height:25px}:where(body:not(:has(.handwerker))) .is-playing .topbar .icon-button{width:31px;height:31px}:where(body:not(:has(.handwerker))) .is-playing .top-actions{gap:5px}:where(body:not(:has(.handwerker))) .is-playing .wordmark{font-size:16px}:where(body:not(:has(.handwerker))) .is-playing .wordmark-or{font-size:12px}:where(body:not(:has(.handwerker))) .mission-panel{width:143px;top:122px}:where(body:not(:has(.handwerker))) .mission-panel h2{font-size:19px}:where(body:not(:has(.handwerker))) .mission-eyebrow{font-size:7px}:where(body:not(:has(.handwerker))) .mission-stat{font-size:8px}:where(body:not(:has(.handwerker))) .mission-progress>span{max-width:60px;font-size:7px}:where(body:not(:has(.handwerker))) .mission-foot{display:none}:where(body:not(:has(.handwerker))) .mission-panel{padding-bottom:5px}:where(body:not(:has(.handwerker))) .water-panel{top:211px}:where(body:not(:has(.handwerker))) .play-bottom{width:calc(100% - 30px)}:where(body:not(:has(.handwerker))) .interaction-hint{font-size:9px}:where(body:not(:has(.handwerker))) .crane-panel>svg{display:none}:where(body:not(:has(.handwerker))) .crane-panel span{max-width:150px}:where(body:not(:has(.handwerker))) .water-track{height:115px}:where(body:not(:has(.handwerker))) .lobby-banner h3{font-size:19px}}@media (max-height:620px) and (min-width:700px){:where(body:not(:has(.handwerker))) .is-playing{min-height:440px}:where(body:not(:has(.handwerker))) .mission-panel{width:185px;top:85px}:where(body:not(:has(.handwerker))) .mission-panel h2{font-size:21px}:where(body:not(:has(.handwerker))) .mission-panel>p,:where(body:not(:has(.handwerker))) .mission-foot{display:none}:where(body:not(:has(.handwerker))) .mission-panel{padding-bottom:8px}:where(body:not(:has(.handwerker))) .water-panel{top:178px}:where(body:not(:has(.handwerker))) .water-track{height:110px}:where(body:not(:has(.handwerker))) .room-panel{top:83px}:where(body:not(:has(.handwerker))) .lobby-banner{bottom:136px}:where(body:not(:has(.handwerker))) .play-bottom{bottom:10px}:where(body:not(:has(.handwerker))) .crew-bar{position:static}:where(body:not(:has(.handwerker))) .camera-tools{bottom:120px}}@media (max-height:760px) and (min-width:801px){:where(body:not(:has(.handwerker))) .start-panel{top:84px}:where(body:not(:has(.handwerker))) .start-panel h1{margin:15px 0;font-size:70px}:where(body:not(:has(.handwerker))) .start-panel .intro{margin-bottom:12px;font-size:16px;line-height:1.45}:where(body:not(:has(.handwerker))) .start-panel .setup-card{padding:14px}:where(body:not(:has(.handwerker))) .start-panel .start-tip{display:none}}.game-shell.is-playing{overscroll-behavior:none;height:100dvh;min-height:0}.game-shell button,.game-shell a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:is(.game-shell button:focus-visible,.game-shell a:focus-visible){outline-offset:3px;outline:3px solid #386e62}.touch-only,.touch-goal,.touch-guide{display:none}.game-dialog{top:calc(var(--sos-dialog-top,0px) + var(--sos-dialog-height,100dvh) / 2);max-height:calc(var(--sos-dialog-height,100dvh) - 24px);overscroll-behavior:contain}.game-dialog [data-slot=dialog-close]{width:44px;height:44px}.game-dialog input{scroll-margin:20px}.game-dialog [data-slot=dialog-title]:focus{outline:none}.invite-crew{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.invite-crew li{align-items:center;gap:10px;font-size:13px;display:flex}.invite-crew li>span{color:#fff6df;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.invite-crew strong{overflow-wrap:anywhere;min-width:0}.invite-crew small{color:#6f8268;margin-left:auto}@media (max-width:900px),(pointer:coarse){.game-shell{--edge-left:max(12px, env(safe-area-inset-left));--edge-right:max(12px, env(safe-area-inset-right));--edge-bottom:max(12px, env(safe-area-inset-bottom));--edge-top:env(safe-area-inset-top,0px)}.game-shell:not(.is-playing){height:auto;min-height:100svh;overflow:clip}.game-shell .topbar,.game-shell.is-playing .topbar{height:calc(60px + var(--edge-top));padding:var(--edge-top) var(--edge-right) 0 var(--edge-left);gap:8px}.game-shell .wordmark,.game-shell.is-playing .wordmark{gap:4px;min-height:44px;font-size:17px}.game-shell .wordmark-or{font-size:12px}.game-shell .topbar .brand-icon{width:30px;height:30px;margin-right:3px}.game-shell .top-actions,.game-shell.is-playing .top-actions{gap:4px}.game-shell .icon-button,.game-shell.is-playing .topbar .icon-button{flex-shrink:0;width:44px;height:44px}.game-shell .top-actions>a,.game-shell .leave-icon,.game-shell .top-note{display:none}.game-shell .start-panel{width:calc(100% - 32px);max-width:340px;margin:22px auto 24px;position:relative;top:auto;left:auto}.game-shell .start-panel h1{margin:22px 0 20px;font-size:clamp(66px,20vw,84px)}.game-shell .title-middle{font-size:23px}.game-shell .intro{margin-bottom:18px;font-size:16px;line-height:1.5}.game-shell .setup-card{padding:18px}.game-shell .setup-card input{min-height:48px;font-size:16px}.game-shell .color-row{flex-wrap:wrap;gap:10px;margin:12px 0 16px;font-size:11px}.game-shell .color-row>div{gap:8px}.game-shell .color-choice{width:44px;height:44px}.game-shell .primary-button,.game-shell .secondary-button,.game-dialog .primary-button,.game-dialog .secondary-button{min-height:48px}.game-shell .practice-link{min-height:44px;margin-top:8px;font-size:12px}.game-shell .start-tip{min-height:44px;margin-top:10px}.game-shell .start-footer{padding:16px var(--edge-right) max(16px, env(safe-area-inset-bottom)) var(--edge-left);font-size:8px;position:relative}.game-shell .start-footer>span:last-child,.game-shell .scene-caption{display:none}.game-shell:not(.is-playing) .game-notice{bottom:var(--edge-bottom);position:fixed}.game-shell .crew-bar{top:calc(64px + var(--edge-top));left:var(--edge-left);max-width:calc(100% - 152px - var(--edge-left) - var(--edge-right));gap:4px;height:44px;position:absolute}.game-shell .crew-member{background:0 0;border:0;padding:0}.game-shell .crew-member>span{border:2px solid #fff5d7;width:34px;height:34px;box-shadow:0 2px 4px #35594a18}.game-shell .crew-member b,.game-shell .crew-member small{display:none}.game-shell .crew-empty{border-radius:12px;flex-shrink:0;width:44px;height:44px}.game-shell .room-panel{top:calc(64px + var(--edge-top));right:var(--edge-right)}.game-shell .room-code{gap:8px;min-height:44px;padding:6px 10px}.game-shell .room-code>span{font-size:0}.game-shell .room-code strong{letter-spacing:2px;margin:0;font-size:18px}.game-shell .room-code svg{width:17px}.game-shell .network-state{display:none}.game-shell .network-state.offline{z-index:5;background:#fff4da;border-radius:6px;max-width:190px;padding:5px;font-size:10px;display:flex;position:absolute;right:0}.game-shell .mission-panel{top:calc(118px + var(--edge-top));left:var(--edge-left);width:calc(50% - 18px);box-shadow:none;background:#fff6dfe6;border:1px solid #fff8e1;border-radius:10px;padding:10px 12px}.game-shell .mission-panel>:not(.height-row){display:none}.game-shell .height-row{flex-direction:column;gap:3px;margin:0;font-size:10px;display:flex}.game-shell .height-row strong{white-space:nowrap;font:500 20px Fredoka,sans-serif}.game-shell .touch-goal{color:#6f8268;font:600 11px DM Sans,sans-serif;display:inline}.game-shell .water-panel{top:calc(118px + var(--edge-top));right:var(--edge-right);background:#eff5dde6;border:1px solid #fff8e1;border-radius:10px;align-items:flex-start;gap:3px;width:calc(50% - 18px);min-height:63px;padding:8px 10px}.game-shell .water-panel>div:first-child{gap:8px}.game-shell .water-panel>div:first-child>span{font-size:8px}.game-shell .water-panel>div:first-child>svg{width:20px}.game-shell .water-panel strong{margin-left:8px;font-size:19px;display:inline}.game-shell .water-track,.game-shell .round-time{display:none}.game-shell .water-caption{letter-spacing:.5px;margin-left:28px;font-size:8px}.game-shell .camera-tools{top:calc(192px + var(--edge-top));right:var(--edge-right);gap:6px;bottom:auto}.game-shell .camera-tools>span{display:none}.game-shell .touch-only{display:grid}.game-shell .play-bottom{bottom:var(--edge-bottom);width:calc(100% - var(--edge-left) - var(--edge-right));pointer-events:none;gap:7px;max-width:600px}.game-shell .play-bottom>*{pointer-events:auto}.game-shell .tool-dock{border-radius:15px;justify-content:space-between;gap:3px;width:100%;padding:5px}.game-shell .tool-dock>button,.game-shell .tool-dock>button:last-child{border-radius:10px;flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:0;min-height:54px;padding:6px 3px;font-size:11px;display:flex}.game-shell .tool-dock>button:first-child{color:#344632;background:#f3bf50}.game-shell .tool-dock>button:first-child:disabled{background:#e6d9b6}.game-shell .tool-dock>button>svg{width:20px;height:20px}.game-shell .tool-dock>i,.game-shell kbd,.game-shell .movement-hint{display:none}.game-shell .interaction-hint{border-radius:12px;gap:8px;width:100%;max-width:100%;min-height:36px;padding:8px 12px;font-size:11px;line-height:1.4}.game-shell .interaction-hint>span:last-child{white-space:normal;overflow:visible}.game-shell .interaction-hint strong{flex-shrink:0}.game-shell .touch-notice{background:#fff0d5;border-color:#d8bb7d;padding:3px 8px 3px 12px}.game-shell .touch-notice>span{flex:1}.game-shell .touch-notice button{background:0 0;border:0;place-items:center;min-width:44px;min-height:44px;display:grid}.game-shell .touch-guide{text-align:center;color:#395f50;text-shadow:0 1px #eff6df;pointer-events:none;font-size:9px;display:block}.game-shell .touch-controls{left:var(--edge-left);right:var(--edge-right);bottom:calc(146px + var(--edge-bottom));pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute}.game-shell .joystick{touch-action:none;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#eaf0d977;border:2px solid #fffbe1cc;border-radius:50%;place-items:center;width:100px;height:100px;display:grid;position:relative}.game-shell .joystick>span{color:#527e64;pointer-events:none;background:#fff1c8e6;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 3px 8px #2c63412b}.game-shell .joystick small{letter-spacing:1px;pointer-events:none;font-size:8px;font-weight:700;position:absolute;bottom:8px}.game-shell .touch-jump{pointer-events:auto;touch-action:none;color:#415f43;-webkit-user-select:none;user-select:none;background:#f5cd77e6;border:2px solid #fff3c9;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:72px;height:72px;display:flex;box-shadow:0 3px #a3864d66}.game-shell .touch-jump>span{font-size:10px;font-weight:700}.game-shell .joystick[aria-disabled=true]{opacity:.4}.game-shell .lobby-banner{bottom:calc(264px + var(--edge-bottom));gap:8px;width:min(400px,100% - 24px);max-width:calc(100% - 24px);padding:12px}.game-shell .lobby-banner h3{margin:5px 0 0;font-size:18px}.game-shell .lobby-banner p{display:none}.game-shell .lobby-banner>div:last-child{gap:8px;width:100%;display:flex}.game-shell .lobby-banner .primary-button,.game-shell .lobby-banner .secondary-button{white-space:normal;margin:0;padding:9px;font-size:12px}.game-shell .rescue-banner,.game-shell .breath-warning{top:calc(192px + var(--edge-top));left:var(--edge-left);right:calc(60px + var(--edge-right));width:auto;max-width:none;padding:10px;transform:none}.game-shell .game-notice{bottom:calc(142px + var(--edge-bottom));gap:5px;width:max-content;max-width:calc(100% - 140px);padding:8px 10px;font-size:11px}.game-shell .game-notice button{place-items:center;min-width:44px;min-height:44px;display:grid}.game-shell .crane-panel{gap:5px;padding:8px}.game-shell .crane-panel>svg{display:none}.game-shell .crane-panel strong{font-size:12px}.game-shell .crane-panel span{max-width:none;font-size:10px}.game-shell .crane-panel button{min-width:44px;min-height:44px;padding:8px}.game-shell .crane-panel .crane-release{padding:8px;font-size:11px}.game-dialog{border-radius:16px!important;max-width:min(555px,100% - 24px)!important;padding:24px!important}.game-dialog [data-slot=dialog-title]{padding-right:20px}.game-dialog .dialog-emblem{border-radius:13px;width:44px;height:44px}}@media (max-width:900px) and (max-height:700px) and (orientation:portrait){.game-shell .start-panel{margin-top:10px}.game-shell .start-panel h1{margin:16px 0;font-size:64px}.game-shell .start-tip{display:none}.game-shell .intro{margin-bottom:14px}.game-shell .lobby-banner>div:first-child{display:none}.game-shell .lobby-banner{bottom:calc(236px + var(--edge-bottom))}.game-shell .touch-guide{display:none}.game-shell .touch-controls{bottom:calc(132px + var(--edge-bottom))}.game-shell .camera-tools{flex-direction:row}}@media (max-width:900px) and (max-height:540px) and (orientation:landscape),(pointer:coarse) and (max-height:540px) and (orientation:landscape){.game-shell:not(.is-playing) .start-panel{grid-template-columns:1fr 1.15fr;column-gap:32px;max-width:670px;margin:12px auto 24px;display:grid}.game-shell:not(.is-playing) .setup-card{grid-area:1/2/span 4}.game-shell:not(.is-playing) .eyebrow{align-self:end}.game-shell:not(.is-playing) .start-panel h1{margin:16px 0;font-size:70px}.game-shell:not(.is-playing) .start-tip{display:none}.game-shell.is-playing .topbar{height:calc(52px + var(--edge-top))}.game-shell.is-playing .wordmark{gap:0;font-size:0}.game-shell.is-playing .wordmark-or{font-size:0}.game-shell.is-playing .brand-icon{margin:0}.game-shell .crew-bar{top:calc(4px + var(--edge-top));left:calc(54px + var(--edge-left));max-width:170px}.game-shell .room-panel{top:calc(4px + var(--edge-top));right:calc(104px + var(--edge-right))}.game-shell .mission-panel{top:calc(60px + var(--edge-top));width:140px;padding:7px 10px}.game-shell .height-row{flex-flow:wrap;align-items:center;gap:3px 8px}.game-shell .height-row strong{font-size:17px}.game-shell .water-panel{top:calc(60px + var(--edge-top));width:156px;min-height:46px;padding:6px 8px}.game-shell .water-panel strong{font-size:17px}.game-shell .camera-tools{top:calc(60px + var(--edge-top));right:calc(176px + var(--edge-right));flex-direction:row;gap:4px}.game-shell .camera-tools .icon-button{width:44px;height:44px}.game-shell .play-bottom{width:calc(100% - 260px - var(--edge-left) - var(--edge-right));min-width:270px;bottom:var(--edge-bottom);gap:5px}.game-shell .interaction-hint{min-height:28px;padding:6px 9px;font-size:10px}.game-shell .tool-dock>button{min-height:48px;font-size:10px}.game-shell .touch-guide{display:none}.game-shell .touch-controls{bottom:var(--edge-bottom);align-items:flex-end}.game-shell .joystick{width:92px;height:92px}.game-shell .lobby-banner{bottom:auto;top:calc(116px + var(--edge-top));width:340px;padding:8px}.game-shell .lobby-banner>div:first-child{display:none}.game-shell .game-notice{bottom:calc(116px + var(--edge-bottom));max-width:350px}.game-shell .rescue-banner,.game-shell .breath-warning{top:calc(116px + var(--edge-top));max-width:380px;left:50%;right:auto;transform:translate(-50%)}.game-shell .crane-panel span{display:none}}
