.ex-container{max-width:1200px;margin:0 auto;padding:28px 24px 80px}.ex-header{text-align:center;padding:8px 0 24px}.ex-title{font-family:var(--font-heading);font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.2;color:var(--text);margin-bottom:8px}.ex-title-accent{background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ex-subtitle{font-size:14px;color:var(--text-subtle)}.ex-search-row{margin:8px 0 16px;display:flex;justify-content:center}.ex-search-wrap{position:relative;width:100%;max-width:560px}.ex-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-disabled);pointer-events:none}.ex-search-input{width:100%;height:44px;padding:0 16px 0 44px;border-radius:100px;border:1px solid var(--border);background:var(--surface);font-size:14px;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.ex-search-input::-moz-placeholder{color:var(--text-disabled)}.ex-search-input::placeholder{color:var(--text-disabled)}.ex-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(244,63,111,.08)}.ex-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}.ex-filter{padding:8px 18px;border-radius:100px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text-subtle)}.ex-filter:hover{border-color:var(--sakura-500);color:var(--sakura-500);background:var(--sakura-50)}.ex-filter.on{background:var(--sakura-500);border-color:var(--sakura-500);color:#fff}.ex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}.ex-list-toggle{flex-shrink:0;width:40px;height:40px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--brand,#f43f6f);border:1px solid transparent;color:#fff;cursor:pointer;transition:filter .15s,transform .1s;font-family:inherit;padding:0;line-height:0;margin-top:-10px}.ex-list-toggle:hover{filter:brightness(1.08)}.ex-list-toggle:active{transform:scale(.95)}.ex-cc-wrap{position:relative}.ex-cc{border-radius:16px;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);cursor:pointer;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s;text-decoration:none;display:block;color:inherit;padding:0;font:inherit;text-align:left;width:100%}.ex-cc:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:rgba(244,63,111,.3)}.ex-cc-img-w{position:relative;overflow:hidden;background:rgba(244,63,111,.06);aspect-ratio:3/4}.ex-cc-img-w:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0,transparent 45%);pointer-events:none}.ex-cc-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;display:block;transition:transform .4s cubic-bezier(.16,1,.3,1)}.ex-cc:hover .ex-cc-img{transform:scale(1.05)}.ex-cc-tag{top:10px;z-index:2;backdrop-filter:blur(8px);background:rgba(244,63,111,.9);color:#fff;padding:4px 10px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.07em}.ex-cc-stats,.ex-cc-tag{position:absolute;left:10px}.ex-cc-stats{bottom:10px;z-index:3;display:flex;gap:6px}.ex-cc-stat{backdrop-filter:blur(8px);background:rgba(0,0,0,.5);border-radius:6px;padding:3px 8px;font-size:11px;color:hsla(0,0%,100%,.95);display:flex;align-items:center;gap:4px;border:none;font:inherit}.ex-cc-stat svg{width:11px;height:11px}.ex-cc-stat-like{cursor:pointer;transition:transform .15s,background .15s,color .15s}.ex-cc-stat-like:hover:not(:disabled){background:rgba(0,0,0,.7);transform:scale(1.05)}.ex-cc-stat-like:disabled{cursor:default;opacity:.7}.ex-cc-stat-like.is-liked{color:#f43f6f}.ex-cc-body{padding:14px 16px 18px}.ex-cc-name{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-cc-desc{font-size:12px;color:var(--text-subtle);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ex-skel{border-radius:16px;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border)}.ex-skel-img{aspect-ratio:3/4;background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--border) 37%,var(--surface-sunken) 63%);background-size:400% 100%;animation:exShimmer 1.4s ease infinite}.ex-skel-body{padding:14px 16px 18px}.ex-skel-line{height:12px;border-radius:4px;background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--border) 37%,var(--surface-sunken) 63%);background-size:400% 100%;animation:exShimmer 1.4s ease infinite;margin-bottom:8px}.ex-skel-line.short{width:50%}@keyframes exShimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.ex-empty{text-align:center;padding:80px 24px;color:var(--text-subtle);font-size:14px}.ex-empty-icon{font-size:40px;opacity:.3;margin-bottom:12px}.ex-load-more{grid-column:1/-1;padding:40px 0;display:flex;justify-content:center;align-items:center;color:var(--text-disabled);font-size:13px}.ex-load-spinner{width:20px;height:20px;border:2px solid rgba(244,63,111,.15);border-top:2px solid var(--brand);border-radius:50%;animation:exSpin .8s linear infinite;margin-right:8px}@keyframes exSpin{to{transform:rotate(1turn)}}@media (max-width:1100px){.ex-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:768px){.ex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ex-container{padding:8px 16px 60px}.ex-cc{background:transparent;border:none;box-shadow:none;position:relative;overflow:hidden;border-radius:14px}.ex-cc:hover{box-shadow:none;border-color:transparent}.ex-cc:hover,.ex-cc:hover .ex-cc-img{transform:none}.ex-cc-img-w{aspect-ratio:3/4.6;border-radius:14px}.ex-cc-img-w:after{background:linear-gradient(0deg,rgba(0,0,0,.88) 0,rgba(0,0,0,.55) 30%,transparent 65%)}.ex-cc-body{position:absolute;left:0;right:0;bottom:0;padding:36px 12px;background:transparent;z-index:2}.ex-cc-name{color:#fff;font-size:14px;margin-bottom:4px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.ex-cc-desc{color:hsla(0,0%,100%,.88);font-size:11px;line-height:1.45;-webkit-line-clamp:2}.ex-cc-stats{z-index:3;bottom:8px;left:8px}}.ex-filterbar{display:flex;align-items:center;gap:10px;margin:0 0 16px;flex-wrap:wrap}.ex-filterbar .ex-search-wrap{flex:1 1 260px;min-width:200px}@media (max-width:768px){.ex-filterbar{flex-wrap:nowrap;gap:4px;margin-bottom:12px}.ex-filterbar>*{flex-shrink:0}.ex-filterbar .ex-search-wrap{flex:1 1 0;min-width:40px}.ex-filterbar .ex-search-input{height:40px;font-size:12px;padding:0 8px 0 28px}.ex-filterbar .ex-search-input::-moz-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-filterbar .ex-search-input::placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-filterbar .ex-search-icon{left:8px;width:14px;height:14px}.ex-filterbar .ex-dd-btn{padding:8px 10px;font-size:12px;gap:3px;height:40px}.ex-filterbar .ex-dd-hint{display:inline;margin-right:0;color:inherit}.ex-filterbar .ex-dd-value{display:none}.ex-filterbar .ex-dd-caret{flex-shrink:0}}.ex-dd{position:relative}.ex-dd-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--surface,#f1f2f8);border:1px solid var(--border,rgba(0,0,0,.08));color:var(--text,#1a1a2e);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.ex-dd-btn:hover{background:var(--surface-raised,#e9eaf2)}.ex-dd-btn.open{border-color:var(--brand,#f43f6f);color:var(--brand,#f43f6f)}.ex-dd-hint{color:var(--text-subtle,#7a7a8c);font-weight:500;margin-right:2px;display:none}.ex-dd-caret{opacity:.6;transition:transform .15s;flex-shrink:0}.ex-dd-btn.open .ex-dd-caret{transform:rotate(180deg)}.ex-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:180px;max-height:320px;overflow-y:auto;background:var(--surface-raised,#fff);border:1px solid var(--border,rgba(0,0,0,.1));border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);padding:6px;margin:0;list-style:none}.ex-dd-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border-radius:8px;border:none;background:none;cursor:pointer;font-family:inherit;font-size:13px;color:var(--text,#1a1a2e);text-align:left;transition:background .1s}.ex-dd-item:hover{background:var(--surface-sunken,rgba(0,0,0,.04))}.ex-dd-item.active{background:rgba(244,63,111,.08);color:var(--brand,#f43f6f);font-weight:600}.ex-dd-item-check{color:var(--brand,#f43f6f);font-size:14px;flex-shrink:0}html.dark .ex-dd-btn{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.08);color:hsla(0,0%,100%,.9)}html.dark .ex-dd-btn:hover{background:hsla(0,0%,100%,.1)}html.dark .ex-dd-btn.open{color:var(--brand,#f43f6f);border-color:var(--brand,#f43f6f)}html.dark .ex-dd-hint{color:hsla(0,0%,100%,.5)}html.dark .ex-dd-menu{background:#1a1a22;border-color:hsla(0,0%,100%,.08);box-shadow:0 12px 40px rgba(0,0,0,.5)}html.dark .ex-dd-item{color:hsla(0,0%,100%,.9)}html.dark .ex-dd-item:hover{background:hsla(0,0%,100%,.06)}.ex-tagbar{display:flex;gap:8px;align-items:center;overflow-x:auto;overflow-y:hidden;padding:4px 0 16px;margin:0 0 12px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.ex-tagbar::-webkit-scrollbar{height:4px}.ex-tagbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:2px}.ex-tag{flex-shrink:0;padding:6px 14px;border-radius:999px;background:transparent;border:1px solid transparent;color:var(--text-subtle,#666);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s;font-family:inherit}.ex-tag:hover{color:var(--text,#1a1a2e);background:var(--surface,rgba(0,0,0,.04))}.ex-tag.on{background:var(--brand-gradient,linear-gradient(135deg,#ff6b95,#f43f6f));color:#fff;border-color:transparent}.ex-tag-loading{color:var(--text-subtle,#999);font-size:12px;padding:6px 10px}html.dark .ex-tag{color:hsla(0,0%,100%,.6)}html.dark .ex-tag:hover{color:#fff;background:hsla(0,0%,100%,.06)}html.dark .ex-tag.on{color:#fff}html.dark .ex-tagbar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.15)}@media (max-width:640px){.ex-filterbar{gap:8px}.ex-dd-btn{padding:8px 12px;font-size:12px}.ex-tag{padding:6px 12px;font-size:12px}}.ex-swipe-root{position:fixed;inset:0;z-index:50;overflow:hidden;background:var(--bg-base,#08080c)}.ex-swipe-stage{position:absolute;inset:0;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:pan-y}@media (max-width:640px){.ex-swipe-stage .ex-card-progress{top:calc(56px + .75rem)!important;left:50%!important;right:auto!important;transform:translateX(-50%);width:50%}.ex-swipe-stage .ex-card-info{top:calc(56px + .75rem)}.ex-swipe-filter,.ex-swipe-toggle{top:calc(56px + .75rem)!important}.ex-swipe-root .ex-actions-bar{bottom:calc(64px + 20px + env(safe-area-inset-bottom) + .75rem)!important}.ex-swipe-stage .ex-card-meta-inner{padding-bottom:calc(64px + 20px + 64px + env(safe-area-inset-bottom) + 1.5rem)}}.ex-swipe-toggle{position:absolute;top:calc(env(safe-area-inset-top) + .75rem);right:16px;z-index:30;width:40px;height:40px;border-radius:10px;background:var(--brand,#f43f6f);border:none;color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:filter .15s,transform .1s}.ex-swipe-toggle:hover{filter:brightness(1.08)}.ex-swipe-toggle:active{transform:scale(.95)}.ex-swipe-filter{position:absolute;top:calc(env(safe-area-inset-top) + .75rem);right:calc(16px + 40px + 8px);z-index:30;width:40px;height:40px;border-radius:10px;background:var(--brand,#f43f6f);border:none;color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:filter .15s,transform .1s}.ex-swipe-filter:hover{filter:brightness(1.08)}.ex-swipe-filter:active{transform:scale(.95)}.ex-filter-mask{position:fixed;inset:0;background:transparent;z-index:200;pointer-events:none}.ex-filter-mask--open{pointer-events:auto}.ex-filter-sheet{position:fixed;top:calc(56px + .75rem + 40px + 8px);left:16px;right:16px;z-index:201;background:var(--bg-surface,#0f0f14);color:var(--k-text,#f0f0f5);border:1px solid var(--k-border,hsla(0,0%,100%,.08));border-radius:14px;padding:10px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .18s cubic-bezier(.32,.72,0,1),transform .18s cubic-bezier(.32,.72,0,1);box-shadow:0 12px 32px rgba(0,0,0,.45)}.ex-filter-sheet--open{opacity:1;transform:translateY(0);pointer-events:auto}.ex-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ex-filter-card{position:relative;border-radius:12px;border:2px solid var(--k-border,hsla(0,0%,100%,.12));overflow:hidden;cursor:pointer;background:var(--bg-elevated,#141414);transition:border-color .15s,transform .1s;aspect-ratio:3/4;padding:0;font-family:inherit}.ex-filter-card:active{transform:scale(.98)}.ex-filter-card--active{border-color:#e43889}.ex-filter-card img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;display:block}.ex-filter-card-mask{position:absolute;inset:0;background:rgba(0,0,0,.3);pointer-events:none;transition:opacity .15s}.ex-filter-card--active .ex-filter-card-mask{opacity:0}.ex-filter-card-label{position:absolute;left:0;right:0;bottom:0;padding:18px 4px 8px;background:linear-gradient(0deg,#000,transparent);text-align:center;font-size:12px;color:#fff;white-space:nowrap}.ex-filter-card--active .ex-filter-card-label span{color:#ec4b9b}html:not(.dark) .ex-filter-sheet{background:#fff;color:#1a1a2e;border-color:rgba(0,0,0,.08);box-shadow:0 12px 32px rgba(0,0,0,.18)}html:not(.dark) .ex-filter-card{background:#fff;border-color:rgba(0,0,0,.12)}