/* Setup screens use the available game canvas, not a long form. */
.game-start{grid-template-columns:1.15fr 1fr;padding:24px 4%}
.game-start h1{font-size:clamp(62px,min(12cqw,22cqh),160px)!important;letter-spacing:-2px;margin:18px 0 22px;line-height:.88}
.game-start .home-copy{width:100%;max-width:690px}
.game-start .intro{max-width:430px;margin:0 auto 24px;font-size:clamp(16px,2cqw,22px)!important}
.game-start .start-button{width:min(370px,90%);min-height:70px;font-size:25px!important;border-radius:18px;box-shadow:0 7px 0 #183c32,0 15px 32px #183c3220;background:#ffd23f}
.game-start .start-adventure{margin-top:25px}
.game-start .start-route-badge{letter-spacing:1.2px}
.level-screen{padding:20px 5% 16px;grid-template-rows:44px auto minmax(0,1fr) auto;gap:10px;background:radial-gradient(ellipse at 50% 45%,#fffdf0f5,#e6f2e8f0)}
.level-screen h2{text-align:center;font-size:clamp(32px,min(5.4cqw,8cqh),60px)!important}
.level-grid{align-items:center;gap:20px;padding:10px 4px;max-width:1090px}
.level-card{--route-color:#207e66;--route-wash:#e3f3df;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:min(390px,100%);padding:0;gap:0;border:2px solid #b7cbc4;border-radius:24px;background:#fffef6;overflow:hidden;box-shadow:0 6px 0 #b0c8be;transition:transform .18s,border-color .18s,box-shadow .18s;text-align:left}
.level-card[data-level="medium"]{--route-color:#2876ac;--route-wash:#e3f1fb}
.level-card[data-level="hard"]{--route-color:#7d4dac;--route-wash:#eee4fb}
.level-card:hover{transform:translateY(-4px);border-color:var(--route-color);box-shadow:0 9px 0 #b0c8be}
.level-card.selected{border-color:var(--route-color);background:#fffef6;box-shadow:0 6px 0 var(--route-color)}
.level-card .level-art{display:block;color:var(--route-color);background:var(--route-wash);height:38%;min-height:70px;border-bottom:1px solid #183c3215}
.level-art svg{display:block;width:100%;height:100%}
.level-card .level-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:20px 20px 8px}
.level-card strong{font-size:clamp(26px,3.2cqw,38px)!important;color:#173e35}
.level-speed{color:var(--route-color);border:1px solid currentColor;border-radius:9px;padding:6px 8px;font-size:19px;font-weight:850;white-space:nowrap}
.level-speed small{font-size:12px}
.level-card .level-tagline{padding:0 20px;font-size:16px;font-weight:750;line-height:1.35}
.level-card .level-detail{padding:7px 20px 14px;color:#5e746d;font-size:16px;line-height:1.35}
.level-card .level-check{display:flex;align-items:center;justify-content:space-between;margin:auto 16px 16px;padding:12px 14px;border-radius:11px;background:var(--route-wash);color:var(--route-color);font-size:16px;line-height:1.1;font-weight:850}
.level-check>span{font-size:24px}.setup-note{text-align:center;font-size:16px!important;padding:0 80px}
.custom-screen{padding:20px 3%;gap:16px;background:radial-gradient(ellipse at 30% 45%,#fbf8e9f7,#e4f0e8f5);grid-template-rows:auto minmax(0,1fr) auto}
.custom-heading{display:flex;align-items:center;gap:18px;flex-wrap:nowrap}
.custom-heading h2{font-size:clamp(32px,min(4.3cqw,7.5cqh),52px)!important;white-space:nowrap}
.custom-heading>.text-button{padding:8px 4px}.custom-heading .difficulty-tag{margin-left:auto}
.custom-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);height:100%;min-height:0;gap:22px;padding:0;margin:0}
.custom-preview-panel{grid-column:1;grid-row:1;position:relative;align-self:stretch;height:100%;min-height:0;border:2px solid #b6cbc0;border-radius:26px;overflow:hidden;background:#e0efd8}
.custom-preview{height:100%;width:100%;min-height:0;margin:0;border:0;border-radius:0}
.preview-badge{position:absolute;left:16px;top:16px;border:1px solid #fff9;border-radius:30px;background:#fffdf2dd;padding:9px 14px;font-size:12px;font-weight:850;letter-spacing:1.5px;pointer-events:none}
.custom-options{grid-column:2;grid-row:1;align-self:center;min-height:0;height:min(350px,100%);display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;padding:16px;border:1px solid #c6d5c7;border-radius:22px;background:#fffef3e8;box-shadow:0 4px 0 #cfdbca}
.custom-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;background:#e6ede2;padding:4px;border-radius:13px}
.custom-tabs button{border:0;background:transparent;border-radius:9px;min-width:0;min-height:44px;padding:7px 2px;font-weight:750;font-size:16px!important;color:#52685e}
.custom-tabs button[aria-selected="true"]{background:#234e43;color:#fff;box-shadow:0 3px 0 #16372e}
#custom-panel{padding:4px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.palette-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}
.palette-heading h3{margin:0;font-size:clamp(21px,2.2cqw,28px)!important;line-height:1.2}.palette-heading>span{font-size:16px;color:#607a6b;text-align:right}
.custom-options .swatches{display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:12px 6px;width:100%;max-width:none;justify-items:center}
.custom-options .swatch{width:44px;height:44px;min-width:44px;max-width:none;border:3px solid #fff;box-shadow:0 0 0 1px #183c3222;font-size:21px!important}
.custom-options .swatch.selected{box-shadow:0 0 0 3px #234e43;transform:scale(1.05)}
.custom-options .segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.custom-options .segmented:has([data-option="trim"]){grid-template-columns:repeat(3,minmax(0,1fr))}
.custom-options .segmented button{position:relative;min-width:0;min-height:70px;padding:12px 8px;border:2px solid #d5dfca;border-radius:12px;background:#f4f6e9;color:#264b3f;font-size:16px!important;font-weight:750;white-space:normal}
.custom-options .segmented button.selected{background:#fff1b8;border-color:#335a46;color:#1b4334}
.custom-options .segmented button.selected::after{content:'✓';position:absolute;right:5px;top:3px;font-size:12px;color:#1b4334}
.custom-screen .screen-actions{padding:0 5px 7px}
.custom-screen .screen-actions .primary{min-height:60px;width:min(410px,80%);font-size:22px!important;background:#ffd23f}
@container cargo (max-width:850px) and (min-width:601px){
 .custom-layout{grid-template-columns:minmax(0,1fr) minmax(330px,1fr);gap:14px}.custom-options{padding:10px}
 .level-grid{gap:12px}.level-card .level-card-heading{padding:12px 12px 7px}.level-card .level-tagline,.level-card .level-detail{padding-left:12px;padding-right:12px}.level-card .level-check{margin: auto 10px 10px}
}
@container cargo (max-width:600px){
 .game-start{grid-template-columns:1fr;padding:18px}.game-start .home-copy{padding:24px 6px}.game-start h1{font-size:clamp(58px,16cqw,94px)!important;letter-spacing:-1px}.game-start .start-button{min-height:64px;width:94%;font-size:23px!important}
 .level-screen{padding:12px;gap:8px}.level-grid{gap:12px;padding:5px;align-items:stretch}
 .level-card{height:100%;min-height:0;display:grid;grid-template-columns:90px minmax(0,1fr);grid-template-rows:auto auto auto;border-radius:17px}
 .level-card .level-art{grid-column:1;grid-row:1/4;height:100%;min-height:0;border-bottom:0}.level-art svg{object-fit:cover}
 .level-card .level-card-heading{grid-column:2;padding:9px 12px 3px}.level-card strong{font-size:25px!important}.level-speed{font-size:16px;padding:4px}.level-speed small{font-size:10px}
 .level-card .level-tagline{display:none}.level-card .level-detail{grid-column:2;font-size:16px;padding:3px 12px;line-height:1.2}
 .level-card .level-check{grid-column:2;margin:4px 10px 8px;padding:7px 9px;font-size:16px}.level-check>span{font-size:18px}
 .setup-note{padding:0 40px;font-size:16px!important}
 .custom-screen{padding:12px;gap:10px}.custom-heading{gap:8px;flex-wrap:wrap}.custom-heading h2{font-size:32px!important}.custom-heading .difficulty-tag{display:none}
 .custom-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(120px,1fr) 238px;gap:12px}
 .custom-preview-panel{grid-column:1;grid-row:1;border-radius:20px}.custom-preview{height:100%}
 .custom-options{grid-column:1;grid-row:2;width:100%;height:100%;padding:8px;gap:8px;border-radius:16px}
 #custom-panel{gap:12px;padding:4px}.palette-heading h3{font-size:21px!important}.palette-heading>span{font-size:16px}
 .custom-options .swatches{gap:10px 4px}.custom-tabs{padding:3px;gap:1px}.custom-tabs button{font-size:16px!important}
 .custom-options .segmented button{min-height:52px;padding:7px 4px}
 .custom-screen .screen-actions .primary{width:100%;min-height:52px;font-size:20px!important}
}
@container cargo (max-height:500px) and (min-width:601px){
 .level-screen{padding:10px 3%;grid-template-rows:44px minmax(0,1fr) auto;gap:6px}
 .level-screen>.text-button{grid-column:1;grid-row:1;z-index:1}.level-screen h2{grid-column:1;grid-row:1;font-size:32px!important;align-self:center}
 .level-grid{grid-row:2;gap:12px;padding:5px}.level-card{display:grid;grid-template-columns:70px minmax(0,1fr);grid-template-rows:auto auto auto;height:100%;border-radius:16px}
 .level-card .level-art{grid-column:1;grid-row:1/4;height:100%;min-height:0}.level-card .level-card-heading{grid-column:2;padding:8px 10px 3px}.level-card strong{font-size:24px!important}
 .level-speed{font-size:16px;padding:3px}.level-speed small{font-size:10px}.level-card .level-tagline{display:none}.level-card .level-detail{grid-column:2;font-size:16px;padding:2px 10px;line-height:1.2}
 .level-card .level-check{grid-column:2;margin:4px 8px 8px;padding:6px 8px;font-size:16px}.level-check>span{font-size:18px}
 .custom-screen{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:48px minmax(0,1fr);padding:10px 3%;gap:10px}
 .custom-heading{grid-column:1;grid-row:1;gap:12px}.custom-heading h2{font-size:32px!important}.custom-heading .difficulty-tag{display:none}
 .custom-screen .screen-actions{grid-column:2;grid-row:1;padding:0 4px 4px}.custom-screen .screen-actions .primary{width:auto;min-height:44px;font-size:18px!important;padding:10px 18px}
 .custom-layout{grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr) minmax(340px,1.1fr);gap:14px}
 .custom-options{height:100%;padding:6px;gap:6px;border-radius:14px}.custom-tabs{padding:2px}.custom-tabs button{min-height:44px}
 #custom-panel{padding:2px;gap:8px}.palette-heading{display:none}.custom-options .swatches{gap:5px}.custom-options .segmented{gap:5px}.custom-options .segmented button{min-height:44px;padding:4px}
 .preview-badge{top:8px;left:8px;padding:5px 10px}
}
@container cargo (max-height:330px){
 .game-start{padding:8px 4%}.game-start .home-copy{padding:0}.game-start h1{font-size:clamp(48px,20cqh,66px)!important;margin:4px 0 8px}.game-start .intro{margin-bottom:8px;font-size:16px!important}.game-start .start-button{min-height:52px;font-size:21px!important}
}
@media(prefers-reduced-motion:reduce){.level-card{transition:none}.level-card:hover{transform:none}}
@container cargo (max-width:600px){
 .custom-screen .screen-actions{justify-content:flex-start}
 .custom-screen .screen-actions .primary{width:calc(100% - 100px)}
 .level-screen .setup-note{padding:0 104px 0 0;text-align:left}
}
@container cargo (max-height:500px) and (min-width:601px){
 .custom-options{padding:4px}.custom-tabs{padding:0}
 .game-utilities:has(+ #ui .custom-screen){right:auto;left:calc(3% + 12px);bottom:16px}
}
@container cargo (max-height:500px) and (min-width:601px){
 .level-card{grid-template-columns:40px minmax(0,1fr)}
 .level-card .level-card-heading{padding:6px 8px 2px;gap:5px}
 .level-card strong{font-size:21px!important}.level-speed{font-size:16px;padding:3px}
 .level-card .level-detail{padding:2px 8px;font-size:16px}
 .level-card .level-check{margin:3px 7px 6px;padding:5px 7px;line-height:1}
 .game-utilities:has(+ #ui .level-screen){top:10px;bottom:auto;right:12px}
}
/* Difficulty is a clean choice screen: no trucks or scenery artwork. */
.level-card{height:min(290px,100%);border-top:6px solid var(--route-color);padding:20px;display:flex;gap:0}
.level-card .level-card-heading{padding:0;margin:0 0 18px}
.level-card .level-tagline{padding:0}
.level-card .level-detail{padding:10px 0 16px}
.level-card .level-check{margin:auto 0 0;padding:13px 14px}
@container cargo (max-width:600px){
 .level-card{height:100%;padding:12px 16px;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;border-top-width:4px}
 .level-card .level-card-heading{grid-column:1;padding:0;margin:0 0 5px}
 .level-card .level-detail{grid-column:1;padding:0;line-height:1.3}
 .level-card .level-check{grid-column:1;padding:7px 10px;margin:7px 0 0}
}
@container cargo (max-height:500px) and (min-width:601px){
 .level-card{height:100%;padding:9px 10px;border-top-width:4px;display:flex}
 .level-card .level-card-heading{padding:0;margin:0 0 4px}
 .level-card .level-detail{padding:0 0 5px;line-height:1.2}
 .level-card .level-check{padding:6px 9px;margin:auto 0 0}
}
@container cargo (max-height:500px) and (min-width:601px){
 .level-card{padding:6px 10px}
 .level-card .level-card-heading{margin-bottom:2px}
 .level-card>.level-detail{line-height:1.1;padding:0;font-size:16px}
 .level-card>.level-check{line-height:1.1;padding:4px 9px}
 .level-card .level-check>span{line-height:1}
}
/* Rich arcade cards, using typography and abstract shapes only. */
.level-screen{background:radial-gradient(ellipse at 10% 0,#dcf3e5,transparent 65%),radial-gradient(ellipse at 100% 90%,#e5e9fb,transparent 60%),#f6f7ed}
.level-card{--card-top:#257f70;--card-bottom:#16483f;--card-ink:#174d40;position:relative;isolation:isolate;height:min(355px,100%);padding:24px;border:1px solid #ffffff6b;border-top-width:1px;background:linear-gradient(150deg,var(--card-top),var(--card-bottom));color:#fff;box-shadow:0 7px 0 var(--card-ink),0 14px 24px #183c3218;border-radius:23px}
.level-card[data-level="medium"]{--card-top:#337fae;--card-bottom:#203e6d;--card-ink:#224c74}
.level-card[data-level="hard"]{--card-top:#8960bb;--card-bottom:#4d326c;--card-ink:#533573}
.level-card::before{content:'01';position:absolute;right:-4px;top:35px;font-size:166px;font-weight:900;letter-spacing:-12px;line-height:1;color:#ffffff0c;z-index:-1;pointer-events:none}
.level-card[data-level="medium"]::before{content:'02'}.level-card[data-level="hard"]::before{content:'03'}
.level-card::after{content:'';position:absolute;width:260px;height:260px;right:-140px;top:-150px;border:35px solid #ffffff08;border-radius:50%;z-index:-1;pointer-events:none}
.level-card:hover{border-color:#ffffff;box-shadow:0 10px 0 var(--card-ink),0 22px 35px #183c3228;transform:translateY(-4px)}
.level-card.selected{background:linear-gradient(150deg,var(--card-top),var(--card-bottom));border-color:#ffe082;box-shadow:0 7px 0 var(--card-ink),0 0 0 3px #ffcf5b}
.level-card .level-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.level-number{display:inline-grid;place-items:center;min-width:36px;height:32px;padding:4px 7px;border:1px solid #ffffff45;border-radius:9px;background:#ffffff12;font-size:13px;font-weight:800;letter-spacing:1px}
.level-meter{display:flex;align-items:flex-end;gap:5px;height:28px}.level-meter i{display:block;width:8px;height:13px;border-radius:3px;background:#ffffff30}.level-meter i:nth-child(2){height:20px}.level-meter i:nth-child(3){height:28px}.level-meter i.filled{background:#ffdc76}
.level-card .level-card-heading{margin:0 0 10px;padding:0}.level-card strong{color:#fff;font-size:clamp(30px,3.4cqw,42px)!important;letter-spacing:-1px}
.level-speed{color:#fff;border-color:#ffffff55;background:#ffffff12;font-size:20px;padding:7px 9px}
.level-card .level-tagline{color:#fff;font-weight:750;padding:0;font-size:16px}
.level-card .level-detail{color:#ffffffda;padding:10px 0 18px;font-size:16px;line-height:1.4}
.level-card .level-check{margin:auto 0 0;background:#fffbed;color:var(--card-ink);padding:13px 15px;border:1px solid #fff;border-radius:12px;font-weight:850;box-shadow:0 3px 0 #00000012}
.level-card .level-check>span{display:grid;place-items:center;background:var(--card-ink);color:#fff;width:28px;height:28px;border-radius:50%;font-size:19px;line-height:1}
@container cargo (max-width:600px){
 .level-card{padding:11px 16px;height:100%;border-radius:17px;display:flex}
 .level-card .level-meta{display:none}.level-card::before{font-size:125px;top:6px;right:7px}
 .level-card .level-card-heading{margin:0 0 5px}.level-card strong{font-size:26px!important}.level-speed{font-size:16px;padding:4px 7px}
 .level-card .level-detail{padding:0 0 7px;line-height:1.2}.level-card .level-check{padding:7px 10px;margin:auto 0 0}
 .level-card .level-check>span{width:22px;height:22px;font-size:16px}
}
@container cargo (max-height:500px) and (min-width:601px){
 .level-card{padding:6px 10px;height:100%;border-radius:15px}
 .level-card .level-meta{display:none}.level-card::before{font-size:105px;top:6px;right:3px}
 .level-card .level-card-heading{margin:0 0 3px}.level-card strong{font-size:21px!important}.level-speed{font-size:16px;padding:3px 5px}
 .level-card>.level-detail{padding:0 0 3px;font-size:16px;line-height:1.1}.level-card .level-check{padding:4px 8px;margin:auto 0 0;line-height:1.1}
 .level-card .level-check>span{width:20px;height:20px;font-size:16px;line-height:1}
}
