.play-choices{display:flex;align-items:stretch;gap:9px}.play-choices .start-button{flex:1;min-width:0}.coop-button{margin-top:21px;min-width:88px;border:1px solid #d6c2966b;border-radius:5px;background:#16343fdd;color:#e8d8b9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:500 10px Outfit,system-ui,sans-serif;letter-spacing:.09em;cursor:pointer}.coop-button .glyph{width:22px;height:22px}.coop-button:hover{background:#2a4b53;border-color:#e6c98e}.account-entry{position:absolute;z-index:31;right:40px;top:89px;display:flex;align-items:center;gap:8px;background:#12313dd9;border:1px solid #c9bd9755;border-radius:30px;padding:9px 14px;color:#d9d4c3;font:500 11px Outfit,system-ui,sans-serif;cursor:pointer}.account-entry .glyph{height:17px;width:17px}.account-entry.connected:before{content:'';width:6px;height:6px;border-radius:50%;background:#a5d8b5}.online-overlay{position:fixed;inset:0;z-index:400;background:#071322c7;backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px;overflow:auto}.online-overlay[hidden],.team-hud[hidden],.network-banner[hidden],.account-entry[hidden]{display:none}.online-dialog{position:relative;width:min(100%,440px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #c5ad7e66;border-radius:9px;padding:35px;background:radial-gradient(ellipse at 100% 0,#314255,#162d3b 66%);color:#eee3cf;box-shadow:0 25px 110px #0007;font-family:Outfit,system-ui,sans-serif}.online-dialog:before{content:'✧';display:block;font-size:33px;color:#cbb78e;margin-bottom:10px}.online-dialog h2{font:400 39px/1.08 'Bree Serif',Georgia,serif;margin:7px 0 12px}.online-dialog h2 em{color:#d8c39c;font-style:normal}.online-dialog .eyebrow{font-size:9px;letter-spacing:.18em;color:#d4c3a4}.online-subtitle,.online-email{font-size:13px;line-height:1.5;color:#b8c8cc;margin-bottom:22px}.online-email{overflow-wrap:anywhere}.online-close{position:absolute;right:14px;top:11px;min-height:38px;min-width:38px;border:0;background:transparent;color:#b8c4c5;font-size:28px;cursor:pointer}.online-dialog .primary-button,.online-dialog .secondary-button{width:100%;margin-top:12px;min-height:45px;font-size:13px;padding:12px 16px}.google-button{width:100%;min-height:46px;border:1px solid #d8cbb477;border-radius:5px;background:#eae4d3;color:#263746;display:flex;align-items:center;justify-content:center;gap:12px;font:500 13px Outfit,system-ui,sans-serif;cursor:pointer}.google-button b{font-size:21px;color:#426bc7}.auth-divider{display:flex;align-items:center;gap:12px;margin:23px 0 17px;color:#90a8b1;font-size:10px}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:#b7c5ca29;flex:1}.auth-tabs{display:flex;gap:18px;margin-bottom:15px}.auth-tabs button{padding:7px 0;color:#9aadb7;background:transparent;border:0;border-bottom:1px solid transparent;font-size:12px;cursor:pointer}.auth-tabs .active{color:#e4c69a;border-color:#e4c69a}.online-dialog label{display:block;font-size:11px;line-height:1.5;color:#c6d1d2;margin:12px 0}.online-dialog input{display:block;width:100%;box-sizing:border-box;margin-top:5px;min-height:44px;border:1px solid #a4b4bd55;border-radius:4px;background:#0e2432;color:#f2e7d5;padding:11px 12px;font:400 14px Outfit,system-ui,sans-serif}.online-dialog input:focus{outline:2px solid #d4b78d;outline-offset:2px}.online-dialog input[name=code]{font-size:23px;letter-spacing:.28em;text-transform:uppercase;text-align:center}.online-link,.account-tools button{display:block;background:transparent;border:0;color:#b9c9cd;font:400 11px Outfit,system-ui,sans-serif;text-decoration:underline;text-underline-offset:4px;padding:12px 0;cursor:pointer}.online-note{font-size:10px;line-height:1.6;color:#91a7b1;margin-top:20px}.online-message{font-size:12px;line-height:1.5;color:#ebcf9e;margin:8px 0 0;min-height:18px}.provider-chips{display:flex;gap:9px;margin:15px 0}.provider-chips>span{font-size:11px;background:#b9dab51a;color:#b9dab5;padding:5px 9px;border-radius:20px}.account-tools{display:flex;justify-content:space-between;gap:12px}.room-code{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;background:#0f2633;border:1px dashed #baa67c88;border-radius:6px;padding:14px;color:#e3c89e;cursor:pointer}.room-code small{font-size:8px;letter-spacing:.16em;color:#a3b4ba}.room-code strong{font-size:30px;letter-spacing:.22em;font-weight:500}.room-code>span{font-size:10px;color:#acb8bc}.party-slots{display:grid;gap:9px;margin:22px 0}.party-slot{display:flex;gap:11px;align-items:center;min-height:53px;border-bottom:1px solid #adbac222;padding:4px 0}.party-portrait{width:43px;height:43px;overflow:hidden;background:color-mix(in srgb,var(--ally) 18%,transparent);border-radius:50%;border:1px solid color-mix(in srgb,var(--ally) 50%,transparent)}.party-portrait>svg{width:100%;height:100%}.party-slot>div{flex:1;min-width:0}.party-slot strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-slot small{display:block;color:#91a9b3;font-size:10px;margin-top:4px}.party-slot>b{font-size:9px;font-weight:400;color:#b9aa93}.party-slot>b.ready{color:#afd6b6}.party-slot.empty{min-height:38px;gap:16px;border-bottom:1px dashed #b0c4ce22;color:#8198a3}.party-slot.empty>span{padding:5px 10px;font-size:18px}.team-hud{position:fixed;z-index:40;top:125px;left:25px;display:grid;gap:6px;pointer-events:none}.ally-pill{background:#0d293bbd;border-radius:24px;display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;min-width:120px;border:1px solid #b7c3b329;color:#e3e2d4;font-family:Outfit,system-ui,sans-serif}.ally-mark{display:grid;place-items:center;height:25px;width:25px;border-radius:50%;background:color-mix(in srgb,var(--ally) 25%,#193742);color:var(--ally);font-size:12px}.ally-pill strong{font-size:9px;font-weight:400;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ally-life{display:block;min-width:70px;height:3px;background:#c7d9d52b;margin-top:4px;border-radius:5px;overflow:hidden}.ally-life i{display:block;height:100%;background:#a3cca6}.ally-pill.downed{border-color:#dfb29177}.ally-pill>b{font-size:14px;color:#e7b697}.network-banner{position:fixed;z-index:100;bottom:120px;left:50%;transform:translateX(-50%);max-width:80vw;padding:12px 20px;border:1px solid #d4bd8e77;border-radius:5px;background:#102c3be8;color:#e9d7b4;text-align:center;font:400 12px/1.5 Outfit,system-ui,sans-serif;pointer-events:none}
@media(max-width:700px){.account-entry{right:16px;top:65px;padding:7px 11px;font-size:10px}.coop-button{margin-top:14px;min-width:83px;font-size:9px}.play-choices .start-button{font-size:12px}.online-overlay{padding:15px}.online-dialog{padding:26px;max-height:calc(100dvh - 30px)}.online-dialog h2{font-size:34px}.team-hud{left:12px;top:135px;gap:4px}.ally-pill{min-width:102px;padding-right:8px}.ally-mark{width:20px;height:20px;font-size:10px}.ally-pill strong{font-size:8px;max-width:82px}.ally-life{min-width:61px}.network-banner{bottom:185px;max-width:75vw;width:max-content;padding:9px 13px;font-size:11px}}
@media(max-height:710px){.coop-button{margin-top:11px}.online-dialog:before{display:none}.online-dialog{padding-top:28px}.online-dialog h2{font-size:30px}.party-slots{margin:12px 0;gap:3px}.party-slot{min-height:44px}}
@media(max-height:540px) and (orientation:landscape){.account-entry{top:48px;right:22px}.coop-button{margin-top:10px;font-size:8px;min-width:70px}.team-hud{top:110px}}
@media(prefers-reduced-motion:reduce){.online-overlay{backdrop-filter:none}}
.play-choices #start-button{justify-content:center;gap:10px;white-space:nowrap}.play-choices #start-button .button-symbol{display:none}
@media(min-width:701px) and (max-width:1100px){body .play-choices #start-button{padding:12px;font-size:12px;letter-spacing:.06em;gap:8px}.play-choices #start-button .glyph{width:18px;height:18px;min-width:18px}.coop-button{min-width:72px}}

/* Keep the party and objective readable on the same edge. */
.team-hud{display:flex;gap:5px}.ally-pill{min-width:82px;max-width:108px;gap:5px;padding:5px 8px 5px 5px}.ally-mark{width:21px;height:21px;font-size:10px}.ally-life{min-width:51px}.ally-pill strong{max-width:72px}body[data-online=true] .discovery-hint{top:177px}@media(max-width:700px){.team-hud{right:12px;left:12px;top:132px}.ally-pill{flex:1;min-width:0;max-width:118px}.ally-pill strong{max-width:73px}.ally-life{min-width:48px}body[data-online=true] .discovery-hint{top:176px;max-width:215px}}

.optional-password{margin-top:22px;border-top:1px solid #a5b7be33;padding-top:17px}.optional-password summary{cursor:pointer;color:#c4d0d1;font-size:12px}.optional-password summary small{color:#91a9b4;font-size:10px;margin-left:8px}.optional-password>p{font-size:11px;color:#91a9b4;line-height:1.6}body .online-dialog .primary-button,body .online-dialog .secondary-button,body .pause-dialog .primary-button,body .pause-dialog .secondary-button,body .result-dialog .primary-button,body .hero-detail .primary-button,body .hero-detail .secondary-button{justify-content:center;text-align:center;gap:12px}.online-dialog button{align-items:center}.online-close{display:grid;place-items:center;padding:0;line-height:1}.optional-password[open] summary{color:#e2c694}

.direction-layer{position:fixed;inset:0;z-index:38;pointer-events:none}.direction-layer[hidden],.direction-marker[hidden],.revive-meter[hidden]{display:none}.direction-marker{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;font-family:Outfit,system-ui,sans-serif;color:#b9edff;filter:drop-shadow(0 2px 4px #071725);text-align:center}.direction-symbol{display:grid;place-items:center;font-size:30px;line-height:1;font-weight:600;width:30px;height:30px}.direction-label{font-size:10px;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.direction-marker small{font-size:9px;white-space:nowrap;color:#dcf5fa}.direction-marker.revive{color:#ffcf9d}.direction-marker.on-screen{padding:8px 11px;background:#102b3eed;border:1px solid #edc79a66;border-radius:7px}.direction-marker.on-screen .direction-symbol{font-size:17px;width:20px;height:20px}.revive-meter{height:5px;width:100%;min-width:95px;border-radius:8px;background:#a9beca33;overflow:hidden;margin-top:3px}.revive-meter i{height:100%;width:100%;display:block;background:#ffce8f;transform-origin:left;transition:transform .1s linear}@media(max-width:600px){.direction-label{max-width:88px}.direction-marker.on-screen small{white-space:normal;max-width:100px}}
@media(max-width:700px) and (orientation:portrait){body .discovery-hint{bottom:132px}body[data-online=true] .discovery-hint{top:176px;bottom:auto;left:12px;transform:none}}
@media(max-width:700px) and (orientation:portrait){.team-hud{top:154px}body[data-online=true] .discovery-hint{top:196px}}
@media(max-height:540px) and (orientation:landscape){.team-hud{top:88px;left:12px;right:auto}body[data-online=true] .discovery-hint{top:128px;bottom:auto;left:12px;transform:none;max-width:230px}}
/* A downed ally off screen is a small marked arrow; on screen the ring drawn in the world replaces the card. */
.direction-cross{display:none}.direction-marker.revive .direction-cross{display:grid;place-items:center;width:22px;height:22px;margin-top:-5px;border-radius:50%;background:#2a1d12d9;border:1px solid #ffcf9d99;font-size:12px;line-height:1;color:#ffd7a3}.direction-marker.revive .direction-symbol{font-size:24px;width:24px;height:24px}.direction-label:empty,.direction-marker small:empty{display:none}
/* Late snapshots: three signal bars, no message. */
.network-weak{position:fixed;z-index:60;top:calc(env(safe-area-inset-top) + 16px);right:calc(env(safe-area-inset-right) + 96px);display:flex;align-items:flex-end;gap:2px;height:16px;padding:3px 5px;border-radius:5px;background:#0d2433b8;pointer-events:none}.network-weak[hidden]{display:none}.network-weak i{display:block;width:3px;border-radius:1px;background:#f3c27a}.network-weak i:nth-child(1){height:4px}.network-weak i:nth-child(2){height:7px;opacity:.4}.network-weak i:nth-child(3){height:10px;opacity:.2}
/* Phones in portrait: allies are a letter and a life bar, kept left of the minimap. */
@media(max-width:700px) and (orientation:portrait){.team-hud{max-width:calc(100% - 138px);flex-wrap:wrap}.ally-pill{min-width:0;max-width:none;padding:4px 7px 4px 4px}.ally-pill strong{display:none}.ally-life{min-width:34px;margin-top:0}.ally-pill>b{font-size:11px}}
