:root{--ink:#103b48;--teal:#0b6170;--gold:#efb446;--cream:#fffaf0;--green:#34764a}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;color:var(--ink);font-family:"DengXian","Microsoft YaHei",sans-serif}button{font:inherit;font-size:18px;cursor:pointer;border:0;color:var(--ink);border-radius:16px;transition:transform .18s,background .18s,box-shadow .18s}button:hover{transform:translateY(-2px);box-shadow:0 5px 18px #0002}button:active{transform:scale(.97)}button:focus-visible{outline:4px solid #ffc650;outline-offset:4px}.hidden{display:none!important}#room{height:100%;position:relative;background:#dfcaa4}#panorama{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#panorama:active{cursor:grabbing}#vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#132d3d30,transparent 28%,transparent 72%,#17312955)}header{position:absolute;left:38px;right:38px;top:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;pointer-events:none}.brand,.tools{pointer-events:auto}.brand{background:#fffaf0eb;padding:18px 25px;border-radius:18px;box-shadow:0 6px 30px #152b3620;border:1px solid #fff9}.eyebrow{font-size:16px;letter-spacing:2px;color:#816029;font-weight:bold}.brand b{font-family:"Microsoft YaHei",sans-serif;display:block;font-size:34px;margin-top:5px}.tools{display:flex;gap:8px}.tools button{background:#fffc;padding:12px 15px;backdrop-filter:blur(10px)}#progress{position:absolute;left:40px;top:158px;background:#fffaf0ef;border-radius:40px;display:flex;align-items:center;gap:12px;padding:12px 21px;font-size:20px;box-shadow:0 3px 18px #0001}.light{width:10px;height:10px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 5px #f3ba4430}#count{color:var(--teal);margin-left:12px}.compass{position:absolute;right:38px;bottom:171px;width:79px;height:79px;border:1px solid #fff8;border-radius:50%;background:#fff9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px}.compass span:last-child{font-size:14px}#hint{position:absolute;bottom:143px;left:50%;transform:translateX(-50%);background:#173943c9;color:white;padding:9px 22px;border-radius:30px;font-size:18px;white-space:nowrap;backdrop-filter:blur(12px)}.people{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);display:flex;gap:16px}.people button{display:grid;grid-template-columns:36px auto;grid-template-rows:30px 22px;column-gap:13px;align-items:center;min-width:215px;text-align:left;background:#fffaf0f2;padding:16px 20px;border:1px solid white;font-size:21px;font-weight:bold}.people i{grid-row:1/3;border:1px solid #d9c292;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:15px;font-style:normal;color:#9c6c21}.people span{grid-column:2;font-size:16px;font-weight:normal;color:#6a7c79}.people button.done{background:#eefbeff2}.people button.done i{background:#398352;color:#fff;border:0}.hotspot{position:absolute;left:0;top:0;display:flex;align-items:center;gap:9px;padding:9px 16px 9px 9px;border:2px solid #fff;background:#fffc;box-shadow:0 4px 25px #20372540;white-space:nowrap;font-size:20px;font-weight:bold;will-change:left,top;transform:translate(-50%,-50%);border-radius:32px}.hotspot:hover{transform:translate(-50%,-50%) scale(1.07)}.hotspot .dot{display:grid;place-items:center;border-radius:50%;width:34px;height:34px;background:#e5a335;color:#fff;box-shadow:0 0 0 5px #e5a33524;font-size:17px}.hotspot.done .dot{background:#398352}.hotspot::after{content:"";position:absolute;left:50%;top:100%;height:26px;border-left:2px solid #fff9}.card{position:absolute;right:40px;top:155px;width:390px;background:#fffaf0f7;border:1px solid #fff;border-radius:24px;padding:31px;box-shadow:0 22px 60px #13242d40;backdrop-filter:blur(18px);animation:arrive .4s ease-out}.close{position:absolute;right:15px;top:12px;width:35px;height:35px;background:#efe5d2;font-size:27px}.card h1{font-family:"Microsoft YaHei",sans-serif;font-size:30px;margin:15px 0}.card p{font-size:23px;line-height:1.4}.card .instruction{font-size:18px;color:#71837e;margin-bottom:26px}#word{padding:16px 0;border-top:1px solid #dfd6bd;margin-top:15px}#phrase{font-size:29px;color:var(--teal)}#sentence{font-size:23px;margin-bottom:15px}.primary{background:var(--teal);color:#fff;padding:16px 27px;font-size:22px;box-shadow:0 6px 18px #0b617026;font-weight:bold}.primary:hover{background:#0e7381}.primary:disabled{opacity:.5;cursor:wait}.secondary{padding:16px 22px;font-size:19px;background:#eee6d3;margin-left:8px}.card .primary{width:100%}.complete{position:absolute;left:50%;bottom:143px;transform:translateX(-50%);width:min(850px,85%);display:flex;align-items:center;gap:15px;padding:20px 25px;background:#fffaf0f9;border:1px solid white;border-radius:24px;box-shadow:0 12px 50px #10263040;animation:arrive .4s ease-out}.complete img{width:125px}.complete h2{font-size:28px;margin:0 0 8px}.complete p{font-size:19px;margin:0 0 16px}.start,.returned{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(110deg,#19384968,#e4cc9744);backdrop-filter:blur(6px)}.entry-paper{position:relative;background:linear-gradient(135deg,#fffdf6,#fff4da);border:2px solid #fff9;border-radius:28px;padding:51px 59px;box-shadow:0 25px 85px #19333338;width:650px;z-index:2}.entry-paper h1{font-family:"Microsoft YaHei",sans-serif;color:var(--teal);font-size:52px;line-height:1.2;margin:24px 0}.entry-paper p{font-size:23px;line-height:1.7}.entry-paper .entry-note{font-size:17px;color:#73827b;margin-top:25px;margin-bottom:0}.steps{display:flex;gap:20px;align-items:center;padding:14px 0 32px;font-size:22px}.steps span{padding:8px 20px;background:#f5d79170;border-radius:30px}.steps b{font-weight:normal;color:#ad965b}.reporter{height:460px;max-height:68vh;position:relative;margin-left:-80px;z-index:3;pointer-events:none;filter:drop-shadow(0 16px 26px #1d282c25)}.returned .entry-paper{width:710px;text-align:center}.returned .entry-paper h1{font-size:42px}.returned .entry-paper p{font-size:22px}#toast{position:absolute;left:50%;top:30px;transform:translateX(-50%);background:#103d42eb;color:#fff;padding:14px 28px;border-radius:30px;font-size:20px;pointer-events:none;opacity:0;transition:opacity .3s}#toast.show{opacity:1}#spark{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,#fff9 0,transparent 65%);opacity:0}#spark.flash{animation:flash .6s ease-out}@keyframes flash{0%{opacity:.75}100%{opacity:0}}@keyframes arrive{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}body.reduced *,body.reduced *::after{animation:none!important;transition:none!important}@media(max-width:1000px){header{left:20px;right:20px;top:20px}.brand{padding:12px 17px}.brand b{font-size:27px}.eyebrow{font-size:13px}.tools{gap:5px}.tools button{padding:11px;font-size:16px}#progress{left:20px;top:134px}.people{gap:8px;bottom:24px}.people button{min-width:180px;padding:12px;font-size:18px}.card{right:20px;top:129px;width:345px;padding:23px}.card h1{font-size:27px}.card p{font-size:20px}#hint{font-size:16px;bottom:128px}.entry-paper{width:560px;padding:35px}.entry-paper h1{font-size:43px}.reporter{height:360px;margin-left:-100px}.entry-paper p{font-size:21px}.compass{display:none}.complete{bottom:128px}.complete .primary{font-size:20px;padding:12px 18px}}
:root .people button{grid-template-rows:minmax(30px,auto) 22px}
.people button:last-child{min-width:290px}
@media(max-width:700px){header{left:12px;right:12px;top:12px}.brand{display:none}.tools{display:grid;grid-template-columns:1fr 1fr;width:100%}.tools button{font-size:18px;padding:9px 6px;border-radius:11px}#progress{left:12px;top:115px;font-size:18px;padding:10px 14px}.people{display:grid;grid-template-columns:1fr 1fr;width:calc(100% - 24px);bottom:12px;gap:7px}.people button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;text-align:center;font-size:18px;padding:9px 5px}.people button:last-child{min-width:0;grid-column:1/-1}.people i{display:none}.people span{font-size:16px}#hint{display:none}.card{top:auto;bottom:174px;left:12px;right:12px;width:auto;max-height:62vh;overflow:auto;padding:25px 20px}.card h1{font-size:25px}.card p{font-size:20px}.card .primary{font-size:20px;padding:13px}.hotspot{font-size:18px;padding:7px 12px 7px 7px}.entry-paper,.returned .entry-paper{width:calc(100% - 24px);padding:28px 22px}.entry-paper h1,.returned .entry-paper h1{font-size:36px}.entry-paper p{font-size:21px}.reporter{display:none}.steps{gap:9px;font-size:20px}.steps span{padding:7px 13px}.entry-paper .primary{font-size:20px}.complete{bottom:174px;width:calc(100% - 24px);padding:19px;display:block;text-align:center}.complete img{width:67px}.complete h2{font-size:24px}.complete p{font-size:18px}.complete .primary,.complete .secondary{font-size:18px;margin:5px 0;padding:12px}#toast{font-size:18px;top:160px;max-width:95%;width:max-content;text-align:center}}

/* Large independent activity images retain their native detail. */
.card{top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%);width:min(1040px,92vw);max-height:calc(100vh - 170px);overflow:auto;padding:26px 30px 30px;border:2px solid #f4d69c;box-shadow:0 25px 100px #18272c70}
.card h1{margin:8px 0 18px;font-size:31px}.observation{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center}
#detailPhoto{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:15px;border:5px solid #e4c284;box-shadow:0 5px 15px #503a2820}
.detail-copy p{font-size:25px;line-height:1.5}.detail-copy .instruction{font-size:20px;margin:14px 0 22px}.detail-copy #phrase{font-size:30px}.detail-copy #sentence{font-size:25px}
.card .close{right:18px;top:18px;width:40px;height:40px;font-size:31px}.card .eyebrow{font-size:18px}.card .primary{font-size:22px}
@media(max-width:700px){.card{top:49%;width:calc(100% - 24px);max-height:76vh;padding:23px;left:50%}.observation{grid-template-columns:1fr;gap:6px}#detailPhoto{max-height:26vh}.card h1{font-size:24px;margin:4px 0 10px}.detail-copy p,.detail-copy #sentence{font-size:20px}.detail-copy .instruction{font-size:18px;margin:6px 0 12px}.detail-copy #phrase{font-size:24px}.card .primary{font-size:20px}}
