*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a14;--bg-secondary:#12121e;--bg-card:#1a1a2e;--bg-hover:#222240;--gold:#c9a96e;--gold-light:#e0c992;--gold-dark:#a08040;--text-primary:#e8e8f0;--text-secondary:#9898b0;--text-muted:#8888a0;--border:#2a2a40;--success:#4ade80;--danger:#f87171;--font-serif:"Noto Serif KR", serif;--font-sans:"Noto Sans KR", sans-serif}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.7}a{color:var(--gold);text-decoration:none}button{font-family:var(--font-sans);cursor:pointer;border:none;outline:none}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::selection{background:var(--gold);color:var(--bg-primary)}.app{flex-direction:column;min-height:100vh;display:flex}.header{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0a14eb;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;max-width:1100px;height:60px;margin:0 auto;padding:0 20px;display:flex}.logo{font-family:var(--font-serif);color:var(--gold);white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.logo-img{flex-shrink:0;height:36px}.choir-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:4px;display:flex;overflow-x:auto}.choir-tabs::-webkit-scrollbar{display:none}.choir-tab{min-width:0;color:var(--text-secondary);text-align:center;white-space:nowrap;background:0 0;border-bottom:3px solid #0000;flex:1;padding:16px 12px;font-size:16px;font-weight:500;transition:all .2s}.choir-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.choir-tab.active{color:var(--gold);border-bottom-color:var(--gold);background:#c9a96e0f}.nav{gap:2px;display:flex}.nav-btn{color:var(--text-secondary);background:0 0;border-radius:6px;min-height:48px;padding:12px 16px;font-size:16px;font-weight:500;transition:all .2s}.nav-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-btn.active{color:var(--gold);background:#c9a96e1a}@media (width<=768px){.header-inner{height:56px;padding:0 8px}.logo{gap:6px;font-size:14px}.logo-cross{width:20px;height:20px}.nav{gap:0}.nav-btn{border-radius:4px;min-height:44px;padding:8px 10px;font-size:14px}.nav-btn.event-nav{border-radius:16px;padding:8px 10px;font-size:14px}}@media (width<=360px){.logo{gap:4px;font-size:12px}.logo-cross{width:18px;height:18px}.nav-btn{padding:8px 6px;font-size:13px}}.main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px 20px 80px}.section-title{font-family:var(--font-sans);color:var(--text-primary);align-items:center;gap:12px;margin-bottom:24px;font-size:26px;font-weight:700;display:flex}.section-title-link{cursor:pointer;transition:color .2s}.section-title-link:hover{color:var(--gold)}.section-title:before{content:"";background:var(--gold);border-radius:2px;width:4px;height:28px}.home-section{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:28px}.home-section:last-child{border-bottom:none;margin-bottom:0}.install-section{border-bottom:none!important}.install-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:24px}.install-title{color:var(--text-primary);margin-bottom:6px;font-size:17px;font-weight:600}.install-desc{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.install-btn{background:var(--gold);color:var(--bg-primary);border-radius:10px;min-height:48px;padding:12px 28px;font-size:15px;font-weight:700;transition:background .2s}.install-btn:hover{background:var(--gold-light)}.install-hint{color:var(--text-muted);font-size:13px}.ios-guide{text-align:left;background:var(--bg-hover);color:var(--text-secondary);border-radius:8px;margin-top:16px;padding:16px;font-size:14px;line-height:2}.ios-guide strong{color:var(--gold)}.hero{text-align:center;background:linear-gradient(#c9a96e14 0%,#0000 100%);border-radius:16px;margin-bottom:32px;padding:48px 20px 40px}.hero-logo{opacity:.7;height:60px;margin-bottom:16px}.hero h1,.hero-logo+.choir-name{font-family:var(--font-serif);color:var(--text-primary);margin-bottom:8px;font-size:32px;font-weight:700}.hero .choir-name{color:var(--gold);margin-bottom:4px;font-size:18px;font-weight:500}.hero .choir-desc{color:var(--text-secondary);font-size:15px}@media (width<=768px){.hero h1{font-size:26px}.hero{padding:32px 16px 28px}}.part-preference{background:var(--bg-card);border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;padding:14px 20px;display:flex}.part-preference span{color:var(--text-secondary);font-size:14px}.part-pref-btn{background:var(--bg-hover);color:var(--text-secondary);border-radius:8px;min-width:56px;min-height:48px;padding:12px 18px;font-size:16px;font-weight:600;transition:all .2s}.part-pref-btn:hover{color:var(--gold-light);background:#c9a96e26}.part-pref-btn.active{background:var(--gold);color:var(--bg-primary)}.song-list{flex-direction:column;gap:16px;display:flex}.song-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px;transition:border-color .2s}.song-card:hover{border-color:#c9a96e4d}.song-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.song-info h3{font-family:var(--font-serif);color:var(--text-primary);margin-bottom:4px;font-size:20px;font-weight:600}.song-meta{color:var(--text-secondary);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.song-date{color:var(--gold);font-weight:500}.part-buttons{flex-wrap:wrap;gap:8px;display:flex}.part-btn{background:var(--bg-hover);min-width:64px;color:var(--text-secondary);border-radius:10px;flex:1;justify-content:center;align-items:center;min-height:48px;padding:10px 0;font-size:15px;font-weight:600;transition:all .2s;display:flex}.part-btn:hover{color:var(--gold-light);background:#c9a96e33;transform:translateY(-1px)}.part-btn.highlight{color:var(--gold);background:#c9a96e26;border:1px solid #c9a96e4d}.part-btn.satb{color:var(--gold-light);background:#c9a96e2e;border:1px solid #c9a96e59;font-weight:700}.modal-overlay{z-index:1000;background:#000000eb;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-header{justify-content:space-between;align-items:center;width:100%;max-width:900px;margin-bottom:12px;padding:0 4px;display:flex}.modal-title{font-family:var(--font-serif);color:var(--text-primary);font-size:18px}.modal-title .part-label{color:var(--gold);margin-left:8px}.modal-status{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.modal-status .dot{background:var(--success);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.modal-close{width:48px;height:48px;color:var(--text-primary);background:#c9a96e33;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;transition:background .2s;display:flex}.modal-close:hover{background:#c9a96e66}.modal-video{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;max-width:900px;overflow:hidden}.modal-video iframe{border:none;width:100%;height:100%}.modal-bottom{justify-content:space-between;align-items:center;width:100%;max-width:900px;margin-top:12px;display:flex}.wake-lock-status{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.wake-lock-status .dot-green{background:var(--success);border-radius:50%;width:6px;height:6px}@media (width<=768px){.song-card{padding:12px}.inline-video{border-radius:0;margin-left:-12px;margin-right:-12px}}.notice-list{flex-direction:column;gap:8px;display:flex}.notice-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.notice-header{width:100%;color:var(--text-primary);text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:16px 20px;font-size:16px;font-weight:500;transition:background .2s;display:flex}.notice-header:hover{background:var(--bg-hover)}.notice-date{color:var(--text-secondary);white-space:nowrap;margin-right:12px;font-size:13px}.notice-arrow{color:var(--text-muted);font-size:18px;transition:transform .2s}.notice-arrow.open{transform:rotate(180deg)}.notice-body{color:var(--text-secondary);padding:0 20px 16px;font-size:15px;line-height:1.8}.choir-info-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.choir-info-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px}.choir-info-card h3{font-family:var(--font-serif);color:var(--gold);margin-bottom:12px;font-size:20px;font-weight:600}.choir-info-card p{color:var(--text-secondary);font-size:15px;line-height:1.8}.choir-info-card .info-row{color:var(--text-secondary);gap:8px;margin-top:8px;font-size:14px;display:flex}.choir-info-card .info-label{color:var(--gold);white-space:nowrap;font-weight:500}.editor-toggle{background:var(--gold);width:56px;height:56px;color:var(--bg-primary);z-index:200;border-radius:50%;justify-content:center;align-items:center;font-size:24px;transition:transform .2s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 20px #c9a96e66}.editor-toggle:hover{transform:scale(1.1)}.editor-panel{background:var(--bg-secondary);border-top:2px solid var(--gold);z-index:300;border-radius:16px 16px 0 0;max-height:80vh;padding:24px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 40px #00000080}.editor-panel h3{font-family:var(--font-serif);color:var(--gold);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:20px;display:flex}.editor-form{grid-template-columns:1fr 1fr;gap:12px;max-width:700px;display:grid}@media (width<=600px){.editor-form{grid-template-columns:1fr}}.editor-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}.editor-form label.full{grid-column:1/-1}.editor-form input,.editor-form select{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);border-radius:8px;padding:10px 14px}.editor-form input:focus,.editor-form select:focus{border-color:var(--gold);outline:none}.editor-actions{grid-column:1/-1;gap:8px;margin-top:8px;display:flex}.btn-primary{background:var(--gold);color:var(--bg-primary);border-radius:10px;padding:12px 24px;font-size:15px;font-weight:600;transition:background .2s}.btn-primary:hover{background:var(--gold-light)}.btn-secondary{background:var(--bg-hover);color:var(--text-secondary);border-radius:10px;padding:12px 24px;font-size:15px;font-weight:500;transition:all .2s}.btn-secondary:hover{background:var(--border);color:var(--text-primary)}.footer{text-align:center;border-top:1px solid var(--border);color:var(--text-muted);padding:24px 20px;font-size:13px}.inline-video{border:1px solid #c9a96e4d;border-radius:12px;margin-top:16px;overflow:hidden}.inline-video-header{background:#c9a96e1a;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.inline-video-title{color:var(--gold);font-size:14px;font-weight:500}.inline-video-close{width:48px;height:48px;color:var(--text-primary);background:#c9a96e33;border-radius:8px;justify-content:center;align-items:center;font-size:20px;transition:background .2s;display:flex}.inline-video-close:hover{background:#c9a96e66}.inline-video-wrapper{background:#000;width:100%;padding-bottom:56.25%;position:relative}.inline-video-wrapper iframe{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.part-btn.playing{background:var(--gold);color:var(--bg-primary);border:2px solid var(--gold);animation:2s infinite pulse-btn;box-shadow:0 0 0 3px #c9a96e4d}@keyframes pulse-btn{0%,to{box-shadow:0 0 0 3px #c9a96e4d}50%{box-shadow:0 0 0 6px #c9a96e26}}.nav-btn.event-nav{color:var(--gold);border:1px solid var(--gold);background:#c9a96e26;border-radius:20px;font-weight:600;animation:3s infinite gentle-glow}.nav-btn.event-nav.active{background:#c9a96e4d}@keyframes gentle-glow{0%,to{box-shadow:0 0 #c9a96e4d}50%{box-shadow:0 0 8px 2px #c9a96e4d}}.admin{background:var(--bg-primary);min-height:100vh;color:var(--text-primary)}.admin-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0a14eb;align-items:center;gap:16px;padding:16px 20px;display:flex}.admin-header h1{font-family:var(--font-serif);color:var(--gold);font-size:20px}.admin-back{background:var(--bg-hover);color:var(--text-primary);border-radius:8px;min-height:44px;padding:10px 16px;font-size:16px;transition:background .2s}.admin-back:hover{background:var(--border)}.admin-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex}.admin-tab{color:var(--text-secondary);text-align:center;background:0 0;border-bottom:3px solid #0000;flex:1;min-height:52px;padding:16px 12px;font-size:16px;font-weight:500;transition:all .2s}.admin-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-tab.active{color:var(--gold);border-bottom-color:var(--gold);background:#c9a96e0f}.admin-content{max-width:900px;margin:0 auto;padding:20px}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.admin-select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);font-size:16px;font-family:var(--font-sans);border-radius:10px;flex:1;min-width:200px;min-height:48px;padding:12px 16px}.admin-select:focus{border-color:var(--gold);outline:none}.admin-btn{background:var(--bg-hover);color:var(--text-secondary);white-space:nowrap;min-height:48px;font-size:16px;font-weight:500;font-family:var(--font-sans);border-radius:10px;padding:12px 20px;transition:all .2s}.admin-btn:hover{background:var(--border);color:var(--text-primary)}.admin-btn.primary{background:var(--gold);color:var(--bg-primary);font-weight:600}.admin-btn.primary:hover{background:var(--gold-light)}.admin-btn.danger{background:var(--danger);color:#fff}.admin-btn.danger:hover{background:#ef4444}.admin-btn.small{min-height:40px;padding:8px 16px;font-size:14px}.admin-list{flex-direction:column;gap:8px;display:flex}.admin-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.admin-item-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.admin-item-info strong{color:var(--text-primary);font-size:17px}.admin-item-meta{color:var(--text-secondary);flex-wrap:wrap;gap:12px;font-size:14px;display:flex}.admin-item-videos{color:var(--text-muted);font-size:13px}.admin-item-actions{flex-shrink:0;gap:8px;display:flex}.admin-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:16px}.admin-form{background:var(--bg-card);border:1px solid var(--gold);border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;padding:20px;display:grid}.admin-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:15px;display:flex}.admin-form label.full{grid-column:1/-1}.admin-form input,.admin-form select,.admin-form textarea{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-size:16px;font-family:var(--font-sans);border-radius:8px;min-height:48px;padding:12px 14px}.admin-form textarea{resize:vertical;min-height:120px}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:var(--gold);outline:none}.admin-form-section{color:var(--gold);grid-column:1/-1;padding-top:8px;font-size:15px;font-weight:600}.admin-form-actions{grid-column:1/-1;gap:8px;margin-top:8px;display:flex}@media (width<=600px){.admin-form{grid-template-columns:1fr}.admin-item{flex-direction:column;align-items:flex-start}.admin-item-actions{align-self:flex-end}}.admin-json-info{color:var(--text-secondary);background:#c9a96e1a;border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:15px}.admin-json-info code{background:var(--bg-hover);color:var(--gold);border-radius:4px;padding:2px 6px}.admin-json{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);white-space:pre;border-radius:12px;max-height:70vh;padding:20px;font-family:Courier New,monospace;font-size:13px;line-height:1.5;overflow:auto}.admin-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.admin-dialog{background:var(--bg-secondary);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:32px}.admin-dialog p{color:var(--text-primary);margin-bottom:24px;font-size:18px}.admin-dialog-actions{justify-content:center;gap:12px;display:flex}.admin-dialog-actions .admin-btn{min-width:100px}.admin-pin-gate{background:var(--bg-primary);justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:20px;display:flex}.admin-pin-form{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:360px;padding:48px 32px}.admin-pin-form h2{font-family:var(--font-serif);color:var(--gold);margin-bottom:8px;font-size:22px}.admin-pin-form p{color:var(--text-secondary);margin-bottom:32px;font-size:15px}.pin-boxes{justify-content:center;gap:12px;margin-bottom:20px;display:flex}.pin-box{background:var(--bg-primary);border:2px solid var(--border);width:56px;height:64px;color:var(--text-primary);text-align:center;font-size:28px;font-family:var(--font-sans);caret-color:var(--gold);border-radius:12px;font-weight:700;transition:border-color .2s,box-shadow .2s}.pin-box:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c9a96e33}.pin-boxes.pin-error .pin-box{border-color:var(--danger);animation:.4s shake}.pin-error-msg{color:var(--danger);font-size:15px;font-weight:500}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.recent-posts{flex-direction:column;gap:6px;display:flex}.recent-post-item{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:14px 16px;transition:background .15s}.recent-post-item:hover{background:var(--bg-hover)}.recent-post-title{color:var(--text-primary);margin-bottom:4px;font-size:15px}.recent-post-meta{color:var(--text-muted);gap:12px;font-size:12px;display:flex}.board-container{max-width:900px;margin:0 auto;padding:0 16px}.board-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.board-header .section-title{margin-bottom:0}.board-category-tabs{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:6px;margin-bottom:12px;padding-bottom:12px;display:flex;overflow-x:auto}.board-cat-tab{background:var(--bg-card);color:var(--text-secondary);white-space:nowrap;border-radius:20px;align-items:center;min-height:48px;padding:8px 16px;font-size:14px;transition:all .2s;display:flex}.board-cat-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.board-cat-tab.active{background:var(--gold);color:var(--bg-primary);font-weight:600}.board-search{align-items:center;gap:8px;margin-bottom:16px;display:flex}.board-search-input{flex:1}.board-input{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text-primary);font-size:15px;font-family:var(--font-sans);border-radius:8px;min-height:48px;padding:10px 14px}.board-input:focus{border-color:var(--gold);outline:none}.board-input::placeholder{color:var(--text-muted)}.board-select{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text-primary);font-size:15px;font-family:var(--font-sans);cursor:pointer;border-radius:8px;min-height:48px;padding:10px 14px}.board-select:focus{border-color:var(--gold);outline:none}.board-btn-primary{background:var(--gold);color:var(--bg-primary);white-space:nowrap;border-radius:8px;min-height:48px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .2s}.board-btn-primary:hover{background:var(--gold-light)}.board-btn-primary:disabled{opacity:.5;cursor:not-allowed}.board-btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);white-space:nowrap;border-radius:8px;min-height:48px;padding:10px 16px;font-size:14px;transition:all .2s}.board-btn-secondary:hover{background:var(--bg-hover)}.board-btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0;border-radius:8px;min-height:48px;padding:10px 16px;font-size:14px;transition:all .2s}.board-btn-danger:hover{background:var(--danger);color:#fff}.board-btn-text{color:var(--gold);background:0 0;min-height:48px;padding:8px 12px;font-size:14px}.board-btn-text:hover{color:var(--gold-light)}.board-error{color:var(--danger);margin-top:8px;font-size:14px}.board-loading,.board-empty{text-align:center;color:var(--text-secondary);padding:60px 20px;font-size:16px}.board-table{border-collapse:collapse;width:100%;font-size:14px}.board-table thead{border-bottom:2px solid var(--border)}.board-table th{color:var(--text-muted);text-align:left;padding:12px 8px;font-size:13px;font-weight:500}.board-th-cat{width:90px}.board-th-author,.board-th-date{width:80px}.board-th-views{text-align:center;width:50px}.board-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.board-row:hover{background:var(--bg-hover)}.board-row.pinned{background:#c9a96e14}.board-row.pinned:hover{background:#c9a96e26}.board-row td{padding:12px 8px}.board-td-title{color:var(--text-primary);font-size:15px}.board-td-author{color:var(--text-secondary);font-size:13px}.board-td-date{color:var(--text-muted);font-size:13px}.board-td-views{color:var(--text-muted);text-align:center;font-size:13px}.board-cat-label{background:var(--bg-hover);color:var(--text-secondary);border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.board-pin-badge{background:var(--gold);color:var(--bg-primary);border-radius:4px;margin-right:6px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.board-yt-icon{color:red;margin-left:6px;font-size:12px}.board-cards{display:none}@media (width<=768px){.board-table{display:none}.board-cards{flex-direction:column;gap:8px;display:flex}}.board-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:14px;transition:background .15s}.board-card:hover{background:var(--bg-hover)}.board-card.pinned{border-color:var(--gold-dark);background:#c9a96e14}.board-card-top{gap:6px;margin-bottom:6px;display:flex}.board-card-title{color:var(--text-primary);margin-bottom:6px;font-size:15px;line-height:1.4}.board-card-meta{color:var(--text-muted);gap:12px;font-size:12px;display:flex}.board-pagination{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:24px;display:flex}.board-page-btn{background:var(--bg-card);border:1px solid var(--border);min-width:40px;min-height:40px;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;font-size:14px;display:flex}.board-page-btn:hover:not(:disabled){background:var(--bg-hover)}.board-page-btn.active{background:var(--gold);color:var(--bg-primary);border-color:var(--gold);font-weight:600}.board-page-btn:disabled{opacity:.3;cursor:not-allowed}.board-back-btn{margin-bottom:16px;font-size:15px}.board-post{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:24px}.board-post-header{gap:8px;margin-bottom:12px;display:flex}.board-post-title{font-family:var(--font-serif);color:var(--text-primary);margin-bottom:12px;font-size:22px;line-height:1.4}.board-post-meta{color:var(--text-muted);border-bottom:1px solid var(--border);gap:16px;margin-bottom:24px;padding-bottom:16px;font-size:13px;display:flex}.board-post-content{color:var(--text-primary);word-break:break-word;font-size:15px;line-height:1.8}.board-post-content h2{color:var(--gold);margin:24px 0 12px;font-size:20px}.board-post-content h3{color:var(--gold-light);margin:20px 0 10px;font-size:17px}.board-post-content p{margin-bottom:12px}.board-post-content ul,.board-post-content ol{margin-bottom:12px;padding-left:24px}.board-post-content a{color:var(--gold);text-decoration:underline}.board-post-content img,.board-post-content iframe{border-radius:8px;max-width:100%;margin:12px 0}.board-yt-embed{border-radius:10px;height:0;margin-bottom:24px;padding-bottom:56.25%;position:relative;overflow:hidden}.board-yt-embed iframe{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.board-attachments{border-top:1px solid var(--border);margin-top:24px;padding-top:16px}.board-attachments h4{color:var(--text-secondary);margin-bottom:12px;font-size:14px}.board-image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.board-attach-image{cursor:pointer;aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%;transition:opacity .2s}.board-attach-image:hover{opacity:.8}.board-pdf-wrap{margin-bottom:16px}.board-pdf-embed{border:1px solid var(--border);border-radius:8px;width:100%;height:400px;margin-bottom:8px}.board-file-download{background:var(--bg-hover);color:var(--gold);border-radius:8px;margin-bottom:6px;padding:10px 14px;transition:background .2s;display:block}.board-file-download:hover{background:var(--border)}.board-post-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;display:flex}.board-write-form{flex-direction:column;gap:16px;display:flex}.board-form-row{flex-direction:column;gap:6px;display:flex}.board-form-row label{color:var(--text-secondary);font-size:14px;font-weight:500}.board-form-row-inline{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=600px){.board-form-row-inline{grid-template-columns:1fr}}.board-yt-input-row{align-items:center;gap:12px;display:flex}.board-yt-input-row .board-input{flex:1}.board-checkbox-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;min-height:48px;font-size:14px;display:flex}.board-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold)}.board-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.board-editor-wrap{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;overflow:hidden}.board-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;padding:8px;display:flex}.board-toolbar-group{gap:2px;display:flex}.board-toolbar-sep{background:var(--border);width:1px;height:24px;margin:0 4px}.board-toolbar-btn{min-width:36px;min-height:36px;color:var(--text-secondary);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.board-toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.board-toolbar-btn.active{background:var(--gold);color:var(--bg-primary)}.board-toolbar-color{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:32px;height:32px;padding:2px}.board-editor-content{min-height:250px;padding:16px}.board-editor-content .tiptap{min-height:220px;color:var(--text-primary);outline:none;font-size:15px;line-height:1.7}.board-editor-content .tiptap p.is-editor-empty:first-child:before{color:var(--text-muted);content:attr(data-placeholder);float:left;pointer-events:none;height:0}.board-editor-content .tiptap h2{color:var(--gold);margin:16px 0 8px;font-size:20px}.board-editor-content .tiptap h3{color:var(--gold-light);margin:14px 0 6px;font-size:17px}.board-editor-content .tiptap a{color:var(--gold);text-decoration:underline}.board-editor-content .tiptap img{border-radius:8px;max-width:100%}.board-editor-content .tiptap ul,.board-editor-content .tiptap ol{padding-left:24px}.board-html-source{color:#a8e6cf;resize:vertical;background:#0d0d1a;border:none;outline:none;width:100%;min-height:250px;padding:16px;font-family:Courier New,Consolas,monospace;font-size:14px;line-height:1.6}.board-drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;color:var(--text-secondary);border-radius:10px;padding:24px;transition:border-color .2s}.board-drop-zone:hover{border-color:var(--gold)}.board-drop-zone p{margin:0;font-size:14px}.board-drop-hint{color:var(--text-muted)!important;margin-top:4px!important;font-size:12px!important}.board-upload-progress{margin-top:8px}.board-progress-item{color:var(--text-secondary);justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.board-file-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.board-file-item{background:var(--bg-hover);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.board-file-icon{font-size:16px}.board-file-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.board-file-size{color:var(--text-muted)}.board-file-remove{width:28px;height:28px;color:var(--danger);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:18px;display:flex}.board-file-remove:hover{background:#f871711a}.board-modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.board-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;padding:24px}.board-modal h3{color:var(--text-primary);margin-bottom:16px;font-size:18px}.board-modal form{flex-direction:column;gap:12px;display:flex}.board-modal-actions{justify-content:flex-end;gap:8px;display:flex}.board-lightbox{z-index:1100;cursor:pointer;background:#000000e6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.board-lightbox img{cursor:default;border-radius:8px;max-width:95%;max-height:95vh}.board-lightbox-close{color:#fff;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex;position:fixed;top:16px;right:16px}@media (width<=768px){.board-post{padding:16px}.board-post-title{font-size:18px}.board-post-meta{flex-wrap:wrap;gap:8px}.board-search{flex-wrap:wrap}.board-search-input{min-width:0}}@media (width<=600px){.board-container{padding:0 12px}.board-yt-input-row{flex-direction:column;align-items:stretch}}
