.search-bar-container{max-width:720px;margin:0 auto;position:relative}.recent-search-dropdown{position:absolute;left:0;right:0;z-index:100;background:#fff;border:1px solid var(--border-light);border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,.08);max-height:400px;overflow-y:auto;margin-top:10px}.recent-dropdown-header{display:flex;align-items:center;padding:10px 14px 6px;border-bottom:1px solid var(--border-light);gap:8px}.recent-dropdown-header>span:first-child{flex:1}.recent-dropdown-header span{font-size:.6875rem;font-weight:600;color:var(--text-caption)}.recent-dropdown-header button{font-size:.625rem;color:var(--text-caption);background:0 0;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;flex-shrink:0}.recent-dropdown-header button:hover{color:var(--accent);background:var(--accent-light)}.recent-dropdown-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0!important;border-radius:50%!important;color:var(--text-caption)}.recent-dropdown-close:hover{color:var(--text-primary)!important;background:var(--bg-tertiary)!important}.recent-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;gap:8px;transition:background .1s}.recent-dropdown-item:hover{background:var(--bg-tertiary,#fafafa)}.recent-dropdown-item:last-child{border-radius:0 0 12px 12px}.recent-item-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.recent-type-badge{font-size:.5625rem;font-weight:600;padding:1px 5px;border-radius:3px;flex-shrink:0}.recent-type-badge.type-recommended{background:#ede9fe;color:#7c3aed}.recent-type-badge.type-contentBased{background:#dbeafe;color:#2563eb}.recent-type-badge.type-integrated{background:#f3f4f6;color:#6b7280}.recent-item-query{font-size:.8125rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-chip{font-size:.5625rem;padding:1px 5px;border-radius:8px;flex-shrink:0;white-space:nowrap}.recent-chip.emotion{background:#fef3c7;color:#92400e}.recent-chip.mbti{background:#e0e7ff;color:#4338ca}.recent-chip.adult{background:#fce7f3;color:#be185d}.recent-item-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.recent-item-time{font-size:.625rem;color:var(--text-caption)}.recent-item-delete{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:0 0;cursor:pointer;color:#ccc;border-radius:50%;transition:all .15s}.recent-item-delete:hover{color:var(--accent);background:var(--accent-light)}:root{--search-icon-left:14px;--search-icon-size:28px;--search-popover-size:36px;--search-popover-gap:10px;--search-dropdown-border:1.5px;--search-dropdown-pad:6px}.search-type-selector{position:absolute;left:0;right:0;top:0;height:100%;pointer-events:none;z-index:200}.search-type-trigger{position:absolute;left:var(--search-icon-left);top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:var(--search-icon-size);height:var(--search-icon-size);padding:0;border:none;background:0 0;color:var(--accent);border-radius:50%;cursor:pointer;pointer-events:auto;transition:background var(--transition),transform var(--transition)}.search-type-trigger:hover{background:var(--accent-light)}.search-type-trigger:active{transform:translateY(-50%) scale(.92)}.search-type-trigger-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;transform-origin:center;color:var(--accent)}.search-type-selector[data-active=recommended] .search-type-trigger-icon{animation:search-trigger-breathing 2.4s ease-in-out infinite}@keyframes search-trigger-breathing{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.12);opacity:1}}.search-type-selector[data-active=integrated] .search-type-trigger-icon{animation:search-trigger-orbit 2.8s linear infinite}@keyframes search-trigger-orbit{0%{transform:translate(0,0)}25%{transform:translate(1.6px,-1.6px)}50%{transform:translate(0,-2.2px)}75%{transform:translate(-1.6px,-1.6px)}100%{transform:translate(0,0)}}.search-type-selector[data-active=contentBased] .search-type-trigger-icon{transform-origin:50% 100%;animation:search-trigger-swing 2.6s ease-in-out infinite}@keyframes search-trigger-swing{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}.search-type-dropdown{position:absolute;left:0;top:0;width:0;height:100%;pointer-events:none;z-index:200;background:0 0;border:none;box-shadow:none}.search-type-option{position:absolute;left:calc(var(--search-icon-left) + var(--search-icon-size)/ 2 - var(--search-popover-size)/ 2);top:50%;width:var(--search-popover-size);height:var(--search-popover-size);padding:0;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:50%;box-shadow:0 3px 10px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.08);color:var(--accent);cursor:pointer;transform:translateY(-50%) scale(0);opacity:0;pointer-events:none;transition:transform .55s cubic-bezier(.32, .72, .24, 1),opacity .35s ease-out,background .15s ease,color .15s ease}.search-type-option:hover{background:var(--accent-light);box-shadow:0 4px 14px rgba(107,92,231,.22),0 1px 3px rgba(0,0,0,.08)}.search-type-option.active{display:none}.search-type-option-hint,.search-type-option-label{display:none}.search-type-option-icon{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;color:inherit}.search-type-option-icon svg{width:18px;height:18px}.search-type-selector.is-open .search-type-option{transition:transform .32s cubic-bezier(.34, 1.56, .64, 1),opacity .2s ease,background .15s ease,color .15s ease,border-color .15s ease}.search-type-selector.is-open .search-type-option[data-slot=top]{transform:translateY(calc(-50% - var(--search-icon-size)/ 2 - var(--search-popover-gap) - var(--search-popover-size)/ 2)) scale(1);opacity:1;pointer-events:auto}.search-type-selector.is-open .search-type-option[data-slot=bottom]{transform:translateY(calc(-50% + var(--search-icon-size)/ 2 + var(--search-popover-gap) + var(--search-popover-size)/ 2)) scale(1);opacity:1;pointer-events:auto}.search-type-option.is-selecting{transform:translateY(-50%) scale(calc(var(--search-icon-size)/ var(--search-popover-size)))!important;opacity:1!important;transition:transform .28s cubic-bezier(.55, .06, .68, .19)!important}.search-type-selector:not(.is-open) .search-type-option.is-dismissed{transition:none!important;opacity:0!important;transform:translateY(-50%) scale(0)!important}.search-type-selector:not(.is-open) .search-type-option:not(.is-selecting){pointer-events:none!important}.search-type-trigger.is-bump{animation:trigger-bump .42s cubic-bezier(.34,1.56,.64,1)}@keyframes trigger-bump{0%{transform:translateY(-50%) scale(1)}45%{transform:translateY(-50%) scale(1.25)}100%{transform:translateY(-50%) scale(1)}}@media (max-width:480px){:root{--search-icon-left:10px;--search-icon-size:24px;--search-popover-size:30px}}.search-bar-compact{--search-icon-left:10px;--search-icon-size:24px;--search-popover-size:30px}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper.multiline{align-items:flex-end}.search-input{width:100%;padding:12px 52px 12px 48px;min-height:48px;max-height:120px;font-size:.875rem;font-family:inherit;line-height:1.5;border:1.5px solid var(--border);border-radius:var(--radius-full);background:#fff;color:var(--text-primary);outline:0;transition:border-radius .2s,border-color var(--transition),box-shadow var(--transition);resize:none;overflow-y:hidden;field-sizing:content}.search-input.multiline{border-radius:19px}.search-input-wrapper.multiline .search-submit-btn{bottom:5px}.search-input-wrapper.multiline .search-clear-btn{bottom:13px}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.search-input::placeholder{color:var(--text-caption)}.search-submit-btn{position:absolute;right:8px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:50%;transition:all var(--transition)}.search-submit-btn:hover{background:var(--accent-hover)}.search-submit-btn svg{width:16px;height:16px}.search-clear-btn{position:absolute;right:50px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--text-caption);color:#fff;border-radius:50%;opacity:.45;transition:opacity .15s;cursor:pointer;border:none;padding:0}.search-clear-btn:hover{opacity:.8}.search-bar-compact .search-type-tabs{display:none}.search-bar-compact .search-input{padding:9px 40px 9px 38px;font-size:.8125rem}.search-bar-compact .search-submit-btn{width:28px;height:28px;right:5px}.search-bar-compact .search-clear-btn{right:36px;width:18px;height:18px}.search-bar-compact .search-clear-btn svg{width:10px;height:10px}.search-bar-compact .emotion-selector{display:none}.emotion-selector{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.emotion-selector::-webkit-scrollbar{display:none}.emotion-selector--deferred{opacity:0;max-height:0;margin-top:0;overflow:hidden;pointer-events:none;transition:opacity .28s ease,max-height .28s ease,margin-top .28s ease}.emotion-selector--deferred.is-revealed{opacity:1;max-height:60px;margin-top:10px;pointer-events:auto}.emotion-chip.chip-disabled{opacity:.5;cursor:default;background:var(--bg-tertiary)!important;color:var(--text-caption)!important;border-color:var(--border-light)!important}.emotion-divider{color:var(--border);font-size:.75rem;user-select:none;flex-shrink:0}.emotion-chip{padding:5px 12px;font-size:.6875rem;font-weight:600;white-space:nowrap;flex-shrink:0;border-radius:var(--radius-full);cursor:pointer;border:1.5px solid var(--border);background:#fff;color:var(--text-secondary);transition:all var(--transition);display:inline-flex;align-items:center;gap:4px}.emotion-chip:hover{border-color:var(--text-tertiary)}.emotion-chip.for-adult{border-color:#ffd5cc;color:#ff9480}.emotion-chip.for-adult.active{background:#ffe0d5;border-color:#ff9480;color:#e8664d}.emotion-chip.available-filter{border-color:#b8e6d0;color:#4caf8a}.emotion-chip.available-filter.active{background:#d5f5e8;border-color:#4caf8a;color:#2e7d5e}.emotion-chip.mbti{border-color:#c8dbff;color:#6b9aff}.emotion-chip.mbti.active{background:#d5e8ff;border-color:#94b8ff;color:#3b6bdb}.emotion-chip.emotion{border-color:#c8f0e8;color:#4db8a4}.emotion-chip.emotion.active{background:#d5f5f0;border-color:#7ed4c4;color:#2d9b88}.emotion-chip svg{flex-shrink:0}.emotion-chip.disabled{opacity:.35;cursor:default;border-color:var(--border)!important;color:var(--text-caption)!important;background:var(--bg-tertiary)!important}.emotion-chip.disabled:hover{border-color:var(--border)!important}.emotion-dialog-overlay,.mbti-dialog-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px}.emotion-dialog,.mbti-dialog{background:#fff;border-radius:var(--radius-md);padding:20px;width:100%;max-width:360px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.mbti-dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mbti-dialog-header h3{font-size:1rem;font-weight:700}.mbti-dialog-desc{font-size:.75rem;color:var(--text-caption);line-height:1.6;margin:-10px 0 6px;padding:0;text-align:left}.mbti-dialog-find{font-size:.75rem;margin:0 0 14px;padding:0;text-align:left}.mbti-dialog-find a{display:inline-flex;align-items:center;color:#3b6bdb;text-decoration:none;font-weight:600;border-bottom:1px dotted rgba(59,107,219,.4);padding-bottom:1px;transition:color var(--transition),border-color var(--transition)}.mbti-dialog-find a:hover{color:#1f4ab0;border-bottom-color:rgba(31,74,176,.7)}.mbti-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-tertiary);cursor:pointer;border-radius:50%;transition:background var(--transition)}.mbti-close:hover{background:var(--bg-tertiary)}.mbti-axes{display:flex;flex-direction:column;gap:8px}.mbti-axis{display:flex;gap:8px}.mbti-option{flex:1;padding:10px;text-align:center;font-size:.875rem;font-weight:700;cursor:pointer;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);transition:all var(--transition)}.mbti-option span{display:block;font-size:.6875rem;font-weight:400;color:var(--text-caption);margin-top:2px}.mbti-option.active{background:#d5e8ff;border-color:#94b8ff;color:#3b6bdb}.mbti-option.active span{color:#6b9aff}.mbti-dialog-actions{display:flex;gap:8px;margin-top:16px}.mbti-reset{flex:1;padding:10px;font-size:.8125rem;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);cursor:pointer}.mbti-confirm{flex:1;padding:10px;font-size:.8125rem;font-weight:600;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer}.emotion-dialog-actions{display:flex;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-light)}.emotion-reset{flex:1;padding:9px;font-size:.8125rem;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.emotion-reset:hover{color:#b91c1c;border-color:#fecaca;background:#fff5f5}.emotion-quick-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.emotion-quick-btn{padding:6px 14px;font-size:.75rem;font-weight:500;border:1.5px solid #c8f0e8;border-radius:var(--radius-full);background:#fff;color:#4db8a4;cursor:pointer;transition:all var(--transition)}.emotion-quick-btn:hover{background:#d5f5f0;border-color:#7ed4c4}.emotion-custom-input{display:flex;gap:8px}.emotion-custom-input input{flex:1;min-width:0;padding:8px 12px;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.emotion-custom-input button{padding:10px 24px;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;flex-shrink:0}.book-card{display:flex;flex-direction:column;text-decoration:none;cursor:pointer;transition:transform .25s ease}.book-card:hover{transform:translateY(-3px)}.book-card-image{border-radius:var(--radius-xs);overflow:hidden;background:var(--bg-tertiary);box-shadow:var(--shadow-book);transition:box-shadow .25s ease;position:relative}.book-card-image::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.4) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;z-index:1;pointer-events:none;transition:opacity .3s}.book-card-image.loaded::after{opacity:0}.book-card:hover .book-card-image{box-shadow:var(--shadow-md)}.book-card-image img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}.book-card-image img.loaded{opacity:1}.book-card-no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-caption)}.book-card-info{padding:6px 2px 0}.book-card-title{font-size:.75rem;font-weight:500;color:var(--text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-card-author{font-size:.6875rem;color:var(--text-tertiary);margin-top:2px}.book-card-date{font-size:.625rem;color:var(--text-caption);margin-top:2px}.book-card-publisher{font-size:.625rem;color:var(--text-caption);margin-top:1px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:20px}.book-grid .book-card{width:100%}.book-grid .book-card-image{aspect-ratio:3/4}.book-carousel{display:flex;gap:40px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 4px 16px;scrollbar-width:none;-ms-overflow-style:none}.book-carousel::-webkit-scrollbar{display:none}.book-carousel .book-card{flex-shrink:0;width:auto}.book-carousel .book-card-image{min-width:170px;height:230px;border-radius:2px 4px 4px 2px;transform:perspective(500px) rotateY(-8.6deg);transform-origin:left center;box-shadow:1px 0 0 #fff,2px 0 0 rgba(110,100,85,.12),3px 0 0 #f6f4ef,4px 0 0 rgba(110,100,85,.14),5px 0 0 #eae7de,6px 0 0 rgba(70,60,45,.26),0 1px 0 rgba(0,0,0,.06),0 2px 0 rgba(0,0,0,.04),4px 8px 14px rgba(0,0,0,.18),inset 2px 0 2px -1px rgba(0,0,0,.06);transition:transform .35s ease-out,box-shadow .35s ease-out,transform-origin .35s ease-out,min-width .3s ease}.book-carousel .book-card-image img{height:100%;width:auto;display:block;border-radius:inherit}.book-carousel .book-card-info{max-width:140px;padding-top:8px}.book-carousel .book-card-image.touched,.book-carousel .book-card-image:hover{transform:perspective(500px) rotateY(0) translateY(-2px);transform-origin:center center;box-shadow:1px 0 0 #fff,2px 0 0 rgba(110,100,85,.12),3px 0 0 #f6f4ef,4px 0 0 rgba(110,100,85,.14),5px 0 0 #eae7de,6px 0 0 rgba(70,60,45,.28),0 1px 0 rgba(0,0,0,.06),0 2px 0 rgba(0,0,0,.04),6px 14px 22px rgba(0,0,0,.24),inset 2px 0 2px -1px rgba(0,0,0,.06)}.carousel-wrapper{position:relative}.carousel-wrapper::after,.carousel-wrapper::before{content:'';position:absolute;top:0;bottom:0;width:24px;z-index:2;pointer-events:none}.carousel-wrapper::before{left:0;background:linear-gradient(to right,var(--bg-primary),transparent)}.carousel-wrapper::after{right:0;background:linear-gradient(to left,var(--bg-primary),transparent)}.carousel-scroll-btn{position:absolute;top:0;bottom:16px;display:flex;align-items:center;justify-content:center;z-index:3;cursor:pointer}.carousel-scroll-btn.left{left:0}.carousel-scroll-btn.right{right:0}.carousel-scroll-btn-circle{width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15);opacity:.5;transition:opacity .15s ease;color:#495057}.carousel-scroll-btn-circle:hover{opacity:1}.carousel-scroll-btn-circle svg{width:20px;height:20px}@media (max-width:768px){.carousel-scroll-btn{display:none}}.carousel-skeleton{display:flex;gap:40px;padding:8px 4px;overflow:hidden;-webkit-mask-image:linear-gradient(to right,#000 80%,transparent 100%);mask-image:linear-gradient(to right,#000 80%,transparent 100%)}.book-carousel{animation:fadeIn .4s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.carousel-skeleton-item{flex-shrink:0;width:170px;height:240px;border-radius:var(--radius-sm);background:#f0f0f0;position:relative;overflow:hidden;transform:perspective(500px) rotateY(-8.6deg);transform-origin:left center;box-shadow:3px 4px 8px rgba(0,0,0,.06)}.carousel-skeleton-item::before{content:'';position:absolute;inset:0;background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 15 L75 35 L75 60 L72 62 C65 55 55 52 50 65 C45 52 35 55 28 62 L25 60 L25 35 Z" fill="none" stroke="%23ddd" stroke-width="2.5"/></svg>');background-repeat:no-repeat;background-position:center;background-size:40px 40px;opacity:.5}.carousel-skeleton-item::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.5) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.discussions-carousel{display:flex;gap:40px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px 8px 16px 24px;scrollbar-width:none;-ms-overflow-style:none}.discussions-carousel::-webkit-scrollbar{display:none}.discussion-card-wrapper{flex-shrink:0;position:relative;width:200px;cursor:pointer}.discussion-card{width:100%;height:260px;padding:14px;background:var(--bg-tertiary);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;transform:perspective(500px) rotateY(8.6deg);transform-origin:right center;box-shadow:-2px 3px 6px rgba(0,0,0,.08);transition:transform .3s ease-out,box-shadow .3s ease-out,transform-origin .3s ease-out}.discussion-card-wrapper.touched .discussion-card,.discussion-card-wrapper:hover .discussion-card{transform:perspective(500px) rotateY(0);transform-origin:center center;box-shadow:0 5px 10px rgba(0,0,0,.14)}.discussion-book-title{font-size:.75rem;font-weight:600;color:#8d6e63;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;line-height:1.3}.discussion-portal-badge{align-self:flex-end;max-width:calc(100% - 48px);margin-top:4px;padding:2px 7px;font-size:.5625rem;font-weight:600;letter-spacing:.2px;color:#6d4c41;background:rgba(255,255,255,.78);border:1px solid rgba(141,110,99,.22);border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.discussion-content-area{flex:1;overflow:hidden;position:relative}.discussion-content{font-size:.8125rem;color:#5d4037;line-height:1.55}.discussion-content-area::after{content:'';position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,var(--disc-fade-color,#fff));pointer-events:none}.discussion-meta{display:flex;align-items:center;gap:4px;font-size:.625rem;color:#a1887f;margin-top:2px;justify-content:flex-end;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discussion-meta svg{width:10px;height:10px;flex-shrink:0}.discussion-thumb{position:absolute;bottom:0;left:-24px;z-index:2;height:85px;width:64px;border-radius:2px 4px 4px 2px;overflow:hidden;background:var(--bg-tertiary);transform:perspective(500px) rotateY(-14.3deg);transform-origin:left center;box-shadow:1px 0 0 #fff,2px 0 0 rgba(110,100,85,.12),3px 0 0 #f6f4ef,4px 0 0 rgba(70,60,45,.26),0 1px 0 rgba(0,0,0,.05),3px 5px 10px rgba(0,0,0,.22),inset 2px 0 2px -1px rgba(0,0,0,.06);transition:transform .3s ease-out,box-shadow .3s ease-out,width .3s ease;display:flex;align-items:center;justify-content:center}.discussion-thumb-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}.discussion-thumb-logo{width:18px;height:auto;object-fit:contain;opacity:.12;animation:thumbLogoPulse 1.5s ease-in-out infinite}@keyframes thumbLogoPulse{0%,100%{opacity:.08}50%{opacity:.2}}.discussion-thumb.loaded{width:auto}.discussion-thumb.loaded .discussion-thumb-loading{opacity:0;pointer-events:none}.discussion-card-wrapper.touched .discussion-thumb,.discussion-card-wrapper:hover .discussion-thumb{transform:perspective(500px) rotateY(0) translateY(-1px);box-shadow:1px 0 0 #fff,2px 0 0 rgba(110,100,85,.12),3px 0 0 #f6f4ef,4px 0 0 rgba(70,60,45,.28),0 1px 0 rgba(0,0,0,.05),4px 9px 14px rgba(0,0,0,.28),inset 2px 0 2px -1px rgba(0,0,0,.06)}.discussion-thumb img:not(.discussion-thumb-logo){height:85px;width:auto;display:block;position:relative;z-index:1}.discussion-thumb-placeholder{width:60px;height:85px;background:#e8e0d8;display:flex;align-items:center;justify-content:center;color:#bcaaa4}.discussions-skeleton{display:flex;gap:40px;padding:8px 8px 16px 24px;overflow:hidden;-webkit-mask-image:linear-gradient(to right,#000 80%,transparent 100%);mask-image:linear-gradient(to right,#000 80%,transparent 100%)}.discussions-skeleton-item{flex-shrink:0;width:200px;height:260px;border-radius:8px;background:#f0f0f0;position:relative;overflow:hidden;transform:perspective(500px) rotateY(8.6deg);transform-origin:right center;box-shadow:-2px 3px 6px rgba(0,0,0,.04)}.discussions-skeleton-item::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.5) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@media (max-width:768px){.discussion-card-wrapper{width:170px}.discussion-card{height:220px;padding:12px}.discussion-book-title{font-size:.6875rem}.discussion-content{font-size:.75rem}.discussion-thumb{height:70px;width:50px}.discussion-thumb.loaded{width:auto}.discussion-thumb img:not(.discussion-thumb-logo){height:70px;width:auto}}.search-examples{max-width:720px;margin:20px auto 0}.search-page .search-examples{padding:0 20px;box-sizing:border-box}.search-examples-label{text-align:center;font-size:.75rem;color:var(--text-caption);margin-bottom:10px}.search-examples-list{display:flex;flex-direction:column;gap:8px}.search-example-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition)}.search-example-btn:hover{background:#f8f5ff;border-color:#d5c8f0}.search-example-tag{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%}.search-example-tag.emotion{background:#e5faf5;color:#4db8a4}.search-example-tag.content{background:#f0e5ff;color:#9b7ed8}.search-example-tag svg{width:11px;height:11px}.search-example-query{font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.search-examples-toggle{display:block;margin:10px auto 0;font-size:.75rem;color:var(--text-caption);cursor:pointer;padding:4px 8px;transition:color var(--transition)}.search-examples-toggle:hover{color:var(--text-secondary)}.search-page{padding:32px 0}.search-page-bar{max-width:720px;margin:0 auto 24px;padding:0 20px}.search-results-container{min-height:200px;padding:0 20px;max-width:var(--max-width);margin:0 auto}.search-ai-summary-wrapper{max-width:var(--max-width);margin:0 auto 12px;padding:0 20px}.search-ai-summary{padding:12px 16px;background:var(--bg-section,#fafafa);border-left:2px solid var(--border);border-radius:var(--radius-sm)}.ai-summary-badge{display:block;font-size:.6875rem;font-weight:600;color:var(--text-caption);margin-bottom:4px;cursor:default;letter-spacing:.2px}.ai-summary-text{font-size:.8125rem;line-height:1.6;color:var(--text-primary)}.ai-summary-text .ai-writer-highlight{font-weight:700;color:var(--accent,#2c5282);background:rgba(44,82,130,.08);padding:0 4px;border-radius:3px}.ai-summary-guide{font-size:.75rem;color:var(--accent);font-weight:500;margin-top:4px}.ai-summary-hint{font-size:.75rem;color:var(--text-caption);margin-top:6px}.ai-summary-portal-hint{font-size:.6875rem;color:var(--text-caption);margin-top:4px;opacity:.8}.ai-summary-portal-link{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .15s}.ai-summary-portal-link:hover{color:var(--accent)}.intent-mismatch,.writer-ambig{margin-top:10px;padding:9px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;background:color-mix(in srgb,var(--accent) 4%,#fff);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:var(--radius-md)}.intent-mismatch-q,.writer-ambig-q{font-size:.8125rem;color:var(--text-secondary)}.intent-mismatch-target,.writer-ambig-name{font-weight:700;color:var(--accent)}.intent-mismatch-btn,.writer-ambig-yes-btn{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;padding:5px 12px;border-radius:var(--radius-full);background:var(--accent);color:#fff;border:none;cursor:pointer;box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 30%,transparent);transition:background .15s,box-shadow .15s}.intent-mismatch-btn{padding-left:10px}.intent-mismatch-btn:hover,.writer-ambig-yes-btn:hover{background:var(--accent-hover);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 40%,transparent)}.intent-mismatch-btn-icon{display:inline-flex}.intent-mismatch-btn-icon svg{width:13px;height:13px}.writer-card-match{font-weight:700;color:var(--accent,#2c5282);background:rgba(44,82,130,.1);padding:0 2px;border-radius:2px}.search-controls{max-width:var(--max-width);margin:0 auto 16px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.search-filters{display:flex;gap:8px}.filter-chip{padding:6px 14px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);cursor:pointer;background:#fff;border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition);display:inline-flex;align-items:center;gap:4px}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-chip:hover:not(.active){border-color:var(--accent);color:var(--accent)}.filter-count{font-weight:400}.lib-filter-panel{max-width:var(--max-width);margin:-8px auto 16px;padding:0 20px}.lib-filter-list{display:flex;flex-wrap:wrap;gap:6px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px 14px}.lib-filter-loading{font-size:.75rem;color:var(--text-caption);padding:4px 0}.lib-filter-list .lib-login-guide{width:100%;padding:12px 8px;gap:6px}.lib-filter-list .lib-login-guide p{font-size:.75rem}.lib-filter-list .lib-login-guide-btn{padding:6px 16px;font-size:.75rem}.lib-filter-item{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:.75rem;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-full);cursor:pointer;transition:all .15s;white-space:nowrap}.lib-filter-item:has(input:checked){background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.lib-filter-item input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;cursor:pointer;flex-shrink:0}.lib-filter-item-name{min-width:0}.re-search-bar{max-width:var(--max-width);margin:0 auto;padding:0 20px;overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .25s ease,margin .3s ease}.re-search-bar.visible{max-height:60px;opacity:1;margin-bottom:12px}.re-search-btn{width:100%;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.8125rem;font-weight:600;color:var(--accent);background:var(--accent-light);border:1px dashed var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.re-search-btn:hover{background:var(--accent);color:#fff}.re-search-btn:hover svg{stroke:#fff}.re-search-btn:active{transform:scale(.98)}.search-loading-overlay{position:absolute;inset:0;z-index:5;background:rgba(255,255,255,.7);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.search-loading-overlay::after{content:'';width:28px;height:28px;border:3px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#rateLimitOverlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .3s ease}#rateLimitOverlay.rl-fade-out{animation:tapGuideFadeOut .3s ease forwards}.rl-dialog{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:36px 28px 28px;text-align:center;max-width:340px;width:100%}.rl-illustration{margin-bottom:20px}.rl-book{display:inline-block;position:relative;width:56px;height:68px;background:var(--accent-light);border-radius:4px 8px 8px 4px;border-left:4px solid var(--accent);box-shadow:2px 3px 8px rgba(0,0,0,.08)}.rl-book-cover{position:absolute;inset:6px 6px 6px 8px;border-radius:2px;background:repeating-linear-gradient(0deg,transparent,transparent 8px,var(--border-light) 8px,var(--border-light) 9px)}.rl-zzz{position:absolute;top:-12px;right:-18px;font-size:1rem;font-weight:700;color:var(--accent);animation:rlFloat 2s ease-in-out infinite}.rl-zzz span:first-child{font-size:.75rem;opacity:.6;margin-left:2px;animation:rlFloat 2s ease-in-out infinite .3s}.rl-zzz span:nth-child(2){font-size:.5rem;opacity:.3;margin-left:1px;animation:rlFloat 2s ease-in-out infinite .6s}@keyframes rlFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.rl-title{font-size:1.0625rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.rl-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:6px}.rl-hint{font-size:.75rem;color:var(--text-caption);margin-bottom:20px}.rl-btn{width:100%;padding:11px;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.rl-btn:hover{opacity:.9}.search-view-options{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.for-adult-toggle{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary);cursor:pointer}.for-adult-toggle input{accent-color:#FF9480}#availableCheck{accent-color:#4CAF8A}.sort-select{padding:5px 28px 5px 10px;font-size:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.view-toggle{display:flex;gap:2px}.view-toggle-btn{padding:5px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-caption);transition:all var(--transition)}.view-toggle-btn.active{color:var(--accent);background:var(--accent-light)}.view-toggle-btn:hover:not(.active){color:var(--text-secondary)}.search-results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.sr-grid-card{display:flex;flex-direction:column;text-decoration:none;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition);background:#fff}.sr-grid-card:hover{box-shadow:var(--shadow-md);border-color:var(--border)}.sr-grid-cover{height:240px;overflow:hidden;background:var(--bg-tertiary);position:relative;display:flex;align-items:center;justify-content:center}.sr-grid-cover::before{content:'';position:absolute;width:28px;height:28px;background-image:url('../images/bm-indicator.png');background-position:center;background-size:contain;background-repeat:no-repeat;animation:thumbLogoPulse 1.5s ease-in-out infinite;z-index:0}.sr-grid-cover img,.sr-list-cover img{opacity:0;transition:opacity .3s ease}.sr-grid-cover img.loaded,.sr-list-cover img.loaded{opacity:1}.sr-grid-cover img{width:100%;height:100%;object-fit:cover;object-position:center top;position:relative;z-index:1}.sr-no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-caption)}.sr-grid-info{padding:12px 14px 16px;flex:1}.sr-grid-title{font-size:.9375rem;font-weight:600;line-height:1.4;color:var(--text-primary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-list-badges{display:flex;gap:4px;align-items:center;margin-bottom:4px;flex-wrap:wrap}.badge-adult-sm{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;color:#fff;background:#ff9480;border-radius:var(--radius-full)}.badge-mylib{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;color:#7c3aed;background:#ede9fe;border-radius:var(--radius-full)}.badge-loan{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;color:#fff;border-radius:var(--radius-full)}.badge-loan.available{background:#22c55e}.badge-loan.unavailable{background:#ef4444}.badge-loan.not-owned{background:#9ca3af}.badge-loan.nearby-owned{background:#f59e0b}.badge-loan.loading{background:#d1d5db;animation:loanPulse 1.2s ease-in-out infinite}.search-results-container[data-system-down=true] .badge-loan,.search-results-container[data-system-down=true] .sr-grid-portal-box,.search-results-container[data-system-down=true] .sr-list-portal-box[data-book-key],.search-results-container[data-system-down=true] .sr-list-portal-status{display:none!important}.lib-system-down-banner{display:flex;align-items:center;gap:8px;padding:12px 16px;margin:12px 0;background:#fff8e1;border:1px solid #ffd54f;border-radius:8px;color:#5d4037;font-size:.875rem;line-height:1.4}.lib-system-down-banner svg{flex-shrink:0;color:#e65100}.badge-loan-nearby{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;color:#fff;border-radius:var(--radius-full);white-space:nowrap}.badge-loan-nearby.available{background:#16a34a;opacity:.85}.badge-loan-nearby.unavailable{background:#ef4444;opacity:.85}.badge-loan-nearby.owned{background:#9ca3af}.badge-loan-nearby.not-owned{background:#9ca3af;opacity:.75}.badge-loan-nearby.loading{background:#d1d5db;animation:loanPulse 1.2s ease-in-out infinite}@keyframes loanPulse{0%,100%{opacity:.5}50%{opacity:1}}.sr-grid-pub{font-size:.6875rem;color:var(--text-caption);margin-bottom:2px}.sr-grid-authors{font-size:.6875rem;color:var(--text-tertiary);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-grid-summary{font-size:.75rem;color:var(--text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}.sr-grid-tags{display:flex;flex-wrap:wrap;gap:4px}.sr-tag{display:inline-block;padding:3px 9px;font-size:.6875rem;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-full);font-weight:500}.search-results-list{display:flex;flex-direction:column;gap:16px}.sr-list-card{display:flex;gap:20px;text-decoration:none;padding:16px;border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition);background:#fff}.sr-list-card:hover{box-shadow:var(--shadow-md);border-color:var(--border)}.sr-list-cover{flex-shrink:0;width:195px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-tertiary);align-self:flex-start;position:relative;min-height:220px}.sr-list-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.4) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;z-index:0;pointer-events:none;border-radius:var(--radius-xs);transition:opacity .3s}.sr-list-cover.loaded{background:0 0;min-height:0}.sr-list-cover.loaded::after{opacity:0}.sr-list-cover img{width:100%;height:auto;display:block;border-radius:var(--radius-xs);position:relative;z-index:1}.sr-list-info{flex:1;min-width:0}.sr-list-title{font-size:1rem;font-weight:700;line-height:1.4;color:var(--text-primary);margin-bottom:4px}.sr-list-pub{font-size:.75rem;color:var(--text-caption);margin-bottom:4px}.sr-list-summary{margin-bottom:10px}.sr-summary-badge{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;color:#fff;background:var(--accent);border-radius:var(--radius-full);margin-bottom:6px}.sr-list-summary p{font-size:.8125rem;color:var(--text-secondary);line-height:1.7;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.sr-list-tags{display:flex;flex-wrap:wrap;gap:4px}.sr-list-cover-wrap{flex-shrink:0;width:195px;display:flex;flex-direction:column;align-items:stretch;gap:6px}.sr-list-portal-box{display:flex;align-items:center;gap:5px;width:100%;margin:6px 0}.sr-list-portal-status{flex:1;min-width:0;min-height:28px;box-sizing:border-box;padding:4px 8px;border-radius:6px;border:1px solid var(--border-light);background:var(--bg-tertiary);display:flex;align-items:center;gap:4px;font-size:.6875rem}.sr-list-portal-status.loading{justify-content:center}.sr-list-portal-status.loading .spinner{width:10px;height:10px;border-width:1.5px}.sr-list-portal-status.has-call{background:var(--accent-light);border-color:transparent}.sr-list-portal-status.has-call-no{background:var(--accent-light);border-color:transparent}.sr-list-portal-status.not-found{background:var(--bg-tertiary)}.sr-list-portal-lib-name{color:var(--text-caption);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-list-portal-call{color:var(--accent);font-weight:700;font-size:.75rem;font-variant-numeric:tabular-nums;word-break:break-all;line-height:1.3}.sr-list-portal-not-found{color:var(--text-tertiary);font-size:.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-scrap-btn.scrap-icon-btn{width:28px;height:28px;flex-shrink:0;border-width:1.5px}.sr-scrap-btn.scrap-icon-btn svg{width:13px;height:13px}.sr-scrap-btn.scrap-icon-btn.has-label{width:auto;min-width:28px;height:28px;padding:0 10px 0 8px;gap:4px;align-items:center;justify-content:center;border-radius:var(--radius-full)}.sr-scrap-btn.scrap-icon-btn.has-label span{font-size:.6875rem;font-weight:600;color:inherit;line-height:1}.sr-grid-portal-box{display:flex;align-items:center;gap:4px;padding:0;margin:6px 0}.sr-grid-portal-box .sr-list-portal-status{flex:1;min-width:0;min-height:26px;font-size:.625rem;padding:2px 6px}.sr-grid-portal-box .sr-scrap-btn.scrap-icon-btn{width:26px;height:26px}.sr-grid-portal-box .sr-scrap-btn.scrap-icon-btn svg{width:12px;height:12px}@media (max-width:768px){.sr-list-cover-wrap{width:120px}.sr-list-portal-box{flex-wrap:wrap;gap:4px}.sr-list-portal-status{flex:1}}.search-load-more{max-width:var(--max-width);margin:24px auto 0;padding:0 20px;text-align:center}.load-more-btn{padding:12px 40px;font-size:.875rem;font-weight:600;border:1.5px solid var(--accent);color:var(--accent);background:#fff;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition)}.load-more-btn:hover{background:var(--accent-light)}.load-more-btn:disabled{opacity:.5;cursor:default}.load-more-wrap{text-align:center;margin-top:24px}@media (max-width:768px){.search-results-grid{grid-template-columns:repeat(2,1fr);gap:12px}.sr-grid-cover{height:200px}.sr-grid-title{font-size:.8125rem}.sr-list-card{gap:12px;padding:12px}.sr-list-cover{width:120px}.sr-list-title{font-size:.875rem}.search-controls{flex-direction:column;align-items:flex-start}.search-filters{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:none}.search-filters::-webkit-scrollbar{display:none}.filter-chip{white-space:nowrap;flex-shrink:0}.search-view-options{width:auto;margin-left:auto;justify-content:flex-end}}@media (min-width:769px) and (max-width:1024px){.search-results-grid{grid-template-columns:repeat(3,1fr)}}.integrated-controls{max-width:var(--max-width);margin:0 auto 20px;padding:0 20px;display:flex;align-items:center;gap:8px}.integrated-group{margin-bottom:32px}.integrated-group-header{max-width:var(--max-width);margin:0 auto;padding:0 20px 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.integrated-group-badge{display:inline-block;padding:3px 10px;font-size:.6875rem;font-weight:700;border-radius:var(--radius-full);color:#fff}.integrated-group-badge.title{background:#ffd166;color:#7a5c00}.integrated-group-badge.writer{background:#a8dadc;color:#1d3557}.integrated-group-badge.illustrator{background:#f4a261;color:#6b3410}.integrated-group-badge.translator{background:#e9c46a;color:#6b4e00}.integrated-group-badge.publisher{background:#cdb4db;color:#4a235a}.integrated-group-desc{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.integrated-group-desc strong{color:var(--text-primary)}.integrated-carousel-wrapper{max-width:var(--max-width);margin:0 auto;overflow:hidden}.integrated-carousel{display:flex;gap:16px;overflow-x:auto;padding:4px 20px 16px;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.integrated-carousel::-webkit-scrollbar{display:none}.integrated-carousel .sr-grid-card{flex-shrink:0;width:240px}.integrated-card{flex-shrink:0;width:220px;text-decoration:none;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;background:#fff;transition:all var(--transition);display:flex;flex-direction:column}.integrated-card:hover{box-shadow:var(--shadow-md);border-color:var(--border)}.integrated-card-cover{height:170px;overflow:hidden;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.integrated-card-cover img{width:100%;height:100%;object-fit:contain}.integrated-card-info{padding:12px;flex:1}.integrated-card-title{font-size:.875rem;font-weight:700;line-height:1.35;color:var(--text-primary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.integrated-card-pub{font-size:.6875rem;color:var(--text-caption);margin-bottom:4px}.integrated-card-author{font-size:.6875rem;color:var(--text-tertiary);margin-bottom:6px}.integrated-card-summary{font-size:.6875rem;color:var(--text-secondary);line-height:1.5;margin-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.integrated-card mark{background:rgba(255,235,59,.5);color:inherit;padding:0 1px;border-radius:2px}.integrated-more-btn{flex-shrink:0;width:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--text-caption)}.integrated-more-circle{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform var(--transition)}.integrated-more-btn:hover .integrated-more-circle{transform:scale(1.1)}.integrated-more-btn span{font-size:.6875rem;font-weight:500}@media (max-width:768px){.integrated-card{width:55vw;min-width:180px}.integrated-card-cover{height:150px}.integrated-carousel{gap:10px;padding:4px 16px 12px}.integrated-carousel .sr-grid-card{width:60vw;min-width:200px}}.search-loading-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;opacity:.5}.loading-cell{aspect-ratio:3/4;max-height:240px;background:var(--accent-light);border-radius:var(--radius-sm);animation:cellPulse 3s ease-in-out infinite}.loading-cell:first-child{animation-delay:0s}.loading-cell:nth-child(2){animation-delay:.25s}.loading-cell:nth-child(3){animation-delay:.5s}.loading-cell:nth-child(4){animation-delay:.75s}.loading-cell:nth-child(5){animation-delay:1s}.loading-cell:nth-child(6){animation-delay:1.25s}.loading-cell:nth-child(7){animation-delay:1.5s}.loading-cell:nth-child(8){animation-delay:1.75s}.loading-cell:nth-child(9){animation-delay:2s}.loading-cell:nth-child(10){animation-delay:2.25s}.loading-cell:nth-child(11){animation-delay:2.5s}.loading-cell:nth-child(12){animation-delay:2.75s}@keyframes cellPulse{0%,100%{opacity:.3}50%{opacity:1}}.content-loading{padding:20px 0}.content-loading-indicator{text-align:center;margin-bottom:24px}.content-loading-logo{width:40px;height:auto;opacity:.15;animation:thumbLogoPulse 1.5s ease-in-out infinite;margin-bottom:10px;display:block;margin-left:auto;margin-right:auto}.content-loading-indicator p{font-size:.8125rem;color:var(--text-caption)}.search-empty{text-align:center;padding:48px 20px}.search-empty-icon{margin-bottom:16px;display:flex;justify-content:center}.search-empty-anim,.search-empty-icon svg{width:80px;height:auto}.search-empty-text{font-size:.9375rem;font-weight:500;color:var(--text-secondary)}.search-empty-hint{font-size:.8125rem;color:var(--text-caption);margin-top:4px}.empty-icon-wrap{display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;color:silver;animation:emptyIconFloat 3s ease-in-out infinite}@keyframes emptyIconFloat{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-4px);opacity:.7}}@keyframes emptyFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty-book-scene{display:inline-block;position:relative;margin-bottom:24px}.empty-book{position:relative;width:90px;height:120px;display:inline-block}.empty-book-spine{position:absolute;left:0;top:0;bottom:0;width:10px;border-radius:3px 0 0 3px;box-shadow:inset -2px 0 4px rgba(0,0,0,.15)}.empty-book-front{position:absolute;left:8px;top:0;right:0;bottom:0;border-radius:0 6px 6px 0;display:flex;align-items:center;justify-content:center;transform:rotateY(-8deg);transform-origin:left center;box-shadow:4px 4px 12px rgba(0,0,0,.1)}.empty-book-front svg{color:var(--accent)}.empty-book-shadow{width:70px;height:10px;margin:6px auto 0;background:radial-gradient(ellipse,rgba(0,0,0,.08) 0,transparent 70%);animation:emptyShadowPulse 3s ease-in-out infinite}@keyframes emptyShadowPulse{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.85);opacity:.6}}.empty-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.empty-hint{font-size:.8125rem;color:var(--text-caption);line-height:1.7}.empty-sparkle{position:absolute;width:6px;height:6px;border-radius:50%;animation:emptySparkle 3s ease-in-out infinite}@keyframes emptySparkle{0%,100%,30%{opacity:0;transform:scale(.3)}45%,65%{opacity:1;transform:scale(1)}80%{opacity:0;transform:scale(.3)}}.search-empty-scene{animation:searchBookFloat 3s ease-in-out infinite}@keyframes searchBookFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(1deg)}}.search-empty-scene .empty-book-spine{background:var(--accent)}.search-empty-scene .empty-book-front{background:linear-gradient(135deg,#fff0eb 0,#fff 100%);border:2px solid var(--accent)}.tag-empty-scene{animation:tagBookFloat 3.5s ease-in-out infinite}@keyframes tagBookFloat{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(-1deg)}}.tag-empty-scene .empty-book-spine{background:#f59e0b}.tag-empty-scene .empty-book-front{background:linear-gradient(135deg,#fef3c7 0,#fff 100%);border:2px solid #f59e0b}.tag-empty-label{position:absolute;top:10px;right:-24px;z-index:2;animation:tagLabelDangle 3.5s ease-in-out infinite;transform-origin:top left}@keyframes tagLabelDangle{0%,100%{transform:rotate(-5deg) translateY(0)}30%{transform:rotate(3deg) translateY(-6px)}70%{transform:rotate(-2deg) translateY(-3px)}}.tag-empty-label-body{background:var(--accent);color:#fff;font-size:9px;font-weight:700;padding:5px 10px 5px 14px;border-radius:0 4px 4px 0;position:relative;white-space:nowrap;box-shadow:2px 2px 6px rgba(0,0,0,.1)}.tag-empty-label-body::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.tag-empty-label-sm{position:absolute;bottom:20px;left:-16px;z-index:2;animation:tagLabelDangle 3.5s ease-in-out 1s infinite;transform-origin:top right}.tag-empty-label-sm .tag-empty-label-body{background:#60a5fa;font-size:8px;padding:4px 8px 4px 12px}.tag-empty-label-sm .tag-empty-label-body::before{width:6px;height:6px}.tag-empty-string{position:absolute;top:10px;right:-6px;width:20px;height:1px;background:var(--accent);opacity:.4;transform:rotate(15deg)}.scrap-empty-scene{animation:scrapBookFloat 3s ease-in-out infinite}@keyframes scrapBookFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(0)}}.scrap-empty-scene .empty-book-spine{background:#7c3aed}.scrap-empty-scene .empty-book-front{background:linear-gradient(135deg,#f0ebff 0,#fff 100%);border:2px solid #7c3aed}.scrap-empty-ribbon{position:absolute;top:-18px;right:18px;z-index:2;width:16px;height:36px;animation:scrapRibbonPeek 3s ease-in-out infinite}@keyframes scrapRibbonPeek{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.scrap-empty-ribbon-body{width:100%;height:100%;background:var(--accent);border-radius:2px 2px 0 0;position:relative;box-shadow:1px 1px 4px rgba(0,0,0,.1)}.scrap-empty-ribbon-body::after{content:'';position:absolute;bottom:0;left:0;right:0;border-left:8px solid var(--accent);border-right:8px solid var(--accent);border-bottom:6px solid transparent}.scrap-empty-ribbon2{position:absolute;top:-12px;right:30px;z-index:1;width:10px;height:26px;animation:scrapRibbonPeek 3s ease-in-out .5s infinite}.scrap-empty-ribbon2 .scrap-empty-ribbon-body{background:#f59e0b;opacity:.7}.scrap-empty-ribbon2 .scrap-empty-ribbon-body::after{border-left-color:#f59e0b;border-right-color:#f59e0b}.recent-books-page{padding:32px 0}.recent-books-page .section-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.recent-books-header{margin-bottom:20px}.recent-books-title{font-size:1.25rem;font-weight:700}.recent-books-count{font-size:.8125rem;color:var(--text-caption);margin-top:2px}.sr-grid-card-sk{border-radius:var(--radius-sm);height:280px}@media (max-width:768px){.sr-grid-card-sk{height:220px}}.recent-empty{text-align:center;padding:48px 20px}.recent-empty-book{display:inline-block;margin-bottom:24px;animation:recentBookFloat 3s ease-in-out infinite}@keyframes recentBookFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(0)}}.recent-empty-cover{position:relative;width:90px;height:120px;display:inline-block}.recent-empty-spine{position:absolute;left:0;top:0;bottom:0;width:10px;background:var(--accent);border-radius:3px 0 0 3px;box-shadow:inset -2px 0 4px rgba(0,0,0,.15)}.recent-empty-front{position:absolute;left:8px;top:0;right:0;bottom:0;background:linear-gradient(135deg,#f0ebff 0,#fff 100%);border:2px solid var(--accent);border-radius:0 6px 6px 0;display:flex;align-items:center;justify-content:center;transform:rotateY(-8deg);transform-origin:left center;box-shadow:4px 4px 12px rgba(0,0,0,.1)}.recent-empty-front svg{color:var(--accent)}.recent-empty-shadow{width:70px;height:10px;margin:6px auto 0;background:radial-gradient(ellipse,rgba(0,0,0,.08) 0,transparent 70%);animation:recentShadowPulse 3s ease-in-out infinite}@keyframes recentShadowPulse{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.85);opacity:.6}}.recent-empty-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.recent-empty-hint{font-size:.8125rem;color:var(--text-caption);line-height:1.7}.tags-page{padding:32px 0}.tags-page .section-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.tags-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.tags-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-secondary);transition:all var(--transition);flex-shrink:0}.tags-back:hover{background:var(--border-light)}.tags-title{font-size:1.25rem;font-weight:700}.tags-count{font-size:.8125rem;color:var(--text-caption);margin-top:2px}.tags-landing{text-align:center;padding:40px 0 20px}.tags-landing-icon{margin-bottom:16px}.tags-landing-title{font-size:1.375rem;font-weight:700;margin-bottom:8px}.tags-landing-subtitle{font-size:.875rem;color:var(--text-secondary);margin-bottom:28px}.tags-search-container{max-width:520px;margin:0 auto}.tags-search-form .search-input{padding-left:22px}.tags-search-form{width:100%}.tags-search-form .search-input-wrapper{width:100%}.load-more-container{text-align:center;margin-top:24px}.book-detail{padding:24px 20px 48px}.book-detail-inner{max-width:var(--max-width);margin:0 auto}.book-detail-layout{display:flex;gap:36px;align-items:flex-start}.book-detail-left{flex-shrink:0;width:260px;position:sticky;top:80px}.book-detail-right{flex:1;min-width:0}.book-detail-cover{margin-bottom:16px;min-height:280px;background:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:min-height .4s ease-out}.book-detail-cover .cover-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.12;transition:opacity .3s ease}.book-detail-cover .cover-watermark img{width:40px;height:40px;object-fit:contain}.book-cover-img{width:100%;border-radius:8px;box-shadow:var(--shadow-lg);position:relative;z-index:1}.book-detail-cover.loaded{min-height:0;background:0 0}.book-detail-cover.loaded .cover-watermark{opacity:0;pointer-events:none}.book-cover-placeholder{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:8px;color:var(--text-caption)}.book-detail-title{font-size:1.375rem;font-weight:700;line-height:1.35;margin-bottom:10px}.book-detail-pub{font-size:.8125rem;color:var(--text-tertiary);line-height:1.6;margin-bottom:12px}.badge-adult{display:inline-block;padding:2px 8px;font-size:.6875rem;font-weight:600;color:#fff;background:#ff9480;border-radius:var(--radius-full)}.badge-actions-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.book-actions-mobile{display:none}.book-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:.625rem;transition:all var(--transition);cursor:pointer;min-width:44px}@media (hover:hover){.action-btn:hover{color:var(--accent);background:var(--accent-light)}}.action-btn svg{flex-shrink:0}.coloring-btn{position:relative}.coloring-btn--loading{pointer-events:none}.coloring-btn--loading svg{display:none}.coloring-btn--loading::before{content:'';display:inline-block;width:18px;height:18px;box-sizing:border-box;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:coloring-btn-spin .7s linear infinite}@keyframes coloring-btn-spin{to{transform:rotate(360deg)}}.action-btn.liked{color:#ef4444}.action-btn.liked svg{fill:#EF4444;stroke:#EF4444}.like-btn{position:relative}.like-btn.pop svg{animation:likeHeartPop .45s cubic-bezier(.17,.89,.32,1.49)}@keyframes likeHeartPop{0%{transform:scale(1)}25%{transform:scale(.8)}50%{transform:scale(1.3)}75%{transform:scale(.95)}100%{transform:scale(1)}}.like-particle{position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:50%;pointer-events:none;animation:likeParticleFly .6s ease-out forwards}@keyframes likeParticleFly{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(var(--px),var(--py)) scale(0)}}.book-library-status{margin-top:12px}.library-status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;color:#fff;white-space:nowrap;flex-shrink:0}.library-status-badge.available{background:#22c55e}.library-status-badge.unavailable{background:#ef4444}.scrap-icon-btn.loan-unavailable,.scrap-loan-row.loan-unavailable .scrap-icon-btn{opacity:.4;cursor:not-allowed}.library-call-number{font-size:.75rem;color:var(--text-secondary);font-weight:500}.library-not-found{margin-top:16px;padding:10px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-tertiary);text-align:center}.book-fav-libraries{margin-bottom:16px}.fav-library-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.fav-library-btn:hover{border-color:var(--accent);color:var(--accent)}.fav-library-btn.disabled{opacity:.5;cursor:default}.fav-library-btn.disabled:hover{border-color:var(--border);color:var(--text-tertiary)}.purchase-fab{display:none}.purchase-panel-close{display:none}.purchase-panel-backdrop{display:none}.book-purchase-floating{margin-top:12px}.purchase-floating-inner{display:flex;flex-direction:column;gap:6px}.purchase-secondary-row{display:flex;flex-direction:column;gap:6px}.purchase-btn{display:flex;align-items:center;justify-content:center;padding:10px;text-align:center;text-decoration:none;font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition);cursor:pointer}.purchase-btn.coupang{flex:1;background:#e31837;color:#fff;border:none}.purchase-btn.coupang:hover{background:#c71530}.purchase-btn.secondary{width:100%;background:#fff;color:var(--text-secondary);border:1px solid var(--border)}.purchase-btn.secondary:hover{border-color:var(--accent);color:var(--accent)}.purchase-btn.primary-secondary{width:100%;background:#fff;color:#0078ff;border:1.5px solid #0078ff}.purchase-btn.primary-secondary:hover{background:#f0f7ff}.purchase-site{font-size:.85em;font-weight:500;opacity:.8}.purchase-primary-row{display:flex;gap:6px;align-items:stretch}.purchase-close-btn,.purchase-expand-btn{display:none}.purchase-expand-btn{width:auto;min-width:60px;flex-shrink:0;align-items:center;justify-content:center;background:#fff;border:1.5px solid #3b82f6;color:#3b82f6;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;padding:4px 12px;line-height:1.4;cursor:pointer;transition:all var(--transition)}.purchase-expand-btn:hover{background:#f0f7ff}.purchase-close-btn{width:44px;flex-shrink:0;align-items:center;justify-content:center;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:1.25rem;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition)}.purchase-close-btn:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.book-extra-section{margin-bottom:28px}.book-extra-label{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;margin-bottom:8px}.book-extra-badge{display:inline-block;padding:2px 8px;font-size:.6875rem;font-weight:600;color:#fff;border-radius:var(--radius-full)}.book-extra-badge.review{background:var(--accent)}.book-extra-badge.desc{background:#d4849a}.book-extra-badge.letter{background:#b5744a}.book-extra-content{font-size:.875rem;line-height:1.8;color:var(--text-secondary);white-space:pre-wrap}.book-extra-tags{display:flex;flex-wrap:wrap;gap:6px}.keyword-tag{display:inline-block;padding:4px 10px;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition)}.keyword-tag.emotion{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.keyword-tag.emotion:hover{background:#fecaca}.keyword-tag.content{background:#dbeafe;border:1px solid #bfdbfe;color:#1d4ed8}.keyword-tag.content:hover{background:#bfdbfe}.book-discussion-section{position:relative;margin-top:36px;padding:26px 24px 22px;background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 6%,#fff) 0,#fff 70%);border:1px solid color-mix(in oklab,var(--accent) 10%,var(--border-light));border-radius:var(--radius-lg);overflow:hidden}@media (max-width:640px){.book-discussion-section{padding:20px 18px 18px;margin-top:28px}}.book-discussion-header{margin-bottom:14px}.book-discussion-section .section-title-icon{font-size:1rem;letter-spacing:-.01em;margin-bottom:4px}.book-discussion-section .section-title-icon svg{color:var(--accent)}.book-discussion-subtitle{font-size:.75rem;color:var(--text-tertiary);line-height:1.5;margin:0;padding-left:26px}.discussion-count{display:inline-flex;align-items:center;height:18px;padding:0 8px;margin-left:6px;background:var(--accent-light);color:var(--accent);font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.discussion-count:empty{display:none}.discussion-comments{margin-top:10px;padding:10px 0 0 12px;border-left:2px solid var(--accent-light)}.discussion-comment{padding:10px 12px;margin-bottom:6px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.discussion-comment-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.discussion-comment-author{font-size:.75rem;font-weight:600;color:var(--text-primary);display:inline-flex;align-items:center;gap:6px}.discussion-comment-time{font-size:.625rem;color:var(--text-caption)}.discussion-comment-text{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:6px}.discussion-comment-actions{display:flex;align-items:center;gap:12px}.discussion-comment-action{font-size:.6875rem;color:var(--text-caption);cursor:pointer;transition:color var(--transition)}.discussion-comment-action:hover{color:var(--accent)}.discussion-comment-action.like-pop{animation:likePop .4s ease-out}@keyframes likePop{0%{transform:scale(1)}30%{transform:scale(1.4)}60%{transform:scale(.9)}100%{transform:scale(1)}}.disc-deleting{opacity:.4;pointer-events:none;transition:opacity .3s ease}.disc-deleted-item{opacity:.6;transition:opacity .3s ease}.disc-actions-right{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.disc-action-danger{color:var(--text-caption)}.disc-action-danger:hover{color:#e53935!important}.discussion-comment-empty{font-size:.8125rem;color:var(--text-caption);padding:12px;text-align:center}.discussion-comment-toggle{cursor:pointer}.discussion-comment-toggle:hover{opacity:.7}.discussion-like-btn{cursor:pointer}.discussion-like-btn:hover{opacity:.7}.discussion-replies{margin:6px 0 0 12px;padding-left:10px;border-left:2px solid var(--border-light)}@media (max-width:768px){.discussion-replies{margin-left:6px;padding-left:8px}}.discussion-reply{padding:8px 10px;margin-bottom:4px;background:#fff;border-radius:var(--radius-xs)}.discussion-reply .discussion-comment-author{font-size:.6875rem}.discussion-reply .discussion-comment-text{font-size:.75rem;margin-bottom:0}.discussion-reply-input{display:flex;align-items:flex-end;gap:6px;margin-top:6px;flex-wrap:wrap}.discussion-reply-input .discussion-reply-author{align-self:center}.discussion-reply-author{font-size:.6875rem;font-weight:600;color:var(--text-primary);flex-shrink:0}.discussion-comment-write-wrap{margin-top:10px}.discussion-comment-write-wrap .discussion-write-author{margin-bottom:4px}.discussion-comment-write{display:flex;gap:6px;align-items:flex-end}.discussion-comment-input{flex:1;padding:8px 12px;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;min-width:0;font-family:inherit;line-height:1.5;resize:vertical}.discussion-comment-input:focus{border-color:var(--accent);outline:0}.discussion-comment-submit{padding:8px 18px;min-height:34px;font-size:.75rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition),transform 80ms ease,box-shadow var(--transition);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none}.discussion-comment-submit:hover{background:var(--accent-hover)}.discussion-comment-submit:active:not(:disabled){transform:scale(.96);background:var(--accent-hover)}.discussion-comment-submit:focus-visible{outline:0;box-shadow:0 0 0 3px var(--accent-light)}.discussion-comment-submit[disabled]:not(.btn-loading){background:var(--border);color:var(--text-tertiary);cursor:not-allowed}.discussion-comment-submit.btn-loading,.discussion-write-submit.btn-loading{pointer-events:none;position:relative;color:transparent;background:var(--accent-hover)}.discussion-comment-submit.btn-loading::after,.discussion-write-submit.btn-loading::after{content:'';position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media (max-width:640px){.discussion-comment-submit{padding:10px 20px;min-height:40px;font-size:.8125rem}}.discussion-write-placeholder{margin-bottom:14px;padding:14px 14px 12px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:0 1px 2px rgba(0,0,0,.025);transition:border-color var(--transition),box-shadow var(--transition)}.discussion-write-placeholder:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.discussion-write-author{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.discussion-write-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:8px}.discussion-write-count{font-size:.6875rem;color:var(--text-caption)}.discussion-placeholder-input{width:100%;padding:0;font-size:.875rem;border:none;border-radius:0;background:0 0;color:var(--text-primary);outline:0;resize:vertical;font-family:inherit;line-height:1.7}.discussion-placeholder-input::placeholder{color:var(--text-tertiary)}.discussion-placeholder-input:focus{border:none;background:0 0;box-shadow:none}#discussionList{display:flex;flex-direction:column;gap:8px}.discussion-item{padding:14px 16px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:0 1px 2px rgba(0,0,0,.025);transition:box-shadow var(--transition),border-color var(--transition),transform var(--transition)}.discussion-item:hover{box-shadow:0 4px 14px rgba(0,0,0,.06);border-color:color-mix(in oklab,var(--accent) 14%,var(--border-light))}.discussion-item-author{font-size:.8125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.discussion-item-author .discussion-portal-badge.inline{align-self:center;margin-top:0;max-width:200px}.discussion-item-content{font-size:.8125rem;color:var(--text-secondary);line-height:1.75;margin-top:6px}.discussion-item-meta{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:.6875rem;color:var(--text-caption)}.discussion-item-meta .discussion-action-more{margin-left:auto}.discussion-empty{text-align:center;padding:28px 20px;color:var(--text-caption);font-size:.8125rem;background:#fff;border:1px dashed color-mix(in oklab,var(--accent) 18%,var(--border));border-radius:var(--radius-md)}.similar-login-prompt{position:relative}.similar-login-prompt .similar-books-group{pointer-events:none;user-select:none;filter:blur(6px);-webkit-filter:blur(6px);opacity:.5}.similar-login-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:2}.similar-login-text{font-size:.875rem;font-weight:500;color:var(--text-primary);line-height:1.7;margin-bottom:16px}.similar-login-btn{display:inline-block;padding:10px 32px;font-size:.8125rem;font-weight:600;background:var(--accent);color:#fff;border-radius:var(--radius-full);text-decoration:none;transition:opacity .15s;box-shadow:0 2px 8px rgba(0,0,0,.1)}.similar-login-btn:hover{opacity:.9}.similar-books-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-light);overflow:hidden}.book-carousel.similar-carousel .similar-skeleton{width:130px}.book-carousel.similar-carousel .similar-skeleton .book-card-image{width:130px;height:170px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.book-carousel.similar-carousel .similar-skeleton .book-card-image::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.4) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.similar-books-group{margin-bottom:24px}.similar-books-group:last-child{margin-bottom:0}.book-carousel.similar-carousel{gap:16px;width:0;min-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:8px 0 12px}.book-carousel.similar-carousel::-webkit-scrollbar{display:none}.book-carousel.similar-carousel .book-card{flex-shrink:0;width:auto}.book-carousel.similar-carousel .book-card-image{min-width:130px;width:auto;height:170px;transform:none;transform-origin:center;box-shadow:var(--shadow-book);transition:min-width .3s ease,width .3s ease}.book-carousel.similar-carousel .book-card-image img{width:auto;height:100%;object-fit:contain;display:block}.book-carousel.similar-carousel .book-card-image.loaded{min-width:0}.book-carousel.similar-carousel .book-card-image:hover{transform:none;box-shadow:0 4px 10px rgba(0,0,0,.15)}.book-carousel.similar-carousel .book-card-info{max-width:120px}.similar-books-group .carousel-wrapper{overflow:hidden}.similar-books-group .carousel-wrapper::after,.similar-books-group .carousel-wrapper::before{display:none}.similar-browse-all{text-align:center;padding:24px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.similar-browse-all-inline{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:120px;height:170px;background:var(--bg-tertiary);border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.similar-browse-all-inline:hover{border-color:var(--accent);background:rgba(var(--accent-rgb,79,70,229),.04)}.similar-browse-all-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;border:none;background:0 0;cursor:pointer;color:var(--text-secondary);font-size:.6875rem;font-weight:500;line-height:1.4;text-align:center}.similar-browse-all-btn::before{content:'+';display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--border-light);font-size:1rem;font-weight:300;color:var(--text-caption);transition:background var(--transition),color var(--transition)}.similar-browse-all-inline:hover .similar-browse-all-btn::before{background:var(--accent);color:#fff}.similar-browse-all-inline:hover .similar-browse-all-btn{color:var(--accent)}.similar-browse-all-btn:disabled{pointer-events:none}.similar-browse-all-btn:disabled::before{content:''}.similar-browse-spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.sim-feedback{margin-top:16px;padding:16px 0 0;border-top:1px solid var(--border-light);text-align:center}.sim-feedback-ask{font-size:.75rem;color:var(--text-caption);margin-bottom:10px}.sim-feedback-stars{display:inline-flex;gap:4px}.sim-star{font-size:1.5rem;color:var(--border);cursor:pointer;transition:color .15s,transform .15s;user-select:none}.sim-star.active,.sim-star:hover{color:#ffba08}.sim-star.pop{animation:starPop .35s ease-out}@keyframes starPop{0%{transform:scale(1)}40%{transform:scale(1.4) rotate(-8deg)}70%{transform:scale(.9) rotate(4deg)}100%{transform:scale(1) rotate(0)}}.sim-feedback-reasons{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.sim-feedback-reasons.slide-in{animation:slideInUp .3s ease-out}@keyframes slideInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sim-reason-item{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:.6875rem;border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;transition:all .15s;color:var(--text-secondary)}.sim-reason-item:hover{border-color:var(--accent);color:var(--accent)}.sim-reason-item input{display:none}.sim-reason-item:has(input:checked){background:var(--accent);color:#fff;border-color:var(--accent)}.sim-feedback-submit{margin-top:12px;padding:8px 28px;font-size:.75rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;transition:opacity .15s}.sim-feedback-submit:hover{opacity:.9}.sim-feedback-submit:disabled{opacity:.4;cursor:default}.sim-feedback-done{font-size:.75rem;color:var(--text-caption);padding:12px 0;text-align:center}.sim-feedback-thankyou{animation:fadeInScale .4s ease-out}@keyframes fadeInScale{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.admin-index-page{padding:40px 0 60px}.admin-index-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.admin-index-title{font-size:1.375rem;font-weight:700;margin-bottom:28px}.admin-menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.admin-menu-card{display:block;padding:20px;text-decoration:none;border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;transition:all var(--transition)}.admin-menu-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.admin-menu-icon{color:var(--accent);margin-bottom:12px}.admin-menu-card h3{font-size:.875rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.admin-menu-card p{font-size:.75rem;color:var(--text-caption);line-height:1.4}@media (max-width:768px){.admin-menu-grid{grid-template-columns:1fr}}.admin-page{padding:32px 0 60px}.admin-page-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.admin-page-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.admin-page-title{font-size:1.25rem;font-weight:700}.admin-page-desc{font-size:.8125rem;color:var(--text-caption);margin-bottom:16px}.admin-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border-light);padding-bottom:0}.admin-tab{padding:8px 16px;font-size:.8125rem;font-weight:500;color:var(--text-tertiary);text-decoration:none;cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition);background:0 0;border-top:none;border-left:none;border-right:none}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.admin-tab:hover:not(.active){color:var(--text-secondary)}.admin-card-list{display:flex;flex-direction:column;gap:10px}.admin-card{padding:16px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff}.admin-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.admin-card-title{font-size:.875rem;font-weight:600}.admin-status-badge{padding:2px 8px;font-size:.625rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.admin-status-badge.pending{background:#fef3c7;color:#92400e}.admin-status-badge.approved{background:#d1fae5;color:#065f46}.admin-status-badge.rejected{background:#fee2e2;color:#991b1b}.admin-card-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.6875rem;color:var(--text-caption);margin-bottom:6px}.admin-card-meta-text{font-size:.6875rem;color:var(--text-caption)}.admin-card-detail{font-size:.75rem;color:var(--text-secondary);margin-top:6px}.admin-card-actions{display:flex;gap:6px;margin-top:10px}.admin-action-btn{padding:6px 14px;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.admin-action-btn.approve{background:var(--accent-light,#fff0eb);color:var(--accent);border:1px solid var(--accent)}.admin-action-btn.approve:hover{background:var(--accent);color:#fff}.admin-action-btn.reject{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.admin-action-btn.reject:hover{background:#fecaca}.btn-loading{pointer-events:none;opacity:.6;position:relative;color:transparent!important}.btn-loading::after{content:'';position:absolute;top:50%;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid rgba(0,0,0,.15);border-top-color:var(--accent,#6b5ce7);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-reason-tag{display:inline-block;padding:2px 8px;font-size:.625rem;background:#fef3c7;color:#92400e;border-radius:var(--radius-full);margin-right:4px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.8125rem}.admin-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:.6875rem;color:var(--text-caption);background:var(--bg-tertiary);border-bottom:1px solid var(--border-light)}.admin-table td{padding:8px 12px;border-bottom:1px solid var(--border-light);color:var(--text-secondary)}.admin-table-url{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.admin-date-range{display:flex;align-items:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}.admin-date-input{padding:8px 12px;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-filter-row{margin-bottom:16px;font-size:.8125rem;color:var(--text-secondary)}.admin-filter-row input{accent-color:var(--accent)}.admin-loading{padding:32px;text-align:center}.admin-section{margin-top:24px;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm)}.admin-section-title{font-size:.8125rem;font-weight:600;color:#92400e;margin-bottom:12px}.admin-tools-section{margin-top:28px;padding-top:20px;border-top:1px dashed var(--border-light)}.admin-tools-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.admin-tools-label{display:flex;align-items:center;gap:5px;font-size:.6875rem;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.03em}.admin-tools-label svg{color:#b45309}.admin-tools-btns{display:flex;gap:6px;flex-wrap:wrap}.admin-tool-btn{padding:5px 12px;font-size:.6875rem;font-weight:600;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-full);cursor:pointer;transition:all .15s}.admin-tool-btn:hover{background:#fef3c7;border-color:#fbbf24}.admin-tools-panel{margin-top:12px;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm)}.regen-result{font-size:.8125rem;line-height:1.75;color:var(--text-body)}.regen-result-label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:.625rem;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.regen-result-hint{font-weight:500;text-transform:none;letter-spacing:0;color:#b45309;opacity:.85}.regen-result-hook{font-weight:700;color:var(--text-heading);margin-bottom:6px}.regen-result-body{white-space:normal}.regen-result-q{margin-top:10px;padding-top:10px;border-top:1px dashed #fde68a;color:#78350f}.sns-dialog{background:#fff;border-radius:var(--radius-md);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2)}.sns-dialog-body{padding:16px 20px}.sns-image-preview{text-align:center;margin-bottom:12px}.sns-image-preview img{max-height:200px;border-radius:var(--radius-sm)}.sns-no-image{padding:40px;color:var(--text-caption);font-size:.8125rem}.sns-field{margin-bottom:10px}.sns-result-item{margin-top:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.sns-result-header{font-size:.6875rem;font-weight:600;color:var(--accent);margin-bottom:6px}.sns-result-text{font-size:.8125rem;color:var(--text-secondary);line-height:1.7;margin-bottom:8px}.image-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.85);align-items:center;justify-content:center;cursor:pointer}.image-overlay.open{display:flex}.image-overlay-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;transition:background .2s}.image-overlay-close:hover{background:rgba(255,255,255,.3)}.image-overlay-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px;box-shadow:0 8px 32px rgba(0,0,0,.4)}.book-detail-cover{cursor:pointer}.puzzle-book-overlay{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.puzzle-book-overlay-content{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:85vh;overflow:hidden;position:relative;box-shadow:0 16px 48px rgba(0,0,0,.3);display:flex;flex-direction:column}.puzzle-book-overlay-x{position:absolute;top:10px;right:12px;z-index:2;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.4);border:none;color:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.puzzle-book-overlay-x:hover{background:rgba(0,0,0,.6)}.puzzle-book-overlay-actions{display:flex;gap:8px;align-items:stretch;flex-shrink:0;padding:16px 20px;border-top:1px solid var(--border-light);background:#fff;border-radius:0 0 16px 16px}.puzzle-book-overlay-close-btn{width:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:1.25rem;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition)}.puzzle-book-overlay-close-btn:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.puzzle-book-overlay-loading{padding:60px;display:flex;align-items:center;justify-content:center}.puzzle-book-overlay-body{padding:0;overflow-y:auto;flex:1;min-height:0}.puzzle-book-overlay-cover{width:100%;overflow:hidden;border-radius:16px 16px 0 0;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.puzzle-book-overlay-cover img{width:100%;height:auto;display:block}.puzzle-book-overlay-info{padding:20px;padding-bottom:0}.puzzle-book-overlay-title{font-size:1.125rem;font-weight:700;line-height:1.4;margin-bottom:6px}.puzzle-book-overlay-meta{font-size:.75rem;color:var(--text-caption);margin-bottom:16px;line-height:1.5}.puzzle-book-overlay-section{margin-bottom:14px}.puzzle-book-overlay-badge{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:700;color:#fff;background:#78909c;border-radius:var(--radius-full);margin-bottom:6px}.puzzle-book-overlay-badge.accent{background:var(--accent)}.puzzle-book-overlay-section p{font-size:.8125rem;color:var(--text-secondary);line-height:1.7;white-space:pre-wrap}.puzzle-book-overlay-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}.puzzle-book-overlay-tag{padding:3px 9px;font-size:.6875rem;font-weight:500;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-full)}.puzzle-book-overlay-detail-btn{display:block;flex:1;padding:12px;text-align:center;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;border-radius:var(--radius-sm);text-decoration:none;transition:background var(--transition)}.puzzle-book-overlay-detail-btn:hover{opacity:.9}.puzzle-book-overlay-detail-btn.disabled{background:var(--bg-tertiary);color:var(--text-caption);cursor:default;border:none}.puzzle-book-overlay-detail-btn.disabled:hover{opacity:1}.puzzle-book-overlay-actions.three-btn{display:flex;gap:6px}.puzzle-book-overlay-btn{flex:1;padding:13px 10px;text-align:center;font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .15s;text-decoration:none;display:flex;align-items:center;justify-content:center}.puzzle-book-overlay-btn.primary{background:var(--accent);color:#fff}.puzzle-book-overlay-btn.primary:hover{opacity:.9}.puzzle-book-overlay-btn.primary.disabled{background:var(--bg-tertiary);color:var(--text-caption);cursor:default}.puzzle-book-overlay-btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.puzzle-book-overlay-btn.secondary:hover{background:var(--border-light)}.puzzle-book-overlay-btn.close{background:0 0;color:var(--text-caption);flex:0 0 auto;padding:11px 14px}.puzzle-book-overlay-btn.close:hover{color:var(--text-secondary)}.letter-login-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.4);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease}.letter-login-dialog{background:#fff;border-radius:16px;padding:32px 28px;text-align:center;max-width:300px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.12);position:relative}.letter-login-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border:none;background:0 0;font-size:1.25rem;color:var(--text-caption);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center}.letter-login-close:hover{background:var(--bg-tertiary)}.letter-login-text{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin-bottom:20px}.letter-login-btn{display:inline-block;padding:10px 32px;font-size:.8125rem;font-weight:600;background:var(--accent);color:#fff;border-radius:8px;text-decoration:none;transition:opacity .15s}.letter-login-btn:hover{opacity:.9}.puzzle-book-extra{margin-bottom:16px}.puzzle-book-extra-loading{padding:8px 0}.puzzle-book-extra-section{margin-bottom:14px}.puzzle-book-extra-section p{font-size:.8125rem;color:var(--text-secondary);line-height:1.7;white-space:pre-wrap;margin-top:6px}.puzzle-book-disc{padding:10px 12px;margin-top:6px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.puzzle-book-disc-content{font-size:.8125rem;color:var(--text-primary);line-height:1.6;margin:0 0 4px}.puzzle-book-disc-meta{font-size:.6875rem;color:var(--text-caption)}.puzzle-login-prompt{position:fixed;inset:0;z-index:100003;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:24px;animation:fadeIn .3s ease}.puzzle-login-prompt-inner{background:#fff;border-radius:var(--radius-lg);box-shadow:0 16px 48px rgba(0,0,0,.25);padding:28px 24px 22px;text-align:center;max-width:320px;width:100%}.puzzle-login-prompt-icon{font-size:36px;margin-bottom:12px}.puzzle-login-prompt-inner p{font-size:.875rem;font-weight:600;color:#1d1d1f;margin-bottom:16px;line-height:1.5}.puzzle-login-prompt-actions{display:flex;gap:8px}.puzzle-login-prompt-btn{flex:1;padding:11px;font-size:.8125rem;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;text-align:center;transition:opacity .15s}.puzzle-login-prompt-btn.primary{background:var(--accent);color:#fff}.puzzle-login-prompt-btn.primary:hover{opacity:.9}.puzzle-login-prompt-btn.secondary{background:#f3f4f6;color:#6b7280}.puzzle-login-prompt-btn.secondary:hover{background:#e5e7eb}.puzzle-search-banner{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:rgba(255,255,255,.95);backdrop-filter:blur(4px);font-size:.8125rem;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.puzzle-search-banner-icon{width:20px;height:20px;animation:thumbLogoPulse 1.5s ease-in-out infinite}.puzzle-search-banner-text{display:inline-block}.puzzle-search-banner.complete{background:var(--accent);color:#fff;cursor:pointer;border-bottom:none;box-shadow:0 4px 12px rgba(0,0,0,.12);animation:bannerShowIn .35s cubic-bezier(.2,.9,.3,1.2),bannerAttention 1.6s ease-in-out 2 .4s;transition:opacity .15s,transform .15s}.puzzle-search-banner.complete:hover{opacity:.92;transform:translateY(1px)}.puzzle-search-banner.complete .puzzle-search-banner-icon{filter:brightness(0) invert(1);animation:none}.puzzle-search-banner-arrow{margin-left:4px;font-size:1.125rem;font-weight:700;opacity:.85;line-height:1}@keyframes bannerShowIn{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bannerAttention{0%,100%{box-shadow:0 4px 12px rgba(0,0,0,.12)}50%{box-shadow:0 4px 20px rgba(0,0,0,.25),0 0 0 4px rgba(255,255,255,.3)}}.scrap-loan-row{display:flex;align-items:center;gap:10px;margin-top:12px}.scrap-loan-content{flex:1;min-width:0}.scrap-loan-content .library-loan-box{margin-top:0}.scrap-loan-content .library-not-found{margin-top:0}.scrap-icon-btn.desktop-only{display:inline-flex}.scrap-icon-btn.mobile-only{display:none}@media (max-width:768px){.scrap-icon-btn.desktop-only{display:none!important}.scrap-icon-btn.mobile-only{display:inline-flex!important}}.scrap-icon-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:0 0;border:1.5px solid var(--border);color:var(--text-caption);cursor:pointer;transition:all .15s;text-decoration:none;position:relative;z-index:2}.scrap-icon-btn:hover{border-color:var(--accent);color:var(--accent)}.scrap-icon-btn.scrap-saving{pointer-events:none;animation:scrapPulse .6s ease-in-out infinite}@keyframes scrapPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.85);opacity:.5}}.scrap-icon-btn.scrap-pop{animation:scrapPop .4s ease}@keyframes scrapPop{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:scale(1)}}.scrap-icon-btn.scrapped{background:var(--accent);border-color:var(--accent);color:#fff}.scrap-icon-btn.scrapped svg{fill:#fff;stroke:#fff}.scrap-icon-btn.qr{border-color:var(--border-light)}.scrap-tooltip{position:absolute;bottom:calc(100% + 8px);right:-4px;background:var(--text-primary);color:#fff;font-size:.6875rem;font-weight:500;padding:5px 10px;border-radius:var(--radius-xs);white-space:nowrap;pointer-events:none;animation:scrapTooltipIn .3s ease both}.scrap-tooltip::after{content:'';position:absolute;top:100%;right:14px;border:5px solid transparent;border-top-color:var(--text-primary)}@keyframes scrapTooltipIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.scrap-qr-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .25s ease}.scrap-qr-dialog{border-radius:20px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.35);position:relative;max-width:320px;width:100%;animation:scrapQrIn .35s ease}@keyframes scrapQrIn{from{opacity:0;transform:scale(.9) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.scrap-qr-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(8px) brightness(.35);transform:scale(1.1)}.scrap-qr-close{position:absolute;top:12px;right:14px;z-index:3;background:rgba(255,255,255,.15);border:none;font-size:1.25rem;color:rgba(255,255,255,.8);cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s}.scrap-qr-close:hover{background:rgba(255,255,255,.3)}.scrap-qr-body{position:relative;z-index:2;padding:28px 24px 24px;text-align:center}.scrap-qr-anim{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;margin-bottom:14px;animation:scrapQrFloat 2s ease-in-out infinite}@keyframes scrapQrFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.08)}}.scrap-qr-canvas{display:flex;align-items:center;justify-content:center;margin-bottom:14px;min-height:200px}.scrap-qr-loading{display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.7);font-size:.75rem}.scrap-qr-indicator{width:36px;height:36px;object-fit:contain;animation:thumbLogoPulse 1.5s ease-in-out infinite}.scrap-qr-img{width:180px;height:180px;border-radius:14px;background:#fff;padding:10px;box-shadow:0 4px 16px rgba(0,0,0,.15)}.scrap-qr-book{font-size:.8125rem;color:rgba(255,255,255,.85);font-weight:600;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.scrap-qr-hint{font-size:.875rem;color:rgba(255,255,255,.8);font-weight:500;line-height:1.6;margin-bottom:8px}.scrap-qr-expire{font-size:.6875rem;color:rgba(255,255,255,.4)}.scrap-invalid-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .3s ease}.scrap-invalid-dialog{background:#fff;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.2);padding:36px 28px 28px;text-align:center;max-width:320px;width:100%;animation:scrapQrIn .3s ease}.scrap-invalid-icon{font-size:40px;margin-bottom:12px}.scrap-invalid-title{font-size:1.0625rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.scrap-invalid-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:20px}.scrap-invalid-btn{width:100%;padding:12px;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.scrap-invalid-btn:hover{opacity:.9}.library-loan-box{margin-top:16px;padding:6px 12px 6px 6px;border-radius:var(--radius-sm);border:1px solid;display:flex;align-items:center;gap:8px;height:36px;box-sizing:border-box}.library-loan-box.available-yes{background:#f0fdf4;border-color:#bbf7d0}.library-loan-box.available-no{background:#fef2f2;border-color:#fecaca}.library-loan-box.loading{background:var(--bg-tertiary);border-color:var(--border-light);justify-content:center}.library-loan-box.loading .spinner{width:14px;height:14px;border-width:2px}.library-loan-panel-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.library-loan-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:.8125rem}.library-loan-item:last-child{border-bottom:none}.library-loan-item-name{color:var(--text-secondary)}.coupang-notice{font-size:.5625rem;color:#bbb;text-align:center;margin-bottom:4px;line-height:1.4}.book-library-buttons{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.library-loan-panel{margin-top:4px;margin-bottom:24px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.library-loan-panel-content{font-size:.8125rem}.fav-loan-panel{padding-top:10px}.fav-loan-header{font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.fav-loan-dim{color:var(--text-caption)}.fav-loan-highlight{color:var(--accent);font-weight:700}.fav-loan-empty{font-size:.8125rem;color:var(--text-caption)}.fav-loan-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.fav-loan-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:.75rem;max-width:100%}.fav-loan-name{color:var(--text-primary);font-weight:500;overflow-wrap:anywhere}.fav-loan-badge{font-size:.625rem;font-weight:600;padding:2px 7px;border-radius:var(--radius-full);white-space:nowrap}.fav-loan-badge.loading{background:#f5f5f5;color:var(--text-caption)}.fav-loan-badge.available{background:#e8f5e9;color:#2e7d32}.fav-loan-badge.unavailable{background:#ffebee;color:#c62828}.fav-loan-badge.owned{background:#f3f0ff;color:var(--accent)}.fav-loan-badge.unknown{background:#f5f5f5;color:var(--text-caption)}.fav-loan-badge.not-owned{background:#f3f4f6;color:#6b7280}.lib-tabs{margin-bottom:16px}.lib-tabs-header{display:flex;gap:0;position:relative;z-index:1}.lib-tab-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;font-size:.75rem;font-weight:600;color:var(--text-secondary);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-full);cursor:pointer;transition:all .15s;margin-right:6px}.lib-tab-btn:hover{background:var(--bg-tertiary)}.lib-tabs.open .lib-tab-btn{border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin-bottom:-1px;position:relative}.lib-tab-btn.active{background:var(--bg-tertiary);color:var(--text-primary);border-bottom-color:var(--bg-tertiary);z-index:2}.lib-tabs.open .lib-tab-btn:not(.active){border-bottom-color:var(--border-light)}.lib-tab-btn.disabled{cursor:default;color:var(--text-caption);font-weight:400;opacity:.6}.lib-tab-btn.disabled:hover{background:#fff}.lib-tab-btn svg{flex-shrink:0}.lib-tab-btn:not(.disabled) svg:first-child{color:var(--accent)}.lib-tabs-body{padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:0 var(--radius-sm) var(--radius-sm) var(--radius-sm)}.lib-login-guide{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;text-align:center}.lib-login-guide p{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin:0}.lib-login-guide-btn{display:inline-block;padding:8px 20px;font-size:.8125rem;font-weight:600;background:var(--accent);color:#fff;border-radius:var(--radius-full);text-decoration:none;transition:opacity .15s}.lib-login-guide-btn:hover{opacity:.9}.fav-lib-card{margin-bottom:16px}.fav-lib-card-header{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:.75rem;font-weight:600;color:var(--text-secondary);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-full);cursor:pointer;transition:all .2s;text-align:left}.fav-lib-card-header:hover{background:var(--bg-tertiary)}.fav-lib-card.open .fav-lib-card-header{border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none;background:var(--bg-tertiary)}.fav-lib-card-header svg:first-child{color:#e57373;flex-shrink:0}.fav-lib-arrow{color:var(--text-caption);flex-shrink:0;transition:transform .2s}.fav-lib-card.open .fav-lib-arrow{transform:rotate(180deg)}.fav-lib-card-header.disabled{cursor:default;color:var(--text-caption);font-weight:400}.fav-lib-card-header.disabled svg{color:var(--text-caption)!important}.fav-lib-card-header.disabled:hover{background:#fff}.fav-lib-card-body{padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:0 var(--radius-sm) var(--radius-sm) var(--radius-sm)}@media (max-width:768px){.book-detail-layout{flex-direction:column;gap:20px}.book-detail-left{width:100%;position:static;display:flex;flex-direction:column;align-items:stretch}.book-detail-cover{width:100%}.book-detail-right{overflow-x:hidden;width:100%}.book-detail-title{font-size:1.125rem;text-align:left}.book-detail-pub{text-align:left}.badge-adult{width:auto}.book-detail-left .book-actions{display:none}.book-actions-mobile{display:flex!important;gap:2px;margin-left:auto;flex:1;min-width:0;flex-wrap:wrap;justify-content:flex-end}.book-actions-mobile .action-btn{min-width:34px;padding:6px 4px}.book-actions-mobile .action-btn svg{width:20px;height:20px}.book-actions-mobile .action-btn span{display:none}.book-detail-left .book-detail-cover{margin-bottom:6px}.purchase-fab{display:block;position:fixed;bottom:16px;right:16px;z-index:100;padding:0 8px 10px;border:none;background:0 0;cursor:pointer;transition:all .3s;opacity:0;transform:translateY(30px);pointer-events:none}.purchase-fab.visible{opacity:1;transform:translateY(0);pointer-events:auto}.purchase-fab:active{transform:scale(.92)}.purchase-fab.hidden{display:none}.purchase-fab-float{position:relative;display:inline-block;animation:fabFloat 2.5s ease-in-out infinite}.purchase-fab-shadow{display:block;margin:4px auto 0;width:32px;height:6px;background:radial-gradient(ellipse,rgba(0,0,0,.18) 0,transparent 70%);border-radius:50%;animation:fabShadow 2.5s ease-in-out infinite}@keyframes fabFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes fabShadow{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.7);opacity:.5}}.purchase-fab-book{display:block;position:relative;width:50px;border-radius:2px 4px 4px 2px;overflow:hidden;box-shadow:-1px 1px 4px rgba(0,0,0,.2)}.purchase-fab-book::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(90deg,rgba(0,0,0,.15),transparent);z-index:1}.purchase-fab-book img{width:100%;height:auto;display:block}.purchase-fab-tag{position:absolute;top:-4px;right:-14px;width:28px;height:16px;background:#fff8f0;color:#c96b4f;border-radius:2px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.15);transform-origin:left top;animation:fabTagSwing 3s ease-in-out infinite}.purchase-fab-tag-hole{position:absolute;top:2px;left:3px;width:4px;height:4px;border-radius:50%;border:1px solid #d4a07a}.purchase-fab-tag-string{position:absolute;top:4px;left:4px;width:8px;height:0;border-top:1px solid #c4a882;transform:rotate(35deg);transform-origin:left center}.purchase-fab-tag-price{font-size:.5rem;font-weight:700;letter-spacing:-.02em;margin-left:4px;white-space:nowrap}@keyframes fabTagSwing{0%,100%{transform:rotate(0)}25%{transform:rotate(5deg)}75%{transform:rotate(-4deg)}}.purchase-fab.visible{animation:fabBounceIn .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes fabBounceIn{0%{opacity:0;transform:translateY(30px) scale(.8)}100%{opacity:1;transform:translateY(0) scale(1)}}.purchase-panel-backdrop{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.3);animation:fadeIn .15s ease}.purchase-panel-backdrop.open{display:block}.book-purchase-floating{position:fixed;bottom:0;left:0;right:0;z-index:101;margin:0;background:#fff;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -2px 16px rgba(0,0,0,.12);border-radius:16px 16px 0 0;display:none;animation:purchaseSlideUp .2s ease}@keyframes purchaseSlideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.book-purchase-floating.open{display:block}.book-purchase-floating.hidden{display:none}.purchase-panel-close{position:fixed;right:16px;z-index:102;width:32px;height:32px;border-radius:50%;background:#fff;border:none;font-size:1.25rem;color:var(--text-secondary);cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15)}.purchase-panel-close:hover{background:#f5f5f5}.purchase-panel-close.open{display:flex}.purchase-floating-inner{flex-direction:column-reverse}.purchase-btn.coupang{font-size:.9375rem;font-weight:700;padding:13px 16px}.purchase-btn.primary-secondary{flex:1;font-size:.9375rem;font-weight:700;padding:13px 16px}.purchase-btn.secondary{border:1.5px solid #0078ff;color:#0078ff;padding:13px 16px}.purchase-secondary-row{display:none}.purchase-expand-btn{display:flex}.purchase-close-btn{display:none}.coupang-notice{display:block;font-size:.5rem;white-space:nowrap;margin-top:0;margin-bottom:0}.coupang-notice br{display:none}.book-purchase-floating.expanded .purchase-secondary-row{display:flex}.book-purchase-floating.expanded .purchase-expand-btn{display:none}.book-purchase-floating.expanded .purchase-close-btn{display:flex}}.terms-page{padding:48px 0 60px;background:var(--bg-primary)}.terms-inner{max-width:680px;margin:0 auto;padding:0 24px}.terms-header{text-align:center;margin-bottom:40px;padding-bottom:28px;border-bottom:1px solid var(--border-light)}.terms-title{font-size:1.375rem;font-weight:700;margin-bottom:10px;color:var(--text-primary);letter-spacing:-.02em}.terms-date{font-size:.75rem;color:var(--text-caption)}.terms-content{font-size:.875rem;line-height:1.85;color:var(--text-secondary)}.terms-content h2{font-size:.875rem;font-weight:700;color:var(--accent);margin:36px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border-light);letter-spacing:-.01em}.terms-content h2:first-child{margin-top:0}.terms-content p{margin-bottom:14px}.terms-content ol{padding-left:20px;margin-bottom:14px;list-style-type:decimal}.terms-content ul{padding-left:20px;margin-bottom:14px;list-style-type:disc}.terms-content li{margin-bottom:8px}.terms-content li strong{color:var(--text-primary);font-weight:600}.terms-content li p{margin:4px 0 0;font-size:.8125rem;color:var(--text-tertiary)}.terms-addendum{margin-top:40px;padding-top:20px;border-top:1px solid var(--border-light);font-size:.8125rem;color:var(--text-caption);text-align:center}@media (max-width:768px){.terms-inner{padding:0 16px}.terms-title{font-size:1.25rem}.terms-content h2{margin:28px 0 12px}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:32px 20px}.auth-container{max-width:360px;width:100%;text-align:center}.auth-header{margin-bottom:28px}.auth-title{font-size:1.375rem;font-weight:700}.auth-subtitle{font-size:.875rem;color:var(--text-secondary);margin-top:6px}.auth-buttons{display:flex;flex-direction:column;gap:10px}.auth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 18px;font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition);cursor:pointer;border:1px solid var(--border)}.auth-btn-kakao{background:#fee500;color:#191919;border-color:#fee500}.auth-btn-kakao:hover{background:#f5dc00}.auth-btn-google{background:#fff;color:var(--text-primary)}.auth-btn-google:hover{background:var(--bg-tertiary)}.auth-footer-text{font-size:.75rem;color:var(--text-caption);margin-top:20px}.auth-footer-text a{color:var(--accent)}.auth-loading{display:flex;justify-content:center;margin-top:24px}.spinner{width:28px;height:28px;border:2px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.auth-loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 24px}.auth-loading-anim{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%}.auth-loading-logo{width:48px;height:48px;object-fit:contain;animation:authLogoBreathe 2s ease-in-out infinite}.auth-loading-ring{position:absolute;inset:0;border:2.5px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.auth-loading-text{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0}.auth-loading-hint{font-size:.75rem;color:var(--text-caption);margin:0}@keyframes authLogoBreathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.7}}.signup-terms-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height) - 60px);padding:40px 20px}.signup-terms-container{max-width:420px;width:100%;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:36px 32px 28px}.signup-terms-header{text-align:center;margin-bottom:28px}.signup-terms-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--accent-light);box-shadow:0 6px 20px rgba(0,0,0,.06),0 2px 6px rgba(0,0,0,.04);margin-bottom:16px;overflow:hidden}.signup-terms-logo-img{width:100%;height:100%;object-fit:cover}.signup-terms-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:6px}.signup-terms-subtitle{font-size:.8125rem;color:var(--text-tertiary);line-height:1.5}.signup-agree-all{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;border-radius:var(--radius-md);background:var(--bg-tertiary);transition:background var(--transition);user-select:none}.signup-agree-all:hover{background:var(--border-light)}.signup-agree-all-text{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.signup-agree-divider{height:1px;background:var(--border-light);margin:12px 0}.signup-check{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border:2px solid var(--border);border-radius:6px;transition:all .2s ease;color:transparent}.checked .signup-check{background:var(--accent);border-color:var(--accent);color:#fff}.signup-agree-list{display:flex;flex-direction:column;gap:2px}.signup-agree-item{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition);user-select:none}.signup-agree-item:hover{background:var(--bg-tertiary)}.signup-agree-label{flex:1;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.signup-agree-label em{font-style:normal;font-weight:600;color:var(--accent)}.signup-agree-view{font-size:.6875rem;color:var(--text-caption);text-decoration:underline;text-underline-offset:2px;flex-shrink:0;padding:4px;transition:color var(--transition)}.signup-agree-view:hover{color:var(--accent)}.signup-terms-actions{margin-top:24px;display:flex;flex-direction:column;gap:8px}.signup-terms-submit{width:100%;padding:13px;font-size:.875rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.signup-terms-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(107,92,231,.3)}.signup-terms-submit:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.signup-terms-cancel{width:100%;padding:10px;font-size:.75rem;font-weight:500;color:var(--text-caption);background:0 0;border:none;cursor:pointer;transition:color var(--transition)}.signup-terms-cancel:hover{color:var(--text-secondary)}@media (max-width:768px){.signup-terms-page{padding:24px 16px;min-height:60vh}.signup-terms-container{padding:28px 20px 24px}.signup-terms-title{font-size:1.125rem}}.mypage-withdraw-area{margin-top:40px;padding-top:24px;border-top:1px solid var(--border-light);text-align:right}.withdraw-btn{font-size:.75rem;color:var(--text-caption);background:0 0;border:none;cursor:pointer;padding:8px 16px;transition:color var(--transition)}.withdraw-btn:hover{color:var(--text-secondary);text-decoration:underline}.withdraw-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px}.withdraw-dialog{max-width:380px;width:100%;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.withdraw-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.withdraw-dialog-header h3{font-size:1rem;font-weight:700;color:var(--text-primary)}.withdraw-close{font-size:1.5rem;color:var(--text-caption);background:0 0;border:none;cursor:pointer;line-height:1;padding:0}.withdraw-close:hover{color:var(--text-secondary)}.withdraw-body{padding:16px 24px 24px}.withdraw-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:8px}.withdraw-email-box{display:flex;align-items:center;gap:8px;padding:12px 14px;margin:16px 0;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-primary);font-weight:500}.withdraw-email-box svg{color:var(--text-caption);flex-shrink:0}.withdraw-send-btn{width:100%;padding:12px;font-size:.8125rem;font-weight:600;color:#fff;background:var(--text-secondary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.withdraw-send-btn:hover:not(:disabled){background:var(--text-primary)}.withdraw-send-btn:disabled{opacity:.4;cursor:not-allowed}.withdraw-timer{font-size:.75rem;color:var(--accent);text-align:center;margin-top:10px}.withdraw-code-inputs{display:flex;gap:8px;justify-content:center;margin:20px 0 12px}.withdraw-code-box{width:44px;height:52px;text-align:center;font-size:1.25rem;font-weight:700;border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--bg-primary);transition:border-color .2s ease;outline:0}.withdraw-code-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.withdraw-error{font-size:.75rem;color:#e53935;text-align:center;margin:8px 0}.withdraw-confirm-btn{width:100%;padding:12px;font-size:.8125rem;font-weight:600;color:#fff;background:#e53935;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;margin-top:8px}.withdraw-confirm-btn:hover:not(:disabled){background:#c62828}.withdraw-confirm-btn:disabled{opacity:.35;cursor:not-allowed}.withdraw-resend{display:block;width:100%;font-size:.6875rem;color:var(--text-caption);background:0 0;border:none;cursor:pointer;padding:12px 0 0;text-align:center;text-decoration:underline;text-underline-offset:2px}.withdraw-resend:hover{color:var(--text-secondary)}.withdraw-resend:disabled{opacity:.4;cursor:not-allowed}.withdraw-complete{text-align:center;padding:40px 24px 32px}.withdraw-complete-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#e8f5e9;color:#43a047;margin-bottom:16px}.withdraw-complete-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}@media (max-width:768px){.withdraw-dialog{max-width:100%;margin:0 4px}.withdraw-code-box{width:40px;height:48px;font-size:1.125rem}}.discussion-action-more{font-size:.875rem;color:var(--text-caption);padding:2px 6px;position:relative;border-radius:var(--radius-xs);border:1px solid var(--border-light);transition:all .15s;letter-spacing:1px}.discussion-action-more:hover{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-secondary)}.discussion-item-meta .discussion-action-more{margin-left:auto}.disc-popup-menu{position:absolute;bottom:calc(100% + 4px);right:0;z-index:10;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);overflow:hidden;min-width:110px;animation:discMenuFadeIn .12s ease}@keyframes discMenuFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.disc-popup-menu button{display:block;width:100%;padding:9px 14px;font-size:.75rem;font-weight:500;color:var(--text-secondary);text-align:left;border:none;background:0 0;cursor:pointer;transition:background .1s}.disc-popup-menu button:hover{background:var(--bg-tertiary)}.disc-popup-menu button.disc-menu-danger{color:#e53935}.disc-popup-menu button.disc-menu-danger:hover{background:#fff5f5}.disc-deleted{color:var(--text-caption);font-style:italic;font-size:.8125rem}.disc-edited{font-size:.6875rem;color:var(--text-caption);font-weight:400}.disc-edit-form{display:flex;flex-direction:column;gap:6px}.disc-edit-textarea{width:100%;padding:10px 12px;font-size:.8125rem;font-family:var(--font-family);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;min-height:80px;line-height:1.6;background:#fff}.disc-edit-textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.disc-edit-actions{display:flex;gap:6px;justify-content:flex-end}.report-hide-option{color:#e53935}.report-hide-option strong{color:#e53935}.error-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height) - 60px);padding:40px 20px;text-align:center}.error-page-inner{max-width:360px}.error-illustration{font-size:3rem;margin-bottom:16px}.error-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.error-message{font-size:.8125rem;color:var(--text-tertiary);line-height:1.6;margin-bottom:24px}.error-home-btn{display:inline-block;padding:10px 24px;font-size:.8125rem;font-weight:600;color:#fff;background:var(--accent);border-radius:var(--radius-full);text-decoration:none;transition:background .15s}.error-home-btn:hover{background:var(--accent-hover)}.sk-list{display:flex;flex-direction:column;gap:12px}.sk-list-card{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-light)}.sk-list-card:last-child{border-bottom:none}.sk-cover{flex-shrink:0;width:195px;aspect-ratio:3/4;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.sk-info{flex:1;display:flex;flex-direction:column;gap:10px;padding:6px 0}.sk-line{height:14px;border-radius:6px;background:var(--bg-tertiary)}@media (max-width:768px){.sk-cover{width:120px}.sk-line{height:12px}}.sk-line.w30{width:30%}.sk-line.w40{width:40%}.sk-line.w50{width:50%}.sk-line.w60{width:60%}.sk-line.w70{width:70%}.sk-line.w80{width:80%}.sk-group{margin-bottom:24px}.sk-group-title{width:140px;height:16px;border-radius:8px;margin-bottom:14px}.sk-grid{display:flex;gap:14px;overflow:hidden}.sk-grid-card{flex-shrink:0;width:280px;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden}.sk-grid-cover{width:100%;height:200px}.sk-grid-card .sk-line{margin:0 12px 6px}.sk-grid-card .sk-line:first-of-type{margin-top:12px}@media (max-width:768px){.sk-grid-card{width:220px}.sk-grid-cover{height:160px}}.shimmer{background:linear-gradient(90deg,var(--bg-tertiary) 25%,#eeeae5 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.bm-loader{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0}.bm-loader-logo-wrap{width:48px;height:48px;border-radius:50%;background:var(--accent-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.bm-loader-logo{width:100%;height:100%;object-fit:cover;animation:bmLoaderPulse 1.4s ease-in-out infinite}@keyframes bmLoaderPulse{0%,100%{opacity:.3}50%{opacity:1}}.bm-loader-page{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 24px}.bm-loader-page .bm-loader-logo-wrap{position:relative;width:56px;height:56px;border-radius:50%;background:#fff;overflow:visible}.bm-loader-page .bm-loader-logo{width:34px;height:34px;object-fit:contain;animation:authLogoBreathe 2s ease-in-out infinite}.bm-loader-page .bm-loader-logo-wrap::after{content:'';position:absolute;inset:0;border:2.5px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.bm-loader-text{font-size:.75rem;color:var(--text-caption)}.loading-overlay{position:fixed;inset:0;z-index:99999;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.loading-overlay-content{text-align:center}.loading-overlay-text{margin-top:12px;font-size:.8125rem;color:var(--text-secondary);font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}.mypage{padding:32px 20px}.mypage-inner{max-width:var(--max-width);margin:0 auto}.mypage-profile{display:flex;align-items:center;gap:16px}.mypage-avatar{width:72px;height:72px;border-radius:50%;overflow:visible;flex-shrink:0;background:var(--bg-tertiary);position:relative}.mypage-avatar img,.mypage-avatar-placeholder{border-radius:50%;overflow:hidden}.mypage-avatar img{width:100%;height:100%;object-fit:cover}.mypage-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:1.25rem;font-weight:700}.mypage-profile-info{flex:1;min-width:0}.mypage-name{font-size:1rem;font-weight:600}.mypage-email{font-size:.8125rem;color:var(--text-caption);margin-top:1px}.mypage-library-admin{padding-bottom:4px}.library-admin-grid{display:flex;gap:10px;flex-wrap:wrap}.library-admin-card{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff;text-decoration:none;transition:all var(--transition)}.library-admin-card:hover{border-color:var(--accent);color:var(--accent)}.library-admin-card svg{flex-shrink:0;color:var(--accent)}.mypage-discussion-book{display:inline-block;font-size:.6875rem;font-weight:600;color:var(--accent);margin-bottom:2px}.mypage-avatar-edit{position:absolute;bottom:0;right:0;width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}.mypage-favlib-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:.75rem;font-weight:500;background:#fff;color:var(--text-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition)}.mypage-favlib-chip:hover{border-color:#ef4444;color:#ef4444}.mypage-admin-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.mypage-favlib-section{margin-bottom:8px}.mypage-favlib-list{display:flex;gap:8px;flex-wrap:wrap}.mypage-favlib-item{display:inline-flex;align-items:center;padding:6px 14px;font-size:.75rem;font-weight:500;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-full);line-height:1.3}.mypage-favlib-item.is-gated{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.mypage-favlib-item.is-closed{color:var(--text-caption);text-decoration:line-through;text-decoration-color:rgba(0,0,0,0.25)}.mypage-favlib-item .favlib-flag{font-style:normal;font-size:.6875rem;font-weight:600;opacity:.85;margin-left:2px}.mypage-favlib-item.is-closed .favlib-flag{text-decoration:none;display:inline-block}.mypage-favlib-empty{text-align:center;padding:20px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.mypage-favlib-empty p{font-size:.8125rem;color:var(--text-tertiary);line-height:1.6;margin-bottom:12px}.mypage-favlib-add-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 18px;font-size:.75rem;font-weight:600;color:var(--accent);background:#fff;border:1px solid var(--accent);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition)}.mypage-favlib-add-btn:hover{background:var(--accent);color:#fff}.uploading{position:relative;pointer-events:none}.uploading::after{content:'';position:absolute;inset:0;z-index:5;background:rgba(255,255,255,.7) url('../images/bm-indicator.png') center/28px no-repeat;border-radius:inherit;overflow:hidden;animation:thumbLogoPulse 1.5s ease-in-out infinite}.mypage-avatar.uploading{overflow:hidden}.mypage-avatar.uploading .mypage-avatar-edit{display:none}.lib-admin-library-selector{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border-light)}.lib-admin-library-tab{padding:8px 16px;font-size:.8125rem;font-weight:500;border:1.5px solid var(--border);border-radius:var(--radius-full);background:#fff;color:var(--text-secondary);text-decoration:none;transition:all var(--transition)}.lib-admin-library-tab.active{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}.lib-admin-library-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}.lib-admin-current-library{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.lib-admin-portal-link{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;font-size:.75rem;font-weight:500;color:var(--accent);background:var(--accent-light,#fff0eb);border:1px solid var(--accent);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition);margin-bottom:20px}.lib-admin-portal-link:hover{background:var(--accent);color:#fff}.lib-admin-portal-link svg{flex-shrink:0}.lib-admin-members{display:flex;flex-direction:column;gap:8px}.lib-admin-member{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff}.lib-admin-member-found{border-color:var(--accent);background:var(--accent-light,#fff0eb)}.lib-admin-member-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary)}.lib-admin-member-avatar img{width:100%;height:100%;object-fit:cover}.lib-admin-member-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:.75rem;font-weight:700}.lib-admin-member-info{flex:1;min-width:0}.lib-admin-member-name{display:block;font-size:.8125rem;font-weight:600;color:var(--text-primary)}.lib-admin-member-email{display:block;font-size:.6875rem;color:var(--text-caption);margin-top:1px}.lib-admin-portal-link+.lib-admin-section{border-top:1px solid var(--border-light);padding-top:20px}.lib-admin-section{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border-light)}.lib-admin-section:last-child{border-bottom:none}.lib-admin-section-title{font-size:.9375rem;font-weight:700;margin-bottom:14px}.lib-admin-top{margin-bottom:20px}.lib-admin-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lib-admin-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:20px}.lib-admin-card--wide{grid-column:1/-1}.lib-admin-card-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-light)}.lib-admin-card-header svg{flex-shrink:0;color:var(--accent);opacity:.7}.lib-admin-card-header h2{font-size:.9375rem;font-weight:700;margin:0}.lib-admin-branding-grid{display:flex;gap:24px}.lib-admin-branding-images{flex-shrink:0;display:flex;gap:16px}.lib-admin-branding-settings{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.lib-admin-branding-field label{display:block;font-size:.75rem;font-weight:600;color:var(--text-caption);margin-bottom:6px}.lib-admin-setting-row{display:flex;align-items:center;gap:10px}.lib-admin-setting-row+.lib-admin-setting-row{margin-top:12px}.lib-admin-setting-label{font-size:.8125rem;color:var(--text-secondary)}.lib-se-section{margin-bottom:20px}.lib-se-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.lib-se-count{font-size:.75rem;color:var(--text-caption);margin-left:auto}.lib-se-list{display:flex;flex-direction:column;gap:6px}.se-section{margin-bottom:24px}.se-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.se-section-count{font-size:.75rem;color:var(--text-caption)}.se-list{display:flex;flex-direction:column;gap:6px}.se-section-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.se-section-tag.emotion{background:#fff0eb;color:var(--accent)}.se-section-tag.content{background:#eff6ff;color:#3b82f6}.se-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff}.se-item:focus-within{border-color:var(--accent)}.se-item-num{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;color:var(--text-caption);background:var(--bg-tertiary);border-radius:50%}.se-item input{flex:1;border:none;outline:0;font-size:.8125rem;color:var(--text-primary);background:0 0}.se-item input::placeholder{color:var(--text-caption)}.se-remove-btn{flex-shrink:0;background:0 0;border:none;color:var(--text-caption);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s}.se-remove-btn:hover{color:#ef4444;background:#fef2f2}.se-add-btn{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:6px 12px;font-size:.75rem;font-weight:500;color:var(--text-caption);border:1px dashed var(--border);border-radius:var(--radius-sm);background:0 0;cursor:pointer;transition:all .15s}.se-add-btn:hover{border-color:var(--accent);color:var(--accent)}.se-save-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 16px;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-light,#fff0eb);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.se-save-btn:hover{background:var(--accent);color:#fff}.se-save-btn.btn-loading{pointer-events:none;position:relative;color:transparent}.se-save-btn.btn-loading::after{content:'';position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid rgba(0,0,0,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.lib-admin-add-member{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light)}.lib-admin-lib-layout{display:flex;gap:20px}.lib-admin-lib-search{flex:1;min-width:0}.lib-admin-lib-search .favlib-results{max-height:400px}.lib-admin-lib-registered{width:280px;flex-shrink:0;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-tertiary);overflow:hidden}.lib-admin-lib-registered-header{padding:10px 14px;font-size:.75rem;font-weight:600;color:var(--text-caption);border-bottom:1px solid var(--border-light);background:#fff}.lib-admin-lib-registered-list{max-height:400px;overflow-y:auto;padding:4px}.lib-admin-lib-registered-list .favlib-item{border:none;border-bottom:1px solid var(--border-light);border-radius:0;padding:8px 10px}.lib-admin-lib-registered-list .favlib-item:last-child{border-bottom:none}@media (max-width:768px){.lib-admin-dashboard{grid-template-columns:1fr}.lib-admin-branding-grid{flex-direction:column}.lib-admin-lib-layout{flex-direction:column}.lib-admin-lib-registered{width:100%}}.lib-admin-images{display:flex;gap:24px;flex-wrap:wrap}.lib-admin-image-box{display:flex;flex-direction:column;gap:8px}.lib-admin-image-box label{font-size:.75rem;font-weight:600;color:var(--text-caption)}.lib-admin-image-preview{width:160px;height:80px;border:1px dashed var(--border);border-radius:var(--radius-sm);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);transition:border-color var(--transition)}.lib-admin-image-preview:hover{border-color:var(--accent)}.lib-admin-image-preview.favicon{width:80px;height:80px}.lib-admin-image-preview.og{width:152px;height:80px}.lib-admin-image-preview img{max-width:100%;max-height:100%;object-fit:contain}.lib-admin-image-empty{font-size:.6875rem;color:var(--text-caption)}.lib-admin-image-hint{font-size:.6875rem;color:var(--text-secondary);margin-top:4px}.lib-admin-image-edit{position:absolute;bottom:4px;right:4px;width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.2);opacity:0;transition:opacity .15s}.lib-admin-image-preview:hover .lib-admin-image-edit{opacity:1}.lib-admin-image-delete{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.5);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.lib-admin-image-delete:hover{background:#ef4444}.lib-admin-image-preview:hover .lib-admin-image-delete{opacity:1}.lib-admin-form-row{display:flex;gap:8px;align-items:center}.lib-admin-toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.lib-admin-toggle input{opacity:0;width:0;height:0}.lib-admin-toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:22px;cursor:pointer;transition:.2s}.lib-admin-toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.lib-admin-toggle input:checked+.lib-admin-toggle-slider{background:var(--accent)}.lib-admin-toggle input:checked+.lib-admin-toggle-slider::before{transform:translateX(18px)}.lib-admin-input{flex:1;padding:8px 12px;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0}.lib-admin-theme-options{display:flex;gap:8px;flex-wrap:wrap}.lib-admin-theme-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:.8125rem;font-weight:500;border:1.5px solid var(--border);border-radius:var(--radius-full);background:#fff;cursor:pointer;transition:all var(--transition)}.lib-admin-theme-btn.active{border-color:var(--accent);color:var(--accent);font-weight:600}.lib-admin-theme-dot{width:12px;height:12px;border-radius:50%}.lib-admin-theme-dot.warm{background:#d4764e}.lib-admin-theme-dot.clean{background:#3b82f6}.lib-admin-theme-dot.bold{background:#6b5ce7}.lib-admin-library-list{display:flex;flex-direction:column;gap:4px}.lib-admin-library-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:.8125rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff}.lib-admin-add-lib-btn{display:inline-block;padding:4px 12px;font-size:.75rem;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-full);background:#fff;cursor:pointer;margin:2px;transition:all var(--transition)}.lib-admin-add-lib-btn:hover{background:var(--accent-light)}.mypage-admin-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;padding:5px 14px;font-size:.6875rem;font-weight:600;color:#fff;background:#333;border-radius:var(--radius-full);text-decoration:none;text-align:center;transition:background var(--transition);margin-top:6px}.mypage-admin-btn.desktop-only{margin-top:0;margin-left:auto;flex-shrink:0}.mypage-admin-btn:hover{background:#555}.mypage-admin-btn.library{background:var(--accent)}.mypage-admin-btn.library:hover{opacity:.9}@media (max-width:768px){.mypage-admin-btn.desktop-only{display:none!important}.mypage-admin-btn.mobile-only{display:inline-flex!important}}@media (min-width:769px){.mypage-admin-btn.mobile-only{display:none!important}.mypage-admin-btn.desktop-only{display:inline-flex!important}}.mypage-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.mypage-dashboard>.mypage-section{min-width:0}.mypage-section--wide{grid-column:1/-1}.mypage-section{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:20px;margin-bottom:20px}.mypage-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mypage-section-title{font-size:.9375rem;font-weight:600}.mypage-section-link{font-size:.75rem;color:var(--accent);font-weight:500}.mypage-section-link:hover{text-decoration:underline}.mypage-profile-card{background:var(--accent-light,#fff0eb);border-color:transparent}.mypage-stat-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.mypage-stat-pill{font-size:.6875rem;font-weight:500;padding:3px 10px;border-radius:var(--radius-full);background:rgba(255,255,255,.7);color:var(--text-secondary)}.mypage-discussion-thumb{width:53px;height:70px;border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary)}.mypage-discussion-thumb img{width:100%;height:100%;object-fit:cover}.mypage-discussion-thumb-empty{display:flex;align-items:center;justify-content:center}.mypage-discussion-left{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px}.mypage-discussion-reply{font-size:.5625rem;color:var(--text-caption);white-space:nowrap}.mypage-discussion-content{flex:1;min-width:0}.mypage-puzzle-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mypage-puzzle-grid-item{text-align:center;text-decoration:none;color:inherit;display:block}.mypage-puzzle-grid-thumb{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-tertiary)}.mypage-puzzle-grid-thumb img{width:100%;height:100%;object-fit:cover}.mypage-puzzle-grid-meta{display:flex;gap:6px;justify-content:center;margin-top:4px;font-size:.625rem;color:var(--text-caption)}.mypage-lib-tags{display:flex;flex-wrap:wrap;gap:6px}.mypage-lib-tag{padding:5px 12px;font-size:.75rem;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);background:#fff}.mypage-scrap-item{display:flex;align-items:flex-start;gap:10px}.mypage-scrap-item .mypage-discussion-thumb{width:60px;height:79px}.mypage-scrap-info{flex:1;min-width:0}.mypage-scrap-title{display:block;font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mypage-scrap-lib-row{display:flex;align-items:center;gap:5px;margin-top:4px;padding:5px 8px;background:var(--bg-subtle,#f9fafb);border-radius:6px;font-size:.6875rem}.mypage-scrap-lib-icon{flex-shrink:0;width:12px;height:12px;color:var(--accent);opacity:.7}.mypage-scrap-libname{color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mypage-scrap-loan-set{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:4px}.mypage-scrap-loan{font-size:.625rem;font-weight:700}.mypage-scrap-loan.available{color:#059669}.mypage-scrap-loan.unavailable{color:#dc2626}.mypage-scrap-loan.not-owned{color:#9ca3af}.mypage-scrap-call{font-size:.625rem;font-weight:700;color:var(--accent)}.mypage-scrap-call:empty{display:none}.mypage-loading{display:flex;align-items:center;justify-content:center;padding:32px 0}.mypage-loading-logo{height:48px;width:auto;opacity:.3;animation:mypageLoadingPulse 1.2s ease-in-out infinite}@keyframes mypageLoadingPulse{0%,100%{opacity:.15;transform:scale(.95)}50%{opacity:.4;transform:scale(1)}}.mypage-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;text-align:center;color:#9ca3af;animation:emptyFadeIn .6s ease-out both}.mypage-empty svg{color:#d1d5db;animation:mypageEmptyFloat 3s ease-in-out infinite}@keyframes mypageEmptyFloat{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(-4px);opacity:.5}}.mypage-empty p{font-size:.8125rem;margin:0}.mypage-discussion-item{display:flex;align-items:flex-start;gap:10px}.mypage-letter-item{display:flex;align-items:flex-start;gap:10px}.mypage-letter-thumb{width:64px;height:64px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary);display:flex;align-items:flex-start;justify-content:center}.mypage-letter-thumb img{width:100%;height:auto;min-height:100%;object-fit:cover;object-position:center top}.mypage-letter-thumb-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mypage-letter-content{flex:1;min-width:0}.mypage-puzzle-3col{grid-template-columns:repeat(3,1fr)}.mypage-puzzle-grid-meta{display:flex;gap:6px;justify-content:center;margin-top:4px;font-size:.6875rem;color:var(--text-primary);font-weight:600}.mypage-more-card{flex-shrink:0;width:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.75rem;font-weight:500;color:var(--text-caption);text-decoration:none;border-radius:var(--radius-sm);background:var(--bg-tertiary);transition:all var(--transition)}.mypage-more-card:hover{color:var(--accent);background:var(--accent-light)}.mypage-preview-grid{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}.mypage-preview-grid::-webkit-scrollbar{display:none}.mypage-preview-grid .book-card{flex-shrink:0;width:110px}.mypage-preview-grid .book-card-image{aspect-ratio:3/4}.mypage-preview-list{display:flex;flex-direction:column;gap:8px}.mypage-list{display:flex;flex-direction:column;gap:6px}.mypage-list-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;text-decoration:none;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff;transition:all var(--transition);color:var(--text-primary)}.mypage-list-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.mypage-list-text{font-size:.8125rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mypage-list-meta{display:flex;gap:8px;margin-top:4px;font-size:.6875rem;color:var(--text-caption)}.letter-detail-page{padding:32px 0 60px}.letter-detail-inner{max-width:600px;margin:0 auto;padding:0 20px}.letter-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.letter-detail-title{font-size:1.125rem;font-weight:700}.letter-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden}.letter-card-decoration{height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-light),var(--accent))}.letter-card-meta{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;flex-wrap:wrap;gap:8px}.letter-card-names{display:flex;align-items:center;gap:6px;font-size:.875rem;color:var(--text-secondary)}.letter-sender{font-weight:600;color:var(--text-primary)}.letter-recipient{font-weight:600;color:var(--accent)}.letter-card-names svg{color:var(--text-caption)}.letter-card-date{font-size:.75rem;color:var(--text-caption)}.letter-card-body{padding:20px 24px 28px;font-size:.9375rem;line-height:2;color:var(--text-primary);white-space:pre-wrap}.letter-reply{margin:0 24px 24px;padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.letter-reply-header{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--text-secondary);margin-bottom:10px}.letter-reply-date{font-size:.6875rem;color:var(--text-caption);margin-left:auto}.letter-reply-body{font-size:.875rem;line-height:1.8;color:var(--text-secondary);white-space:pre-wrap}.letter-read-page{padding:32px 0 60px}.letter-read-inner{max-width:560px;margin:0 auto;padding:0 20px}.letter-read-book{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f9fafb;border-radius:12px;text-decoration:none;margin-bottom:24px;transition:background var(--transition)}.letter-read-book:hover{background:#f3f4f6}.letter-read-book-info{flex:1}.letter-read-book-title{font-size:.8125rem;font-weight:500;color:#374151}.letter-read-header{margin-bottom:16px}.letter-read-to{font-size:1.25rem;font-weight:700;color:#1f2937}.letter-read-from{font-size:.875rem;color:#6b7280;margin-top:4px}.letter-read-paper{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 2px 10px rgba(0,0,0,.05);margin-bottom:16px}.letter-read-message{font-size:.9375rem;line-height:1.8;color:#1f2937;white-space:pre-wrap;word-break:break-word}.letter-read-stats{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#f5f3ff;border-radius:8px;font-size:.8125rem;color:#6d28d9;margin-bottom:12px}.letter-read-date{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#9ca3af;margin-bottom:16px}.letter-read-reply{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:16px;margin-bottom:16px}.letter-read-reply-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.letter-read-reply-title{display:flex;align-items:center;gap:6px;font-size:.875rem;color:#15803d}.letter-read-reply-date{font-size:.6875rem;color:#9ca3af}.letter-read-reply-body{font-size:.875rem;line-height:1.6;color:#1f2937;white-space:pre-wrap}.letter-read-noreply{font-size:.8125rem;color:#9ca3af;font-style:italic;margin-bottom:16px}.letter-read-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.letter-read-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;font-size:.8125rem;font-weight:500;background:#f3f4f6;color:#4b5563;border:none;border-radius:8px;cursor:pointer;transition:all var(--transition)}.letter-read-btn:hover{background:#e5e7eb}.letter-read-btn.reply{background:#f5f3ff;color:#7c3aed}.letter-read-btn.reply:hover{background:#ede9fe}.letter-read-btn.danger{background:#fef2f2;color:#ef4444}.letter-read-btn.danger:hover{background:#fee2e2}.letter-read-reply-form{margin-top:24px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.05)}.letter-read-reply-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.letter-read-reply-form-header div{display:flex;align-items:center;gap:8px;font-size:1rem;color:#15803d}.letter-read-reply-input{width:100%;padding:12px 14px;font-size:.875rem;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;margin-bottom:10px;transition:border-color var(--transition)}.letter-read-reply-input:focus{border-color:#4ade80;outline:0}.letter-read-reply-textarea{width:100%;padding:14px;font-size:.875rem;font-family:inherit;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;resize:vertical;line-height:1.6;transition:border-color var(--transition)}.letter-read-reply-textarea:focus{border-color:#4ade80;outline:0}.letter-read-reply-form-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.letter-read-reply-counter{font-size:.75rem;color:#9ca3af}.letter-read-reply-submit{padding:10px 24px;font-size:.875rem;font-weight:600;background:#16a34a;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background var(--transition)}.letter-read-reply-submit:hover{background:#15803d}.letter-write-page{padding:32px 0 60px}.letter-write-inner{max-width:600px;margin:0 auto;padding:0 20px}.letter-book-info{display:flex;gap:12px;align-items:center;padding:14px;background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:24px}.letter-book-cover{width:50px;height:68px;border-radius:4px;object-fit:cover;flex-shrink:0}.letter-book-title{font-size:.875rem;font-weight:600}.letter-book-meta{font-size:.6875rem;color:var(--text-caption)}.letter-form-group{margin-bottom:16px}.letter-form-label{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;font-weight:600;margin-bottom:6px}.letter-form-optional{font-size:.6875rem;font-weight:400;color:var(--text-caption)}.letter-form-counter{font-size:.6875rem;font-weight:400;color:var(--text-caption)}.letter-form-input{width:100%;padding:12px 14px;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;transition:border-color var(--transition)}.letter-form-input:focus{border-color:var(--accent);outline:0}.letter-form-textarea{width:100%;padding:14px;font-size:.875rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;resize:vertical;line-height:1.7;transition:border-color var(--transition)}.letter-form-textarea:focus{border-color:var(--accent);outline:0}.letter-option-card{padding:14px;border-radius:var(--radius-sm);margin-bottom:12px}.letter-option-card.purple{background:#f5f3ff;border:1px solid #e9e5ff}.letter-option-card.orange{background:#fff7ed;border:1px solid #ffedd5}.letter-option-header{display:flex;align-items:center;justify-content:space-between}.letter-option-header div{display:flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600}.letter-option-desc{font-size:.6875rem;color:var(--text-caption);margin-top:8px;line-height:1.5}.letter-toggle{position:relative;width:40px;height:22px;cursor:pointer}.letter-toggle input{opacity:0;width:0;height:0}.letter-toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:11px;transition:background var(--transition)}.letter-toggle-slider::before{content:'';position:absolute;left:2px;top:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform var(--transition)}.letter-toggle input:checked+.letter-toggle-slider{background:var(--accent)}.letter-toggle input:checked+.letter-toggle-slider::before{transform:translateX(18px)}.letter-password-input{width:120px;margin-top:8px;padding:10px;font-size:1.25rem;text-align:center;letter-spacing:8px;border:1px solid var(--border);border-radius:var(--radius-sm)}.letter-pw-boxes{display:flex;gap:10px;justify-content:center;margin-bottom:20px;cursor:text}.letter-pw-box{width:48px;height:56px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--text-caption);border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;transition:all .15s ease}.letter-pw-box.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.letter-pw-box.filled{color:var(--text-primary);border-color:var(--text-tertiary)}.letter-pw-box.current{color:var(--accent);border-color:var(--accent)}.letter-form-actions{display:flex;gap:10px;margin-top:24px}.letter-btn{flex:1;padding:12px;font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;text-align:center;transition:all var(--transition)}.letter-btn.primary{background:var(--accent);color:#fff;border:none}.letter-btn.primary:hover{opacity:.9}.letter-btn.secondary{background:#fff;color:var(--text-secondary);border:1.5px solid var(--border)}.letter-btn.secondary:hover{border-color:var(--accent);color:var(--accent)}.letter-form-notice{margin-top:20px;font-size:.6875rem;color:var(--text-caption);line-height:1.7}.report-dialog-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px}.report-dialog{background:#fff;border-radius:var(--radius-md);width:100%;max-width:380px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.report-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light)}.report-dialog-header h3{font-size:1rem;font-weight:700}.report-dialog-body{padding:16px 20px}.report-reason-item{display:flex;align-items:center;gap:8px;padding:9px 0;font-size:.8125rem;cursor:pointer}.report-reason-item+.report-reason-item{border-top:none}.report-reason-item input{accent-color:var(--accent)}.report-comment{width:100%;margin-top:12px;padding:10px;font-size:.8125rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;min-height:60px}.report-dialog-actions{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--border-light)}.letter-manage-page{padding:32px 0 60px}.letter-manage-inner{max-width:560px;margin:0 auto;padding:0 20px}.lm-layout{display:flex;flex-direction:column;gap:22px}.lm-rail{display:flex;gap:14px;align-items:flex-start}.lm-rail-cover{flex-shrink:0;width:66px;height:90px;border-radius:1px 4px 4px 1px;background:var(--bg-tertiary);position:relative;overflow:hidden;display:grid;place-items:center;box-shadow:-2px 0 0 rgba(70,60,45,.16),0 3px 8px rgba(0,0,0,.16),inset -1px 0 2px rgba(0,0,0,.05)}.lm-rail-cover img{width:100%;height:100%;object-fit:cover;display:block}.lm-rail-cover-glyph{display:none;color:color-mix(in srgb,var(--accent) 50%,var(--text-caption))}.lm-rail-cover.is-empty{background:color-mix(in srgb,var(--accent) 7%,var(--bg-tertiary));box-shadow:-2px 0 0 rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.06)}.lm-rail-cover.is-empty .lm-rail-cover-glyph{display:block}.lm-rail-info{display:flex;flex-direction:column;gap:8px;min-width:0}.lm-rail-book{font-size:.875rem;font-weight:700;color:var(--text-primary);line-height:1.35;margin:0}.lm-rail-status{display:flex;gap:5px;flex-wrap:wrap}.lm-rail-meta{display:flex;align-items:center;gap:5px;font-size:.6875rem;color:var(--text-caption)}.lm-rail-meta svg{color:var(--text-caption);flex-shrink:0}@media (min-width:768px){.letter-manage-inner{max-width:880px}.lm-layout{flex-direction:row;gap:40px;align-items:flex-start}.lm-rail{flex:0 0 196px;flex-direction:column;gap:16px;align-items:stretch;position:sticky;top:24px}.lm-rail-cover{width:100%;height:auto;aspect-ratio:3/4}.lm-rail-book{font-size:1rem}.lm-main{flex:1;min-width:0}}.letter-manage-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.letter-manage-top-right{display:flex;gap:6px}.lm-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:.75rem;font-weight:500;color:var(--text-secondary);background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.lm-btn:hover{background:var(--border-light)}.lm-btn.danger{color:#ef4444}.lm-btn.danger:hover{background:#fee2e2}.letter-manage-status{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:20px}.lm-status-left{display:flex;gap:5px;flex-wrap:wrap}.lm-badge{padding:3px 10px;font-size:.625rem;font-weight:600;border-radius:var(--radius-full)}.lm-badge.draft{background:#fef3c7;color:#92400e}.lm-badge.lock{background:#f3e8ff;color:#7c3aed}.lm-badge.noreply{background:#ffedd5;color:#c2410c}.lm-badge.read{background:#d1fae5;color:#065f46}.lm-badge.unread{background:#dbeafe;color:#1d4ed8}.lm-badge.continue{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ml-section-title{font-size:.8125rem;font-weight:700;color:var(--text-secondary);margin:24px 2px 11px;display:flex;align-items:center;gap:7px}.ml-section-title:first-of-type{margin-top:6px}.ml-section-count{font-size:.6875rem;font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:var(--radius-full);padding:1px 8px;font-variant-numeric:tabular-nums}.ml-list{display:flex;flex-direction:column;gap:10px}.ml-card{display:flex;align-items:stretch;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s,box-shadow .15s}.ml-card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.ml-card--draft{border-color:color-mix(in srgb,var(--accent) 26%,var(--border-light));background:color-mix(in srgb,var(--accent) 4%,#fff)}.ml-card-link{display:flex;gap:14px;flex:1;min-width:0;padding:13px 14px;text-decoration:none;color:inherit}.ml-cover{flex-shrink:0;width:54px;height:74px;align-self:flex-start;border-radius:1px 3px 3px 1px;background:var(--bg-tertiary);position:relative;overflow:hidden;display:grid;place-items:center;box-shadow:-2px 0 0 rgba(70,60,45,.16),0 2px 6px rgba(0,0,0,.14),inset -1px 0 2px rgba(0,0,0,.05)}.ml-cover-img{width:100%;height:100%;object-fit:cover;display:block}.ml-cover-glyph{display:none;color:color-mix(in srgb,var(--accent) 50%,var(--text-caption))}.ml-cover.is-empty{background:color-mix(in srgb,var(--accent) 7%,var(--bg-tertiary));box-shadow:-2px 0 0 rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.06)}.ml-cover.is-empty .ml-cover-glyph{display:block}.ml-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.ml-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ml-title{font-size:.95rem;font-weight:700;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ml-badges{display:flex;gap:4px;flex-shrink:0}.ml-names{font-size:.75rem;color:var(--text-tertiary)}.ml-snippet{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ml-foot{display:flex;align-items:center;gap:10px;margin-top:3px;font-size:.6875rem;color:var(--text-caption)}.ml-date{font-variant-numeric:tabular-nums}.ml-continue{color:var(--accent);font-weight:700;margin-left:auto}.ml-reply{color:var(--accent);font-weight:600}.ml-del{flex-shrink:0;width:44px;border:none;border-left:1px solid var(--border-light);background:0 0;color:var(--text-caption);cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.ml-del:hover{background:#fef2f2;color:#dc2626}.ml-del:disabled{opacity:.5;cursor:default}.ml-empty{text-align:center;padding:56px 20px}.ml-empty svg{color:color-mix(in srgb,var(--accent) 42%,var(--text-caption));margin-bottom:14px}.ml-empty-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 6px}.ml-empty-desc{font-size:.85rem;color:var(--text-secondary);margin:0 0 20px}@media (max-width:560px){.ml-cover{width:46px;height:63px}.ml-card-link{padding:11px 12px;gap:11px}.ml-title{font-size:.9rem}}.letter-draft-prompt{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px;padding:14px 16px;background:color-mix(in srgb,var(--accent) 6%,#fff);border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border));border-radius:var(--radius-md)}.letter-draft-prompt-text{display:flex;flex-direction:column;gap:2px;min-width:0}.letter-draft-prompt-text strong{font-size:.9rem;color:var(--text-primary)}.letter-draft-prompt-text span{font-size:.8rem;color:var(--text-secondary)}.letter-draft-prompt-actions{display:flex;gap:8px;flex-shrink:0}.letter-draft-prompt-actions .letter-btn{padding:8px 16px;font-size:.8125rem}.lm-status-right{display:flex;align-items:center;gap:4px;font-size:.6875rem;color:var(--text-caption)}.lm-dot{color:var(--border)}.letter-manage-names{display:flex;align-items:center;gap:12px;padding:16px;background:#f9fafb;border-radius:12px;margin-bottom:16px}.lm-name-item{flex:1}.lm-name-label{display:block;font-size:.625rem;color:var(--text-caption);margin-bottom:2px}.lm-name-value{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.letter-manage-body{padding:20px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;font-size:.9375rem;line-height:1.8;color:#1f2937;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 4px rgba(0,0,0,.04);margin-bottom:16px}.letter-manage-reply{padding:14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;margin-bottom:16px}.lm-reply-header{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:#15803d;margin-bottom:10px}.lm-reply-date{font-size:.625rem;color:#9ca3af;margin-left:auto}.lm-reply-body{font-size:.875rem;line-height:1.7;color:#1f2937;white-space:pre-wrap}.letter-manage-footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.lm-footer-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:140px;padding:12px 16px;font-size:.8125rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;text-decoration:none;text-align:center;transition:all var(--transition)}.lm-footer-btn.primary{background:var(--accent);color:#fff}.lm-footer-btn.primary:hover{opacity:.9}.lm-footer-btn.secondary{background:#f3f4f6;color:#4b5563}.lm-footer-btn.secondary:hover{background:#e5e7eb}@media (max-width:768px){.letter-manage-names{gap:8px}.lm-name-value{font-size:.8125rem}.lm-footer-btn{min-width:0;flex:1 1 calc(50% - 4px);padding:10px 12px;font-size:.75rem}}.letter-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.letter-action-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;font-size:.75rem;font-weight:500;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-full);background:#fff;text-decoration:none;cursor:pointer;transition:all var(--transition)}.letter-action-btn:hover{border-color:var(--accent);color:var(--accent)}.letter-action-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.letter-action-btn.primary:hover{opacity:.9}.letter-action-btn.danger:hover{border-color:#ef4444;color:#ef4444}.letter-badge{display:inline-block;padding:2px 8px;font-size:.5625rem;font-weight:600;border-radius:var(--radius-full);margin-right:4px}.letter-badge.draft{background:#fef3c7;color:#92400e}.letter-badge.lock{background:#f3e8ff;color:#7c3aed}.letter-badge.noreply{background:#ffedd5;color:#c2410c}.letter-card-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.letter-reply-form{margin-top:16px}.letter-preview-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:20px}.letter-preview-card{background:#fff;border-radius:var(--radius-md);padding:24px;width:100%;max-width:480px;box-shadow:0 8px 32px rgba(0,0,0,.2);position:relative}.letter-preview-close{position:absolute;top:10px;right:14px;font-size:1.25rem;color:var(--text-caption);cursor:pointer}.letter-preview-label{font-size:.75rem;color:var(--text-caption);text-align:center;margin-bottom:16px}.letter-book-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:10px 18px;font-size:.8125rem;font-weight:600;color:var(--accent);border:1.5px solid var(--accent);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition)}.letter-book-link:hover{background:var(--accent-light)}.mypage-fullpage{padding:32px 0 60px}.mypage-fullpage-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.mypage-fullpage-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.mypage-fullpage-title{font-size:1.25rem;font-weight:700}.mypage-fullpage-count{font-size:.8125rem;color:var(--text-caption);margin-top:2px}.letter-list-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.letter-list-badges{display:flex;gap:4px;flex-shrink:0}.letter-list-names{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.letter-list-message{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.letter-list-date{font-size:.6875rem;color:var(--text-caption);margin-top:6px;display:block}.library-item{display:flex;align-items:center;gap:10px}.favlib-current{margin-bottom:32px}.favlib-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff;margin-bottom:6px}.favlib-item-info{flex:1;min-width:0}.favlib-item-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.favlib-item-region{font-size:.6875rem;color:var(--text-caption);margin-left:8px}.favlib-remove-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-caption);cursor:pointer;flex-shrink:0;transition:all var(--transition)}.favlib-remove-btn:hover{background:#fee2e2;color:#ef4444}.favlib-empty{text-align:center;padding:32px;color:var(--text-caption);font-size:.8125rem}.favlib-empty svg{margin-bottom:8px}.favlib-search-section{padding-top:24px;border-top:1px solid var(--border-light)}.favlib-search-title{display:flex;align-items:center;gap:6px;font-size:.9375rem;font-weight:700;margin-bottom:16px}.favlib-region-selects{display:flex;gap:8px;margin-bottom:16px}.favlib-select{flex:1;padding:12px 36px 12px 14px;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);cursor:pointer;height:48px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238E8E93' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.favlib-select:disabled{background-color:var(--bg-tertiary);color:var(--text-caption);cursor:default;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23C7C7CC' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.favlib-results{max-height:400px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-sm)}.favlib-results-hint{padding:32px;text-align:center;font-size:.8125rem;color:var(--text-caption)}.favlib-results-loading{padding:32px;text-align:center}.favlib-result-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border-light)}.favlib-result-item:last-child{border-bottom:none}.favlib-result-info{flex:1;min-width:0}.favlib-result-name{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.favlib-result-type{font-size:.6875rem;color:var(--text-caption);margin-left:6px}.favlib-add-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-caption);cursor:pointer;flex-shrink:0;border-radius:50%;transition:all var(--transition)}.favlib-add-btn:hover{background:var(--accent-light)}.favlib-add-btn.added{color:#f59e0b}.favlib-add-btn.favlib-saving{pointer-events:none;opacity:.5}.favlib-add-btn.favlib-pop-in{animation:favlibPopIn .4s ease}.favlib-add-btn.favlib-pop-out{animation:favlibPopOut .3s ease}@keyframes favlibPopIn{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}@keyframes favlibPopOut{0%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.3}100%{transform:scale(1);opacity:1}}.favlib-disconnected{opacity:.7}.favlib-disconnected .favlib-result-name{color:var(--text-tertiary)}.favlib-result-type.disconnected{color:var(--text-caption);font-style:italic;font-size:.625rem}.favlib-results-loading{padding:40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-caption);font-size:.8125rem}.favlib-loading-icon{width:28px;height:28px;object-fit:contain;animation:thumbLogoPulse 1.5s ease-in-out infinite}@media (min-width:769px){.favlib-search-layout{display:flex;gap:20px}.favlib-region-selects{flex-direction:column;width:200px;flex-shrink:0;margin-bottom:0;align-self:flex-start}.favlib-results{flex:1;max-height:500px}}.puzzle-records-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.puzzle-record-card{padding:12px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition);overflow:hidden}.puzzle-record-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border)}.puzzle-record-cover{width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius-xs);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;margin-bottom:10px}.puzzle-record-cover img{width:100%;height:100%;object-fit:cover}.puzzle-record-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.puzzle-fallback-logo{width:50%;height:auto;opacity:.12}.mypage-puzzle-list{display:flex;flex-direction:column;gap:8px}.mypage-puzzle-item{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#fff}.mypage-puzzle-thumb{width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-xs);overflow:hidden;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-caption)}.mypage-puzzle-thumb img{width:100%;height:100%;object-fit:cover}.mypage-puzzle-info{flex:1;min-width:0}.puzzle-record-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-bottom:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.puzzle-record-stats{display:flex;gap:12px;flex-wrap:wrap}.puzzle-record-stat{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;color:var(--text-secondary)}.puzzle-record-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.puzzle-record-date{font-size:.625rem;color:var(--text-caption)}.puzzle-record-book-btn{font-size:.625rem;font-weight:600;color:var(--accent);text-decoration:none;padding:3px 8px;border:1px solid var(--accent);border-radius:var(--radius-full);transition:all var(--transition)}.puzzle-record-book-btn:hover{background:var(--accent-light)}@media (max-width:768px){.puzzle-records-grid{grid-template-columns:repeat(2,1fr);gap:10px}}.mypage-badge{display:inline-block;padding:1px 6px;font-size:.625rem;font-weight:600;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-full);margin-right:4px}@media (max-width:640px){.mypage-profile{flex-direction:column;text-align:center}}.tag-pill{display:inline-block;padding:3px 10px;font-size:.75rem;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-full);transition:all var(--transition)}.tag-pill:hover{background:var(--accent-light);color:var(--accent)}.form-group{margin-bottom:14px}.form-label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:4px}.form-input{width:100%;padding:9px 12px;font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);outline:0;transition:border-color var(--transition)}.form-input:focus{border-color:var(--accent)}.form-textarea{resize:vertical;min-height:100px}.empty-state{text-align:center;padding:24px 16px;color:var(--text-caption);font-size:.8125rem}.tag-loading-overlay{position:fixed;inset:0;z-index:1000;background:rgba(255,255,255,.75);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:tagFadeIn .2s ease;transition:opacity .2s}@keyframes tagFadeIn{from{opacity:0}to{opacity:1}}.tag-loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.tag-loading-text{font-size:.875rem;color:var(--text-caption);font-weight:500}.share-sheet-overlay{position:fixed;inset:0;z-index:700;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,0);transition:background .22s ease}.share-sheet-overlay.is-open{background:rgba(0,0,0,.45)}.share-sheet{width:100%;max-width:420px;background:#fff;border-radius:20px 20px 0 0;padding:10px 20px 24px;box-shadow:0 -8px 28px rgba(0,0,0,.12);transform:translateY(100%);transition:transform .28s cubic-bezier(.2, .8, .2, 1)}.share-sheet-overlay.is-open .share-sheet{transform:translateY(0)}.share-sheet-handle{width:40px;height:4px;border-radius:2px;background:#e5e7eb;margin:0 auto 14px}.share-sheet-title{text-align:center;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 20px}.share-sheet-options{display:flex;justify-content:center;gap:24px;padding:4px 0 20px}.share-option{display:flex;flex-direction:column;align-items:center;gap:8px;background:0 0;border:none;padding:0;cursor:pointer;flex:0 1 80px;transition:transform .12s ease}.share-option:active{transform:scale(.94)}.share-option-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:box-shadow .15s ease}.share-icon-kakao{background:#fee500}.share-icon-sms{background:#22c55e}.share-icon-copy{background:#6b7280}.share-option:hover .share-option-icon{box-shadow:0 4px 14px rgba(0,0,0,.15)}.share-option-label{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.share-sheet-close{width:100%;padding:14px 0;background:var(--bg-tertiary);color:var(--text-secondary);border:none;border-radius:12px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s ease}.share-sheet-close:hover{background:var(--border)}@media (min-width:640px){.share-sheet-overlay{align-items:center;padding:20px}.share-sheet{border-radius:20px;padding:16px 24px 24px;transform:scale(.9) translateY(20px);opacity:0;transition:transform .22s cubic-bezier(.2, .8, .2, 1),opacity .18s ease}.share-sheet-overlay.is-open .share-sheet{transform:scale(1) translateY(0);opacity:1}.share-sheet-handle{display:none}}.letter-preview-overlay{position:fixed;inset:0;z-index:700;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,0);transition:background .22s ease}.letter-preview-overlay.is-open{background:rgba(0,0,0,.55)}.letter-preview-dialog{width:100%;max-width:480px;max-height:90vh;overflow:hidden;background:#fff;border-radius:20px;display:flex;flex-direction:column;transform:scale(.95) translateY(12px);opacity:0;transition:transform .22s cubic-bezier(.2, .8, .2, 1),opacity .18s ease;box-shadow:0 20px 60px rgba(0,0,0,.25)}.letter-preview-overlay.is-open .letter-preview-dialog{transform:scale(1) translateY(0);opacity:1}.letter-preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.letter-preview-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.letter-preview-close{width:32px;height:32px;background:0 0;border:none;font-size:24px;line-height:1;color:var(--text-secondary);cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}.letter-preview-close:hover{background:var(--bg-tertiary)}.letter-preview-body{overflow-y:auto;padding:20px;background:#faf7f2}.lp-card{max-width:420px;margin:0 auto;background:#fff;border-radius:16px;padding:28px 24px;box-shadow:0 4px 16px rgba(0,0,0,.06);text-align:center}.lp-sender{font-size:.8125rem;color:var(--text-secondary);margin-bottom:6px}.lp-recipient{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.lp-book-hint{font-size:.75rem;color:var(--text-caption);margin:8px 0 14px}.lp-book-cover{display:block;margin:0 auto 18px;max-width:180px;width:100%;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.14)}.lp-letter-body{text-align:left;font-size:.9375rem;line-height:1.7;color:var(--text-primary);padding:16px 4px;white-space:pre-wrap;word-break:break-word;min-height:60px}.lp-letter-body.lp-letter-empty{color:var(--text-caption);font-style:italic;text-align:center}.lp-date{font-size:.75rem;color:var(--text-caption);margin-top:12px;margin-bottom:18px}.lp-book-unit{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;margin-top:8px;background:var(--bg-tertiary);border-radius:12px}.lp-book-unit img{width:44px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0}.lp-book-unit-info{flex:1;min-width:0}.lp-book-unit-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-book-unit-writer{font-size:.6875rem;color:var(--text-caption);margin-top:2px}.letter-saved-overlay{position:fixed;inset:0;z-index:700;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}.letter-saved-dialog{width:100%;max-width:360px;background:#fff;border-radius:20px;padding:28px 24px 20px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.22);animation:letterSavedPop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes letterSavedPop{0%{transform:scale(.85) translateY(10px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}.letter-saved-icon{font-size:40px;margin-bottom:12px;animation:letterSavedFloat 1.6s ease-in-out infinite}@keyframes letterSavedFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}.letter-saved-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0 0 10px}.letter-saved-desc{font-size:.875rem;line-height:1.55;color:var(--text-secondary);margin:0 0 22px}.letter-saved-actions{display:flex;gap:8px}.letter-saved-btn{flex:1;padding:13px 0;border:none;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.letter-saved-btn.primary{background:var(--accent);color:#fff}.letter-saved-btn.primary:hover{background:color-mix(in srgb,var(--accent) 92%,#000 8%)}.letter-saved-btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.letter-saved-btn.secondary:hover{background:var(--border)}.letter-saved-btn:active{transform:scale(.98)}.letter-sent-banner{text-align:center;padding:24px 16px 20px}.letter-sent-icon{font-size:42px;margin-bottom:12px;animation:letterSavedFloat 1.8s ease-in-out infinite}.letter-sent-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 10px}.letter-sent-desc{font-size:.875rem;line-height:1.6;color:var(--text-secondary);margin:0}.letter-sent-actions{display:flex;gap:10px;margin-top:20px}.clr-strip{margin:30px 0 6px;cursor:pointer}.clr-strip .section-title-icon{display:flex;align-items:center;gap:6px}.clr-strip-more{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--accent,#6b5ce7)}.clr-strip-track{display:flex;gap:10px;overflow-x:auto;padding:6px 2px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.clr-strip-track::-webkit-scrollbar{display:none}.clr-strip-thumb{flex:0 0 calc((100% - 30px)/ 4);text-align:center}.clr-strip-thumb img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center;display:block;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;transition:border-color .15s,transform .15s}.clr-strip:hover .clr-strip-thumb img{border-color:color-mix(in srgb,var(--accent,#6b5ce7) 35%,rgba(0,0,0,.08))}.clr-strip-cap{display:block;margin-top:4px;font-size:.68rem;font-weight:600;color:var(--text-tertiary,#8a919b)}.cc-book-strip{margin:26px 0 6px}.cc-book-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.cc-book-strip-tt{font-size:.95rem;font-weight:700;color:var(--text-primary,#1f2328)}.cc-book-strip-more{font-size:.8rem;font-weight:600;color:var(--accent,#6b5ce7);text-decoration:none;white-space:nowrap}.cc-book-strip-track{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.cc-book-strip-track::-webkit-scrollbar{display:none}.cc-book-strip-item{position:relative;flex:0 0 auto;width:104px;height:104px;border-radius:10px;overflow:hidden;background:#f4f5f7;border:1px solid rgba(0,0,0,.06)}.cc-book-strip-item img{width:100%;height:100%;object-fit:cover;display:block}.cc-book-strip-like{position:absolute;bottom:5px;right:6px;font-size:.72rem;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}.cc-home-banner-section{padding-top:8px;padding-bottom:8px}.cc-home-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-radius:16px;text-decoration:none;background:linear-gradient(120deg,#6b5ce7 0,#8b6ff0 45%,#f48fb1 110%);color:#fff;box-shadow:0 6px 20px rgba(107,92,231,.22);transition:transform .12s,box-shadow .15s}.cc-home-banner:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(107,92,231,.3)}.cc-home-banner-eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.02em;opacity:.95}.cc-home-banner-title{font-size:1.15rem;font-weight:800;margin:5px 0 3px;letter-spacing:-.01em}.cc-home-banner-desc{font-size:.82rem;margin:0;opacity:.92;line-height:1.45}.cc-home-banner-cta{flex:0 0 auto;font-size:.85rem;font-weight:700;background:rgba(255,255,255,.22);border-radius:999px;padding:9px 16px;white-space:nowrap}@media (max-width:560px){.cc-home-banner{flex-direction:column;align-items:flex-start;gap:12px}.cc-home-banner-cta{align-self:stretch;text-align:center}}