*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--fri:#059669;--sat:#3b82f6;--sun:#f97316;--primary:#1a1a2e;--bg:#f1f5f9;--card-bg:#fff;--text:#1e293b;--muted:#64748b;--border:#e2e8f0;--radius:14px;--shadow:0 2px 10px #00000014}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.header{color:#fff;text-align:center;z-index:20;padding:8px 16px 0;position:sticky;top:0;background:#000!important;border-bottom:1px solid #1a1a1a!important}.header-sub{color:#888;margin-top:2px;margin-bottom:2px}.header-dates{color:#ffffffb3;letter-spacing:.05em;margin-top:2px;font-size:.85rem}.header-stats{justify-content:center;align-items:center;gap:6px;margin-top:4px;margin-bottom:6px;display:flex}.stat-badge{color:#fff;letter-spacing:.03em;background:#ffffff26;border:1px solid #ffffff40;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:600}.stat-sep{color:#fff6;font-size:.8rem}.weekend-selector{border-bottom:1px solid var(--border);scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x;overscroll-behavior-x:contain;background:#f8fafc;flex-shrink:0;gap:6px;padding:8px 16px;display:flex;overflow:auto hidden}.weekend-selector::-webkit-scrollbar{display:none}.weekend-tab{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.weekend-tab:hover{border-color:var(--primary);color:var(--primary)}.weekend-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.weekend-tag{background:#ffffff40;border-radius:999px;padding:1px 5px;font-size:.68rem;font-weight:700}.weekend-tab:not(.active) .weekend-tag{color:var(--primary);background:#eef2ff}.filter-bar{border-bottom:1px solid var(--border);background:#fff;flex-direction:column;flex-shrink:0;gap:6px;padding:8px 12px 6px;display:flex;box-shadow:0 2px 8px #0000000d}.filter-tabs-row{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;align-items:center;gap:5px;display:flex;overflow:auto hidden}.filter-tabs-row::-webkit-scrollbar{display:none}.filter-theater-row{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:5px;display:flex;overflow:auto hidden}.filter-theater-row::-webkit-scrollbar{display:none}.tab-divider{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.view-toggle{flex-shrink:0;gap:3px;display:flex}.view-toggle button{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:.88rem;line-height:1;transition:all .15s}.view-toggle button:hover{border-color:var(--primary);color:var(--primary)}.view-toggle button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.vt-settings{margin-left:6px;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,emoji,sans-serif;font-size:14px;padding:3px 7px!important}.vt-lang{letter-spacing:0;font-family:inherit;font-size:11px}.day-tab{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:.82rem;font-weight:500;transition:all .15s}.day-tab:hover{border-color:var(--primary);color:var(--primary)}.day-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.day-tab.fri.active{background:var(--fri);border-color:var(--fri);color:#fff}.day-tab.sat.active{background:var(--sat);border-color:var(--sat);color:#fff}.day-tab.sun.active{background:var(--sun);border-color:var(--sun);color:#fff}.theater-tab{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:.78rem;font-weight:500;transition:all .15s}.theater-tab:hover{filter:brightness(.88)}.theater-tab.active-all{background:var(--primary);color:#fff;border-color:var(--primary)}.time-tab{padding:3px 7px!important;font-size:.72rem!important}.time-tab.active{color:#4338ca!important;background:#eef2ff!important;border-color:#6366f1!important}.fav-tab{white-space:nowrap;margin-left:6px;font-size:.78rem}.fav-tab.active{color:#e11d48!important;background:#fff0f3!important;border-color:#f43f5e!important}.main{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex:1;padding:14px 14px 32px;overflow-y:auto}.grid{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=560px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.grid{grid-template-columns:repeat(4,1fr);gap:8px}.main{padding:20px 16px 48px}.card-poster{max-height:200px}.card-title{font-size:.8rem}.card-director-meta{font-size:.68rem}.time-badge{padding:1px 4px;font-size:.68rem}}@media (width>=1200px){.grid{grid-template-columns:repeat(5,1fr);gap:8px}.main{padding:20px 24px 48px}}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex;overflow:hidden}.card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000021}.card-poster{aspect-ratio:16/9;background:#e2e8f0;width:100%;position:relative;overflow:hidden}.card-poster img{object-fit:cover;width:100%;height:100%;display:block}.card-poster-placeholder{color:#94a3b8;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);justify-content:center;align-items:center;width:100%;height:100%;font-size:2.8rem;display:flex}.card-overview-tip{color:#e2e8f0;opacity:0;pointer-events:none;-webkit-line-clamp:7;background:#0a0e1ee0;-webkit-box-orient:vertical;padding:12px 14px;font-size:.73rem;line-height:1.6;transition:opacity .22s;display:-webkit-box;position:absolute;inset:0;overflow:hidden}@media (hover:hover){.card:hover .card-overview-tip{opacity:1}}.fav-btn{cursor:pointer;background:#ffffffeb;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;line-height:1;transition:transform .15s;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 1px 6px #0003}.fav-btn:hover{transform:scale(1.15)}.card-body{flex-direction:column;flex:1;gap:4px;padding:6px 8px 8px;display:flex}.card-title{color:var(--text);margin-bottom:1px;font-size:.9rem;font-weight:700;line-height:1.25}.card-original-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:-2px;font-size:.7rem;font-style:italic;overflow:hidden}.card-director-meta{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);flex-wrap:nowrap;align-items:baseline;font-size:.72rem;line-height:1.3;display:flex;overflow:hidden}.director-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;font-weight:500;overflow:hidden}.meta-sep{flex-shrink:0}.meta-item{white-space:nowrap;flex-shrink:0}.theater-badge{letter-spacing:.03em;border:1.5px solid;border-radius:999px;align-self:flex-start;padding:2px 9px;font-size:.68rem;font-weight:700;display:inline-block}.note-labels{flex-wrap:wrap;gap:4px;display:flex}.note-label{color:#854d0e;background:#fef9c3;border:1px solid #fde047;border-radius:999px;padding:2px 8px;font-size:.68rem;font-weight:600}.note-label.program-label{color:#0369a1;background:#f0f9ff;border-color:#7dd3fc}.ticket-link{color:#0c447c;background:#e6f1fb;border:1.5px solid #85b7eb;border-radius:6px;align-self:flex-start;margin-top:6px;padding:4px 10px;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.ticket-link:hover{background:#c7def5}.schedule-link{color:#744210;background:#fffaf0;border:1.5px solid #fbd38d;border-radius:6px;align-self:flex-start;margin-top:6px;padding:4px 10px;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.schedule-link:hover{background:#fef3c7}.screening-times{flex-direction:column;gap:5px;margin-top:auto;display:flex}.day-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.day-label{color:#fff;border-radius:5px;flex-shrink:0;padding:2px 7px;font-size:.68rem;font-weight:700}.day-label.fri{background:var(--fri)}.day-label.sat{background:var(--sat)}.day-label.sun{background:var(--sun)}.day-label-date{text-align:center;min-width:62px}.time-badge{letter-spacing:.02em;border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:600}.time-badge.fri{color:#065f46;background:#d1fae5}.time-badge.sat{color:#1d4ed8;background:#dbeafe}.time-badge.sun{color:#c2410c;background:#ffedd5}.time-badge.past{opacity:.35;text-decoration:line-through}.card.card-past{opacity:.45;filter:grayscale(.7);pointer-events:none}.loading,.error-state{text-align:center;min-height:60vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex}.loading-sub{color:var(--muted);opacity:.7;max-width:260px;font-size:.78rem}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:44px;height:44px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-state h2{color:#ef4444;font-size:1.1rem}.error-detail{color:#b91c1c;word-break:break-all;background:#fee2e2;border-radius:8px;max-width:360px;padding:8px 14px;font-family:ui-monospace,monospace;font-size:.8rem}.empty-msg{text-align:center;color:var(--muted);padding:48px 24px;font-size:.95rem}.cal-tab{border-style:dashed}.cal-tab.active{color:#fff;background:#1a1a2e;border-style:solid;border-color:#1a1a2e}.cal-root{padding:0 0 32px;overflow-x:auto}.cal-header{background:var(--card-bg);z-index:5;border-bottom:2px solid var(--border);display:flex;position:sticky;top:0}.cal-gutter-spacer{flex-shrink:0;width:52px}.cal-col-header{text-align:center;color:var(--text);border-left:1px solid var(--border);flex:1;padding:8px 4px;font-size:.9rem;font-weight:700}.cal-body{min-width:300px;display:flex}.cal-gutter{flex-shrink:0;width:52px;position:relative}.cal-hour-label{color:var(--muted);white-space:nowrap;font-size:.65rem;line-height:1;position:absolute;right:6px;transform:translateY(-50%)}.cal-days{border-top:1px solid var(--border);flex:1;display:flex;position:relative}.cal-hour-line{border-top:1px solid var(--border);pointer-events:none;z-index:0;position:absolute;left:0;right:0}.cal-col{border-left:1px solid var(--border);flex:1;position:relative}.cal-block{z-index:1;border:1.5px solid;border-radius:4px;padding:2px 4px;transition:filter .15s;position:absolute;left:2px;right:2px;overflow:hidden}.cal-block:hover{filter:brightness(.93)}.cal-block-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.cal-block-theater{opacity:.75;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:.6rem;overflow:hidden}.list-view{border:1px solid var(--border);border-radius:var(--radius);touch-action:pan-y;margin:0;padding:0;list-style:none;overflow:hidden}.list-row{border-bottom:1px solid var(--border);touch-action:pan-y;align-items:center;gap:8px;min-height:54px;padding:7px 10px 7px 12px;display:flex;overflow:hidden}.list-row:last-child{border-bottom:none}.list-theater-badge{white-space:nowrap;text-align:center;letter-spacing:.01em;text-overflow:ellipsis;border:1.5px solid;border-radius:4px;flex-shrink:0;width:6.8em;padding:2px 6px;font-size:.62rem;font-weight:700;overflow:hidden}.list-row-scroll{overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:2px;min-width:0;padding-bottom:1px;display:flex;overflow:auto hidden}.list-row-scroll::-webkit-scrollbar{display:none}.list-title{color:var(--text);white-space:nowrap;font-size:.88rem;font-weight:700}.list-original-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;font-style:italic;overflow:hidden}.list-meta{white-space:nowrap;color:var(--muted);flex-wrap:nowrap;align-items:baseline;font-size:.72rem;line-height:1.3;display:flex}.list-director{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;font-weight:500;overflow:hidden}.list-meta-sep,.list-year,.list-country,.list-duration{white-space:nowrap;flex-shrink:0}.list-times{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.list-times-group{flex-shrink:0;align-items:center;gap:3px;display:flex}.fav-btn-list{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:4px;font-size:1rem;line-height:1;transition:transform .15s}.fav-btn-list:hover{transform:scale(1.2)}.settings-overlay{z-index:200;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.settings-modal{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:360px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.settings-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.settings-title{color:var(--text);margin:0;font-size:1rem;font-weight:700}.settings-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1rem;transition:background .15s}.settings-close:hover{color:var(--text);background:#f1f5f9}.settings-hint{color:var(--muted);flex-shrink:0;margin:0;padding:8px 18px 4px;font-size:.75rem}.sortable-theater-list{flex:1;margin:0;padding:6px 0;list-style:none;overflow-y:auto}.sortable-theater-row{align-items:center;gap:10px;padding:7px 18px;transition:background .1s;display:flex}.sortable-theater-row:hover{background:#f8fafc}.drag-handle{color:#94a3b8;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:4px;flex-shrink:0;padding:4px 6px;font-size:1.2rem;line-height:1;transition:color .1s}.drag-handle:hover{color:#64748b}.drag-handle:active{cursor:grabbing;color:#334155}.reset-order-btn{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;background:#f1f5f9;border-radius:8px;flex-shrink:0;width:calc(100% - 36px);margin:10px 18px 16px;padding:8px 0;font-size:.82rem;font-weight:600;transition:background .15s}.reset-order-btn:hover{color:var(--text);background:#e2e8f0}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-card{border-radius:var(--radius);border:.5px solid var(--border);background:var(--card-bg);overflow:hidden}.skeleton-poster{aspect-ratio:2/3;background:linear-gradient(90deg,#e8ecf0 25%,#d4dbe5 50%,#e8ecf0 75%) 0 0/400px 100%;width:100%;animation:1.4s infinite shimmer}.skeleton-body{flex-direction:column;gap:6px;padding:8px 10px;display:flex}.skeleton-badge{background:linear-gradient(90deg,#e8ecf0 25%,#d4dbe5 50%,#e8ecf0 75%) 0 0/400px 100%;border-radius:4px;width:60px;height:16px;animation:1.4s infinite shimmer}.skeleton-title{background:linear-gradient(90deg,#e8ecf0 25%,#d4dbe5 50%,#e8ecf0 75%) 0 0/400px 100%;border-radius:3px;width:90%;height:14px;animation:1.4s .1s infinite shimmer}.skeleton-meta{background:linear-gradient(90deg,#e8ecf0 25%,#d4dbe5 50%,#e8ecf0 75%) 0 0/400px 100%;border-radius:3px;width:60%;height:11px;animation:1.4s .2s infinite shimmer}.skeleton-times{background:linear-gradient(90deg,#e8ecf0 25%,#d4dbe5 50%,#e8ecf0 75%) 0 0/400px 100%;border-radius:3px;width:75%;height:11px;animation:1.4s .3s infinite shimmer}.app-footer{border-top:.5px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:5px 12px;display:flex}.tmdb-link{opacity:.6;flex-shrink:0;align-items:center;transition:opacity .2s;display:flex}.tmdb-link:hover{opacity:1}.tmdb-logo{width:auto;height:11px;display:block}.tmdb-notice{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.detail-page{max-width:720px;min-height:100vh;margin:0 auto;padding:16px 16px 48px}.detail-nav{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;font-size:14px;display:flex}.detail-nav a{color:var(--accent,#6c6fff);text-decoration:none}.detail-nav a:hover{text-decoration:underline}.detail-venue-link{font-weight:600}.detail-loading,.detail-not-found{color:var(--muted,#888);padding:32px 0;font-size:14px}.detail-article{align-items:flex-start;gap:24px;display:flex}.detail-poster-wrap{flex-shrink:0;width:140px}.detail-poster{border-radius:6px;width:100%;display:block;box-shadow:0 2px 12px #00000040}.detail-body{flex:1;min-width:0}.detail-title{margin:0 0 4px;font-size:20px;font-weight:700;line-height:1.3}.detail-title-en{color:var(--muted,#888);margin:0 0 4px;font-size:14px}.detail-original-title{color:var(--muted,#888);margin:0 0 12px;font-size:13px}.detail-meta{grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0;font-size:13px;display:grid}.detail-meta-row{display:contents}.detail-meta dt{color:var(--muted,#888);white-space:nowrap}.detail-meta dd{color:var(--text,#fff);margin:0}.detail-overview{color:var(--text-secondary,#ccc);margin:12px 0;font-size:13px;line-height:1.6}.detail-screening-info{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.detail-datetime{margin:0;font-size:14px;font-weight:600}.detail-venue-badge{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.detail-venue-badge:hover{opacity:.85}.detail-ext-link{color:var(--accent,#6c6fff);margin-top:16px;font-size:13px;text-decoration:none;display:inline-block}.detail-ext-link:hover{text-decoration:underline}@media (width<=480px){.detail-article{flex-direction:column}.detail-poster-wrap{width:100%;max-width:200px}}.venue-header{margin-bottom:24px}.venue-header-inner{align-items:center;gap:12px;margin-bottom:8px;display:flex}.venue-color-bar{border:1px solid;border-radius:3px;flex-shrink:0;width:6px;height:40px}.venue-name{margin:0 0 2px;font-size:22px;font-weight:700}.venue-name-en{color:var(--muted,#888);margin:0;font-size:13px}.venue-official-link{color:var(--accent,#6c6fff);font-size:13px;text-decoration:none}.venue-official-link:hover{text-decoration:underline}.venue-section-title{color:var(--muted,#888);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px;font-size:12px;font-weight:600}.venue-event-list{margin:0 0 32px;padding:0;list-style:none}.venue-event-item{border-bottom:1px solid var(--border,#2a2a3a);color:inherit;align-items:baseline;gap:10px;padding:10px 0;text-decoration:none;display:flex}.venue-event-item:hover .venue-event-title{color:var(--accent,#6c6fff)}.venue-event-past{opacity:.5}.venue-event-date{color:var(--muted,#888);white-space:nowrap;flex-shrink:0;min-width:90px;font-size:12px}.venue-event-title{font-size:14px;font-weight:500;transition:color .15s}.venue-event-title-en{color:var(--muted,#888);white-space:nowrap;text-overflow:ellipsis;max-width:160px;margin-left:auto;font-size:12px;overflow:hidden}.venue-events-past{margin-top:8px}.filter-category-row{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:5px;display:flex;overflow-x:auto}.filter-category-row::-webkit-scrollbar{display:none}.category-tab{border:1.5px solid var(--border);white-space:nowrap;cursor:pointer;background:#fff;border-radius:20px;padding:4px 12px;font-size:13px;transition:background .15s,color .15s}.category-tab.active{background:var(--accent,#6c6fff);color:#fff;border-color:var(--accent,#6c6fff);font-weight:600}.art-card{background:var(--art-bg,#f3f4f6);border:1.5px solid var(--art-border,#d1d5db);cursor:pointer;border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .1s;display:flex;overflow:hidden}.art-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.art-card__poster{aspect-ratio:4/3;background:#e8e8e8;width:100%;overflow:hidden}.art-card__poster img{object-fit:cover;width:100%;height:100%}.art-card__body{flex-direction:column;flex:1;gap:4px;padding:10px 12px 12px;display:flex}.art-card__header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.art-card__label{font-size:14px}.art-card__fav{cursor:pointer;color:#ccc;background:0 0;border:none;padding:0;font-size:16px;line-height:1;transition:color .15s}.art-card__fav.active{color:#e05}.art-card__artist{color:var(--art-text,#374151);opacity:.75;margin:0;font-size:12px;font-weight:500}.art-card__title{color:var(--art-text,#1a1a1a);margin:0;font-size:14px;font-weight:700;line-height:1.3}.art-card__period{color:var(--art-text,#374151);opacity:.85;margin:2px 0 0;font-size:12px}.art-card__meta{flex-direction:column;gap:2px;margin-top:4px;display:flex}.art-card__meta-item{color:var(--art-text,#374151);opacity:.7;font-size:11px}.art-card__venue{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-self:flex-start;margin-top:8px;padding:2px 10px;font-size:11px;font-weight:600;transition:opacity .15s}.art-card__venue:hover{opacity:.85}.book-card{background:var(--book-bg,#f0f7ee);border:1.5px solid var(--book-border,#81c784);cursor:pointer;border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .1s;display:flex;overflow:hidden}.book-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.book-card__poster{aspect-ratio:4/3;background:#e8e8e8;width:100%;overflow:hidden}.book-card__poster img{object-fit:cover;width:100%;height:100%}.book-card__body{flex-direction:column;flex:1;gap:4px;padding:10px 12px 12px;display:flex}.book-card__header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.book-card__label{font-size:14px}.book-card__fav{cursor:pointer;color:#ccc;background:0 0;border:none;padding:0;font-size:16px;line-height:1;transition:color .15s}.book-card__fav.active{color:#e05}.book-card__speaker{color:var(--book-text,#374151);opacity:.75;margin:0;font-size:12px;font-weight:500}.book-card__title{color:var(--book-text,#1a1a1a);margin:0;font-size:14px;font-weight:700;line-height:1.3}.book-card__period{color:var(--book-text,#374151);opacity:.85;margin:2px 0 0;font-size:12px}.book-card__times{flex-wrap:wrap;gap:4px;margin:2px 0 0;display:flex}.book-card__time-badge{background:var(--book-text,#374151);color:#fff;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:600}.book-card__venue{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-self:flex-start;margin-top:8px;padding:2px 10px;font-size:11px;font-weight:600;transition:opacity .15s}.book-card__venue:hover{opacity:.85}.live-card{background:var(--live-bg,#1a1a2e);border:1.5px solid var(--live-border,#6060cc);cursor:pointer;border-radius:10px;flex-direction:column;transition:box-shadow .18s,transform .18s;display:flex;overflow:hidden}.live-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000059}.live-card__poster{aspect-ratio:16/9;background:#000;width:100%;overflow:hidden}.live-card__poster img{object-fit:cover;width:100%;height:100%;display:block}.live-card__body{flex-direction:column;flex:1;gap:6px;padding:12px 14px 14px;display:flex}.live-card__header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.live-card__label{font-size:14px}.live-card__fav{cursor:pointer;color:var(--live-border,#6060cc);opacity:.6;background:0 0;border:none;padding:0;font-size:16px;line-height:1;transition:opacity .15s,color .15s}.live-card__fav:hover{opacity:1}.live-card__fav.active{color:#e05;opacity:1}.live-card__title{color:var(--live-text,#e0e0ff);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:14px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.live-card__times{flex-wrap:wrap;gap:4px;margin:0;display:flex}.live-card__time-badge{color:var(--live-text,#e0e0ff);letter-spacing:.03em;background:#ffffff1f;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.live-card__place{color:var(--live-text,#e0e0ff);opacity:.7;margin:0;font-size:11px}.live-card__price{color:var(--live-text,#e0e0ff);opacity:.8;margin:0;font-size:11px}.live-card__venue{cursor:pointer;letter-spacing:.04em;border:none;border-radius:4px;align-self:flex-start;margin-top:auto;padding:3px 8px;font-size:11px;font-weight:600;transition:opacity .15s}.live-card__venue:hover{opacity:.85}.header-top-row{justify-content:center;align-items:center;display:flex;position:relative}.header-nav{align-items:center;gap:8px;display:flex;position:absolute;right:0}.nav-link{color:#ffffff8c;letter-spacing:.05em;padding:2px 4px;font-size:11px;text-decoration:none;transition:color .15s}.nav-link:hover{color:#fff}.notify-btn{cursor:pointer;opacity:.65;background:0 0;border:1px solid #ffffff40;border-radius:6px;padding:3px 7px;font-size:14px;line-height:1;transition:opacity .15s,border-color .15s}.notify-btn:hover{opacity:1;border-color:#fff9}.notify-btn:disabled{cursor:default;opacity:.4}.notify-btn.subscribed{opacity:1;border-color:#ffffff80}.static-page{color:#1a1a1a;background:#fff;max-width:720px;min-height:100vh;margin:0 auto;padding:24px 20px 80px}.page-nav{margin-bottom:32px}.page-nav a{color:#888;font-size:13px;text-decoration:none;transition:color .15s}.page-nav a:hover{color:#1a1a1a}.about-hero{text-align:center;border-bottom:1px solid #eee;margin-bottom:40px;padding:48px 0 32px}.about-logo{letter-spacing:4px;margin:0 0 8px;font-size:clamp(36px,8vw,64px);font-weight:900}.about-tagline{color:#888;letter-spacing:2px;margin:0;font-size:13px}.about-stats{border-bottom:1px solid #eee;justify-content:center;gap:16px;margin-bottom:32px;padding:24px 0;display:flex}.about-stats .stat-item{text-align:center;flex:1}.about-stats .stat-num{color:#1a1a1a;font-size:26px;font-weight:700;display:block}.about-stats .stat-label{color:#888;margin-top:3px;font-size:10px;display:block}.about-section{margin-bottom:40px}.about-section h2{color:#1a1a1a;margin-bottom:12px;font-size:15px;font-weight:700}.about-section p{color:#444;font-size:14px;line-height:1.85}.about-categories{color:#444;flex-direction:column;gap:10px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.cta-btn{color:#fff;letter-spacing:.03em;background:#1a1a1a;border-radius:4px;margin-top:14px;padding:9px 20px;font-size:13px;text-decoration:none;transition:opacity .15s;display:inline-block}.cta-btn:hover{opacity:.8}.press-h1{letter-spacing:2px;margin-bottom:32px;font-size:28px;font-weight:900}.press-section{border-bottom:1px solid #eee;margin-bottom:40px;padding-bottom:32px}.press-section h2{letter-spacing:1.5px;color:#888;text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:600}.press-quote{color:#333;background:#f8f8f8;border-left:3px solid #1a1a1a;margin-bottom:8px;padding:12px 16px;font-size:14px;font-style:italic;line-height:1.75}.copy-btn{cursor:pointer;color:#888;background:0 0;border:1px solid #ddd;border-radius:4px;padding:3px 10px;font-size:11px;transition:border-color .15s,color .15s}.copy-btn:hover{color:#333;border-color:#888}.press-table{border-collapse:collapse;width:100%;font-size:13px}.press-table th{text-align:left;color:#888;vertical-align:top;width:140px;padding:9px 12px 9px 0;font-weight:400}.press-table td{color:#1a1a1a;border-bottom:1px solid #f0f0f0;padding:9px 0}.press-table td a{color:#1a1a1a}.screenshot-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px;display:grid}.screenshot-placeholder{aspect-ratio:9/16;color:#aaa;background:#f5f5f5;border:1px solid #eee;border-radius:8px;justify-content:center;align-items:center;font-size:11px;display:flex}.brand-colors{gap:12px;margin-bottom:12px;display:flex}.color-swatch{border-radius:6px;flex:1;padding:16px 12px 12px;font-family:monospace;font-size:11px}.color-swatch span{font-weight:700;display:block}.color-swatch small{opacity:.7}.press-email{color:#1a1a1a;border-bottom:1px solid #1a1a1a;margin-top:8px;font-size:16px;text-decoration:none;transition:opacity .15s;display:inline-block}.press-email:hover{opacity:.6}.press-note{color:#888;margin-top:8px;font-size:12px}@media (width<=480px){.about-stats{gap:8px}.about-stats .stat-num{font-size:20px}.screenshot-grid{grid-template-columns:repeat(3,1fr);gap:6px}.brand-colors{flex-direction:column}.press-table th{width:110px}}.install-banner{background:var(--color-text-primary,#1a1a1a);color:var(--color-background-primary,#fff);z-index:1000;white-space:nowrap;border-radius:8px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.install-banner-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.install-btn{color:#fff;cursor:pointer;background:#f17;border:none;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600}.dismiss-btn{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 2px;font-size:14px}.share-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:4px;align-items:center;gap:4px;margin-top:8px;padding:4px 10px;font-size:12px;transition:border-color .15s,color .15s;display:inline-flex}.share-btn:hover{color:#444;border-color:#aaa}.feedback-trigger{background:var(--color-text-primary,#1a1a1a);width:44px;height:44px;color:var(--color-background-primary,#fff);cursor:pointer;z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:opacity .15s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 2px 8px #0003}.feedback-trigger:hover{opacity:.85}.feedback-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.feedback-modal{background:var(--color-background-primary,#fff);color:var(--color-text-primary,#1a1a1a);border-radius:12px;width:min(400px,90vw);padding:24px;box-shadow:0 8px 32px #0003}.feedback-modal h3{margin:0 0 12px;font-size:15px;font-weight:700}.feedback-modal textarea{box-sizing:border-box;border:1px solid var(--color-border-secondary,#ddd);resize:vertical;background:var(--color-background-secondary,#f9f9f9);width:100%;color:var(--color-text-primary,#1a1a1a);border-radius:6px;padding:10px;font-family:inherit;font-size:13px;line-height:1.6}.feedback-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.feedback-actions button{border:1px solid var(--color-border-secondary,#ddd);cursor:pointer;color:var(--color-text-primary,#1a1a1a);background:0 0;border-radius:4px;padding:6px 16px;font-size:13px}.feedback-actions button:last-child{background:var(--color-text-primary,#1a1a1a);color:var(--color-background-primary,#fff);border:none}.feedback-actions button:last-child:disabled{opacity:.4;cursor:default}
