:root{--bg:#f7f5ef;--panel:#fff;--panel-2:#f1eee6;--text:#2a2723;--muted:#8a857c;--border:#e2ddd2;--accent:#9a6b3f;--accent-soft:#f0e3d4;--danger:#c0473b;--ok:#3a9d5d;--warn:#cf8b2f;--input-bg:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#15191f;--panel:#1e242c;--panel-2:#1a1f26;--text:#e3e8ef;--muted:#8b95a4;--border:#2d343e;--accent:#57a6dd;--accent-soft:#2b323c;--danger:#e0727a;--ok:#5cc27e;--warn:#e0a95c;--input-bg:#2b323c}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);overscroll-behavior:none}button{cursor:pointer;font-family:inherit}input{color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:15px}input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.muted{color:var(--muted)}.btn{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:7px 14px;font-size:14px}.btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 16%, var(--panel));border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn.large{min-width:150px;padding:10px 18px}.btn.primary{color:#fff;background:var(--accent);border-color:#0000}.btn.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.1);border-color:#0000}.btn.danger{color:#fff;background:var(--danger);border-color:#0000}.btn.danger:hover:not(:disabled){background:var(--danger);filter:brightness(1.1);border-color:#0000}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.status{font-size:13px}.status.notStarted{color:var(--muted)}.status.inProgress{color:var(--warn)}.status.completed{color:var(--ok)}.error{color:var(--danger);font-size:14px}.overlay{z-index:20;place-items:center;display:grid;position:fixed;inset:0}.overlay.dim{background:#00000040}.panel{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:14px;max-width:min(92vw,560px);padding:28px 36px;display:flex;box-shadow:0 12px 40px #0000004d}.panel h2{margin:0;font-size:20px}.panel p{margin:0;font-size:14px}.splash{height:100%;color:var(--muted);place-items:center;display:grid}.setup{--card-image-h:min(360px, 42vh);flex-direction:column;height:100%;display:flex;overflow:hidden}.setup-head{flex-direction:column;flex:none;align-items:center;gap:16px;padding:24px 40px 16px;display:flex}.setup-head.collapsed{gap:8px;padding-bottom:8px}.icon-btn.head-toggle{width:56px;height:18px;color:color-mix(in srgb, var(--muted) 55%, transparent);border-radius:8px 8px 0 0;flex:none;align-self:flex-end;margin-top:-10px;margin-bottom:-16px}.head-toggle .flip{transform:rotate(180deg)}.icon-btn.lists-toggle{z-index:2;border-radius:0 0 8px 8px;margin-bottom:0;position:sticky;top:0}.setup-lists{border-top:1px solid var(--border);flex-direction:column;flex:auto;gap:18px;min-height:0;padding:16px 40px 40px;display:flex;overflow-y:auto}.setup-lists.collapsed{padding-top:0}.setup-about{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:14px;padding-top:14px;font-size:.8rem;line-height:1.7;display:flex}.setup-top{grid-template-columns:1fr auto 1fr;align-self:stretch;align-items:center;display:grid}.setup-top-right{grid-column:3;justify-self:end;align-items:center;gap:8px;display:flex}.icon-btn{width:36px;height:36px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:color-mix(in srgb, var(--accent) 16%, var(--panel));border-color:var(--accent)}.icon-btn.active{background:var(--accent);color:#fff;border-color:#0000}.dev-btn{color:var(--warn)}.dev-btn:hover{background:color-mix(in srgb, var(--warn) 14%, transparent)}.dev-btn.active{background:var(--warn);color:#fff}.dev-view{flex-direction:column;gap:16px;min-height:100%;padding:24px 40px 48px;display:flex}.dev-view-head{align-items:center;gap:16px;display:flex}.dev-view-head h1{margin:0;font-size:24px}.table-wrap{overflow-x:auto}.dev-table{border-collapse:collapse;width:100%;font-size:14px}.dev-table th,.dev-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}.dev-table th{color:var(--muted);font-weight:600}.dev-table td.num{text-align:right;font-variant-numeric:tabular-nums}.dev-table tbody tr:hover{background:var(--panel-2)}.dev-row{cursor:pointer}.dev-row.selected,.dev-row.selected:hover{background:var(--accent-soft)}.dev-detail{flex-direction:column;gap:16px;margin-top:8px;display:flex}.dev-subtitle{margin:4px 0;font-size:16px}.stat-row{flex-wrap:wrap;gap:12px;display:flex}.stat{border:1px solid var(--border);background:var(--panel);border-radius:10px;min-width:140px;padding:12px 16px}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px}.setup-title{grid-column:2;justify-content:center;align-items:center;gap:10px;margin:0;font-size:34px;display:flex}.title-shape{object-fit:contain;width:40px;height:40px}.selection-box{border:1px solid var(--border);background:var(--panel);border-radius:16px;flex-direction:column;align-items:center;gap:16px;padding:24px 28px;display:flex;position:relative;box-shadow:0 6px 24px #0000001f}.selection-close{border:1px solid var(--border);background:var(--panel-2);width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;display:grid;position:absolute;top:6px;right:8px}.selection-close:hover{background:var(--panel);color:var(--text)}.selection-quarantine{color:var(--danger);right:46px}.selection-quarantine:hover{color:var(--danger);border-color:var(--danger)}.selection-name{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex;position:absolute;top:6px;right:calc(100% + 10px)}.selection-back{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;border-radius:6px;padding:1px 4px;line-height:1}.selection-back:hover{color:var(--text);border-color:var(--accent)}.selection-tabs{flex-direction:column;align-items:flex-end;gap:6px;right:100%}.selection-tab-row{align-items:center;gap:4px;display:flex}.selection-tab{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;border-right:0;border-radius:8px 0 0 8px;padding:6px 10px;line-height:1}.selection-tab:hover{color:var(--text);border-color:var(--accent)}.selection-tab.active{background:var(--panel);color:var(--text);cursor:default}.comment-list{min-width:min(320px,100%);max-width:480px;max-height:var(--card-image-h);flex-direction:column;flex:1;gap:12px;display:flex;overflow-y:auto}.comment{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.comment-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.comment-user{font-weight:600}.comment-cleared{color:var(--muted);font-size:12px}.comment-body{overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px;line-height:1.6}.comment-form{flex-direction:column;gap:6px;display:flex}.comment-form textarea{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);resize:vertical;border-radius:8px;min-height:72px;padding:8px 10px}.comment-form-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.comment-count{color:var(--muted);font-size:12px}.comment-count.over{color:var(--danger)}.comment-edit-btn{margin-left:auto;padding:2px 10px;font-size:12px}.preview-row{gap:16px;display:flex}.preview-slot{flex-direction:column;align-items:center;gap:6px;display:flex}.preview-caption{color:var(--muted);font-size:12px}.preview-box{object-fit:contain;border-radius:12px;width:min(460px,42vw);height:300px}.preview-box.placeholder{cursor:pointer;border:1.5px dashed color-mix(in srgb, var(--muted) 60%, transparent);position:relative;overflow:hidden}.preview-photo{object-fit:cover;will-change:transform, opacity;width:100%;height:100%;position:absolute;inset:0}@keyframes kb-in-right{0%{transform:scale(1.1)translate(-3%)}to{transform:scale(1.24)translate(3%)}}@keyframes kb-out-left{0%{transform:scale(1.24)translate(3%)}to{transform:scale(1.1)translate(-3%)}}@keyframes kb-in-down{0%{transform:scale(1.1)translateY(-3%)}to{transform:scale(1.24)translateY(3%)}}@keyframes kb-out-up{0%{transform:scale(1.24)translateY(3%)}to{transform:scale(1.1)translateY(-3%)}}@keyframes kb-in-diag{0%{transform:scale(1.1)translate(-2.5%,-2.5%)}to{transform:scale(1.24)translate(2.5%,2.5%)}}@keyframes kb-out-diag{0%{transform:scale(1.24)translate(2.5%,-2.5%)}to{transform:scale(1.1)translate(-2.5%,2.5%)}}@keyframes preview-fade{0%{opacity:0}8%{opacity:1}92%{opacity:1}to{opacity:0}}.preview-photo.kb-in-right{animation:7s linear both kb-in-right,7s linear both preview-fade}.preview-photo.kb-out-left{animation:7s linear both kb-out-left,7s linear both preview-fade}.preview-photo.kb-in-down{animation:7s linear both kb-in-down,7s linear both preview-fade}.preview-photo.kb-out-up{animation:7s linear both kb-out-up,7s linear both preview-fade}.preview-photo.kb-in-diag{animation:7s linear both kb-in-diag,7s linear both preview-fade}.preview-photo.kb-out-diag{animation:7s linear both kb-out-diag,7s linear both preview-fade}@media (prefers-reduced-motion:reduce){.preview-photo{animation:7s linear both preview-fade!important}}.walker{object-fit:contain;width:90px;height:90px;margin-left:-45px;position:absolute;bottom:0;left:50%}.selected-info{flex-direction:column;align-items:center;gap:6px;display:flex}.edit-layout{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px;display:flex}.edit-image img{width:auto;max-width:min(640px,100%);height:auto;max-height:var(--card-image-h);object-fit:contain;border:1px solid var(--border);border-radius:10px;display:block}.edit-fields{max-height:var(--card-image-h);text-align:left;flex-flow:column wrap;align-content:flex-start;gap:12px 24px;display:flex}.edit-fields>*{width:min(320px,80vw)}.piece-grid{align-self:flex-start;max-width:100%;position:relative}.piece-grid img{object-fit:fill;border:1px solid var(--border);border-radius:10px;width:100%;height:100%;display:block}.piece-grid-lines{pointer-events:none;mix-blend-mode:difference;background-image:linear-gradient(90deg,#fff 0 1px,#0000 1px),linear-gradient(#fff 0 1px,#0000 1px);border-radius:10px;position:absolute;inset:0}.puzzle-image{flex-direction:column;align-self:flex-start;align-items:flex-start;display:flex}.puzzle-image.has-tabs .edit-image img{border-top-left-radius:0;border-top-right-radius:0}.image-tabs{z-index:1;margin-bottom:-1px;display:flex;position:relative}.image-tabs button{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:8px 8px 0 0;padding:8px 20px;font-size:15px}.image-tabs button+button{margin-left:-1px}.image-tabs button.active{background:var(--panel);color:var(--text);border-bottom-color:var(--panel);z-index:1}.no-snapshot{border:1px dashed color-mix(in srgb, var(--muted) 60%, transparent);border-radius:10px;place-items:center;width:640px;max-width:100%;height:240px;font-size:14px;display:grid}.edit-item{flex-direction:column;gap:3px;display:flex}.edit-label{color:var(--muted);font-size:12px}.edit-filename{word-break:break-all}.edit-title{resize:vertical;width:100%;font-size:15px}.edit-title-text{cursor:text;border-radius:6px;margin:-2px -4px;padding:2px 4px}.edit-title-text:hover{background:var(--panel-2)}.edit-title-text:focus-visible{outline:2px solid var(--accent-soft)}.edit-buttons{justify-content:flex-start}.grid-chips{flex-wrap:wrap;gap:6px;display:flex}.grid-chip{font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--panel-2);border-radius:999px;padding:3px 9px;font-size:13px}.pager{flex-direction:column;align-items:center;gap:6px;margin-top:10px;display:flex}.pager-buttons{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.pager-btn{font:inherit;border:1px solid var(--border);background:var(--panel-2);min-width:30px;color:var(--text);cursor:pointer;border-radius:6px;padding:3px 8px;font-size:13px}.pager-btn:hover:not(:disabled){border-color:var(--accent)}.pager-btn:disabled{opacity:.4;cursor:default}.pager-btn.current{background:var(--accent);color:#fff;border-color:#0000}.pager-range{font-size:12px}.tag-filters{flex-wrap:wrap;gap:6px;display:flex}.tag-filters-break{flex-basis:100%;height:0}.tag-filter{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:999px;padding:3px 11px;font-size:13px}.tag-filter:hover{border-color:var(--accent)}.tag-filter.selected{background:var(--accent);color:#fff;border-color:#0000}.tag-filter.virtual{color:var(--muted);background:0 0;border-style:dashed}.tag-filter.virtual.selected{background:var(--accent);color:#fff;border-style:solid}.tag-chip{align-items:center;gap:5px;padding-right:5px;display:inline-flex}.tag-remove{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;padding:0;display:inline-flex}.tag-remove:hover:not(:disabled){color:var(--danger)}.tag-error{font-size:12px}.tag-suggests{margin-top:2px}.chip-link{font:inherit;color:var(--text);cursor:pointer;font-size:13px;line-height:1.4}.chip-link:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel-2))}.chip-add{font:inherit;color:var(--muted);cursor:pointer;font-size:13px;line-height:1.4}.chip-add:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.chip-add:disabled{opacity:.45;cursor:default}.tag-remove:disabled{cursor:default;opacity:.5}.grid-chip.current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--accent);font-weight:700}.selected-name{text-overflow:ellipsis;white-space:nowrap;max-width:60ch;font-weight:600;overflow:hidden}.selected-info .row{margin-top:8px}.section{flex-direction:column;align-self:stretch;gap:10px;display:flex}.section-title{color:var(--muted);align-self:flex-start;margin:8px 0 0;font-size:20px}.card-grid{grid-template-columns:repeat(auto-fill,140px);align-self:stretch;gap:14px;display:grid}.card{text-align:left;width:140px;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:0;font-size:13px;display:flex}.card-thumb{background:color-mix(in srgb, var(--muted) 20%, transparent);border-radius:8px;width:140px;height:100px;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.card.selected .card-thumb{outline:3px solid var(--accent);outline-offset:2px}.card-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.add-thumb{color:var(--muted);border:1.5px dashed color-mix(in srgb, var(--muted) 60%, transparent);background:color-mix(in srgb, var(--muted) 10%, transparent);place-items:center;display:grid}.add-card{cursor:pointer;text-align:left;color:inherit;background:0 0;border:none;padding:0;font-size:13px}.card-owner{font-size:12px}.account{position:relative}.menu-backdrop{z-index:30;position:fixed;inset:0}.account-menu{z-index:31;background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000004d}.account-email{color:var(--muted);text-overflow:ellipsis;padding:8px 10px;font-size:12px;overflow:hidden}.account-menu button{text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:14px}.account-menu button:hover{background:var(--panel-2)}.account-menu .danger-text{color:var(--danger)}.field{text-align:left;flex-direction:column;gap:4px;width:100%;font-size:14px;display:flex}.upload-preview{object-fit:contain;border:1px solid var(--border);border-radius:10px;max-width:min(480px,80vw);max-height:46vh}.auth-wrap{place-items:center;min-height:100%;padding:24px;display:grid}.auth-overlay{z-index:40;background:#00000059;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;width:min(380px,92vw);padding:28px;display:flex;box-shadow:0 12px 40px #0000004d}.auth-logo{justify-content:center;align-items:center;gap:8px;font-size:22px;font-weight:700;display:flex}.auth-logo-shape{object-fit:contain;width:30px;height:30px}.auth-sub{color:var(--muted);text-align:center;margin:0;font-size:13px}.auth-tabs{gap:6px;display:flex}.auth-tabs button{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-radius:8px;flex:1;padding:8px;font-size:14px}.auth-tabs button.active{background:var(--accent);color:#fff;border-color:#0000}.auth-card label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.auth-card input{color:var(--text)}.auth-card input.input-error{border-color:var(--danger)}input.match{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}input.mismatch{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.field-error{color:var(--danger);font-size:12px}.auth-error{color:var(--danger);text-align:center;font-size:13px}.auth-success{color:var(--ok);flex-direction:column;align-items:center;gap:8px;font-weight:600;display:flex}.auth-submit{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:11px;font-size:15px;font-weight:600}.auth-submit:disabled{opacity:.6}.auth-link,.auth-back{color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;gap:4px;font-size:13px;display:inline-flex}.auth-link:hover,.auth-back:hover{color:var(--text)}.sheet{gap:18px}.image-drop{background:color-mix(in srgb, var(--muted) 15%, transparent);border:none;border-radius:12px;place-items:center;width:min(360px,80vw);height:240px;display:grid;overflow:hidden}.image-drop img{object-fit:contain;max-width:340px;max-height:220px}.steppers{justify-content:flex-start}.steppers label{flex-direction:column;align-items:flex-start;gap:4px;font-size:14px;display:flex}.steppers input{width:84px}.game{position:fixed;inset:0;overflow:hidden}.board-wrap{position:absolute;inset:0}.board-wrap.blurred{filter:blur(14px)}.board{touch-action:none;width:100%;height:100%;display:block}.hud-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:30vw;font-size:13px;overflow:hidden}.hud{background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);z-index:10;border-top:none;border-radius:0 0 10px 10px;align-items:center;gap:8px;max-width:100vw;height:44px;padding:0 12px;display:flex;position:absolute;top:0;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.hud-btn{white-space:nowrap;color:var(--text);border:1px solid var(--border);background:0 0;border-radius:7px;align-items:center;gap:5px;padding:5px 10px;font-size:13px;display:inline-flex}.hud-btn:hover:not(:disabled){background:var(--panel-2)}.hud-btn:disabled{opacity:.4;cursor:default}.hud-time{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.autosave-btn.flash .ch{animation:.5s char-glow}@keyframes char-glow{50%{color:#ffd400;text-shadow:0 0 8px #ffd400e6}}.swatch-popover{z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;max-width:calc(100vw - 16px);padding:12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.swatch-grid{justify-content:center;gap:4px;display:grid}.swatch{border:1px solid color-mix(in srgb, var(--muted) 40%, transparent);border-radius:3px;width:28px;height:20px;padding:0}.swatch.selected{outline:2px solid var(--accent);outline-offset:1px}.swatch-actions{justify-content:space-between;gap:12px;display:flex}.solution{object-fit:contain;background:color-mix(in srgb, var(--panel) 85%, transparent);border-radius:16px;max-width:min(600px,90vw);max-height:min(600px,80vh);padding:20px;box-shadow:0 12px 40px #00000059}.toast{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--border);z-index:15;pointer-events:none;border-radius:999px;padding:6px 16px;font-size:13px;position:absolute;top:56px;left:50%;transform:translate(-50%)}@media (width<=1100px){.selection-name{left:8px;right:auto}.selection-tabs{align-items:flex-start}.selection-tab{border-right:1px solid var(--border);border-radius:8px}}@media (width<=700px){.setup-head{padding:16px 16px 12px}.setup-lists{padding:12px 16px 32px}.preview-box{width:min(460px,88vw);height:220px}.preview-row{flex-direction:column}}
