:root{--navy:#123553;--navy2:#0d2b44;--green:#558a49;--cream:#f7f4ed;--ink:#17324d;--line:#c9d1d4;--red:#c94d49;--orange:#d47f38;--yellow:#d5b33e;--blue:#397eaa;--purple:#765694;--shadow:0 8px 28px rgba(22,45,61,.13)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f8f6f0,#eef2f2)}button,select,input{font:inherit}button,a{cursor:pointer}.hero-header{height:140px;display:grid;grid-template-columns:auto 190px 110px 1fr auto;align-items:center;gap:18px;padding:12px 26px;background:linear-gradient(90deg,#f8f5ec,#fff,#edf2f5);border-bottom:1px solid #cbd3d8}.brand{font:800 76px/1 Georgia,serif;color:#0f3458;letter-spacing:-5px}.brand span{color:#548b45}.brand.small{font-size:36px;letter-spacing:-2px}.tagline{font:700 24px/1.25 Georgia,serif}.compass{width:86px;height:86px;border:3px solid #807259;border-radius:50%;display:grid;place-items:center;font-size:52px;color:#6c5b44;background:#efe6d2}.world-words{font-size:13px;letter-spacing:7px;line-height:1.8;color:#203e5a}.motto{font:italic 20px/1.35 Georgia,serif;text-align:right}.setup-grid{display:grid;grid-template-columns:1fr 1.06fr .95fr;gap:16px;padding:16px 24px 12px;min-height:calc(100vh - 190px)}.setup-card{background:rgba(255,255,255,.9);border:1px solid #c7d0d5;border-radius:14px;box-shadow:var(--shadow);overflow:hidden;padding:0 20px 18px}.section-head{margin:0 -20px 16px;background:linear-gradient(180deg,#16466b,#113855);color:white;padding:14px 18px;display:flex;gap:14px;align-items:flex-start}.section-head b{background:#8eb46d;color:#17324d;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;font:800 29px Georgia}.section-head h2{margin:0;font:700 27px Georgia}.section-head p{margin:4px 0 0;color:#e8f0f5;font-size:14px}.setup-card>label{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px;font-weight:700;margin:12px 0}.setup-card select,.setup-card input{padding:9px 10px;border:1px solid #aebdca;border-radius:8px;background:white;color:#14324e}.team-editors{display:grid;gap:8px}.team-editor{display:grid;grid-template-columns:1fr 92px;gap:8px;align-items:center;padding:7px;border:1px solid #cbd5da;border-left:10px solid var(--accent,#3d7db3);border-radius:9px;background:#f7fafb}.team-editor input{width:100%}.token-select{display:flex;align-items:center;gap:5px}.token-select img,.token-palette img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid white;box-shadow:0 0 0 1px #9aa9b3}.token-select select{width:1px;opacity:0;position:absolute}.token-palette{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.token-option{border:2px solid transparent;background:transparent;border-radius:10px;padding:2px}.token-option.selected{border-color:#4c874a;background:#e8f2e3}.choice-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:10px;border:1px solid #cbd4d9;border-radius:10px;background:#fbfcfc}.choice-list label{display:flex;gap:8px;align-items:center;font-size:14px}.choice-list input{width:19px;height:19px}.ready-card .summary{border:1px solid #cbd5db;border-radius:12px;padding:16px;background:#f7fafb;min-height:220px}.summary h3{margin-top:0}.summary dl{display:grid;grid-template-columns:120px 1fr;gap:8px;margin:0}.summary dt{font-weight:700}.summary dd{margin:0}.shuffle-note{background:#eaf1f7;padding:14px;border-radius:10px;line-height:1.4}.start-btn{width:100%;border:0;border-radius:12px;background:linear-gradient(#5c9952,#397a3a);color:white;padding:17px;font:700 30px Georgia;box-shadow:0 4px 0 #2a5f2c}.ready-card blockquote{font:italic 18px/1.4 Georgia;margin:28px 12px}.app-footer{min-height:50px;background:#123553;color:white;padding:12px 24px;display:flex;gap:28px;align-items:center}.app-footer span:last-child{margin-left:auto;font-size:11px;letter-spacing:2px}.game-header{height:58px;background:linear-gradient(#173e5c,#102f48);color:white;display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:6px 16px;gap:20px;box-shadow:0 2px 8px #0002}.game-header .brand{color:white}.game-header .brand span{color:#8eb46d}.game-header nav{display:flex;gap:7px;align-items:center}.game-header a,.game-header nav button{color:white;background:#ffffff14;border:1px solid #ffffff33;border-radius:7px;padding:7px 10px;text-decoration:none}.current-turn{text-align:center;font-weight:700}.board-layout{display:grid;grid-template-columns:125px minmax(500px,1fr) 140px;gap:10px;align-items:center;padding:8px 12px 4px}.control-panel{background:white;border:1px solid #cad2d5;border-radius:11px;padding:10px;text-align:center;box-shadow:var(--shadow)}.control-panel h3{margin:0 0 7px;text-transform:uppercase;font-size:12px;letter-spacing:1px}.die-face{font-size:52px;line-height:1.1;margin:8px}.btn{border:1px solid #afbdc5;border-radius:8px;background:#f8fafb;color:#17324d;padding:8px 12px;font-weight:700}.btn.primary{background:#4f8a4c;color:white;border-color:#3d713c}.btn.secondary{background:#eef1f3}.control-panel .btn{width:100%;margin:3px 0}.small-note{font-size:11px;color:#667985}.board-shell{position:relative;max-height:650px;aspect-ratio:1/1;margin:auto;width:min(74vh,760px);background:#f7f6f1;border:1px solid #c6cdcf;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.board-host,.board-host svg{width:100%;height:100%;display:block}.board-host [data-space-id]{transition:filter .15s,opacity .15s}.board-host [data-space-id].landing{filter:brightness(1.22) drop-shadow(0 0 8px #fff)}.token-layer{position:absolute;inset:0;pointer-events:none}.board-token{position:absolute;width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 1px 4px #0008,0 0 0 1px #17324d;transform:translate(-50%,-50%);transition:left .3s ease,top .3s ease;z-index:5}.game-clock{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;margin:10px}.section-kicker{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin:2px 14px}.team-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:0 12px 8px}.team-card{background:white;border:1px solid #cad2d5;border-radius:9px;padding:5px;min-width:0}.team-card.active{box-shadow:0 0 0 3px #80a86b}.team-card-head{display:flex;gap:5px;align-items:center;font-size:11px;font-weight:800;overflow:hidden}.team-card-head img{width:27px;height:27px;border-radius:50%;object-fit:cover}.team-card-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-card-body{display:grid;grid-template-columns:1fr 35px;gap:3px;align-items:center;font-size:9px}.mini-pie{width:34px;height:34px}.status-ok{color:#2f7c3a}.status-used{color:#9d4e49}.modal{position:fixed;inset:0;background:#0b2234aa;display:grid;place-items:center;z-index:100}.modal[hidden]{display:none}.modal-card{background:white;border-radius:14px;padding:22px;width:min(520px,90vw);box-shadow:0 20px 70px #0006}.route-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.route-color{border:0;border-radius:8px;color:white;font-weight:800;padding:12px;text-shadow:0 1px 2px #0007}.challenge-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;max-width:1200px;margin:14px auto;padding:0 18px}.challenge-main{background:white;border:1px solid #c8d1d4;border-radius:15px;box-shadow:var(--shadow);padding:14px}.challenge-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.question-badge,.grammar-badge{padding:9px 15px;border-radius:999px;background:#173e5c;color:white;font-weight:800}.grammar-badge{background:#edf2ee;color:#31573a;border:1px solid #a7bda9}.challenge-image-wrap{height:min(63vh,580px);display:grid;place-items:center;background:#fafafa;border:1px solid #d3dadd;border-radius:12px;overflow:hidden}.challenge-image-wrap img{max-width:92%;max-height:92%;object-fit:contain}.challenge-controls{background:white;border:1px solid #c8d1d4;border-radius:15px;box-shadow:var(--shadow);padding:14px}.challenge-timer{font-size:44px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums;margin-bottom:14px}.challenge-timer.warning{color:#a13d35}.judge{width:100%;border:0;border-radius:11px;color:white;padding:15px;margin:5px 0;font-weight:800;font-size:18px}.judge.correct{background:#4c8b48}.judge.incorrect{background:#a9514a}.challenge-controls .btn{width:100%;margin:5px 0}.lifeline-display{margin-top:12px;border:2px solid #7b9ab0;border-radius:12px;background:#edf5fa;padding:15px;font-size:18px;text-align:center}.score-key{margin-top:14px;font-size:12px;line-height:1.5;background:#f4f5f4;border-radius:9px;padding:9px}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#102f48;color:white;padding:10px 18px;border-radius:999px;z-index:200;box-shadow:0 5px 18px #0004}.installer{display:grid;place-items:center;background:#eef2f2}.install-card{background:white;border-radius:14px;padding:28px;box-shadow:var(--shadow);max-width:680px}.success{color:#2f7c3a}.error{color:#a13d35;white-space:pre-wrap}.install-card code{background:#eef1f3;padding:2px 5px;border-radius:4px}@media(max-width:1000px){.hero-header{grid-template-columns:auto 1fr auto;height:auto}.hero-header .brand{font-size:54px}.hero-header .world-words,.hero-header .motto{display:none}.setup-grid{grid-template-columns:1fr}.board-layout{grid-template-columns:100px minmax(420px,1fr) 115px}.team-cards{grid-template-columns:repeat(3,1fr)}}
.header-token{width:32px;height:32px;border-radius:50%;object-fit:cover;vertical-align:middle;border:2px solid #fff}
