:root{--navy-900:#12233a;--navy-800:#16273f;--navy-700:#22394f;--primary:#16305a;--primary-hover:#0f2544;--gold:#e5a83b;--text-1:#12233a;--text-2:#5b6b7e;--text-3:#8a98a8;--border:#dde3ea;--border-strong:#c6d0da;--surface:#fff;--surface-2:#f7f9fb;--green:#1f8a5b;--green-bg:#e3f3eb;--green-fg:#1f6b49;--amber:#c8842a;--amber-bg:#fbeeda;--amber-fg:#8a5a16;--amber-border:#efd5a6;--blue:#3c6fb4;--blue-bg:#e2ebf7;--blue-fg:#2e5891;--gray:#7b8794;--gray-bg:#edf0f3;--gray-fg:#59636f;--danger:#b34a4a;--danger-bg:#fbeaea}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:Manrope,Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:var(--text-1);background:linear-gradient(180deg,#16273f,#22394f 18%,#55697f 46%,#93a3b4 72%,#c8d2dc);background-attachment:fixed;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{font:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{font:inherit;color:var(--text-1);width:100%;border:1px solid var(--border-strong);border-radius:8px;padding:12px 14px;background:#fff;outline:none}a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid #4a7dc4;outline-offset:2px}input::placeholder,textarea::placeholder{color:#a6b1be}textarea{resize:vertical;min-height:84px}.auth-page{min-height:100vh;justify-content:center;gap:28px;padding:40px 20px}.auth-page,.brand{display:flex;flex-direction:column;align-items:center}.brand{gap:8px}.brand img{width:220px;height:auto;display:block}.brand .tagline{font-size:12px;font-weight:700;letter-spacing:3.2px;color:var(--gold)}.brand .title{font-size:clamp(26px,6vw,40px);font-weight:800;letter-spacing:2px;color:#fff;margin-top:6px;text-align:center}.card{width:100%;max-width:470px;background:#fff;border-radius:16px;box-shadow:0 16px 40px rgba(10,24,42,.24);padding:34px 32px;display:flex;flex-direction:column;gap:20px}.card h1{font-size:25px;font-weight:800;color:#12305c;margin:0}.card .sub{font-size:14px;color:var(--text-2);line-height:1.55;margin:0}.field{display:flex;flex-direction:column;gap:7px}.field>label{font-size:13.5px;font-weight:600;color:#33465c}.field .hint{font-size:12px;color:var(--text-3)}.btn{border:none;border-radius:8px;padding:14px 20px;font-size:15px;font-weight:700;letter-spacing:.4px;background:var(--navy-900);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover:not(:disabled){background:#0b1929}.btn.primary{background:var(--primary)}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn.secondary{background:#fff;color:var(--primary);border:1.5px solid var(--primary);padding:12.5px 20px}.btn.secondary:hover:not(:disabled){background:#f2f6fa}.btn.ghost{background:#fff;color:#4a5c70;border:1.5px solid var(--border-strong);padding:12.5px 20px}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.small{padding:9px 15px;font-size:13.5px}.btn.danger{background:var(--danger)}.notice{border-radius:9px;padding:13px 15px;font-size:13.5px;line-height:1.55}.notice.info{background:#f2f6fa;color:#33465c}.notice.error{background:var(--danger-bg);color:#8f3535}.notice.success{background:var(--green-bg);color:var(--green-fg)}.notice.warn{background:var(--amber-bg);color:var(--amber-fg);border:1px solid var(--amber-border)}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:5px 11px;font-size:12.5px;font-weight:700;white-space:nowrap}.pill .dot{width:6px;height:6px;border-radius:50%;display:block}.pill.green{background:var(--green-bg);color:var(--green-fg)}.pill.green .dot{background:var(--green)}.pill.amber{background:var(--amber-bg);color:var(--amber-fg)}.pill.amber .dot{background:var(--amber)}.pill.blue{background:var(--blue-bg);color:var(--blue-fg)}.pill.blue .dot{background:var(--blue)}.pill.gray{background:var(--gray-bg);color:var(--gray-fg)}.pill.gray .dot{background:var(--gray)}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 32px;flex-wrap:wrap}.portal-header .logo-lockup{display:flex;align-items:flex-end;gap:14px}.portal-header .logo-lockup img{width:124px;height:auto;display:block}.portal-header .lockup-text{display:flex;flex-direction:column;gap:5px;padding-bottom:3px}.portal-header .lockup-text .tag{font-size:9.5px;font-weight:700;letter-spacing:2.2px;color:var(--gold)}.portal-header .lockup-text .name{font-size:19px;font-weight:800;letter-spacing:1.4px;color:#fff}.portal-header .user{display:flex;align-items:center;gap:14px;color:#fff}.portal-header .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(140deg,#8fa3bc,#5d7290);border:2px solid hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.portal-header .who{display:flex;flex-direction:column;gap:2px}.portal-header .who .n{font-size:14.5px;font-weight:700}.portal-header .who .o{font-size:12px;color:hsla(0,0%,100%,.78)}.linkish{background:none;border:none;padding:0;color:#fff;font-size:14px;font-weight:600;text-decoration:none}.linkish:hover{text-decoration:underline}.portal-body{padding:0 32px 40px}.panel{max-width:1328px;margin:0 auto;background:#fff;border-radius:18px;box-shadow:0 10px 34px rgba(10,24,42,.18);overflow:hidden}.section{padding:26px 30px 28px}.section+.section{border-top:1px solid #e8ecf1}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.section-head h2{font-size:21px;font-weight:800;color:#12305c;margin:0 0 5px}.section-head p{font-size:13.5px;color:#6b7a8f;margin:0;max-width:62ch;line-height:1.5}.fest-head{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.fest-cover{width:168px;height:116px;border-radius:12px;flex-shrink:0;object-fit:cover;background:linear-gradient(135deg,#4a5f7a,#7c8fa6)}.fest-head h1{font-size:clamp(22px,4vw,30px);font-weight:800;color:#12305c;letter-spacing:-.4px;margin:0 0 8px}.fest-meta{font-size:15px;color:var(--text-2);font-weight:500;margin:0 0 10px}.badges{display:flex;gap:8px;flex-wrap:wrap}table.rows{width:100%;border-collapse:collapse}table.rows th{text-align:left;font-size:11.5px;font-weight:700;color:#6b7a8f;letter-spacing:.5px;padding:12px 16px;background:#f5f7fa}table.rows td{padding:15px 16px;border-top:1px solid #edf1f5;font-size:14px;color:var(--text-2)}table.rows td.name{font-size:15px;font-weight:700;color:var(--text-1)}table.rows tr.flagged td{background:#fffcf6}.table-wrap{border:1px solid #e4e9ef;border-radius:12px;overflow:hidden}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:16px;gap:16px}.media-tile{display:flex;flex-direction:column;gap:8px}.media-thumb{height:128px;border-radius:10px;object-fit:cover;width:100%;background:linear-gradient(135deg,#4a5f7a,#7c8fa6);justify-content:center;color:hsla(0,0%,100%,.85);font-size:12px;text-align:center;padding:8px}.media-cap,.media-thumb{display:flex;align-items:center;font-weight:600}.media-cap{gap:6px;font-size:12.5px;color:var(--text-2)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:22px 36px;gap:22px 36px;background:var(--surface-2);border-radius:12px;padding:22px 24px}.info-grid .k{font-size:11.5px;font-weight:700;color:var(--text-3);letter-spacing:.5px;margin-bottom:5px}.info-grid .v{font-size:15px;font-weight:600;color:var(--text-1);word-break:break-word}.info-grid .wide{grid-column:1/-1}.info-grid .wide .v{font-weight:500;line-height:1.55}.portal-foot{text-align:center;padding:18px 20px 40px;font-size:13px;color:hsla(0,0%,100%,.85)}.portal-foot strong{color:#fff}.overlay{position:fixed;inset:0;background:rgba(9,18,30,.55);display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto;z-index:50}.modal{width:100%;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(6,14,26,.45);display:flex;flex-direction:column;margin:auto}.modal.wide{max-width:900px}.modal.mid{max-width:760px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 28px 18px;border-bottom:1px solid #edf1f5}.modal-head h2{font-size:22px;font-weight:800;color:#12305c;margin:0 0 4px}.modal-head p{font-size:13.5px;color:#6b7a8f;margin:0}.modal-body{padding:22px 28px 24px;display:flex;flex-direction:column;gap:18px}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 28px;background:var(--surface-2);border-top:1px solid #edf1f5;flex-wrap:wrap}.modal-foot .actions{display:flex;gap:10px;margin-left:auto}.icon-btn{background:none;border:none;padding:4px;line-height:0;color:var(--text-3);border-radius:6px}.icon-btn:hover{color:var(--text-1);background:#f1f4f8}.grid-2{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:18px}.grid-2,.grid-3{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:18px}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:18px;gap:18px}.checkline{display:flex;align-items:flex-start;gap:11px}.checkline input{width:18px;height:18px;flex-shrink:0;margin-top:2px;padding:0}.checkline label{font-size:13.5px;color:#33465c;line-height:1.55}.dropzone{border:2px dashed var(--border-strong);border-radius:12px;padding:26px 20px;text-align:center;background:#fafbfd;display:flex;flex-direction:column;align-items:center;gap:8px}.dropzone strong{font-size:15px;color:#12305c}.dropzone span{font-size:13px;color:var(--text-3)}.dropzone input[type=file]{width:auto;border:none;padding:0;background:none}.empty{border:1px dashed var(--border-strong);border-radius:12px;padding:28px 20px;text-align:center;color:var(--text-2);font-size:14px;background:var(--surface-2)}.tabs{display:flex;gap:4px;background:#f1f4f8;border-radius:9px;padding:4px}.tabs button{flex:1 1;border:none;background:none;border-radius:7px;padding:9px 0;font-size:13.5px;font-weight:600;color:#7c8998}.tabs button[aria-selected=true]{background:#fff;color:#12305c;font-weight:700;box-shadow:0 1px 3px rgba(18,35,58,.12)}@media (max-width:820px){.portal-header{padding:16px 16px 14px}.portal-header .logo-lockup img{width:100px}.portal-body{padding:0 12px 28px}.section{padding:20px 18px 22px}.modal-body,.modal-foot,.modal-head{padding-left:18px;padding-right:18px}.overlay{padding:0}.modal{border-radius:0;min-height:100vh}.fest-cover{width:100%;height:150px}table.rows thead{display:none}table.rows tr{display:block;border-top:1px solid #edf1f5;padding:12px 14px}table.rows td{display:flex;justify-content:space-between;gap:12px;border:none;padding:4px 0}table.rows td:before{content:attr(data-label);font-weight:700;color:var(--text-3);font-size:12px}table.rows td.name:before{content:none}.modal-foot .actions{width:100%}.modal-foot .actions .btn{flex:1 1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}