*{box-sizing:border-box}body{margin:0;background:#e6e7e2;color:#263b36;font:14px/1.6 "Segoe UI","Microsoft JhengHei",sans-serif}#viewport{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:fixed;top:26px;left:28px;right:28px;display:flex;align-items:center;gap:18px;pointer-events:none}h1{font-size:21px;letter-spacing:4px;margin:0}header p{margin:0;font-size:11px;letter-spacing:2px}.brand{font:42px Georgia,serif;position:relative}.dot{font-size:8px;color:#a18151;position:absolute;right:-6px;top:2px}.badge{margin-left:auto;font-size:12px;padding:7px 12px;background:#ffffffbb;border:1px solid #fff;border-radius:30px}aside{position:fixed;left:28px;top:115px;width:260px;max-height:calc(100dvh - 200px);overflow:auto;border-radius:18px;background:#fcfcf6ed;box-shadow:0 14px 50px #23383114;padding:23px;scrollbar-width:thin;backdrop-filter:blur(12px)}.eyebrow{font-size:9px;letter-spacing:2px;color:#8b957f}h2{font-size:24px;letter-spacing:2px;font-weight:500;margin:9px 0}p.intro{font-size:12px;color:#77817a;margin:0 0 22px}h3{font-size:11px;letter-spacing:1px;margin:20px 0 9px;color:#7f887c}button{font:inherit;cursor:pointer;border:1px solid #dde2d8;color:#374b40;background:transparent;border-radius:7px;padding:9px 10px;transition:background .15s}button:hover{background:#e5ebde}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #8a6b41;outline-offset:3px}.modes{display:flex;gap:4px}.modes button{flex:1;font-size:12px}.modes .active{color:#fff;background:#324c42;border-color:#324c42}.rooms{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rooms button{font-size:12px;text-align:left}label{display:block;font-size:12px;margin:8px 0}input[type=checkbox]{accent-color:#324c42;margin-right:9px}.colorline{display:flex;align-items:center;justify-content:space-between}input[type=color]{border:0;padding:0;width:32px;height:22px;background:transparent}details{font-size:11px;color:#717a6c;border-top:1px solid #e5e7dd;padding-top:13px;margin-top:12px}summary{cursor:pointer}details p{margin:9px 0}input[type=range]{width:100%;accent-color:#324c42}output{float:right}.plain{display:block;border:0;padding:9px 0;font-size:11px;width:100%;text-align:left}footer{position:fixed;left:315px;right:28px;bottom:25px;display:flex;align-items:center;justify-content:space-between;font-size:12px;background:#fcfcf6df;padding:13px 18px;border-radius:12px}#status{font-weight:600}#hint{color:#788071}#loading{position:fixed;inset:0;background:#eeeee9;display:grid;place-items:center;font-size:18px}#touch{display:none;position:fixed;right:26px;bottom:95px;text-align:center}#touch button{width:48px;height:48px;background:#fcfcf6df;font-size:24px;margin:2px}dialog{border:0;border-radius:18px;padding:24px;max-width:95vw;max-height:90dvh;color:#324c42}dialog::backdrop{background:#1a3026aa}dialog img{display:block;max-width:100%;max-height:70dvh}dialog p{text-align:center;font-size:12px}#closeplan{float:right;border:0}@media(max-width:800px){header{top:15px;left:18px;right:18px}aside{left:15px;top:auto;bottom:70px;width:210px;max-height:40dvh;padding:16px}h2{font-size:20px}.intro,.eyebrow{display:none}footer{left:15px;right:15px;bottom:15px;font-size:10px;padding:10px}#hint{max-width:65%;text-align:right}.badge{font-size:10px}#touch{right:15px;bottom:80px}}
