@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Manrope:wght@400;500;600;700&display=swap');
:root{--gold:#c6a66b;--ivory:#f4efdf;--green:#102d29}*{box-sizing:border-box}body{margin:0;background:#122e29;color:var(--ivory);font:14px Manrope,system-ui,sans-serif;overflow:hidden}button,.upload{font:inherit;cursor:pointer;border:1px solid #c6a66b55;color:inherit;background:#15362fe6;border-radius:6px;padding:11px 16px;transition:.2s}button:hover,.upload:hover{background:#c6a66b;color:#18362e}button:focus-visible{outline:2px solid #fff}button:disabled{opacity:.5}#scene{position:fixed;inset:0}#scene canvas{width:100%;height:100%;touch-action:none}header{position:absolute;top:0;left:0;right:0;padding:25px 34px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#0c2429e8,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:14px}.emblem{font-size:44px;color:var(--gold)}strong{letter-spacing:4px;font-size:17px}small{font-size:10px;line-height:1.6;color:#c6cbbf}.brand small{display:block;letter-spacing:2px;font-size:8px;margin-top:6px}nav{display:flex;gap:10px}#progress{margin-left:8px;color:#d8bc80}.intro{position:absolute;top:135px;left:45px;pointer-events:none;text-shadow:0 2px 12px #09211e}.intro>span,.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold)}h1{font:52px/1.04 'Cormorant Garamond',Georgia,serif;font-weight:400;margin:20px 0}h1 i{color:#e3d4ae}.intro p{color:#d3d9cb;font-size:12px}.tags{font-size:9px;letter-spacing:1px;color:#bfcbbf;margin-top:24px}footer{position:absolute;bottom:0;width:100%;padding:25px 32px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(transparent,#0a2425df);pointer-events:none}footer>*{pointer-events:auto}.footnote{margin-left:280px;font-size:10px;letter-spacing:1px}.footnote small{display:block;font-size:8px;margin-top:6px}.toolbar{display:flex;gap:8px}.toolbar button{font-size:11px;padding:12px}.mapWrap{position:absolute;left:28px;bottom:24px;width:242px;background:#102d29e8;border:1px solid #bca27366;border-radius:9px;padding:14px;backdrop-filter:blur(10px)}.mapWrap canvas{width:100%;height:145px;cursor:pointer}.mapWrap small{font-size:8px}.eyebrow span{float:right;font-size:8px}#labels button{position:absolute;transform:translate(-50%,-50%);background:#102d29e8;font-size:11px;white-space:nowrap;box-shadow:0 6px 24px #0004;padding:9px 15px;border-color:#c6a66b99}#labels button::before{content:'◇';color:#d0b87e;margin-right:8px}aside{position:absolute;right:24px;top:103px;bottom:100px;width:365px;overflow:auto;background:#f3efdf;color:#213c34;border:1px solid #d2bd8b;padding:25px;border-radius:9px;box-shadow:0 20px 70px #001a1e80}aside h2{font:34px Georgia,serif;margin:12px 0}aside p{line-height:1.8;font-size:12px}aside button,aside .upload{background:transparent;color:#234237;border-color:#acac8b;font-size:10px}aside button:hover{background:#173e32;color:white}.close{position:absolute;right:10px;top:10px;padding:3px 10px;font-size:22px!important;background:transparent!important;color:inherit!important}#modelView{height:180px;background:radial-gradient(#e8e2cd,#d6d7bd);border-radius:5px;touch-action:none}#modelView canvas{max-width:100%;height:100%}.caption{display:block;color:#657463;text-align:center;font-size:8px;margin-top:5px}.actions,.tabs,.pager{display:flex;gap:7px;margin:15px 0}.actions>*{flex:1}.pager{justify-content:space-between;border-top:1px solid #bec4ad;padding-top:15px}#question{padding:12px;background:#e3e6d6;border-radius:6px;font-size:12px}#question button{display:block;width:100%;margin-top:8px;text-align:left}#question .correct{background:#27774f;color:white}#question .wrong{background:#ead3c1}#photoView{width:100%;border-radius:5px}#reopen{position:absolute;right:24px;top:115px}#toast{position:absolute;left:50%;bottom:110px;transform:translateX(-50%);background:#143b32ee;padding:12px 20px;border:1px solid #c6a66b88;border-radius:8px;display:none;max-width:90%;font-size:12px;z-index:20}dialog{color:#e9e6d7;background:#153a31;border:1px solid #c6a66b;border-radius:12px;max-width:460px;padding:35px;line-height:1.8}dialog::backdrop{background:#071c24a8;backdrop-filter:blur(5px)}#loading{position:fixed;inset:0;background:#12352e;display:grid;place-content:center;z-index:50}#joystick{display:none;position:absolute;bottom:105px;left:25px;width:100px;height:100px;border:1px solid #c6a66b88;border-radius:50%;background:#143b3266;touch-action:none}#stick{position:absolute;left:32px;top:32px;width:36px;height:36px;border:1px solid #f0dfa8aa;border-radius:50%;background:#c6a66b66}#hands{position:absolute;bottom:70px;left:38%;width:24%;font-size:65px;pointer-events:none;opacity:.24;filter:sepia(1);transform:perspective(200px) rotateX(25deg)}#hands span{float:right;transform:scaleX(-1)}#video{position:absolute;right:20px;bottom:105px;width:160px;border-radius:8px;transform:scaleX(-1);border:1px solid var(--gold)}#gestureCursor{position:fixed;width:18px;height:18px;border:2px solid #e9c46b;border-radius:50%;pointer-events:none;z-index:99}@media(max-width:800px){header{padding:15px}.brand strong{font-size:12px;letter-spacing:2px}.emblem{font-size:30px}.brand small{font-size:6px}.desktop{display:none}nav{gap:5px}nav button{font-size:9px;padding:8px}.intro{top:100px;left:22px}.intro>span{font-size:7px}h1{font-size:38px;margin:12px 0}.intro p,.tags{font-size:9px}.mapWrap{bottom:80px;left:auto;right:14px;width:150px;padding:9px}.mapWrap canvas{height:100px}.mapWrap small{display:none}.mapWrap .eyebrow{font-size:7px;letter-spacing:1px}.footnote{display:none}footer{padding:14px}.toolbar{width:100%;justify-content:center}.toolbar button{font-size:10px;padding:10px}#joystick{display:block}aside{top:auto;left:140px;right:10px;bottom:76px;width:auto;max-height:60vh;padding:18px}aside h2{font-size:25px}#modelView{height:130px}#hands{left:35%;width:30%;font-size:40px;bottom:70px}#labels button{font-size:9px;padding:8px}#reopen{top:85px;right:10px}#video{bottom:80px;width:110px}#toast{bottom:64px}.intro:has(~aside:not([hidden])){opacity:.4}}[hidden]{display:none!important}

.fallback #labels{position:absolute;left:35px;top:410px;display:flex;gap:10px;flex-wrap:wrap;max-width:50%}.fallback #labels button{position:static;transform:none}.fallback #mapWrap,.fallback #joystick{display:none}.fallback #modelView{display:grid;place-content:center;padding:20px;font-size:12px}.fallback .footnote{margin-left:0}
