@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nunito-400.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nunito-400-italic.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nunito-600.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-700.woff2) format("woff2")}:root{--parchment: #f0dfc0;--parchment-dark: #e4cfa8;--ice-border: #5b9ec4;--text-title: #2a3040;--text-body: #3a2820;--text-muted: #6b5a48;--accent: #49a8d8;--status-green: #25a825;--status-green-light: #7dd87d;--status-green-glow: rgba(37, 168, 37, .5);--status-green-glow-strong: rgba(37, 168, 37, .8);--titlebar-from: #1a3a5c;--titlebar-mid: #2d6a8f;--titlebar-to: #4a9bc2;--titlebar-text: #ffffff;--button-fill: #f8f4f0;--button-border: #5a98b8;--button-hover: #e8f4ff;--panel-shadow: 0 6px 24px rgba(10, 20, 40, .35);--bubble-fill: #ffffff;--bubble-border: #6a6eaf;--bubble-text: #000000;--name-label-fill: #000000;--name-label-outline: #ffffff;--panel-radius: 16px;--frame-border-width: 2px;--overlay-font: "Nunito", system-ui, -apple-system, sans-serif;--z-hud: 100;--z-window-base: 200;--z-pill: 500;--z-context-menu: 1000}@media (pointer: fine){:root{--cursor-default: url(/ui/cursors/pointer.png) 4 4, auto;--cursor-point: url(/ui/cursors/hand-point.png) 9 3, pointer;--cursor-grab: url(/ui/cursors/hand-open.png) 15 15, grab;--cursor-grabbing: url(/ui/cursors/hand-closed.png) 15 15, grabbing}}html{cursor:var(--cursor-default, auto)}.overlay-root{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;font-family:var(--overlay-font);color:var(--text-body);opacity:0;transition:opacity .18s ease-out}.overlay-root:not(.is-ready) *{pointer-events:none!important}.overlay-root.is-ready{opacity:1}.overlay-root *{box-sizing:border-box}.overlay-root button,.overlay-root input,.overlay-root label,.overlay-root a,.cbw,.hud{touch-action:manipulation}.cbw{position:absolute;pointer-events:auto;display:none;min-width:220px;max-width:min(420px,calc(100vw - 24px));z-index:var(--z-window-base)}.cbw.is-open{display:flex;flex-direction:column}.cbw-frame{display:flex;flex-direction:column;min-height:0;flex:1;background:var(--parchment);border:var(--frame-border-width) solid var(--ice-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);overflow:hidden}.cbw-titlebar{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;background:linear-gradient(135deg,var(--titlebar-from) 0%,var(--titlebar-mid) 50%,var(--titlebar-to) 100%);color:var(--titlebar-text);flex-shrink:0;touch-action:none}.cbw--draggable .cbw-titlebar{cursor:var(--cursor-grab, grab)}.cbw--dragging .cbw-titlebar{cursor:var(--cursor-grabbing, grabbing)}.cbw-title{flex:1;margin:0;font-size:15px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cbw-count{font-size:12px;font-weight:600;opacity:.85}.cbw-tabs{display:flex;gap:4px;padding:6px 10px 0;background:var(--parchment-dark);flex-shrink:0}.cbw-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:var(--frame-border-width) solid transparent;border-bottom:none;border-radius:8px 8px 0 0;background:transparent;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-muted);cursor:var(--cursor-point, pointer)}.cbw-tab.is-active{background:var(--parchment);border-color:var(--ice-border);color:var(--text-title)}.cbw-body{flex:1;min-height:0;padding:10px 12px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ice-border) transparent}.cbw-body::-webkit-scrollbar{width:8px}.cbw-body::-webkit-scrollbar-thumb{background:var(--ice-border);border-radius:4px}.cbw-body::-webkit-scrollbar-track{background:transparent}.cbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:8px 18px;border:var(--frame-border-width) solid var(--button-border);border-radius:12px;background:var(--button-fill);color:var(--text-title);font-family:inherit;font-size:14px;font-weight:700;cursor:var(--cursor-point, pointer);transition:background .12s ease,transform 80ms ease}.cbtn:hover{background:var(--button-hover)}.cbtn:active{transform:scale(.96)}.cbtn--primary{background:var(--accent);border-color:var(--titlebar-mid);color:#fff}.cbtn--primary:hover{background:#5ab6e4}.cbtn--icon{padding:8px;border-radius:50%}.cbtn--icon svg,.cbtn--icon img{width:24px;height:24px;display:block}.cbw-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;background:#ffffff40;color:#fff;font-family:inherit;font-size:16px;font-weight:700;line-height:1;cursor:var(--cursor-point, pointer);flex-shrink:0}.cbw-close:hover{background:#fff6}.crow{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;border:none;border-radius:10px;background:transparent;color:var(--text-body);font-family:inherit;font-size:14px;text-align:left;cursor:var(--cursor-point, pointer)}.crow:hover{background:var(--parchment-dark)}.crow.is-current{background:var(--parchment-dark);cursor:var(--cursor-default, default)}.crow-main{flex:1;min-width:0}.crow-title{display:block;font-weight:600;color:var(--text-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow-sub{display:block;font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow-sub--accent{color:var(--accent);font-style:italic}.crow-aside{font-size:12px;color:var(--text-muted);flex-shrink:0}.cdot{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.25);vertical-align:-1px}.cbw--menu{width:320px;left:calc(50% - 160px);top:12%;max-height:76vh}.cbw--menu-wide{width:380px;left:calc(50% - 190px);top:10%;max-height:80vh}.cbw--chat{width:340px;left:12px;top:12px}.cbw--chat .cbw-frame{background:transparent}.cbw--chat .cbw-body{padding:0;overflow:visible}.chat-sheet-handle{display:none}.cbw-tbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;background:#ffffff40;color:#fff;font-family:inherit;font-size:14px;line-height:1;cursor:var(--cursor-point, pointer);flex-shrink:0}.cbw-tbtn:hover{background:#fff6}.chat-expand-arrow{display:block;transition:transform .2s ease}.chat--expanded .chat-expand-arrow{transform:rotate(180deg)}.chat-log{background:#ffffffe6;padding:8px 10px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ice-border) transparent;max-height:2.6em;transition:max-height .25s ease;-webkit-user-select:text;user-select:text;cursor:var(--cursor-default, auto)}.chat--idle .chat-log{max-height:2.6em}.chat--active .chat-log{max-height:7.6em}.chat--expanded .chat-log{max-height:40vh}.chat-msg{margin:2px 0;font-size:13px;line-height:1.4;overflow-wrap:break-word}.chat-name{font-weight:700;margin-right:4px}.chat-msg--action .chat-text{font-style:italic;color:#666}.chat-msg--ambient .chat-text{font-style:italic;color:#5a6a80}.cbw--roster{width:240px;right:12px;top:76px;max-height:60vh}.roster-list{list-style:none;margin:0;padding:0}.empty-note{margin:12px 4px;font-size:13px;font-style:italic;color:var(--text-muted);text-align:center}.settings{display:flex;flex-direction:column;gap:4px;padding:4px 2px}.setting-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:4px 8px;border-radius:10px;cursor:var(--cursor-point, pointer)}.setting-row:hover{background:var(--parchment-dark)}.setting-label{font-size:15px;font-weight:600;color:var(--text-title)}.ctoggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:48px;height:28px;margin:0;border:var(--frame-border-width) solid var(--button-border);border-radius:14px;background:var(--button-fill);cursor:var(--cursor-point, pointer);position:relative;transition:background .15s ease;flex-shrink:0}.ctoggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid var(--button-border);transition:transform .15s ease}.ctoggle:checked{background:var(--accent)}.ctoggle:checked:after{transform:translate(20px)}.cbw--card{width:280px;left:calc(50% - 140px);top:16%;max-height:72vh}@media (min-width: 768px){.cbw--card.is-open~.cbw--card.is-open{margin:32px 0 0 32px}.cbw--card.is-open~.cbw--card.is-open~.cbw--card.is-open{margin:64px 0 0 64px}}.pcard-portrait{display:flex;justify-content:center;padding:8px 0 4px}.pcard-portrait canvas{max-width:100%}.pcard-fields{margin:8px 0}.pcard-field{display:flex;gap:10px;padding:4px 6px;font-size:14px}.pcard-field dt{flex:0 0 70px;font-weight:700;color:var(--text-title)}.pcard-field dd{margin:0;flex:1;min-width:0;overflow-wrap:break-word}.crow--static{cursor:var(--cursor-default, default)}.crow--static:hover{background:transparent}.crow--mystery{opacity:.45}.pcard--hub{display:flex;flex-direction:column;gap:10px;padding:2px}.pcard--hub .pcard-fields{margin:0}.presence-online{display:none}body.agent-online .presence-online{display:block}body.agent-online .presence-offline{display:none}body:not(.agent-online) .presence-follow{opacity:.55;filter:grayscale(.6);pointer-events:none}.achievement-detail .roster-list>.crow+.crow{border-top:1px solid var(--ice-border)}.achievement-back{min-height:36px;padding:4px 12px;font-size:13px;margin-bottom:10px}.achievement-name{margin:4px 4px 6px;font-size:17px;color:var(--text-title)}.achievement-desc{margin:0 4px 8px;font-size:14px;font-style:italic;line-height:1.4}.achievement-count{margin:0 4px 12px;font-size:13px;color:var(--text-muted)}.achievement-earners-title{margin:8px 4px 4px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.quest-empty{padding:18px 8px 12px;text-align:center;color:var(--text-body)}.quest-empty p{margin:0 0 12px;font-size:14px;line-height:1.5}.quest-empty-hint{color:var(--text-muted);font-style:italic;font-size:13px}.cmenu{position:absolute;z-index:var(--z-context-menu);min-width:150px;padding:6px;background:var(--parchment);border:var(--frame-border-width) solid var(--ice-border);border-radius:10px;box-shadow:var(--panel-shadow);pointer-events:auto;display:flex;flex-direction:column}.cmenu-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:6px;background:transparent;padding:10px 12px;min-height:40px;font-family:inherit;font-size:14px;color:var(--text-body);text-align:left;cursor:var(--cursor-point, pointer);white-space:nowrap}.cmenu-row:hover{background:var(--parchment-dark)}.follow-pill{position:absolute;top:48px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;background:var(--parchment);border:var(--frame-border-width) solid var(--ice-border);border-radius:20px;color:var(--text-title);font-size:13px;font-weight:700;box-shadow:var(--panel-shadow);pointer-events:auto;z-index:var(--z-pill)}.follow-pill[hidden]{display:none}.follow-pill-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid var(--button-border);border-radius:50%;background:var(--button-fill);color:var(--text-title);font-size:14px;line-height:1;cursor:var(--cursor-point, pointer)}.follow-pill-close:hover{background:var(--button-hover)}.hud{position:absolute;top:12px;right:12px;display:flex;gap:10px;pointer-events:auto;z-index:var(--z-hud)}.hud-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border:var(--frame-border-width) solid var(--ice-border);border-radius:50%;background:var(--parchment);color:var(--text-title);cursor:var(--cursor-point, pointer);box-shadow:0 3px 10px #0a14284d;transition:transform 80ms ease,background .12s ease}.hud-btn:hover{background:var(--button-hover)}.hud-btn:active{transform:scale(.92)}.hud-btn svg{width:26px;height:26px;display:block}@media (max-width: 767px){.hud{flex-direction:column-reverse;width:44px;gap:0;row-gap:10px}.hud-btn,.hud-btn--session{width:44px;height:44px;margin:0}.hud-btn svg{width:22px;height:22px}}#game-canvas-container{background:#0f0a1e}@media (max-width: 767px){.cbw--menu,.cbw--menu-wide,.cbw--card,.cbw--roster{top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0}.cbw--menu .cbw-frame,.cbw--menu-wide .cbw-frame,.cbw--card .cbw-frame,.cbw--roster .cbw-frame{border-radius:0;border-left:none;border-right:none;border-top:none}.cbw-titlebar{padding:12px 12px 12px 16px}.cbw-title{font-size:17px}.cbw-close,.cbw-tbtn{width:44px;height:44px;font-size:20px}.cmenu-row{min-height:44px}.cbw--chat{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%}.cbw--chat .cbw-frame{flex:none;border-radius:12px 12px 0 0;border-left:none;border-right:none;border-bottom:none;background:#ffffffe6}.cbw--chat .cbw-titlebar{display:none}.cbw--chat .chat-sheet-handle{display:flex;align-items:center;justify-content:center;padding:10px 0;touch-action:none;cursor:var(--cursor-grab, grab);position:relative}.cbw--chat .chat-sheet-handle.is-dragging{cursor:var(--cursor-grabbing, grabbing)}.cbw--chat .chat-sheet-handle:before{content:"";position:absolute;top:-10px;left:0;right:0;bottom:-10px}.cbw--chat .chat-sheet-grabber{width:36px;height:4px;background:#0000004d;border-radius:2px}.cbw--chat .chat-log{padding-bottom:8px}.cbw--chat #chat-panel{height:100%;display:flex;flex-direction:column}.chat--floor .chat-log,.chat--pinned .chat-log{flex:1;min-height:0;max-height:none;overflow-y:auto}#game-canvas-container.chat-docked{--chat-dock: calc(62px + max(env(safe-area-inset-bottom, 0px), 12px)) ;background:#fff}.chat-docked .cbw--chat.is-open:not(.chat--expanded) .cbw-frame{max-height:var(--chat-dock);display:flex;flex-direction:column}.chat-docked .cbw--chat.is-open:not(.chat--expanded) .cbw-body{flex:1;min-height:0;overflow:hidden}.chat-docked .cbw--chat.is-open:not(.chat--expanded) .chat-log{flex:1;min-height:0;max-height:none}}@media (min-width: 768px){.hud-btn--session{margin-left:6px}}@media (max-width: 767px){.hud-btn--session{margin-left:0}}.hud-btn--agent{position:relative;background:var(--agent-color, var(--parchment));border-color:var(--ice-border);color:#fff;transition:filter .2s ease}.hud-btn--agent:hover{filter:brightness(1.1)}.presence-pip{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:var(--status-green);border:2px solid var(--parchment);box-shadow:0 0 4px var(--status-green-glow);opacity:0;transform:scale(0);transition:opacity .15s ease,transform .15s ease,background .15s ease;pointer-events:none}.hud-btn--agent.is-online .presence-pip{opacity:1;transform:scale(1);background:var(--status-green-light)}.hud-btn--agent.is-colocated .presence-pip{background:var(--status-green);animation:presence-pulse 2s ease-in-out infinite}@keyframes presence-pulse{0%,to{box-shadow:0 0 4px var(--status-green-glow)}50%{box-shadow:0 0 12px var(--status-green-glow-strong)}}.hud-btn--chat{position:relative}.chat-unread-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d12525;border:2px solid var(--parchment);font-size:11px;font-weight:700;line-height:14px;text-align:center;color:#fff;pointer-events:none}.chat-unread-badge[hidden]{display:none}@media (max-width: 767px){.chat-unread-badge{top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:10px;line-height:12px}}.session-pane{display:flex;flex-direction:column;gap:10px;padding:6px 4px}.session-intro{margin:0;font-size:14px;line-height:1.5;color:var(--text-body)}.session-provider{text-align:center;text-decoration:none}.session-signout{margin-top:4px;min-height:36px;padding:4px 12px;font-size:13px;text-align:center;text-decoration:none;color:var(--text-muted)}.agent-prompt{margin:0;padding:10px 12px;background:var(--parchment-dark);border:1px solid var(--ice-border);border-radius:8px;font-family:inherit;font-size:13px;line-height:1.5;color:var(--text-body);white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all}.cdot--online{background:var(--status-green)}.cdot--offline{background:#8a8a8a}.quest-listing{display:flex;flex-direction:column;gap:14px;padding:4px}.quest-entry+.quest-entry{border-top:1px solid var(--ice-border);padding-top:14px}.quest-title{margin:0 0 4px;font-size:15px;color:var(--text-title)}.quest-badge{margin-left:6px;padding:2px 8px;border-radius:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}.quest-desc{margin:0 0 6px;font-size:13px;font-style:italic;line-height:1.4;color:var(--text-body)}.quest-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.quest-step{display:flex;flex-direction:column;padding:4px 8px;border-radius:6px;background:#ffffff59}.quest-step--done .quest-step-title{text-decoration:line-through;color:var(--text-muted)}.quest-step--done .quest-step-title:before{content:"✓ ";color:var(--status-green)}.quest-step-title{font-size:13px;font-weight:600;color:var(--text-body)}.quest-step-desc{font-size:12px;color:var(--text-muted)}.toast-host{position:absolute;top:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:var(--z-pill);pointer-events:none}.achievement-toast{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;gap:2px;max-width:min(340px,calc(100vw - 24px));padding:10px 16px;background:var(--parchment);border:var(--frame-border-width) solid var(--ice-border);border-radius:12px;box-shadow:var(--panel-shadow);font-family:inherit;text-align:left;cursor:var(--cursor-point, pointer);pointer-events:auto;animation:toast-in .25s ease-out}.achievement-toast.is-leaving{opacity:0;transition:opacity .2s ease-out}.achievement-toast-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.achievement-toast-name{font-size:14px;font-weight:700;color:var(--text-title)}.achievement-toast-desc{font-size:12px;font-style:italic;color:var(--text-muted)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
