:root{--ink:#23302a;--paper:#f6f3ec;--green:#2f8f8b;--line:#d9d3c5;--text:#4a564f;--muted:#5d6a63;--faint:#7d877f;--soft:#e7e2d6;--softer:#d6cfbf;--field:#fff;--sky:#9cc4e4;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--ink:#e5e7eb;--paper:#1c1f26;--line:#2a2e37;--text:#b6bcc6;--muted:#9aa1ac;--faint:#8b93a1;--soft:#2a2e37;--softer:#363b47;--field:#14161b;--sky:#2b3a5c}html,body{background:var(--sky);height:100%;color:var(--ink);margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#stick,#home,.touch-only{display:none}body.touch .touch-only{display:block}body.touch .desk-only,body.touch #crosshair,body.touch #target,body.touch #hint{display:none}body.touch #stick{left:max(24px, env(safe-area-inset-left));touch-action:none;background:#141c1847;border:2px solid #fff9;border-radius:50%;width:120px;height:120px;display:block;position:fixed;bottom:34px}#knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:52px;height:52px;margin:-26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 6px #0000004d}#stick:not(.used) #knob{animation:1.6s ease-in-out infinite nudge}@keyframes nudge{0%,to{transform:translate(0)}45%{transform:translateY(-24px)}}#stick .arrow{pointer-events:none;opacity:.8;border:6px solid #0000;width:0;height:0;margin:-6px;position:absolute;top:50%;left:50%}#stick .up{border-bottom-color:#fff;transform:translateY(-44px)}#stick .down{border-top-color:#fff;transform:translateY(44px)}#stick .left{border-right-color:#fff;transform:translate(-44px)}#stick .right{border-left-color:#fff;transform:translate(44px)}#stick-label{white-space:nowrap;color:#fff;pointer-events:none;background:#141c1899;border-radius:10px;margin-top:6px;padding:2px 8px;font-size:12px;position:absolute;top:100%;left:50%;transform:translate(-50%)}#stick.used #stick-label{display:none}body.touch #home{right:max(16px, env(safe-area-inset-right));color:#fff;background:#141c188c;border:0;border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1;display:block;position:fixed;bottom:52px}body.touch.panel-open #stick,body.touch.panel-open #home{display:none}.hidden{display:none!important}#crosshair{pointer-events:none;background:#fff;border-radius:50%;width:6px;height:6px;margin:-3px;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #00000073}#crosshair.aim{box-sizing:border-box;background:0 0;border:2px solid #fff;width:14px;height:14px;margin:-7px}#target{color:#fff;white-space:nowrap;pointer-events:none;opacity:0;background:#141c18b8;border-radius:12px;padding:4px 10px;font-size:13px;transition:opacity .15s;position:fixed;top:calc(50% + 18px);left:50%;transform:translate(-50%)}#target.show{opacity:1}#hint{box-sizing:border-box;color:#fff;pointer-events:none;background:#141c188c;border-radius:6px;max-width:calc(100vw - 150px);padding:6px 10px;font-size:12px;position:fixed;bottom:14px;left:16px}#top{right:max(16px, env(safe-area-inset-right));align-items:center;gap:8px;display:flex;position:fixed;top:12px}#search-btn{color:#fff;font:inherit;cursor:pointer;white-space:nowrap;background:#141c18b3;border:0;border-radius:18px;padding:8px 14px;font-size:14px}#search-btn:hover{background:#141c18e6}body.panel-open #top,#start:not(.hidden)~#top #search-btn{display:none}#search{z-index:5;background:#141c1873;justify-content:center;align-items:flex-start;padding-top:8vh;display:flex;position:fixed;inset:0}#search .box{background:var(--paper);border-radius:12px;flex-direction:column;width:min(560px,92vw);max-height:78vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000059}.search-row{border-bottom:1px solid var(--line);gap:8px;padding:12px;display:flex}#search-input{border:1px solid var(--line);min-width:0;font:inherit;background:var(--field);color:var(--ink);-webkit-user-select:text;user-select:text;border-radius:8px;flex:1;padding:10px 12px;font-size:16px}#search-close{color:#fff;cursor:pointer;background:#d92d2d;border:0;border-radius:8px;flex:none;width:42px;font-size:18px}#search-results{-webkit-overflow-scrolling:touch;margin:0;padding:6px;list-style:none;overflow-y:auto}#search-results li{cursor:pointer;border-radius:8px;flex-direction:column;padding:9px 12px;display:flex}#search-results li b{font-weight:600}#search-results li span{color:var(--muted);font-size:13px}#search-results li:hover,#search-results li.current{background:var(--soft)}#search-results li.empty{cursor:default;color:var(--muted)}#credit{color:#fff;background:#141c188c;border-radius:6px;padding:6px 10px;font-size:12px;position:fixed;bottom:14px;right:16px}#credit:hover{background:#141c18cc}#credit a{color:inherit;text-decoration:none}#credit a:first-child{font-weight:700}.presented{color:var(--muted);margin:14px 0 0;font-size:13px}.presented a{color:var(--green);font-weight:600}.disclaimer{color:var(--faint);margin:10px 0 0;font-size:11.5px;line-height:1.45}#minimap{background:#ddd;border:2px solid #fffc;border-radius:8px;width:140px;height:280px;position:fixed;top:16px;left:16px;box-shadow:0 2px 10px #0000004d}#panel{z-index:4;box-sizing:border-box;background:var(--paper);border-radius:12px;flex-direction:column;width:min(540px,92vw);max-height:80vh;display:flex;position:fixed;bottom:18px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 30px #00000059}#panel.demo{width:auto;max-height:none;inset:3vh 3vw;transform:none;box-shadow:0 0 0 100vmax #141c188c}body.demo-open #scene{pointer-events:none}#stall{padding:14px 58px 14px 16px;position:relative}#stall p{margin:0}#stall-no{letter-spacing:.04em;text-transform:uppercase;color:var(--green);font-size:12px}#stall h2{margin:2px 0 4px;font-size:21px;line-height:1.2}#stall-pitch{color:var(--text);font-size:14px;line-height:1.45}#panel.demo #stall{padding-top:8px;padding-bottom:10px}#panel.demo #stall-no,#panel.demo #stall-pitch{display:none}#links{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}#links button{border:1.5px solid var(--green);background:var(--green);color:#fff;font:inherit;cursor:pointer;border-radius:8px;padding:9px 16px;font-size:15px}#links button:hover{filter:brightness(1.08)}#panel.demo #links{margin-top:6px}#panel.demo #links button{color:var(--ink);background:0 0;padding:5px 12px;font-size:14px}#panel.demo #links button.current{background:var(--green);color:#fff}#close{color:#fff;cursor:pointer;background:#d92d2d;border:0;border-radius:8px;width:36px;height:36px;font-size:18px;font-weight:700;line-height:1;position:absolute;top:12px;right:12px}#close:hover{background:#b81f1f}#close:after{content:attr(data-tip);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#23302a;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:400;transition:opacity .12s;position:absolute;top:calc(100% + 6px);right:0}#panel:not(.demo) #close:after{top:auto;bottom:0;right:calc(100% + 6px)}#close:focus-visible:after{opacity:1}@media (hover:hover){#close:hover:after{opacity:1}}#view{background:var(--field);border-top:1px solid var(--line);flex:1;min-height:0;display:none;position:relative}#panel.demo #view{display:block}#frame{background:var(--field);border:0;width:100%;height:100%;position:absolute;inset:0}#open{background:var(--soft);color:var(--ink);border-radius:14px;padding:4px 10px;font-size:13px;text-decoration:none;display:none;position:absolute;top:18px;right:58px}#open:hover{background:var(--softer)}#panel.demo #open{display:block}#start{background:linear-gradient(#1e32288c,#1e3228bf);place-items:center;display:grid;position:fixed;inset:0}#start .card{box-sizing:border-box;background:var(--paper);border-radius:12px;width:min(560px,88vw);max-height:92vh;padding:28px 32px;overflow:auto}#start h1{margin:2px 0 8px;font-size:32px}.kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--green);margin:0;font-size:13px}#start ul{padding-left:18px;font-size:14px;line-height:1.6}#start-info{color:var(--muted);margin:0}#enter{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;margin-top:8px;padding:11px 22px;font-size:16px}#enter:disabled{opacity:.5;cursor:default}@media (height<=500px){#start ul{display:none}#panel.demo #stall{align-items:center;gap:10px;padding:5px 92px 5px 10px;display:flex}#panel.demo #stall h2{white-space:nowrap;margin:0;font-size:15px}#panel.demo #links{flex-wrap:nowrap;margin:0}#panel.demo #links button{white-space:nowrap;padding:3px 9px;font-size:13px}#panel.demo #close{width:32px;height:32px;top:4px;right:6px}#panel.demo #open{top:8px;right:46px}}@media (width<=820px),(height<=500px){#panel.demo{box-shadow:none;border-radius:0;inset:0}#open span{display:none}#minimap{width:80px;height:160px;left:max(10px, env(safe-area-inset-left));top:10px}#credit{bottom:10px;right:max(10px, env(safe-area-inset-right))}#top{top:8px;right:max(10px, env(safe-area-inset-right));gap:6px}#search-btn{padding:7px 12px;font-size:13px}#search{padding-top:10px}#search .box{max-height:calc(100vh - 20px)}#start .card{padding:20px 22px}#start h1{font-size:24px}}
