:root,[data-theme=dark]{color-scheme:dark;--bg: #1a1c1e;--panel: #24282c;--surface: #2e3338;--text: #f2f0ea;--muted: #9aa3ad;--accent: #e85d04;--accent-hover: #ff6b14;--border: #3a4149;--canvas: #0f1113;--danger: #ff7b7b;--dot: #3a4149;--overlay: rgba(0, 0, 0, .55);--badge-active-bg: #1f3d2a;--badge-active-fg: #8dffb0;--badge-active-border: #2d5a3c;--badge-ended-bg: #2a2e33;--badge-ended-fg: #9aa3ad;--badge-ended-border: #3a4149;--badge-destroyed-bg: #3d1f1f;--badge-destroyed-fg: #ff8d8d;--badge-destroyed-border: #5a2a2a;--radius: 4px;--radius-lg: 6px;font-family:Outfit,Segoe UI,sans-serif;font-size:16px;line-height:1.45}[data-theme=light]{color-scheme:light;--bg: #f0f2f5;--panel: #ffffff;--surface: #e8ebf0;--text: #1a1d21;--muted: #6b7280;--accent: #e85d04;--accent-hover: #d04f00;--border: #d5dae2;--canvas: #1a1c1e;--danger: #dc2626;--dot: #d5dae2;--overlay: rgba(26, 29, 33, .4);--badge-active-bg: #dcfce7;--badge-active-fg: #166534;--badge-active-border: #bbf7d0;--badge-ended-bg: #e8ebf0;--badge-ended-fg: #6b7280;--badge-ended-border: #d5dae2;--badge-destroyed-bg: #fee2e2;--badge-destroyed-fg: #991b1b;--badge-destroyed-border: #fecaca}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background-color:var(--bg);background-image:radial-gradient(circle,var(--dot) .75px,transparent .75px);background-size:18px 18px;color:var(--text);touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}.app,.app-pc{display:grid;grid-template-columns:280px 1fr 200px;gap:12px;padding:12px;min-height:100vh}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px}.panel h2,.panel h3{margin:0 0 10px;font-size:.95rem;font-weight:600;letter-spacing:-.01em}.muted{color:var(--muted);font-size:.85rem}.stack{display:flex;flex-direction:column;gap:8px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--muted)}.acl-matrix{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;margin:0;display:flex;flex-direction:column;gap:6px;background:var(--bg)}.acl-matrix legend{padding:0 4px;font-size:.8rem;color:var(--muted)}.check-row{flex-direction:row;align-items:center;gap:8px;color:var(--text)}.auth-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px}.auth-bar-user{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end}.auth-bar-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.85rem}.account-menu{position:relative;display:flex;justify-content:flex-end}.account-menu-trigger{max-width:none}.account-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:min(240px,calc(100vw - 24px));padding:10px;display:flex;flex-direction:column;gap:8px}.account-menu-user{display:flex;flex-direction:column;gap:2px;font-size:.85rem;padding:2px 2px 4px}.account-menu-user-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.account-menu-user-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-edit{flex-shrink:0;font-size:.75rem;color:var(--accent);text-decoration:none;background:none;border:none;padding:0;cursor:pointer}.account-menu-edit:hover{text-decoration:underline;color:var(--accent-hover)}.about-list{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:6px;color:var(--text)}.about-page{gap:0;max-width:40rem}.about-section{display:flex;flex-direction:column;gap:10px;padding:4px 0 16px}.about-section:last-child{padding-bottom:4px}.about-section h3{margin:0;font-size:1rem;font-weight:600}.about-lead{margin:0;font-size:1.05rem;line-height:1.65}.about-lead strong{margin-right:.15em}.about-copy{margin:0;line-height:1.65;font-size:.95rem}.about-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.about-link:hover{color:var(--accent-hover)}.about-page .auth-divider{margin:4px 0 12px}.account-menu-section{display:flex;flex-direction:column;gap:6px}.account-menu-label{font-size:.75rem;padding:0 2px}.account-menu-theme{display:grid;grid-template-columns:1fr 1fr;gap:6px}.account-menu-theme button{width:100%;justify-content:center;padding:6px 8px;font-size:.85rem}.account-menu-item{display:flex;align-items:center;width:100%;text-align:left;text-decoration:none;color:var(--text);background:transparent;border:none;border-radius:var(--radius);padding:8px 10px;font:inherit;cursor:pointer}.account-menu-item:hover{background:var(--surface)}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px}.auth-modal{width:min(360px,100%);max-height:calc(100vh - 32px);overflow:auto}.announcement-modal{width:min(420px,100%)}.announcement-modal-body{max-height:min(50vh,320px);overflow:auto}.icon-close{display:inline-flex;align-items:center;justify-content:center;padding:4px;margin:0;line-height:0;color:var(--muted);background:transparent;border:none;border-radius:var(--radius);cursor:pointer}.icon-close:hover{color:var(--text);background:transparent}.icon-close svg{display:block}.auth-divider{border:none;border-top:1px solid var(--border);margin:8px 0}input,select,textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:0;border-color:var(--accent)}button.primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:8px 14px;font-weight:500}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px}button.ghost:hover:not(:disabled){background:var(--surface);border-color:color-mix(in srgb,var(--border) 60%,var(--text))}button:disabled{opacity:.45;cursor:not-allowed}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.swatch{width:100%;aspect-ratio:1;border-radius:2px;border:2px solid transparent;padding:0}.swatch.selected{border-width:3px;border-color:var(--accent);outline:2px solid var(--panel);outline-offset:-4px;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 70%,transparent);animation:swatch-breathe 3.2s ease-in-out infinite}@keyframes swatch-breathe{0%,to{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}}@media(prefers-reduced-motion:reduce){.swatch.selected{animation:none}}.canvas-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}.canvas-stage{position:relative;flex:1;min-height:420px;background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.board-countdown{position:absolute;top:10px;left:50%;z-index:4;transform:translate(-50%);pointer-events:none;padding:6px 12px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);color:var(--text);font-family:IBM Plex Mono,SF Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.9rem;white-space:nowrap;box-shadow:0 1px 4px #0003}.board-countdown.is-ended{color:var(--muted)}.canvas-stage-hud{position:absolute;top:10px;left:50%;z-index:4;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.canvas-stage-hud .board-countdown{position:static;top:auto;left:auto;transform:none}.canvas-stage-hud .pixel-bank-meter{position:static;top:auto;right:auto}.pixel-bank-meter{position:absolute;top:10px;right:10px;z-index:4;pointer-events:none;display:flex;flex-direction:column;gap:3px;padding:6px;border-radius:var(--radius);background:#b6b6b6;border:1px solid #888888;box-shadow:0 1px 4px #0000002e}.pixel-bank-meter-row{display:flex;gap:3px}.pixel-bank-cell{width:11px;height:11px;box-sizing:border-box;border-radius:2px;border:1px solid #888888;overflow:hidden;flex-shrink:0}.pixel-bank-cell.is-empty{background:transparent}.pixel-bank-cell.is-full{border-color:transparent}.pixel-bank-cell.is-refilling{position:relative;background:transparent}.pixel-bank-cell-fan{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-viewport.is-panning{cursor:grabbing}.canvas-viewport.is-cooldown{cursor:none}.canvas-viewport.is-same-color{cursor:not-allowed}.board-canvas{position:absolute;top:0;left:0;image-rendering:pixelated;image-rendering:crisp-edges;max-width:none;max-height:none}.board-layer{position:absolute;top:0;left:0;pointer-events:none}.board-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,#f0f0f0 1px,transparent 1px),linear-gradient(to bottom,#f0f0f0 1px,transparent 1px);background-position:0 0;pointer-events:none}.cell-hover{position:absolute;box-sizing:border-box;pointer-events:none}.cell-pick-anim{position:absolute;box-sizing:border-box;pointer-events:none;z-index:3;transform-origin:center center;animation:cell-pick-shake .42s ease-out;will-change:transform}@keyframes cell-pick-shake{0%{transform:translateZ(0) scale(1) rotate(0)}14%{transform:translate3d(calc(-1 * var(--pick-shake, 2px)),calc(-.55 * var(--pick-shake, 2px)),0) scale(1.1) rotate(-4deg)}28%{transform:translate3d(var(--pick-shake, 2px),calc(.5 * var(--pick-shake, 2px)),0) scale(1.14) rotate(5deg)}42%{transform:translate3d(calc(-.7 * var(--pick-shake, 2px)),calc(.4 * var(--pick-shake, 2px)),0) scale(1.12) rotate(-3deg)}56%{transform:translate3d(calc(.5 * var(--pick-shake, 2px)),calc(-.35 * var(--pick-shake, 2px)),0) scale(1.08) rotate(2.5deg)}72%{transform:translate3d(calc(-.25 * var(--pick-shake, 2px)),calc(.2 * var(--pick-shake, 2px)),0) scale(1.04) rotate(-1deg)}to{transform:translateZ(0) scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.cell-pick-anim{animation:cell-pick-flash .28s ease-out}@keyframes cell-pick-flash{0%,to{opacity:1;transform:none}40%{opacity:.55;transform:scale(1.06)}}}.paint-anim{position:absolute;box-sizing:border-box;pointer-events:none;overflow:hidden}.paint-anim-fan{position:absolute;top:0;right:0;bottom:0;left:0}.paint-anim-border{position:absolute;top:0;right:0;bottom:0;left:0;animation:paint-border-blink .25s ease-in-out infinite alternate}@keyframes paint-border-blink{0%{box-shadow:inset 0 0 0 var(--paint-border-width, 2px) #e8e8e8}to{box-shadow:inset 0 0 0 var(--paint-border-width, 2px) #3a3a3a}}.cooldown-cursor{position:absolute;z-index:5;pointer-events:none;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%)}.cooldown-cursor-time{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);font-family:IBM Plex Mono,SF Mono,ui-monospace,monospace;font-size:12px;font-variant-numeric:tabular-nums;line-height:1;color:#f5f5f5;text-shadow:0 1px 0 #000;white-space:nowrap}.cooldown-cursor-clock{display:block}.overview{display:block;width:100%;height:100%;image-rendering:pixelated;background:var(--canvas)}.overview-wrap{position:relative;margin:0 auto;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--canvas);max-width:100%}.overview-viewport{position:absolute;box-sizing:border-box;border:2px solid var(--accent);pointer-events:none;z-index:1}.status-bar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.85rem}.error{color:var(--danger);font-size:.85rem}.announcement{background:var(--bg);border-left:3px solid var(--accent);padding:8px 10px;border-radius:0 var(--radius) var(--radius) 0;white-space:pre-wrap}.home{max-width:1100px;margin:0 auto;padding:20px 16px;display:flex;flex-direction:column;gap:16px;min-height:100vh}.home-header{display:flex;gap:24px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.home-header h1{margin:0 0 4px;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.15}.site-logo{display:inline-block;margin:0 0 4px;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--text);text-decoration:none}.site-logo:hover{color:var(--accent)}.site-header-subtitle{margin:0}.site-header-brand{min-width:0}.home-auth{min-width:0;flex-shrink:0}.home-body{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.admin-page>.panel{margin:0}@media(max-width:767px){.home{padding:12px 10px;gap:10px}.home-header{gap:12px;align-items:flex-start;flex-wrap:nowrap}.home-header>:first-child{min-width:0;flex:1}.home-header h1,.site-logo{font-size:1.45rem}.home-auth{margin-top:2px}.home-body{grid-template-columns:1fr}.home-admin{order:2}.home-list-panel{order:1}.board-card{padding:10px;gap:10px}.board-thumb{width:72px!important;height:72px!important}.home.site-page{max-width:none;width:100%;margin:0;padding:0;gap:0;min-height:100dvh;box-sizing:border-box}.home.site-page .home-header,.home.site-page .site-header{border-radius:0;border-left:none;border-right:none;border-top:none}.home.site-page .home-body{flex:1;display:flex;flex-direction:column;gap:0;min-height:0;width:100%}.home.site-page .site-page-panel,.home.site-page .home-list-panel,.home.site-page.admin-page>.panel{flex:1;width:100%;box-sizing:border-box;border-radius:0;border-left:none;border-right:none;border-bottom:none;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.home.site-page .site-page-panel input,.home.site-page .site-page-panel select,.home.site-page .site-page-panel textarea,.home.site-page .site-page-panel button.primary{width:100%;box-sizing:border-box}.home.site-page .site-header-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.board-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.board-card{display:flex;gap:14px;align-items:stretch;text-decoration:none;color:inherit;border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:var(--bg);transition:background-color .12s ease,border-color .12s ease}.board-card:hover{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.board-thumb-wrap{position:relative;flex-shrink:0;line-height:0}.board-thumb{flex-shrink:0;image-rendering:pixelated;image-rendering:crisp-edges;border-radius:8px;border:1px solid var(--border);background:var(--canvas);box-shadow:0 2px 8px #0000002e}.board-thumb-empty{background:repeating-linear-gradient(-45deg,var(--surface),var(--surface) 6px,var(--bg) 6px,var(--bg) 12px)}.board-thumb-size{position:absolute;top:5px;left:5px;z-index:1;padding:2px 5px;border-radius:4px;background:#d2d6dce0;box-shadow:0 1px 3px #00000038;color:#1a1d21;font-family:IBM Plex Mono,SF Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.544rem;line-height:1.2;pointer-events:none}.board-card-body{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}.board-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:.8rem}.board-card-remaining{font-family:IBM Plex Mono,SF Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.board-card-title{font-weight:600;white-space:pre-wrap}.badge{display:inline-block;padding:2px 7px;border-radius:2px;font-size:.72rem;font-weight:500;letter-spacing:.02em;border:1px solid transparent}.badge-active{background:var(--badge-active-bg);color:var(--badge-active-fg);border-color:var(--badge-active-border)}.badge-ended{background:var(--badge-ended-bg);color:var(--badge-ended-fg);border-color:var(--badge-ended-border)}.badge-destroyed{background:var(--badge-destroyed-bg);color:var(--badge-destroyed-fg);border-color:var(--badge-destroyed-border)}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.admin-table{width:100%;min-width:720px;border-collapse:collapse;font-size:.85rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);padding:8px 6px;text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-weight:600}a.ghost{display:inline-flex;align-items:center;text-decoration:none;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;font-size:.85rem}a.ghost:hover{background:var(--surface)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:0}.icon-btn svg{display:block}.replay-bar{margin-top:4px}.replay-bar input[type=range].replay-range{--replay-progress: 0%;--thumb-size: 14px;--track-h: 4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:var(--thumb-size);margin:0;padding:0;background:transparent;cursor:pointer}.replay-bar input[type=range].replay-range::-webkit-slider-runnable-track{height:var(--track-h);border-radius:999px;margin:0 calc(var(--thumb-size) / 2);width:calc(100% - var(--thumb-size));background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--replay-progress),var(--surface) var(--replay-progress),var(--surface) 100%)}.replay-bar input[type=range].replay-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--thumb-size);height:var(--thumb-size);margin-top:calc((var(--track-h) - var(--thumb-size)) / 2);border-radius:50%;background:var(--accent);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--border)}.replay-bar input[type=range].replay-range::-moz-range-track{height:var(--track-h);border-radius:999px;background:var(--surface);border:none}.replay-bar input[type=range].replay-range::-moz-range-progress{height:var(--track-h);border-radius:999px;background:var(--accent)}.replay-bar input[type=range].replay-range::-moz-range-thumb{width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;background:var(--accent);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--border)}.replay-bar-compact{margin:0;padding:8px 10px;background:var(--panel);border-top:1px solid var(--border)}.replay-controls,.replay-speeds{gap:6px}.replay-event{display:flex;align-items:center;gap:8px;font-size:.8rem}.replay-event-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-swatch{width:14px;height:14px;border-radius:2px;border:1px solid var(--border);flex-shrink:0}.scale-slider{display:flex;flex-direction:column;gap:6px;width:100%}.scale-slider input[type=range]{width:100%;accent-color:var(--accent)}.scale-slider-label{font-variant-numeric:tabular-nums}.scale-slider-compact{flex:1;min-width:0;flex-direction:row;align-items:center;gap:8px}.scale-slider-compact .scale-slider-label{flex-shrink:0;min-width:3.2rem}.scale-slider-compact input[type=range]{flex:1;min-width:0}.app-mobile{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;background:var(--bg)}.mobile-top{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0}.mobile-back{padding:8px}.mobile-top-mid{min-width:0;text-align:center}.mobile-top-end{display:flex;justify-content:flex-end;min-width:0}.mobile-mode{justify-content:center;flex-wrap:nowrap}.mobile-mode button{flex:1;min-width:0;padding:6px 8px;font-size:.85rem}.mobile-status{margin:0;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-info{flex:1;min-height:0;overflow:auto;background:var(--bg)}.mobile-info-body{padding:14px 12px calc(16px + env(safe-area-inset-bottom,0px))}.mobile-info-body h2,.mobile-info-body h3{margin:0}.mobile-info-meta{margin:0;display:flex;flex-direction:column;gap:8px}.mobile-info-meta>div{display:grid;grid-template-columns:5.5rem 1fr;gap:8px;align-items:baseline}.mobile-info-meta dt{margin:0;color:var(--muted);font-size:.85rem}.mobile-info-meta dd{margin:0;font-size:.9rem;word-break:break-word}.mobile-announce-bar{padding:6px 10px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel)}.mobile-canvas{position:relative;flex:1;min-height:0;background:var(--canvas)}.mobile-canvas .canvas-viewport{position:absolute;top:0;right:0;bottom:0;left:0}.mobile-loading{padding:16px}.mobile-canvas .board-countdown{left:10px;right:auto;transform:none}.mobile-canvas .pixel-bank-meter{top:10px;right:10px;left:auto}.mobile-replay{flex-shrink:0;max-height:38%;overflow:auto}.mobile-bottom{flex-shrink:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;gap:8px}.mobile-tools{justify-content:space-between}.palette-mobile{grid-template-columns:repeat(8,1fr);gap:4px}.palette-mobile .swatch{min-height:36px}.palette-wrap{position:relative}.palette-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-size:1.15rem;font-weight:600;color:var(--text);background:color-mix(in srgb,var(--panel) 72%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--radius);pointer-events:auto}.mobile-drawer{position:fixed;left:0;right:0;bottom:0;z-index:20;max-height:70dvh;overflow:auto;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-direction:column;gap:10px}.mobile-drawer-more{max-height:85dvh}.mobile-drawer-head{margin-bottom:2px}.mobile-drawer .overview-wrap{max-width:240px}.canvas-viewport.is-touch{cursor:grab}.canvas-viewport.is-touch.is-panning{cursor:grabbing}
