.tge-app{max-width:620px;margin:1.5rem auto;padding:clamp(18px,5vw,36px);border:1px solid #d8dee5;border-radius:18px;background:#fff;color:#182334;font:inherit;box-shadow:0 8px 30px rgba(0,0,0,.04)}
.tge-app h2{font-size:clamp(1.5rem,5vw,2rem);line-height:1.25}.tge-app section{margin:22px 0;padding:18px;border:1px solid #e4e8ee;border-radius:12px}.tge-app h3{margin:0 0 14px}.tge-app label{display:block;font-weight:600}.tge-app input{display:block;box-sizing:border-box;width:100%;min-height:48px;margin:8px 0 14px;padding:12px;border:1px solid #8b96a7;border-radius:9px;font:inherit}.tge-app button{min-height:48px;width:100%;padding:12px 18px;background:#153d59;color:#fff;border:0;border-radius:9px;font:inherit;font-weight:700;cursor:pointer}.tge-app button:disabled{opacity:.55;cursor:wait}.tge-app button:focus-visible,.tge-app input:focus-visible{outline:3px solid #ffad42;outline-offset:2px}.tge-app .tge-code{padding:18px;border-radius:12px;background:#edf5fa;overflow-wrap:anywhere}.tge-app .tge-code strong{font-size:clamp(1.15rem,5vw,1.7rem);letter-spacing:.08em}.tge-app .tge-error{color:#a21b27;font-weight:600}.tge-app [hidden]{display:none}
.tge-app .tge-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.tge-app .tge-stats span{display:flex;flex-direction:column;background:#edf5fa;border-radius:10px;padding:12px 7px;text-align:center;overflow:hidden}.tge-app .tge-stats small{font-size:12px}.tge-app .tge-stats strong{font-size:clamp(13px,3.5vw,20px);font-variant-numeric:tabular-nums}.tge-app .tge-secondary{background:#e6edf2;color:#17374b;margin-top:12px}.tge-app .tge-danger{background:#803539;margin-top:12px}.tge-app .tge-option{display:block;padding:12px;border:1px solid #d8dee5;border-radius:9px;margin:8px 0;font-weight:400}.tge-app .tge-option input{width:auto;min-height:auto;display:inline;margin:0 8px 0 0}.tge-app .tge-image{max-width:100%;height:auto;border-radius:12px}.tge-app .tge-description{margin:16px 0;overflow-wrap:anywhere}.tge-app .tge-hint{background:#fff5db;border-radius:9px;padding:14px}.tge-app fieldset{border:0;padding:0;margin:0 0 12px}.tge-app legend{font-weight:700}

/* Version 0.5: mobile-first game interface */
.tge-app{--tge-primary:#153d59;--tge-muted:#52657a;--tge-surface:#edf5fa;box-sizing:border-box;max-width:680px;overflow:hidden}
.tge-app *{box-sizing:border-box}
.tge-app .tge-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:14px}
.tge-app .tge-heading h2{flex-basis:100%;margin:0;overflow-wrap:anywhere}
.tge-app .tge-eyebrow{display:block;color:var(--tge-muted);font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.tge-app .tge-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:var(--tge-surface);font-size:.8rem;font-weight:700}
.tge-app .tge-progress{margin:12px 0 22px}
.tge-app .tge-progress-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.85rem}
.tge-app .tge-progress-track{height:10px;background:#dce6ef;border-radius:999px;overflow:hidden}
.tge-app .tge-progress-track span{display:block;height:100%;background:#237b70;border-radius:999px;transition:width .25s ease}
.tge-app .tge-station{border-top:1px solid #d8dee5;padding-top:20px}
.tge-app .tge-station h3{font-size:clamp(1.3rem,4vw,1.65rem);line-height:1.3;margin:8px 0 16px}
.tge-app .tge-station .tge-description{line-height:1.65}
.tge-app .tge-finish{text-align:center;padding:24px 8px}
.tge-app .tge-finish-icon{font-size:3rem}
.tge-app .tge-option:has(input:checked){border-color:var(--tge-primary);background:var(--tge-surface)}
.tge-app button{touch-action:manipulation}
@media(max-width:480px){.tge-app{margin:0 auto;padding:18px 14px;border-radius:0;border-left:0;border-right:0;box-shadow:none}.tge-app .tge-stats{position:sticky;top:0;z-index:5;background:#fff;padding:8px 0;margin:10px 0}.tge-app .tge-stats span{padding:10px 4px}.tge-app .tge-stats small{font-size:11px}.tge-app button{min-height:52px}}
@media(prefers-reduced-motion:reduce){.tge-app .tge-progress-track span{transition:none}}

.tge-app .tge-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left;margin-top:18px}
.tge-app .tge-result-grid span{display:flex;flex-direction:column;gap:6px;padding:15px;background:#edf5fa;border-radius:12px}
.tge-app .tge-result-grid small{color:#52657a;font-size:.8rem}
.tge-app .tge-result-grid strong{font-size:1.25rem;font-variant-numeric:tabular-nums}

/* v0.7 members, invitation and camera */
.tge-app .tge-members{padding:14px;margin:16px 0;border:1px solid #d9e2eb;border-radius:12px}
.tge-app .tge-members h3{margin:0 0 8px}
.tge-app .tge-members ul{list-style:none;margin:0;padding:0}
.tge-app .tge-members li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e5eaf0;padding:9px 0}
.tge-app .tge-members li span{overflow-wrap:anywhere}
.tge-app .tge-code{display:grid;justify-items:center;gap:10px;padding:16px;background:#f4f8fc;border-radius:12px;margin:16px 0;text-align:center}
.tge-app .tge-code svg{max-width:100%;height:auto;background:white;border:8px solid white;border-radius:8px}
.tge-app video{border-radius:12px;background:#0f172a}
.tge-app .tge-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
