
:root{--ink:#735039;--cream:#fff8e9;--accent:#dc885b;color-scheme:light;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:#a86c42}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #fff3c7;outline-offset:5px}button:disabled{cursor:default}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.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}[hidden]{display:none!important}
.experience{height:100svh;min-height:420px;padding:12px}.scene{position:relative;height:100%;overflow:hidden;border-radius:26px;background:#d8a571;box-shadow:0 12px 35px #70432130}.room{position:absolute;inset:0;background:url('hall-interior.png') center top/cover no-repeat}.scene-meta{position:absolute;z-index:5;left:24px;right:24px;top:max(20px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;pointer-events:none}.scene-meta>*{pointer-events:auto}.online-badge{display:inline-flex;align-items:center;gap:7px;background:#fff9e8e8;border:1px solid #fff8;border-radius:20px;padding:8px 13px;font-size:12px;backdrop-filter:blur(8px);box-shadow:0 3px 12px #57301d10}.online-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:#9c916d}.online-badge[data-state=online]:before{background:#73975c}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #fff9;border-radius:50%;background:#fff8e5e8;color:#896545;box-shadow:0 3px 12px #57301d15}.icon-button svg{width:19px;height:19px}.family-book{position:absolute;z-index:5;right:26px;top:44%;display:grid;justify-items:center;gap:5px;width:76px;padding:17px 10px 13px;border:1px solid #d4ad74;border-left:7px solid #647449;border-radius:5px 12px 12px 5px;background:linear-gradient(110deg,#92a176,#7a8a61);color:#fff3d4;box-shadow:2px 4px 0 #eed9ac,3px 7px 0 #ad845a,5px 12px 14px #6b3f293b;transform:rotate(4deg);transition:transform .2s;font-size:15px;letter-spacing:3px}.family-book svg{width:30px;height:30px;stroke-width:1.2}.family-book:hover{transform:rotate(0) translateY(-3px)}.family-book:active{transform:translateY(3px)}
.controls{position:absolute;left:50%;bottom:max(28px,calc(env(safe-area-inset-bottom) + 14px));transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:10px;padding:9px;border:1px solid #ffefd08a;border-radius:25px;background:#fff4dfbd;backdrop-filter:blur(16px);box-shadow:0 10px 30px #68432624}.action{height:50px;min-width:76px;border:1px solid #e6caa2;border-radius:17px;background:#fff7e7;color:#8b6546;padding:0 19px;font-size:14px;font-weight:600;white-space:nowrap;box-shadow:0 3px 0 #d9bb92;transition:transform .15s,background .2s}.action:hover{background:#fffdf4;transform:translateY(-2px)}.action:active{transform:translateY(2px);box-shadow:none}.action.primary{min-width:142px;background:#d98758;border-color:#c87547;color:#fff8e7;box-shadow:0 4px 0 #aa603a;font-size:18px;letter-spacing:2px}.primary span{font-size:22px}.action.primary:hover{background:#e39364}.action.primary:disabled{opacity:.85;transform:translateY(2px);box-shadow:0 1px 0 #aa603a}.action[aria-pressed=true]:not(.sound){background:#e5ead7;border-color:#bec8a6;color:#6e8053}.sound{font-size:12px;min-width:91px}.sound>span:first-child{font-size:20px;margin-right:4px}
.seat{position:absolute;width:88px;height:42px;border:3px solid #e2b987;border-radius:50%;background:repeating-radial-gradient(ellipse,#e9caa0 0 3px,#e3bf90 4px 5px);box-shadow:0 8px 0 #bd8b5d,0 13px 15px #7941203a;transform:translate(-50%,-50%);cursor:pointer;transition:filter .2s}.seat:hover,.seat[aria-pressed="true"]{filter:brightness(1.12);outline:3px solid #fff5d8;outline-offset:4px}.visitor{position:absolute;width:80px;height:95px;transform:translate(-50%,-85%);transition:left .8s ease,top .8s ease;pointer-events:none;z-index:2}.person{position:absolute;inset:0;transform-origin:center 90%;transition:transform 1s}.head{width:54px;height:52px;position:absolute;top:0;left:13px;border-radius:48% 48% 46% 46%;background:radial-gradient(circle at 30% 25%,#77533b,#493327 70%);box-shadow:inset -5px -4px 5px #30241d42,2px 4px 4px #3e251d28;z-index:3}.head:before,.head:after{content:'';position:absolute;top:24px;width:11px;height:15px;border-radius:50%;background:#efbd92;z-index:-1}.head:before{left:-5px}.head:after{right:-5px}.head i{position:absolute;width:23px;height:19px;top:-8px;left:15px;border-radius:50%;background:radial-gradient(circle at 40% 25%,#816044,#4b3224)}.body{position:absolute;top:42px;left:14px;width:52px;height:45px;border-radius:19px 19px 15px 15px;background:linear-gradient(100deg,#9faf85,#788e66);box-shadow:inset -7px -2px 6px #536c4233}.body:before,.body:after{content:'';position:absolute;top:8px;width:14px;height:33px;border-radius:10px;background:#91a67b}.body:before{left:-8px;transform:rotate(15deg)}.body:after{right:-8px;transform:rotate(-15deg)}.feet{position:absolute;bottom:2px;left:12px;width:56px;height:13px;border-radius:50%;background:#5a4437;box-shadow:0 8px 8px #57371e33}.name-tag{position:absolute;top:105px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;background:#fff7e8eb;border:1px solid #ffffffa0;padding:1px 10px;border-radius:15px;color:#8c6c51}.bowing .person{animation:bow 2s ease-in-out}.sitting .person{transform:scaleY(.75) translateY(16px)}.blessing{position:absolute;left:50%;top:48%;transform:translate(-50%,10px);opacity:0;color:#fff9e6;text-shadow:0 2px 8px #b36b33;font-size:20px;pointer-events:none}.blessing.show{animation:bless 2.2s ease}
.name-tag{max-width:180px;overflow:hidden;text-overflow:ellipsis}.blessing{top:42%;font-size:23px;letter-spacing:3px}.members-dialog{width:min(560px,calc(100vw - 28px));max-height:85svh;border:1px solid #ead0ad;border-radius:26px;padding:28px;background:#fff8e9;color:var(--ink);box-shadow:0 24px 90px #4e2c3159;overflow:auto}.members-dialog::backdrop{background:#543b2948;backdrop-filter:blur(6px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.dialog-kicker{font-size:11px;letter-spacing:2px;color:#b29676}h2{font-size:25px;margin:6px 0 0;font-weight:650;letter-spacing:1px}.close-dialog{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border:0;border-radius:50%;background:#f2e6d2;color:#997757;font-size:23px;line-height:1}.member-search{display:flex;align-items:center;gap:10px;background:#f5ead7;padding:11px 14px;border-radius:14px;margin-bottom:20px}.member-search svg{width:18px;height:18px;color:#ab9277;flex-shrink:0}.member-search input{width:100%;background:transparent;color:var(--ink);border:0;outline:none;padding:0;font-size:13px}.member-search input::placeholder{color:#ad947b}.members{display:grid;grid-template-columns:1fr 1fr;gap:11px}.member{display:flex;align-items:center;gap:12px;min-height:83px;border:1px solid #eddfc6;border-radius:18px;padding:14px;background:#fffcf4}.initial{display:grid;place-items:center;width:42px;height:46px;flex-shrink:0;border-radius:15px;background:#e9edda;color:#7f8d60;font:24px serif}.initial.pink{background:#f6e3dc;color:#bc8b76}.initial.gold{background:#f4e8cb;color:#b19458}.member h3{font-size:15px;font-weight:600;margin:0}.tag{display:block;font-size:10px;color:#b29a7a;margin-top:6px}#no-results{text-align:center;font-size:13px;color:#ac9173;padding:24px 0}
@keyframes bow{0%,100%{transform:scaleY(1)}45%,65%{transform:translateY(20px) scaleY(.48)}}@keyframes bless{0%{opacity:0;transform:translate(-50%,15px)}25%,75%{opacity:1}100%{opacity:0;transform:translate(-50%,-28px)}}
@media(max-width:700px){.experience{padding:0}.scene{border-radius:0}.room{background-size:auto 100%;background-position:center top}.scene-meta{left:14px;right:14px;top:max(15px,env(safe-area-inset-top))}.online-badge{font-size:10px;padding:7px 10px}.family-book{right:16px;top:43%;width:59px;padding:12px 6px 10px;font-size:12px;border-left-width:5px;border-radius:4px 9px 9px 4px;gap:4px}.family-book svg{width:24px;height:24px}.controls{gap:7px;padding:8px;border-radius:23px;bottom:max(22px,calc(env(safe-area-inset-bottom) + 10px))}.action{height:46px;min-width:62px;padding:0 13px;font-size:13px}.action.primary{min-width:121px;font-size:17px}.sound{font-size:11px;min-width:82px;padding:0 10px}.sound>span:first-child{font-size:18px;margin-right:2px}.seat{width:65px;height:33px}.visitor{scale:.85;transform-origin:center bottom}.members-dialog{padding:22px;max-height:84svh}.members{gap:9px}.member{gap:9px;padding:12px 10px;min-height:77px}.member h3{font-size:14px}.initial{width:35px;height:40px;border-radius:12px;font-size:22px}.blessing{font-size:20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.bowing .person{transform:scaleY(.6)}.blessing.show{opacity:1}}
