.tile-effect-type-bar{flex-direction:column;gap:1px;display:flex}.tile-effect-type-btn{color:#000;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:4px;width:100%;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1;display:block}.tile-effect-type-btn:hover{background:#f0f0f0}.tile-effect-type-btn--active{color:#fff;background:#000}.tile-effect-type-btn--active:hover{background:#222}.tile-effect-config{flex-direction:column;gap:8px;display:flex}.tile-effect-row{align-items:center;gap:8px;padding:2px 0;display:flex}.tile-effect-label{color:#999;flex-shrink:0;min-width:64px;font-size:11px}.tile-effect-slider{border-radius:9px;flex:1;height:18px}.tile-effect-slider::-webkit-slider-thumb{width:18px;height:18px}.tile-effect-slider::-moz-range-thumb{width:18px;height:18px}.tile-effect-value{color:#999;text-align:right;font-variant-numeric:tabular-nums;min-width:3.5ch;font-size:11px}.color-picker-wrap{flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.color-picker-swatch{cursor:pointer;border:1px solid #ddd;border-radius:4px;flex-shrink:0;width:22px;height:22px;padding:0;transition:border-color .15s}.color-picker-swatch:hover{border-color:#aaa}.color-picker-swatch--transparent{background-color:#fff;background-image:linear-gradient(45deg,#ccc 25%,#0000 25%),linear-gradient(-45deg,#ccc 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ccc 75%),linear-gradient(-45deg,#0000 75%,#ccc 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.color-picker-swatch--colorise{background:linear-gradient(135deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-picker-value{color:#888;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:10px;overflow:hidden}.color-picker-popover{z-index:200;background:#fff;border:1px solid #ddd;border-radius:8px;flex-direction:column;gap:8px;width:200px;padding:10px;display:flex;position:fixed;box-shadow:0 4px 16px #00000024}.color-picker-popover .react-colorful{width:100%}.color-picker-hex-row{align-items:center;gap:4px;display:flex}.color-picker-hex-hash{color:#aaa;font-family:monospace;font-size:11px}.color-picker-hex-input{text-transform:uppercase;color:#333;border:1px solid #ddd;border-radius:4px;outline:none;flex:1;padding:3px 6px;font-family:monospace;font-size:11px}.color-picker-hex-input:focus{border-color:#aaa}.color-picker-specials{border-top:1px solid #f0f0f0;flex-wrap:wrap;gap:4px;padding-top:2px;display:flex}.color-picker-special-btn{cursor:pointer;color:#000;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;line-height:1}.color-picker-special-btn:hover{background:#f0f0f0}.color-picker-special-btn--active{color:#fff;background:#000}.color-picker-special-btn--active:hover{background:#222}.tile-effect-select{cursor:pointer;color:#333;background:#fff;border:1px solid #ddd;border-radius:4px;flex:1;padding:3px 6px;font-size:11px}.tile-float-bar{z-index:110;-webkit-backdrop-filter:blur(12px);pointer-events:auto;white-space:nowrap;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:999px;align-items:center;gap:2px;padding:3px;font-family:IBM Plex Mono,monospace;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 2px 12px #00000014}.tile-float-btn{color:#000;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1;display:flex}.tile-float-btn:hover{background:#0000000f}.tile-float-btn--close{color:#888;border-radius:50%;width:28px;height:28px;padding:5px 8px;font-size:17px}.tile-float-btn--close:hover{color:#000;background:#0000000f}.tile-float-btn--delete{color:#c00}.tile-float-btn--delete:hover{background:#cc000014}.tile-float-sep{background:#e0e0e0;flex-shrink:0;width:1px;height:18px}.tile-float-editor{z-index:110;-webkit-backdrop-filter:blur(12px);pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:16px;flex-direction:column;gap:6px;min-width:280px;max-width:420px;padding:10px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 2px 12px #00000014}.tile-float-input{color:#000;box-sizing:border-box;background:#fff;border:1px solid #ddd;border-radius:999px;outline:none;width:100%;padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:13px}.tile-float-input:focus{border-color:#000}.tile-float-textarea{color:#000;resize:vertical;box-sizing:border-box;background:#fff;border:1px solid #ddd;border-radius:12px;outline:none;width:100%;min-height:80px;padding:10px 12px;font-family:IBM Plex Mono,monospace;font-size:13px}.tile-float-textarea:focus{border-color:#000}.tile-float-editor-actions{justify-content:flex-end;gap:4px;display:flex}.tile-float-btn--active{color:#fff;background:#000}.tile-float-btn--active:hover{background:#222}.tile-float-effect-type{z-index:110;-webkit-backdrop-filter:blur(12px);pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:16px;flex-direction:column;gap:1px;padding:4px;display:flex;position:fixed;box-shadow:0 2px 12px #00000014}.tile-float-effect-config{z-index:110;-webkit-backdrop-filter:blur(12px);pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:16px;width:250px;max-height:calc(100vh - 32px);padding:10px 14px 12px;position:fixed;overflow-y:auto;box-shadow:0 2px 12px #00000014}.tile-float-sliders{border-top:1px solid #eee;flex-direction:column;gap:4px;padding-top:6px;display:flex}.tile-float-slider-label{color:#555;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.tile-float-slider{accent-color:#000;cursor:pointer;width:100%}.tile-float-toggle-row{align-items:center;padding-top:4px;display:flex}.tile-float-add-row{gap:4px;display:flex}.tile-float-effect-mobile{z-index:199;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#fafafaeb;border:1px solid #e0e0e0;border-radius:16px;flex-direction:column;gap:0;display:flex;position:fixed;left:12px;right:12px;overflow:hidden;box-shadow:0 2px 12px #00000014}.tile-float-effect-config--mobile{box-sizing:border-box;border-bottom:1px solid #eee;width:100%;max-height:40vh;padding:8px 12px;position:static;overflow-y:auto}.tile-float-effect-config--mobile .tile-float-slider-label{font-size:11px}.tile-float-effect-type--mobile{-webkit-overflow-scrolling:touch;box-sizing:border-box;width:100%;padding:6px 8px;position:static;overflow-x:auto}.tile-float-effect-type--mobile .tile-effect-type-bar{flex-flow:row;gap:2px}.tile-float-effect-type--mobile .tile-effect-type-btn{text-align:center;flex-shrink:0;width:auto;padding:6px 10px;font-size:12px}@media (width<=768px){.tile-float-btn{min-height:40px;padding:10px 14px;font-size:14px}.tile-float-btn--close{padding:8px 10px;font-size:18px}.tile-float-editor{min-width:0;max-width:none;right:16px;transform:none;left:16px!important}.tile-float-effect-config{width:auto;padding:10px 12px}}.menu-wrapper{z-index:100;pointer-events:none;flex-direction:column;flex-shrink:0;font-family:IBM Plex Mono,monospace;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.board-info-panel{z-index:100;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#fafafaeb;border:1px solid #e0e0e0;border-radius:8px;flex-direction:column;max-width:360px;padding:8px 16px;display:flex;position:fixed;bottom:76px;left:16px;box-shadow:0 2px 12px #00000014}.board-info-title{color:#000;font-size:16px;font-weight:600}.board-info-title--editable{cursor:pointer}.board-info-title--editable:hover{text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.board-info-description{color:#666;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:13px;display:-webkit-box;overflow:hidden}.board-info-description--editable{cursor:pointer}.board-info-description--editable:hover{text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.board-info-owner{color:#999;margin-top:2px;font-size:13px}.board-info-owner-link{color:#999;pointer-events:auto;margin-top:2px;font-size:13px;text-decoration:none}.board-info-owner-link:hover{text-decoration:underline}.board-edit-row{align-items:center;gap:4px;margin-top:2px;display:flex}.board-edit-input{border:1px solid #ccc;border-radius:4px;outline:none;flex:1;min-width:0;padding:4px 8px;font-family:IBM Plex Mono,monospace;font-size:13px}.board-edit-input:focus{border-color:#000}.board-edit-input--title{font-size:16px;font-weight:600}.menu-bar{-webkit-backdrop-filter:blur(12px);pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:999px;justify-content:space-between;align-items:center;gap:2px;height:44px;padding:0 6px;font-family:IBM Plex Mono,monospace;display:flex;box-shadow:0 2px 12px #00000014}.menu-breadcrumbs{color:#000;align-items:center;gap:0;min-width:0;font-size:14px;display:flex;overflow:hidden}.menu-breadcrumb-separator{color:#999;flex-shrink:0;margin:0 8px}.menu-breadcrumb-link{color:#000;white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.menu-breadcrumb-link:hover{text-decoration:underline}.menu-breadcrumb-current{color:#999;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menu-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.menu-action-btn{color:#000;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-family:IBM Plex Mono,monospace;font-size:14px;text-decoration:none;display:flex}.menu-action-btn:hover{background:#0000000f}.menu-action-btn--active{color:#fff;background:#000}.menu-action-btn--active:hover{background:#222}.menu-icon{display:none}.menu-label{display:inline}.profile-actions{gap:4px;margin-top:4px;display:flex}.tile-actions-panel{flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;display:flex}.tile-action-btn{padding:4px 10px;font-size:13px}.tile-action-btn--delete{color:#c00}.tile-action-btn--delete:hover{background:#fff0f0}.tile-actions-edit-row{align-items:flex-start;width:100%}.tile-text-edit{resize:vertical;border:1px solid #ccc;border-radius:4px;outline:none;flex:1;width:100%;min-width:0;min-height:72px;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:13px}.tile-text-edit:focus{border-color:#000}@media (width<=1199px){.menu-perf-btn{display:none}}.perf-monitor{z-index:200;-webkit-backdrop-filter:blur(12px);color:#fff;pointer-events:none;background:#000000bf;border-radius:999px;flex-direction:column;gap:2px;min-width:90px;padding:8px 12px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex;position:fixed;top:12px;right:12px}.perf-row{justify-content:space-between;gap:12px;display:flex}.perf-label{color:#888}.perf-value{text-align:right}@media (width<=768px){.menu-wrapper{width:auto;bottom:28px;left:16px;right:16px;transform:none}.menu-bar{height:48px;padding:0 8px}.menu-icon{font-size:18px;line-height:1;display:inline}.menu-label{display:none}.menu-action-btn{width:38px;height:38px;min-height:unset;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px}.menu-breadcrumbs{font-size:13px}.board-info-panel{max-width:calc(100vw - 32px);padding:8px 12px;bottom:96px;left:16px}}.board-action-bar{-webkit-backdrop-filter:blur(12px);z-index:200;white-space:nowrap;pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:999px;align-items:center;gap:2px;padding:3px;font-family:IBM Plex Mono,monospace;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000014}.board-action-panel{-webkit-backdrop-filter:blur(12px);z-index:200;pointer-events:auto;background:#fafafaeb;border:1px solid #e0e0e0;border-radius:12px;flex-direction:column;gap:6px;min-width:240px;max-width:420px;padding:8px;font-family:IBM Plex Mono,monospace;display:flex;position:fixed;bottom:124px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000014}.board-action-upload-error{color:#c0392b;margin:0;font-size:11px;line-height:1.4}@media (width<=768px){.board-action-bar{gap:4px;padding:4px;bottom:96px}.board-action-panel{min-width:0;max-width:none;bottom:148px;left:16px;right:16px;transform:none}}body,html{letter-spacing:-1px;width:100%;height:100%;margin:0;padding:0;font-family:IBM Plex Mono,monospace;overflow:hidden}:is(body,html) ::selection{color:#fff;background-color:#000}body{flex-direction:column;display:flex}.scene-container{flex:1;height:100%;min-height:0;position:relative}canvas{opacity:1}canvas:active{cursor:grabbing}input,textarea,select{font-size:16px!important}
