:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4;font-weight:400;color:#f2f2f2;background:#101010;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;overscroll-behavior:none}:root{--palette-swatch-size: clamp(1.25rem, 4vh, 2.75rem)}.app{width:100vw;height:100vh;height:100dvh;margin:0;background:#101010;color:#f2f2f2;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.canvas-wrapper{position:relative;width:100%;height:100%;overflow:hidden}.canvas-surface{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}.canvas-surface--idle-user-plot{cursor:crosshair}.canvas-surface--idle-other{cursor:grab}.canvas-surface--panning{cursor:grabbing}.brush-preview{position:absolute;pointer-events:none;border:1px solid rgba(255,255,255,.85);box-shadow:0 0 0 1px #0006;border-radius:50%;transform:translate(-50%,-50%);will-change:transform,width,height;z-index:10}.canvas-context-menu{position:absolute;display:inline-flex;flex-direction:column;width:max-content;width:fit-content;max-width:calc(100vw - 2rem);padding:.75rem .9rem;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#06070ae6;box-shadow:0 22px 45px #0000008c;color:#f3f3f3;font-size:.85rem;pointer-events:auto;z-index:45;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);transform:translate(calc(10px + var(--context-menu-offset-x, 0px)),calc(10px + var(--context-menu-offset-y, 0px)))}.canvas-context-menu__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.canvas-context-menu__title{font-size:.95rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-context-menu__badge{white-space:nowrap;padding:.1rem .45rem;border-radius:999px;background:#208d3b47;color:#62e092;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.canvas-context-menu__subtitle{margin-bottom:0;color:#ffffffad;font-size:.8rem;letter-spacing:.015em}.canvas-context-menu__coordinates-link{color:#bdf8d2;font-weight:600;letter-spacing:.02em;text-decoration:none}.canvas-context-menu__coordinates-link:hover,.canvas-context-menu__coordinates-link:focus{color:#e7ffee;text-decoration:underline}.canvas-context-menu__coordinates-link:focus-visible{outline:2px solid #62e092;outline-offset:2px;border-radius:2px}.canvas-context-menu__section{margin-top:.8rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:.45rem}.canvas-context-menu__section-title{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c}.canvas-context-menu__actions{display:flex;flex-direction:column;gap:.35rem}.canvas-context-menu__action-button{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .55rem;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#f3f3f3;font-size:.78rem;letter-spacing:.01em;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.canvas-context-menu__action-button:hover:not(:disabled){background:#ffffff29;border-color:#ffffff52}.canvas-context-menu__action-button:focus-visible{outline:2px solid rgba(189,248,210,.7);outline-offset:2px}.canvas-context-menu__action-button:disabled{opacity:.45;cursor:not-allowed}.canvas-context-menu__action-button--danger{background:#ff3f5e24;border-color:#ff3f5e3d;color:#ff8a9f}.canvas-context-menu__action-button--danger:hover:not(:disabled){background:#ff3f5e3d;border-color:#ff3f5e66}.canvas-context-menu__action-button--danger:focus-visible{outline:2px solid rgba(255,138,159,.8);outline-offset:2px}.canvas-context-menu__admin-link{font-size:.78rem;color:#bdf8d2;text-decoration:none;align-self:flex-start;transition:color .12s ease}.canvas-context-menu__admin-link:hover,.canvas-context-menu__admin-link:focus{color:#e7ffee;text-decoration:underline}.tool-sidebar{position:absolute;top:50%;left:1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:.85rem .65rem;background:#0000008c;border:1px solid rgba(255,255,255,.2);border-radius:12px;transform:translateY(-50%);pointer-events:auto;box-shadow:0 12px 24px #00000059;z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tool-sidebar__header{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#f4f4f4}.tool-sidebar__tools{display:flex;flex-direction:column;align-items:center;gap:.5rem}.tool-sidebar .palette-panel__tools{flex-direction:column;align-items:center;flex-wrap:nowrap}.tool-sidebar .palette-panel__tool-button{width:2.75rem;height:2.75rem}.tool-sidebar .palette-panel__tool-group{position:relative}.tool-sidebar .palette-panel__brush-dropdown,.tool-sidebar .palette-panel__tool-dropdown{top:50%;left:calc(100% + .5rem);transform:translateY(-50%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hud{position:absolute;top:1rem;left:1rem;display:flex;flex-direction:column;gap:0;padding:.75rem 1rem;background-color:#00000073;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:.85rem;pointer-events:auto;max-width:min(20rem,calc(100vw - 2rem));box-shadow:none;z-index:35;transition:background-color .3s ease,box-shadow .2s ease}.hud--collapsed{padding:.5rem .75rem;box-shadow:none}.hud--collapsed .hud__header{margin-bottom:0}.hud--expanded{background-color:#08090c;box-shadow:0 16px 32px #00000059}.hud__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.hud__branding{display:flex;align-items:center;gap:.5rem;min-width:0}.hud__body{display:flex;flex-direction:column;gap:.35rem}.hud--collapsed .hud__body{display:none}.hud__logo{width:56px;height:56px;image-rendering:pixelated;pointer-events:none}.hud__title{font-size:1.6rem;margin-right:.7rem;font-weight:700;letter-spacing:.045em;color:#f6f1d5}.hud__top-row{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.hud__plot{display:inline-flex;align-items:center;gap:.35rem;font-size:.95rem}.hud__plot-label{font-weight:600}.hud__plot-placeholder{color:#f4f4f4a6}.hud__controls-section{border-top:1px solid rgba(255,255,255,.2);margin-top:.75rem;padding-top:.75rem;margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.hud__controls{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.hud__account{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.9rem;color:#f4f4f4d9}.hud__account-status{display:inline-flex;align-items:center;gap:.25rem}.hud__account-email{font-weight:600;color:#fff;word-break:break-word}.hud__account-button{padding:0;border:none;background:none;color:#8ec5ff;text-decoration:underline;cursor:pointer;font-size:.9rem}.hud__account-button:hover,.hud__account-button:focus-visible{color:#b9dcff;outline:none}.hud__plot-link{color:#f4f4f4;text-decoration:underline}.hud__error{color:#ff7676}.hud__status-bar{display:grid;grid-template-columns:minmax(4rem,auto) 1fr minmax(4rem,auto);align-items:stretch;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);background:#00000059;margin:.75rem -1rem -.75rem}.hud__status-item{display:flex;align-items:center;justify-content:center;padding:.45rem .65rem;color:#f4f4f4d9;font-size:.85rem;min-width:0;text-align:center}.hud__status-item+.hud__status-item{border-left:1px solid rgba(255,255,255,.15)}.hud__status-item--coordinates,.hud__status-item--zoom{font-variant-numeric:tabular-nums}.hud__status-item--coordinates{justify-content:flex-start;text-align:left;padding-left:.85rem}.hud__status-item--zoom{white-space:nowrap;justify-content:flex-end;text-align:right;padding-right:.85rem}.hud__status-item--message{gap:.4rem;padding-inline:.8rem}.hud__status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud__button{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;cursor:pointer;transition:background .15s ease,border-color .15s ease}.hud__button:hover,.hud__button:focus-visible{background:#282828a6;border-color:#ffffff73}.hud__button:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}.hud__button-icon{width:1rem;height:1rem;fill:currentColor}.hud__button-icon--random{width:1.35rem;height:1.35rem}.hud__toggle{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;cursor:pointer;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.hud__toggle:hover,.hud__toggle:focus-visible{background:#282828a6;border-color:#ffffff73}.hud__toggle:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}.hud__toggle-icon{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}.hud__toggle-icon--open{transform:rotate(180deg)}.canvas-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;color:#f4f4f4;font-size:1rem;pointer-events:none}.palette-panel{position:absolute;top:1rem;right:1rem;left:auto;display:flex;flex-direction:column;gap:.5rem;width:clamp(16rem,26vw,calc(100% - 2rem));height:calc(100% - 2rem);max-height:calc(100% - 2rem);padding:.75rem 1rem;background:#0000008c;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:.8rem;opacity:0;pointer-events:none;transform:translate(calc(100% + 1.5rem));overflow:hidden;min-height:0;z-index:40;transition:transform .25s ease,opacity .25s ease,box-shadow .25s ease}.palette-panel--open{opacity:1;pointer-events:auto;transform:translate(0);box-shadow:0 16px 32px #00000059}.palette-panel__toggle{position:absolute;top:1rem;right:1rem;left:auto;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid rgba(255,255,255,.25);background-color:#0009;color:#f5f5f5;cursor:pointer;box-shadow:0 10px 24px #00000047;transition:background-color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;z-index:45}.palette-panel__toggle:hover,.palette-panel__toggle:focus-visible{background-color:#282828a6;border-color:#ffffff73}.palette-panel__toggle:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}.palette-panel__toggle--open{background-color:transparent;border-color:transparent;box-shadow:none;transform:translate(-.4rem)}.palette-panel__toggle--open:hover,.palette-panel__toggle--open:focus-visible{background-color:#ffffff14;border-color:#ffffff59}.palette-panel__toggle-icon{width:1.35rem;height:1.35rem;fill:currentColor;transition:transform .2s ease}.palette-panel__toggle-icon--open{transform:rotate(90deg)}.palette-panel__header{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#f4f4f4}.palette-panel__tools-section{display:flex;flex-direction:column;gap:.4rem;padding:.25rem .5rem 0}.palette-panel__tools{display:flex;flex-wrap:wrap;gap:.3rem}.palette-panel__tool-group{position:relative}.palette-panel__tool-button{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:.25rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .1s ease}.palette-panel__tool-button--palette{position:relative;padding:0}.palette-panel__tool-button:hover{transform:translateY(-1px);background:#282828a6;border-color:#ffffff73}.palette-panel__tool-button:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:3px}.palette-panel__tool-button:disabled,.palette-panel__tool-button--disabled{cursor:not-allowed;opacity:.4;transform:none;background:#00000059;border-color:#ffffff26;box-shadow:none}.palette-panel__tool-button:disabled:hover,.palette-panel__tool-button--disabled:hover{transform:none;background:#00000059;border-color:#ffffff26}.palette-panel__tool-button--active{border-color:#fffc;background:#3c3c3cbf;box-shadow:0 0 0 1px #ffffff73}.palette-panel__palette-button-swatch{display:block;width:2.1rem;height:2.1rem;border-radius:.55rem;border:1px solid rgba(0,0,0,.45);box-shadow:0 0 0 1px #fff9 inset}.palette-panel__palette-button-swatch--primary{margin:.3rem}.palette-panel__palette-button-swatch--secondary{position:absolute;width:1.15rem;height:1.15rem;bottom:.3rem;right:.3rem;border-radius:.4rem;box-shadow:0 0 0 1px #00000080}.palette-panel__palette-overlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:54}.palette-panel__palette-dropdown{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:.5rem;width:min(80vw,62rem);height:min(80vh,48rem);padding:.75rem 1rem;background:#0a0a0af2;border:1px solid rgba(255,255,255,.35);border-radius:1rem;box-shadow:0 24px 48px #0000008c;z-index:55;overflow:hidden}.palette-panel__palette-dropdown .palette-panel__header{padding:0 .25rem;font-size:.85rem;font-weight:600}.palette-panel__palette-dropdown .palette-panel__swatch{display:block;width:100%;min-width:0}.palette-panel__palette-dropdown .palette-panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(1.75rem,2.4vw,2.9rem),1fr));justify-content:center;align-content:start;gap:clamp(.18rem,.6vw,.45rem);width:100%;flex:1;padding:clamp(.12rem,.35vw,.35rem) clamp(.18rem,.6vw,.55rem) clamp(.25rem,.75vw,.6rem);overflow-y:auto;overflow-x:hidden}.palette-panel__palette-dropdown .palette-panel__swatch-chip{border-radius:clamp(.35rem,.9vw,.55rem);font-size:clamp(.55rem,1vw,.75rem)}.palette-panel__tool-icon{width:1.25rem;height:1.25rem;fill:currentColor}.palette-panel__brush-dropdown{position:absolute;top:calc(100% + .25rem);left:0;display:flex;flex-direction:column;gap:.3rem;padding:.5rem;background:#101010f2;border:1px solid rgba(255,255,255,.25);border-radius:.6rem;box-shadow:0 8px 16px #00000080;z-index:50;min-width:7rem}.palette-panel__tool-dropdown{position:absolute;top:calc(100% + .25rem);left:0;display:flex;flex-direction:column;gap:.3rem;padding:.5rem;background:#101010f2;border:1px solid rgba(255,255,255,.25);border-radius:.6rem;box-shadow:0 8px 16px #00000080;z-index:50;min-width:10rem}.palette-panel__brush-option{--brush-line-scale: 0;display:inline-flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;padding:.4rem .6rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .1s ease}.palette-panel__brush-option:hover{transform:translateY(-1px);background:#282828a6;border-color:#ffffff73}.palette-panel__brush-option:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}.palette-panel__brush-option--active{border-color:#fffc;background:#3c3c3cbf;box-shadow:0 0 0 1px #ffffff73}.palette-panel__tool-option{display:inline-flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;padding:.4rem .6rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .1s ease}.palette-panel__tool-option:hover{transform:translateY(-1px);background:#282828a6;border-color:#ffffff73}.palette-panel__tool-option:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}.palette-panel__tool-option--active{border-color:#fffc;background:#3c3c3cbf;box-shadow:0 0 0 1px #ffffff73}.palette-panel__tool-option-icon{width:1.15rem;height:1.15rem;flex-shrink:0}.palette-panel__tool-option-label{flex:1;text-align:left}.palette-panel__brush-icon{flex-shrink:0;width:1.5rem;display:flex;flex-direction:column;justify-content:center;gap:.15rem}.palette-panel__brush-icon--static{align-items:center}.palette-panel__brush-icon--static .palette-panel__brush-line--thin{height:.15rem}.palette-panel__brush-icon--static .palette-panel__brush-line--medium{height:.3rem}.palette-panel__brush-icon--static .palette-panel__brush-line--thick{height:.45rem}.palette-panel__brush-line{width:100%;border-radius:0;background:#f4f4f4;box-shadow:0 0 0 1px #00000073 inset;transition:background .15s ease}.palette-panel__brush-line--thin{height:.12rem}.palette-panel__brush-line--medium{height:calc(.18rem + var(--brush-line-scale, 0) * .18rem)}.palette-panel__brush-line--thick{height:calc(.26rem + var(--brush-line-scale, 0) * .34rem)}.palette-panel__brush-option--active .palette-panel__brush-line,.palette-panel__tool-button--active .palette-panel__brush-line{background:#fff}.palette-panel__brush-label{flex:1;font-size:.7rem;color:#ffffffe6}.palette-panel__version{font-size:.75rem;font-weight:400;color:#fffc}.palette-panel__grid{display:flex;flex-wrap:wrap;gap:.3rem;overflow-y:auto;overflow-x:hidden;padding:.25rem .5rem .25rem .25rem;flex:1 1 auto}.palette-panel__swatch{display:flex;flex-direction:column;align-items:center;flex:0 0 var(--palette-swatch-size);width:var(--palette-swatch-size);min-width:1rem;max-width:var(--palette-swatch-size)}.palette-panel__swatch-chip{width:100%;aspect-ratio:1 / 1;border-radius:6px;border:1px solid rgba(255,255,255,.25);box-shadow:0 0 0 1px #0000004d inset;background:#f4f4f4;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;text-shadow:0 0 2px rgba(0,0,0,.35);cursor:pointer;transition:transform .1s ease,border-color .1s ease,box-shadow .1s ease}.palette-panel__swatch-chip:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}.palette-panel__swatch-chip:hover{transform:translateY(-1px)}.palette-panel__swatch-chip--active{border-color:#fffc;box-shadow:0 0 0 1px #0000004d inset,0 0 0 2px #fff9}.palette-panel__swatch-chip--alt-active{border-color:#66ccffd9;box-shadow:0 0 0 1px #0000004d inset,0 0 0 2px #66ccff80}.palette-panel__section{display:flex;flex-direction:column;gap:.5rem;flex:1 1 50%;min-height:0}.chat-panel{display:flex;flex-direction:column;gap:.5rem;flex:1 1 auto;min-height:0}.chat-panel__header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#f4f4f4}.chat-panel__retry{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;padding:.15rem .6rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;font-size:.7rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.chat-panel__retry:hover,.chat-panel__retry:focus-visible{background:#282828a6;border-color:#ffffff73}.chat-panel__retry:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}.chat-panel__retry:disabled{opacity:.5;cursor:default}.chat-panel__messages{flex:1 1 auto;min-height:0;overflow-y:auto;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#0006;padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.chat-panel__placeholder{text-align:center;font-size:.8rem;color:#ffffffd9;padding:1rem .25rem}.chat-panel__message{display:flex;flex-direction:column;gap:.25rem}.chat-panel__message-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.7rem;color:#ffffffbf}.chat-panel__message-name{font-weight:600;color:#f4f4f4}.chat-panel__message-time{font-variant-numeric:tabular-nums}.chat-panel__message-text{font-size:.8rem;line-height:1.3;color:#f6f6f6;word-break:break-word;white-space:pre-line}.chat-panel__composer{display:flex;gap:.5rem}.chat-panel__composer input{flex:1 1 auto;padding:.4rem .6rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#00000073;color:#f4f4f4;font-size:.8rem;transition:border-color .15s ease,background .15s ease}.chat-panel__composer input:focus-visible{outline:2px solid rgba(102,204,255,.7);outline-offset:2px;border-color:#66ccffb3;background:#0009}.chat-panel__composer input::placeholder{color:#ffffff8c}.chat-panel__composer input:disabled{opacity:.6;cursor:not-allowed}.chat-panel__composer button{pointer-events:auto;padding:.4rem .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000073;color:#f4f4f4;font-size:.8rem;cursor:pointer;transition:background .15s ease,border-color .15s ease;min-width:4.5rem}.chat-panel__composer button:hover,.chat-panel__composer button:focus-visible{background:#282828a6;border-color:#ffffff73}.chat-panel__composer button:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}.chat-panel__composer button:disabled{opacity:.5;cursor:not-allowed}.chat-panel__error{font-size:.75rem;color:#ff9494}@media(max-width:768px){.tool-sidebar{top:50%;bottom:auto;left:.75rem;transform:translateY(-50%);gap:.5rem;padding:.65rem .55rem}.tool-sidebar__header{font-size:.7rem}.tool-sidebar__tools{gap:.4rem}.tool-sidebar .palette-panel__brush-dropdown{top:auto;bottom:0;left:calc(100% + .5rem);transform:translateY(0)}.hud{gap:.35rem;max-width:calc(100vw - 2rem)}.palette-panel{width:min(22rem,calc(100vw - 2rem));height:auto;max-height:calc(100% - 2rem);bottom:1rem;transform:translate(calc(100% + 1.5rem));opacity:0;pointer-events:none}.palette-panel--open{transform:translate(0);opacity:1;pointer-events:auto}.palette-panel__toggle{display:inline-flex}.palette-panel__toggle--open{background-color:transparent;border-color:transparent;box-shadow:none}}.settings-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#000000a6;z-index:110;pointer-events:auto}.settings-modal{width:80vw;height:80vh;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;background:#101010f0;border:1px solid rgba(255,255,255,.16);border-radius:12px;box-shadow:0 20px 40px #00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.settings-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-modal__title{margin:0;font-size:1.4rem;font-weight:600;color:#f4f4f4}.settings-modal__close-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:6px;background:#ffffff14;color:inherit;cursor:pointer;transition:background .15s ease,color .15s ease}.settings-modal__close-button:hover,.settings-modal__close-button:focus-visible{background:#ffffff2e;outline:none}.settings-modal__close-button:active{background:#ffffff47}.settings-modal__close-icon{width:1.25rem;height:1.25rem;fill:currentColor}.settings-modal__body{display:flex;flex-direction:column;gap:1rem;flex:1 1 auto;overflow-y:auto;overflow-x:hidden}.settings-modal__section{display:flex;flex-direction:column;gap:.75rem}.settings-modal__section+.settings-modal__section{margin-top:1.75rem}.settings-modal__section-heading{display:flex;align-items:center;gap:.75rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#f5f5f599}.settings-modal__section-title{flex:0 0 auto;color:inherit}.settings-modal__section-divider{flex:1 1 auto;height:1px;background:#ffffff1f}.settings-modal__section-content{display:flex;flex-direction:column;gap:1rem}.settings-modal__section-content--stack{gap:.9rem}.settings-modal__section-heading--danger{color:#ff8a8abf}.settings-modal__section-title--danger{color:inherit}.settings-modal__section-divider--danger{background:#ff8a8a66}.settings-modal__setting{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);cursor:pointer}.settings-modal__setting--static{cursor:default}.settings-modal__setting-info{display:flex;flex-direction:column;gap:.35rem}.settings-modal__setting-title{font-size:1rem;font-weight:600;color:#f6f6f6}.settings-modal__setting-description{font-size:.85rem;color:#f5f5f5b8}.settings-modal__setting-control{display:flex;align-items:center;justify-content:center}.settings-modal__setting-control input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:#f6f1d5}.settings-modal__setting-control input[type=checkbox]:focus-visible{outline:2px solid #f6f1d5;outline-offset:2px}.settings-modal__action-button{padding:.55rem 1.25rem;border-radius:8px;border:1px solid rgba(246,241,213,.35);background:#f6f1d51a;color:#f6f6f6;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.settings-modal__action-button:hover,.settings-modal__action-button:focus-visible{background:#f6f1d533;color:#fff;border-color:#f6f1d599;transform:translateY(-1px);outline:none}.settings-modal__action-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.settings-modal__action-button--danger{border-color:#ff787866;background:#ff787826;color:#ffb3b3}.settings-modal__action-button--danger:hover,.settings-modal__action-button--danger:focus-visible{background:#ff787840;color:#ffe1e1;border-color:#ff787899}.settings-modal__action-button--danger:disabled{color:#ffd2d2cc}.settings-modal__account{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.settings-modal__account-status{font-size:.95rem;color:#f5f5f5d9}.settings-modal__account-email{font-weight:600;color:#fff;word-break:break-word}.settings-modal__account-button{align-self:flex-start;padding:.55rem 1.1rem;border-radius:8px;border:1px solid rgba(246,241,213,.35);background:#f6f1d514;color:#f6f1d5;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.settings-modal__account-button:hover,.settings-modal__account-button:focus-visible{background:#f6f1d52e;color:#fff;border-color:#f6f1d58c;outline:none}.settings-modal__account-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.settings-modal__account-link{padding:0;border:none;background:none;color:#8ec5ff;cursor:pointer;text-decoration:underline;font-size:.95rem}.settings-modal__account-link:hover,.settings-modal__account-link:focus-visible{color:#b9dcff;outline:none}.settings-modal__account-link--danger{color:#ff8a8a}.settings-modal__account-link--danger:hover,.settings-modal__account-link--danger:focus-visible{color:#ffb4b4}.settings-modal__footer{display:flex;align-items:center;justify-content:center;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.settings-modal__discord-link{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.25rem;border-radius:8px;border:1px solid rgba(114,137,218,.4);background:#5865f226;color:#f6f6f6;text-decoration:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease}.settings-modal__discord-link:hover,.settings-modal__discord-link:focus-visible{background:#5865f240;border-color:#7289da99;transform:translateY(-2px)}.settings-modal__discord-link:focus-visible{outline:2px solid rgba(114,137,218,.7);outline-offset:2px}.settings-modal__discord-link:active{transform:translateY(0)}.auth-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:#080c14bf;z-index:200}.auth-modal{width:min(28rem,100%);display:flex;flex-direction:column;background:#0f1521f5;border:1px solid rgba(255,255,255,.14);border-radius:16px;box-shadow:0 24px 48px #00000073;color:#f4f4f4}.auth-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}.auth-modal__title{margin:0;font-size:1.35rem;font-weight:600}.auth-modal__close{background:none;border:none;color:#f4f4f4bf;font-size:1.8rem;line-height:1;cursor:pointer;padding:.25rem;transition:color .15s ease,transform .15s ease}.auth-modal__close:hover,.auth-modal__close:focus-visible{color:#fff;transform:scale(1.06);outline:none}.auth-modal__tabs{display:grid;grid-template-columns:repeat(2,1fr);background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08)}.auth-modal__tab{padding:.75rem 1rem;background:none;border:none;color:#f0f0f0c2;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.auth-modal__tab--active{background:#ffffff1f;color:#fff}.auth-modal__tab:hover,.auth-modal__tab:focus-visible{background:#ffffff29;color:#fff;outline:none}.auth-modal__body{display:flex;flex-direction:column;gap:1.25rem;padding:1.35rem 1.5rem 1.5rem}.auth-modal__description{margin:0;font-size:.95rem;color:#f0f0f0c7}.auth-modal__form{display:flex;flex-direction:column;gap:1rem}.auth-modal__field{display:flex;flex-direction:column;gap:.35rem}.auth-modal__label{font-size:.9rem;color:#f5f5f5d9}.auth-modal__field input{width:100%;padding:.7rem .75rem;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:#0a0f18d9;color:#fff;transition:border-color .15s ease,box-shadow .15s ease}.auth-modal__field input:focus-visible{border-color:#8ec5ffd9;box-shadow:0 0 0 2px #8ec5ff40;outline:none}.auth-modal__error{background:#ff7a7a1f;border:1px solid rgba(255,122,122,.5);color:#ff9a9a;padding:.6rem .75rem;border-radius:8px;font-size:.9rem}.auth-modal__submit{padding:.75rem 1rem;border:none;border-radius:8px;background:linear-gradient(135deg,#6fc3ff,#3d94ff);color:#0b0f18;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.auth-modal__submit:hover,.auth-modal__submit:focus-visible{transform:translateY(-1px);box-shadow:0 12px 24px #3d94ff59;outline:none}.auth-modal__submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.auth-modal__hint{margin:0;font-size:.85rem;color:#f0f0f0b3}.settings-modal__discord-icon{width:1.5rem;height:1.5rem;fill:#5865f2}@media(max-width:600px){.settings-modal{width:90vw;height:85vh;padding:1.25rem;gap:1rem}}.welcome-modal-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;pointer-events:auto}.welcome-modal{display:flex;flex-direction:column;gap:1.25rem;width:min(32rem,calc(100vw - 2rem));max-height:calc(100vh - 4rem);padding:1.75rem 2rem;background:#101010f2;border:1px solid rgba(255,255,255,.3);border-radius:12px;box-shadow:0 24px 48px #0009;overflow-y:auto}.welcome-modal__header{display:flex;align-items:center;justify-content:space-between}.welcome-modal__title{font-size:1.75rem;font-weight:700;color:#f6f1d5;margin:0;letter-spacing:.02em}.welcome-modal__content{display:flex;flex-direction:column;gap:1rem;font-size:.95rem;line-height:1.6;color:#e8e8e8}.welcome-modal__content p{margin:0}.welcome-modal__content strong{color:#f6f1d5;font-weight:600}.welcome-modal__content ul{margin:.25rem 0 0;padding-left:1.5rem}.welcome-modal__content li{margin:.35rem 0}.welcome-modal__notice{padding:1rem 1.25rem;background:#3c783c59;border:1px solid rgba(100,180,100,.5);border-radius:8px}.welcome-modal__notice p{margin:0}.welcome-modal__footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.welcome-modal__button{pointer-events:auto;padding:.65rem 1.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.3);background:#3c643c99;color:#f6f6f6;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .1s ease}.welcome-modal__button:hover{background:#467846b3;border-color:#ffffff73;transform:translateY(-1px)}.welcome-modal__button--secondary{background:#ffffff14;border-color:#ffffff61;color:#f6f6f6}.welcome-modal__button--secondary:hover,.welcome-modal__button--secondary:focus-visible{background:#ffffff29;border-color:#ffffff80}.welcome-modal__button:focus-visible{outline:2px solid rgba(102,204,255,.7);outline-offset:2px}.welcome-modal__button:active{transform:translateY(0)}@media(max-width:768px){.welcome-modal{padding:1.25rem 1.5rem;gap:1rem}.welcome-modal__title{font-size:1.5rem}.welcome-modal__content{font-size:.9rem}}
