    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
    :root {
      --red: #C0202A; --red-dark: #9A1820;
      --navy: #1A2A5E; --navy-dark: #0E1A3E;
      --gold: #C8A84B;
      --bg: #F8F7F4; --white: #FFFFFF;
      --ink: #1A1A1A; --soft: #666055;
      --line: rgba(0,0,0,0.08); --cream: #F0EBE1;
    }
    html { scroll-behavior:smooth; }
    body { background:var(--bg); color:var(--ink); font-family:'Noto Sans KR',sans-serif; font-weight:300; overflow-x:hidden; }

    /* ── PASSWORD MODAL ── */
    #pw-modal { display:none; position:fixed; inset:0; z-index:1100; background:rgba(0,0,0,.6); backdrop-filter:blur(6px); align-items:center; justify-content:center; }
    #pw-modal.open { display:flex; }
    .pw-box { background:var(--white); width:92%; max-width:380px; border-radius:10px; padding:2.5rem 2rem 2rem; box-shadow:0 24px 80px rgba(0,0,0,.4); text-align:center; }
    .pw-icon { font-size:2.4rem; margin-bottom:1rem; }
    .pw-box h3 { font-family:'Noto Serif KR',serif; font-size:1.15rem; font-weight:400; margin-bottom:.5rem; color:var(--ink); }
    .pw-box p { font-size:.82rem; color:var(--soft); margin-bottom:1.5rem; line-height:1.6; }
    .pw-input-wrap { position:relative; margin-bottom:.6rem; }
    .pw-input-wrap input { width:100%; padding:.7rem 2.8rem .7rem 1rem; border:2px solid var(--line); border-radius:6px; font-size:.88rem; font-family:'Noto Sans KR',sans-serif; outline:none; letter-spacing:.05em; transition:border-color .2s; text-align:left; }
    .pw-input-wrap input:focus { border-color:var(--red); }
    .pw-input-wrap input.shake { animation:shake .4s ease; border-color:#CC5555; }
    .pw-toggle { position:absolute; right:.8rem; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:var(--soft); font-size:1rem; }
    .pw-error { font-size:.78rem; color:#CC5555; margin-bottom:.8rem; min-height:1.1em; }
    .pw-btn { width:100%; padding:.85rem; background:var(--red); color:white; border:none; border-radius:6px; font-family:'Noto Sans KR',sans-serif; font-size:.9rem; letter-spacing:.1em; cursor:pointer; transition:background .3s; }
    .pw-btn:hover { background:var(--red-dark); }
    .pw-cancel { display:block; margin-top:.8rem; font-size:.78rem; color:var(--soft); cursor:pointer; background:none; border:none; font-family:'Noto Sans KR',sans-serif; width:100%; }
    .pw-cancel:hover { color:var(--red); }
    @keyframes shake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-8px)} 40%{transform:translateX(8px)} 60%{transform:translateX(-6px)} 80%{transform:translateX(6px)} }

    /* ── ADMIN TOGGLE ── */
    #admin-toggle { position:fixed; bottom:2rem; right:2rem; z-index:1000; background:var(--navy); color:var(--white); border:none; border-radius:50px; padding:.75rem 1.5rem; font-family:'Noto Sans KR',sans-serif; font-size:.82rem; letter-spacing:.08em; cursor:pointer; display:flex; align-items:center; gap:.5rem; box-shadow:0 4px 20px rgba(0,0,0,.25); transition:background .3s, transform .2s; white-space:nowrap; }
    #admin-toggle:hover { background:var(--red); transform:translateY(-2px); }

    /* ── ADMIN PANEL ── */
    #admin-panel { display:none; position:fixed; inset:0; z-index:900; background:rgba(0,0,0,.55); backdrop-filter:blur(4px); }
    #admin-panel.open { display:flex; align-items:center; justify-content:center; }
    .admin-modal { background:var(--white); width:92%; max-width:820px; max-height:92vh; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 24px 80px rgba(0,0,0,.35); }
    .admin-header { padding:1.4rem 2rem; background:var(--navy); display:flex; justify-content:space-between; align-items:center; flex-shrink:0; }
    .admin-header h2 { font-family:'Noto Serif KR',serif; font-size:1rem; font-weight:400; color:var(--white); }
    .admin-header span { font-size:.75rem; color:rgba(255,255,255,.5); }
    .admin-close { background:none; border:none; color:rgba(255,255,255,.5); font-size:1.4rem; cursor:pointer; }
    .admin-close:hover { color:var(--white); }
    .admin-tabs { display:flex; border-bottom:1px solid var(--line); background:#FAFAF8; flex-shrink:0; overflow-x:auto; }
    .admin-tab { padding:.85rem 1.2rem; font-size:.78rem; letter-spacing:.06em; color:var(--soft); cursor:pointer; border:none; background:none; white-space:nowrap; border-bottom:2px solid transparent; transition:color .2s, border-color .2s; font-family:'Noto Sans KR',sans-serif; }
    .admin-tab.active { color:var(--red); border-color:var(--red); }
    .admin-body { padding:1.8rem 2rem; overflow-y:auto; flex:1; }
    .tab-content { display:none; }
    .tab-content.active { display:block; }
    .field-group { margin-bottom:1.3rem; }
    .field-group label { display:block; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--soft); margin-bottom:.5rem; }
    .field-group input,.field-group textarea,.field-group select { width:100%; padding:.65rem .9rem; border:1px solid var(--line); border-radius:3px; font-family:'Noto Sans KR',sans-serif; font-size:.88rem; color:var(--ink); background:var(--bg); transition:border-color .2s; outline:none; }
    .field-group input:focus,.field-group textarea:focus { border-color:var(--red); }
    .field-group textarea { resize:vertical; min-height:80px; }
    .field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
    .notice-editor-item { display:grid; grid-template-columns:90px 1fr 36px; gap:.5rem; align-items:center; padding:.7rem; border-bottom:1px solid var(--line); }
    .notice-editor-item:last-child { border-bottom:none; }
    .notice-editor-item input,.notice-editor-item select,.notice-editor-item textarea { padding:.4rem .6rem; font-size:.82rem; border:1px solid var(--line); border-radius:2px; font-family:'Noto Sans KR',sans-serif; background:var(--white); color:var(--ink); width:100%; outline:none; }
    .notice-editor-full { padding:.7rem; border-bottom:1px solid var(--line); }
    .notice-editor-full:last-child { border-bottom:none; }
    .notice-editor-row1 { display:grid; grid-template-columns:90px 1fr 110px 36px; gap:.5rem; margin-bottom:.5rem; align-items:center; }
    .notice-editor-row1 input,.notice-editor-row1 select { padding:.4rem .6rem; font-size:.82rem; border:1px solid var(--line); border-radius:2px; font-family:'Noto Sans KR',sans-serif; background:var(--white); color:var(--ink); width:100%; outline:none; }
    .notice-editor-row2 textarea { width:100%; padding:.5rem .6rem; font-size:.82rem; border:1px solid var(--line); border-radius:2px; font-family:'Noto Sans KR',sans-serif; background:var(--bg); color:var(--ink); resize:vertical; min-height:60px; outline:none; }
    .notice-editor-row2 textarea:focus { border-color:var(--red); }
    .btn-del { background:none; border:1px solid #FFCCCC; color:#CC5555; border-radius:2px; cursor:pointer; font-size:.85rem; padding:.3rem .5rem; }
    .btn-del:hover { background:#FFEEEE; }
    .btn-add { width:100%; padding:.65rem; background:none; border:1px dashed var(--line); color:var(--soft); font-size:.82rem; cursor:pointer; border-radius:0 0 3px 3px; font-family:'Noto Sans KR',sans-serif; }
    .btn-add:hover { border-color:var(--red); color:var(--red); }
    .program-edit-item { border:1px solid var(--line); border-radius:3px; padding:1rem; background:var(--bg); margin-bottom:.8rem; }
    /* Photo upload */
    .photo-upload-area { border:2px dashed var(--line); border-radius:4px; padding:2rem; text-align:center; cursor:pointer; transition:border-color .3s; position:relative; overflow:hidden; }
    .photo-upload-area:hover { border-color:var(--red); }
    .photo-upload-area input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
    .photo-upload-area .upload-icon { font-size:2rem; margin-bottom:.5rem; }
    .photo-upload-area p { font-size:.82rem; color:var(--soft); }
    .photo-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin-top:1rem; }
    .photo-preview-item { aspect-ratio:4/3; border-radius:3px; overflow:hidden; position:relative; }
    .photo-preview-item img { width:100%; height:100%; object-fit:cover; }
    .photo-preview-item .photo-del { position:absolute; top:.3rem; right:.3rem; background:rgba(0,0,0,.5); color:white; border:none; border-radius:50%; width:22px; height:22px; cursor:pointer; font-size:.75rem; display:flex; align-items:center; justify-content:center; }
    .admin-footer { padding:1rem 2rem; border-top:1px solid var(--line); display:flex; gap:.8rem; justify-content:flex-end; background:#FAFAF8; flex-shrink:0; }
    .btn-save { padding:.7rem 2rem; background:var(--red); color:var(--white); border:none; border-radius:3px; cursor:pointer; font-family:'Noto Sans KR',sans-serif; font-size:.82rem; letter-spacing:.1em; }
    .btn-save:hover { background:var(--red-dark); }
    .btn-cancel { padding:.7rem 1.5rem; background:none; color:var(--soft); border:1px solid var(--line); border-radius:3px; cursor:pointer; font-family:'Noto Sans KR',sans-serif; font-size:.82rem; }
    .save-msg { display:none; align-items:center; gap:.4rem; font-size:.8rem; color:#4CAF50; }
    .save-msg.show { display:flex; }

    /* ── NAV ── */
    nav { position:fixed; top:0; left:0; right:0; z-index:200; display:flex; justify-content:space-between; align-items:center; padding:1rem 3rem; background:rgba(248,247,244,.95); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); transition:padding .3s; }
    .nav-logo img { height:52px; object-fit:contain; display:block; }
    .nav-links { display:flex; gap:2rem; list-style:none; align-items:center; }
    .nav-links a { font-size:.82rem; letter-spacing:.06em; color:var(--soft); text-decoration:none; transition:color .3s; }
    .nav-links a:hover { color:var(--red); }
    .nav-dropdown { position:relative; }
    .nav-dropdown-menu { display:none; position:absolute; top:100%; left:0; padding-top:.4rem; background:transparent; min-width:160px; z-index:200; }
    .nav-dropdown-menu-inner { background:var(--white); border-radius:6px; box-shadow:0 8px 30px rgba(0,0,0,.15); overflow:hidden; }
    .nav-dropdown:hover .nav-dropdown-menu { display:block; }
    .nav-dropdown-menu a { display:block; padding:.65rem 1.2rem; font-size:.8rem; letter-spacing:.05em; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); transition:background .2s; }
    .nav-dropdown-menu a:last-child { border-bottom:none; }
    .nav-dropdown-menu a:hover { background:var(--cream); color:var(--red); }
    .nav-dropdown > a::after { content:' ▾'; font-size:.65rem; }
    .nav-dropdown.open .nav-dropdown-menu { display:block; }
    .nav-cta { padding:.5rem 1.2rem; background:var(--red); color:var(--white)!important; border-radius:2px; }
    .nav-cta:hover { background:var(--red-dark)!important; }
    .nav-mobile-btn { display:none; background:none; border:none; cursor:pointer; padding:.5rem; }
    .nav-mobile-btn span { display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; border-radius:2px; }

    /* ── HERO ── */
    .hero { min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:8rem 2rem 5rem; position:relative; overflow:hidden; }
    .hero-bg { position:absolute; inset:0; background:linear-gradient(160deg, rgba(26,42,94,.04) 0%, rgba(192,32,42,.03) 100%); }
    .hero-stripe { position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(to bottom, var(--red), var(--navy)); }
    .hero-content { position:relative; max-width:700px; }
    .hero-logo { width:300px; max-width:80vw; margin:0 auto 2.5rem; display:block; }
    .hero-divider { display:flex; align-items:center; gap:1rem; margin:0 auto 2rem; max-width:320px; }
    .hero-divider-line { flex:1; height:1px; }
    .hero-divider-line:first-child { background:linear-gradient(to right, transparent, var(--red)); }
    .hero-divider-line:last-child { background:linear-gradient(to left, transparent, var(--red)); }
    .hero-divider-cross { width:12px; height:12px; position:relative; flex-shrink:0; }
    .hero-divider-cross::before,.hero-divider-cross::after { content:''; position:absolute; background:var(--red); border-radius:1px; }
    .hero-divider-cross::before { width:2px; height:100%; left:50%; transform:translateX(-50%); }
    .hero-divider-cross::after { width:100%; height:2px; top:50%; transform:translateY(-50%); }
    .hero-subtitle { font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(1rem,2vw,1.3rem); color:var(--navy); margin-bottom:2rem; letter-spacing:.04em; }
    .hero-verse { font-size:.9rem; color:var(--soft); line-height:2; max-width:480px; margin:0 auto 3rem; }
    .hero-verse cite { display:block; font-size:.75rem; letter-spacing:.2em; color:var(--red); margin-top:.5rem; font-style:normal; }
    .hero-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
    .btn-primary { padding:.85rem 2rem; background:var(--red); color:var(--white); text-decoration:none; font-size:.82rem; letter-spacing:.12em; border-radius:2px; transition:background .3s, transform .2s; }
    .btn-primary:hover { background:var(--red-dark); transform:translateY(-1px); }
    .btn-navy { padding:.85rem 2rem; background:var(--navy); color:var(--white); text-decoration:none; font-size:.82rem; letter-spacing:.12em; border-radius:2px; transition:background .3s, transform .2s; }
    .btn-navy:hover { background:var(--navy-dark); transform:translateY(-1px); }
    .scroll-hint { position:absolute; bottom:2rem; left:0; right:0; display:flex; flex-direction:column; align-items:center; gap:.5rem; animation:fadeDown 1s 1s ease both; }
    .scroll-hint span { font-size:.65rem; letter-spacing:.25em; color:var(--soft); text-transform:uppercase; }
    .scroll-line { width:1px; height:36px; background:linear-gradient(to bottom, var(--red), transparent); animation:scrollPulse 2s ease infinite; }

    /* ── SERVICE BAR ── */
    .service-bar { background:var(--navy); color:var(--white); padding:3rem; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .service-inner { max-width:1100px; margin:0 auto; display:grid; gap:0; align-items:start; }
    .service-divider { background:rgba(255,255,255,.1); align-self:stretch; width:1px; }
    .service-tag { font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; word-break:keep-all; }
    .service-title { font-family:'Noto Serif KR',serif; font-size:1.1rem; font-weight:300; line-height:1.5; margin-bottom:.5rem; word-break:keep-all; white-space:nowrap; }
    .service-sub { font-size:.78rem; color:rgba(255,255,255,.45); line-height:1.7; word-break:keep-all; }
    .service-item { padding:0 2rem; }

    /* ── SECTION ── */
    .section-label { font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:var(--red); margin-bottom:1rem; }
    .section-heading { font-family:'Noto Serif KR',serif; font-size:clamp(1.7rem,3vw,2.4rem); font-weight:300; line-height:1.2; letter-spacing:-.01em; }
    .reveal { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
    .reveal.visible { opacity:1; transform:none; }

    /* ── ABOUT ── */
    .about-section { padding:7rem 3rem 5rem; max-width:1100px; margin:0 auto; }
    .about-text-block { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; margin-bottom:3.5rem; }
    .about-photo-feature { position:relative; }
    .about-photo-main { width:100%; aspect-ratio:16/9; border-radius:6px; overflow:hidden; margin-bottom:.6rem; }
    .about-photo-main img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
    .about-photo-main:hover img { transform:scale(1.03); }
    .about-photo-main.empty { background:linear-gradient(145deg,#C8C0B4,#9A9088); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.5rem; min-height:220px; }
    .about-photo-main.empty span { font-size:2rem; opacity:.4; }
    .about-photo-row { display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; }
    .about-photo-small { aspect-ratio:1/1; border-radius:4px; overflow:hidden; background:linear-gradient(145deg,#D8D0C8,#B0A898); }
    .about-photo-small img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
    .about-photo-small:hover img { transform:scale(1.06); }
    .about-photo-small.empty { display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,#E8E4DF,#D0CBC4); }
    .about-photo-small.empty span { font-size:1.2rem; opacity:.35; }
    .about-badge { position:absolute; right:-1rem; top:-1rem; width:88px; height:88px; background:var(--navy); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.3rem; border-radius:2px; z-index:1; }
    .about-badge-cross { width:20px; height:20px; position:relative; }
    .about-badge-cross::before,.about-badge-cross::after { content:''; position:absolute; background:var(--white); border-radius:1px; }
    .about-badge-cross::before { width:2px; height:100%; left:50%; transform:translateX(-50%); }
    .about-badge-cross::after { width:100%; height:2px; top:35%; }
    .about-badge span { font-size:.55rem; letter-spacing:.15em; color:rgba(255,255,255,.6); text-transform:uppercase; }
    .about-body { font-size:.92rem; line-height:2; color:var(--soft); margin-bottom:1.8rem; }
    .about-quote { padding:1.2rem 0 1.2rem 1.5rem; border-left:3px solid var(--red); font-family:'Playfair Display',serif; font-style:italic; font-size:1.05rem; line-height:1.7; }
    .about-quote cite { display:block; font-size:.75rem; color:var(--red); font-style:normal; margin-top:.5rem; letter-spacing:.1em; font-family:'Noto Sans KR',sans-serif; }



    /* ── STAFF PAGE ── */
    .staff-page { display:none; position:fixed; inset:0; z-index:1200; background:var(--bg); overflow-y:auto; }
    .staff-page.open { display:block; }
    .staff-page-inner { max-width:1100px; margin:0 auto; padding:5rem 3rem 6rem; }
    .staff-page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:3.5rem; }
    .staff-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:2rem; }
    .staff-card { background:var(--white); border-radius:4px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.06); text-align:center; padding-bottom:1.5rem; }
    .staff-photo { width:100%; aspect-ratio:1/1; object-fit:cover; background:var(--cream); display:block; }
    .staff-photo-placeholder { width:100%; aspect-ratio:1/1; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%); display:flex; align-items:center; justify-content:center; }
    .staff-photo-placeholder svg { opacity:.25; }
    .staff-name { font-family:'Noto Serif KR',serif; font-size:1.05rem; font-weight:600; color:var(--dark); margin:.9rem .8rem .2rem; }
    .staff-role { font-size:.72rem; letter-spacing:.15em; color:var(--red); text-transform:uppercase; margin-bottom:.5rem; }
    .staff-bio { font-size:.8rem; color:var(--soft); line-height:1.7; padding:0 1rem; }
    .staff-close-btn { background:none; border:1px solid var(--line); border-radius:2px; padding:.5rem 1.2rem; font-size:.8rem; color:var(--soft); cursor:pointer; font-family:'Noto Sans KR',sans-serif; transition:all .2s; }
    .staff-close-btn:hover { border-color:var(--red); color:var(--red); }
    .staff-section { margin-bottom:3.5rem; }
    .staff-section-title { font-family:'Noto Serif KR',serif; font-size:1rem; font-weight:700; color:var(--navy); letter-spacing:.1em; text-transform:uppercase; padding-bottom:.6rem; border-bottom:2px solid var(--navy); margin-bottom:1.8rem; display:inline-block; }
    @media(max-width:600px){ .staff-page-inner{padding:3rem 1.2rem 4rem;} .staff-grid{grid-template-columns:repeat(2,1fr);gap:1rem;} }
    /* ── 부서소개 / 활동사진 공통 페이지 ── */
    .dept-page { display:none; position:fixed; inset:0; z-index:1200; background:var(--bg); overflow-y:auto; }
    .dept-page.open { display:block; }
    .dept-page-inner { max-width:1100px; margin:0 auto; padding:5rem 3rem 6rem; }
    .dept-page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:3rem; }
    .dept-tabs { display:flex; gap:0; border-bottom:2px solid var(--line); margin-bottom:3rem; overflow-x:auto; }
    .dept-tab { padding:.7rem 1.4rem; font-size:.82rem; letter-spacing:.05em; color:var(--soft); cursor:pointer; border:none; background:none; white-space:nowrap; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .2s; font-family:'Noto Sans KR',sans-serif; }
    .dept-tab.active { color:var(--navy); border-color:var(--navy); font-weight:700; }
    .dept-tab-content { display:none; }
    .dept-tab-content.active { display:block; }
    /* 부서소개 */
    .dept-intro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:2.5rem; }
    .dept-intro-photo { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:4px; display:block; }
    .dept-intro-photo-placeholder { width:100%; aspect-ratio:4/3; background:var(--cream); border-radius:4px; display:flex; align-items:center; justify-content:center; color:var(--line); font-size:1.5rem; }
    .dept-desc { font-size:.95rem; color:var(--soft); line-height:1.9; margin-bottom:2rem; white-space:pre-wrap; }
    /* 활동사진 */
    .activity-group { margin-bottom:3rem; }
    .activity-group-title { font-family:'Noto Serif KR',serif; font-size:.85rem; font-weight:700; color:var(--navy); letter-spacing:.08em; padding-bottom:.5rem; border-bottom:1px solid var(--line); margin-bottom:1.2rem; }
    .activity-grid { column-count:4; column-gap:.8rem; }
    .activity-photo { width:100%; display:block; margin-bottom:.8rem; break-inside:avoid; cursor:pointer; transition:opacity .2s; }
    .activity-photo:hover { opacity:.8; }
    @media(max-width:600px){ .dept-page-inner{padding:3rem 1.2rem 4rem;} .dept-intro-grid{grid-template-columns:repeat(2,1fr);} .activity-grid{column-count:2;} }
    .history-page { display:none; position:fixed; inset:0; z-index:1200; background:var(--bg); overflow-y:auto; }
    .history-page.open { display:block; }
    .history-page-inner { max-width:900px; margin:0 auto; padding:5rem 3rem 6rem; }
    .history-page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:3.5rem; }
    .history-era { margin-bottom:3rem; }
    .history-era-title { font-family:'Noto Serif KR',serif; font-size:1.4rem; font-weight:700; color:var(--red); margin-bottom:1.5rem; display:flex; align-items:center; gap:.5rem; }
    
    .history-table { width:100%; border-collapse:collapse; }
    .history-table tr { border-bottom:1px solid var(--line); }
    .history-table tr:last-child { border-bottom:none; }
    .history-table td { padding:.8rem .5rem; vertical-align:top; font-size:.85rem; line-height:1.7; color:var(--ink); }
    .history-date-col { width:110px; color:var(--soft); white-space:nowrap; text-align:right; padding-right:1.5rem; font-size:.82rem; }
    .history-admin-btn { background:none; border:1px solid var(--line); border-radius:2px; padding:.4rem .9rem; font-size:.75rem; color:var(--soft); cursor:pointer; font-family:'Noto Sans KR',sans-serif; margin-left:.5rem; transition:all .2s; }
    .history-admin-btn:hover { border-color:var(--red); color:var(--red); }
    @media(max-width:600px){ .history-page-inner{padding:3rem 1.2rem 4rem;} .history-date-col{width:80px;} }
    /* ── YOUTUBE ── */
    .youtube-section { padding:7rem 3rem; background:var(--navy-dark,#0E1A3E); }
    .youtube-inner { max-width:1100px; margin:0 auto; }
    .youtube-section .section-label { color:rgba(200,168,75,.8); }
    .youtube-section .section-heading { color:#fff; }
    .youtube-header { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
    .yt-tabs { display:flex; gap:0; margin-bottom:2rem; border-bottom:2px solid rgba(255,255,255,.12); }
    .yt-tab { background:none; border:none; color:rgba(255,255,255,.5); font-family:'Noto Sans KR',sans-serif; font-size:.82rem; letter-spacing:.1em; padding:.7rem 1.6rem; cursor:pointer; transition:color .2s; position:relative; }
    .yt-tab.active { color:#fff; font-weight:700; }
    .yt-tab.active::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:2px; background:var(--gold); }
    .youtube-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
    .youtube-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:6px; overflow:hidden; cursor:pointer; transition:transform .3s, background .3s; text-decoration:none; display:block; }
    .youtube-card:hover { transform:translateY(-4px); background:rgba(255,255,255,.1); }
    .youtube-thumb { position:relative; aspect-ratio:16/9; overflow:hidden; background:#111; }
    .youtube-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .4s; display:block; }
    .youtube-card:hover .youtube-thumb img { transform:scale(1.04); }
    .youtube-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.2); }
    .youtube-play-btn { width:52px; height:52px; background:rgba(255,0,0,.85); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:transform .2s, background .2s; }
    .youtube-card:hover .youtube-play-btn { transform:scale(1.1); background:#f00; }
    .youtube-play-btn svg { width:20px; height:20px; fill:white; margin-left:3px; }
    .youtube-card-body { padding:1rem 1.2rem 1.2rem; }
    .youtube-dept { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem; }
    .youtube-title { font-family:'Noto Serif KR',serif; font-size:.9rem; line-height:1.6; color:rgba(255,255,255,.9); font-weight:500; }
    .youtube-date { font-size:.72rem; color:rgba(255,255,255,.4); margin-top:.4rem; }
    .youtube-channel-link { display:inline-flex; align-items:center; gap:.5rem; color:rgba(255,255,255,.6); font-size:.78rem; letter-spacing:.05em; text-decoration:none; transition:color .2s; }
    .youtube-channel-link:hover { color:#fff; }
    .yt-more-btn { background:none; border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.7); font-family:'Noto Sans KR',sans-serif; font-size:.78rem; letter-spacing:.1em; padding:.75rem 2.5rem; border-radius:2px; cursor:pointer; transition:background .25s,color .25s,border-color .25s; }
    .yt-more-btn:hover { background:rgba(255,255,255,.07); color:#fff; border-color:rgba(255,255,255,.45); }
    @media(max-width:700px){ .youtube-section{padding:5rem 1.5rem;} .youtube-grid{grid-template-columns:1fr;} }
    /* ── PROGRAMS ── */
    .worship-section { background:var(--cream); padding:8rem 3rem; }
    .worship-inner { max-width:1100px; margin:0 auto; }
    .worship-top { text-align:center; margin-bottom:4rem; }
    .worship-grid { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; }
    .worship-card { width:calc((100% - 3rem) / 3); min-width:280px; flex:1; max-width:calc((100% - 3rem) / 3); }
    .worship-card { background:var(--white); padding:2.2rem; border-radius:2px; border-top:3px solid transparent; transition:border-color .3s, transform .3s, box-shadow .3s; }
    .worship-card:hover { border-color:var(--red); transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.07); }
    .worship-card-icon { width:36px; height:36px; margin-bottom:1.3rem; color:var(--red); }
    .worship-card-name { font-family:'Noto Serif KR',serif; font-size:1.05rem; font-weight:400; margin-bottom:.7rem; }
    .worship-card-dept { display:inline-block; font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--navy); background:rgba(26,42,94,.08); padding:.2rem .6rem; border-radius:1px; margin-bottom:.8rem; }
    .worship-card-desc { font-size:.83rem; color:var(--soft); line-height:1.8; }
    .worship-card-time { display:block; margin-top:1rem; font-size:.72rem; letter-spacing:.1em; color:var(--red); padding-top:1rem; border-top:1px solid var(--cream); }

    /* ── JUBO ── */
    .jubo-section { padding:8rem 3rem; max-width:1100px; margin:0 auto; }
    .jubo-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:3rem; }
    .jubo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
    .jubo-card { background:var(--white); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:box-shadow .3s, border-color .3s, transform .3s; cursor:pointer; }
    .jubo-card:hover { box-shadow:0 8px 30px rgba(0,0,0,.12); border-color:var(--red); transform:translateY(-3px); }
    .jubo-card-thumb { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top center; display:block; background:#EEE; }
    .jubo-card-thumb-placeholder { width:100%; aspect-ratio:3/4; background:linear-gradient(145deg,var(--navy),#2A3A7E); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.5rem; }
    .jubo-card-thumb-placeholder svg { color:rgba(255,255,255,.4); width:32px; height:32px; }
    .jubo-card-info { padding:1rem; }
    .jubo-card-date { font-size:.72rem; letter-spacing:.1em; color:var(--soft); margin-bottom:.3rem; }
    .jubo-card-title { font-size:.88rem; font-weight:400; color:var(--ink); line-height:1.4; }
    .jubo-empty { text-align:center; padding:4rem; color:var(--soft); font-size:.9rem; grid-column:1/-1; }
    /* jubo modal */
    #jubo-modal { display:none; position:fixed; inset:0; z-index:800; background:rgba(0,0,0,.85); align-items:center; justify-content:center; }
    #jubo-modal.open { display:flex; }
    .jubo-modal-box { position:relative; max-width:90vw; max-height:90vh; }
    .jubo-modal-box img { max-width:90vw; max-height:85vh; object-fit:contain; border-radius:4px; display:block; }
    .jubo-modal-close { position:absolute; top:-2.5rem; right:0; background:none; border:none; color:white; font-size:1.8rem; cursor:pointer; }
    .jubo-modal-caption { text-align:center; color:rgba(255,255,255,.6); font-size:.82rem; margin-top:.8rem; font-family:'Noto Sans KR',sans-serif; }

    /* ── NOTICE ── */
    .notice-section { padding:8rem 3rem; background:var(--navy); }
    .notice-inner { max-width:1100px; margin:0 auto; }
    .notice-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:3rem; }
    .notice-title { font-family:'Noto Serif KR',serif; font-size:clamp(1.5rem,2.5vw,2rem); font-weight:300; color:var(--white); }
    .notice-list { list-style:none; }
    .notice-badge { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; padding:.2rem .6rem; border:1px solid var(--gold); color:var(--gold); border-radius:1px; white-space:nowrap; }
    .notice-text { font-size:.9rem; color:rgba(255,255,255,.75); line-height:1.5; }
    .notice-date { font-size:.75rem; color:rgba(255,255,255,.3); white-space:nowrap; }
    .notice-arrow { color:rgba(255,255,255,.25); font-size:.9rem; transition:color .3s; }
    .notice-item:hover .notice-arrow { color:var(--gold); }

    /* ── NOTICE MODAL ── */
    #notice-modal { display:none; position:fixed; inset:0; z-index:800; background:rgba(0,0,0,.6); backdrop-filter:blur(6px); align-items:center; justify-content:center; }
    #notice-modal.open { display:flex; }
    .notice-modal-box { background:var(--white); width:92%; max-width:640px; max-height:88vh; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 24px 80px rgba(0,0,0,.4); }
    .notice-modal-head { padding:1.5rem 2rem 1.2rem; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
    .notice-modal-badge { font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; padding:.25rem .7rem; background:var(--red); color:white; border-radius:1px; margin-bottom:.7rem; display:inline-block; }
    .notice-modal-title { font-family:'Noto Serif KR',serif; font-size:1.3rem; font-weight:400; line-height:1.4; color:var(--ink); }
    .notice-modal-meta { font-size:.75rem; color:var(--soft); margin-top:.5rem; }
    .notice-modal-close { background:none; border:none; color:var(--soft); font-size:1.4rem; cursor:pointer; flex-shrink:0; padding:.2rem; }
    .notice-modal-close:hover { color:var(--red); }
    .notice-modal-body { padding:2rem; overflow-y:auto; flex:1; font-size:.92rem; color:var(--soft); line-height:2.1; white-space:pre-wrap; }
    .notice-modal-blocks { overflow-y:auto; flex:1; padding-bottom:1.5rem; }
    .nm-block-text { padding:.6rem 2rem; font-size:.9rem; line-height:2.1; color:var(--ink); }
    .nm-block-img { padding:.4rem 2rem; }
    .nm-block-img img { width:100%; border-radius:4px; display:block; max-height:500px; object-fit:contain; background:#f5f3ef; }
    .nm-block-img figcaption { font-size:.74rem; color:var(--soft); text-align:center; margin-top:.35rem; }
    [contenteditable][data-placeholder]:empty:before { content:attr(data-placeholder); color:#bbb; pointer-events:none; }

    /* 더보기 버튼 */
    .more-btn { display:block; margin:2.5rem auto 0; padding:.8rem 2.5rem; background:none; border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.6); font-family:'Noto Sans KR',sans-serif; font-size:.82rem; letter-spacing:.12em; cursor:pointer; border-radius:2px; transition:all .3s; }
    .more-btn:hover { border-color:var(--gold); color:var(--gold); }
    .more-btn-light { display:block; margin:2.5rem auto 0; padding:.8rem 2.5rem; background:none; border:1px solid var(--line); color:var(--soft); font-family:'Noto Sans KR',sans-serif; font-size:.82rem; letter-spacing:.12em; cursor:pointer; border-radius:2px; transition:all .3s; }
    .more-btn-light:hover { border-color:var(--red); color:var(--red); }

    /* 공지 고정 */
    .notice-item.pinned { background:rgba(200,168,75,.06); border-bottom-color:rgba(200,168,75,.15); }
    .notice-pin-icon { font-size:.75rem; color:var(--gold); flex-shrink:0; }

    /* 더보기 전체보기 모달 */
    #more-modal { display:none; position:fixed; inset:0; z-index:850; background:rgba(0,0,0,.6); backdrop-filter:blur(6px); align-items:center; justify-content:center; }
    #more-modal.open { display:flex; }
    .more-modal-box { background:var(--white); width:92%; max-width:760px; max-height:88vh; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 24px 80px rgba(0,0,0,.35); }
    .more-modal-head { padding:1.2rem 1.8rem; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; flex-shrink:0; background:var(--navy); }
    .more-modal-head h3 { font-family:'Noto Serif KR',serif; font-size:1rem; font-weight:400; color:var(--white); }
    .more-modal-close { background:none; border:none; color:rgba(255,255,255,.5); font-size:1.4rem; cursor:pointer; }
    .more-modal-close:hover { color:var(--white); }
    .more-modal-body { overflow-y:auto; flex:1; }

    /* 더보기 주보 그리드 */
    .more-jubo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:1.5rem; }
    /* 더보기 공지 리스트 */
    .more-notice-list { list-style:none; padding:.5rem 0; }
    .more-notice-item { display:grid; grid-template-columns:auto auto 1fr auto; gap:1rem; align-items:center; padding:1rem 1.8rem; border-bottom:1px solid var(--line); cursor:pointer; transition:background .2s; }
    .more-notice-item:hover { background:var(--bg); }
    .more-notice-item.pinned { background:rgba(200,168,75,.05); }
    .more-notice-badge { font-size:.62rem; letter-spacing:.12em; padding:.2rem .5rem; border:1px solid var(--navy); color:var(--navy); border-radius:1px; white-space:nowrap; }
    .more-notice-badge.pinned-badge { border-color:var(--gold); color:var(--gold); }
    .more-notice-text { font-size:.88rem; color:var(--ink); }
    .more-notice-date { font-size:.72rem; color:var(--soft); white-space:nowrap; }

    @media(max-width:600px){ .more-jubo-grid{grid-template-columns:repeat(2,1fr);} .more-notice-item{grid-template-columns:auto 1fr auto;} }
    .notice-img-thumb { width:52px; height:52px; object-fit:cover; border-radius:3px; flex-shrink:0; }
    .notice-img-placeholder { width:52px; height:52px; background:rgba(255,255,255,.08); border-radius:3px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
    .notice-item { display:grid; grid-template-columns:auto 1fr auto auto; gap:1.2rem; align-items:center; padding:1.3rem 0; border-bottom:1px solid rgba(255,255,255,.07); cursor:pointer; transition:padding-left .3s; }
    .notice-item:hover { padding-left:.5rem; }

    /* notice detail modal image */
    .notice-modal-img { width:100%; max-height:320px; object-fit:cover; display:block; }

    /* ── VISIT ── */
    .visit-section { padding:8rem 3rem; display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; max-width:1100px; margin:0 auto; }
    .visit-heading { font-family:'Noto Serif KR',serif; font-size:clamp(1.8rem,3vw,2.4rem); font-weight:300; line-height:1.3; margin-bottom:2rem; }
    .visit-details { list-style:none; }
    .visit-details li { display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.88rem; color:var(--soft); line-height:1.6; }
    .visit-details li strong { color:var(--red); font-weight:400; min-width:80px; flex-shrink:0; }
    .map-box { aspect-ratio:4/3; border-radius:4px; overflow:hidden; position:relative; box-shadow:0 8px 40px rgba(0,0,0,.15); }
    .map-box iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

    /* ── FOOTER ── */
    footer { background:#0E1220; padding:4rem 3rem 2.5rem; }
    .footer-top { display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:4rem; max-width:1100px; margin:0 auto 3rem; }
    .footer-logo { height:52px; object-fit:contain; display:block; margin-bottom:1rem; }
    .footer-tagline { font-size:.8rem; color:rgba(255,255,255,.3); line-height:1.9; max-width:260px; }
    .footer-col-title { font-size:.65rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
    .footer-col-links { list-style:none; }
    .footer-col-links li { margin-bottom:.7rem; }
    .footer-col-links a { font-size:.82rem; color:rgba(255,255,255,.4); text-decoration:none; transition:color .3s; }
    .footer-col-links a:hover { color:var(--gold); }
    .footer-bottom { border-top:1px solid rgba(255,255,255,.06); padding-top:1.8rem; display:flex; justify-content:space-between; align-items:center; max-width:1100px; margin:0 auto; flex-wrap:wrap; gap:1rem; }
    .footer-copy { font-size:.72rem; color:rgba(255,255,255,.2); }
    .footer-verse { font-family:'Playfair Display',serif; font-style:italic; font-size:.8rem; color:rgba(255,255,255,.2); }

    @keyframes fadeDown { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:translateY(0)} }
    @keyframes scrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }

    @media(max-width:900px){
      nav{padding:.8rem 1.5rem;} .nav-links{display:none;} .nav-mobile-btn{display:block;}
      .about-section{padding:4rem 1.5rem 3rem;}
      .about-text-block{grid-template-columns:1fr;gap:2rem;margin-bottom:2rem;}
      .worship-section,.jubo-section{padding:5rem 1.5rem;}
      .worship-grid{ gap:1rem; }
      .worship-card{ width:100%; min-width:unset; max-width:100%; flex:none; }
      .jubo-grid{grid-template-columns:1fr 1fr;}
      .visit-section{grid-template-columns:1fr;gap:3rem;padding:5rem 1.5rem;}
      .footer-top{grid-template-columns:1fr;gap:2rem;} footer{padding:3rem 1.5rem 2rem;}
      .service-bar{padding:2rem 1.5rem;}
      .service-inner{ min-width:600px; }
      .service-item{ padding:0 1.2rem; }
      .hero{padding:6rem 1.5rem 5rem;}
      .notice-section{padding:5rem 1.5rem;}
      #admin-toggle{bottom:1rem;right:1rem;padding:.6rem 1.2rem;font-size:.78rem;}
      .notice-item{grid-template-columns:auto 1fr auto;}
      .notice-arrow{display:none;}
    }
    @media(max-width:480px){
      .jubo-grid{grid-template-columns:1fr;}
      .hero-logo{width:220px;}
      .field-row{grid-template-columns:1fr;}
      .notice-modal-box{max-height:95vh;}
    }