.ttt-game{--ttt-ink:#263c36;--ttt-green:#315b49;--ttt-paper:#f7f4e9;position:relative;isolation:isolate;overflow:hidden;max-width:1500px;margin:24px auto;min-height:680px;background:#e9e8df;color:var(--ttt-ink);font:17px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;border-radius:22px;box-shadow:0 20px 60px #12261a18}.ttt-game *{box-sizing:border-box}.ttt-game button{font:inherit;cursor:pointer}.ttt-game button:disabled{cursor:default;opacity:.55}.ttt-game button:focus-visible,.ttt-game summary:focus-visible{outline:3px solid #dc9c29;outline-offset:4px}.ttt-game .ttt-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 36px;background:#f7f4e9ee;border-bottom:1px solid #263c3620}.ttt-game .ttt-header small{font-size:10px;letter-spacing:2px}.ttt-game h2{font-family:Georgia,serif;font-weight:500;line-height:1.2;font-size:clamp(24px,4vw,37px);margin:5px 0}.ttt-game .ttt-header-actions{display:flex;align-items:center;gap:18px}.ttt-game .ttt-wallet{font-size:14px;white-space:nowrap}.ttt-game .ttt-button{display:inline-block;background:var(--ttt-green);color:white;border:1px solid var(--ttt-green);padding:12px 25px;border-radius:8px;min-height:48px;font-weight:600;margin:8px 0}.ttt-game .ttt-button:disabled{background:#d1d9d0;border-color:#aab9ac;color:#334d3a}.ttt-game .ttt-text-button{padding:8px 4px;border:0;background:none;color:var(--ttt-ink);text-decoration:underline}.ttt-game .ttt-lobby{position:relative;max-width:880px;padding:38px;margin:0 auto}.ttt-game h3{font-family:Georgia,serif;font-size:clamp(26px,4vw,38px);line-height:1.25;font-weight:500;margin:10px 0 16px}.ttt-game .ttt-level-card{display:block;text-align:left;width:100%;border:1px solid #acbaae;border-radius:12px;background:#fffdf6e8;padding:22px 26px;color:var(--ttt-ink);margin:16px 0}.ttt-game .ttt-level-card strong{display:block;font-family:Georgia,serif;font-size:25px}.ttt-game .ttt-level-card small{font-size:10px;letter-spacing:2px}.ttt-game .ttt-level-card span{font-size:14px}.ttt-game .ttt-storage{font-size:12px;color:#5c695f;margin-top:30px}.ttt-game .ttt-backdrop{position:absolute;inset:0;z-index:-2;background:#e9e8df}.ttt-game .ttt-backdrop img{width:100%;height:100%;object-fit:cover;opacity:.58}.ttt-game .ttt-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(#f7f4e955,#f7f4e900 50%,#f7f4e9b0)}.ttt-game .ttt-stage{position:relative;text-align:center;padding:28px 32px 40px;min-height:440px}.ttt-game .ttt-stage>small{font-size:11px;letter-spacing:2px;background:#f7f4e9e8;border-radius:20px;padding:5px 12px}.ttt-game .ttt-stage>h3,.ttt-game .ttt-stage>p{text-shadow:0 1px 10px #fff,0 1px 12px #fff}.ttt-game .ttt-people{display:flex;justify-content:center;align-items:stretch;gap:16px;flex-wrap:wrap;max-width:1200px;margin:30px auto 10px}.ttt-game .ttt-person{display:flex;flex-direction:column;align-items:center;flex:0 1 180px;min-width:120px;padding:0 0 12px;background:#fffdf5ee;color:var(--ttt-ink);border:2px solid transparent;border-radius:14px;overflow:hidden;box-shadow:0 7px 22px #12261a22;transition:transform .15s}.ttt-game button.ttt-person:hover{transform:translateY(-5px)}.ttt-game .ttt-person:has(.ttt-selected){border-color:var(--ttt-green)}.ttt-game .ttt-portrait{width:100%;height:230px;object-fit:cover;object-position:center 25%;margin-bottom:12px}.ttt-game .ttt-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#b6c6bb,#edf0dd);font:80px Georgia,serif;color:#315b49}.ttt-game .ttt-person strong{font-size:19px}.ttt-game .ttt-talk,.ttt-game .ttt-selected{font-size:12px}.ttt-game .ttt-selected{color:#215b39;font-weight:700}.ttt-game .ttt-goal{position:relative;display:flex;align-items:center;gap:24px;padding:22px 36px;background:#f7f4e9f2;border-top:1px solid #263c3620}.ttt-game .ttt-objective{flex:1;text-align:left}.ttt-game .ttt-objective strong{font-size:15px}.ttt-game .ttt-objective p{font-size:14px;margin:4px 0;max-width:820px}.ttt-game .ttt-continue{flex:0 0 auto}.ttt-game .ttt-hint-button{background:#fff9dc;border:1px solid #b8a46d;padding:12px;border-radius:10px;font-size:13px;min-width:100px}.ttt-game .ttt-dialog{border:1px solid #b2baac;border-radius:18px;padding:28px;max-width:720px;width:calc(100% - 32px);max-height:85dvh;background:#fffdf5;color:var(--ttt-ink);box-shadow:0 25px 90px #0005;font:17px/1.65 system-ui,sans-serif}.ttt-game .ttt-dialog::backdrop{background:#172a245f;backdrop-filter:blur(3px)}.ttt-game .ttt-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.ttt-game .ttt-dialog-head h3{font-size:30px;margin:0}.ttt-game .ttt-dialogue{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;font-size:18px}.ttt-game .ttt-evidence{display:block;width:100%;max-height:350px;object-fit:contain;background:#ebe9de;border-radius:10px;margin:20px 0}.ttt-game .ttt-outcome{padding-top:80px;min-height:520px}.ttt-game .ttt-outcome>p{max-width:620px;margin:25px auto;font-size:20px;white-space:pre-wrap}.ttt-game .ttt-reward{display:block}.ttt-game .ttt-notice{position:relative;padding:8px 24px;background:#fff0bc;font-size:12px;margin:0}.ttt-game .ttt-missing{display:flex;padding:25px;background:#e4e9df;align-items:center;justify-content:center}.ttt-game .ttt-final-person{cursor:default}.ttt-game .ttt-final{margin-bottom:25px}@media(max-width:700px){.ttt-game{border-radius:0;margin:0;min-height:100dvh;font-size:15px}.ttt-game .ttt-header{padding:16px;gap:8px;align-items:flex-start}.ttt-game .ttt-header-actions{flex-direction:column;gap:0;align-items:flex-end}.ttt-game .ttt-header small{font-size:8px;letter-spacing:1px}.ttt-game .ttt-stage{padding:24px 12px}.ttt-game .ttt-people{gap:10px}.ttt-game .ttt-person{flex-basis:calc(33.333% - 10px);min-width:94px}.ttt-game .ttt-portrait{height:160px}.ttt-game .ttt-person strong{font-size:16px}.ttt-game .ttt-talk,.ttt-game .ttt-selected{font-size:10px}.ttt-game .ttt-goal{padding:16px;gap:12px;flex-wrap:wrap}.ttt-game .ttt-objective{min-width:180px}.ttt-game .ttt-continue{width:100%;text-align:right}.ttt-game .ttt-lobby{padding:24px 16px}.ttt-game .ttt-dialog{padding:20px}.ttt-game .ttt-final .ttt-person{flex-basis:135px}.ttt-game .ttt-outcome{padding-top:50px}}@media(prefers-reduced-motion:reduce){.ttt-game *{transition:none!important;scroll-behavior:auto!important}}
/* 0.2: the selected traveller stays in the station; clues sit beside them. */
.ttt-game .ttt-meeting-stage{padding:22px 32px 28px}.ttt-game .ttt-scene-heading{text-align:left;margin:0 0 14px}.ttt-game .ttt-scene-heading small{font-size:10px;letter-spacing:1.5px;background:#f7f4e9e8;padding:4px 10px;border-radius:12px}.ttt-game .ttt-scene-heading h3{font-size:30px;margin:8px 0 4px;text-shadow:0 1px 9px #fff}.ttt-game .ttt-scene-heading p{font-size:14px;margin:0;text-shadow:0 1px 8px #fff}.ttt-game .ttt-meeting{display:grid;grid-template-columns:minmax(160px,26%) minmax(0,1fr);gap:28px;max-width:1160px;margin:0 auto;align-items:end}.ttt-game .ttt-focused-character{align-self:end;padding:0 8px}.ttt-game .ttt-focused-character .ttt-person{background:transparent;box-shadow:none;border:0;min-width:0;padding:0 0 10px}.ttt-game .ttt-focused-character .ttt-portrait{height:360px;max-height:48vh;object-fit:contain;object-position:center bottom;margin:0 0 8px}.ttt-game .ttt-focused-character .ttt-person strong{background:#fffdf5e8;border-radius:5px;padding:3px 15px}.ttt-game .ttt-focused-character .ttt-talk,.ttt-game .ttt-focused-character .ttt-selected{background:#fffdf5e8;padding:2px 10px;border-radius:3px}.ttt-game .ttt-meeting-right{min-width:0;display:flex;flex-direction:column;gap:14px}.ttt-game .ttt-people-small{justify-content:flex-end;align-items:flex-start;gap:9px;flex-wrap:wrap;margin:0;min-height:125px;max-width:none}.ttt-game .ttt-people-small .ttt-person{flex:0 0 88px;min-width:0;max-width:105px;box-shadow:0 2px 8px #142b1922;border-radius:8px;padding-bottom:6px}.ttt-game .ttt-people-small .ttt-portrait{height:100px;object-fit:contain;object-position:center bottom;margin-bottom:4px}.ttt-game .ttt-people-small .ttt-person strong{font-size:13px}.ttt-game .ttt-people-small .ttt-talk,.ttt-game .ttt-people-small .ttt-selected{font-size:10px}.ttt-game .ttt-focus-panel{background:#fffdf5f0;border:1px solid #c4cdbd;border-radius:12px;padding:18px 22px;text-align:left;min-width:0;box-shadow:0 5px 15px #182d1812}.ttt-game .ttt-focus-panel:focus{outline:2px solid #aabb9d;outline-offset:2px}.ttt-game .ttt-focus-panel h4{margin:0 0 8px;font:500 21px/1.3 Georgia,serif}.ttt-game .ttt-focus-panel .ttt-dialogue{font-size:15px;line-height:1.55;margin:5px 0 12px}.ttt-game .ttt-focus-panel .ttt-evidence{width:100%;height:205px;max-height:none;object-fit:contain;background:transparent;margin:10px 0;border-radius:0}.ttt-game .ttt-focus-panel .ttt-button{margin:3px 0 0;padding:9px 22px;font-size:14px;min-height:44px}.ttt-game .ttt-selection-feedback{font-size:13px;line-height:1.4;color:#6b3f24;margin:8px 0 0}.ttt-game .ttt-selection-feedback:empty{display:none}.ttt-game .ttt-final .ttt-portrait{object-fit:contain;object-position:center bottom}
@media(max-width:700px){.ttt-game .ttt-meeting-stage{padding:16px 12px 22px}.ttt-game .ttt-scene-heading h3{font-size:25px}.ttt-game .ttt-meeting{grid-template-columns:minmax(95px,29%) minmax(0,1fr);gap:10px;align-items:start}.ttt-game .ttt-meeting-right{display:contents}.ttt-game .ttt-people-small{grid-column:1/-1;grid-row:1;justify-content:center;min-height:0;margin:4px 0 10px}.ttt-game .ttt-people-small .ttt-person{flex-basis:65px;max-width:78px}.ttt-game .ttt-people-small .ttt-portrait{height:76px}.ttt-game .ttt-people-small .ttt-person strong{font-size:12px}.ttt-game .ttt-focused-character{grid-column:1;grid-row:2;padding:0;align-self:start}.ttt-game .ttt-focused-character .ttt-portrait{height:260px;max-height:40vh}.ttt-game .ttt-focused-character .ttt-person strong{font-size:15px;padding:3px 6px}.ttt-game .ttt-focus-panel{grid-column:2;grid-row:2;padding:13px 12px}.ttt-game .ttt-focus-panel h4{font-size:18px}.ttt-game .ttt-focus-panel .ttt-dialogue{font-size:14px}.ttt-game .ttt-focus-panel .ttt-evidence{height:150px}.ttt-game .ttt-focused-character .ttt-talk,.ttt-game .ttt-focused-character .ttt-selected{font-size:10px}}

/* 0.2.2: start with the whole group, focus on demand, return by background/touch/keyboard. */
.ttt-game .ttt-overview{min-height:340px;align-items:flex-end;gap:16px;margin:35px auto 20px}
.ttt-game .ttt-overview .ttt-person{flex:0 1 190px;min-width:120px;max-width:210px;background:#fffdf5dc}
.ttt-game .ttt-overview .ttt-portrait{height:280px;object-fit:contain;object-position:center bottom}
.ttt-game .ttt-focus-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.ttt-game .ttt-overview-button{font-size:13px;min-height:44px;padding:8px 4px;text-align:left;flex-shrink:0}
.ttt-game .ttt-header-actions .ttt-text-button{min-height:44px}
.ttt-game .ttt-person strong{max-width:100%;overflow-wrap:anywhere}
@media(min-width:701px) and (max-width:1100px){
 .ttt-game .ttt-overview .ttt-person{flex-basis:calc(20% - 13px);min-width:0}
 .ttt-game .ttt-overview .ttt-portrait{height:230px}
 .ttt-game .ttt-overview .ttt-person strong{font-size:16px}
 .ttt-game .ttt-goal{flex-wrap:wrap}
 .ttt-game .ttt-continue{margin-left:auto}
}
@media(max-width:700px){
 .ttt-game .ttt-overview{min-height:0;gap:12px;margin:22px auto 10px}
 .ttt-game .ttt-overview .ttt-person{flex-basis:calc(50% - 6px);min-width:0;max-width:190px}
 .ttt-game .ttt-overview .ttt-portrait{height:210px}
 .ttt-game .ttt-people-small{justify-content:flex-end}
 .ttt-game .ttt-focus-heading{gap:4px}
 .ttt-game .ttt-overview-button{font-size:12px}
 .ttt-game .ttt-dialog-head{flex-wrap:wrap}
}
@media(max-width:380px){
 .ttt-game .ttt-overview .ttt-portrait{height:180px}
 .ttt-game .ttt-meeting{grid-template-columns:minmax(80px,27%) minmax(0,1fr);gap:8px}
 .ttt-game .ttt-focus-panel{padding:10px}
 .ttt-game .ttt-focused-character .ttt-person strong{font-size:13px}
 .ttt-game .ttt-people-small .ttt-person{flex-basis:55px}
 .ttt-game .ttt-people-small .ttt-portrait{height:65px}
}

/* 0.2.3: one title and a clear, visual entrance to each level. */
.ttt-duplicate-page-title[hidden]{display:none!important}
.ttt-game.ttt-is-lobby{min-height:0}
.ttt-game .ttt-lobby{max-width:1000px;padding:26px 32px}
.ttt-game .ttt-level-card{display:grid;grid-template-columns:minmax(150px,35%) minmax(0,1fr);gap:0;padding:0;overflow:hidden;margin:0 0 18px;transition:border-color .15s,box-shadow .15s}
.ttt-game .ttt-level-card:last-child{margin-bottom:0}
.ttt-game .ttt-level-card:not(:disabled):hover{border-color:var(--ttt-green);box-shadow:0 5px 20px #263c3620}
.ttt-game .ttt-level-card.ttt-no-cover{grid-template-columns:1fr}
.ttt-game .ttt-level-cover{display:block;width:100%;height:100%;min-height:190px;max-height:270px;object-fit:cover}
.ttt-game .ttt-level-copy{padding:24px;align-self:center;min-width:0}
.ttt-game .ttt-level-copy strong{margin:5px 0 16px;line-height:1.25;overflow-wrap:anywhere}
.ttt-game .ttt-level-card .ttt-level-start{display:inline-flex;align-items:center;min-height:48px;padding:10px 22px;border-radius:8px;background:var(--ttt-green);color:white;font:600 16px/1.4 system-ui,sans-serif}
.ttt-game .ttt-level-card:disabled .ttt-level-start{background:#d1d9d0;color:#334d3a}
.ttt-game .ttt-resume{margin:0 0 20px}
@media(max-width:700px){.ttt-game .ttt-lobby{padding:18px 16px}.ttt-game .ttt-level-card{grid-template-columns:1fr}.ttt-game .ttt-level-cover{height:160px;min-height:0}.ttt-game .ttt-level-copy{padding:20px}.ttt-game .ttt-level-card .ttt-level-start{width:100%;justify-content:center}}

/* 0.2.4: opaque high-contrast scene heading, legible over any station artwork. */
.ttt-game .ttt-scene-heading{display:block;width:fit-content;max-width:100%;background:#fffdf5;color:#21372e;border:1px solid #c4cdbd;border-radius:12px;padding:14px 18px;box-shadow:0 3px 12px #172a2418}
.ttt-game .ttt-scene-heading small{display:block;background:transparent;color:#3b5046;padding:0;border-radius:0;line-height:1.5}
.ttt-game .ttt-scene-heading h3,.ttt-game .ttt-scene-heading p{color:#21372e;text-shadow:none;overflow-wrap:anywhere}
@media(max-width:700px){.ttt-game .ttt-scene-heading{padding:12px 14px}.ttt-game .ttt-scene-heading h3{font-size:24px}.ttt-game .ttt-scene-heading p{font-size:14px;line-height:1.5}}

/* 0.2.5: brief game instructions above the levels, only on the start screen. */
.ttt-game .ttt-game-intro{max-width:78ch;font-size:15px;line-height:1.65;color:var(--ttt-ink);margin:0 0 24px;text-align:left;overflow-wrap:anywhere}

/* 0.3: visible scene progression, a fixed place for hints, and theme tabs. */
.ttt-game .ttt-scene-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.ttt-game .ttt-scene-top .ttt-scene-heading{margin:0;flex:1;max-width:760px}
.ttt-game .ttt-scene-step{display:inline-block;font:700 clamp(18px,2vw,23px)/1.35 system-ui,sans-serif;padding:6px 12px;border-radius:7px;color:white;background:var(--ttt-green);margin-bottom:4px}
.ttt-game .ttt-scene-heading:focus{outline:3px solid #dc9c29;outline-offset:3px}
.ttt-game .ttt-scene-top .ttt-hint{flex:0 1 auto}
.ttt-game .ttt-hint-button{min-height:48px;min-width:140px;background:#fff5cd;color:#374632;border:2px solid #a7893c;box-shadow:0 2px 6px #1a28151a;font-weight:650}
.ttt-game .ttt-hint-button:disabled{opacity:1;background:#f7f4e9;color:#59665e;border:1px solid #aab5aa;font-weight:400;box-shadow:none}
.ttt-game .ttt-player-themes{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}
.ttt-game .ttt-theme-tab{display:flex;align-items:center;gap:10px;border:1px solid #aabbab;border-radius:9px;padding:9px 16px;background:#fffdf5;color:var(--ttt-ink);min-height:48px;font-weight:600}
.ttt-game .ttt-theme-tab[aria-pressed=true]{background:var(--ttt-green);color:#fff;border-color:var(--ttt-green)}
.ttt-game .ttt-theme-thumb{width:48px;height:38px;object-fit:cover;border-radius:5px}
@media(max-width:700px){.ttt-game .ttt-scene-top{flex-wrap:wrap;gap:10px}.ttt-game .ttt-scene-top .ttt-scene-heading{flex-basis:100%}.ttt-game .ttt-scene-top .ttt-hint{margin-left:auto}.ttt-game .ttt-scene-step{font-size:18px}.ttt-game .ttt-theme-tab{padding:8px 12px}.ttt-game .ttt-theme-thumb{width:38px;height:32px}}

.ttt-game a.ttt-level-card{color:var(--ttt-ink);text-decoration:none}.ttt-game .ttt-theme-title{margin:15px 0}.ttt-game .ttt-theme-grid{display:grid;grid-template-columns:1fr;gap:18px}.ttt-game a.ttt-level-card:focus-visible{outline:3px solid #dc9c29;outline-offset:3px}
