/* 11.02 delivered illustrations. This sheet loads after all earlier page rules. */
.theme-head{min-height:0;margin:0 0 12px}
.theme-overview{display:flex;align-items:center;position:relative;min-height:150px;margin-top:0}
.theme-copy{flex:1;min-width:0;position:relative;z-index:2}
.theme-copy .page-title{gap:6px;margin:12px 0 6px}
.theme-copy .page-title .eyebrow:empty{display:none}
.theme-copy .page-title h1{font-size:26px;font-weight:900;white-space:nowrap}
.theme-copy .page-title .muted{font-size:14px;line-height:1.5}
.theme-copy .theme-online{margin:0;font-size:12.5px}
.theme-head .scene-art{position:static;flex:0 0 150px;width:150px;height:150px;aspect-ratio:1;background:transparent;border:0;border-radius:0;overflow:visible}
.theme-head .scene-art img{object-fit:contain}
.theme-progress{margin:0 0 22px;gap:14px}
.theme-progress .small{font-weight:900;color:var(--ink)}
.route-list{padding:0 0 0 30px;margin-right:-4px}
.route-group+.route-group{margin-top:30px}
.route-group-head{display:flex;align-items:baseline;gap:6px;margin:0 0 14px;font-size:13px;font-weight:900;color:var(--ink)}
.route-group-head span{font-size:11px;font-weight:700;color:var(--muted)}
.route-group[data-route-group=upcoming] .route-group-head{color:var(--muted)}
.level-card{display:block;padding:0 0 12px;margin:0;gap:0}
.level-card .route-dot{position:absolute;left:-40px;top:19px;margin:0;width:22px;height:22px;border:2px solid #D9CFD3;box-shadow:none}
.level-card:not(:last-child)::before{left:-30px;top:41px;bottom:-19px;border-left:2px dashed #E3D9DD;background:none}
.level-card.current .route-dot{position:absolute;border-color:var(--accent);box-shadow:0 0 0 4px #FFE1E9}
.level-card.coming .route-dot{border-style:dashed}
.level-card .illustration-card,.level-card.current .illustration-card,.trial-scenes .illustration-card{position:relative;display:flex;flex-direction:row;align-items:stretch;gap:0;height:auto;min-height:142px;padding:0;border:0;border-radius:20px;overflow:hidden;background:var(--scene-color)!important;box-shadow:none}
.illustration-card .level-copy{position:relative;z-index:2;flex:0 1 auto;min-width:min-content;max-width:70%;padding:13px 0 12px 14px}
.illustration-card .level-copy .pill{height:24px;display:inline-flex;align-items:center;line-height:1;vertical-align:top;padding:0 11px;font-size:12px;font-weight:900;background:#fff;white-space:nowrap}
.level-card .illustration-card h2,.level-card.current .illustration-card h2,.trial-scenes .illustration-card h2{font-size:20px;font-weight:900;line-height:1.3;margin:8px 0 0;letter-spacing:0;white-space:nowrap;overflow:visible;text-overflow:clip}
.illustration-card .level-copy h2.long-title{white-space:normal;overflow-wrap:anywhere}
.level-card .illustration-card p,.trial-scenes .illustration-card p{font-size:13px;line-height:1.55;color:#4A3F45;margin:5px 0 0;display:block;overflow:visible;-webkit-line-clamp:unset;white-space:normal}
.illustration-card .level-meta{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;line-height:1.5;color:#8A8186;white-space:nowrap}
.level-meta em{font-style:normal;color:var(--accent)}
.illustration-card .level-art{flex:1 1 0;min-width:72px;position:relative;z-index:1;overflow:hidden}
.illustration-card .level-art img{position:absolute;left:6px;top:-4px;width:calc(100% + 8px);height:calc(100% + 18px);object-fit:contain;object-position:center bottom}
.level-card.coming .illustration-card{background:#F4F2F3!important}
.illustration-card.is-coming .pill{color:#8A8186}
.level-card .illustration-card.is-coming h2{color:#6F666B}
.level-card .illustration-card.is-coming p{color:#8A8186}
.illustration-card.is-coming .level-art img{filter:saturate(.55) opacity(.75);top:36px;height:calc(100% - 22px)}
.level-body .level-wish{position:absolute;right:14px;top:13px;z-index:3;display:inline-flex;align-items:center;justify-content:center;height:23px;padding:0 10px;border:1.5px solid var(--accent);border-radius:999px;background:#fff;color:var(--accent);font-size:11px;font-weight:900;line-height:1;cursor:pointer}
/* 已想看：灰字 + 灰描边。描边不能再是 transparent —— --soft 底(#F6F5F6) 与 coming 卡底(#F4F2F3) 只差 2~3 个通道值，去掉描边后整枚徽章在卡上"消失"。 */
.level-wish[aria-pressed="true"]{border-color:#D9CFD3;background:var(--soft);color:var(--faint);cursor:pointer}
/* 设计样张页把徽章设成 disabled（不提交投票）；全局 button:disabled{opacity:.55} 会把红描边/红字一起降到 55%，在 #F4F2F3 卡底上看就是"发灰"。disabled 语义保留，只还原配色。
   cursor 一并显式写 default：上面的 [aria-pressed="true"] 规则带 cursor:pointer，特异性同为 0,2,0，必须在这里压回来。 */
.level-wish:disabled{opacity:1;cursor:default}
.neutral-art{display:grid;place-items:center;width:100%;height:100%;min-height:80px;color:#C4B4BD;font-size:42px}
.scene-art:has(>.neutral-art){display:grid;place-items:center}
.trial-scenes{gap:12px}
.trial-scenes .trial-scene{display:block;padding:0;margin:0;border:0;border-radius:20px;box-shadow:none;background:none}
.level-meta .trial-go{flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent);color:#fff;font-size:13px;font-weight:900;padding:5px 13px}
.topic-card .scene-art{aspect-ratio:auto;height:150px;display:flex;align-items:center;justify-content:center}
.topic-card .scene-art img{width:120px;height:120px;object-fit:contain;transform:translateY(3px)}
.coming-topic .scene-art{background:#F4F2F3}
.coming-topic .scene-art img{filter:saturate(.55) opacity(.75)}
.topic-card .topic-copy{padding:10px 12px 14px}
.topic-card .topic-copy h2{font-size:17px}
.resume-art{overflow:hidden}
.resume-art img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:400px){.theme-copy .page-title h1{font-size:25px}.theme-copy .page-title .muted{font-size:12px}.theme-head .scene-art{margin-left:-16px}}
