/* English Quest / fresh prototype UI. Shared by library, workshop and setup. */
@font-face{font-family:Quest;src:url('/assets/fonts/Jersey25-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--bg:#f6f4fa;--surface:#fff;--soft:#eee9f7;--text:#292238;--muted:#746b81;--line:#e3deec;--purple:#6742a2;--purple-hover:#533184;--on-purple:#fff;--gold:#e8be56;--gold-soft:#fff4d3;--gold-ink:#73511b;--success:#247554;--danger:#a9374d;--shadow:0 8px 30px #30224408;--radius:20px}
:root[data-theme=dark]{color-scheme:dark;--bg:#17131f;--surface:#231d2e;--soft:#30263e;--text:#f6f1fc;--muted:#b5a9c6;--line:#3d314e;--purple:#aa85e5;--purple-hover:#bd9bf0;--on-purple:#21132f;--gold:#e8be56;--gold-soft:#3d3020;--gold-ink:#f0ce7a;--success:#8dd9ad;--danger:#ffa2b0;--shadow:0 8px 30px #0002}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}a{color:var(--purple);text-underline-offset:4px}button,a,input,select,textarea{touch-action:manipulation}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 17px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-weight:650;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}button:hover:not(:disabled),.button:hover{background:var(--soft);border-color:var(--purple)}button:active:not(:disabled),.button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}.primary,.play-button{background:var(--purple);border-color:var(--purple);color:var(--on-purple)}.primary:hover:not(:disabled),.button.primary:hover,.play-button:hover{background:var(--purple-hover);border-color:var(--purple-hover)}.gold-button{background:var(--gold);border-color:var(--gold);color:#372615}.quiet{background:transparent}.small{min-height:36px;padding:7px 11px;font-size:14px}.danger,.error{color:var(--danger)}.success,.answer{color:var(--success)}:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--purple);outline-offset:4px}h1[tabindex='-1']:focus,main[tabindex='-1']:focus{outline:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link{position:fixed;top:10px;left:10px;z-index:10000;transform:translateY(-180%);background:var(--surface);padding:12px 20px;border:2px solid var(--purple)}.skip-link:focus{transform:none}
h1,h2,h3{color:var(--text);line-height:1.17;letter-spacing:-.035em;margin:0 0 14px;font-weight:750}h1{font-size:clamp(30px,3.6vw,46px)}h2{font-size:24px}h3{font-size:18px}p{margin:0 0 14px;color:var(--muted)}small,.muted{color:var(--muted);font-size:15px}.eyebrow{font-size:14px;letter-spacing:.15em;text-transform:uppercase;font-weight:750;color:var(--purple);margin:0 0 12px}.game-type{font-family:Quest,system-ui;font-size:28px;letter-spacing:0}.actions,.title-row,.meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.title-row{justify-content:space-between}.grow{flex:1;min-width:0}.page-title{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 30px}.page-title p:last-child{margin:0}.page-title .eyebrow{margin-bottom:9px}.panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:0 0 22px;box-shadow:var(--shadow)}main{max-width:1220px;margin:0 auto;padding:42px 32px 64px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.layout.reverse{grid-template-columns:260px minmax(0,1fr)}.sidebar{align-self:start;position:sticky;top:24px}
/* Small, consistent navigation; the destination is always visible. */
.app-header{display:flex;align-items:center;gap:36px;min-height:80px;padding:12px max(28px,calc((100vw - 1156px)/2));background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);flex-shrink:0}.brand img{width:54px;height:44px;object-fit:contain}.brand-name{font-size:16px;font-weight:800;letter-spacing:-.04em;line-height:1.05}.brand-name span{display:block}.app-nav{display:flex;align-items:center;gap:6px;margin-right:auto}.app-nav a{padding:9px 12px;text-decoration:none;color:var(--muted);font-size:15px;font-weight:650;white-space:nowrap;border-radius:8px}.app-nav a:hover,.app-nav a[aria-current=page]{color:var(--purple);background:var(--soft)}.app-tools{display:flex;align-items:center;gap:14px}.theme-switch{display:flex;align-items:center;gap:2px;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:9px;flex-shrink:0}.theme-switch button{min-height:30px;min-width:32px;padding:4px;border:0;background:transparent;font-size:16px;color:var(--muted)}.theme-switch button[aria-pressed=true]{background:var(--surface);color:var(--purple);box-shadow:0 1px 5px #20102f13}.theme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#account{display:flex;align-items:center;gap:8px;font-size:14px}#account button{min-height:36px;padding:7px 12px;font-size:14px}.account-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Launch: one featured game, smaller choices, and an honest three-step path. */
.launch-hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:20px;min-height:380px;padding:44px;border-radius:28px;background:#302046;color:#fff;overflow:hidden}.launch-hero::after{content:'';position:absolute;right:-80px;top:-130px;width:590px;height:590px;border-radius:50%;border:1px solid #b79ad429;pointer-events:none}.launch-copy{z-index:1;max-width:490px}.launch-hero .eyebrow{color:#eaca79}.launch-hero h1{font-size:clamp(44px,5.6vw,70px);line-height:1.02;letter-spacing:-.055em;color:#fff;margin-bottom:20px}.launch-hero p{color:#d1c4df;max-width:360px;font-size:16px}.launch-hero .actions{margin-top:28px}.launch-hero .primary{background:var(--gold);color:#382616;border-color:var(--gold)}.launch-hero .primary:hover{background:#f5d27b;border-color:#f5d27b}.launch-hero .hero-secondary{color:#eee5ff;background:transparent;border-color:#716084}.hero-party{position:relative;height:310px;display:flex;align-items:flex-end;justify-content:center;z-index:1}.hero-party::before{content:'';position:absolute;width:290px;height:230px;border-radius:50%;background:#49315e;bottom:13px}.hero-party img{position:absolute;width:68%;height:330px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 12px 4px #150e2333)}.hero-party .hero-one{left:-9%;bottom:-12px;transform:rotate(-8deg)}.hero-party .hero-two{left:19%;bottom:14px;z-index:2}.hero-party .hero-three{right:-18%;bottom:-16px;transform:rotate(7deg)}.party-star{position:absolute;color:#f0c665;font-size:27px;top:5px;left:25%}.party-star:last-child{top:70px;left:auto;right:0;font-size:18px}.hero-caption{position:absolute;bottom:22px;right:32px;color:#c5b4d7;font-size:14px;letter-spacing:.12em}.journey-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 14px 34px}.journey-step{display:flex;gap:12px;align-items:center}.step-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink);font-weight:800;font-size:15px;flex-shrink:0}.journey-step strong{font-size:15px}.journey-step p{font-size:14px;margin:2px 0 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:20px 0}.section-heading h2{margin:0}.section-heading a{font-size:15px}.launch-links{display:grid;grid-template-columns:1fr 1fr;gap:20px}.launch-link{display:flex;align-items:center;gap:20px;padding:24px;border:1px solid var(--line);background:var(--surface);border-radius:18px;text-decoration:none;color:var(--text)}.launch-link:hover{border-color:var(--purple)}.launch-link h3{margin:0 0 5px}.launch-link p{font-size:15px;margin:0}.launch-link .link-icon{display:grid;place-items:center;width:52px;height:52px;background:var(--soft);color:var(--purple);border-radius:14px;font:32px Quest;flex-shrink:0}.link-arrow{margin-left:auto;color:var(--purple);font-size:22px}.home-recents{margin-top:30px}.library-recents{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.recent-card{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.recent-card strong{display:block;line-height:1.4;margin-bottom:7px}.recent-card p{font-size:14px}.recent-card .actions{font-size:14px}.recent-card .button{font-size:14px;min-height:36px;padding:7px 10px}
/* Questions: compact cards, one useful search field, secondary filters. */
.collection-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:0 0 24px;overflow:auto}.collection-tabs a{font-size:15px;font-weight:650;text-decoration:none;color:var(--muted);padding:0 0 12px;white-space:nowrap;border-bottom:3px solid transparent}.collection-tabs a[aria-current=page]{border-color:var(--purple);color:var(--purple)}.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 18px}.search-panel{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:minmax(180px,1fr) 145px 160px auto}.search-panel input{margin:0}.search-panel label{margin:0}.more-filters{grid-column:1/-1;margin:0}.more-filters summary{font-size:14px}.filter-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-top:14px}.search-panel>#clear-search{grid-column:4;grid-row:2;min-height:26px;padding:0;font-size:14px;border:0;justify-self:end}.quick-topics{display:none}.active-filters{display:flex;gap:8px;flex-wrap:wrap}.active-filters:has(button){margin:0 0 18px}.active-filters button{border:0;background:var(--soft);color:var(--purple)}.result-title p{font-size:14px;margin:0 0 16px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.card:hover{border-color:#bca8d8;box-shadow:var(--shadow)}.card-top{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0;gap:12px}.lesson-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--soft);color:var(--purple);font:25px Quest}.card-count{margin-left:auto;font-size:14px;color:var(--muted)}.favorite{font-size:21px;min-height:30px;padding:0 5px;border:0;background:transparent;color:var(--muted)}.favorite[aria-pressed=true]{color:var(--gold-ink)}.card-body{padding:16px 20px 20px;display:flex;flex:1;flex-direction:column}.card h3{font-size:18px;line-height:1.4;letter-spacing:-.02em;margin:10px 0}.card h3 a{text-decoration:none;color:var(--text)}.card-summary{font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:16px}.card .byline{font-size:14px;margin-top:auto;margin-bottom:18px}.card-actions{display:flex;align-items:center;gap:8px}.card-actions .primary{flex:1;font-size:14px}.card-actions>a:not(.button){font-size:14px}.tag,.badge{display:inline-flex;font-size:14px;font-weight:650;padding:3px 8px;border-radius:5px;background:var(--soft);color:var(--purple);margin:0 5px 4px 0}.badge{background:var(--gold-soft);color:var(--gold-ink)}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:28px 0 0;font-size:14px}.pagination button{font-size:14px}.empty{border:1px dashed var(--line);border-radius:18px;padding:40px 24px;text-align:center;background:var(--surface)}.empty .guide{width:100px;height:90px;object-fit:contain}.empty h3{margin:10px 0}.empty p{font-size:15px}.empty .actions{justify-content:center}.custom-lesson-cover{background:var(--soft);border-radius:10px;overflow:hidden;position:relative}.custom-lesson-cover img{width:100%;object-fit:cover}.cover-topic{position:absolute;bottom:12px;left:12px;background:#302046;color:#fff;border-radius:6px;padding:4px 10px}.cover{height:120px;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.stepper{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px;font-size:14px}.stepper a{color:var(--muted)}.question-action-bar,.question-finder{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:20px 0}.question-action-bar input{flex:1;min-width:160px;margin:0}.question-action-bar select{width:200px;margin:0}.question-action-bar button,.question-action-bar .button{font-size:14px}.question-preview{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:14px;scroll-margin-top:20px}.question-preview h3{font-size:17px;line-height:1.5;letter-spacing:0;margin:12px 0}.question-preview img{max-width:100%;max-height:250px;object-fit:contain}.question-preview .answer{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
/* Workshop: writing space first, details second. */
label{display:block;font-size:14px;font-weight:650;color:var(--text);margin-bottom:18px}input,select,textarea{display:block;width:100%;min-width:0;padding:11px 12px;margin-top:7px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text)}textarea{min-height:110px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}input[type=checkbox],input[type=radio]{width:auto;display:inline;margin:0 8px 0 0;accent-color:var(--purple)}input[type=range]{padding:0;accent-color:var(--purple)}.workshop-layout{grid-template-columns:minmax(0,1fr) 280px}.set-title-panel{padding:24px}.set-title-panel label{margin:0}.set-title-panel input{font-size:22px;letter-spacing:-.03em;padding:12px 0;border:0;border-radius:0;background:transparent;border-bottom:1px solid var(--line)}.workshop-layout .title-row h2{font-size:18px;margin:0}.workshop-layout .title-row{margin-bottom:20px}.workshop-layout .title-row .actions{gap:6px}.workshop-layout .title-row button{font-size:14px}.question-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.number{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--purple);font-size:14px;font-weight:750}.question-row strong{font-size:15px;overflow-wrap:anywhere}.question-row p{font-size:14px;margin:4px 0 0}.question-row .actions{gap:4px}.question-row button{padding:5px 7px;font-size:14px;min-height:30px}.thumb{width:54px;height:50px;flex-shrink:0}.thumb img{width:100%;height:100%;object-fit:contain}.set-details{margin:0 0 24px}.set-details[open] summary{margin-bottom:20px}summary{cursor:pointer;color:var(--purple);font-weight:650}.sidebar h3{font-size:15px}.sidebar .panel{padding:22px}.sidebar .muted{font-size:14px}.sidebar #preview-draft{width:100%;margin:8px 0 16px}.media-well{border:1px dashed var(--line);border-radius:12px;background:var(--bg);padding:16px;margin:12px 0;text-align:center}.media-well img{max-width:100%;max-height:180px;object-fit:contain}.default-cover-preview{height:100px;overflow:hidden}.sticky-actions{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 30px #20102f12}.sticky-actions #save-state{font-size:14px;color:var(--muted)}.sticky-actions button{font-size:14px}.sticky-actions .actions{gap:8px}.saved-next-actions{display:flex;gap:10px;align-items:center;margin-bottom:20px;font-size:14px}.saved-next-actions .button{font-size:14px}
/* Dialogs and full question authoring retain all existing tools. */
dialog{width:min(860px,calc(100vw - 32px));max-height:92dvh;overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--text);padding:28px;box-shadow:0 24px 90px #170e3340}dialog::backdrop{background:#1a10266b;backdrop-filter:blur(5px)}.dialog-top,.dialog-heading,.set-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 24px}.dialog-top h2,.dialog-heading h2,.set-picker-heading h2{font-size:23px;margin:0}.dialog-top button{padding:5px 12px;min-height:36px}.question-dialog{width:min(1080px,calc(100vw - 32px))}.question-editor-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:36px}.student-preview{padding:24px;background:var(--soft);border:1px solid var(--line);border-radius:16px;align-self:start}.student-preview h3{font-size:14px}.student-preview .actions{gap:6px;margin-bottom:20px}.student-preview .student-options{display:grid;gap:8px}.student-preview .student-options span{padding:10px;background:var(--surface);border-radius:8px}.student-preview .student-answer{padding:12px;border:1px solid var(--success);color:var(--success);border-radius:9px;margin-top:18px}.student-preview img{max-width:100%;max-height:180px;object-fit:contain}.student-preview .device-small{max-width:280px;margin:auto}.student-preview .muted{font-size:14px;margin-top:16px}.question-footer{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding-top:20px;margin-top:24px;border-top:1px solid var(--line)}.question-footer>span{margin-right:auto;font-size:14px}.question-footer button{font-size:14px}.options{display:grid;gap:10px;margin:16px 0}.option{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}.option label,.option input{margin:0}.option:has(input:checked){background:var(--soft);border-color:var(--purple)}.active-choice{color:var(--purple);font-size:14px}.inline-media{padding:18px;background:var(--bg);border-radius:12px;margin:16px 0}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.media-grid button{padding:0;overflow:hidden}.media-grid img{width:100%;height:120px;object-fit:cover}.tabs{display:flex;gap:8px;margin:0 0 18px}.tabs .active{background:var(--purple);color:var(--on-purple)}.drop-zone{padding:24px;border:2px dashed var(--line);border-radius:12px}.drop-zone.dragover{border-color:var(--purple);background:var(--soft)}.giphy-attribution img,.giphy-credit img{width:130px;height:auto}.giphy-credit{display:block}.student-preview-dialog{width:min(1100px,96vw)}.student-preview-dialog iframe{display:block;width:100%;height:55dvh;border:1px solid var(--line);border-radius:12px}.student-preview-dialog .actions{margin-bottom:16px}.student-preview-dialog label{margin:0}.student-preview-dialog select{width:auto}.table-wrap,.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:14px}td textarea{min-width:160px}.alert{background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--gold);padding:14px 18px;border-radius:10px;margin:16px 0}.busy-bar{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:3000;background:var(--purple);color:var(--on-purple);padding:10px 18px;border-radius:40px;font-size:14px}#toast{position:fixed;bottom:24px;right:24px;max-width:calc(100vw - 48px);background:var(--text);color:var(--surface);padding:14px 22px;border-radius:12px;z-index:4000;box-shadow:var(--shadow);font-size:15px}.success-mascot{width:32px;height:32px;object-fit:contain;vertical-align:middle;margin-right:8px}
/* Other launch modes are intentionally quieter than Crown Rush. */
.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mode-card{overflow:hidden;display:flex;flex-direction:column;padding:0;margin:0}.mode-card.featured{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;background:#302046;color:#fff;border:0}.mode-art{width:100%;height:170px;object-fit:cover}.featured .mode-art{height:100%;min-height:280px}.mode-body{padding:26px;display:flex;flex:1;flex-direction:column;align-items:flex-start}.mode-body h2{font-size:23px}.mode-body p{font-size:15px}.mode-body>.button,.mode-body>button{margin-top:auto;font-size:15px}.mode-card.featured h2{font-size:36px;color:#fff}.mode-card.featured p{color:#d6c9e2}.mode-card.featured .eyebrow{color:#f0ce7a}.mode-card.featured .primary{background:var(--gold);border-color:var(--gold);color:#382616}.mode-card.featured .badge,.mode-card.featured .tag{background:#4d3b63;color:#f2e7ff}.presentation{max-width:980px;text-align:center;margin:auto}.presentation h1{font-size:clamp(26px,3.5vw,42px);line-height:1.35;margin:20px 0 28px}.presentation>.panel{padding:38px}.presentation img{max-width:100%;max-height:30vh;object-fit:contain}.progress{height:5px;border-radius:6px;overflow:hidden;background:var(--line);margin:22px 0}.progress span{display:block;background:var(--gold);height:100%}.presentation .title-row{font-size:14px}.presentation .title-row p{margin:0}body.is-presenting>.app-header{display:none}
/* Game setup uses the same shell, with numbered steps instead of extra navigation. */
.setup-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.setup-heading h1{margin-bottom:8px}.setup-heading p{margin:0}.setup-help{border-radius:50%;width:40px;min-height:40px;padding:0}.setup-steps{display:flex;align-items:center;gap:12px;margin:0 0 30px;color:var(--muted);font-size:14px}.setup-steps a,.setup-steps strong{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--muted);font-weight:600}.setup-steps strong{color:var(--purple)}.setup-steps b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--soft);color:var(--purple);font-size:14px}.setup-steps strong b{background:var(--purple);color:var(--on-purple)}.setup-steps>span{color:var(--line)}.set-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);padding:18px 20px;border-radius:14px;margin-bottom:28px}.set-strip #set-name{font-weight:650;font-size:14px;flex:1;min-width:160px}.set-strip #set-count{font-size:14px;color:var(--muted)}.set-strip a{font-size:14px}.question-demand{flex-basis:100%;font-size:14px;color:var(--muted)}.player-count{display:flex;align-items:center;gap:16px;margin-bottom:24px}.player-count .eyebrow{margin:0;color:var(--text);letter-spacing:0;text-transform:none;font-size:14px}.player-count>div{display:flex;gap:6px}.player-count button{width:40px;min-height:38px;padding:5px;font-size:14px}.player-count button[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:var(--on-purple)}.player-count output{font-size:14px;color:var(--muted);margin-left:auto}.teams{display:grid;grid-template-columns:repeat(var(--players,4),minmax(0,1fr));gap:18px}.team-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;overflow:hidden;min-width:0}.team-number{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:750;letter-spacing:.08em;color:var(--muted)}.team-number::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--team)}.pick-hero{display:flex;flex-direction:column;align-items:center;width:100%;border:0;background:transparent;padding:8px 0 16px;gap:3px}.pick-hero:hover:not(:disabled){background:var(--soft);border:0}.selection-sprite{width:100%;height:170px;object-fit:contain;image-rendering:pixelated;pointer-events:none}.hero-label{font-size:14px;font-weight:700;margin:6px 0 0}.edit-look{font-size:14px;color:var(--purple);font-weight:500}.team-card label{font-size:14px;color:var(--muted);margin-bottom:5px}.team-card input{font-size:15px;margin:0;padding:9px 10px}.team-card .selection-sprite[data-overscan=true]{transform:scale(1.4)}.match-controls{display:flex;justify-content:space-between;gap:24px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:20px 24px;margin-top:24px}.match-controls .eyebrow{font-size:14px;margin-bottom:8px}.speeds{display:flex;gap:6px}.speeds button{font-size:14px;padding:8px 13px;min-height:36px}.speeds button[aria-pressed=true]{background:var(--soft);color:var(--purple);border-color:var(--purple)}.objective strong{display:block;font-size:14px}.objective span{display:block;font-size:14px;color:var(--muted);margin-top:4px}.setup footer{display:flex;align-items:center;gap:10px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.setup footer #start{margin-left:auto;min-width:170px}.setup footer button{font-size:15px}#status{font-size:15px;color:var(--gold-ink)}#status:empty{display:none}.option-row{display:grid;grid-template-columns:100px 1fr 45px;align-items:center;gap:12px;margin:24px 0}.check-row{display:flex;align-items:center;gap:8px}.hint{font-size:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#options-dialog,#help-dialog,#replace-dialog{max-width:560px}#help-dialog p{font-size:14px}.set-picker-heading h2{font-size:22px}#question-picker{width:min(1160px,96vw);height:92dvh;overflow:hidden}#question-picker iframe{border:0;width:100%;height:calc(100% - 100px);border-radius:12px;background:var(--bg)}#question-picker-status,#picker-status{font-size:14px}
/* A hero gallery with names, ownership badges, and room for the pixel art. */
html:has(#picker[open]),body:has(#picker[open]){overflow:hidden}#picker{position:fixed;inset:0;margin:auto;width:min(1100px,96vw);height:min(880px,94dvh);max-height:94dvh;padding:26px 30px;overflow:hidden}#picker[open]{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px}.picker-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}#character-heading{font-size:26px;margin:0}.picker-header .eyebrow{font-size:14px;margin:0 0 6px}.picker-controls,.picker-top{display:flex;align-items:center;gap:8px}.picker-controls button{font-size:14px}.picker-top .icon-button{padding:5px;width:32px;min-height:36px;font-size:20px}.picker-top h2{font-size:15px;margin:0;min-width:58px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.hero-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;min-height:0}.hero-option{display:grid;grid-template-rows:minmax(0,1fr) auto 18px;gap:3px;padding:8px;border:1px solid transparent;min-width:0;min-height:0;background:var(--bg);overflow:visible;border-radius:14px}.hero-option:hover:not(:disabled){background:var(--soft)}.hero-option[aria-pressed=true]{border:2px solid var(--purple);background:var(--soft)}.hero-option .selection-sprite{height:100%;min-height:0;width:100%;display:block}.hero-number{font-size:14px;font-weight:650;text-align:center;line-height:1.25;position:relative;z-index:1}.hero-option .owner{font-size:14px;color:var(--muted);font-weight:500;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-option.assigned .owner{color:var(--text);text-decoration:underline;text-decoration-color:var(--owner);text-decoration-thickness:3px;text-underline-offset:3px}.hero-option .selection-sprite.has-attack{transform:scale(1.3);transform-origin:center;pointer-events:none}.hero-option .selection-sprite[data-overscan=true]{transform:scale(2.3)}
/* Stage choice is part of the launch flow, with playable content first. */
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.set-summary{font-size:14px;max-width:350px;margin:0}.stage-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.stage{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);display:flex;flex-direction:column;align-items:stretch}.stage-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.stage-number{font-size:14px;font-weight:650;color:var(--muted)}.stage h2{margin:18px 0 6px;font-size:28px}.stage-logo{display:none}.map-preview{display:block;position:relative;aspect-ratio:16/9;padding:0;border:0;border-radius:12px;overflow:hidden;margin:14px 0}.map-preview img{width:100%;height:100%;object-fit:cover}.map-preview span{position:absolute;bottom:10px;right:10px;font-size:14px;border-radius:6px;padding:5px 8px;background:#21172dd9;color:#fff}.stage-copy{flex:1;padding:10px 0 24px}.stage-copy p{font-size:14px;line-height:1.6}.stage-facts{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.stage .badge.available{background:var(--soft);color:var(--purple)}.stage.lava{background:var(--bg)}.stage.lava .map-preview{opacity:.85}.stage .play-button,.stage .concept-button{font-size:15px}.footer-note{font-size:14px;text-align:center;margin-top:24px}#full-map,.concept-hero{width:100%;max-height:65dvh;object-fit:contain;border-radius:12px}.concept-details{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px}.concept-details h3{font-size:18px}.concept-details p{font-size:15px}.concept-hero{max-height:35dvh}.proposal{font-size:14px;color:var(--gold-ink)}.noscript{text-align:center}.is-picker>.app-header,.is-picker>.skip-link{display:none}.is-picker main{padding:24px;max-width:none}.is-picker .page-title>.button{display:none}.is-picker .card-actions>a:not([data-pick-set]){display:none}.is-picker .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.app-header{gap:18px;padding:12px 24px}.app-nav a{padding:8px;font-size:14px}.brand-name{display:none}.app-tools{gap:8px}.launch-hero{padding:32px}.hero-party{height:290px}.grid,.library-recents{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-layout{grid-template-columns:minmax(0,1fr) 250px}.question-row{flex-wrap:wrap}.question-row .actions{margin-left:40px}.mode-grid{grid-template-columns:1fr 1fr}.mode-card.featured{grid-column:1/-1}.teams{gap:12px}.team-card{padding:14px}.selection-sprite{height:145px}.picker-header{flex-wrap:wrap}#picker{padding:22px}.hero-number{font-size:14px}}
@media(max-width:760px){main{padding:28px 20px 50px}.app-header{padding:10px 20px;display:grid;grid-template-columns:1fr auto;gap:12px}.brand-name{display:block;font-size:14px}.brand img{width:42px;height:36px}.app-nav{grid-column:1/-1;grid-row:2;justify-content:space-between;width:100%;gap:4px}.app-nav a{padding:7px 10px}.app-tools{grid-column:2;grid-row:1}.theme-switch button{min-height:28px;min-width:28px}.theme-switch{gap:0}#account{gap:5px}#account button{font-size:14px;padding:6px 9px}.page-title{align-items:flex-start;gap:16px}.page-title>.button{font-size:14px;padding:8px 12px;white-space:nowrap}.page-title h1{font-size:30px}.page-title p{font-size:15px}.launch-hero{grid-template-columns:1fr;min-height:0;padding:30px;gap:12px}.launch-hero h1{font-size:50px;max-width:420px}.launch-hero p{font-size:14px}.hero-party{height:220px;width:min(420px,100%);justify-self:center}.hero-party img{height:220px}.hero-party::before{height:180px;width:260px}.hero-party .hero-one{left:0}.hero-party .hero-two{left:25%;bottom:10px}.hero-party .hero-three{right:-9%}.hero-caption{display:none}.journey-steps{gap:10px;padding:24px 0}.journey-step{align-items:flex-start;gap:8px}.journey-step strong{font-size:14px}.journey-step p{font-size:14px}.step-dot{width:24px;height:24px;font-size:14px}.launch-links{gap:12px}.launch-link{padding:18px;gap:12px}.launch-link h3{font-size:15px}.launch-link p{font-size:14px}.launch-link .link-icon{display:none}.layout,.layout.reverse,.workshop-layout{grid-template-columns:1fr}.sidebar{position:static}.search-panel{grid-template-columns:1fr 1fr}.search-panel>#query{grid-column:1/-1}.search-panel>#submit-search{grid-column:1/-1}.search-panel>#clear-search{grid-row:auto;grid-column:2}.filter-fields{grid-template-columns:1fr 1fr}.more-filters{grid-column:1}.grid{gap:14px}.card-body,.card-top{padding-left:16px;padding-right:16px}.card h3{font-size:16px}.collection-tabs{gap:20px}.collection-tabs a{font-size:14px}.mode-body{padding:22px}.mode-card.featured{grid-template-columns:1fr}.featured .mode-art{height:200px;min-height:0}.question-editor-grid{grid-template-columns:1fr}.student-preview{margin-top:10px}.question-footer{flex-wrap:wrap}.question-footer>span{flex-basis:100%}.sticky-actions{position:static;flex-wrap:wrap}.sticky-actions .actions{flex-wrap:wrap}.sticky-actions button{font-size:14px}.media-grid{grid-template-columns:repeat(3,1fr)}.stage-grid{grid-template-columns:1fr}.page-heading{display:block}.set-summary{margin-top:14px;max-width:none}.teams{grid-template-columns:repeat(2,minmax(0,1fr))}.selection-sprite{height:165px}.match-controls{flex-direction:column;align-items:flex-start;gap:16px}.objective{border-top:1px solid var(--line);padding-top:16px;width:100%}.setup footer{flex-wrap:wrap}.setup footer #start{flex:1}.setup footer button{font-size:14px}.setup-steps{gap:8px;font-size:14px}.setup-steps b{width:20px;height:20px}.set-strip{padding:16px}.set-strip #set-name{flex-basis:100%}.set-strip a{margin-left:auto}.player-count{gap:10px}.player-count output{font-size:14px}.concept-details{grid-template-columns:1fr}#picker{width:100vw;height:100dvh;max-height:100dvh;max-width:none;border-radius:0;padding:20px 14px;gap:14px}#character-heading{font-size:23px}.picker-header{gap:14px;padding-bottom:14px}.picker-controls{width:100%;justify-content:space-between}.hero-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:7px}.hero-option{padding:5px;grid-template-rows:minmax(0,1fr) auto 16px;gap:2px}.hero-number{font-size:14px}.hero-option .owner{font-size:14px;line-height:16px}.is-picker .grid{grid-template-columns:1fr 1fr}.is-picker main{padding:18px}.student-preview-dialog{padding:18px}.student-preview-dialog .actions{gap:7px}.student-preview-dialog .actions label{flex:1}}
@media(max-width:480px){main{padding:24px 16px 40px}.app-header{padding:10px 16px;gap:8px}.brand-name{display:none}.app-nav a{font-size:14px}.app-tools{gap:8px}.launch-hero{padding:26px 24px}.launch-hero h1{font-size:45px}.launch-hero .actions{gap:8px;margin-top:22px}.launch-hero .button{font-size:14px;padding:10px 12px}.hero-party{height:185px}.hero-party img{height:190px}.hero-party::before{height:150px;width:220px}.journey-steps{grid-template-columns:1fr;gap:12px;padding:24px 6px}.journey-step{align-items:center;gap:12px}.journey-step strong{font-size:14px}.journey-step p{font-size:14px}.launch-links,.grid,.library-recents,.mode-grid{grid-template-columns:1fr}.mode-card.featured{grid-column:auto}.page-title{flex-wrap:wrap}.page-title h1{font-size:28px}.card h3{font-size:18px}.card-body{padding:14px 20px 20px}.card-top{padding:18px 20px 0}.card-summary{font-size:15px}.panel{padding:20px}.collection-tabs{gap:18px}.collection-tabs a{font-size:14px}.media-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.question-footer button{flex:1}.question-action-bar select{width:100%}.question-row .actions{margin-left:40px;flex-basis:100%}.question-row .grow{flex-basis:calc(100% - 40px)}.question-row strong{font-size:14px}.setup-heading h1{font-size:28px}.setup-steps{font-size:14px}.setup-steps b{display:none}.selection-sprite{height:135px}.team-card{padding:12px}.hero-label{font-size:14px}.setup footer #random{display:none}.setup footer #start{flex-basis:100%;margin:0}.player-count output{display:none}#question-picker{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:18px 10px}#question-picker .dialog-heading{margin-bottom:12px;padding:0 6px}#question-picker .dialog-heading h2{font-size:20px}#question-picker iframe{height:calc(100% - 90px)}.is-picker main{padding:16px 12px}.is-picker .page-title{margin-bottom:18px}.is-picker .page-title h1{font-size:25px}.is-picker .grid{grid-template-columns:1fr}.concept-details{gap:12px}dialog{padding:20px;border-radius:16px}.dialog-top h2{font-size:20px}.presentation>.panel{padding:22px}.presentation .title-row{gap:8px}.presentation .title-row .muted{display:none}}
@media(max-height:570px) and (min-width:761px){#picker{padding:16px}.picker-header{padding-bottom:10px}#character-heading{font-size:20px}.hero-grid{gap:6px}.hero-option{padding:4px}.hero-number{font-size:14px}.hero-option .owner{font-size:14px}.hero-option{grid-template-rows:minmax(0,1fr) auto 14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Full-height centered portraits, with a stable number in every hero tile. */
.hero-option{position:relative;display:block;padding:0;overflow:hidden}
.hero-option .selection-sprite{height:100%;width:100%;transform:none!important}
.hero-number{position:absolute;top:8px;left:10px;display:grid;place-items:center;min-width:34px;min-height:34px;padding:3px 8px;border-radius:9px;background:var(--purple);color:var(--on-purple);font:800 23px/1.1 system-ui;box-shadow:0 2px 7px #21132f20}
.hero-option .owner{position:absolute;bottom:7px;right:8px;max-width:calc(100% - 16px);font-size:14px;line-height:1.3;background:var(--surface);border-radius:6px;padding:3px 7px}
.hero-option .owner:empty{display:none}
.hero-label{font-size:22px;line-height:1.2;color:var(--purple)}
.team-card .selection-sprite[data-overscan=true]{transform:none}
.selection-sprite{height:200px}
.collection-tabs{flex-wrap:wrap;row-gap:10px}
.picker-controls{flex-wrap:wrap}.setup-steps{flex-wrap:wrap}
@media(max-width:760px){.hero-number{font-size:21px;min-width:30px;min-height:30px;top:5px;left:6px}.selection-sprite{height:180px}.app-nav a{padding-inline:7px}.picker-header .eyebrow{margin-bottom:4px}}
@media(max-width:480px){.selection-sprite{height:160px}.hero-number{font-size:20px}.hero-option .owner{font-size:14px}.collection-tabs{gap:14px}.picker-controls{gap:5px}.picker-controls button{padding:8px 10px}.setup footer #random{display:inline-flex}}

small{font-size:14px;line-height:1.5}
