:root{--bg:#14161b;--panel:#14161ceb;--panel-solid:#1c1f26;--panel-raised:#252932;--text:#ecebe8;--muted:#ecebe899;--faint:#ecebe861;--accent:#7dd3a8;--accent-ink:#0d2a1d;--danger:#e5484d;--line:#ffffff1a;--shadow:0 14px 40px #00000073;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}.invisible{visibility:hidden}.icon svg{width:18px;height:18px;display:block}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.library button,.overlay button,.sel-bar button,.replay-ui button,.tips-card button,.toast button{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#ffffff0f;border-radius:10px;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 15px;font-weight:500;transition:background .12s,transform 80ms;display:inline-flex}.library button:hover,.overlay button:hover,.sel-bar button:hover,.replay-ui button:hover,.tips-card button:hover{background:#ffffff1f}.library button:active,.overlay button:active,.sel-bar button:active,.tips-card button:active{transform:translateY(1px)}button.primary{font-weight:650;background:var(--accent)!important;color:var(--accent-ink)!important;border-color:#0000!important}button.primary:hover{filter:brightness(1.07)}button.danger{font-weight:600;background:var(--danger)!important;color:#fff!important;border-color:#0000!important}button:disabled{opacity:.45;cursor:default!important;transform:none!important}button.ghost{background:0 0!important;border-color:#0000!important}button.ghost:hover{background:#ffffff14!important}.icon-btn{width:32px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;background:0 0!important;border:0!important;border-radius:8px!important;height:32px!important;padding:0!important;display:inline-flex!important}.icon-btn:hover{color:var(--text);background:#ffffff1a!important}.text-input{width:100%;height:38px;color:var(--text);font:inherit;background:#111318;border:1px solid #353a46;border-radius:9px;padding:0 12px}.text-input:focus{border-color:var(--accent);outline:none}input[type=range]{accent-color:var(--accent)}.switch{appearance:none;cursor:pointer;background:#3a3f4b;border-radius:11px;flex:none;width:38px;height:22px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";width:16px;height:16px;transition:transform .18s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(16px)}.segmented{background:#ffffff0f;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg{height:28px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 11px;font-size:13px}.seg:hover{color:var(--text)}.seg.on{color:var(--text);background:#ffffff29;font-weight:600}.spinner{vertical-align:-2px;border:2px solid #fff3;border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.tooltip{z-index:1000;color:#f2f2f2;pointer-events:none;opacity:0;background:#0b0c0f;border-radius:8px;align-items:center;gap:8px;max-width:280px;padding:6px 10px;font-size:12.5px;line-height:1.35;transition:opacity .12s;display:flex;position:fixed;top:0;left:0;box-shadow:0 6px 20px #0006}.tooltip.show{opacity:1}.tip-key{background:#ffffff24;border-radius:4px;flex:none;padding:1px 6px;font:11px ui-monospace,monospace}.toasts{z-index:900;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);max-width:min(560px,90vw);box-shadow:var(--shadow);pointer-events:auto;animation:toast-in .22s var(--ease);background:#101217f5;border-radius:12px;align-items:center;gap:12px;padding:9px 16px;font-size:13.5px;transition:opacity .25s,transform .25s;display:flex}.toast:has(button){padding-right:8px}.toast.success{border-color:#7dd3a873}.toast.success:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%;flex:none}.toast.out{opacity:0;transform:translateY(6px)}.toast .toast-action{height:28px;color:var(--accent);border-radius:7px;padding:0 11px;font-weight:650}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#08090c8c;justify-content:center;align-items:center;padding:20px;animation:.16s ease-out fade-in;display:flex;position:fixed;inset:0}.overlay.out{opacity:0;transition:opacity .15s}.overlay>.card{animation:pop-in .22s var(--ease)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}.card{background:var(--panel-solid);border:1px solid #ffffff0f;border-radius:18px;max-width:min(94vw,920px);max-height:92vh;padding:22px 26px;overflow:auto;box-shadow:0 24px 70px #00000080}.card h2{letter-spacing:-.01em;margin:0;font-size:20px}.card-head{justify-content:space-between;align-items:center;gap:16px;margin:-4px -8px 0 0;display:flex}.dialog-overlay{z-index:800}.dialog{width:min(440px,92vw)}.dialog-body{color:var(--muted);margin-top:8px}.dialog-field{color:var(--muted);flex-direction:column;gap:6px;margin-top:16px;font-size:12.5px;display:flex}.dialog-actions{justify-content:flex-end;margin-top:22px}.menu{z-index:700;background:var(--panel-raised);border:1px solid var(--line);min-width:170px;box-shadow:var(--shadow);animation:pop-in .14s var(--ease);border-radius:12px;padding:5px;position:fixed}.menu-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:8px 12px;display:block}.menu-item:hover,.menu-item:focus-visible{background:#ffffff14;outline:none}.menu-item.danger{color:#ff8a8d}.library{max-width:1140px;margin:0 auto;padding:44px 28px 90px}body:has(.library){overflow:auto}.lib-head{align-items:baseline;gap:14px;display:flex}.lib-head h1{letter-spacing:-.03em;margin:0;font-size:36px}.lib-sub{color:var(--muted)}.lib-h2{color:var(--muted);align-items:center;gap:10px;margin:0 0 14px;font-size:15px;font-weight:600;display:flex}.lib-count{background:#ffffff14;border-radius:99px;padding:0 8px;font-size:12px}.library section{margin-bottom:38px}.new-card{text-align:center;background:radial-gradient(at top,#7dd3a80f,#0000 70%),#ffffff05;border:2px dashed #ffffff24;border-radius:20px;margin:26px 0 40px;padding:34px 24px 32px;transition:border-color .15s,background .15s,transform .15s}.new-card.over{border-color:var(--accent);background:#7dd3a81a;transform:scale(1.01)}.new-icon{color:var(--accent);background:#7dd3a81f;border-radius:14px;margin-bottom:10px;padding:12px;display:inline-flex}.new-icon svg{width:26px;height:26px}.new-title{font-size:21px;font-weight:650}.new-sub{color:var(--muted);margin:6px 0 18px}.puzzle-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.puzzle-card{cursor:pointer;outline-offset:3px;transition:transform .18s var(--ease), box-shadow .18s;background:#1e2128;border-radius:16px;position:relative;overflow:hidden}.puzzle-card:hover,.puzzle-card:focus-visible{transform:translateY(-3px);box-shadow:0 16px 34px #00000073}.thumb{aspect-ratio:3/2;background:#0f1013;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease);display:block}.puzzle-card:hover .thumb img{transform:scale(1.04)}.thumb-action{opacity:0;background:#00000059;justify-content:center;align-items:center;transition:opacity .18s;display:flex;position:absolute;inset:0}.thumb-action>span{color:#111;background:#fffffff2;border-radius:99px;align-items:center;gap:7px;padding:8px 16px 8px 12px;font-weight:650;display:inline-flex}.puzzle-card:hover .thumb-action,.puzzle-card:focus-visible .thumb-action{opacity:1}.badge{background:var(--accent);color:var(--accent-ink);border-radius:99px;align-items:center;gap:4px;padding:3px 10px 3px 6px;font-size:11.5px;font-weight:700;display:inline-flex;position:absolute;top:10px;left:10px}.badge .icon svg{stroke-width:2.6px;width:14px;height:14px}.card-body{padding:11px 14px 14px}.card-name{white-space:nowrap;text-overflow:ellipsis;padding-right:30px;font-weight:650;overflow:hidden}.card-meta{color:var(--muted);margin-top:2px;font-size:12.5px}.card-when{color:var(--faint);margin:2px 0 10px;font-size:12px}.card-progress{background:#ffffff1a;border-radius:2px;height:4px;overflow:hidden}.card-progress div{background:linear-gradient(90deg,#7dd3a8,#5fb3f9);height:100%}.library .card-more{color:#fff;opacity:0;background:#00000080;border:0;border-radius:8px;width:30px;height:30px;padding:0;transition:opacity .15s;position:absolute;top:8px;right:8px}.puzzle-card:hover .card-more,.puzzle-card:focus-within .card-more{opacity:1}.library .card-more:hover{background:#000000bf}.pic-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pic-head .lib-h2{margin:0}.pic-chips{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.pic-chips:empty{display:none}.library .pic-chips .chip{border-radius:99px;height:30px;padding:0 13px;font-size:13px}.library .pic-chips .chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:650}.pic-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.library .pic-card{aspect-ratio:3/2;outline-offset:3px;height:auto;transition:transform .18s var(--ease), box-shadow .18s;background:#0f1013;border:0;border-radius:14px;padding:0;display:block;position:relative;overflow:hidden}.library .pic-card:hover,.library .pic-card:focus-visible{background:#0f1013;transform:translateY(-3px);box-shadow:0 14px 30px #0006}.pic-card img,.pic-card canvas{object-fit:cover;width:100%;height:100%;display:block}.pic-name{color:#fff;text-align:left;text-overflow:ellipsis;background:linear-gradient(#0000,#000000b8);padding:24px 10px 8px;font-size:12.5px;font-weight:550;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.pic-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000009e;border-radius:99px;align-items:center;gap:3px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.pic-badge.done{background:var(--accent);color:var(--accent-ink);padding-left:5px}.pic-badge svg{stroke-width:2.6px;width:13px;height:13px}.daily-section:empty{display:none}.daily-card{background:linear-gradient(115deg,#7dd3a81c,#5fb3f90f 60%,#0000),#ffffff06;border:1px solid #7dd3a838;border-radius:20px;align-items:center;gap:20px;margin-top:26px;padding:14px;display:flex}.library .daily-thumb{aspect-ratio:3/2;background:#0f1013;border:0;border-radius:12px;flex:none;width:210px;height:auto;padding:0;display:block;position:relative;overflow:hidden}.library .daily-thumb:hover{background:#0f1013}.daily-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease);display:block}.daily-thumb:hover img{transform:scale(1.04)}.daily-body{flex:1;min-width:0}.daily-kicker{color:var(--accent);align-items:center;gap:6px;font-size:12.5px;font-weight:650;display:flex}.daily-kicker svg{width:15px;height:15px}.daily-title{letter-spacing:-.01em;margin:4px 0 2px;font-size:21px;font-weight:700}.daily-meta{color:var(--muted);font-size:13.5px}.daily-note{color:var(--faint);margin-top:8px;font-size:12.5px}.daily-actions{flex-direction:column;align-items:stretch;gap:8px;padding-right:6px;display:flex}.share-text{font:inherit;white-space:pre-wrap;-webkit-user-select:text;user-select:text;background:#ffffff0d;border-radius:10px;margin:0;padding:12px 14px}.new-puzzle{width:min(900px,94vw)}.np-body{align-items:flex-start;gap:26px;margin-top:16px;display:flex}.np-side{flex-direction:column;flex:none;gap:8px;max-width:512px;display:flex}.np-credit{color:var(--faint);padding:0 4px;font-size:12px}.np-credit a{color:var(--muted)}.np-preview-wrap{background:#0f1013;border-radius:14px;flex:none;padding:6px}.np-preview{border-radius:9px;display:block}.np-form{flex-direction:column;flex:1;gap:18px;min-width:260px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:12.5px}.np-count{font-size:22px;font-weight:700}.np-detail{color:var(--muted);margin-top:-4px;font-size:13px}.np-slider{width:100%;margin:6px 0 2px}.np-chips{flex-wrap:wrap;gap:6px;display:flex}.overlay .chip{height:28px;padding:0 10px;font-size:12.5px}.overlay .chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:650}.np-warn{color:#ffd98a;background:#ffc94d1a;border:1px solid #ffc94d4d;border-radius:9px;margin-top:4px;padding:8px 11px;font-size:12.5px}.np-check{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.np-check span{flex-direction:column;display:flex}.np-check small{color:var(--muted);font-size:12px}.np-actions{justify-content:flex-end;margin-top:22px}.np-status{color:var(--muted);margin-right:auto;font-size:13px}@media (width<=760px){.np-body{flex-direction:column}}.loading{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0b0ed1;justify-content:center;align-items:center;transition:opacity .25s;animation:.2s fade-in;display:flex;position:fixed;inset:0}.loading.out{opacity:0}.loading-card{background:var(--panel-solid);width:340px;box-shadow:var(--shadow);border-radius:18px;padding:18px}.loading-thumb{aspect-ratio:3/2;background:#0f1013 50%/cover no-repeat;border-radius:11px;margin-bottom:14px}.loading-name{font-weight:650}.loading-label{color:var(--muted);font-size:13px}.loading-bar{background:#ffffff1f;border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.loading-fill{background:var(--accent);width:0;height:100%;transition:width .15s}.game{-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.table{touch-action:none;background-repeat:repeat;position:absolute;inset:0;box-shadow:inset 0 0 240px #00000073}.world-dom{transform-origin:0 0;--inv:1;position:absolute;top:0;left:0}.pieces-canvas{pointer-events:none;position:absolute;inset:0}.lasso{pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.lasso.active{display:block}.lasso polyline{fill:#7db4ff1f;stroke:#fff;stroke-width:1.5px;stroke-dasharray:6 5;stroke-linejoin:round;animation:.5s linear infinite march}[data-table=linen] .lasso polyline{stroke:#1d2230;fill:#28468c1a}@keyframes march{to{stroke-dashoffset:-11px}}.tray{border-radius:calc(10px * var(--inv));box-shadow:inset 0 0 0 calc(1.5px * var(--inv)) #fff3;background:#00000029;transition:box-shadow .15s;position:absolute}.tray.empty{box-shadow:inset 0 0 0 calc(1.5px * var(--inv)) #ffffff21;background:#0000001a}.tray:hover{z-index:1;box-shadow:inset 0 0 0 calc(1.5px * var(--inv)) #ffffff59}[data-table=linen] .tray{box-shadow:inset 0 0 0 calc(1.5px * var(--inv)) #3c280a40;background:#3c280a14}.tray.collapsed{box-shadow:none;background:0 0}.tray-head{min-width:100%;height:calc(30px * var(--inv));align-items:center;gap:calc(7px * var(--inv));padding:0 calc(6px * var(--inv)) 0 calc(10px * var(--inv));font-size:calc(13px * var(--inv));color:#fff;white-space:nowrap;border-radius:calc(9px * var(--inv)) calc(9px * var(--inv)) 0 0;cursor:grab;background:#14161ccc;display:flex;position:absolute;bottom:100%;left:0}.tray.collapsed .tray-head{border-radius:calc(9px * var(--inv));box-shadow:0 calc(3px * var(--inv)) calc(10px * var(--inv)) #0000004d}.tray-swatch{width:calc(10px * var(--inv));height:calc(10px * var(--inv));background:var(--tray-color);box-shadow:0 0 0 calc(1px * var(--inv)) #ffffff80;border-radius:50%;flex:none;display:none}.tray.has-color .tray-swatch{display:inline-block}.tray-name{border-radius:calc(4px * var(--inv));outline:none;font-weight:600}.tray-name[contenteditable=true]{padding:0 calc(4px * var(--inv));-webkit-user-select:text;user-select:text;cursor:text;background:#ffffff29}.tray-count{color:#fff9;font-variant-numeric:tabular-nums}.tray-actions{padding-left:calc(10px * var(--inv));gap:calc(4px * var(--inv));margin-left:auto;display:none}.tray:hover .tray-actions,.tray.collapsed .tray-actions{display:flex}.tray-btn{border-radius:calc(5px * var(--inv));padding:calc(3px * var(--inv)) calc(8px * var(--inv));font-size:calc(12px * var(--inv));color:#fff;cursor:pointer;background:#ffffff1f;border:0}.tray-btn:hover{background:#ffffff3d}.tray-resize{width:calc(18px * var(--inv));height:calc(18px * var(--inv));cursor:nwse-resize;border-bottom-right-radius:calc(10px * var(--inv));background:linear-gradient(135deg,#0000 55%,#ffffff59 55%);position:absolute;bottom:0;right:0}.tray.collapsed .tray-resize{display:none}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-top,.nav,.timelapse-btn{transition:opacity .25s, translate .3s var(--ease)}.hud.zen .hud-top{opacity:0;pointer-events:none;translate:0 -100%}.hud.zen .nav,.hud.zen .timelapse-btn,.hud.zen .tips-card{opacity:0;pointer-events:none}.hud-top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0e0f13e6,#0e0f13bd);border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;height:56px;padding:0 10px;display:flex;position:absolute;top:0;left:0;right:0}.hud-left,.hud-right{flex:1 1 0;align-items:center;gap:2px;min-width:0;display:flex}.hud-right{justify-content:flex-end;min-width:max-content}.hud-center{flex:none;align-items:center;gap:16px;display:flex}.back,.tool{height:36px;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;transition:background .12s;display:inline-flex}.back:hover,.tool:hover,.tool.active{background:#ffffff1a}.tool:active{background:#ffffff29}.tool:disabled{opacity:.3;cursor:default;background:0 0}.title-stack{flex-direction:column;min-width:0;margin-left:6px;line-height:1.2;display:flex}.puzzle-name{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.save-state{color:var(--faint);font-size:11.5px;transition:opacity .6s}.save-state.saved:before{content:"✓ ";color:var(--accent)}.save-state.quiet{opacity:0}.save-state.error{color:#ff8a8d}.timer{font-variant-numeric:tabular-nums;text-align:right;min-width:52px;font-size:15px}.timer.paused{opacity:.5}.timer.paused:after{content:" paused";font-size:11px}.progress{align-items:center;gap:10px;display:flex}.progress-bar{background:#ffffff21;border-radius:4px;width:170px;height:7px;overflow:hidden}.progress-fill{width:0;height:100%;transition:width .5s var(--ease);background:linear-gradient(90deg,#7dd3a8,#5fb3f9);border-radius:4px}.progress-text{font-variant-numeric:tabular-nums;min-width:38px;font-size:13px;font-weight:600}.sep{background:#ffffff21;width:1px;height:22px;margin:0 5px}@media (width<=1380px){.tool-label{display:none}}@media (width<=920px){.progress-bar,.back>span:last-child{display:none}}.settings-pop{z-index:30;border:1px solid var(--line);width:400px;max-height:calc(100vh - 80px);box-shadow:var(--shadow);animation:pop-in .16s var(--ease);background:#181a20f7;border-radius:16px;padding:16px 18px 8px;position:absolute;top:60px;right:12px;overflow:auto}.settings-pop h3{margin:0 0 6px;font-size:15px}.set-row{border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;padding:11px 0;display:flex}.set-label{font-size:13.5px}.set-help{color:var(--faint);max-width:180px;margin-top:2px;font-size:11.5px}.sound-row{align-items:center;gap:10px;display:flex}.volume{width:120px}.swatches{gap:7px;display:flex}.theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:30px;height:30px;padding:0;transition:transform .12s;box-shadow:0 0 0 1px #ffffff26}.theme-swatch:hover{transform:scale(1.08)}.theme-swatch.on{border-color:#fff}.sel-bar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:bar-in .2s var(--ease);border-radius:14px;align-items:center;gap:6px;padding:6px 6px 6px 16px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.sel-bar.pulse{animation:bar-in .2s var(--ease), pulse .8s ease-in-out .2s 3}@keyframes bar-in{0%{opacity:0;transform:translate(-50%,10px)}}@keyframes pulse{50%{box-shadow:0 0 0 4px #7cc4ff73, var(--shadow)}}.sel-text{white-space:nowrap;margin-right:6px;font-weight:600}.box-panel{resize:both;background:var(--panel);border:1px solid var(--line);min-width:160px;min-height:110px;box-shadow:var(--shadow);animation:pop-in .18s var(--ease);border-radius:14px;flex-direction:column;display:flex;position:absolute;top:70px;right:16px;overflow:hidden}.box-panel.big{resize:none;z-index:20;width:min(70vw,1000px)!important;height:min(78vh,700px)!important}.box-head{height:32px;color:var(--muted);cursor:move;flex:none;justify-content:space-between;align-items:center;padding:0 2px 0 12px;font-size:12px;display:flex}.box-credit{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--faint);flex:1;margin:0 8px;font-size:11.5px;overflow:hidden}.box-panel img{object-fit:contain;cursor:zoom-in;flex:1;width:100%;min-height:0;display:block}.box-panel.big img{cursor:zoom-out}.nav{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-bar{background:var(--panel);border:1px solid var(--line);border-radius:11px;align-items:center;gap:1px;padding:3px;display:flex;box-shadow:0 6px 20px #0000004d}.zoom-label{min-width:52px;height:32px;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 6px;font-size:12.5px}.zoom-label:hover{color:var(--text);background:#ffffff1a}.minimap{border:1px solid var(--line);cursor:crosshair;background:#0c0d11a8;border-radius:12px;width:232px;height:152px}.timelapse-btn{border:1px solid var(--line);background:var(--panel);height:38px;color:var(--text);cursor:pointer;border-radius:11px;align-items:center;gap:8px;padding:0 14px 0 10px;font-weight:500;display:inline-flex;position:absolute;bottom:16px;left:16px;box-shadow:0 6px 20px #0000004d}.timelapse-btn:hover{background:#282c36f5}.tips-card{z-index:25;width:340px;box-shadow:var(--shadow);animation:pop-in .25s var(--ease);background:#1a1d24fa;border:1px solid #7dd3a84d;border-radius:18px;padding:18px 18px 14px;transition:opacity .2s,transform .2s;position:absolute;bottom:66px;left:16px}.tips-card.out{opacity:0;transform:translateY(8px)}.tips-close{position:absolute;top:8px;right:8px}.tips-icon{color:var(--accent);background:#7dd3a824;border-radius:12px;padding:9px;display:inline-flex}.tips-icon svg{width:22px;height:22px}.tips-text h3{margin:10px 0 4px;font-size:16px}.tips-text p{color:var(--muted);min-height:60px;margin:0}.tips-foot{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.tips-foot .row{gap:6px}.tips-dots{gap:6px;display:flex}.dot{background:#fff3;border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.dot.on{background:var(--accent);transform:scale(1.2)}.help-card{width:min(880px,94vw)}.help-sections{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:6px 30px;margin:16px 0 6px;display:grid}.help-section h3{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:12px 0 8px;font-size:12px;font-weight:650}.help-row{grid-template-columns:128px 1fr;gap:12px;padding:5px 0;font-size:13.5px;display:grid}.help-key{color:var(--muted)}.help-actions{justify-content:space-between;margin-top:18px}kbd{min-width:20px;color:var(--text);text-align:center;background:#2c2f38;border-bottom:2px solid #121317;border-radius:5px;padding:1px 6px;font:12px ui-monospace,monospace;display:inline-block}.complete-card{text-align:center;width:min(500px,92vw);padding:30px 32px}.complete-badge{background:var(--accent);color:var(--accent-ink);animation:badge-pop .5s var(--ease);border-radius:50%;margin-bottom:12px;padding:12px;display:inline-flex;box-shadow:0 0 0 8px #7dd3a826}.complete-badge svg{stroke-width:2.6px;width:30px;height:30px}@keyframes badge-pop{0%{transform:scale(.4)}60%{transform:scale(1.15)}}.complete-card h2{font-size:30px}.complete-sub{color:var(--muted);margin:4px 0 20px}.stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px;display:grid}.stat{background:#ffffff0d;border-radius:12px;padding:12px 6px}.stat-value{font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.stat-label{color:var(--muted);font-size:11.5px}.up-next{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.up-next-label{color:var(--muted);margin-bottom:10px;font-size:12.5px}.up-next-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.overlay .up-next-card{aspect-ratio:3/2;height:auto;transition:transform .15s var(--ease), box-shadow .15s;background:#0f1013;border:0;border-radius:10px;padding:0;display:block;position:relative;overflow:hidden}.overlay .up-next-card:hover{background:#0f1013;transform:translateY(-2px);box-shadow:0 10px 24px #0006}.up-next-card img{object-fit:cover;width:100%;height:100%;display:block}.up-next-card span{color:#fff;text-align:left;text-overflow:ellipsis;background:linear-gradient(#0000,#000000bf);padding:16px 7px 5px;font-size:11.5px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.confetti{z-index:60;width:100%;height:100%;position:fixed;inset:0;pointer-events:none!important}.replaying .hud,.replaying .world-dom,.replaying .lasso{display:none}.replay-ui{z-index:40;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);white-space:nowrap;border-radius:16px;align-items:center;gap:10px;padding:10px 12px 10px 18px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.rp-title{margin-right:4px;font-weight:650}.rp-scrub{width:260px}.rp-speeds{gap:2px;display:flex}.replay-ui .rp-speed{height:30px;padding:0 8px;font-size:12px}.replay-ui .rp-speed.on{background:#fff3}.recording .rp-record{background:#c8343a;border-color:#0000}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.players{align-items:center;display:flex}.players:empty{display:none}.player-dot{background:var(--player);color:#14161b;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:750;display:inline-flex;box-shadow:0 0 0 2px #0e0f13e6}.players .player-dot+.player-dot{margin-left:-6px}.together-pop{width:380px;padding-bottom:16px}.together-text{color:var(--muted);margin:0 0 12px;font-size:13.5px}.invite-row{gap:8px;display:flex}.invite-link{flex:1;min-width:0;font-size:13px}.together-pop .invite-row button{cursor:pointer;border-radius:9px;align-items:center;gap:6px;height:38px;padding:0 14px;display:inline-flex}.together-code{color:var(--faint);margin:8px 0 14px;font-size:12px}.together-code strong{color:var(--muted);letter-spacing:.12em}.together-players{border-top:1px solid #ffffff0f;flex-direction:column;gap:8px;padding:12px 0;display:flex}.together-player{align-items:center;gap:10px;font-size:13.5px;display:flex}.together-tag{color:var(--faint);margin-left:-6px}.together-wait{color:var(--muted);align-items:center;gap:8px;margin:0 0 6px;font-size:13px;display:flex}.together-help{max-width:none;margin:6px 0 0}.together-actions{margin-top:12px}.together-actions button{border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:8px;height:32px;padding:0 12px;font-size:12.5px}.remote-cursor{z-index:5;pointer-events:none;color:var(--player);filter:drop-shadow(0 2px 3px #00000059);transition:transform 70ms linear;position:absolute;top:0;left:0}.remote-cursor.hidden{display:none}.remote-arrow{display:block;position:absolute;top:-2px;left:-3px}.remote-name{background:var(--player);color:#14161b;white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700;position:absolute;top:16px;left:14px}.player-dot.away{opacity:.4}.net-banner{z-index:26;color:#ffd98a;box-shadow:var(--shadow);background:#3c2814f2;border:1px solid #ffc94d66;border-radius:99px;align-items:center;gap:9px;padding:8px 16px 8px 12px;font-size:13px;font-weight:550;display:flex;position:absolute;top:66px;left:50%;transform:translate(-50%)}
