*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#faedd8;color:#71462c;font-family:"Yuanti SC","STYuanti","PingFang SC","Microsoft YaHei",sans-serif}body{display:grid;place-items:center}button{font:inherit;color:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:5px solid #287b70;outline-offset:4px}button:disabled{opacity:.43;cursor:default}#viewport{width:min(100vw,calc(100vh * 16 / 9));aspect-ratio:16/9;position:relative;overflow:hidden;background:#f5deb7;isolation:isolate}#viewport:fullscreen,#viewport:-webkit-full-screen,#viewport.expanded{position:fixed;inset:0;width:100vw;height:100vh;aspect-ratio:auto;background:#231f1b}#stage{position:absolute;width:1600px;height:900px;transform-origin:0 0;overflow:hidden;background-size:100% 100%;background-color:#faedd4}#media,#layer,#media video{position:absolute;inset:0;width:100%;height:100%}#media video{object-fit:fill;pointer-events:none}#layer{pointer-events:none;z-index:5}#layer button{pointer-events:auto}h1,h2,p{margin:0}.cover-hotspot{position:absolute;left:760px;top:590px;width:670px;height:235px;background:transparent;clip-path:ellipse(50% 47% at 50% 50%)}.cover-hotspot:hover{filter:drop-shadow(0 0 10px #ffe7b5)}.jewel{width:252px;height:85px;padding:15px 35px 8px;background:transparent url('assets/button-skin.png') center/100% 100% no-repeat;font-size:25px;font-weight:900;letter-spacing:1px;text-shadow:0 2px 0 #fff4ba;filter:drop-shadow(0 5px 4px #9e633730);transition:transform .14s,filter .14s;white-space:nowrap}.jewel:hover:not(:disabled){transform:translateY(-3px) scale(1.03);filter:drop-shadow(0 8px 6px #a4663740) brightness(1.07)}.jewel:active:not(:disabled){transform:translateY(3px) scale(.97)}.jewel.pink{filter:hue-rotate(-14deg) drop-shadow(0 4px 3px #94583933)}.jewel.mint{filter:hue-rotate(36deg) drop-shadow(0 4px 3px #94583933)}.jewel.tiny{width:170px;height:59px;font-size:20px;padding:12px 18px 5px}.board{position:absolute;left:750px;top:28px;width:815px;height:805px;border:6px solid #fff4da;border-radius:45px;background:linear-gradient(155deg,#fffdf3fa,#ffefcfee 62%,#f7dfbbee);box-shadow:inset 0 4px 0 #fff,0 7px 0 #d6a575,0 14px 30px #875d2f33;padding:21px 28px}.board header{display:flex;align-items:center;justify-content:space-between}.chapter{display:flex;gap:13px;font-size:18px;font-weight:800;margin-bottom:7px;color:#b69673}.chapter em{font-style:normal}.chapter .current{color:#a3572f;text-shadow:0 1px white}.board h1{font-size:40px;letter-spacing:3px;color:#75452d}.board header p{font-size:23px;margin-top:6px;color:#916541}.count{border-radius:30px;background:linear-gradient(150deg,#fff8dc,#f4cd80);padding:12px 17px;border:3px solid #fff9e4;box-shadow:inset 0 3px 0 white,0 5px 0 #cd9c60;white-space:nowrap;font-size:22px}.count b{font-size:45px;color:#bd6636}.groups{display:flex;align-items:center;justify-content:space-around;margin-top:13px;gap:9px}.group-label{text-align:center;font-size:21px;font-weight:800;margin-bottom:8px}.items{display:flex;gap:10px}.choice{width:143px;height:149px;border:3px solid #e5be80;border-radius:28px;background:radial-gradient(ellipse at 28% 0%,#fff 0%,#fffbec 35%,#f6dfb4 100%);position:relative;box-shadow:inset 0 4px 1px #fff, inset 0 -4px 7px #d9a56240,0 5px 0 #cbae80,0 8px 12px #9c734822;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:22px;font-weight:800;transition:transform .14s}.choice:hover{transform:translateY(-3px)}.choice.selected{border-color:#d7854d;background:radial-gradient(ellipse at 30% 0%,#fffbed,#ffe3a6);box-shadow:inset 0 4px white,0 5px 0 #bc7b4b,0 0 0 4px #ffdb89}.choice i{display:none;position:absolute;top:-10px;right:-7px;background:linear-gradient(#f9d27c,#dc8c47);color:#75452d;border:3px solid #fff5d5;border-radius:50%;width:32px;height:32px;font-size:22px;text-align:center;font-style:normal;box-shadow:0 3px 0 #ae754a}.choice.selected i{display:block}.sprite{display:inline-block;width:105px;height:105px;background-image:var(--atlas);background-size:400% 400%;background-position:var(--x) var(--y);flex-shrink:0}.plus{font-size:34px;color:#cba16c}.actions{display:flex;justify-content:center;gap:32px;margin-top:11px}.feedback{font-size:22px;color:#805838;line-height:1.4;min-height:47px;padding-top:2px;text-align:center}.album-head{display:flex;align-items:center;justify-content:space-between;margin-top:0}.album-head h2{font-size:26px}.album-head>div{display:flex;gap:4px}.album{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:5px}.combo{height:133px;border:3px solid #e5c994;border-radius:22px;background:linear-gradient(#fffdf4,#f9e9c8);box-shadow:inset 0 3px 0 white,0 4px 0 #d9be92;text-align:center;padding:8px 2px}.combo .sprite{width:65px;height:71px}.pair{display:flex;justify-content:center;align-items:center}.pair b{font-size:15px;color:#b39670}.combo small{display:block;font-size:17px;font-weight:800;margin-top:3px;white-space:nowrap}.empty{display:grid;place-items:center;font-size:40px;color:#d3b786;background:#faedcc88;box-shadow:inset 0 3px 8px #be95641a}.duplicate{border-color:#db7959;box-shadow:0 0 0 5px #ffe18b}.board footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px}.board footer p{font-size:21px;line-height:1.4;max-width:405px}.next{width:266px;font-size:23px}.six .choice{width:122px;height:138px}.six .choice .sprite{width:96px;height:96px}.six .groups{gap:5px}.six .items{gap:8px}.six .actions{margin-top:4px}.six .album{grid-template-columns:repeat(3,1fr);gap:8px}.six .combo{height:94px;padding:2px}.six .combo .sprite{width:55px;height:55px}.six .combo small{font-size:17px;margin-top:0}.six .board footer{margin-top:6px}.six footer .jewel{height:73px}.teacher{position:absolute;bottom:14px;left:24px}.teacher-pop{position:absolute;left:0;bottom:48px;display:flex;gap:3px;background:#ffefda;border:3px solid #ffe9bf;border-radius:28px;padding:13px;box-shadow:0 8px 20px #543b3525;pointer-events:auto}.result-caption{position:absolute;left:90px;bottom:70px;width:530px;text-align:center;font-size:27px;font-weight:800;color:#785133;text-shadow:0 2px 0 #fff1d6,0 0 10px #fff9e9;background:linear-gradient(90deg,transparent,#fff2d4dd 20%,#fff2d4dd 80%,transparent);padding:13px}.notice-card{position:absolute;left:725px;top:205px;width:820px;padding:42px 30px;border-radius:45px;border:6px solid #fff6e2;background:linear-gradient(#fff9ea,#ffe9c4);box-shadow:inset 0 3px white,0 12px 0 #dab57e;text-align:center}.notice-card h1{font-size:43px;margin-bottom:22px}.notice-card p{font-size:27px;line-height:1.65;margin-bottom:20px}.notice-card h2{font-size:31px;margin-bottom:13px}.notice-card .jewel{margin:6px}.summary{top:165px}.summary .star{font-size:48px;color:#dda544;margin-bottom:15px}.cinematic #layer button{display:none!important}.cinematic #layer{pointer-events:none}#cloud{display:none}#scene-result{position:absolute;inset:0;z-index:3;pointer-events:none}#scene-result .display-item{position:absolute;filter:drop-shadow(0 8px 4px #79523540)}#scene-result.food .item-0{left:260px;top:420px}#scene-result.food .item-1{left:435px;top:445px}#scene-result.food .item-0 .sprite{width:200px;height:200px}#scene-result.food .item-1 .sprite{width:155px;height:155px}#scene-result.gift .item-0{left:410px;top:417px}#scene-result.gift .item-0 .sprite{width:242px;height:242px}#scene-result.gift .item-1{left:536px;top:502px}#scene-result.gift .item-1 .sprite{width:104px;height:104px}.transforming #scene-result .display-item{animation:reveal .28s ease-out both}@keyframes reveal{from{opacity:0;transform:scale(.6) translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.jewel,.choice{transition:none}.transforming #scene-result .display-item{animation:none}}

/* 图集第三排下沿避开下一排挂环，保持原资产不变。 */
.sprite.row-2{clip-path:inset(0 0 12% 0)}
/* v004：简单软圆按钮；ImageGen透明材质，白字与点击语义由H5提供。 */
.jewel{background-image:url('assets/button.png');color:#fff;font-family:"Yuanti SC","STYuanti","PingFang SC",sans-serif;font-weight:900;font-size:27px;letter-spacing:1px;padding:0;display:inline-grid;place-items:center;text-shadow:0 2px 1px #32642160;filter:drop-shadow(0 3px 2px #80633524)}
.jewel.pink{filter:hue-rotate(-70deg) saturate(1.2) drop-shadow(0 3px 2px #80633524)}
.jewel.mint{filter:none}.jewel.tiny{width:174px;height:62px;padding:0;font-size:21px}.jewel.next{width:266px;font-size:25px}.jewel:hover:not(:disabled){filter:brightness(1.09);transform:translateY(-2px)}
.jewel.pink:hover:not(:disabled){filter:hue-rotate(-70deg) saturate(1.2) brightness(1.09)}
.actions{gap:0}.teacher-pop{gap:4px}.six footer .jewel{height:79px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.summary-art{position:absolute;inset:0}.summary-hotspot{position:absolute;background:transparent;border-radius:70px;cursor:pointer}
.summary-hotspot:hover{background:#ffffff12}.summary-hotspot:active{background:#6635000d}
.summary-hotspot.review-0{left:215px;top:521px;width:380px;height:127px}
.summary-hotspot.review-1{left:612px;top:521px;width:380px;height:127px}
.summary-hotspot.review-2{left:1009px;top:521px;width:380px;height:127px}
.summary-hotspot.replay-banquet{left:285px;top:666px;width:505px;height:139px}
.summary-hotspot.summary-home{left:810px;top:666px;width:505px;height:139px}

/* 最终暖色系：只给图片材质着色，文字保持清晰；封面原图不参与。 */
.jewel,.jewel.pink,.jewel.mint{position:relative;isolation:isolate;background:none;filter:none;text-shadow:0 2px 1px #9b4b1f55}
.jewel::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/button.png') center/100% 100% no-repeat;filter:hue-rotate(-70deg) saturate(1.05)}
.jewel.pink::before{filter:hue-rotate(-92deg) saturate(.95)}
.jewel.tiny,.jewel.mint{color:#7b4829;text-shadow:0 1px 0 #fff2dc}
.jewel.tiny::before,.jewel.mint::before{filter:hue-rotate(-74deg) saturate(.55) brightness(1.30)}
.jewel:hover:not(:disabled),.jewel.pink:hover:not(:disabled){filter:brightness(1.06)}

/* 教师入口弱化并移至左下角，菜单向右展开。 */
#tools.jewel.tiny{width:138px;height:43px;font-size:17px;font-weight:600;letter-spacing:0;color:#856a50;text-shadow:none;opacity:.8}
#tools.jewel::before{opacity:.72}
#tools.jewel:hover,#tools.jewel:focus-visible{opacity:1;transform:none}

/* v005：显式文字层定位，按胶囊实体而非阴影作视觉居中。 */
.jewel,.jewel.tiny,.jewel.next{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;text-align:center}
.button-label{display:block;line-height:1;position:relative;transform:translateY(-.07em);white-space:nowrap;text-align:center}
.choice .choice-label{display:flex;align-items:center;justify-content:center;min-height:1.25em;width:100%;line-height:1.15;text-align:center}
.banquet-title{position:absolute;left:0;right:0;top:42px;z-index:4;pointer-events:none;text-align:center;font-family:"Yuanti SC","STYuanti","PingFang SC",sans-serif;font-size:74px;line-height:1.2;font-weight:900;letter-spacing:5px;color:#fff4bd;-webkit-text-stroke:2px #94451b;paint-order:stroke fill;text-shadow:0 5px 0 #7e3417,0 9px 16px #75421988;animation:title-in .35s ease-out both}
@keyframes title-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.banquet-title{animation:none}}

/* v008：章节卷轴独立于操作面板，主次操作各归其位。 */
.quest-progress{position:absolute;left:38px;top:32px;padding:10px 19px;border:2px solid #e6b96d;border-radius:15px;background:linear-gradient(180deg,#fff4d7 0%,#ffebbc 48%,#f2d99f 100%);box-shadow:inset 0 3px 0 #fffbed,inset 0 -3px 0 #dcb46c55,0 5px 13px #7c441e30;color:#997449}
.quest-progress::before,.quest-progress::after{content:"";position:absolute;top:-6px;bottom:-6px;width:12px;border-radius:8px;border:1px solid #bd833a;background:linear-gradient(90deg,#b78138,#fbe0a0 45%,#d9a34e 75%,#bb833c);box-shadow:0 2px 3px #8b53252a}
.quest-progress::before{left:-6px}.quest-progress::after{right:-6px}
.quest-progress ol{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:18px}
.quest-step{display:flex;align-items:center;gap:8px;position:relative;min-height:47px;padding:5px 10px;font-size:23px;font-weight:800;line-height:1;border:1px solid transparent;border-radius:12px;white-space:nowrap}
.quest-step+.quest-step::before{content:"";position:absolute;left:-14px;top:50%;width:8px;height:2px;background:#c9a464;box-shadow:0 1px #fff7db}
.step-seal{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:16px;border:1px solid #d1b27d;background:#f7e6c2;color:#9d7b4d}
.quest-step.current{color:#fff8e9;border-color:#b85737;background:linear-gradient(#df9360,#bd623c);box-shadow:inset 0 2px #ffe4b385,0 2px 0 #995136;text-shadow:0 1px 0 #954a28}
.quest-step.current .step-seal{color:#aa522f;background:#fff1c7;border-color:#ffdf9e;text-shadow:none}
.quest-step.complete{color:#93632e}.quest-step.complete .step-seal{background:linear-gradient(#ffe8a9,#e9bd62);color:#80541e;border-color:#d5a34d}
.album-head{min-height:32px;margin-top:0}
.board footer{position:absolute;left:28px;right:28px;bottom:24px;margin:0;min-height:79px}
.board footer p{max-width:400px;font-size:20px;line-height:1.5}
.board footer .jewel.next{height:79px;flex-shrink:0}
.hint-corner{position:absolute;right:34px;bottom:14px}
.hint-corner .jewel.tiny{width:146px;height:47px;font-size:19px;letter-spacing:1px}
.hint-corner .jewel::before{filter:hue-rotate(-74deg) saturate(.55) brightness(1.24)}
