*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;overflow-x:auto}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-soft)}button{font-family:inherit}.app{user-select:none;-webkit-user-select:none}.clue-text{user-select:text;-webkit-user-select:text}@keyframes mrdPopShrink{0%{transform:translateY(var(--mrdY, 0px)) scale(1);opacity:1}15%{transform:translateY(var(--mrdY, 0px)) scale(1.15);opacity:1}30%{transform:translateY(var(--mrdY, 0px)) scale(1.12);opacity:1}to{transform:translateY(var(--mrdY, 0px)) scale(0);opacity:0}}.vanish-animation{animation:mrdPopShrink .55s cubic-bezier(.2,.9,.2,1) forwards}.mrdHoverGlow{transition:transform .1s cubic-bezier(.34,1.56,.64,1),box-shadow .1s cubic-bezier(.34,1.56,.64,1),outline .1s cubic-bezier(.34,1.56,.64,1);will-change:transform,box-shadow,outline;outline:4px solid transparent;outline-offset:-1px}.mrdHoverGlow:hover:not(:disabled):not(.placed){transform:scale(1.02);outline:4px solid rgb(99,180,255);outline-offset:-1px}.mrdHoverGlow:active:not(:disabled):not(.placed){transform:scale(.98);outline:4px solid rgb(99,180,255);outline-offset:-1px}button.mrdHoverGlow{outline:4px solid transparent;outline-offset:-1px;-webkit-tap-highlight-color:transparent}button.mrdHoverGlow:hover:not(:disabled):not(.placed){outline:4px solid rgb(99,180,255);outline-offset:-1px}button.mrdHoverGlow:focus-visible{outline:4px solid rgb(99,180,255);outline-offset:-1px}.mrdPortraitGroup .mrdPortraitChild{transition:transform .1s cubic-bezier(.34,1.56,.64,1),outline .1s cubic-bezier(.34,1.56,.64,1);will-change:transform,outline;outline:4px solid transparent;outline-offset:-1px;-webkit-tap-highlight-color:transparent}.mrdPortraitGroup:hover .mrdPortraitChild:not(:disabled){transform:scale(1.02);outline:4px solid rgb(99,180,255);outline-offset:-1px}.mrdPortraitGroup:active .mrdPortraitChild:not(:disabled){transform:scale(.98);outline:4px solid rgb(99,180,255);outline-offset:-1px}.mrdPortraitGroup.placed:hover .mrdPortraitChild,.mrdPortraitGroup.placed:active .mrdPortraitChild{transform:none;outline:4px solid transparent}.mrdPortraitChild:focus-visible{outline:4px solid rgb(99,180,255);outline-offset:-1px}.print-only{position:fixed;left:-9999px;top:0;width:11in;height:8.5in;z-index:-1;pointer-events:none}body.printing .print-only{left:0;z-index:99999}@media print{.app{display:none!important}.print-only{position:fixed!important;left:0!important;top:0!important;z-index:99999!important;background:#fff!important;pointer-events:auto!important}.print-page{display:flex!important;flex-direction:column!important}@page{size:landscape;margin:0}html,body{margin:0!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.print-page,.print-page *{--bg: #ffffff !important;--panel: #f8f8f8 !important;--text-muted: #666666 !important;--border: #333333 !important;--wall-thin: rgba(0,0,0,.3) !important;--wall-thick: rgba(0,0,0,.9) !important;--portrait-name-bg: #222222 !important}.print-page .portrait-name-bar{color:#000!important;background:#fff!important;border-top:1px solid #333!important;padding-top:3px!important;padding-bottom:3px!important;display:flex!important;align-items:center!important;justify-content:center!important;width:calc(100% + 6px)!important;margin:auto -3px -3px!important;box-sizing:border-box!important;border-bottom-left-radius:4px!important;border-bottom-right-radius:4px!important}.print-page .mrdPortraitGroup{gap:0px!important}.print-page .mrdPortraitChild{background:#fff!important;color:#000!important;padding:2px!important}.print-page .mrdPortraitChild,.print-page .mrdPortraitChild span,.print-page .mrdPortraitChild div,.print-page .mrdPortraitChild strong,.print-page .mrdPortraitChild b,.print-page .mrdPortraitChild em,.print-page .mrdPortraitChild *{color:#000!important;line-height:1!important}.print-page span[style*=textShadow]{text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 -1px 0 #000,0 1px 0 #000,-1px 0 0 #000,1px 0 0 #000!important;-webkit-text-stroke:1px #000!important}.print-page div,.print-page button{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.print-page .grid-note-letter,.print-page .grid-big-letter{color:#fff!important;-webkit-text-stroke:1.5px #000!important}body.print-bw .print-page{filter:grayscale(100%)!important}}@keyframes portraitSlideUp{0%{transform:translateY(80%) rotate(var(--initial-tilt, 0deg));animation-timing-function:cubic-bezier(.33,1,.68,1)}60%{transform:translateY(-8px) rotate(var(--tilt-overshoot, 0deg));animation-timing-function:cubic-bezier(.34,1.2,.64,1)}80%{transform:translateY(2px) rotate(0);animation-timing-function:ease-out}to{transform:translateY(0) rotate(0)}}.portrait-slide-up{animation:portraitSlideUp .55s forwards}@keyframes clueBoxPop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}.clue-box-pop{animation:clueBoxPop .25s ease-out forwards}@keyframes objectPop{0%{transform:scale(0) rotate(var(--initial-tilt, 0deg));opacity:0}60%{transform:scale(1.15) rotate(var(--tilt-overshoot, 0deg));opacity:1}80%{transform:scale(.97) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes objectPopTile{0%{transform:scale(0) rotate(var(--initial-tilt, 0deg));opacity:0}60%{transform:scale(1.08) rotate(var(--tilt-overshoot, 0deg));opacity:1}80%{transform:scale(.97) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.object-pop{animation:objectPop .35s ease-out forwards;transform-origin:center center}.object-pop-tile{animation:objectPopTile .35s ease-out forwards;transform-origin:center center}@keyframes pulse{0%{transform:scale(1)}30%{transform:scale(1.28)}to{transform:scale(1)}}.pulse-anim{animation:pulse .32s ease-out}@keyframes pulseSmall{0%{transform:scale(1)}30%{transform:scale(1.22)}to{transform:scale(1)}}.pulse-anim-small{animation:pulseSmall .2s ease-out}@keyframes pulseMedium{0%{transform:scale(1)}30%{transform:scale(1.18)}to{transform:scale(1)}}.pulse-anim-medium{animation:pulseMedium .26s ease-out}
