:root{--bg-color:#0b0f19;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-color:#f43f5e;--accent-color-rgb:244, 63, 94;--accent-secondary:#ec4899;--accent-gradient:linear-gradient(135deg, #f43f5e 0%, #ec4899 50%, #8b5cf6 100%);--glass-bg:#111827b3;--glass-card-bg:#1e293b66;--glass-border:#ffffff14;--glass-border-focus:#f43f5e66;--font-family:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--shadow-sm:0 2px 8px -1px #0003;--shadow-md:0 8px 16px -2px #0000004d;--shadow-lg:0 16px 32px -4px #0006}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-family);background-image:radial-gradient(at 0 0,#f43f5e1f 0,#0000 40%),radial-gradient(at 100% 0,#8b5cf61f 0,#0000 40%),radial-gradient(at 50% 100%,#ec489914 0,#0000 50%);background-attachment:fixed;min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}.app-container{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:2.5rem 1.5rem;display:flex}.app-header{text-align:center;-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);background:#1e293b40;border-radius:24px;margin-bottom:3.5rem;padding:2rem 1.5rem}.header-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.05em;color:#fda4af;background:linear-gradient(135deg,#f43f5e33 0%,#ec489933 100%);border:1px solid #f43f5e4d;border-radius:9999px;padding:.35rem .85rem;font-size:.75rem;font-weight:700}.last-updated{color:var(--text-secondary);border:1px solid var(--glass-border);background:#ffffff0d;border-radius:9999px;padding:.35rem .85rem;font-size:.8rem}.app-title{letter-spacing:-.02em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;font-size:2.5rem;font-weight:850;line-height:1.2}@media (width>=768px){.app-title{font-size:3.25rem}}.student-council-attribution{color:#e2e8f0;background:#f43f5e0f;border:1px solid #f43f5e26;border-radius:12px;max-width:700px;margin:0 auto .75rem;padding:.6rem 1.2rem;font-size:.95rem;display:inline-block}.school-link{color:#f43f5e;font-weight:600;text-decoration:underline;transition:color .2s}.school-link:hover{color:#fda4af}.app-subtitle{color:var(--text-secondary);max-width:600px;margin:.5rem auto 0;font-size:1.05rem}.main-content{flex-grow:1}.search-section{flex-direction:column;align-items:center;gap:1.5rem;margin-bottom:2.5rem;display:flex}.search-container{width:100%;max-width:640px}.search-input-wrapper{width:100%;position:relative}.search-input{width:100%;color:var(--text-primary);border:1px solid var(--glass-border);background:#0f172abf;border-radius:9999px;outline:none;padding:1.1rem 1.5rem 1.1rem 3.5rem;font-size:1.1rem;transition:all .25s;box-shadow:inset 0 2px 4px #0003}.search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 4px #f43f5e40,inset 0 2px 4px #0003}.search-icon{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:1.35rem;transform:translateY(-50%)}.tag-filters{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:800px;display:flex}.tag-chip{color:var(--text-primary);border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0a;border-radius:9999px;padding:.45rem 1rem;font-size:.85rem;font-weight:550;transition:all .2s cubic-bezier(.16,1,.3,1)}.tag-chip:hover{background:#ffffff14;border-color:#fff3}.tag-chip.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);box-shadow:0 4px 12px #f43f5e4d}.results-count{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1rem}.results-count strong{color:var(--accent-color);font-size:1.25rem}.image-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.75rem;display:grid}.glass-card{background:var(--glass-card-bg);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);cursor:pointer;border-radius:20px;flex-direction:column;height:100%;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),border-color .3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.glass-card:hover{box-shadow:var(--shadow-lg);border-color:#f43f5e4d;transform:translateY(-6px)}.card-image-wrapper{background:#0f172a66;width:100%;padding-top:100%;position:relative;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0}.glass-card:hover .card-image{transform:scale(1.06)}.card-image-overlay{opacity:0;background:#0b0f1966;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.glass-card:hover .card-image-overlay{opacity:1}.zoom-text{color:#fff;background:#000000b3;border:1px solid #fff3;border-radius:9999px;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.card-content{flex-direction:column;flex-grow:1;padding:1.25rem;display:flex}.card-title{color:var(--text-primary);margin-bottom:.5rem;font-size:1.1rem;font-weight:700;line-height:1.4}.card-meta{color:var(--text-secondary);word-break:break-all;margin-bottom:.85rem;font-size:.8rem}.tag-container{flex-wrap:wrap;gap:.35rem;margin-top:auto;display:flex}.tag{color:#fda4af;background:#f43f5e14;border:1px solid #f43f5e26;border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.modal-overlay{-webkit-backdrop-filter:blur(16px);z-index:1000;background:#07090fd9;justify-content:center;align-items:center;padding:1.5rem;animation:.3s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:600px;box-shadow:var(--shadow-lg);background:#111827;border:1px solid #ffffff1a;border-radius:24px;flex-direction:column;display:flex;position:relative;overflow:hidden}.modal-close{color:#fff;cursor:pointer;z-index:10;background:#0009;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;transition:background-color .2s;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{background:#f43f5ecc}.modal-image{object-fit:contain;background:#07090f;width:100%;max-height:70vh}.modal-info{border-top:1px solid #ffffff14;padding:1.5rem}.modal-info h3{margin-bottom:.5rem;font-size:1.35rem;font-weight:750}.modal-info p{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem}.app-footer{text-align:center;color:var(--text-secondary);border-top:1px solid var(--glass-border);margin-top:5rem;padding:3rem 0 1rem;font-size:.85rem}.spinner{border:3px solid #ffffff1a;border-top-color:var(--accent-color);border-radius:50%;width:40px;height:40px;margin:0 auto 1.5rem;animation:1s ease-in-out infinite spin}.state-message p{color:var(--text-secondary)}.no-results-emoji{margin-bottom:1rem;font-size:3rem}.no-results-text{margin-bottom:1.5rem}.reset-button{background:var(--accent-gradient);color:#fff;cursor:pointer;border:none;border-radius:9999px;padding:.6rem 1.5rem;font-weight:600;transition:opacity .2s;box-shadow:0 4px 12px #f43f5e4d}.reset-button:hover{opacity:.9}
