:root{color:#3d2819;font-synthesis:none;background:#352217;font-family:Kaiti SC,STKaiti,KaiTi,Songti SC,serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,[tabindex]:focus-visible{outline-offset:5px;outline:2px solid #a16328}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}#app{background:#352217;width:100vw;height:100svh;overflow:hidden}#scene-viewport{scrollbar-width:none;width:100%;height:100%;overflow:auto}#scene-stage{isolation:isolate;aspect-ratio:3/2;width:max(100vw,150svh);margin:0;position:relative;overflow:hidden;container-type:inline-size}.scene-background{-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute}#board{touch-action:none;outline-offset:-5px;width:100%;height:100%;position:absolute;inset:0}#board.dragging{cursor:grabbing;touch-action:none}#scene-plane{transform-origin:0 0;pointer-events:none;width:1536px;height:1024px;position:absolute;inset:0}.scene-plane{transform-origin:0 0;pointer-events:auto;position:absolute;top:0;left:0}#settings{-webkit-user-select:none;user-select:none;padding:10px 43px 12px}.settings-patina{pointer-events:none;opacity:.82;width:100%;height:100%;position:absolute;inset:0}#settings>:not(.settings-patina){position:relative}#settings h1,.setting-row label{color:#513b29}#settings h1{text-align:center;text-shadow:0 1px #fff6;margin:0 0 8px;font-family:Xingkai SC,STXingkai,Kaiti SC,KaiTi,cursive;font-size:36px;font-weight:400}#settings h1 span{display:inline-block}#settings h1 span:first-child{margin-right:12px;transform:rotate(-8deg)translateY(1px)}#settings h1 span:last-child{transform:rotate(5deg)translateY(-2px)}.setting-row{align-items:center;gap:18px;height:33px;margin-bottom:9px;font-size:27px;display:flex}.setting-row label{cursor:default;letter-spacing:7px;white-space:nowrap;flex:1}.wood-switch{cursor:default;touch-action:none;background:linear-gradient(#4d301c,#8b6240);border:1px solid #6c4a2a;border-radius:20px;flex-shrink:0;width:62px;height:29px;padding:0;position:relative;box-shadow:inset 0 3px 5px #2b160da6,0 1px 1px #f3d4a9}.wood-knob{width:28px;height:28px;box-shadow:var(--cast-x) var(--cast-y) 4px #30190b8c, inset 1px 2px 2px #f3d3a0, inset -1px -2px 2px #7f4f29;transform:translateX(var(--knob-x,32px));background:repeating-linear-gradient(82deg,#ad7845 0,#cb955b 3px,#d8a76c 5px,#c68e54 6px);border:1px solid #7f4f29;border-radius:50%;transition:transform .18s;position:absolute;top:-1px;left:0}.wood-switch[aria-checked=false] .wood-knob{--knob-x:0px}.wood-switch.sliding .wood-knob{transition:none}.setting-footer{color:#50351f;letter-spacing:5px;justify-content:center;align-items:center;margin-top:13px;font-size:21px;display:flex}.wood-press{background:#75502e;border:1px solid #79502d;border-radius:6px;width:95px;height:33px;padding:0;box-shadow:inset 0 2px 5px #392110a3}.wood-press span{height:31px;box-shadow:0 5px 0 #845c37, var(--cast-x) calc(5px + var(--cast-y)) 6px #42251270, inset 0 1px 1px #efd0a0;background:repeating-linear-gradient(87deg,#c79861 0,#d3a56e 4px,#c89a63 6px,#ba8853 7px);border-radius:5px;padding-top:3px;transition:transform .16s ease-out,box-shadow .16s ease-out;display:block;transform:translateY(-5px)}.wood-press:active span{box-shadow:0 1px 0 #845c37, calc(var(--cast-x) * .2) calc(1px + var(--cast-y) * .2) 3px #42251250, inset 0 1px 1px #efd0a0;transition-duration:60ms;transform:translateY(0)}#manuscript{-webkit-user-select:none;user-select:none;touch-action:none;pointer-events:none;width:1536px;height:1024px}#paper-canvas{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.page-print{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.page-ink>:not(button){opacity:0}.book-space{pointer-events:none;width:100%;height:100%;position:relative}.book-page{transform-origin:0 0;pointer-events:auto;touch-action:none;cursor:grab;position:absolute;top:0;left:0}#manuscript[aria-busy=true] .book-page{cursor:grabbing}.book-page.left,.book-page.right{left:0}.page-ink{color:#4e3520;text-shadow:0 1px #f6d3a34d;height:100%;padding:24px 29px 20px;position:relative}.page-ink h2{letter-spacing:6px;text-align:center;margin:0 0 11px;font-size:30px;font-weight:500}.page-ink .seal{color:#99462f;border:2px solid #99462f;border-radius:4px;width:32px;height:35px;margin-left:3px;font-size:25px;line-height:31px;display:inline-block;position:absolute;top:68px;left:29px;transform:rotate(-7deg);box-shadow:inset 0 0 0 1px #99462f88}.page-ink h3{letter-spacing:3px;text-align:center;margin:26px 0 7px;font-size:22px;font-weight:400}.page-ink .puzzle-name{text-align:center;letter-spacing:3px;margin:0 0 12px;font-size:15px}.mini-board{opacity:.83;width:132px;height:153px;margin:auto;display:block;overflow:visible}.page-verse{writing-mode:vertical-rl;letter-spacing:3px;font-size:16px;line-height:1.5;position:absolute;top:149px;left:20px}.puzzle-map{cursor:pointer;background:0 0;border:0;width:120px;height:150px;padding:0;position:absolute;top:160px;left:89px}.puzzle-map .mini-board{opacity:0;width:100%;height:100%;margin:0}.book-navigation{pointer-events:none;transform-origin:0 0;letter-spacing:2px;justify-content:space-between;align-items:center;font-size:14px;display:flex;position:absolute;top:0;left:0}.book-navigation button{pointer-events:auto;background:0 0;border:0;width:46px;height:30px;font-size:31px;line-height:20px}#move-hint{letter-spacing:.09em;color:#503622;text-shadow:0 1px #f4d7a9;pointer-events:none;background:#f1d2a878;border-radius:3px;padding:.45em 1em;font-size:clamp(11px,1.05cqw,17px);position:absolute;bottom:2.4%;left:22%}#move-hint span{opacity:.7;margin-top:4px;font-size:.8em;display:block}#loading{background:#efd8b6ed;border:1px solid #a37c4c;border-radius:4px;padding:12px 23px;font-size:18px;position:absolute;top:58%;left:42%;transform:translate(-50%,-50%)}#victory{text-align:center;background:#efd3a6 url(/scene/parchment.jpg) 50%/cover;border-radius:6px;width:260px;padding:25px;position:absolute;top:58%;left:38%;transform:translate(-50%,-50%);box-shadow:8px 14px 30px #331c1370}#victory>span{color:#9c4f2a;font-size:30px}#victory h2{letter-spacing:5px;margin:7px 0;font-weight:400}#victory p{font-size:15px}#victory button{background:#f0d6af;border:1px solid #846340;border-radius:3px;padding:7px 20px}.mobile-note{display:none}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important}}
