:root{--bg: #ece7dc;--bg-deep: #e0d9c8;--paper: #fbf8f1;--ink: #1a1714;--ink-soft: #4a4540;--muted: #8a847a;--accent: #b8541a;--accent-soft: #d68856;--line: rgba(26, 23, 20, .12);--shadow-sm: 0 1px 2px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 12px 32px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12), 0 24px 64px rgba(0,0,0,.18);--workspace: #2a2622}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;height:100dvh;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body:has(.view-puzzle){background:var(--workspace)}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font-family:inherit}.serif{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-weight:500}.view{height:100%;overflow:auto;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sheetIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.gallery{max-width:1280px;margin:0 auto;padding:56px 32px 96px}.gallery-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--line);gap:32px}.gallery-title{font-size:48px;line-height:1.1;letter-spacing:-.02em}.gallery-title small{display:block;font-family:Inter,sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:12px}.gallery-sub{font-size:14px;color:var(--ink-soft);max-width:360px;text-align:right;line-height:1.5}.gallery-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:14px}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:40px 0 24px;flex-wrap:wrap}.gallery-toolbar-left{display:flex;flex-direction:column;gap:6px;min-width:0}.gallery-section-title{font-size:28px;letter-spacing:-.015em;margin:0;color:var(--ink)}.gallery-tier-tag{font-size:12px;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase;font-weight:500}.gallery-tier-tag strong{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.gallery-filters{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.gallery-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;flex:1;min-width:0}.gallery-list-tools{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.gallery-search{position:relative;display:inline-flex;align-items:center;gap:8px;width:240px;max-width:100%;padding:0 10px 0 12px;border:1px solid var(--line);background:var(--paper);border-radius:999px;color:var(--ink-soft);transition:border-color .18s,box-shadow .18s}.gallery-search:focus-within{border-color:var(--ink-soft);box-shadow:0 0 0 3px #b8541a1a}.gallery-search-icon{flex:0 0 auto;color:var(--muted)}.gallery-search-input{flex:1;min-width:0;border:none;background:transparent;outline:none;font:inherit;font-size:13px;color:var(--ink);padding:8px 0;letter-spacing:.005em}.gallery-search-input::placeholder{color:var(--muted);letter-spacing:.02em}.gallery-search-input::-webkit-search-cancel-button,.gallery-search-input::-webkit-search-decoration{-moz-appearance:none;appearance:none;-webkit-appearance:none}.gallery-search-clear{flex:0 0 auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:999px;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;line-height:1;transition:background .15s,color .15s}.gallery-search-clear:hover{background:#1a17140f;color:var(--ink)}.filter-popover-sort{min-width:220px;padding:6px;left:auto;right:0;transform-origin:top right}.filter-sort-option{display:block;width:100%;text-align:left;padding:10px 12px;border:none;border-radius:6px;background:transparent;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;transition:background .15s}.filter-sort-option:hover{background:var(--bg)}.filter-sort-option.is-active{background:#b8541a1c;color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px #b8541a47}.filter-sort-option.is-active:hover{background:#b8541a29}.art-new-tag{position:absolute;top:10px;right:10px;z-index:2;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--accent);color:var(--paper);pointer-events:none}.art-card.locked .art-new-tag{opacity:.92}.art-progress-tag{position:absolute;top:10px;left:10px;z-index:2;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px 4px 18px;border-radius:999px;background:var(--paper);color:var(--ink);border:1px solid rgba(184,84,26,.3);box-shadow:0 1px 3px #0000000f;pointer-events:none}.art-progress-tag:before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:var(--accent)}.art-tag-row{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;gap:6px}.art-tag-row .art-progress-tag{position:static;top:auto;left:auto}.art-coop-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#282421d9;color:#f0a060;border-color:#e07a3acc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.art-coop-tag:before{display:none}.art-coop-tag svg{flex-shrink:0}.filter-menu{position:relative}.filter-trigger{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:13px;font-weight:500;letter-spacing:.02em;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}.filter-trigger:hover{border-color:var(--ink-soft)}.filter-menu.open .filter-trigger,.filter-trigger.active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.filter-trigger.gallery-shuffle.active{border-color:#b8541a6b;background:#b8541a17;color:var(--ink)}.filter-trigger.gallery-shuffle.active:hover{border-color:#b8541a8c;background:#b8541a1f}.filter-trigger.gallery-shuffle:active{border-color:#b8541a80;background:#b8541a24;color:var(--ink)}.filter-trigger svg{opacity:.55;transition:transform .2s}.filter-menu.open .filter-trigger svg{transform:rotate(180deg);opacity:1}.filter-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:280px;max-width:360px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-md);padding:8px;display:flex;flex-direction:column;gap:6px;animation:scaleIn .15s cubic-bezier(.16,1,.3,1);transform-origin:top left}.filter-backdrop,.filter-popover-handle,.filter-popover-title{display:none}.filter-search{width:100%;border:1.5px solid var(--line);border-radius:6px;background:var(--bg);padding:9px 12px;font:inherit;font-size:13px;color:var(--ink);transition:border-color .2s}.filter-search::placeholder{color:var(--muted)}.filter-search:focus{outline:none;border-color:var(--ink)}.filter-options{display:flex;flex-direction:column;max-height:320px;overflow-y:auto;padding:2px}.filter-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--ink);transition:background .15s}.filter-option:hover{background:var(--bg)}.filter-option input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--ink);cursor:pointer;flex:0 0 auto}.filter-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-option-count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:999px;flex:0 0 auto}.filter-empty{padding:18px 12px;text-align:center;color:var(--muted);font-size:13px}.filter-popover-clear{margin-top:4px;padding:8px 12px;font:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:6px;cursor:pointer;transition:all .2s}.filter-popover-clear:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--bg)}.filter-clear-all{font:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--accent);background:none;border:none;cursor:pointer;padding:8px 4px;text-decoration:underline;text-decoration-color:#b8541a59;text-underline-offset:3px;transition:text-decoration-color .2s}.filter-clear-all:hover{text-decoration-color:var(--accent)}.filter-clear-all.is-hidden{visibility:hidden;pointer-events:none}.gallery-empty{text-align:center;padding:80px 20px;color:var(--ink-soft);font-size:14px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px}.art-card{background:var(--paper);border:none;border-radius:6px;overflow:hidden;cursor:pointer;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;text-align:left;padding:0;color:inherit;font:inherit}.art-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.art-thumb{aspect-ratio:4 / 3;background:#d4ccbc;position:relative;overflow:hidden}.art-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s ease}.art-thumb img.loaded{opacity:1}.art-thumb.error:after{content:"image unavailable";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.art-meta{padding:18px 20px 20px}.art-title{font-size:22px;line-height:1.2;margin-bottom:6px;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.art-artist{font-size:13px;color:var(--ink-soft);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-year{font-size:12px;color:var(--muted);letter-spacing:.05em}.art-period{color:var(--muted)}.art-card.locked .art-thumb img{filter:grayscale(.7) brightness(.92)}.art-card.locked .art-meta{opacity:.78}.art-card.locked:hover{transform:translateY(-2px)}.art-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;background:linear-gradient(180deg,#1a17140d,#1a17148c);text-shadow:0 1px 6px rgba(0,0,0,.5);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;pointer-events:none}.art-lock svg{background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px;width:32px;height:32px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.pieces-view{height:100%;display:grid;grid-template-columns:1fr 420px;overflow:hidden}.preview-pane{background:var(--bg-deep);display:flex;align-items:center;justify-content:center;padding:64px;overflow:hidden;position:relative}.preview-pane:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.08) 100%);pointer-events:none}.preview-img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:var(--shadow-lg);border-radius:2px;animation:scaleIn .5s cubic-bezier(.16,1,.3,1)}.config-pane{background:var(--paper);padding:56px 48px;display:flex;flex-direction:column;overflow-y:auto}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);text-decoration:none;cursor:pointer;margin-bottom:32px;background:none;border:none;padding:0;transition:color .2s;align-self:flex-start}.back-link:hover{color:var(--accent)}.pieces-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:32px}.pieces-topbar .back-link{margin-bottom:0}.pieces-share-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);color:var(--ink-soft);padding:6px 12px;border-radius:999px;font:inherit;font-size:12px;letter-spacing:.02em;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.pieces-share-btn:hover{border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px)}.pieces-share-btn svg{opacity:.7;transition:opacity .2s}.pieces-share-btn:hover svg{opacity:1}.config-title-row{margin-bottom:32px}.config-title{font-size:36px;line-height:1.15;letter-spacing:-.02em;margin-bottom:8px}.config-artist{font-size:14px;color:var(--ink-soft)}.config-section{margin-bottom:32px}.config-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600;margin-bottom:14px}.pieces-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.piece-option{background:transparent;border:1.5px solid var(--line);border-radius:6px;padding:18px 12px;text-align:center;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);color:var(--ink)}.piece-option:hover{border-color:var(--ink-soft)}.piece-option.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.piece-option .num{font-size:22px;font-weight:600;letter-spacing:-.01em}.piece-option .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-top:4px;opacity:.7}.config-toggles{display:flex;flex-direction:column;gap:10px}.expert-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:var(--bg);border:1.5px solid var(--line);border-radius:8px;cursor:pointer;text-align:left;color:var(--ink);transition:border-color .2s,background .2s}.expert-toggle:hover{border-color:var(--ink-soft)}.expert-toggle.active{background:#b8541a0d;border-color:var(--accent)}.expert-toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0}.expert-toggle-title{font-size:14px;font-weight:600;letter-spacing:-.005em}.expert-toggle-desc{font-size:12px;color:var(--muted);line-height:1.45}.expert-switch{flex:0 0 auto;width:38px;height:22px;border-radius:999px;background:#1a17142e;position:relative;transition:background .2s ease}.expert-switch.on{background:var(--accent)}.expert-switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.expert-switch.on .expert-switch-knob{transform:translate(16px)}.puzzle-info{background:var(--bg);padding:16px 18px;border-radius:6px;font-size:13px;color:var(--ink-soft);line-height:1.5;margin-bottom:32px}.puzzle-info strong{color:var(--ink);font-weight:600}.start-btn{background:var(--ink);color:var(--paper);border:none;padding:18px 32px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;border-radius:6px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);margin-top:auto}.start-btn:hover{background:var(--accent);transform:translateY(-1px);box-shadow:0 8px 24px #b8541a40}.start-btn:active{transform:translateY(0)}.view-puzzle{position:relative;height:100%;background:var(--workspace);overflow:hidden}.puzzle-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.puzzle-piece-tray{position:absolute;left:0;right:0;bottom:0;z-index:95;padding:8px 10px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,#161311f0,#16131180);border-top:1px solid rgba(255,255,255,.07);pointer-events:auto}.view-puzzle--tray .hud-bottom{bottom:calc(88px + env(safe-area-inset-bottom))}.puzzle-piece-tray-scroll{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.puzzle-piece-tray-controls{display:flex;gap:6px;align-items:center;padding:0 6px 6px;flex:0 0 auto}.puzzle-piece-tray-zoom{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#00000052;color:#fcf8f2d9;font-size:16px;line-height:1;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.puzzle-piece-tray-zoom:hover:not(:disabled){background:#d8885638;border-color:#d8885673}.puzzle-piece-tray-zoom:disabled{opacity:.35;cursor:not-allowed}@media(min-width:901px)and (pointer:fine){.puzzle-piece-tray{top:0;bottom:0;left:auto;right:0;width:280px;padding:70px 14px 18px;border-top:none;border-left:1px solid rgba(255,255,255,.07);background:linear-gradient(to left,#161311f5,#161311c7);display:flex;flex-direction:column}.puzzle-piece-tray-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--tray-chip-size, 54px),1fr));gap:10px;overflow-x:hidden;overflow-y:auto;padding:4px 4px 6px 0;align-content:start;flex:1 1 auto;min-height:0}.view-puzzle--tray .hud-bottom{bottom:20px}.view-puzzle--tray .hud-top,.view-puzzle--tray .hud-right{right:300px}}.puzzle-piece-tray-empty{font-size:13px;color:#fff5e88c;padding:12px 8px;white-space:nowrap}@media(min-width:901px)and (pointer:fine){.puzzle-piece-tray-empty{grid-column:1 / -1;white-space:normal;text-align:center}}.puzzle-piece-tray-chip{flex:0 0 auto;position:relative;width:var(--tray-chip-size, 54px);height:var(--tray-chip-size, 54px);border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000038;padding:0;overflow:hidden;touch-action:pan-x;cursor:grab;transition:border-color .15s,transform .15s}@media(min-width:901px)and (pointer:fine){.puzzle-piece-tray-chip{width:100%;height:0;padding-bottom:100%;aspect-ratio:auto}}.puzzle-piece-tray-chip:hover{border-color:#ffffff52;transform:translateY(-1px)}.puzzle-piece-tray-chip:active{cursor:grabbing;transform:translateY(0)}.puzzle-piece-tray-chip:focus-visible{outline:2px solid rgba(216,136,86,.7);outline-offset:2px}.puzzle-piece-tray-chip img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.puzzle-piece-tray-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#ffffff40;font-size:22px}.hud-bottom .icon-btn.active{border-color:#d8885680;background:#d8885626}.hud{position:absolute;pointer-events:none;z-index:100}.hud>*{pointer-events:auto}.hud-top{top:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.hud-bottom{bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px}.hud-bottom-group{display:flex;align-items:center;gap:6px}.hud-right{top:20px;right:20px;display:flex;flex-direction:column;gap:12px;align-items:flex-end}.panel{background:#282421d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#ffffffeb;box-shadow:var(--shadow-md)}.puzzle-meta{padding:10px 16px;display:flex;align-items:center;gap:14px;font-size:13px}.puzzle-meta .title{font-weight:600;letter-spacing:-.01em;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzle-meta .sep{width:1px;height:14px;background:#fff3}.puzzle-meta .stat{color:#ffffffa6;font-variant-numeric:tabular-nums}.puzzle-meta .stat strong{color:#fffffff2;font-weight:600}.puzzle-meta .puzzle-timer{display:inline-flex;align-items:center;gap:6px;color:#ffffffeb;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em}.puzzle-meta .puzzle-timer svg{opacity:.65;flex:0 0 auto}.puzzle-meta .puzzle-saved{display:inline-flex;align-items:center;gap:6px;color:#ffffff8c;font-weight:500;font-size:11px;letter-spacing:.02em;transition:color .4s ease;flex-shrink:0;overflow:visible;min-width:0}.puzzle-meta .puzzle-saved svg{flex:0 0 auto;flex-shrink:0;display:block;overflow:visible;opacity:.65;transition:opacity .4s ease}.puzzle-meta .puzzle-saved.flash{color:var(--accent-soft);animation:savedFlash .7s ease-out}.puzzle-meta .puzzle-saved.flash svg{opacity:1}@keyframes savedFlash{0%{transform:scale(1)}35%{transform:scale(1.06)}to{transform:scale(1)}}.icon-btn{background:#282421d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);color:#ffffffd9;width:38px;height:38px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.16,1,.3,1)}.icon-btn:hover{background:#3c3631f2;color:#fff;transform:translateY(-1px)}.icon-btn:active{transform:translateY(0)}.icon-btn.muted{color:#ffffff73}.icon-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.icon-btn svg{width:18px;height:18px;flex:0 0 auto}.icon-btn-inline{background:transparent;border:none;width:auto;height:auto;padding:0 6px;color:#ffffffb3;cursor:pointer;display:inline-flex;align-items:center}.icon-btn-inline:hover{color:#fff}.icon-btn-inline svg{width:16px;height:16px}.text-btn{background:#282421d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);color:#ffffffd9;padding:10px 16px;border-radius:8px;cursor:pointer;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;align-items:center;gap:8px}.text-btn:hover{background:#3c3631f2;color:#fff;transform:translateY(-1px)}.text-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.text-btn.primary:hover{background:#cf6020;border-color:#cf6020}.preview-overlay{width:260px;min-width:0;flex:0 0 auto;overflow:hidden;border-radius:8px;background:#282421d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);display:grid;grid-template-rows:auto minmax(0,1fr);transition:width .32s cubic-bezier(.16,1,.3,1),grid-template-rows .32s cubic-bezier(.16,1,.3,1),border-radius .32s cubic-bezier(.16,1,.3,1)}.preview-overlay.collapsed{width:38px;grid-template-rows:auto minmax(0,0fr);border-radius:50%}.preview-overlay-header{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb3;cursor:pointer;transition:padding .32s cubic-bezier(.16,1,.3,1)}.preview-overlay.collapsed .preview-overlay-header{padding:0;width:38px;height:38px;justify-content:center;gap:0}.preview-overlay-header span{overflow:hidden;white-space:nowrap;max-width:200px;opacity:1;transition:max-width .32s cubic-bezier(.16,1,.3,1),opacity .2s ease}.preview-overlay.collapsed .preview-overlay-header span{max-width:0;opacity:0}.preview-overlay-header svg{width:16px;height:16px;flex:0 0 auto}.preview-overlay-body{overflow:hidden;min-height:0}.preview-overlay-body-inner{opacity:1;transition:opacity .18s ease}.preview-overlay.collapsed .preview-overlay-body-inner{opacity:0}.preview-controls{padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(255,255,255,.06)}.pill{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#ffffffd9;padding:7px 10px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;text-align:left}.pill:hover{background:#ffffff1a;color:#fff}.pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.pill svg{width:14px;height:14px;flex:0 0 auto}.pill:disabled,.pill.disabled{opacity:.45;cursor:not-allowed}.pill:disabled:hover{background:#ffffff0f;color:#ffffffd9}.opacity-row{display:flex;flex-direction:column;gap:6px;padding:6px 4px;font-size:11px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.08em}.opacity-row label{font-weight:600}.opacity-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.opacity-preset{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#ffffffd9;padding:6px 0;border-radius:6px;font:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums;cursor:pointer;transition:all .15s ease}.opacity-preset:hover:not(:disabled){background:#ffffff1f;color:#fff}.opacity-preset.active{background:var(--accent);border-color:var(--accent);color:#fff}.opacity-preset:disabled{opacity:.4;cursor:not-allowed}.preview-overlay-img-wrap{position:relative;width:100%;border-top:1px solid rgba(255,255,255,.06);cursor:crosshair}.preview-overlay-img{width:100%;display:block}.preview-overlay-hint{position:absolute;left:0;right:0;bottom:0;padding:8px 10px;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);color:#ffffffd9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}.preview-overlay-hint-sub{text-transform:none;letter-spacing:.02em;font-weight:600;font-variant-numeric:tabular-nums}.progress{height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden;width:80px}.progress-bar{height:100%;background:var(--accent-soft);transition:width .4s cubic-bezier(.16,1,.3,1);border-radius:2px}.puzzle-anecdote{position:absolute;bottom:20px;left:20px;z-index:100;max-width:min(360px,calc(100vw - 40px));background:#282421e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 14px 10px;color:#ffffffb8;font-size:12px;line-height:1.55;outline:none;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .6s ease,transform .6s ease}.puzzle-anecdote.is-visible{opacity:1;transform:translateY(0)}.puzzle-anecdote-kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff73;margin-bottom:8px}.puzzle-anecdote-body{margin:0;color:#fcf8f2eb;font-size:13px;line-height:1.5}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--workspace);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;color:#ffffffb3;gap:20px}.spinner{width:36px;height:36px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent-soft);border-radius:50%;animation:spin .9s linear infinite}.loading-text{font-size:13px;letter-spacing:.1em;text-transform:uppercase}.win-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a1714d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:300;color:var(--paper);animation:fadeIn .6s ease-out;gap:24px;text-align:center;padding:32px}.win-title{font-size:64px;line-height:1;letter-spacing:-.03em}.win-sub{font-size:16px;color:#ffffffb3;max-width:400px}.win-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:400}.confetti{position:absolute;top:-20px;width:10px;height:14px;border-radius:1px;opacity:.95;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translate3d(0,-40px,0) rotate(0);opacity:1}to{transform:translate3d(var(--dx, 50px),110vh,0) rotate(var(--rot, 720deg));opacity:.7}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;background:#1a171499;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000;animation:fadeIn .2s ease-out}.modal{background:var(--paper);border-radius:10px;padding:32px;width:100%;max-width:480px;max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:var(--shadow-lg);animation:scaleIn .25s cubic-bezier(.16,1,.3,1)}.modal h3{font-size:26px;margin-bottom:12px;letter-spacing:-.01em}.modal p{color:var(--ink-soft);font-size:14px;line-height:1.5;margin-bottom:20px}.modal input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:6px;font-family:inherit;font-size:14px;margin-bottom:12px;background:var(--bg);transition:border-color .2s;color:var(--ink)}.modal input:focus{outline:none;border-color:var(--accent)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.btn-secondary{background:transparent;color:var(--ink-soft);border:1.5px solid var(--line);padding:10px 18px;font-size:13px;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn-secondary:hover{border-color:var(--ink-soft);color:var(--ink)}.btn-primary{background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);padding:10px 18px;font-size:13px;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.btn-danger{background:#b53a3a;color:#fff;border:1.5px solid #b53a3a;padding:10px 18px;font-size:13px;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn-danger:hover{background:#9a2c2c;border-color:#9a2c2c}.btn-danger-link{background:transparent;color:var(--ink-soft);border:none;padding:10px 8px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;border-radius:6px;transition:color .2s}.btn-danger-link:hover{color:#b53a3a}.btn-danger-link.is-armed{color:#b53a3a;text-decoration:underline}@media(max-width:900px){.pieces-view{grid-template-columns:1fr;grid-template-rows:40vh 1fr}.preview-pane{padding:24px}.config-pane{padding:32px 24px}.gallery-header{flex-direction:column;align-items:flex-start;gap:16px}.gallery-sub{text-align:left}.gallery-header-right{align-items:flex-start;width:100%}.gallery-title{font-size:36px}}@media(max-width:700px){.gallery{padding:calc(28px + env(safe-area-inset-top)) 18px calc(40px + env(safe-area-inset-bottom))}.gallery-header{margin-bottom:28px;padding-bottom:18px;gap:12px}.gallery-title{font-size:30px}.gallery-title small{font-size:11px;margin-bottom:8px}.gallery-sub{font-size:13px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.gallery-toolbar{flex-direction:column;align-items:stretch;margin-bottom:16px;gap:12px}.gallery-toolbar-actions{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;width:100%}.gallery-filters,.gallery-list-tools{width:100%;justify-content:flex-start;gap:8px}.filter-trigger{font-size:12px;padding:7px 12px;max-width:100%}.filter-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.filter-popover,.filter-popover-sort{position:fixed;inset:auto 0 0 0;top:auto;width:100%;min-width:0;max-width:100%;border-radius:16px 16px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));gap:8px;z-index:60;box-shadow:0 -8px 32px #0000002e;animation:sheetIn .22s cubic-bezier(.16,1,.3,1);transform-origin:bottom center}.filter-popover-handle{display:block;width:40px;height:4px;margin:4px auto 8px;background:var(--line);border-radius:999px;flex:0 0 auto}.filter-popover-title{display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:22px;font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--ink);padding:4px 4px 8px;flex:0 0 auto}.filter-options{max-height:min(50vh,360px)}.filter-search{font-size:16px;padding:12px 14px}.filter-option{padding:12px 10px;font-size:14px;min-height:44px}.filter-sort-option{padding:14px 12px;font-size:14px;min-height:44px}.filter-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1412106b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:55;animation:fadeIn .18s ease-out}.gallery-tier-tag{font-size:11px}.art-lock{font-size:10px;gap:4px}.art-lock svg{width:28px;height:28px;padding:6px}.art-meta{padding:12px 14px 14px}.art-title{font-size:16px}.art-artist{font-size:12px}.art-year{font-size:11px}.pieces-view{grid-template-rows:32vh 1fr;grid-template-rows:32dvh 1fr}.preview-pane{padding:16px;padding-top:calc(16px + env(safe-area-inset-top))}.config-pane{padding:24px 18px calc(24px + env(safe-area-inset-bottom))}.config-title{font-size:26px}.config-artist{font-size:13px}.config-section{margin-bottom:22px}.pieces-grid{grid-template-columns:repeat(3,1fr);gap:8px}.piece-option{padding:14px 8px;min-height:56px}.piece-option .num{font-size:18px}.piece-option .lbl{font-size:9px}.puzzle-info{font-size:12px;padding:12px 14px;margin-bottom:22px}.start-btn{padding:16px 24px;font-size:13px;min-height:48px;width:100%}.back-link{margin-bottom:22px}.hud-top{top:calc(10px + env(safe-area-inset-top));left:10px;right:calc(62px + env(safe-area-inset-right,0px));gap:8px}.hud-right{top:calc(10px + env(safe-area-inset-top));right:10px;gap:8px;max-width:calc(50vw - 10px)}.hud-bottom{bottom:calc(10px + env(safe-area-inset-bottom));gap:10px;max-width:calc(100vw - 20px);flex-wrap:nowrap;justify-content:center}.hud-bottom-group{gap:4px}.puzzle-meta{padding:8px 10px;gap:8px;font-size:12px;max-width:100%;min-width:0}.puzzle-meta .title{max-width:30vw;font-size:12px}.puzzle-meta .progress,.puzzle-meta .sep,.puzzle-meta .puzzle-saved{display:none}.puzzle-signin{padding:8px 12px;font-size:11px;letter-spacing:.04em}.icon-btn{width:52px;height:52px;border-radius:12px}.icon-btn svg{width:22px;height:22px}.hud-bottom{bottom:env(safe-area-inset-bottom);gap:12px}.hud-bottom-group{gap:6px}.puzzle-coop-invite{display:none!important}.preview-overlay{width:220px}.preview-overlay.collapsed{width:48px}.preview-overlay.collapsed .preview-overlay-header{width:48px;height:48px}.preview-overlay.collapsed{width:44px}.preview-overlay.collapsed .preview-overlay-header{width:44px;height:44px}.puzzle-anecdote{display:none}.win-title{font-size:44px}.win-sub{font-size:14px}.win-actions{flex-direction:column;width:100%;max-width:280px}.win-actions .text-btn{width:100%;justify-content:center;padding:14px 18px}.modal{padding:24px 22px;border-radius:12px}.modal h3{font-size:22px}.modal p{font-size:13px;margin-bottom:16px}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions button{width:100%;padding:14px 18px;font-size:14px}}@media(max-width:380px){.gallery{padding:calc(20px + env(safe-area-inset-top)) 14px calc(28px + env(safe-area-inset-bottom))}.gallery-title{font-size:26px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.puzzle-meta .title{max-width:26vw}.puzzle-meta .stat{display:none}.preview-overlay{width:200px}.pieces-grid{grid-template-columns:repeat(2,1fr)}.win-title{font-size:36px}.gallery-tier-tag{font-size:10px;letter-spacing:.05em}}@media(max-height:480px)and (orientation:landscape){.pieces-view{grid-template-columns:1fr 320px;grid-template-rows:1fr}.preview-pane{padding:16px}.config-pane{padding:16px 18px}.config-title{font-size:22px;margin-bottom:4px}.config-section{margin-bottom:14px}.puzzle-info{display:none}.back-link{margin-bottom:14px}.start-btn{padding:14px 22px}.puzzle-anecdote{display:none}.preview-overlay{width:200px}}@media(pointer:coarse){.art-card:hover{transform:none;box-shadow:var(--shadow-sm)}.icon-btn:hover,.text-btn:hover,.pill:hover{transform:none}.piece-option:hover{border-color:var(--line)}.opacity-preset{padding:8px 0}}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a17148c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:24px;animation:fadeIn .2s ease-out}.auth-modal{position:relative;width:100%;max-width:420px;background:var(--paper);border-radius:12px;padding:40px 36px 32px;box-shadow:var(--shadow-lg);animation:scaleIn .25s cubic-bezier(.16,1,.3,1);max-height:calc(100vh - 48px);overflow-y:auto}.auth-modal-close{position:absolute;top:14px;right:14px;background:transparent;border:none;width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.auth-modal-close:hover{background:var(--bg);color:var(--ink)}.auth-modal-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.auth-modal-prelude{font-size:13px;color:var(--accent);background:#b8541a14;border:1px solid rgba(184,84,26,.18);padding:10px 12px;border-radius:6px;margin-bottom:20px;line-height:1.4}.auth-brand-mark{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;letter-spacing:0}.auth-brand-name{font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink-soft)}.auth-form{display:flex;flex-direction:column;animation:fadeIn .35s ease-out}.auth-title{font-size:32px;line-height:1.1;letter-spacing:-.02em;margin-bottom:8px}.auth-sub{font-size:14px;color:var(--ink-soft);line-height:1.5;margin-bottom:32px}.auth-sub strong{color:var(--ink);font-weight:600}.auth-fields{display:flex;flex-direction:column;gap:18px;margin-bottom:24px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}.auth-field input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:6px;font-family:inherit;font-size:14px;background:var(--paper);color:var(--ink);transition:border-color .2s,box-shadow .2s}.auth-field input::placeholder{color:var(--muted)}.auth-field input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #1a17140f}.auth-hint{font-size:11px;color:var(--muted);letter-spacing:.02em}.auth-msg{font-size:13px;line-height:1.4;padding:10px 12px;border-radius:6px;margin-bottom:16px;animation:fadeIn .2s ease-out}.auth-msg-error{background:#b53a3a14;color:#8a2c2c;border:1px solid rgba(181,58,58,.18)}.auth-msg-info{background:#b8541a14;color:var(--accent);border:1px solid rgba(184,84,26,.18)}.auth-submit{background:var(--ink);color:var(--paper);border:none;padding:14px 20px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border-radius:6px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1)}.auth-submit:hover:not(:disabled){background:var(--accent);transform:translateY(-1px);box-shadow:0 8px 24px #b8541a38}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:22px;font-size:13px;color:var(--ink-soft);text-align:center}.auth-switch button{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}.auth-switch button:hover{color:var(--accent);text-decoration-color:var(--accent)}.auth-switch button:disabled{opacity:.5;cursor:not-allowed}.otp-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:24px}.otp-input{width:100%;aspect-ratio:1 / 1.15;text-align:center;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-family:Cormorant Garamond,Georgia,serif;transition:all .15s ease;-moz-appearance:textfield}.otp-input::-webkit-outer-spin-button,.otp-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.otp-input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #1a17140f;transform:translateY(-1px)}.auth-loading{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-config-card{max-width:420px;background:var(--paper);padding:32px;border-radius:8px;box-shadow:var(--shadow-md);text-align:center}.auth-config-card h2{font-size:26px;letter-spacing:-.01em;margin-bottom:12px}.auth-config-card p{font-size:14px;color:var(--ink-soft);line-height:1.6}.auth-config-card code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:12px;font-family:SF Mono,Menlo,monospace;color:var(--ink)}.account-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);font-size:12px;letter-spacing:.02em;font-family:inherit;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.account-chip:hover{border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.account-chip-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-chip svg{opacity:.55;transition:opacity .2s,transform .2s}.account-chip:hover svg{opacity:1}.account-chip:hover svg:last-child{transform:translate(2px)}.view-profile{height:100%;overflow:auto;animation:fadeIn .4s ease-out}.profile{max-width:1280px;margin:0 auto;padding:32px 32px 96px}.profile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px}.profile-signout{background:transparent;border:1px solid var(--line);color:var(--ink-soft);padding:6px 14px;border-radius:999px;font:inherit;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:all .2s}.profile-signout:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.profile-header-actions{display:flex;align-items:center;gap:10px}.profile-friends-btn{position:relative;display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);font:inherit;font-size:12px;letter-spacing:.02em;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.profile-friends-btn:hover{border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.profile-friends-btn svg{flex:0 0 auto;opacity:.7;transition:opacity .2s}.profile-friends-btn:hover svg{opacity:1}.profile-friends-dot{position:absolute;top:2px;right:4px;width:9px;height:9px;background:var(--accent);border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px #b8541a40}.friends-modal .friends-section{margin-top:0;padding-top:0;border-top:none}.friends-modal .friends-section-title{font-size:22px;margin-bottom:16px}.profile-hero{margin-bottom:56px;padding-bottom:32px;border-bottom:1px solid var(--line)}.profile-title{font-size:56px;line-height:1.05;letter-spacing:-.02em;margin-bottom:6px}.profile-title.profile-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.profile-title-row .premium-badge{flex-shrink:0}.profile-email{font-size:14px;color:var(--muted);margin-bottom:28px;letter-spacing:.02em}.profile-stats{display:flex;gap:56px;flex-wrap:wrap}.profile-stat-value{font-size:38px;line-height:1;letter-spacing:-.02em;color:var(--ink);margin-bottom:6px;font-variant-numeric:tabular-nums}.profile-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}.profile-loading{padding:64px 0;display:flex;justify-content:center}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px}.achievement-card{background:var(--paper);border:none;border-radius:6px;overflow:hidden;cursor:pointer;text-align:left;padding:0;color:inherit;font:inherit;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}.achievement-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.achievement-thumb{position:relative;aspect-ratio:4 / 3;background:#d4ccbc;overflow:hidden}.achievement-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s ease,filter .4s ease;filter:grayscale(.85) brightness(.95)}.achievement-thumb img.loaded{opacity:1}.achievement-card.completed .achievement-thumb img{filter:none}.achievement-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:#ece7dc59;pointer-events:none}.achievement-meta{padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px}.achievement-title{font-size:18px;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}.achievement-artist{font-size:12px;color:var(--muted);letter-spacing:.02em}.achievement-tiers{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.tier-pip{font-size:10px;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums;padding:4px 7px;border-radius:999px;background:transparent;border:1px solid var(--line);color:var(--muted);transition:all .2s}.tier-pip.filled{background:var(--ink);border-color:var(--ink);color:var(--paper)}.achievement-card.completed:hover .tier-pip.filled{background:var(--accent);border-color:var(--accent)}.tier-pip.filled.expert,.tier-pip.filled.coop{display:inline-flex;align-items:center;gap:4px}.tier-pip.expert.filled{background:linear-gradient(135deg,#b88527,#e0a93f 60%,#f0c861);border-color:#b88527;color:#1a1714}.achievement-card.completed:hover .tier-pip.expert.filled{background:linear-gradient(135deg,#c89537,#f0b94f 60%,#ffd771);border-color:#c89537}.tier-pip .expert-star{display:inline-block;vertical-align:-1px}.anon-notice{background:#b8541a0f;border:1px solid rgba(184,84,26,.18);border-radius:8px;padding:12px 18px;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap}.anon-notice button{background:transparent;border:1px solid var(--accent);color:var(--accent);padding:6px 14px;border-radius:999px;font:inherit;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.anon-notice button:hover{background:var(--accent);color:#fff}.win-anon-card{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:18px 22px;display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:4px;max-width:420px;animation:pbIn .6s .3s cubic-bezier(.16,1,.3,1) backwards}.win-anon-text{font-size:14px;color:#ffffffd9;text-align:center;line-height:1.4}.resume-card{background:#b8541a14;border:1px solid rgba(184,84,26,.22);border-radius:8px;padding:18px 20px;margin-top:auto;display:flex;flex-direction:column;gap:4px;animation:fadeIn .3s ease-out}.resume-title{font-size:14px;font-weight:600;color:var(--ink)}.resume-sub{font-size:13px;color:var(--ink-soft);margin-bottom:14px}.resume-card--coop{background:linear-gradient(135deg,#c663221f,#f0a0602e);border-color:#d67a3a80}.resume-coop-badge{display:inline-block;padding:2px 8px;margin-right:8px;border-radius:999px;background:linear-gradient(135deg,#c66322,#e07a3a 60%,#f0a060);color:#fff;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle}.resume-actions{display:flex;flex-direction:column;gap:12px}.resume-actions-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.resume-actions .btn-danger-link{padding-left:4px;padding-right:4px}.resume-action-main{width:100%;padding:14px 18px;font-size:14px;border-radius:8px}.resume-card--completed{background:#2f8f5e14;border-color:#2f8f5e52}.resume-card--completed .resume-title{display:flex;align-items:center;gap:8px}.resume-completed-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#2f8f5e;color:#fff;flex:0 0 auto}.profile-username{display:inline-flex;align-items:center;gap:12px;background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px 6px 16px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;margin-bottom:28px;transition:all .2s}.profile-username:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.profile-username-copy{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--bg);padding:4px 10px;border-radius:999px;font-weight:600}.profile-username-claim{border-style:dashed;color:var(--accent);border-color:#b8541a66}.profile-username-claim:hover{background:#b8541a0d}.username-input{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:6px;background:var(--bg);padding:0 4px 0 14px;margin-bottom:6px;transition:border-color .2s}.username-input:focus-within{border-color:var(--ink)}.username-input-prefix{font-size:16px;color:var(--muted);margin-right:2px;font-family:Cormorant Garamond,Georgia,serif}.username-input input{flex:1;border:none!important;background:transparent!important;margin-bottom:0!important;padding:12px 10px!important;font-size:16px!important;font-family:SF Mono,Menlo,monospace!important;letter-spacing:.02em}.username-hint{font-size:12px;margin-bottom:4px;min-height:18px}.username-hint .muted{color:var(--muted)}.username-hint .error{color:#b53a3a}.username-hint .ok{color:#5a8c5a}.inline-code{font-family:SF Mono,Menlo,monospace;font-size:12px;background:var(--bg);padding:1px 6px;border-radius:3px;color:var(--ink)}.lang-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}.lang-pill{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:15px;font-weight:500;cursor:pointer;text-align:left;transition:border-color .18s,background .18s,transform .18s}.lang-pill:hover{border-color:var(--ink-soft)}.lang-pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.lang-flag{font-size:22px;line-height:1;transform:translateY(-1px)}.lang-name{letter-spacing:-.005em}@media(max-width:380px){.lang-grid{grid-template-columns:1fr}}@media(pointer:coarse){.lang-pill:hover{border-color:var(--line)}.lang-pill.active:hover{border-color:var(--ink)}}.friends-section,.activity-section{margin-top:56px;padding-top:32px;border-top:1px solid var(--line)}.friends-section-title{font-size:26px;letter-spacing:-.01em;margin-bottom:20px}.friends-search{position:relative;display:flex;align-items:center;gap:8px;background:var(--paper);border:1.5px solid var(--line);border-radius:8px;padding:0 14px;margin-bottom:20px;color:var(--muted);transition:border-color .2s}.friends-search:focus-within{border-color:var(--ink-soft);color:var(--ink-soft)}.friends-search input{flex:1;border:none;background:transparent;padding:12px 0;font:inherit;font-size:14px;color:var(--ink);outline:none}.friends-search input::placeholder{color:var(--muted)}.friends-search-clear{background:none;border:none;font:inherit;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px}.friends-search-clear:hover{color:var(--ink)}.friends-results{border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden;margin-bottom:24px}.friends-block{margin-bottom:24px}.friends-block-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px}.friends-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-bottom:6px}.friends-results .friends-row{border:none;border-bottom:1px solid var(--line);border-radius:0;margin:0;background:var(--paper)}.friends-results .friends-row:last-child{border-bottom:none}.friends-row-button{width:100%;text-align:left;cursor:pointer;font:inherit;transition:border-color .2s,transform .15s}.friends-row-button:hover{border-color:var(--ink-soft);transform:translate(2px)}.friends-row-name{background:none;border:none;padding:0;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;font-family:SF Mono,Menlo,monospace;letter-spacing:.02em;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;min-width:0}.friends-row-name:hover,.friends-row-name-button:hover .friends-row-display{color:var(--accent)}.friends-row-display{font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.friends-row-handle{font-family:SF Mono,Menlo,monospace;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.02em}.field-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 6px}.friends-row-meta{font-size:12px;color:var(--muted);letter-spacing:.04em}.friends-row-actions{display:flex;gap:8px}.friends-row-cancel{background:none;border:none;font:inherit;font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.friends-row-cancel:hover{color:#b53a3a;text-decoration-color:#b53a3a}.friends-empty-row{padding:16px;font-size:13px;color:var(--muted);text-align:center;background:var(--paper);border:1px dashed var(--line);border-radius:8px}.public-actions{margin-top:20px;display:flex;gap:10px}.friend-tag{font-size:12px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper)}.profile-empty{text-align:center;padding:80px 20px;color:var(--ink-soft)}.profile-empty h2{font-size:32px;margin-bottom:12px;color:var(--ink)}.achievement-card.in-progress .achievement-thumb img{filter:grayscale(.4) brightness(.92)}.leaderboard-pip{position:absolute;top:8px;right:8px;background:#1a1714c7;color:var(--paper);font-size:11px;font-weight:600;letter-spacing:.04em;padding:4px 9px;border-radius:999px;font-variant-numeric:tabular-nums;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.piece-option{position:relative}.piece-option-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--paper)}.piece-option.active .piece-option-dot{box-shadow:0 0 0 2px var(--ink)}.piece-option-coop{position:absolute;top:5px;right:5px;padding:1px 6px;border-radius:999px;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(135deg,#c66322,#e07a3a 60%,#f0a060);color:#fff;box-shadow:0 0 0 2px var(--paper)}.piece-option.active .piece-option-coop{box-shadow:0 0 0 2px var(--ink)}.piece-option.has-coop{border-color:#d67a3a8c}.piece-option-check{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#2f8f5e;color:#fff;box-shadow:0 0 0 2px var(--paper)}.piece-option.active .piece-option-check{box-shadow:0 0 0 2px var(--ink)}.piece-option.is-completed:not(.active){background:#2f8f5e0f;border-color:#2f8f5e47}.piece-option.piece-option-premium-lock{opacity:.82;border-style:dashed;border-color:#b8541a73}.piece-option.piece-option-premium-lock:hover{opacity:1;border-color:var(--accent-soft)}.piece-option-premium-lock-badge{position:absolute;top:5px;right:5px;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);line-height:1}.piece-option.piece-option-desktop-lock{opacity:.7;border-style:dashed;border-color:#1a171440;color:var(--muted)}.piece-option.piece-option-desktop-lock:hover{opacity:.85}.piece-option-desktop-lock-badge{position:absolute;top:5px;right:5px;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);line-height:1}.desktop-only-modal{text-align:center}.desktop-only-modal h3{margin:6px 0 8px}.desktop-only-modal p{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}.desktop-only-modal-icon{display:flex;justify-content:center;color:var(--ink-soft);margin-bottom:4px}.puzzle-toast{position:absolute;top:50%;left:50%;transform:translate(-50%,calc(-50% + 80px));background:#282421f2;color:var(--paper);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:12px 22px;font-size:13px;letter-spacing:.02em;z-index:250;box-shadow:0 12px 32px #00000059;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:toastIn .4s cubic-bezier(.16,1,.3,1);pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,calc(-50% + 100px))}to{opacity:1;transform:translate(-50%,calc(-50% + 80px))}}.puzzle-coop-invite{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:#fff;border:none;padding:10px 16px;border-radius:8px;font:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #d6885647;transition:all .2s cubic-bezier(.16,1,.3,1)}.puzzle-coop-invite:hover{background:#c97744;transform:translateY(-1px);box-shadow:0 6px 18px #d6885666}.puzzle-coop-invite svg{flex:0 0 auto}.coop-cursor-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:260}.coop-cursor{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;margin-left:-2px;margin-top:-2px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.coop-cursor-arrow{display:block;stroke:#0000004d;stroke-width:1;stroke-linejoin:round}.coop-cursor-label{position:absolute;left:16px;top:16px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;color:#fff;white-space:nowrap;letter-spacing:.02em;box-shadow:0 2px 6px #00000059}.coop-stats{position:absolute;left:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:90;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:12px;background:#282421c7;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);min-width:200px;max-width:min(320px,50vw);pointer-events:auto}.coop-stats-row{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center}.coop-stats-row.is-you .coop-stats-name{font-weight:700;color:#fffffff5}.coop-stats-monogram{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;line-height:1}.coop-stats-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.coop-stats-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px;color:#ffffffbf}.coop-stats-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coop-stats-count{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#ffffffeb}.coop-stats-bar{height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}.coop-stats-bar-fill{height:100%;transition:width .28s cubic-bezier(.16,1,.3,1)}@media(max-width:700px){.coop-stats{left:8px;right:8px;bottom:calc(74px + env(safe-area-inset-bottom));min-width:0;max-width:none}}.puzzle-coop-row{display:inline-flex;align-items:center;gap:10px;align-self:flex-end;pointer-events:auto}.coop-presence{display:inline-flex;flex-direction:row;gap:6px;align-items:center}.coop-presence-slot{position:relative;display:inline-flex}.coop-monogram{flex:0 0 auto;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:var(--paper);border:none;padding:0;cursor:default;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-soft) 100%);transition:transform .12s ease,filter .2s ease,opacity .2s ease}.coop-monogram.is-offline{background:linear-gradient(135deg,#5a544f,#3d3835);opacity:.6}.coop-monogram.is-kickable{cursor:pointer}.coop-monogram.is-kickable:hover{transform:scale(1.08);filter:brightness(1.08)}.coop-presence-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:5;background:#282421f2;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 4px 14px #00000059;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);min-width:180px;overflow:hidden}.coop-presence-menu-item{display:block;width:100%;text-align:left;background:transparent;border:0;padding:10px 14px;font-size:13px;color:#fcf8f2eb;cursor:pointer;transition:background-color .12s ease}.coop-presence-menu-item:hover{background:#d8563c40}@media(max-width:768px),(pointer:coarse){.coop-monogram{width:28px;height:28px;font-size:14px}}.coop-active-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin:0 0 24px}.coop-active-grid .art-card-wrap{position:relative}.coop-card-leave{position:absolute;top:10px;left:10px;width:26px;height:26px;border-radius:50%;background:#0000008c;color:#fff;border:none;font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:2;transition:background .12s ease,transform .12s ease}.coop-card-leave:hover{background:#000c;transform:scale(1.05)}.coop-active-banner{display:flex;flex-direction:column;gap:14px;margin:0 0 20px}.coop-active-banner-card{display:flex;gap:16px;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;font:inherit;color:inherit;box-shadow:0 6px 20px #00000014;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.coop-active-banner-card:hover{transform:translateY(-2px);border-color:#b8541a66;box-shadow:0 10px 26px #0000001f}.coop-active-banner-thumb{position:relative;flex:0 0 auto;width:140px;height:100px;border-radius:10px;overflow:hidden;background:var(--paper-deep, #ece7dc)}.coop-active-banner-thumb img{width:100%;height:100%;object-fit:cover;display:block}.coop-active-banner-tags{position:absolute;inset:6px 6px auto auto;display:flex;gap:4px;flex-direction:column;align-items:flex-end}.coop-active-tag{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 2px 6px #00000040}.coop-active-tag-progress{background:#ffffffeb;color:var(--ink, #1a1714)}.coop-active-tag-coop{background:linear-gradient(135deg,#c66322,#e07a3a 60%,#f0a060);color:#fff}.coop-active-banner-meta{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;gap:2px}.coop-active-banner-kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);font-weight:600}.coop-active-banner-title{font-size:18px;line-height:1.25;font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.coop-active-banner-artist{font-size:13px;color:#0000008c}.coop-active-banner-actions{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.coop-active-banner-cta{color:var(--accent);font-weight:600;font-size:13px;letter-spacing:.04em}.coop-active-banner-leave{background:transparent;border:1px solid var(--line);color:#0000008c;width:28px;height:28px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.coop-active-banner-leave:hover{background:#0000000f;color:var(--ink, #1a1714)}@media(max-width:600px){.coop-active-banner-thumb{width:96px;height:96px}.coop-active-banner-title{font-size:15px}}.coop-active-tray{position:fixed;right:20px;bottom:20px;z-index:280;display:flex;flex-direction:column;gap:8px;max-width:300px}.coop-active-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#282421f2;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fcf8f2eb;box-shadow:0 12px 32px #00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.coop-active-card-text{flex:1 1 auto;min-width:0}.coop-active-card-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#d68856d9;margin-bottom:2px}.coop-active-card-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coop-active-card-actions{display:flex;gap:6px;align-items:center;flex:0 0 auto}.coop-active-card-actions .text-btn{padding:6px 10px;font-size:11px}@media(max-width:768px),(pointer:coarse){.coop-active-tray{right:12px;left:12px;bottom:calc(96px + env(safe-area-inset-bottom));max-width:none}}.coop-invites-tray{position:fixed;left:20px;bottom:20px;z-index:280;display:flex;flex-direction:column;gap:8px;max-width:360px}@media(max-width:768px),(pointer:coarse){.coop-invites-tray{left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));max-width:none}.view-puzzle--tray .coop-invites-tray{bottom:calc(180px + env(safe-area-inset-bottom))}}.coop-invite-card{background:#282421f2;border:1px solid rgba(216,136,86,.4);border-radius:10px;padding:12px 14px;color:#fcf8f2eb;font-size:13px;box-shadow:0 12px 32px #00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.coop-invite-card-text{margin-bottom:10px}.coop-invite-card-actions{display:flex;gap:8px;justify-content:flex-end}.coop-gate{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--workspace);display:flex;align-items:center;justify-content:center;z-index:200}.coop-gate-card{background:#282421f2;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:32px 36px;max-width:420px;text-align:center}.coop-gate-title{margin:0 0 12px;font-size:20px;font-weight:500}.coop-gate-body{margin:0 0 18px;color:#ffffffb3;font-size:14px}.coop-invite-popover{position:fixed;top:70px;right:20px;width:300px;max-width:calc(100vw - 24px);max-height:calc(100vh - 100px);z-index:290;background:#1c1916f5;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 14px 36px #00000073;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;padding:12px 14px;color:#fcf8f2eb;animation:pieceMenuIn .14s ease-out}.view-puzzle--tray .coop-invite-popover{right:300px}.coop-invite-popover-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ffffffa6;margin-bottom:12px}.coop-invite-popover-close{background:transparent;border:none;color:#ffffff8c;font-size:18px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px;transition:color .12s ease,background .12s ease}.coop-invite-popover-close:hover{color:#fcf8f2f2;background:#ffffff0f}.coop-invite-popover-btn{background:var(--accent-soft);color:#fff;border:none;padding:8px 12px;border-radius:6px;font:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;cursor:pointer;white-space:nowrap;transition:background .12s ease,opacity .12s ease}.coop-invite-popover-btn:hover:not(:disabled){background:#c97744}.coop-invite-popover-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:768px),(pointer:coarse){.coop-invite-popover{top:64px;left:12px;right:12px;width:auto}.view-puzzle--tray .coop-invite-popover{right:12px}.coop-invite-link-row{flex-direction:column;gap:8px}.coop-invite-popover-btn{width:100%;padding:10px 12px}}.coop-invite-title{margin:0 0 6px;font-size:18px;font-weight:500}.coop-invite-subtitle{margin:0 0 18px;color:#ffffffa6;font-size:13px}.coop-invite-link-row{display:flex;gap:8px;align-items:stretch}.coop-invite-link{flex:1 1 auto;background:#00000052;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:9px 12px;font-size:12px;color:#fcf8f2e6;font-family:inherit;outline:none}.coop-invite-link:focus{border-color:#d8885680}.coop-invite-divider{display:flex;align-items:center;margin:18px 0 12px;color:#ffffff59;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.coop-invite-divider:before,.coop-invite-divider:after{content:"";flex:1 1 auto;height:1px;background:#ffffff1a}.coop-invite-divider span{padding:0 10px}.coop-invite-friends-header{font-size:12px;color:#fff9;margin-bottom:8px;letter-spacing:.04em}.coop-invite-friends{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.coop-invite-friend{width:100%;display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;background:#00000038;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;cursor:pointer;font:inherit;color:#fcf8f2eb;text-align:left;transition:background .12s ease,border-color .12s ease}.coop-invite-friend:hover:not(:disabled){background:#d8885626;border-color:#d8885666}.coop-invite-friend.is-sent{opacity:.55;cursor:default}.coop-invite-friend-name{font-weight:500;font-size:13px}.coop-invite-friend-handle{grid-row:2;grid-column:1;font-size:11px;color:#ffffff80}.coop-invite-friend-status{grid-row:1 / 3;grid-column:2;font-size:11px;color:#d88856d9;text-transform:uppercase;letter-spacing:.06em}.coop-invite-empty{padding:16px;text-align:center;color:#ffffff73;font-size:13px}.puzzle-tray-ghost{position:fixed;z-index:280;pointer-events:none;filter:drop-shadow(0 14px 24px rgba(0,0,0,.55));opacity:.95}.puzzle-tray-ghost img{width:100%;height:100%;object-fit:contain;display:block}.piece-context-menu{position:fixed;z-index:300;min-width:200px;background:#1c1916f5;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 14px 36px #00000073;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:4px;animation:pieceMenuIn .12s ease-out}@keyframes pieceMenuIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.piece-context-menu-item{display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:#fcf8f2eb;font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .12s ease}.piece-context-menu-item:hover:not(:disabled),.piece-context-menu-item:focus-visible:not(:disabled){background:#d888562e;outline:none}.piece-context-menu-item:disabled{opacity:.45;cursor:not-allowed}.piece-context-menu-item>svg{grid-row:1 / 3;grid-column:1;color:#d88856d9}.piece-context-menu-label{grid-row:1;grid-column:2;font-weight:500;letter-spacing:.01em}.piece-context-menu-sub{grid-row:2;grid-column:2;font-size:11px;color:#ffffff80;margin-top:1px}.puzzle-signin{background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;font:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #b8541a40;transition:all .2s cubic-bezier(.16,1,.3,1)}.puzzle-signin:hover{background:#cf6020;transform:translateY(-1px);box-shadow:0 6px 18px #b8541a59}.profile-danger{margin-top:64px;padding-top:32px;border-top:1px solid var(--line);text-align:center;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.danger-link{background:none;border:none;font:inherit;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;padding:8px 16px;border-radius:999px;transition:color .2s,background .2s}.danger-link:hover{color:#b53a3a;background:#b53a3a0f}.profile-settings{display:flex;flex-direction:column;gap:4px}.settings-modal h3{margin:0 0 12px}.profile-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}.profile-settings-btn:hover{border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.profile-settings-btn svg{opacity:.7;transition:opacity .2s}.profile-settings-btn:hover svg{opacity:1}.settings-link{background:none;border:none;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;padding:14px 18px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:background .15s;text-align:left}.settings-link:hover{background:#1a17140a}.settings-link-value{color:var(--muted);font-size:13px;display:inline-flex;align-items:center}.profile-settings .danger-link{margin-top:12px;align-self:center}@media(max-width:700px){.settings-link{padding:12px 14px;font-size:14px}}.win-pb{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:#b8541a2e;border:1px solid rgba(184,84,26,.4);color:var(--accent-soft);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;animation:pbIn .6s .2s cubic-bezier(.16,1,.3,1) backwards}.win-coop{display:inline-flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px;animation:pbIn .6s .3s cubic-bezier(.16,1,.3,1) backwards}.win-coop-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#ffffff8c}.win-coop-names{font-size:14px;color:#fcf8f2eb;font-weight:500}@keyframes pbIn{0%{opacity:0;transform:scale(.8) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:700px){.profile{padding:calc(20px + env(safe-area-inset-top)) 18px calc(40px + env(safe-area-inset-bottom))}.profile-header{margin-bottom:28px}.profile-hero{margin-bottom:32px;padding-bottom:22px}.profile-title{font-size:36px}.profile-stats{gap:28px}.profile-stat-value{font-size:28px}.profile-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.achievement-meta{padding:12px 14px 14px;gap:8px}.achievement-title{font-size:14px}.tier-pip{font-size:9px;padding:3px 5px}}@media(max-width:480px){.auth-modal{padding:32px 22px 24px;border-radius:10px}.auth-title{font-size:26px}.otp-row{gap:6px}.otp-input{font-size:20px;border-radius:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.win-time{display:inline-flex;align-items:baseline;gap:12px;padding:10px 22px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);margin-top:-4px;font-variant-numeric:tabular-nums;animation:pbIn .55s .15s cubic-bezier(.16,1,.3,1) backwards}.win-time-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#ffffff8c;font-weight:600}.win-time-value{font-family:Cormorant Garamond,Georgia,serif;font-size:32px;line-height:1;color:var(--paper)}.share-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14110ec7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1500;padding:24px;animation:fadeIn .25s ease-out;overflow-y:auto}.share-card{position:relative;width:100%;max-width:420px;background:var(--paper);border-radius:14px;padding:24px 24px 22px;box-shadow:var(--shadow-lg);animation:scaleIn .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:18px;margin:auto}.share-close{position:absolute;top:12px;right:12px;background:transparent;border:none;width:34px;height:34px;border-radius:50%;cursor:pointer;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.share-close:hover{background:var(--bg);color:var(--ink)}.share-preview{width:100%;aspect-ratio:9 / 16;background:var(--bg-deep);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #0000000f}.share-preview img{width:100%;height:100%;object-fit:contain;display:block;animation:fadeIn .4s ease-out}.share-skeleton{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--muted)}.share-skeleton .spinner{border-color:#0000001f;border-top-color:var(--accent)}.share-error{padding:24px;text-align:center;color:var(--ink-soft);font-size:13px;display:flex;flex-direction:column;gap:6px}.share-error-detail{font-family:SF Mono,Menlo,monospace;font-size:11px;color:var(--muted);word-break:break-word}.share-meta{display:flex;flex-direction:column;gap:4px;text-align:center}.share-title{font-size:22px;letter-spacing:-.01em;color:var(--ink);line-height:1.2}.share-stats{font-size:13px;color:var(--ink-soft);display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px;font-variant-numeric:tabular-nums}.share-stats strong{color:var(--ink);font-weight:600}.share-stats-dot{color:var(--muted)}.share-stats-handle{color:var(--accent);font-weight:600}.share-stats-expert{color:var(--accent);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:11px}.share-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.share-actions .text-btn{background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:10px 16px}.share-actions .text-btn:hover:not(:disabled){background:var(--bg-deep);border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px)}.share-actions .text-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.share-actions .text-btn.primary:hover:not(:disabled){background:#cf6020;border-color:#cf6020}.share-actions .text-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.share-hint{text-align:center;font-size:12px;letter-spacing:.04em;color:var(--muted);animation:fadeIn .2s ease-out}@media(max-width:480px){.share-card{padding:20px 18px 18px;border-radius:12px}.share-title{font-size:19px}}.premium-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#f4c430,#d4a017);color:#2b1810;font-weight:600;letter-spacing:.04em;border-radius:999px;box-shadow:0 1px 2px #00000026,inset 0 1px #ffffff59;-webkit-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle}.premium-badge-sm{font-size:10px;padding:2px 7px 2px 5px;text-transform:uppercase}.premium-badge-md{font-size:11px;padding:3px 9px 3px 6px;text-transform:uppercase}.premium-badge svg{flex-shrink:0}.profile-username-row{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.subscription-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-radius:12px;margin-top:24px;flex-wrap:wrap}.subscription-card-premium{background:linear-gradient(135deg,#f4c4301a,#d4a0170f);border:1px solid rgba(212,160,23,.35)}.subscription-card-upsell{background:var(--paper);border:1px solid var(--line)}.subscription-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.subscription-title{display:inline-flex;align-items:center;gap:8px;font-size:17px;color:var(--ink)}.subscription-line{font-size:13px;color:var(--ink-soft)}.modal:has(.upgrade-modal){max-width:560px;padding:28px}.modal:has(.upgrade-modal-checkout){max-width:540px;padding:16px}.upgrade-modal-checkout{display:flex;flex-direction:column;gap:10px;min-height:560px}.upgrade-checkout-header{display:flex;justify-content:flex-start}.upgrade-modal{display:flex;flex-direction:column;gap:18px}.upgrade-header h2{font-size:26px;margin:0 0 6px;letter-spacing:-.01em}.upgrade-sub{color:var(--ink-soft);font-size:14px;line-height:1.5;margin:0}.upgrade-banner{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--ink-soft);line-height:1.45}.upgrade-perks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.upgrade-perks li{font-size:14px;color:var(--ink);padding-left:26px;position:relative;line-height:1.45}.upgrade-perks li:before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:999px;background:var(--accent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbf8f1' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");background-size:12px 12px;background-repeat:no-repeat;background-position:center}.upgrade-plans{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.upgrade-plans{grid-template-columns:1fr}}.plan-card{position:relative;background:var(--paper);border:2px solid var(--line);border-radius:10px;padding:16px 14px 14px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,box-shadow .15s,transform .15s;font-family:inherit;color:var(--ink)}.plan-card:hover{border-color:var(--ink-soft)}.plan-card.active{border-color:var(--ink);box-shadow:0 0 0 2px #1a17140f}.plan-badge{position:absolute;top:-10px;right:10px;background:var(--ink);color:var(--paper);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px}.plan-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600}.plan-price{display:flex;align-items:baseline;gap:4px}.plan-price-amount{font-size:26px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.plan-price-period{font-size:13px;color:var(--ink-soft)}.plan-note{font-size:12px;color:var(--ink-soft);line-height:1.4}.plan-radio{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:center;color:var(--paper);transition:background .15s,border-color .15s}.plan-card.active .plan-radio,.plan-radio.on{background:var(--ink);border-color:var(--ink)}.plan-card .plan-badge{right:38px}.upgrade-fineprint{font-size:11px;color:var(--ink-soft);text-align:center;margin:4px 0 0;line-height:1.45}.upgrade-banner-fixed{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-lg);z-index:1100;max-width:calc(100vw - 32px);animation:scaleIn .25s cubic-bezier(.16,1,.3,1)}.upgrade-banner-fixed.is-success{border-color:#d4a01799;background:linear-gradient(135deg,rgba(244,196,48,.12) 0%,var(--paper) 70%)}.upgrade-banner-fixed.is-downgraded{border-color:#b8541a66;background:linear-gradient(135deg,rgba(184,84,26,.1) 0%,var(--paper) 75%)}.upgrade-banner-fixed.is-downgraded .upgrade-banner-icon{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-soft) 100%);color:var(--paper)}.upgrade-banner-body{display:flex;align-items:center;gap:12px;min-width:0}.upgrade-banner-body.is-clickable{cursor:pointer}.upgrade-banner-body.is-clickable:hover .upgrade-banner-cta{color:var(--accent)}.upgrade-banner-cta{margin-left:8px;padding:5px 11px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:background .15s;flex-shrink:0}.upgrade-banner-body.is-clickable:hover .upgrade-banner-cta{color:var(--paper);background:var(--accent)}.upgrade-banner-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--ink);color:var(--paper);flex-shrink:0}.upgrade-banner-fixed.is-success .upgrade-banner-icon{background:linear-gradient(135deg,#f4c430,#d4a017);color:#2b1810}.upgrade-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.upgrade-banner-title{font-size:14px;font-weight:600;color:var(--ink)}.upgrade-banner-sub{font-size:12px;color:var(--ink-soft)}.upgrade-banner-close{background:transparent;border:none;color:var(--ink-soft);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.upgrade-banner-close:hover{background:var(--bg);color:var(--ink)}.activity-calendar{margin-top:0;margin-bottom:56px}.activity-calendar-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.activity-calendar-title{font-size:22px;letter-spacing:-.01em;margin:0}.activity-calendar-headline{font-size:12px;letter-spacing:.02em;color:var(--ink-soft);margin:0;font-variant-numeric:tabular-nums}.activity-calendar-empty{margin:0;font-size:13px;color:var(--muted);font-style:italic;letter-spacing:.01em}.activity-calendar-scroll{overflow-x:auto;padding-bottom:6px;margin:0 -4px;padding-left:4px;padding-right:4px;scrollbar-width:thin}.activity-calendar-scroll::-webkit-scrollbar{height:5px}.activity-calendar-scroll::-webkit-scrollbar-track{background:transparent}.activity-calendar-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.activity-calendar-grid{--cell: 11px;--gap: 3px;display:grid;grid-template-columns:repeat(52,var(--cell));grid-template-rows:14px repeat(7,var(--cell));column-gap:var(--gap);row-gap:var(--gap);width:max-content}.activity-calendar-month{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;align-self:start;white-space:nowrap}.activity-calendar-cell{width:var(--cell, 11px);height:var(--cell, 11px);border-radius:2px;background:#1a17140f;transition:transform .15s,background .15s}.activity-calendar-cell[data-level="1"]{background:#b8541a33}.activity-calendar-cell[data-level="2"]{background:#b8541a6b}.activity-calendar-cell[data-level="3"]{background:#b8541aad}.activity-calendar-cell[data-level="4"]{background:#b8541aeb}.activity-calendar-cell:not(.activity-calendar-cell-future):hover{transform:scale(1.35);z-index:1}.activity-calendar-cell-future{background:transparent;pointer-events:none}.activity-calendar-legend{display:flex;align-items:center;gap:4px;margin-top:14px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;justify-content:flex-end}.activity-calendar-legend .activity-calendar-cell{width:11px;height:11px}.activity-calendar-legend-text{margin:0 4px}@media(max-width:600px){.activity-calendar-grid{--cell: 10px;--gap: 2.5px}}.art-card-wrap{position:relative;width:100%;transition:transform .3s cubic-bezier(.16,1,.3,1)}.art-card-wrap:hover{transform:translateY(-4px)}.art-card-wrap>.art-card{width:100%}.art-card-wrap>.art-card:hover{transform:none}.art-bookmark{position:absolute;top:10px;right:10px;z-index:4;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fbf8f1eb;border:1px solid rgba(26,23,20,.1);color:var(--ink-soft);cursor:pointer;padding:0;font:inherit;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 1px 3px #0000000f;opacity:0;transform:translateY(-2px);transition:opacity .18s,transform .18s,color .15s,background .15s,border-color .15s,top .2s}.art-card-wrap:has(.art-new-tag) .art-bookmark{top:46px}.art-card-wrap:hover .art-bookmark,.art-card-wrap:focus-within .art-bookmark,.art-bookmark.is-on,.art-bookmark:focus-visible{opacity:1;transform:translateY(0)}.art-bookmark:hover{color:var(--accent);border-color:#b8541a4d}.art-bookmark.is-on{color:var(--accent);background:var(--paper);border-color:#b8541a66}.wishlist-section{margin-bottom:56px;padding:18px 20px 20px;background:linear-gradient(180deg,#b8541a06,#b8541a00 80%);border:1px solid var(--line);border-radius:12px;transition:padding-bottom .25s ease}.wishlist-section.is-closed{padding-bottom:18px}.wishlist-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.wishlist-section.is-open .wishlist-toggle{margin-bottom:16px}.wishlist-title{font-size:22px;letter-spacing:-.01em;margin:0;display:inline-flex;align-items:baseline;gap:4px}.wishlist-count{color:var(--muted);font-size:16px;font-weight:400}.wishlist-toggle-hint{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;transition:color .15s}.wishlist-toggle:hover .wishlist-toggle-hint{color:var(--ink-soft)}.wishlist-toggle-chevron{transition:transform .25s cubic-bezier(.16,1,.3,1)}.wishlist-section.is-closed .wishlist-toggle-chevron{transform:rotate(-90deg)}.wishlist-scroll{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 8px;margin:0 -4px;scrollbar-width:thin}.wishlist-scroll::-webkit-scrollbar{height:6px}.wishlist-scroll::-webkit-scrollbar-track{background:transparent}.wishlist-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.wishlist-card-wrap{position:relative;flex:0 0 auto;width:220px;scroll-snap-align:start;transition:transform .25s cubic-bezier(.16,1,.3,1)}.wishlist-card-wrap:hover{transform:translateY(-2px)}.wishlist-card{display:flex;flex-direction:column;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden;cursor:pointer;font:inherit;color:inherit;text-align:left;box-shadow:0 1px 2px #1a17140a;transition:border-color .2s,box-shadow .2s}.wishlist-card-wrap:hover .wishlist-card{border-color:#b8541a4d;box-shadow:0 1px 3px #1a171412}.wishlist-thumb{position:relative;aspect-ratio:4 / 3;background:#d4ccbc;overflow:hidden}.wishlist-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s ease}.wishlist-thumb img.loaded{opacity:1}.wishlist-card-wrap.is-locked .wishlist-thumb img{filter:grayscale(.85) brightness(.92);opacity:.55}.wishlist-card-wrap.is-locked .wishlist-card-title,.wishlist-card-wrap.is-locked .wishlist-card-artist{color:var(--muted)}.wishlist-lock{position:absolute;bottom:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px 4px 6px;border-radius:999px;background:#1a1714c7;color:var(--paper);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:3}.wishlist-card-wrap.is-locked .wishlist-card:hover .wishlist-lock{background:var(--accent)}.wishlist-meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:2px}.wishlist-card-title{font-size:14px;line-height:1.2;letter-spacing:-.005em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wishlist-card-artist{font-size:11px;color:var(--muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wishlist-card-remove{position:absolute;top:8px;right:8px;z-index:4;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fbf8f1eb;border:1px solid rgba(26,23,20,.1);color:var(--ink-soft);cursor:pointer;padding:0;font:inherit;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .18s,color .15s,background .15s}.wishlist-card-wrap:hover .wishlist-card-remove,.wishlist-card-wrap:focus-within .wishlist-card-remove{opacity:1}.wishlist-card-remove:hover{color:#b53a3a;background:var(--paper)}@media(max-width:600px){.wishlist-section{padding:14px 14px 16px}.wishlist-card-wrap{width:170px}.wishlist-card-title{font-size:13px}.wishlist-toggle-hint{font-size:10px}.art-bookmark{opacity:1;transform:none}.wishlist-card-remove{opacity:1}}.friends-row-section{margin-top:0;padding-top:0;border-top:none;margin-bottom:56px}.friends-row-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}.friends-row-title{font-size:22px;letter-spacing:-.01em;margin:0}.friends-row-count{color:var(--muted);font-size:16px;font-weight:400}.friends-row-manage{position:relative;background:none;border:none;font:inherit;font-size:12px;color:var(--ink-soft);cursor:pointer;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line);padding:4px 14px 4px 4px}.friends-row-manage:hover{color:var(--accent);text-decoration-color:currentColor}.friends-row-manage-dot{position:absolute;top:2px;right:0;width:7px;height:7px;border-radius:50%;background:var(--accent)}.friends-row-scroll{display:flex;align-items:stretch;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 8px;margin:0 -4px;scrollbar-width:thin}.friends-row-scroll::-webkit-scrollbar{height:6px}.friends-row-scroll::-webkit-scrollbar-track{background:transparent}.friends-row-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.friend-card{flex:0 0 auto;width:220px;scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px 14px;display:flex;flex-direction:column;gap:12px;cursor:pointer;font:inherit;color:inherit;text-align:left;box-shadow:0 1px 2px #1a17140a;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s}.friend-card:hover{transform:translateY(-1px);border-color:#b8541a4d;box-shadow:0 1px 3px #1a171412}.friend-card-header{display:flex;align-items:center;gap:12px;min-width:0}.friend-card-monogram{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;letter-spacing:0;line-height:1;color:var(--paper);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-soft) 100%);border:none}.friend-card-identity{min-width:0;display:flex;flex-direction:column;gap:1px}.friend-card-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}.friend-card-handle{font-family:SF Mono,Menlo,monospace;font-size:11px;color:var(--muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-card-divider{height:1px;background:var(--line);margin:0 -4px}.friend-card-stats{margin:0;display:flex;flex-direction:column;gap:4px}.friend-card-stat{display:grid;grid-template-columns:44px 1fr;align-items:baseline;gap:12px;min-width:0}.friend-card-stat-num{font-size:20px;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:0;text-align:right}.friend-card-stat-label{margin:0;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-card-more{align-items:center;justify-content:center;text-align:center;border-style:dashed;background:transparent;box-shadow:none;min-height:100%}.friend-card-monogram-more{width:44px;height:44px;font-size:16px;font-family:inherit;font-weight:500;background:transparent;border-color:var(--line);color:var(--ink-soft)}.friend-card-meta-more{font-size:12px;color:var(--ink-soft);letter-spacing:.02em}.friend-card-more:hover{border-color:var(--ink-soft);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.friend-card-more:hover .friend-card-monogram-more{background:transparent;border-color:var(--accent);color:var(--accent)}.friends-row-empty{display:flex;align-items:center;gap:14px;width:100%;padding:16px 4px;background:transparent;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;cursor:pointer;font:inherit;font-size:14px;color:var(--ink-soft);text-align:left;transition:color .2s}.friends-row-empty:hover{color:var(--ink)}.friends-row-empty:hover .friends-row-empty-plus{color:var(--accent)}.friends-row-empty-plus{font-size:28px;font-weight:300;color:var(--muted);line-height:1;font-family:Cormorant Garamond,Times New Roman,serif;transition:color .2s}.activity-section{margin-top:56px;padding-top:32px;border-top:1px solid var(--line)}.activity-section-compact{margin-top:40px;padding-top:28px}.activity-section-compact .friends-section-title{font-size:18px;margin-bottom:4px}.activity-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.activity-item{display:flex;align-items:baseline;gap:10px;padding:12px 0;background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;font-size:13px;color:var(--ink-soft);flex-wrap:wrap}.activity-item:last-child{border-bottom:none}.activity-section-compact .activity-item{font-size:13px;padding:10px 0}.activity-user{background:none;border:none;padding:0;font:inherit;font-size:inherit;font-weight:600;color:var(--ink);cursor:pointer;letter-spacing:-.005em}.activity-user:hover{color:var(--accent)}.activity-action{color:var(--ink-soft)}.activity-action strong{color:var(--ink);font-weight:600}.activity-time{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}.compare-section{margin:32px 0 12px;padding:0;background:transparent;border:none}.compare-title{font-size:20px;margin:0 0 18px;letter-spacing:-.01em;color:var(--ink);font-weight:500}.compare-grid{display:grid;grid-template-columns:minmax(110px,auto) 1fr;align-items:baseline;column-gap:28px;row-gap:6px;padding-bottom:18px;border-bottom:1px solid var(--line)}.compare-side-label{font-size:12px;letter-spacing:.04em;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-side-mine{color:var(--ink-soft)}.compare-row-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:baseline}.compare-row-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}.compare-num{font-size:32px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--muted)}.compare-num.lead{color:var(--accent)}.compare-col-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}.compare-overlap{margin:14px 0 0;font-size:13px;color:var(--ink-soft);letter-spacing:.01em}@media(max-width:600px){.friends-row-title{font-size:18px}.friend-card{width:200px;padding:14px 14px 12px}.friend-card-stat{grid-template-columns:38px 1fr;gap:10px}.friend-card-stat-num{font-size:18px}.friend-card-stat-label{font-size:9.5px;letter-spacing:.1em}.friend-card-monogram{width:34px;height:34px;font-size:18px}.compare-grid{grid-template-columns:1fr;column-gap:0;row-gap:2px}.compare-side-label{font-size:11px;margin-top:8px}.compare-row-numbers{gap:10px}.compare-num{font-size:26px}}.gallery-row{margin:0 0 36px}.gallery-row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.gallery-row-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.gallery-row-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}.gallery-row-title{font-size:22px;letter-spacing:-.01em;margin:0;color:var(--ink)}.gallery-row-arrows{display:inline-flex;gap:6px}@media(hover:none)and (pointer:coarse){.gallery-row-arrows{display:none}}.gallery-row-arrow{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;padding:0;font:inherit;transition:border-color .15s,color .15s,opacity .15s,transform .15s}.gallery-row-arrow:hover:not(:disabled){border-color:var(--ink-soft);color:var(--ink);transform:translateY(-1px)}.gallery-row-arrow:disabled{opacity:.3;cursor:default}.gallery-row-scroller{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:4px 4px 12px;margin:0 -4px;scrollbar-width:none}.gallery-row-scroller::-webkit-scrollbar{display:none;width:0;height:0}.row-card-wrap{position:relative;flex:0 0 auto;width:220px;scroll-snap-align:start;transition:transform .25s cubic-bezier(.16,1,.3,1)}.row-card-wrap:hover{transform:translateY(-2px)}.row-card-wrap>.row-card{width:100%}.row-card{display:flex;flex-direction:column;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden;cursor:pointer;font:inherit;color:inherit;text-align:left;box-shadow:0 1px 2px #1a17140a;transition:border-color .2s,box-shadow .2s}.row-card-wrap:hover .row-card{border-color:#b8541a4d;box-shadow:0 1px 3px #1a171412}.row-card.locked{cursor:pointer}.row-card-thumb{position:relative;aspect-ratio:4 / 3;background:#d4ccbc;overflow:hidden}.row-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s ease,filter .3s ease}.row-card-thumb img.loaded{opacity:1}.row-card.locked .row-card-thumb img{filter:grayscale(.85) brightness(.92);opacity:.55}.row-card-tag{position:absolute;top:8px;z-index:2;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:999px;pointer-events:none;white-space:nowrap}.row-card-tag.is-new{right:8px;background:var(--accent);color:var(--paper)}.row-card-tag.is-progress{left:8px;background:var(--paper);color:var(--ink);border:1px solid rgba(184,84,26,.3);padding-left:16px}.row-card-tag.is-progress:before{content:"";position:absolute;left:6px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--accent)}.row-card-tag-row{position:absolute;top:8px;left:8px;z-index:2;display:inline-flex;gap:5px;align-items:center}.row-card-tag-row .row-card-tag{position:static;top:auto;left:auto;right:auto}.row-card-tag.is-coop{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;background:#282421d9;color:#f0a060;border:1px solid rgba(224,122,58,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.row-card-tag.is-coop:before{display:none}.row-card-tag.is-coop svg{flex-shrink:0;width:10px;height:10px}.row-card-lock{position:absolute;bottom:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:4px 8px 4px 6px;border-radius:999px;background:#1a1714c7;color:var(--paper);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:3;pointer-events:none}.row-card-meta{padding:10px 12px 12px;display:flex;flex-direction:column;gap:2px}.row-card-title{font-size:14px;line-height:1.2;letter-spacing:-.005em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-card-artist{font-size:11px;color:var(--muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-card.locked .row-card-title,.row-card.locked .row-card-artist{color:var(--muted)}.row-card-bookmark{position:absolute;top:8px;right:8px;z-index:4;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fbf8f1eb;border:1px solid rgba(26,23,20,.1);color:var(--ink-soft);cursor:pointer;padding:0;font:inherit;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transform:translateY(-2px);transition:opacity .18s,transform .18s,color .15s,background .15s,border-color .15s,top .2s}.row-card-wrap:has(.row-card-tag.is-new) .row-card-bookmark{top:38px}.row-card-wrap:hover .row-card-bookmark,.row-card-wrap:focus-within .row-card-bookmark,.row-card-bookmark.is-on,.row-card-bookmark:focus-visible{opacity:1;transform:translateY(0)}.row-card-bookmark:hover{color:var(--accent);border-color:#b8541a4d}.row-card-bookmark.is-on{color:var(--accent);background:var(--paper);border-color:#b8541a66}@media(max-width:700px){.gallery-row{margin-bottom:28px}.gallery-row-title{font-size:18px}.gallery-row-scroller{gap:10px;margin-left:-18px;margin-right:-18px;padding-left:0;padding-right:0}.gallery-row-scroller>:first-child{margin-left:18px}.row-card-wrap{width:160px}.row-card-title{font-size:13px}.row-card-artist{font-size:10.5px}.row-card-bookmark{opacity:1;transform:none}.gallery-section-title{font-size:22px}.row-card-tag{font-size:8px;letter-spacing:.06em;padding:2px 6px}.row-card-tag.is-progress{padding-left:13px}.row-card-tag.is-progress:before{width:5px;height:5px;left:5px}.row-card-tag.is-coop{padding:2px 6px;gap:3px}.row-card-tag.is-coop svg{width:9px;height:9px}.row-card-tag-row{gap:4px;top:6px;left:6px}}@media(max-width:380px){.row-card-wrap{width:140px}.gallery-row-scroller{margin-left:-14px;margin-right:-14px;padding-left:0;padding-right:0}.gallery-row-scroller>:first-child{margin-left:14px}}@media(max-width:700px){.gallery{padding-bottom:0!important}.view-gallery{overscroll-behavior:contain}}@media(max-width:700px){.gallery-toolbar{gap:12px}.gallery-toolbar-actions{flex-direction:row;flex-wrap:wrap;gap:8px;width:100%;align-items:center;justify-content:flex-start}.gallery-filters,.gallery-list-tools{display:contents}.gallery-search{order:-1;flex-basis:100%;width:100%}.filter-clear-all{order:99;margin-left:auto;padding:6px 9px;font-size:0;letter-spacing:0;text-decoration:none}.filter-clear-all:before{content:"✕";font-size:14px;line-height:1;font-weight:500;color:var(--ink-soft)}.filter-clear-all:hover:before{color:var(--accent)}.filter-clear-all.is-hidden{display:none}}
