@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";
:root{--bg:#0e0e10;--surface:#17171b;--surface-2:#1f1f25;--border:#26262c;--border-warm:#5b403b;--accent:#e8452c;--accent-bright:#ff553a;--text:#e4e1e9;--muted:#e4beb7;--dim:#8c8589;--danger:#f87171;--radius:12px;--app-width:500px;--content:var(--app-width);--mobile-pad:20px}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#08080a}body{color:var(--text);overflow-wrap:anywhere;background:#08080a;min-height:100vh;margin:0;font-family:Pretendard,sans-serif}.mobile-app-shell{width:min(100%, var(--app-width));background:linear-gradient(#ffffff03 1px, transparent 1px), var(--bg);background-size:100% 48px;min-height:100vh;margin:0 auto;overflow-x:clip;box-shadow:0 0 0 1px #ffffff09,0 0 56px #00000052}.admin-root{min-height:100vh}body,button,input,textarea,select{font-family:Pretendard,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font-size:16px}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}button,a{-webkit-tap-highlight-color:transparent}.site-header{z-index:50;height:calc(64px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(12px, env(safe-area-inset-left)) 0 max(12px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 94%, transparent);border-bottom:1px solid var(--border-warm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-columns:48px 1fr 92px;align-items:center;display:grid;position:sticky;top:0}.brand{color:var(--text);letter-spacing:-.06em;justify-self:center;font-size:clamp(25px,7vw,38px);font-style:italic;font-weight:900;line-height:1}.brand span{color:var(--accent-bright)}.icon-button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.header-actions{justify-self:end;display:flex}.desktop-calendar{display:none}.app-main{width:min(100%, var(--content));min-height:calc(100vh - 132px);padding:28px var(--mobile-pad) calc(94px + env(safe-area-inset-bottom,0px));margin:0 auto}.minimal-main{min-height:100vh}.bottom-nav{z-index:60;width:min(100%, var(--app-width));height:calc(72px + env(safe-area-inset-bottom,0px));padding:0 max(8px, env(safe-area-inset-right)) env(safe-area-inset-bottom,0px) max(8px, env(safe-area-inset-left));border-top:1px solid var(--border-warm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0d0e13f7;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;right:auto;transform:translate(-50%)}.bottom-link{min-width:44px;min-height:56px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex;position:relative}.bottom-link.active{color:var(--accent-bright);background:linear-gradient(#1f1f25,#0000)}.bottom-link.active:before{content:"";background:var(--accent);height:2px;position:absolute;top:0;left:12%;right:12%}.page-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.page-head h1,.section-title{letter-spacing:-.04em;margin-bottom:6px;font-size:clamp(27px,7vw,42px)}.page-head p,.section-description{color:var(--muted);margin-bottom:0;line-height:1.6}.head-link,.text-link{color:var(--accent-bright);white-space:nowrap;font-size:14px;font-weight:700}.filter-bar{z-index:20;top:calc(64px + env(safe-area-inset-top,0px));margin:0 calc(-1 * var(--mobile-pad)) 30px;padding:12px var(--mobile-pad);scrollbar-width:none;background:color-mix(in srgb, var(--bg) 95%, transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);gap:8px;display:flex;position:sticky;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.horizontal-scroll::-webkit-scrollbar{display:none}.channel-tabs::-webkit-scrollbar{display:none}.chip,.filter-chip{min-height:40px;color:var(--muted);background:var(--surface);border:1px solid var(--border-warm);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.chip.active,.filter-chip.active{color:var(--accent-bright);border-color:var(--accent)}.date-group{margin-bottom:42px}.date-heading{color:var(--muted);margin-bottom:16px;font-size:16px;font-weight:500}.date-heading:first-letter{color:var(--accent-bright)}.performance-list{gap:10px;display:grid}.performance-card{background:var(--surface);border:1px solid var(--border-warm);grid-template-columns:90px minmax(0,1fr);align-items:stretch;gap:16px;min-height:146px;padding:12px 30px 12px 12px;transition:border-color .18s,transform .18s;display:grid;position:relative}.performance-card.compact{grid-template-columns:76px minmax(0,1fr);min-height:124px}.poster-frame{border:1px solid var(--border-warm);background:#34343a;min-height:118px;overflow:hidden}.poster-frame img,.artist-image img,.album-card img{object-fit:cover;width:100%;height:100%}.performance-copy{align-self:center;min-width:0}.performance-copy h3{margin-bottom:6px;font-size:18px;line-height:1.25}.eyebrow{color:var(--dim);letter-spacing:.04em;margin-bottom:8px;font-size:12px}.muted{color:var(--dim)}.line-clamp,.line-clamp-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp{-webkit-line-clamp:1}.line-clamp-2{-webkit-line-clamp:2}.price-line{color:var(--muted);margin-top:14px;font-size:14px;font-weight:700}.card-arrow{color:var(--border-warm);position:absolute;top:50%;right:8px;transform:translateY(-50%)}.artist-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.artist-card{background:var(--surface-2);border:1px solid var(--border-warm);overflow:hidden}.artist-image{aspect-ratio:4/5;filter:saturate(.65);background:#34343a;display:block;overflow:hidden}.artist-card-copy{padding:12px;position:relative}.artist-card h3{margin:0 44px 3px 0;font-size:18px}.artist-card p{color:var(--muted);margin-bottom:8px;font-size:13px}.artist-card span{color:var(--accent-bright);font-size:12px;font-weight:700}.heart-button{width:38px;height:38px;color:var(--muted);border:1px solid var(--border-warm);cursor:pointer;background:#29292f;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.heart-button.active{color:var(--accent-bright)}.primary-button,.secondary-button,.danger-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:52px;padding:13px 20px;font-weight:800;display:inline-flex}.primary-button{color:#fff;background:var(--accent);border:1px solid var(--accent)}.secondary-button{color:var(--muted);background:var(--surface);border:1px solid var(--border)}.danger-button{color:#fff;background:#7f1d1d;border:1px solid #991b1b}.primary-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.full-button{width:100%}.tabs{border-bottom:1px solid var(--border);display:flex}.tab{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;justify-content:center;align-items:center;padding:0 20px;display:inline-flex}.tab.active{color:var(--accent-bright);border-bottom-color:var(--accent)}.search-box{position:relative}.search-box input{width:100%;height:58px;color:var(--text);background:var(--surface);border:1px solid var(--border-warm);border-radius:8px;outline:none;padding:0 54px}.search-box svg{color:var(--muted);position:absolute;top:50%;left:18px;transform:translateY(-50%)}.search-box button{width:44px;height:44px;color:var(--accent-bright);background:0 0;border:0;position:absolute;top:7px;right:8px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.form-stack{gap:22px;display:grid}.field{gap:9px;display:grid}.field label{color:var(--text);font-size:14px;font-weight:700}.field input,.field textarea,.field select{width:100%;min-height:52px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none;padding:13px 14px}.field textarea{resize:vertical;min-height:130px;line-height:1.7}.field input:focus,.field textarea:focus,.field select:focus,.search-box input:focus{border-color:var(--accent)}.form-error,.form-success{border-radius:8px;padding:12px 14px;line-height:1.5}.form-error{color:#fecaca;background:#450a0a;border:1px solid #7f1d1d}.form-success{color:#bbf7d0;background:#052e16;border:1px solid #166534}.post-list{gap:16px;display:grid}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:58px minmax(0,1fr);padding:18px 16px 16px 8px;display:grid}.vote-stack{color:var(--muted);flex-direction:column;align-items:center;line-height:1.6;display:flex}.vote-stack strong{color:var(--text)}.post-copy h3{margin-bottom:10px;font-size:20px;line-height:1.45}.post-copy>p:not(.post-meta){color:#c8c6c8;line-height:1.7}.post-meta{color:var(--dim);margin-bottom:8px;font-size:12px}.post-actions{color:var(--muted);gap:26px;margin-top:18px;font-size:13px;display:flex}.post-actions span{align-items:center;gap:6px;display:inline-flex}.floating-button{z-index:30;right:max(24px, calc((100vw - var(--app-width)) / 2 + 24px));bottom:calc(92px + env(safe-area-inset-bottom,0px));color:#fff;background:var(--accent);border:0;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:inline-flex;position:fixed}.channel-tabs{border-bottom:1px solid var(--border);gap:22px;display:flex;overflow-x:auto}.channel-tab{min-height:50px;color:var(--dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none}.channel-tab.active{color:var(--text);border-bottom-color:var(--accent)}.chat-feed{flex-direction:column;min-height:430px;display:flex}.chat-line{border-bottom:1px solid var(--border);padding:16px 0}.chat-line:nth-child(2n){background:var(--surface);margin:0 -20px;padding-inline:20px}.chat-line header{align-items:center;gap:8px;margin-bottom:7px;display:flex}.chat-line strong{color:var(--muted);font-size:14px}.chat-line time{color:#777179;font-size:12px}.chat-line p{color:#d8d5dc;margin:0;line-height:1.7}.chat-composer{z-index:15;bottom:calc(72px + env(safe-area-inset-bottom,0px));border:1px solid var(--border);background:#1b1b21;border-radius:20px 20px 0 0;grid-template-columns:1fr auto;gap:10px;margin:20px -8px -10px;padding:12px;display:grid;position:sticky}.chat-composer input{min-width:0;height:48px;color:var(--text);border:1px solid var(--border);background:#101014;border-radius:8px;padding:0 14px}.chat-composer button{border-radius:7px;min-width:58px}.loading-state,.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex}.loading-state{color:var(--dim)}.loading-mark{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.empty-orbit{width:96px;height:96px;color:var(--muted);border:2px solid var(--border-warm);border-radius:50%;place-items:center;margin-bottom:28px;font-size:30px;font-weight:200;display:grid}.empty-state h2{margin-bottom:10px}.empty-state p{max-width:340px;color:var(--muted);line-height:1.7}.calendar-shell{max-width:700px;margin:0 auto}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{color:var(--dim);padding:10px 0;font-size:12px}.calendar-day{min-height:62px;color:var(--dim);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.calendar-day.has-event{color:var(--text)}.calendar-day.selected{color:var(--accent-bright);border-color:var(--accent)}.event-dot{min-width:6px;height:6px;color:var(--accent-bright);padding-left:9px;font-size:9px;position:absolute;bottom:7px}.event-dot:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:1px;left:0}.bottom-sheet{background:var(--surface-2);border:1px solid var(--border);border-radius:18px 18px 0 0;margin:24px -20px -20px;padding:22px 20px 30px}.bottom-sheet:before{content:"";background:var(--border-warm);border-radius:99px;width:40px;height:4px;margin:-10px auto 16px;display:block}.detail-hero{min-height:520px;margin:-28px -20px 0;position:relative;overflow:hidden}.detail-hero img{object-fit:cover;filter:brightness(.72)saturate(.85);width:100%;height:600px}.detail-hero:after{content:"";background:linear-gradient(transparent 34%, var(--bg) 92%);position:absolute;inset:0}.detail-hero-copy{z-index:2;position:absolute;bottom:38px;left:20px;right:20px}.detail-hero-copy h1{color:#fff;letter-spacing:-.05em;max-width:620px;margin:10px 0 0;font-size:clamp(42px,13vw,88px);line-height:.98}.tag-row,.social-row{flex-wrap:wrap;gap:8px;display:flex}.tag{color:var(--muted);border:1px solid var(--border-warm);background:#17171bd1;border-radius:5px;padding:6px 10px;font-size:12px}.detail-grid{gap:26px;display:grid}.detail-info{gap:10px;display:grid}.info-row{background:var(--surface);border:1px solid var(--border-warm);border-radius:var(--radius);grid-template-columns:48px 1fr;align-items:center;gap:14px;min-height:84px;padding:12px;display:grid}.info-icon{width:48px;height:48px;color:var(--accent-bright);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;place-items:center;display:grid}.info-row small{color:var(--muted)}.info-row p{margin:6px 0 0;font-size:17px}.artist-chips{gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.artist-chip{background:var(--surface);border:1px solid var(--border-warm);border-radius:999px;flex:none;align-items:center;gap:9px;min-height:52px;padding:6px 14px 6px 6px;display:inline-flex}.artist-chip img{object-fit:cover;border-radius:50%;width:38px;height:38px}.prose{color:#d4cdd1;white-space:pre-line;line-height:1.9}.sticky-cta{z-index:20;bottom:calc(72px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--border-warm);margin:28px -20px -20px;padding:14px 20px;position:sticky}.profile-hero{border-bottom:1px solid var(--border);min-height:300px;margin:-28px -20px 0;padding:190px 20px 24px;position:relative;overflow:hidden}.profile-hero>img{object-fit:cover;filter:grayscale(.55)brightness(.48);width:100%;height:100%;position:absolute;inset:0}.profile-hero:after{content:"";background:linear-gradient(transparent, var(--bg));position:absolute;inset:0}.profile-content{z-index:2;position:relative}.profile-content h1{margin-bottom:8px;font-size:clamp(40px,13vw,74px);line-height:.98}.profile-actions{grid-template-columns:1fr auto;gap:10px;margin-top:18px;display:grid}.profile-bio{color:#ddd5da;padding:24px 0;line-height:1.85}.profile-tabs{margin:0 -20px 24px;overflow-x:auto}.album-row,.horizontal-scroll{scrollbar-width:none;gap:14px;padding-bottom:8px;display:flex;overflow-x:auto}.album-card{flex:0 0 150px}.album-card img{aspect-ratio:1;border:1px solid var(--border-warm)}.album-card h3{margin:10px 0 3px;font-size:15px}.album-card p{color:var(--muted);font-size:12px}.campaign-page{text-align:center;max-width:520px;margin:0 auto}.campaign-card{background:var(--surface-2);border-radius:var(--radius);padding:14px;position:relative;transform:rotate(-1deg)}.campaign-card img{aspect-ratio:4/5;object-fit:cover;filter:grayscale(.7);border-radius:7px;width:100%}.campaign-stamp{color:#111;background:var(--accent-bright);border-radius:50%;place-items:center;width:58px;height:58px;font-size:12px;display:grid;position:absolute;top:-14px;left:-13px;transform:rotate(-12deg)}.campaign-name{color:#ffb4a6;text-align:left;background:#08080a;padding:10px 14px;font-size:24px;font-style:italic;font-weight:900;position:absolute;bottom:42px;left:30px}.progress-panel{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:28px 0;padding:24px 18px}.progress-number{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.progress-number strong{color:var(--accent-bright);font-size:48px}.progress-track{background:#34343a;border-radius:99px;height:30px;overflow:hidden}.progress-fill{background:var(--accent);height:100%}.article{max-width:760px;margin:0 auto}.article h1{margin:16px 0 26px;font-size:clamp(28px,8vw,48px);line-height:1.25}.article-body{color:#d7d3da;white-space:pre-line;font-size:17px;line-height:1.9}.article-image{object-fit:cover;border:1px solid var(--border);width:100%;max-height:520px;margin:28px 0}.article-actions{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 0;display:flex}.inline-vote{align-items:center;gap:8px;display:flex}.inline-vote button{width:44px;height:44px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:50%}.comments{padding:28px 0}.comment{border-bottom:1px solid var(--border);padding:16px 0}.comment.reply{border-left:2px solid var(--border-warm);margin-left:36px;padding-left:14px}.comment header{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.comment p{color:#d7d3da;margin:10px 0;line-height:1.7}.comment button{color:var(--dim);background:0 0;border:0;font-size:13px}.comment-composer{bottom:calc(72px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--border);grid-template-columns:1fr 48px;gap:10px;padding:14px 0;display:grid;position:sticky}.comment-composer input{background:var(--surface);border:1px solid var(--muted);border-radius:999px;height:48px;padding:0 16px}.comment-composer button{color:#fff;background:var(--accent);border:0;border-radius:50%}.login-page{background:#08080a;place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{text-align:center;background:var(--bg);border:1px solid var(--border);flex-direction:column;justify-content:center;width:min(100%,468px);min-height:660px;padding:36px 20px;display:flex}.login-logo{color:var(--accent-bright);letter-spacing:-.07em;margin-bottom:12px;font-size:clamp(46px,13vw,72px);font-style:italic;font-weight:900}.login-tagline{color:var(--muted);letter-spacing:.16em;margin-bottom:84px}.google-slot,.dev-login{gap:10px;display:grid}.dev-login{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.browse-link{color:var(--muted);margin-top:24px}.me-profile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:68px 1fr auto;align-items:center;gap:14px;padding:18px;display:grid}.me-avatar{width:68px;height:68px;color:var(--accent-bright);background:#29292f;border-radius:8px;place-items:center;font-size:28px;display:grid}.me-section{margin-top:32px}.me-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.me-menu button,.me-menu a,.me-menu label{width:100%;min-height:58px;color:var(--text);border:0;border-bottom:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.toggle{background:#34343a;border-radius:99px;width:46px;height:26px;padding:3px}.toggle.on{background:var(--accent)}.toggle:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .18s;display:block}.toggle.on:after{transform:translate(20px)}.admin-shell{background:#0a0a0c;min-height:100vh;padding:24px}.admin-header{justify-content:space-between;align-items:center;width:min(100%,1440px);margin:0 auto 24px;display:flex}.admin-header .brand{justify-self:auto}.admin-layout{gap:18px;width:min(100%,1440px);margin:auto;display:grid}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px}.stat-card strong{color:var(--accent-bright);margin-top:8px;font-size:30px;display:block}.admin-tabs{gap:6px;display:flex;overflow-x:auto}.admin-table{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.admin-table table{border-collapse:collapse;width:100%;min-width:720px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:13px 14px;font-size:14px}.admin-table th{color:var(--muted)}.admin-actions{gap:6px;display:flex}.small-button{min-height:36px;color:var(--text);border:1px solid var(--border);background:#29292f;border-radius:6px;padding:7px 10px}@keyframes spin{to{transform:rotate(360deg)}}@media (hover:hover){.performance-card:hover,.artist-card:hover,.post-card:hover{border-color:var(--accent);transform:translateY(-2px)}.icon-button:hover,.bottom-link:hover,.text-link:hover{color:var(--accent-bright)}}@media (min-width:768px){.stat-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:1100px){.admin-layout{grid-template-columns:240px minmax(0,1fr)}}@media (max-width:360px){:root{--mobile-pad:14px}.performance-card{grid-template-columns:78px minmax(0,1fr);gap:10px}.artist-card h3{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
