.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#0f0916c7}.tutorial-dialog,.ritual-dialog,.result-dialog{width:min(100%,680px);max-height:88vh;overflow:auto;padding:18px;border:1px solid var(--mc-gold);border-radius:18px;color:#f8efd4;background:var(--mc-ink);box-shadow:0 18px 70px #0000008c}.audio-control{position:fixed;z-index:20;top:8px;right:8px}.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}.memory-card strong:before{content:"归属："}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fff2a8;outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--mc-gold: #f4d77d;--mc-ink: #21162d;--mc-panel: rgb(255 255 255 / 9%);--mc-touch: 44px;--mc-card-ratio: 745 / 1088}.game-table{width:min(100%,1280px);min-height:100vh;margin:0 auto;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:12px;padding:12px;box-sizing:border-box}.opponent-area,.self-area{padding:12px;border-radius:16px;background:var(--mc-panel)}.opponent-hand,.hand{display:flex;flex-wrap:wrap;gap:6px;padding:4px;justify-content:center;align-items:center}.opponent-hand img,.hand-card,.pending-choice img{width:clamp(48px,11vw,92px);aspect-ratio:var(--mc-card-ratio);object-fit:contain;flex:0 0 auto}.hand-card{min-width:var(--mc-touch);min-height:var(--mc-touch);padding:2px;background:transparent}.hand-card img{width:100%;height:100%;object-fit:contain}.hand-card[aria-pressed=true]{outline:3px solid var(--mc-gold);transform:translateY(-6px)}.memory-lane{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:4px}.memory-card{min-width:0;padding:8px;border-radius:12px;background:var(--mc-panel);transition:transform .35s ease,box-shadow .35s ease}.memory-card img{display:block;width:100%;aspect-ratio:var(--mc-card-ratio);object-fit:contain}.memory-card.control-changed{transform:translateY(-5px);box-shadow:0 0 20px var(--mc-gold)}.reduce-motion .memory-card{transition:none}.self-area{position:sticky;bottom:0;z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.ritual-panel,.dialog-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ritual-panel button,.dialog-actions button,.pending-choice button{min-height:var(--mc-touch)}.ritual-dialog,.result-dialog{position:fixed;inset:auto 12px 12px;max-height:88vh;overflow:auto;z-index:10;padding:18px;border:1px solid var(--mc-gold);border-radius:18px;background:var(--mc-ink)}.pending-choice{padding:12px;border-radius:16px;background:var(--mc-panel)}.pending-choice img{pointer-events:none}.rotate-hint{display:none}@media(max-width:760px)and (orientation:portrait){.rotate-hint{display:flex;position:fixed;top:0;left:0;right:0;z-index:5;align-items:center;justify-content:center;gap:8px;padding:10px 12px;background:#0f0916eb;color:#ffe79d;font-size:14px;font-weight:600;border-bottom:1px solid var(--mc-gold)}.game-table{padding-top:52px}.memory-lane{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px}.memory-card{min-width:clamp(110px,38vw,160px);scroll-snap-align:center;flex:0 0 auto}}:root{font-family:system-ui,Microsoft YaHei,sans-serif;color:#f8efd4;background:#21162d;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top,#5c3b70,#21162d 58%)}button,a,input{font:inherit}button,.text-link,main>a{min-height:44px;border-radius:12px}button{border:1px solid #f4d77d;padding:10px 18px;color:#261b2e;background:#f4d77d;font-weight:700;cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:#ffe79d}.home-shell,.room-shell,.rules-shell{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:stretch;gap:18px}.game-logo{width:min(100%,430px);max-height:210px;object-fit:contain;margin:0 auto}h1{margin:0;font-family:Georgia,STSong,serif;color:#ffe79d}.role-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.invite-panel{padding:16px;border:1px solid #806b99;border-radius:16px;display:grid;gap:10px;text-align:left}.invite-panel input{width:100%;min-height:44px;padding:8px}.seat-list{border-radius:16px;background:#ffffff14}.rules-shell{text-align:left;line-height:1.7}@media(max-width:380px){.role-actions{grid-template-columns:1fr}}
