:root{--osd-font:"Barlow Semi Condensed", "Helvetica Neue", Arial, sans-serif;--osd-mono:"IBM Plex Mono", ui-monospace, monospace;--osd-bg:#0e0e10bd;--osd-bg-soft:#0e0e1073;--osd-line:#ffffff1f;--osd-fg:#f3f2ee;--osd-dim:#f3f2ee8c;--osd-accent:#ffb21e;--osd-ink:#141416}html,body{color:#fffaf0;-webkit-user-select:none;user-select:none;background:#f1c9a0;height:100%;margin:0;font-family:Cormorant Garamond,Georgia,serif;overflow:hidden}#view{cursor:crosshair;width:100vw;height:100vh;display:block}#hud{pointer-events:none;position:fixed;inset:0}#title{text-shadow:0 2px 24px #783c1473;flex-direction:column;justify-content:center;align-items:center;transition:opacity 2.5s;display:flex;position:absolute;inset:0}#title.gone{opacity:0}#title h1{letter-spacing:.08em;margin:0;font-size:clamp(42px,7vw,96px);font-weight:300}#title .sub{opacity:.85;margin:.2em 0 0;font-size:clamp(18px,2.2vw,28px);font-style:italic}#title .hint{letter-spacing:.3em;text-transform:uppercase;opacity:.7;margin-top:3em;font-size:16px;animation:3s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.25}}#error{z-index:50;text-align:center;white-space:pre-wrap;background:#28140ad9;justify-content:center;align-items:center;padding:40px;font-size:22px;display:flex;position:fixed;inset:0}#error[hidden]{display:none}#map canvas{width:100%;height:100%;position:absolute;inset:0}#map canvas:first-child{image-rendering:auto}#map canvas:last-child{cursor:crosshair}#map .map-places{flex-wrap:wrap;justify-content:center;gap:8px;max-width:92vw;display:flex}#loading{z-index:20;color:#fff8ec;background:radial-gradient(at 50% 60%,#f3d9a6 0%,#c98f5a 45%,#5b3a2a 100%);flex-direction:column;justify-content:center;align-items:center;gap:22px;font-family:Cormorant Garamond,Georgia,serif;transition:opacity 1.2s;display:flex;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .ld-title{letter-spacing:.08em;text-shadow:0 2px 24px #5a280a59;font-size:clamp(40px,7vw,76px);font-weight:300}#loading .ld-bar{background:#fff8ec40;border-radius:2px;width:min(320px,60vw);height:2px;overflow:hidden}#loading .ld-bar span{background:#fff8ec;width:0%;height:100%;transition:width .4s;display:block}#loading .ld-stage{letter-spacing:.06em;opacity:.85;font-size:19px;font-style:italic}kbd{border:1px solid var(--osd-line);min-width:1.5em;font:500 11px/1.6 var(--osd-mono);text-align:center;color:var(--osd-fg);background:#ffffff0f;border-radius:3px;margin-right:.25em;padding:0 .35em;display:inline-block}#controls{background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:500 12px var(--osd-font);text-transform:uppercase;letter-spacing:.14em;color:var(--osd-fg);white-space:nowrap;opacity:0;border-radius:4px;padding:6px 14px;transition:opacity 1.2s;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}#controls.show{opacity:.9}#petals{font:600 11px var(--osd-font);text-transform:uppercase;letter-spacing:.18em;color:var(--osd-accent);position:absolute;top:16px;right:104px}#stats{border-left:2px solid var(--osd-accent);background:var(--osd-bg-soft);font:11px/1.5 var(--osd-mono);white-space:pre;color:var(--osd-fg);padding:6px 9px;position:absolute;top:12px;left:14px}#stats:empty{display:none}#gear{pointer-events:auto;border:1px solid var(--osd-line);background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--osd-fg);font:600 11px var(--osd-font);letter-spacing:.2em;cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:6px 11px;display:flex;position:absolute;top:12px;right:14px}#gear .dot{background:var(--osd-accent);border-radius:50%;width:6px;height:6px}#gear:hover{border-color:var(--osd-accent)}#settings{pointer-events:auto;background:var(--osd-bg);border:1px solid var(--osd-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:min(380px,100vw - 28px);color:var(--osd-fg);font:500 14px var(--osd-font);border-radius:6px;position:absolute;top:52px;right:14px;overflow:hidden;box-shadow:0 12px 40px #00000059}#settings[hidden]{display:none}.osd-head{border-bottom:1px solid var(--osd-line);align-items:stretch;display:flex}.osd-mode{background:var(--osd-accent);color:var(--osd-ink);letter-spacing:.2em;align-items:center;padding:0 12px;font-size:11px;font-weight:700;display:flex}.osd-tabs{flex:1;display:flex}.osd-tab{color:var(--osd-dim);font:600 10px var(--osd-font);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:2px;padding:7px 0 6px;display:flex}.osd-tab i{font-size:15px;font-style:normal;line-height:1}.osd-tab.on{color:var(--osd-fg);border-bottom-color:var(--osd-accent)}.osd-tab:hover{color:var(--osd-fg)}.osd-body{padding:6px 0}.osd-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:0 14px 0 16px;display:flex;position:relative}.osd-row.sel{background:#ffb21e24}.osd-row.sel:before{content:"";background:var(--osd-accent);width:3px;position:absolute;top:5px;bottom:5px;left:0}.osd-row .lbl{text-transform:uppercase;letter-spacing:.1em;font-size:12.5px}.osd-row .val{font:500 12px var(--osd-mono);color:var(--osd-fg);align-items:center;gap:6px;display:flex}.osd-row .val b{text-align:center;min-width:78px;font-weight:500}.osd-row .val button{width:20px;height:22px;color:var(--osd-dim);font:600 16px var(--osd-font);cursor:pointer;background:0 0;border:0;border-radius:3px}.osd-row.sel .val button{color:var(--osd-accent)}.osd-row .val button:hover{background:#ffffff14}.osd-row.toggle .val b{color:var(--osd-dim)}.osd-row.toggle .val b.is-on{color:var(--osd-accent)}.osd-row .meter{background:repeating-linear-gradient(90deg, var(--osd-line) 0 1px, transparent 1px 7px);width:70px;height:8px;position:relative}.osd-row .meter:after{content:"";height:2px;width:calc(var(--k) * 100%);background:var(--osd-accent);position:absolute;top:3px;left:0}.osd-row .val b+button,.osd-row .meter+b{min-width:40px}.osd-row.action .val{color:var(--osd-accent)}.osd-row.keys{cursor:default;min-height:28px}.osd-row.keys .val{color:var(--osd-dim)}.osd-row input[type=number]{border:1px solid var(--osd-line);width:96px;color:var(--osd-fg);font:500 12px var(--osd-mono);text-align:right;background:#ffffff0f;border-radius:3px;padding:3px 6px}.osd-foot{border-top:1px solid var(--osd-line);font:500 10px var(--osd-font);letter-spacing:.12em;text-transform:uppercase;color:var(--osd-dim);justify-content:space-between;padding:8px 14px;display:flex}#map{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--osd-fg);font-family:var(--osd-font);background:#0a0a0c99;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}#map[hidden]{display:none}#map .map-title{font:600 11px var(--osd-font);letter-spacing:.22em;text-transform:uppercase;color:var(--osd-dim)}#map .map-frame{aspect-ratio:3200/2000;border:1px solid var(--osd-line);border-radius:4px;width:min(92vw,150vh);max-height:74vh;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000073}#map .map-frame:after{content:"";pointer-events:none;--c:var(--osd-fg);background:linear-gradient(var(--c), var(--c)) top left / 18px 1.5px, linear-gradient(var(--c), var(--c)) top left / 1.5px 18px, linear-gradient(var(--c), var(--c)) top right / 18px 1.5px, linear-gradient(var(--c), var(--c)) top right / 1.5px 18px, linear-gradient(var(--c), var(--c)) bottom left / 18px 1.5px, linear-gradient(var(--c), var(--c)) bottom left / 1.5px 18px, linear-gradient(var(--c), var(--c)) bottom right / 18px 1.5px, linear-gradient(var(--c), var(--c)) bottom right / 1.5px 18px;opacity:.7;background-repeat:no-repeat;position:absolute;inset:10px}#map button{font:600 11px var(--osd-font);letter-spacing:.14em;text-transform:uppercase;color:var(--osd-fg);border:1px solid var(--osd-line);background:var(--osd-bg);cursor:pointer;border-radius:3px;padding:7px 13px}#map button:hover{border-color:var(--osd-accent);color:var(--osd-accent)}#chain,#season{border-left:3px solid var(--osd-accent);background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:600 13px var(--osd-font);letter-spacing:.24em;text-transform:uppercase;color:var(--osd-fg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:3px;padding:7px 16px 7px 14px;transition:opacity .6s;position:absolute;left:50%;transform:translate(-50%)}#chain{top:16%}#season{top:24%}#chain.show,#season.show,#friend.show{opacity:1}#friend{border-left:3px solid var(--osd-accent);background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:min(82vw,520px);color:var(--osd-fg);opacity:0;pointer-events:none;border-radius:3px;padding:9px 16px 10px 14px;transition:opacity .6s;position:absolute;top:64%;left:50%;transform:translate(-50%)}#friend b{font:600 13px var(--osd-font);letter-spacing:.24em;text-transform:uppercase;display:block}#friend span{font:400 14px var(--osd-font);letter-spacing:.02em;opacity:.85;margin-top:3px;display:block}#settings .osd-body{max-height:min(64vh,520px);overflow-y:auto}#pause{pointer-events:auto;background:#0a0a0c59;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#pause[hidden]{display:none}#pause .pz-box{border:1px solid var(--osd-line);border-top:2px solid var(--osd-accent);background:var(--osd-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:4px;flex-direction:column;align-items:stretch;gap:6px;min-width:220px;padding:14px;display:flex}#pause .pz-tag{text-align:center;font:700 12px var(--osd-font);letter-spacing:.3em;text-transform:uppercase;color:var(--osd-accent);margin-bottom:6px}#pause button{border:1px solid var(--osd-line);color:var(--osd-fg);font:600 12px var(--osd-font);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:#ffffff0a;border-radius:3px;padding:9px 12px}#pause button:hover{border-color:var(--osd-accent);color:var(--osd-accent)}#pause .pz-hint{text-align:center;font:500 10px var(--osd-font);letter-spacing:.14em;text-transform:uppercase;color:var(--osd-dim);margin-top:4px}#pause-btn{pointer-events:auto;border:1px solid var(--osd-line);background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--osd-fg);font:700 10px var(--osd-font);letter-spacing:.1em;cursor:pointer;border-radius:4px;padding:6px 10px;position:absolute;top:12px;right:96px}#pause-btn:hover{border-color:var(--osd-accent)}#view{touch-action:none}#gust-btn,#map-btn{display:none}body.touch #gust-btn{right:calc(18px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:78px;height:78px;color:var(--osd-fg);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;border:1.5px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;font-size:30px;display:flex;position:absolute}body.touch #gust-btn.on{border-color:var(--osd-accent);color:var(--osd-accent);transform:scale(.94)}body.touch #map-btn{top:calc(12px + env(safe-area-inset-top));right:calc(150px + env(safe-area-inset-right));border:1px solid var(--osd-line);background:var(--osd-bg-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--osd-fg);font:600 11px var(--osd-font);letter-spacing:.2em;pointer-events:auto;border-radius:4px;padding:6px 11px;display:block;position:absolute}body.touch #gear{top:calc(12px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right))}body.touch #pause-btn{top:calc(12px + env(safe-area-inset-top))}body.touch #controls{bottom:calc(112px + env(safe-area-inset-bottom));white-space:normal;text-align:center;max-width:calc(100vw - 32px);font-size:11px}body.touch #settings{top:calc(52px + env(safe-area-inset-top))}body.touch .osd-row{min-height:42px}body.touch .osd-row .val button{width:32px;height:32px;font-size:20px}body.touch .osd-foot{display:none}@media (max-width:520px){#settings{width:auto;left:8px;right:8px}.osd-tab span{letter-spacing:.08em;font-size:9px}}#notice{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:40;border-left:3px solid var(--osd-accent);background:var(--osd-bg);color:var(--osd-fg);font:11px/1.4 var(--osd-mono);white-space:pre-wrap;word-break:break-word;border-radius:3px;max-height:40vh;padding:8px 10px;position:fixed;overflow:auto}
