:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#1f2937;background:#f7f9fc;font-size:16px}*{box-sizing:border-box}body{margin:0}header{height:64px;padding:0 28px;border-bottom:1px solid #dde3ed;display:flex;align-items:center;gap:18px;background:#fff}header a{font-weight:700;color:#183e73;text-decoration:none}#identity{margin-left:auto;color:#52647b}main{max-width:1480px;margin:28px auto;padding:0 28px}h1{font-size:27px;letter-spacing:-.5px;margin:12px 0}p{line-height:1.6}#welcome{max-width:680px;margin:64px auto;background:white;padding:32px;border:1px solid #dde3ed;border-radius:12px}label{display:block;margin:24px 0 8px}.row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.row h1{margin-right:auto}input{padding:11px 13px;border:1px solid #bdc8d8;border-radius:6px;font:inherit;min-width:230px}button{font:inherit;padding:11px 17px;background:#214f8c;border:1px solid #214f8c;border-radius:6px;color:white;cursor:pointer}button:hover{filter:brightness(.95)}button:disabled{opacity:.45;cursor:default}.secondary{color:#294260;background:#fff;border-color:#c1ccdb}#message{color:#a13122;white-space:pre-wrap}#tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.game-card{background:white;padding:20px;border:1px solid #dde3ed;border-radius:10px}.game-card h2{font-size:19px;margin:0 0 16px;text-transform:capitalize}.task{border-top:1px solid #edf0f5;padding:12px 0}.task p{font-size:14px;margin:8px 0}.task .row{justify-content:space-between;font-size:13px;color:#53667b}.task button{font-size:13px;padding:6px 12px}#instruction{font-size:18px;white-space:pre-line}details{margin-bottom:14px}summary{cursor:pointer}pre{white-space:pre-wrap;font:inherit;font-size:14px;line-height:1.5;max-height:260px;overflow:auto}#stage{position:relative;margin:18px auto;background:#10131a;overflow:hidden;border:1px solid #c6d0de}#game{display:block;border:0;transform-origin:top left;background:white}#cover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#eef2f8e8;font-size:18px;z-index:1}#cover[hidden]{display:none}#progress{font-variant-numeric:tabular-nums;color:#365876}#uploadStatus,#totals{color:#53667b;font-size:14px}#done{max-width:720px;margin:60px auto;background:white;border:1px solid #dde3ed;border-radius:12px;padding:32px}[hidden]{display:none!important}

#play>.row{flex-wrap:nowrap}#play h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px;margin:6px 0}#play #instruction{margin:10px 0;font-size:17px}#play details{margin-bottom:10px}#progress{min-width:110px;white-space:nowrap}

body[data-screen="play"]{overflow:hidden}
body[data-screen="play"] header{height:44px;padding:0 16px}
body[data-screen="play"] main{max-width:none;height:calc(100dvh - 44px);margin:0;padding:10px 16px;display:flex;flex-direction:column;gap:8px;min-height:0}
body[data-screen="play"] #message{margin:0;max-height:60px;overflow:auto;flex-shrink:0}
body[data-screen="play"] #message:empty{display:none}
#play{flex:1;min-height:0;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;gap:8px}
#play #instruction{margin:0;max-height:min(18vh,120px);overflow:auto;line-height:1.45}
#play details{margin:0;min-height:0}
#play details pre{margin:6px 0 0;max-height:min(18vh,140px)}
#game-space{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
#stage{margin:0;flex-shrink:0}
#play-footer{min-height:44px;justify-content:space-between}
#uploadStatus{min-width:0;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#play-footer button{flex-shrink:0}
