/* Menu content uses the existing pixel challenge vocabulary and typography.
   Only the live background blur behavior references the supplied video. */
.menu-preview .scene-toolbar{display:none}
.menu-preview #loading{display:none}
.contract-menu-root{--menu-ivory:#eee5d3;--menu-muted:#a5a9ac;--menu-gold:#d7bc83;position:fixed;inset:0;z-index:10;pointer-events:none;color:var(--menu-ivory);font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.contract-menu-root [hidden]{display:none!important}
.contract-menu-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:32px 24px;pointer-events:auto;visibility:visible;overscroll-behavior:contain}
.contract-menu-dialog{width:min(540px,100%);margin:auto;flex:none;text-align:center}
.contract-menu-kicker{margin:0 0 17px;color:var(--menu-gold);font-size:12px;letter-spacing:4px}
.contract-menu-dialog h1{margin:0;color:#f3ead7;font:700 46px/1.3 "Songti SC","Noto Serif CJK SC",serif;letter-spacing:7px;text-indent:7px;text-shadow:0 2px 3px #0008}
.contract-menu-dialog h1:focus{outline:none}
.contract-menu-intro{margin:15px 0 36px;color:#b6b6ba;font-size:14px;line-height:1.8;letter-spacing:1px}
.contract-menu-form{margin:auto;width:min(440px,100%)}
.contract-mode-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:0;padding:0;margin:0 0 23px;text-align:left}
.contract-mode-choices legend{margin:0 0 11px;padding:0;color:#bdc0c1;font-size:12px;letter-spacing:1px}
.contract-mode{position:relative;display:block;margin:0;cursor:pointer}
.contract-mode>input{position:absolute;opacity:0;width:1px;height:1px}
.contract-mode>span{display:block;padding:21px 21px 18px;border:1px solid #52616b;background:#111c25e6;transition:background 140ms,border-color 140ms}
.contract-mode strong{display:block;color:#ece4d4;font:600 25px/1.35 "Songti SC",serif;letter-spacing:2px}
.contract-mode span span{display:block;margin-top:11px;color:#b5bbbf;font-size:12px;line-height:1.6}
.contract-mode small{display:block;margin-top:8px;color:#849c9f;font-size:10px;letter-spacing:1px}
.contract-mode input:checked+span{border-color:#8bbfc0;background:#233b43ed;box-shadow:inset 0 0 0 2px #13252b}
.contract-mode:hover>span{border-color:#c1c8b5}
.contract-mode input:focus-visible+span{outline:2px solid #efd69d;outline-offset:4px}
.contract-pool{display:flex;flex-direction:column;gap:10px;margin:0;text-align:left;color:#bdc0c1;font-size:12px;letter-spacing:1px}
.contract-pool select{margin:0;width:100%;height:47px;border:1px solid #52616b;border-radius:0;background:#121d26;color:#e8e1d4;padding:0 13px;font:14px "PingFang SC",sans-serif;cursor:pointer}
.contract-menu-rules{margin:15px 0 23px;color:#959ea3;font-size:12px;letter-spacing:2px}
.contract-menu-start{width:100%;height:52px;border:1px solid #f0d5a0;border-radius:0;background:#d5b780;color:#282725;font:600 16px "PingFang SC",sans-serif;letter-spacing:4px;box-shadow:inset 0 -3px #9b7b49;transition:background 140ms}
.contract-menu-start:hover:not(:disabled){background:#e8cc99}
.contract-menu-start:active:not(:disabled){background:#bf9f68}
.contract-menu-start:disabled{opacity:.5;cursor:wait}
.contract-menu-resume{display:block;width:100%;height:42px;margin-top:10px;border:1px solid #536c70;border-radius:0;background:#14252ce6;color:#d4e3df;font-size:14px;letter-spacing:2px}
.contract-menu-resume:hover{background:#284248}
.contract-menu-status{margin:8px 0 0;min-height:18px;color:#bab3a2;font-size:12px}
.contract-menu-motion{display:flex;align-items:center;justify-content:center;gap:8px;margin:13px 0 0;font-size:11px;color:#89979d}
.contract-menu-motion input{accent-color:#a0bcaf}
.contract-menu-return{position:absolute;top:25px;left:28px;pointer-events:auto;min-height:40px;padding:0 14px;border:1px solid #80979570;border-radius:0;background:#101923c7;color:#dbddcf;font-size:12px;letter-spacing:1px}
.contract-menu-return kbd{margin-left:14px;color:#84959b;font:10px "PingFang SC",sans-serif}
.contract-menu-root :is(button,select,input):focus-visible{outline:2px solid #efd69d;outline-offset:4px}
/* Native submenus switch visibility directly. The animated transparency is
   the live background's black mix, not an opacity fade of these controls. */
.menu-preview[data-menu-open="false"] .contract-menu-overlay{pointer-events:none;visibility:hidden}
.menu-preview[data-menu-reduced="true"] .contract-menu-overlay,.menu-preview[data-menu-reduced="true"] .contract-menu-root *{transition:none!important}
@media(max-height:720px) and (min-width:761px){.contract-menu-overlay{padding-block:24px}.contract-menu-kicker{margin-bottom:10px}.contract-menu-dialog h1{font-size:38px}.contract-menu-intro{margin:9px 0 22px}.contract-mode>span{padding:16px 18px}.contract-menu-rules{margin-block:13px 16px}.contract-menu-motion{margin-top:8px}}
@media(max-width:760px){.contract-menu-overlay{padding:28px 24px}.contract-menu-dialog h1{font-size:36px;letter-spacing:5px}.contract-menu-intro{font-size:12px;margin-bottom:28px}.contract-menu-kicker{font-size:10px;letter-spacing:3px}.contract-mode-choices{gap:10px}.contract-mode>span{padding:17px 12px}.contract-mode strong{font-size:24px}.contract-mode span span{font-size:11px}.contract-pool select{font-size:16px}.contract-menu-return{top:16px;left:16px}}
@media(prefers-reduced-motion:reduce){.contract-menu-root *{transition:none!important}}
