.sprite{display:inline-block;width:90px;height:90px;background-image:url('/assets/crew-atlas.png');background-size:400% 400%;background-position:var(--sx) var(--sy);image-rendering:pixelated;flex:none}
.host-body{background:#102645}.host-app{height:100vh;min-height:600px}.host-top{background:#102645;color:#fff;border-bottom:3px solid #e8b83c}.host-top .sound-toggle,.room-code{color:#fff;border-color:#71819a}.host-logo{background:#faf6ec;padding:8px;width:160px}
.game-stage{background:linear-gradient(#82c9ee 0 65%,#639047 65% 82%,#426b38 82%);position:relative}.arcade-world{position:absolute;inset:0;overflow:hidden}.arcade-world:after{content:'';position:absolute;left:0;right:0;bottom:10%;height:38px;background:#596579;border-top:4px dashed #ead7a1;z-index:0}.scene-caption{position:absolute;top:9%;left:6%;right:27%;font:bold clamp(24px,3vw,52px)/1.15 monospace;color:#102645;text-shadow:2px 2px #fff}.scene-caption small{display:block;font:16px monospace;margin-top:16px}.sky-plane{position:absolute;left:-25%;top:15%;width:220px;height:220px;animation:arrival-plane 5s linear both}.red-car,.blue-car{position:absolute;width:190px;height:190px;bottom:6%;left:-25%;z-index:2;animation:arrival-car 5s ease-out both}.red-car{animation-delay:2s}.blue-car{animation-delay:.8s;bottom:10%}.intro-worker{position:absolute;bottom:19%;left:48%;opacity:0;animation:worker-arrival 2s 5s both}.intro-worker.w2{left:56%;animation-delay:5.5s}.intro-worker.w3{left:64%;animation-delay:6s}.gust{position:absolute;bottom:35%;left:55%;opacity:0;width:70px;height:70px;animation:gust-away 4s 10s both}.gust.g2{left:66%;animation-delay:10.5s}.gust.g3{left:74%;animation-delay:11s}.wind-line{position:absolute;top:45%;width:120px;border-top:4px solid #e8f8ff;left:-20%;animation:arrival-plane 3s 10s 2}.back-turbine{position:absolute;right:6%;bottom:23%;width:260px;height:260px}.intro-title{position:absolute;inset:20% 10% auto;text-align:center;opacity:0;animation:reveal-title 1s 14s forwards;color:#102645;font:bold 52px monospace}
.crew-field{position:absolute;bottom:18%;left:5%;right:5%;display:flex;flex-wrap:wrap;gap:4px;z-index:4}.crew-person{display:grid;justify-items:center;animation:worker-pop .5s both;max-width:84px}.crew-person .sprite{width:70px;height:70px}.crew-person small{background:#102645;color:#fff;padding:3px 5px;font:12px monospace;max-width:85px;overflow:hidden}.crew-person.hop{animation:hop .5s}.projector-hud{bottom:15px;left:20px;right:20px;align-items:center;justify-content:space-between}.projector-hud .leaderboard{display:flex!important;gap:18px;margin:0;color:#fff;background:#102645;padding:8px 15px}.leaderboard div{gap:10px}.host-controls{display:flex;gap:8px}.host-controls .button{background:#102645;color:#fff;border-color:#e8b83c}.host-controls .gold{background:#e8b83c;color:#102645}.join-qr{right:4%;top:6%;width:180px}.worksite{position:absolute;left:48%;bottom:28%;width:260px;height:260px}.build-copy{top:8%;max-width:40%;color:#102645}.build-copy h1{font-size:clamp(22px,3vw,44px)}.build-copy p{font:16px monospace}.build-progress{height:25px;background:#102645;border:3px solid #fff}.build-progress span{height:100%;display:block;background:#e8b83c}.pause-stage .arcade-world *{animation-play-state:paused!important}.sprite-choice .sprite{width:75px;height:75px}.avatar-choice{font-size:14px}.player-logo{margin-bottom:22px}.work-button .sprite{width:110px;height:110px}.work-button{touch-action:manipulation}.notice{padding:12px;background:#fff0be;color:#102645}.intro-replay{font:14px monospace}.host-body .game-stage h1{letter-spacing:-.04em}
@keyframes arrival-plane{to{transform:translateX(140vw)}}@keyframes arrival-car{to{left:55%}}@keyframes worker-arrival{from{opacity:0;transform:translateX(-90px)}to{opacity:1;transform:translateX(0)}}@keyframes gust-away{0%{opacity:0}10%{opacity:1}100%{opacity:0;transform:translate(400px,-300px) rotate(300deg)}}@keyframes reveal-title{to{opacity:1}}@keyframes worker-pop{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes hop{50%{transform:translateY(-28px)}}
@media(max-width:850px){.projector-hud .leaderboard{gap:6px;font-size:12px}.crew-person .sprite{width:52px;height:52px}.host-top{gap:8px}.join-qr{width:130px}.scene-caption{font-size:30px}.projector-hud{flex-wrap:wrap}.host-controls .button{padding:8px;font-size:12px}}
.sprite{background:none;overflow:hidden;flex-shrink:0}.avatar-choice .sprite{width:72px;height:84px}.my-character{width:100px;height:115px}.worksite .sprite{width:260px;height:290px}.crew-person.jump{animation:crew-jump .65s ease-out}.avatar-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-choice{display:flex;flex-direction:column;align-items:center}.scene-caption{z-index:3}.join-qr{z-index:4}@keyframes crew-jump{50%{transform:translateY(-65px)}}
.lobby .arcade-world *{animation:none}.lobby .sky-plane,.lobby .gust,.lobby .wind-line{display:none}.lobby .red-car{left:30%}.lobby .blue-car{left:8%}.lobby .intro-worker{display:none}.blue-car{animation-name:blue-arrival}@keyframes blue-arrival{to{left:25%}}.intro .scene-caption{animation:caption-out .5s 13s forwards}@keyframes caption-out{to{opacity:0}}.host-app{min-height:100vh;grid-template-rows:78px 1fr}.crew-field{bottom:23%;max-height:35%;overflow:hidden}.intro-title{font-size:clamp(30px,5vw,60px)}
.lobby-instructions{font:clamp(14px,1.5vw,22px)/1.5 monospace;padding-left:1.4em;margin:16px 0}.lobby .scene-caption{top:5%;right:30%;font-size:clamp(25px,3vw,46px)}.lobby .scene-caption small{font-size:clamp(12px,1.3vw,18px)}.lobby .back-turbine{right:6%;bottom:18%;width:180px;height:190px}.crew-person small{white-space:nowrap}.crew-person{min-width:60px}
.initials{font:bold 17px monospace;color:#102645;background:#ffdf72;border:2px solid #102645;padding:2px 6px;box-shadow:2px 2px #fff;min-width:28px;text-align:center}.crew-person .sprite{height:62px}.crew-field{max-height:42%}
/* Transparent pixel-art brand, with unused transparent image margins clipped in layout. */
.host-logo,.player-logo{background:transparent;padding:0;width:240px;height:68px;object-fit:cover;image-rendering:pixelated;flex-shrink:0}.host-top{padding-top:5px;padding-bottom:5px}.player-logo{width:280px;height:80px;max-width:100%}@media(max-width:850px){.host-logo{width:175px;height:50px}}
.presentation-paused *{animation-play-state:paused!important}.presentation-paused:after{content:'PRZERWA\A Gotowi do budowy?\A Za chwilę wracamy!';white-space:pre-line;position:absolute;inset:0;z-index:10;display:grid;place-content:center;text-align:center;background:#102645;color:#ffdf72;font:bold clamp(26px,4vw,56px)/1.6 monospace}.host-controls{flex-wrap:wrap;justify-content:flex-end}.projector-hud{flex-wrap:wrap}
.player-manager{position:fixed;right:3%;top:15%;bottom:18%;overflow:auto;z-index:30;background:#faf6ec;color:#102645;padding:24px;width:min(420px,90vw);border:4px solid #e8b83c;box-shadow:8px 8px #102645}.player-manager h2{font-size:24px}.player-manager>div{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #ccc;padding:8px 0}.player-manager button{min-height:36px;padding:6px 12px}
.crew-field{display:block;top:45%;bottom:15%;max-height:none;overflow:visible}.crew-person{position:absolute;transform:translateX(-50%);transition:left .1s linear;animation:none;width:65px;max-width:65px}.crew-person .sprite{width:48px;height:52px}.crew-person .initials{font-size:13px;padding:0 4px}.crew-person small{font-size:10px;padding:0 3px}.crew-person.carrying:after{content:'CZĘŚĆ';position:absolute;right:-20px;top:35px;background:#ffc84d;border:2px solid #102645;font:bold 10px monospace;padding:4px}.crew-person.ready:after{content:'PARTNER?';background:#fff;color:#102645;animation:ready-pulse .7s alternate infinite}@keyframes ready-pulse{to{transform:translateY(-5px)}}.supply-zone,.assembly-zone{position:absolute;top:35%;font:bold 15px monospace;background:#102645;color:#ffdf72;padding:8px;z-index:2}.supply-zone{left:5%}.assembly-zone{right:5%}.building .build-copy,.finished .build-copy{top:3%;left:4%;max-width:60%}.building .build-copy h1,.finished .build-copy h1{font-size:25px;margin-bottom:10px}.worksite{left:auto;right:5%;top:0;bottom:auto;width:140px;height:190px}.worksite .sprite{width:140px;height:190px}.phone-identity{display:flex;align-items:center;gap:10px}.phone-identity .sprite{width:55px;height:65px}.phone-identity h2{font-size:22px}.drive-controls{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:10px;margin:20px 0}.drive-controls button{min-height:100px;background:#ffdf72;color:#102645;font:bold 16px monospace;border:3px solid #102645;touch-action:none;user-select:none;-webkit-user-select:none}.drive-controls button:active{background:#88cd8b}.drive-controls button:disabled{opacity:.45}.phone-map{height:44px;position:relative;display:flex;justify-content:space-between;font:11px monospace;background:#d2dfb9;padding:4px}.phone-map b{position:absolute;top:23px;width:12px;height:14px;background:#102645;transition:left .1s}#phone-hint{min-height:65px;line-height:1.5}.player-app{max-width:580px}.lobby .crew-field{top:53%;bottom:13%}
.crew-person[data-team=development] .initials{background:#ffdf72}.crew-person[data-team=legal] .initials{background:#a9e6ff}.crew-person[data-team=finance] .initials{background:#a7e1ad}.crew-person[data-team=management] .initials{background:#f6b6d5}.turbine-ghost,.turbine-progress{position:absolute;inset:0}.turbine-ghost{opacity:.2}.turbine-progress{transition:clip-path .4s}.finished .supply-zone,.finished .assembly-zone{display:none}
/* Keep poster/pause overlays below presenter controls. */
.game-stage{isolation:isolate;z-index:0}.projector-hud{z-index:30}.presentation-paused:after{pointer-events:none}.host-app:has(.poster) .leaderboard,.host-app:has(.poster) .arrival-count{display:none!important}.poster{background:#241542}.retro-ad{position:absolute;inset:0;padding:4% 6% 12%;color:#fff1c9;background:repeating-linear-gradient(135deg,transparent 0 60px,#ffffff04 60px 63px),linear-gradient(120deg,#341953 0 58%,#e6a638 58% 61%,#5087ad 61%);font-family:monospace}.ad-copy{position:relative;z-index:2;width:58%}.ad-kicker{font:bold clamp(10px,1vw,16px) monospace;letter-spacing:.12em;color:#ffd34f}.ad-copy h1{font:900 clamp(38px,6vw,88px)/.95 monospace;letter-spacing:-.06em;color:#ffdc59;text-shadow:4px 4px #b63657,8px 8px #10152d;margin:20px 0}.ad-tagline{font:bold clamp(15px,2vw,27px)/1.15 monospace;margin:24px 0 14px}.ad-copy>p:not(.ad-kicker):not(.ad-tagline){font-size:clamp(13px,1.5vw,20px)}.ad-sticker{position:absolute;left:78%;top:75%;padding:12px;color:#301449;background:#ffe47e;border:4px solid #301449;transform:rotate(-9deg);font:bold 15px monospace;white-space:nowrap}.ad-art{position:absolute;right:3%;top:4%;width:38%;height:80%}.ad-turbine{position:absolute;right:3%;top:0;width:80%;height:85%;opacity:.85}.ad-hero{position:absolute;bottom:6%;width:44%;height:58%;filter:drop-shadow(5px 5px #1a2547)}.ad-hero.woman{left:0}.ad-hero.man{right:0}.ad-car{position:absolute;bottom:-10%;left:10%;width:80%;height:32%}.ad-bottom{position:absolute;bottom:14%;left:6%;font:bold clamp(10px,1.2vw,17px) monospace;color:#ffd34f}.poster *{animation:none!important}.host-controls [data-action=intro]{min-width:140px;font-weight:900}
.journey-vehicle{display:flex;align-items:center;justify-content:center;flex-direction:column}.journey-vehicle>.sprite{width:100%;height:75%}.journey-vehicle>b{font:bold 12px monospace;white-space:nowrap;background:#102645;color:#ffdf72;border:2px solid #ffdf72;padding:5px 8px}.red-car.journey-vehicle{bottom:2%;animation-delay:1.5s}.blue-car.journey-vehicle{bottom:20%;animation-delay:.5s}.intro .scene-caption{right:40%;top:3%;font-size:28px}.intro .sky-plane{top:12%}.lobby .journey-vehicle>b,.pause-stage .journey-vehicle>b{display:none}
.poland-intro{position:absolute;inset:0;background:#87c9e6}.poland-intro>h2{position:absolute;left:5%;top:3%;font:bold 26px monospace;color:#102645}.journey-map{position:absolute;width:100%;height:85%;top:6%;left:0}.map-country{font:bold 25px monospace;fill:#a47d35;letter-spacing:6px}.map-city{font:bold 13px monospace;fill:#102645}.map-note{font:10px monospace;fill:#435978}.map-vehicle .sprite{width:96px;height:84px}.journey-map foreignObject:not(.map-vehicle foreignObject) .sprite{width:140px;height:160px}.map-gusts{position:absolute;inset:0;pointer-events:none}.poland-intro .intro-title{background:#102645;color:#ffdf72;padding:20px;top:30%;z-index:5}
/* Attract-screen animation loops; only START advances to the intro. */
.poster .ad-car{animation:ad-drive 9s ease-in-out infinite!important;z-index:4}.ad-blue-car{position:absolute;bottom:0%;left:-8%;width:65%;height:25%;z-index:3}.poster .ad-blue-car{animation:ad-drive-back 11s ease-in-out infinite!important}.poster .ad-hero.woman{animation:ad-walk 3.5s ease-in-out infinite alternate!important}.poster .ad-hero.man{animation:ad-walk 4.2s .7s ease-in-out infinite alternate-reverse!important}.ad-paper,.ad-flying-helmet{position:absolute;pointer-events:none;width:55px;height:65px;z-index:5;left:0;top:50%;opacity:0}.poster .ad-paper{animation:ad-wind 7s linear infinite!important}.poster .paper-two{animation-delay:-3.5s!important;top:65%;width:40px}.poster .ad-flying-helmet{animation:ad-wind 10s -4s linear infinite!important;top:75%;width:60px}@keyframes ad-drive{0%,100%{transform:translateX(-15%)}45%,60%{transform:translateX(18%)}}@keyframes ad-drive-back{0%,100%{transform:translateX(25%)}50%{transform:translateX(-20%)}}@keyframes ad-walk{0%{transform:translateX(-10px) translateY(0) rotate(-1deg)}25%{transform:translateX(-5px) translateY(-5px) rotate(1deg)}50%{transform:translateX(0) translateY(0) rotate(-1deg)}75%{transform:translateX(5px) translateY(-5px) rotate(1deg)}100%{transform:translateX(10px) translateY(0) rotate(-1deg)}}@keyframes ad-wind{0%{opacity:0;transform:translate(-40px,50px) rotate(0deg)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(260px,-230px) rotate(460deg)}}.poster.presentation-paused *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.poster .ad-art *{animation:none!important}}
.cartoon-trip{background:radial-gradient(ellipse at 45% 50%,#b2e3ed,#76bbde)}.cartoon-trip .journey-map{top:10%;height:78%;z-index:2}.cartoon-trip>h2{font:bold clamp(22px,3vw,40px) monospace;text-shadow:2px 2px #fff}.cartoon-trip .map-country{fill:#a98b46;opacity:.6}.map-destination{font:bold 16px monospace;fill:#102645;paint-order:stroke;stroke:#fff3ca;stroke-width:5px}.cartoon-trip .map-city{font-size:14px;paint-order:stroke;stroke:#fff4ce;stroke-width:3px}.cartoon-vehicle{position:relative;width:140px;height:110px;animation:vehicle-bounce .6s ease-in-out infinite alternate}.cartoon-vehicle .vehicle-body{position:absolute!important;bottom:0;left:0;width:140px!important;height:100px!important;z-index:2}.window-passenger{position:absolute;left:54px;top:8px;width:36px;height:39px;overflow:hidden;z-index:3;transform:rotate(-8deg);animation:passenger-wave .8s ease-in-out infinite alternate}.window-passenger .sprite{width:36px!important;height:70px!important;max-width:none}.vehicle-8 .window-passenger{left:65px;top:29px;width:30px;height:30px}.vehicle-8 .window-passenger .sprite{width:30px!important;height:62px!important}.travel-puff{position:absolute;bottom:22px;left:-12px;width:18px;height:12px;border-radius:50%;background:#fff9;box-shadow:-17px 4px #fff6;animation:puff-away .7s infinite}.cartoon-cloud{position:absolute;z-index:1;width:140px;height:28px;background:#ffffff90;border-radius:30px;box-shadow:25px -15px #ffffff90,55px -5px #ffffff90}.cloud-a{top:24%;left:9%;animation:cloud-slide 15s linear infinite}.cloud-b{top:65%;left:55%;animation:cloud-slide 19s linear infinite reverse}.trip-debris{position:absolute;inset:0;z-index:4;pointer-events:none}.trip-paper{position:absolute;width:45px;height:55px;left:75%;top:40%;opacity:0;animation:paper-west 5s 2s linear infinite}.trip-paper.p2{top:60%;left:57%;animation-delay:4s;width:35px}.trip-paper.p3{top:35%;left:55%;animation-delay:5s;width:50px}.trip-paper.p4{top:55%;left:45%;animation-delay:7s;width:45px}@keyframes vehicle-bounce{to{transform:translateY(-3px) rotate(-2deg)}}@keyframes passenger-wave{to{transform:rotate(10deg) translateY(-4px)}}@keyframes puff-away{to{transform:translateX(-16px) scale(1.5);opacity:0}}@keyframes cloud-slide{to{transform:translateX(100px)}}@keyframes paper-west{0%{opacity:0;transform:translate(0,0) rotate(0deg)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(-300px,-90px) rotate(-400deg)}}.presentation-paused .cartoon-trip *{animation-play-state:paused!important}
.cartoon-trip .vehicle-body{transform:scaleX(-1)}
.game-stage.intro{position:fixed;inset:0;z-index:10;background:#10233f}.host-app:has(.intro) .host-top{visibility:hidden}.host-app:has(.intro) .leaderboard,.host-app:has(.intro) .arrival-count{display:none!important}.host-app:has(.intro) .projector-hud{left:auto;right:14px;bottom:12px}.host-app:has(.intro) .host-controls .button{min-height:30px;padding:6px 11px;font-size:11px;opacity:.9}#intro-cinema{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}.intro .intro-title[hidden]{display:none!important}
