:root{--ink:#382d25;--paper:#f5f0e7;--accent:#93654b;--line:#c9baa7;--white:#fffdf8;font-family:Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #976043;outline-offset:3px}button{border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);padding:11px 15px}button:hover{background:#ede2d4}.solid{background:var(--ink);border-color:var(--ink);color:white}.solid:hover{background:#594231}.outline{background:transparent}.quiet{background:#fffaf3cc;border-color:#d7cdbd}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700}#app{height:100dvh;min-height:540px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0;background:#e5ddce;touch-action:none}canvas{display:block}header{position:absolute;top:0;left:0;right:0;height:105px;display:flex;align-items:center;gap:40px;padding:0 40px;background:linear-gradient(#faf7f0f5,#faf7f0b0,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{font-size:23px;letter-spacing:2px;text-decoration:none;color:var(--ink);position:relative;width:170px}.brand>span{font:italic 28px Georgia;letter-spacing:-1px}.brand small{display:block;font-size:8px;letter-spacing:4px;margin:3px 0 0 32px}.project{font-size:10px;letter-spacing:2px;border-left:1px solid #aa9783;padding:8px 0 8px 25px}.project span{display:block;font-size:12px;letter-spacing:0;margin-top:7px}header #edit{margin-left:auto;font-size:12px}.intro{position:absolute;left:40px;top:128px;pointer-events:none;text-shadow:0 1px 10px #fffcf1}.intro h1{font:normal 30px/1.17 Georgia,serif;margin:14px 0}.intro p{font-size:12px;line-height:1.5;max-width:280px;background:#f8f3e8ce;padding:8px 10px;border-radius:5px}.tools{position:absolute;right:35px;top:135px;display:flex;flex-direction:column;gap:8px}.tools button{background:#fffaf2e8;font-size:11px}.journey{position:absolute;left:50%;bottom:107px;transform:translateX(-50%);width:min(550px,calc(100% - 36px));background:#fffaf3f2;border:1px solid #e1d5c4;border-radius:12px;padding:18px 20px;box-shadow:0 7px 32px #40281220;backdrop-filter:blur(10px)}.journey-top{display:flex;justify-content:space-between;align-items:center}.journey-top #step{font-size:11px;color:#877568}.location{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.location button{border:0;background:transparent;font-size:23px;padding:5px 10px}.location div{text-align:center}.location h2{font:normal 25px Georgia;margin:0 0 4px}.location span{font-size:10px;color:#796756}.room-list{display:flex;gap:6px;overflow:auto;scrollbar-width:thin;padding:3px 0}.room-list button{flex-shrink:0;font-size:10px;padding:7px 9px;border-radius:20px;background:transparent}.room-list button.active{background:var(--ink);color:white;border-color:var(--ink)}footer{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:21px 40px;background:#faf7f1f5;border-top:1px solid #e3dace}footer>span{font-size:11px;color:#837363}footer>div{display:flex;gap:10px}footer button{font-size:12px;padding:13px 20px}footer .solid span{margin-left:25px}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f0e7f5;z-index:20}#loading strong{font:28px Georgia;margin-top:25px}#loading p{font-size:12px;max-width:300px;text-align:center;line-height:1.6}.spinner{width:34px;height:34px;border:2px solid #d7c9b5;border-top-color:#77533b;border-radius:50%;animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hotspot{position:absolute;border-radius:50%;width:43px;height:43px;padding:0;font-size:25px;background:#fff8e9e8;border:1px solid #ae8a67;box-shadow:0 3px 14px #38200d44;transform:translate(-50%,-50%);pointer-events:auto}.hotspot:after{content:attr(data-name);position:absolute;top:46px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;background:#fffaf3e8;padding:5px 8px;border-radius:4px;pointer-events:none}#hotspots{position:absolute;inset:0;pointer-events:none}dialog{border:1px solid #d8ccbd;border-radius:14px;padding:28px;width:min(540px,calc(100vw - 28px));max-height:85dvh;background:var(--white);color:var(--ink);box-shadow:0 15px 90px #30241930}dialog::backdrop{background:#30271f66;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head button{background:transparent;border:0;padding:3px 6px}dialog h2{font:29px Georgia;margin:18px 0 12px}dialog p{font-size:13px;line-height:1.6;color:#766553}dialog label{display:block;font-size:12px;margin:16px 0}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid #cbbcaa;background:white;color:var(--ink);border-radius:5px;padding:11px}#edit-rows{max-height:40dvh;overflow:auto}#edit-rows label{display:flex;align-items:center;gap:12px;margin:10px 0}#edit-rows label span{font-size:11px;color:#8c7967;min-width:25px}#edit-rows input{margin:0}.editor-actions{display:flex;gap:8px;margin-top:20px}.fine{font-size:11px!important}#toast{position:absolute;z-index:40;top:110px;left:50%;transform:translateX(-50%);max-width:90%;background:#382d25;color:#fff;border-radius:7px;padding:13px 20px;font-size:12px;display:none}body.plan .intro{display:none}@media(max-width:640px){header{height:85px;padding:0 18px;gap:15px}.brand{font-size:18px;width:130px}.brand>span{font-size:24px}.brand small{font-size:7px}.project{display:none}header #edit{padding:9px;font-size:10px}.intro{left:20px;top:100px}.intro h1{font-size:24px}.intro p{font-size:10px;max-width:210px}.intro .eyebrow{font-size:8px}.tools{right:15px;top:105px;gap:6px}.tools button{padding:9px 7px;font-size:9px}.journey{bottom:113px;padding:13px 13px}.location h2{font-size:23px}footer{padding:12px 16px;flex-direction:column;gap:8px}footer>span{font-size:9px}footer>div{width:100%}footer button{flex:1;font-size:10px;padding:12px 8px}footer .solid span{margin-left:8px}dialog{padding:21px}.editor-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
