:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#12231f;background:#eef3ee;letter-spacing:0}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}button,input,select,a{font:inherit;max-width:100%}button{cursor:pointer}.appShell{min-height:100vh;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.topBar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto 12px;max-width:1180px}.brand{align-items:center;background:transparent;border:0;color:#15352f;display:flex;gap:10px;padding:0;text-align:left}.brand>span:last-child{min-width:0}.brandMark{align-items:center;background:#17453b;border-radius:8px;color:#fff;display:inline-flex;height:38px;justify-content:center;width:38px}.brand strong,.brand small{display:block}.brand small{color:#58706a;font-size:12px}.topBar nav{background:#fff;border:1px solid #d5dfda;border-radius:12px;display:flex;gap:2px;padding:4px}.topBar nav button,.repoLink{align-items:center;background:transparent;border:0;border-radius:9px;color:#4b625c;display:inline-flex;gap:5px;justify-content:center;min-height:34px;padding:0 12px;text-decoration:none}.topBar nav button.active{background:#17453b;color:#fff}.repoLink{border-left:1px solid #e1e9e5;border-radius:0 9px 9px 0;color:#17453b}.banner{background:#fff8db;border:1px solid #ead178;border-radius:10px;color:#6f5608;margin:8px auto;max-width:1180px;padding:10px 12px}.errorBanner,.inlineError{background:#fee2e2;border-color:#fecaca;color:#991b1b}.contentGrid,.creatorLayout,.adminLayout{display:grid;gap:14px;margin:0 auto;max-width:1180px}.contentGrid{grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr)}.creatorLayout{grid-template-columns:380px minmax(0,1fr)}.adminLayout{grid-template-columns:repeat(3,minmax(0,1fr))}.panel,.challengeCard{background:#ffffffe6;border:1px solid #d5dfda;border-radius:8px;box-shadow:0 10px 30px #142e2714}.heroPanel{min-height:340px;padding:34px}.heroPanel h1,.formPanel h1,.adminHero h1{font-size:clamp(30px,5vw,56px);line-height:1.02;margin:12px 0;max-width:720px}.formPanel h1{font-size:clamp(28px,4vw,44px)}.heroPanel p{color:#536b65;font-size:17px;line-height:1.65;max-width:620px}.eyebrow{color:#1b806d;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.heroActions,.dockActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.primaryButton,.secondaryButton,.iconButton{align-items:center;border-radius:10px;display:inline-flex;font-weight:750;gap:8px;justify-content:center;min-height:42px;text-align:center}.primaryButton{background:#17453b;border:1px solid #17453b;color:#fff;padding:0 16px}.secondaryButton,.iconButton{background:#fff;border:1px solid #cbd8d2;color:#17453b;padding:0 14px}.primaryButton:disabled,.secondaryButton:disabled{cursor:not-allowed;opacity:.45}.challengeList{display:grid;gap:10px}.challengeCard{color:inherit;display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:10px;padding:18px;position:relative;text-align:left}.challengeCardMain{background:transparent;border:0;color:inherit;min-width:0;padding:0;text-align:left}.cardShareButton{align-items:center;align-self:start;background:#f8fbf9;border:1px solid #d8e3de;border-radius:8px;color:#17453b;display:inline-flex;height:38px;justify-content:center;padding:0;width:38px}.challengeCard h2{margin:10px 0 4px;overflow-wrap:anywhere}.challengeCard p,.challengeCard footer{color:#60736d}.challengeCard footer{display:flex;justify-content:space-between;margin-top:10px}.inlineNotice{background:#edf7f3;border:1px solid #c9e7dd;border-radius:8px;color:#17453b;font-size:13px;padding:9px 10px}.shareFallbackText{background:#fff;border:1px solid #d8e3de;border-radius:8px;color:#173f36;font-family:inherit;font-size:13px;line-height:1.55;margin:0;overflow-wrap:anywhere;padding:10px;-webkit-user-select:text;user-select:text;white-space:pre-wrap}.progressLine{background:#dbe4df;border-radius:999px;height:8px;overflow:hidden}.progressLine span{background:#20b486;display:block;height:100%}.emptyPanel{align-items:center;color:#5c716b;display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:220px}.formPanel{padding:22px}.formPanel label{color:#405650;display:grid;font-size:13px;font-weight:800;gap:8px;margin:14px 0}.formPanel input,.formPanel select{background:#f8fbf9;border:1px solid #cdd9d4;border-radius:10px;color:#12231f;min-height:42px;padding:0 12px;width:100%}.placePicker{display:grid;gap:10px;margin:14px 0}.placePicker label{margin:0}.placeActions{display:grid;gap:8px;grid-template-columns:1fr 1fr}.placeActions .secondaryButton{min-width:0}.placeResults{border:1px solid #d5dfda;border-radius:8px;display:grid;max-height:238px;overflow:auto}.placeResults button{background:#fff;border:0;border-bottom:1px solid #edf2ef;color:#183a33;display:grid;gap:4px;padding:10px 12px;text-align:left}.placeResults strong,.selectedPlace strong,.hintBox span{overflow-wrap:anywhere}.placeResults button:last-child{border-bottom:0}.placeResults button.selected{background:#e4f6ef}.placeResults span,.selectedPlace span{color:#647871;font-size:12px;line-height:1.45}.selectedPlace{background:#f8fbf9;border:1px solid #cdd9d4;border-radius:8px;display:grid;gap:4px;padding:10px 12px}.hintBox{background:#edf7f3;border:1px solid #c9e7dd;border-radius:10px;color:#31564d;display:grid;gap:5px;margin:16px 0;padding:12px}.mapSurface{background:linear-gradient(120deg,#17453b1f,#f0b5472e),#dce8e2;border:1px solid #c8d6d0;border-radius:8px;min-height:420px;overflow:hidden;position:relative}.creatorMap,.playMap{min-height:calc(100vh - 160px)}.amapContainer{height:100%;min-height:inherit;width:100%}.mockMap{padding:18px 12px}.mockGrid{display:grid;gap:3px;height:100%;min-height:360px;place-content:center;transform-origin:center;transition:transform .16s ease;width:100%}.hex{aspect-ratio:1.1;background:#d6e2dcdb;border:1px solid rgba(27,63,54,.48);clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);min-width:0;transition:.15s ease}.hexUnlocked{background:#f59e0b;box-shadow:0 0 12px #f59e0b6b}.hexMine{background:#f59e0b;box-shadow:0 0 14px #f59e0b94}.hexCurrent{border-color:#2563eb;box-shadow:0 0 0 2px #2563ebbf}.mockEmpty{align-items:center;color:#34534b;display:flex;flex-direction:column;gap:8px}.mockPin{background:#ef6f4e;border:4px solid white;border-radius:999px;box-shadow:0 8px 24px #50281240;height:28px;width:28px}.mapNotice{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd1;border:1px solid rgba(203,216,210,.9);border-radius:999px;bottom:12px;color:#3f5e56;font-size:12px;left:12px;max-width:calc(100% - 24px);padding:8px 11px;position:absolute}.mapZoomControls{background:#ffffff9e;border:1px solid rgba(203,216,210,.58);border-radius:10px;box-shadow:0 5px 16px #142e2714;display:grid;overflow:hidden;position:absolute;right:10px;top:10px;z-index:3}.mapZoomControls button{align-items:center;background:transparent;border:0;color:#173f36d1;display:inline-flex;height:36px;justify-content:center;padding:0;width:36px}.mapZoomControls button+button{border-top:1px solid rgba(220,230,225,.7)}.mapZoomControls button:active{background:#e8f3ef}.challengeShell{background:#dce7df;min-height:100svh;padding:0}.challengeFatal{background:#fee2e2;color:#991b1b;left:12px;padding:10px 12px;position:fixed;right:12px;top:12px;z-index:20}.challengeLayout{height:100svh;margin:0;max-width:none;overflow:hidden;position:relative}.playStage{background:#dce7df;height:100%;overflow:hidden;position:relative;width:100%}.playStage .playMap{border:0;border-radius:0;height:100%;min-height:100%;width:100%}.playStage .mapZoomControls{right:12px;top:calc(58px + env(safe-area-inset-top))}.playTopBar{align-items:center;display:grid;gap:6px;grid-template-columns:34px minmax(0,1fr) auto;left:10px;position:absolute;right:10px;top:calc(10px + env(safe-area-inset-top));z-index:7}.mapIconButton{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffb8;border:1px solid rgba(185,202,194,.72);border-radius:9px;box-shadow:0 5px 16px #1730291a;color:#173f36;display:inline-flex;height:36px;justify-content:center;padding:0;width:36px}.mapIconButton.trackingOff{background:#17453be0;border-color:#17453bc7;color:#fff}.mapIconButton.trackingOn{background:#f5a524d1;border-color:#d68700a6;color:#2d2105}.mapIconButton.activeInfo{background:#ffffffeb;border-color:#17453b52}.playTitle{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffbd;border:1px solid rgba(189,204,197,.72);border-radius:9px;box-shadow:0 5px 16px #1730291a;display:grid;min-width:0;padding:7px 10px}.playTitle strong{color:#112f28;font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playActions{display:flex;gap:4px}.playStatusChip,.playProgressPill{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffad;border:1px solid rgba(189,204,197,.66);border-radius:999px;box-shadow:0 5px 16px #17302917;color:#264b43;display:inline-flex;gap:6px;position:absolute;z-index:6}.playStatusChip{bottom:calc(20px + env(safe-area-inset-bottom));font-size:12px;left:12px;max-width:calc(100% - 142px);padding:8px 10px}.playStatusChip.warning{background:#fff8dbf2;border-color:#ead178;border-radius:10px;max-height:118px;max-width:calc(100% - 24px);overflow:auto;color:#6f5608}.playStatusChip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playStatusChip.warning span{line-height:1.45;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.playProgressPill{bottom:calc(20px + env(safe-area-inset-bottom));padding:7px 11px;right:12px}.playProgressPill strong{color:#0f5e4d;font-size:18px}.playShareNotice{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border:1px solid rgba(189,204,197,.95);border-radius:10px;box-shadow:0 12px 32px #122a232e;color:#173f36;left:12px;max-width:calc(100% - 24px);padding:10px;position:absolute;right:12px;top:calc(58px + env(safe-area-inset-top));z-index:8}.playShareNoticeHeader{align-items:center;display:flex;gap:8px;justify-content:space-between}.playShareNoticeHeader span{font-size:13px;font-weight:750}.playShareNoticeHeader .mapIconButton{box-shadow:none;flex:0 0 auto;height:30px;width:30px}.playShareNotice pre{background:#f7faf8;border:1px solid #dce6e1;border-radius:8px;font-family:inherit;font-size:12px;line-height:1.55;margin:8px 0 0;max-height:140px;overflow:auto;overflow-wrap:anywhere;padding:9px;-webkit-user-select:text;user-select:text;white-space:pre-wrap}.playSheet{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border:1px solid rgba(189,204,197,.95);border-radius:14px 14px 0 0;bottom:0;box-shadow:0 -18px 44px #122a2338;left:0;max-height:min(46svh,380px);overflow:auto;padding:14px 14px calc(16px + env(safe-area-inset-bottom));position:absolute;right:0;z-index:9}.playSheet header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:12px}.playSheet header>div{display:grid;gap:3px}.playSheet header span{color:#61746e;font-size:12px}.playSheet header strong{color:#173f36;font-size:18px}.playSheetTabs{background:#eef4f1;border:1px solid #d9e4df;border-radius:10px;display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px;padding:4px}.playSheetTabs button{align-items:center;background:transparent;border:0;border-radius:8px;color:#48615a;display:inline-flex;gap:5px;justify-content:center;min-height:36px;padding:0 8px}.playSheetTabs button.selected{background:#fff;box-shadow:0 4px 12px #17302914;color:#17453b}.sheetStats{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.sheetStats div{background:#f7faf8;border:1px solid #dce6e1;border-radius:8px;padding:12px}.sheetStats strong{color:#142f29;display:block;font-size:22px}.sheetStats span{color:#657972;font-size:12px}.helpBox{background:#f7faf8;border:1px solid #dce6e1;border-radius:8px;color:#526a63;display:grid;font-size:12px;gap:7px;line-height:1.5;margin-top:10px;padding:12px}.helpBox strong{color:#173f36;font-size:13px}.helpBox em{background:#fff8db;border:1px solid #ead178;border-radius:7px;color:#6f5608;font-style:normal;padding:8px}.helpBox small{color:#6f827c;font-size:11px}.desktopSimulatorLayout{align-items:start;background:#e8eee9;display:grid;gap:18px;grid-template-columns:minmax(360px,430px) minmax(280px,360px);justify-content:center;min-height:100svh;overflow:auto;padding:18px}.phonePreview{background:#101c19;border:1px solid #0b1512;border-radius:32px;box-shadow:0 24px 70px #0c1b173d;overflow:hidden;padding:10px}.phoneChrome{align-items:center;color:#d7e6e0;display:flex;gap:10px;height:28px;justify-content:center;padding-bottom:8px}.phoneChrome span{background:#243933;border-radius:999px;height:6px;width:48px}.phoneChrome strong{font-size:12px;font-weight:750}.phoneScreen{background:#eef3ee;border-radius:22px;height:min(760px,calc(100svh - 74px));overflow:hidden}.simulatorPanel{display:grid;gap:14px;padding:18px;position:sticky;top:12px}.simulatorTitle{align-items:flex-start;display:flex;gap:10px}.simulatorTitle>div{display:grid;gap:3px}.simulatorTitle span,.simulatorTips,.simulatorStats span,.simulatorStatus{color:#61746e;font-size:13px;line-height:1.45}.simulatorStats{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.simulatorStats div{background:#f8fbf9;border:1px solid #d8e3de;border-radius:8px;padding:10px}.simulatorStats strong{display:block;font-size:20px}.simulatorStatus{background:#edf7f3;border:1px solid #c9e7dd;border-radius:8px;display:grid;gap:6px;padding:10px}.simulatorStatus code{overflow-wrap:anywhere}.simStepField{align-items:center;color:#405650;display:flex;font-size:13px;font-weight:800;gap:10px;justify-content:space-between}.simStepField span{align-items:center;display:inline-flex;gap:6px}.simStepField input{background:#f8fbf9;border:1px solid #cdd9d4;border-radius:8px;color:#12231f;height:38px;padding:0 8px;min-width:0;width:96px}.simPositionReadout{background:#f8fbf9;border:1px solid #d8e3de;border-radius:8px;display:grid;gap:4px;padding:10px}.simPositionReadout span{color:#61746e;font-size:12px}.simPositionReadout strong{color:#173f36;font-size:13px;overflow-wrap:anywhere}.dpad{display:grid;gap:8px;grid-template-columns:repeat(3,54px);justify-content:center}.dpad .iconButton{aspect-ratio:1;min-height:54px;padding:0}.dpad .iconButton:first-child,.dpad .iconButton:last-child{grid-column:2}.dpadHome{background:#17453b;color:#fff}.simulatorActions{display:grid;gap:8px;grid-template-columns:1fr 1fr}.simulatorTips{background:#fff8db;border:1px solid #ead178;border-radius:8px;color:#6f5608;display:grid;gap:6px;margin:0;padding:10px}.statBlock{background:#fff;border:1px solid #d5dfda;border-radius:8px;padding:12px}.statBlock strong{display:block;font-size:24px}.statBlock span{color:#62756f;font-size:12px}.leaderboardPanel h2,.panel h2{align-items:center;display:flex;gap:8px;margin:0 0 12px}.leaderboardPanel p{color:#61746e;margin:0}.leaderRow,.adminChallenge{align-items:center;border-top:1px solid #edf2ef;display:grid;gap:10px;grid-template-columns:34px 1fr auto;padding:10px 0}.leaderRow em{color:#1e7a64;font-style:normal;font-weight:800}.mineRow{color:#9a5c00}.adminHero{padding:20px}.adminStats{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.adminChallenge{grid-template-columns:1fr}.adminChallenge span{color:#647871}.adminWidePanel{grid-column:1 / -1}code{background:#ffffffb8;border:1px solid #e1e8e5;border-radius:5px;padding:1px 5px}@media(max-width:860px){.appShell{padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.challengeShell{padding:0}.topBar{align-items:center;gap:8px;margin-bottom:8px}.topBar nav{flex:0 0 auto;justify-content:space-between}.topBar nav button,.repoLink{min-height:32px;padding:0 10px}.repoLink span{display:none}.brand{flex:1 1 auto}.brand small{display:none}.brandMark{height:34px;width:34px}.banner{border-radius:8px;font-size:13px;margin:6px auto;padding:8px 10px}.contentGrid,.creatorLayout,.adminLayout{grid-template-columns:1fr}.heroPanel{min-height:auto;padding:18px}.heroPanel h1,.formPanel h1,.adminHero h1{font-size:28px;line-height:1.08}.heroPanel p{font-size:15px}.formPanel{padding:16px}.creatorLayout .formPanel{order:2}.creatorMap{min-height:min(58vh,520px)}.creatorMap{order:1;min-height:36vh}.statBlock{padding:9px}.statBlock strong{font-size:21px}.placeActions{grid-template-columns:1fr}}@media(max-width:390px){.topBar nav button,.repoLink{padding:0 8px}.primaryButton,.secondaryButton{font-size:14px}.playActions{gap:4px}.playStatusChip{max-width:calc(100% - 126px)}.playProgressPill{padding:7px 8px}}
