/* Menu and immersive round layout. */
:root{--ink:#24352b;--lime:#d8ef7b;--paper:#f4f3eb}
.header{height:88px}.header nav{gap:26px}.nav-host{text-decoration:none}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8a9e59;margin-right:7px;vertical-align:2px}
.menu-hero{display:grid;grid-template-columns:minmax(390px,1fr) minmax(0,1.13fr);gap:50px;align-items:stretch}.menu-copy{padding:8px 0}.menu-copy>.eyebrow{margin-bottom:20px}.menu-copy h1{font-size:clamp(43px,4.1vw,68px);line-height:1.07;letter-spacing:-.055em;margin:0 0 18px;font-weight:650}.menu-copy h1 em{font-style:normal;color:#84965e}.menu-lead{color:#79806f;line-height:1.7;font-size:14px;margin-bottom:26px}.menu-modes{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:25px}.menu-mode{text-align:left;position:relative;overflow:hidden;min-height:152px;border:1px solid #dadfcf;background:#fffef8;border-radius:15px;padding:55px 16px 16px;color:var(--ink);transition:transform .18s,border-color .18s,background .18s}.menu-mode:hover{transform:translateY(-3px);border-color:#a8bb7d}.menu-mode.selected{border-color:#9bb360;background:#eef4db;box-shadow:inset 0 0 0 1px #a0b86a}.mode-number{font-size:8px;letter-spacing:.12em;font-weight:650;display:block;color:#899279;margin-bottom:7px}.menu-mode strong{display:block;font-size:20px;letter-spacing:-.035em;margin-bottom:5px}.menu-mode small{font-size:10px;color:#7b846d;line-height:1.5}.mode-check{position:absolute;top:14px;left:16px;font-size:14px;width:25px;height:25px;border:1px solid #d4dbc5;border-radius:50%;display:grid;place-items:center}.selected .mode-check{background:var(--ink);color:var(--lime);border-color:var(--ink)}.mode-art{position:absolute;top:4px;right:6px;width:90px;height:66px;display:grid;place-items:center;font-size:43px;line-height:1;color:#a2b57a;transform:rotate(-12deg);opacity:.8}.mode-art i{position:absolute;border:1px solid #acbd8b;border-radius:50%;width:77px;height:40px;transform:rotate(30deg)}.mode-art i+i{transform:rotate(110deg)}.hide-art{color:#b2a18a;transform:rotate(12deg)}.hide-art i{width:62px;height:62px;border-radius:35% 55% 38% 60%;border-color:#c9baa3}.hide-art i+i{width:85px;height:85px;transform:rotate(30deg)}
.create-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.create-row .primary{font-size:12px;gap:18px;white-space:nowrap}.menu-launch .label{font-size:10px;letter-spacing:.015em}.menu-launch .field{font-size:13px}.menu-join{margin-top:20px;grid-template-columns:minmax(0,1fr) auto;gap:9px}.menu-join .label{grid-column:1/-1;margin:0 0 1px}.menu-join .outline{font-size:11px;background:transparent}.source-status{display:flex;align-items:flex-start;gap:10px;padding-top:17px;margin-top:18px;border-top:1px solid var(--line)}.source-status .source-icon{background:#e7ebdc;width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;font-size:16px;color:#778b4f}.source-status b{font-size:11px;font-weight:600}.source-status p{font-size:10px;line-height:1.65;color:#8a917d;margin:4px 0 0}.source-status a{color:#607a45;white-space:nowrap;text-underline-offset:3px}
.menu-world{position:relative;overflow:hidden;border-radius:22px;min-height:625px;background:#dce4d6;isolation:isolate}.menu-world #home-map{position:absolute;inset:0;filter:saturate(.48) contrast(.96)}.menu-world-tint{position:absolute;inset:0;z-index:500;pointer-events:none;background:linear-gradient(180deg,#dee8c72b,transparent 35%,#253d2ed9)}.world-top{position:absolute;top:23px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:550}.world-label,.world-count{font-size:8px;letter-spacing:.1em;padding:9px 10px;background:#fffff3e3;border-radius:6px;color:#637158}.world-count{font-size:8px}.world-coordinate{position:absolute;right:24px;top:82px;z-index:550;font-size:11px;letter-spacing:.1em;color:#52654c;line-height:1.8}.world-caption{position:absolute;left:30px;right:28px;bottom:34px;z-index:550;color:white}.world-caption .eyebrow{color:#d0dcb8;font-size:8px;letter-spacing:.15em;margin-bottom:13px}.world-caption h2{font-size:56px;line-height:.99;letter-spacing:-.05em;margin:0 0 19px;font-weight:600}.world-caption>p:last-of-type{font-size:11px;color:#d9e4ce;margin:0}.world-stamp{position:absolute;right:0;bottom:10px;border:1px solid #e6f1cf80;border-radius:50%;width:65px;height:65px;display:grid;place-items:center;font-size:36px;transform:rotate(15deg);color:#deedc4}.menu-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;padding-top:24px;margin-top:30px;border-top:1px solid var(--line)}.menu-bottom>div{display:flex;gap:13px;align-items:center}.menu-bottom>div>span{color:#9aab7b;font-size:10px;border:1px solid #dce1d0;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto}.menu-bottom p{font-size:10px;line-height:1.6;color:#8b927f;margin:0}.menu-bottom b{display:block;font-size:11px;color:#506048;font-weight:600;margin-bottom:3px}
.workspace-heading h1{font-size:31px}.invite-ticket{margin:-3px -3px 20px;padding:16px;background:var(--ink);border-radius:12px;color:var(--lime);position:relative;overflow:hidden}.invite-ticket>span{font-size:8px;letter-spacing:.12em;color:#aebf91}.invite-ticket>button{display:flex;align-items:center;justify-content:space-between;background:none;color:var(--lime);width:100%;padding:12px 0 8px;font-size:25px;font-weight:650;letter-spacing:.12em}.invite-ticket small{font-weight:400;font-size:17px;letter-spacing:0;color:#a6bb7d}.invite-ticket p{font-size:10px;line-height:1.6;color:#b6c3a3;margin:6px 0 0}.territory-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}.territory-heading .eyebrow{font-size:8px;margin-bottom:7px}.territory-heading h3{font-size:18px;margin:0}.region-legend{font-size:9px;white-space:nowrap;display:flex;align-items:center;gap:5px;color:#8a927e}.region-legend i{display:inline-block;background:#8caa64;width:6px;height:6px;border-radius:50%;margin-left:8px}.region-legend i:last-child{background:#bd6b54}.region-presets{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.preset{border-radius:20px;background:#e9eddf;color:#697a54;font-size:10px;padding:8px 12px}.preset:hover{background:#dce7c8}.lobby-ready-hint{font-size:10px;color:#929a85;line-height:1.65;margin:0}.host-guide-link{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:15px;margin-top:18px;color:#69824a;font-size:10px;text-decoration:none}.settings-panel{padding:20px}.host-round-actions{font-size:11px;color:#89937b}.host-round-actions summary{cursor:pointer;margin-bottom:10px}.host-round-actions .outline{font-size:11px}.hide-layout{grid-template-columns:minmax(0,1fr) 420px}.candidate-panel .candidate-preview{height:285px}.candidate-panel .candidate-list{max-height:152px}.candidate-panel .photo-controls{bottom:10px;right:10px}.candidate-panel .photo-controls button{width:27px;height:27px;font-size:15px}
.playing{background:#17271e;overflow:hidden}.playing .header,.playing .footer{display:none}.playing main{padding:0;margin:0;max-width:none;min-height:100dvh;height:100dvh;overflow:hidden}.play-screen{position:relative;width:100%;height:100dvh;background:#1b2d22;color:white;isolation:isolate}.play-scene{position:absolute;inset:0;z-index:0}.play-scene .viewer{height:100%;width:100%}.play-scene .photo-stage img{object-fit:contain}.play-vignette{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,#132219b3,transparent 24%,transparent 62%,#12251d9c);pointer-events:none}.play-top{position:absolute;left:25px;right:25px;top:23px;z-index:30;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;pointer-events:none}.play-top-left,.play-top-right{display:flex;align-items:center;gap:20px;pointer-events:auto}.play-menu-button,.play-tools button{border:1px solid #ffffff36;background:#21342be0;color:#eef5dc;border-radius:9px;width:39px;height:39px;display:grid;place-items:center;font-size:19px;backdrop-filter:blur(12px)}.play-menu-button:hover,.play-tools button:hover{background:#405a3e}.play-brand{font-size:28px;letter-spacing:-1.8px;font-weight:700}.play-brand>span{color:var(--lime)}.play-round{border-left:1px solid #ffffff40;padding-left:20px}.play-round small,.play-score small{display:block;font-size:8px;letter-spacing:.15em;color:#d2ddc0;margin-bottom:7px}.play-round b{font-size:16px;font-weight:600;letter-spacing:-.02em}.play-round b>span{color:#c5d2b8;font-size:12px;font-weight:400}.play-score{text-align:right}.play-score b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.play-top .timer{font-size:22px;min-width:105px;min-height:59px;padding:15px 17px;background:#21382ceb;border:1px solid #cde69354;box-shadow:0 5px 30px #0002;backdrop-filter:blur(15px)}.play-top .timer.urgent{background:#a6543be8;color:#fff0e4;border-color:#ebc2a585}.play-objective{position:absolute;left:25px;top:109px;z-index:9;max-width:50%;text-shadow:0 1px 8px #13251caa;pointer-events:none}.play-objective>span{font-size:9px;letter-spacing:.08em;color:#d6e3c4}.play-objective h1{font-size:25px;font-weight:500;letter-spacing:-.035em;margin:7px 0 0}.scene-loading-status{position:absolute;left:50%;top:105px;transform:translateX(-50%);z-index:30;padding:12px 17px;border:1px solid #ffffff35;border-radius:9px;font-size:11px;background:#21342bee;color:#e1eccd;max-width:80%;text-align:center;backdrop-filter:blur(12px)}.play-roster{position:absolute;left:25px;top:190px;width:205px;z-index:25;background:#23392ddd;border:1px solid #ffffff26;border-radius:11px;padding:12px 14px;backdrop-filter:blur(14px)}.play-roster summary{font-size:10px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;color:#d9e4c7}.play-roster summary>b{font-size:10px;background:#ffffff20;padding:3px 6px;border-radius:4px}.play-roster summary>span{margin-left:auto}.play-roster .players{margin-top:12px}.play-roster .player{border-color:#ffffff1e}.play-roster .player-name{color:#eff5e6;font-size:11px}.play-roster .player-sub{color:#bccbb0;font-size:9px}.play-roster .player-points{font-size:12px}.play-roster .avatar{width:27px;height:27px;font-size:10px}.play-tools{position:absolute;left:25px;bottom:93px;z-index:20;display:flex;gap:8px}.play-tools button{width:39px;height:39px;font-size:23px}.play-attribution{position:absolute;left:25px;bottom:23px;max-width:calc(100% - 440px);z-index:20;font-size:9px;color:#dee7d2;text-shadow:0 1px 5px #0009;line-height:1.6}.play-attribution a{text-underline-offset:3px}.play-attribution>span{display:block;font-size:9px;color:#b9cab0;margin-top:6px}.play-dock{position:absolute;bottom:22px;right:24px;width:335px;border:1px solid #e0e6d5;border-radius:14px;overflow:hidden;background:var(--white);z-index:20;color:var(--ink);box-shadow:0 12px 45px #07170f40;transition:width .2s}.dock-heading{padding:7px 12px;display:flex;justify-content:space-between;align-items:center;background:#fffff7;font-size:8px;letter-spacing:.13em;color:#7b876a}.dock-heading button{background:none;font-size:17px;color:#667b4f;padding:3px 0 3px 16px;line-height:1}.dock-heading button span{font-size:8px;border:1px solid #d4ddc7;padding:2px 4px;border-radius:3px;margin-left:5px;vertical-align:2px}.play-dock .map-canvas{height:205px;transition:height .2s}.dock-answer{padding:12px;background:var(--white)}.dock-answer>p{font-size:10px;color:#8a927e;margin:0 0 10px}.dock-answer .primary{font-size:12px;min-height:45px;padding:12px 15px}.dock-answer>small{font-size:8px;color:#a3aa96;display:block;text-align:center;margin-top:9px}.dock-answer #seek-wait{font-size:10px;color:#738952;line-height:1.6;margin-top:8px}.play-dock.expanded{width:min(610px,calc(100vw - 48px))}.play-dock.expanded .map-canvas{height:min(49vh,400px)}.play-screen .photo-controls{bottom:110px;right:385px;z-index:15}.play-screen .photo-error{padding-right:370px}.play-scene .pnlm-controls-container{top:auto;bottom:110px;left:25px}.play-screen .pnlm-about-msg{z-index:80}.play-screen .mapillary-attribution-container{max-width:50%;bottom:60px!important;left:25px!important}.play-screen .mapillary-direction-container{bottom:44%!important}.shortcut-list{display:grid;gap:12px;margin:24px 0;color:#7d8971;font-size:12px}.shortcut-list>span{display:flex;justify-content:space-between;align-items:center}kbd{border:1px solid #d7dfca;border-bottom-width:2px;border-radius:5px;padding:4px 7px;font:10px inherit;color:#61774b}.game-menu-dialog{max-width:430px}.game-menu-dialog .text-button{font-size:10px;margin-top:12px}.play-screen .mapillary-bearing-container{top:105px!important;right:25px!important}
@media(min-width:1500px){.menu-hero{gap:65px}.menu-copy{padding:18px 0}.menu-world{min-height:680px}.menu-copy h1{font-size:69px}.menu-lead{font-size:16px}.menu-mode{min-height:166px}.world-caption h2{font-size:67px}.menu-launch .field{padding:15px}.play-dock{width:370px}.play-dock .map-canvas{height:240px}.play-screen .photo-controls{right:420px}}
@media(max-width:1100px){.menu-hero{gap:28px;grid-template-columns:minmax(360px,1fr) 1fr}.menu-copy h1{font-size:44px}.menu-mode{padding-left:13px;padding-right:10px}.menu-mode strong{font-size:18px}.menu-mode small{font-size:9px}.world-label{max-width:150px;line-height:1.7}.world-count{display:none}.world-caption h2{font-size:43px}.world-stamp{width:45px;height:45px;font-size:29px}.world-caption{left:24px}.hide-layout{grid-template-columns:minmax(0,1fr) 350px}.settings-panel .host-guide-link{grid-column:1/-1;margin:0}.play-roster{width:185px}.play-screen .photo-controls{right:auto;left:25px;bottom:145px}}
@media(max-width:760px){.header{height:76px}.header nav{gap:19px}.nav-host{display:none}main{padding-top:26px}.menu-hero{grid-template-columns:1fr;gap:23px}.menu-copy h1{font-size:46px}.menu-copy>.eyebrow{font-size:9px;margin-bottom:18px}.menu-lead{font-size:13px;margin-bottom:23px}.menu-modes{gap:9px;margin-bottom:23px}.menu-mode{min-height:150px;padding-top:57px}.menu-mode strong{font-size:18px}.menu-mode small{font-size:9px}.mode-art{right:0}.create-row{grid-template-columns:1fr}.create-row .primary{font-size:13px}.menu-join{grid-template-columns:minmax(0,1fr) auto}.menu-join .outline{font-size:10px}.menu-world{min-height:330px}.world-caption h2{font-size:37px}.world-caption .eyebrow{font-size:7px}.world-caption>p:last-of-type{font-size:10px}.world-coordinate{top:72px;font-size:9px}.world-label{max-width:none;font-size:7px}.world-top{left:20px;top:19px}.world-caption{bottom:25px;left:23px}.menu-bottom{grid-template-columns:1fr;gap:17px;margin-top:24px}.menu-bottom>div{align-items:center}.menu-bottom p{font-size:11px}.source-status p{font-size:10px}.territory-heading h3{font-size:17px}.region-legend{font-size:8px}.region-presets{gap:6px}.preset{font-size:9px;padding:8px 10px}.invite-ticket{margin-bottom:17px}.workspace .players-panel{order:2}.hide-layout{grid-template-columns:1fr}.candidate-panel .candidate-preview{height:280px}.play-top{top:15px;left:14px;right:14px;gap:10px}.play-top-left{gap:11px}.play-top-right{gap:10px}.play-brand{font-size:25px}.play-round{padding-left:12px}.play-round b{font-size:13px}.play-round b span{font-size:10px}.play-round small,.play-score small{font-size:7px;margin-bottom:5px}.play-score{display:none}.play-top .timer{min-width:76px;min-height:46px;font-size:19px;padding:11px}.play-menu-button{width:34px;height:34px;font-size:16px}.play-objective{left:16px;top:86px;max-width:75%}.play-objective h1{font-size:20px}.play-objective>span{font-size:8px}.play-roster{left:15px;top:152px;width:170px;padding:10px 12px}.play-dock{width:265px;right:12px;bottom:13px;border-radius:11px}.play-dock .map-canvas{height:147px}.dock-heading{padding:6px 10px}.dock-answer{padding:9px}.dock-answer>p{font-size:9px;margin-bottom:8px}.dock-answer .primary{font-size:11px;min-height:39px;padding:10px 12px}.dock-answer>small{display:none}.play-attribution{left:14px;bottom:15px;font-size:7px;max-width:calc(100% - 297px);overflow-wrap:anywhere}.play-attribution>span{display:none}.play-tools{left:14px;bottom:80px;flex-direction:column;gap:8px}.play-tools button{width:33px;height:33px;font-size:20px}.play-dock.expanded{width:calc(100vw - 24px)}.play-dock.expanded .map-canvas{height:42vh}.play-screen .photo-controls{left:14px;right:auto;bottom:173px;gap:4px}.play-screen .photo-controls button{width:28px;height:28px;font-size:16px}.play-screen .photo-error{padding:30px 25px 280px}.play-screen .mapillary-attribution-container{bottom:280px!important;left:15px!important;max-width:85%}.play-screen .pnlm-controls-container{bottom:280px;left:15px}.scene-loading-status{top:205px;max-width:90%;font-size:10px;white-space:normal;width:max-content}.play-screen .mapillary-bearing-container{top:85px!important;right:15px!important}.host-guide-link{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.inline-link{background:none;padding:0;color:#617f46;text-decoration:underline;text-underline-offset:3px;font:inherit}.panorama-setup-banner{display:flex;gap:14px;align-items:center;background:#eaf0dc;border:1px solid #d1dfb6;border-radius:13px;padding:19px 20px;margin-bottom:24px}.panorama-setup-banner>span{font-size:30px;color:#8ba45e}.panorama-setup-banner>div{flex:1}.panorama-setup-banner b{font-size:13px}.panorama-setup-banner p{font-size:11px;color:#83906d;line-height:1.7;margin:5px 0 0}.panorama-setup-banner .primary{font-size:11px;white-space:nowrap}.token-steps{padding-left:22px;margin:25px 0;font-size:13px;color:#7b886c;line-height:1.8}.token-steps li{padding-left:7px;margin-bottom:15px}.token-steps b{color:#354f31}.token-steps a{color:#688449;text-underline-offset:3px}.token-steps code{background:#eaf0dd;padding:2px 5px;border-radius:4px;font-size:11px}.token-steps pre{padding:15px;background:#263b2c;color:#d8ebbd;border-radius:8px;font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.panorama-setup-dialog{max-width:620px}.candidate-panel.focused{position:fixed;inset:18px;z-index:3000;overflow:auto;box-shadow:0 20px 100px #0d261c66}.candidate-panel.focused .candidate-list{display:none}.candidate-panel.focused .candidate-preview{height:calc(100dvh - 270px);min-height:220px}.candidate-panel.focused .candidate-caption{margin:8px 0}.candidate-panel.focused #hide-button{max-width:420px;margin-left:auto}.candidate-panel.focused .eyebrow{margin-bottom:7px}.candidate-panel.focused #hide-title{margin-bottom:12px}
@media(max-width:760px){.panorama-setup-banner{flex-wrap:wrap;padding:16px;gap:11px}.panorama-setup-banner>div{min-width:190px}.panorama-setup-banner .primary{width:100%}.candidate-panel.focused{inset:9px;padding:14px}.candidate-panel.focused .candidate-preview{height:calc(100dvh - 300px)}.token-steps{font-size:12px}}
