:root{--bg:#171512;--surface:#211e19;--surface-soft:#29241e;--paper:#f2eadc;--text:#f6f0e7;--muted:#b8aa96;--ink:#28221b;--ink-soft:#6b5e4e;--accent:#d7ae72;--accent-dark:#8b5d27;--line:#433a30;--green:#78917b;--max:1120px;--radius:22px;--serif:"Noto Serif KR", Georgia, serif;--sans:"Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 85% 5%, #d7ae7214, transparent 28rem), var(--bg);min-height:100vh;color:var(--text);font-family:var(--sans);word-break:keep-all;flex-direction:column;margin:0;line-height:1.75;display:flex}a{color:inherit}button,input,textarea{font:inherit}.container{width:min(var(--max), calc(100% - 40px));margin:0 auto}.page{flex:1;padding-bottom:88px}.eyebrow{color:var(--accent);letter-spacing:.17em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 18px;font-size:.76rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:25px;height:1px}h1,h2,h3{font-family:var(--serif);letter-spacing:-.035em;line-height:1.35}h1{margin:0;font-size:clamp(2.3rem,6vw,4.2rem);font-weight:700}.hero-copy{max-width:670px;color:var(--muted);margin:18px 0 0;font-size:clamp(1rem,2vw,1.12rem)}.page-hero{max-width:840px;padding:72px 0 36px}.button{border:1px solid var(--line);min-height:48px;color:var(--text);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0 20px;font-size:.92rem;font-weight:700;text-decoration:none;transition:all .16s;display:inline-flex}.button.primary{border-color:var(--accent);background:var(--accent);color:#211a12}.button.ghost{min-height:36px;padding:0 13px;font-size:.8rem}.button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.button:disabled{opacity:.55;cursor:not-allowed}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:8px 0 22px;display:flex}.search-bar{flex:1;gap:8px;min-width:min(100%,280px);display:flex}.search-bar input{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);border-radius:999px;flex:1;padding:0 16px}.search-bar input:focus,.field input:focus,.field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #d7ae7226}.board-meta{color:var(--muted);margin:0 0 14px;font-size:.84rem}.board{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.board-row{color:inherit;border-bottom:1px solid #ffffff0f;grid-template-columns:72px minmax(0,1fr) 110px 72px 88px 108px;align-items:center;gap:12px;padding:16px 22px;text-decoration:none;display:grid}.board-row:last-child{border-bottom:0}.board-head{color:var(--muted);letter-spacing:.08em;font-size:.75rem;font-weight:700}.board-row:not(.board-head):hover{background:var(--surface-soft)}.board-num,.board-author,.board-count,.board-views,.board-date{color:var(--muted);font-size:.84rem}.board-title{align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.board-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{color:var(--accent);background:#d7ae7224;border-radius:999px;flex:none;padding:1px 8px;font-size:.72rem;font-weight:700}.empty{text-align:center;color:var(--muted);padding:64px 24px}.empty h2{color:var(--text);margin:0 0 8px;font-size:1.5rem}.pagination{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;display:flex}.page-link{border:1px solid var(--line);min-width:40px;min-height:40px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;padding:0 10px;font-weight:600;text-decoration:none;display:inline-flex}.page-link.is-active,.page-link:hover{border-color:var(--accent);color:var(--accent)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:28px}.article-head h1{font-size:clamp(1.9rem,4vw,2.8rem)}.article-meta{color:var(--muted);flex-wrap:wrap;gap:10px 16px;margin:18px 0 0;font-size:.88rem;display:flex}.article-body{white-space:pre-wrap;border-top:1px solid #ffffff14;margin-top:28px;padding-top:28px;font-size:1.02rem;line-height:1.9}.article-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.article-actions .password-box{flex-basis:100%}.form-grid{gap:18px;display:grid}.form-row{grid-template-columns:1fr 1fr;align-items:end;gap:14px;display:grid}.secret-toggle{min-height:48px;color:var(--muted);align-items:center;gap:10px;font-size:.92rem;font-weight:600;display:flex}.secret-toggle input{width:18px;height:18px;accent-color:var(--accent)}.field{flex-direction:column;gap:8px;display:flex}.field label{color:var(--muted);font-size:.82rem;font-weight:700}.field input,.field textarea{border:1px solid var(--line);background:var(--surface-soft);width:100%;color:var(--text);border-radius:14px;padding:12px 16px}.field textarea{resize:vertical;min-height:220px;line-height:1.7}.field.compact textarea{min-height:92px}.help{color:var(--muted);margin:0;font-size:.8rem}.form-error{color:#f3c7c2;background:#8b45402e;border:1px solid #8b4540;border-radius:12px;padding:12px 14px;font-size:.9rem}.comments{margin-top:36px}.comments h2{margin:0 0 18px;font-size:1.55rem}.comment{border-top:1px solid #ffffff0f;padding:18px 0}.comment.reply{border-left:2px solid var(--accent-dark);margin-left:28px;padding-left:18px}.comment-meta{color:var(--muted);flex-wrap:wrap;gap:8px 14px;font-size:.82rem;display:flex}.comment-author{color:var(--text);font-weight:700}.comment-body{white-space:pre-wrap;margin:8px 0 10px}.comment-actions{flex-wrap:wrap;gap:8px;display:flex}.password-box,.reply-box{border:1px solid var(--line);background:var(--surface-soft);border-radius:16px;margin-top:12px;padding:14px}@media (max-width:820px){.board-row{grid-template-columns:1fr 1fr;gap:6px 12px}.board-head,.board-num{display:none}.board-title{white-space:normal;grid-column:1/-1}.board-title span{white-space:normal}.form-row{grid-template-columns:1fr}.comment.reply{margin-left:12px}}@media (max-width:600px){body{word-break:normal}.container{width:min(100% - 28px, var(--max))}.page-hero{padding-top:48px}.panel{padding:20px 16px}}
