@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{--bg:#f8f7f2;--paper:#fffef6;--ink:#1f241f;--subtle:#5f675d;--line:#d7d5c9;--accent:#0f766e;--accent-soft:#d3f3ea;--warning:#9f1239;--shadow:#12161224 0 12px 30px;--display-font:"Fraunces", serif;--text-font:"Space Grotesk", sans-serif}*{box-sizing:border-box}body{font-family:var(--text-font);color:var(--ink);background:radial-gradient(1200px 460px at 15% -8%, #d8ead5 0%, transparent 65%), radial-gradient(1000px 420px at 90% 0%, #f6dbbe 0%, transparent 60%), var(--bg);min-height:100svh;margin:0}#root{min-height:100svh}a{color:inherit}.app-shell{background:var(--paper);border:1px solid var(--line);width:min(1080px,92vw);box-shadow:var(--shadow);border-radius:24px;margin:1.4rem auto 2rem;overflow:hidden}.app-header{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fefdea 0%,#edfcf6 100%);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;display:flex}.brand-link{font-family:var(--display-font);font-size:1.5rem;text-decoration:none}.main-nav{align-items:center;gap:.55rem;display:flex}.nav-link,.nav-button,button,.secondary-button{border:1px solid var(--line);font-family:var(--text-font);background:#fff;border-radius:10px;padding:.5rem .8rem;font-size:.95rem;text-decoration:none;transition:transform .16s,box-shadow .16s}.nav-link.active{border-color:var(--accent);color:var(--accent)}.nav-button,button{background:var(--accent);border-color:var(--accent);color:#fff;cursor:pointer}.secondary-button{color:var(--ink);cursor:pointer;background:#eef2ee}.secondary-button.active{border-color:var(--accent);color:var(--accent);background:#f5fffb}.nav-button:hover,button:hover,.secondary-button:hover,.nav-link:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1018111f}.app-main{padding:1.2rem}.page-block{animation:.38s fadeUp}.hero-strip{border:1px solid var(--line);background:linear-gradient(145deg,#f5efe2 0%,#e6faf2 100%);border-radius:16px;padding:1.1rem 1.2rem}.hero-strip h1,.auth-panel h1,.detail-card h1{font-family:var(--display-font);margin:0 0 .35rem;font-size:clamp(1.5rem,2.3vw,2.1rem);line-height:1.2}.subtitle,.hero-strip p,.helper-text,.detail-meta,.article-meta,.notice-box p{color:var(--subtle)}.auth-panel{border:1px solid var(--line);background:linear-gradient(#fffef8 0%,#f4fff9 100%);border-radius:16px;max-width:560px;margin:2rem auto;padding:1.25rem}.auth-form,.composer,.comment-form{gap:.8rem;margin-top:1rem;display:grid}.auth-form label,.composer label{gap:.35rem;font-weight:500;display:grid}input,textarea{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:10px;padding:.6rem .7rem}input:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.composer,.detail-card,.comment-section,.notice-box{border:1px solid var(--line);background:#fffefb;border-radius:16px;margin-top:1rem;padding:1rem}.rank-board{border:1px solid var(--line);background:linear-gradient(140deg,#fffaf0 0%,#f1fff8 100%);border-radius:16px;margin-top:1rem;padding:1rem}.rank-header{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.rank-header h2{font-family:var(--display-font);margin:0}.rank-tabs{gap:.5rem;display:flex}.rank-list{gap:.65rem;margin:.9rem 0 0;padding:0;list-style:none;display:grid}.rank-item{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.7rem;display:flex}.rank-index{color:var(--accent);min-width:2.5rem;font-weight:700}.rank-body{gap:.2rem;display:grid}.rank-body p{color:var(--subtle);margin:0;font-size:.9rem}.article-controls{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:.8rem;margin-top:1rem;padding:.75rem;display:flex}.article-sort{align-items:center;gap:.55rem;display:flex}.article-sort label{color:var(--subtle);font-size:.92rem}.article-sort select{border:1px solid var(--line);font:inherit;background:#fff;border-radius:10px;padding:.42rem .6rem}.article-sort select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.article-pager{align-items:center;gap:.5rem;display:flex}.page-indicator{text-align:center;min-width:4.6rem;color:var(--subtle);font-size:.92rem}.composer h2,.comment-section h2{font-family:var(--display-font);margin:0}.article-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1rem;display:grid}.article-card{border:1px solid var(--line);background:#fff;border-radius:14px;gap:.7rem;padding:1rem;display:grid}.article-card h3{font-family:var(--display-font);margin:0}.article-card p{margin:0;line-height:1.45}.article-meta{flex-wrap:wrap;gap:.5rem;font-size:.85rem;display:flex}.text-link{color:var(--accent);font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.detail-content{white-space:pre-wrap;margin-top:.8rem;line-height:1.55}.detail-actions{gap:.6rem;margin-top:1rem;display:flex}.comment-list{gap:.65rem;margin-top:.9rem;display:grid}.reply-actions{margin-top:.6rem}.reply-form{gap:.6rem;margin-top:.65rem;display:grid}.markdown-editor{gap:.55rem;display:grid}.markdown-editor-toolbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.markdown-editor-tabs{gap:.45rem;display:flex}.markdown-preview{border:1px dashed var(--line);background:#fff;border-radius:10px;min-height:7.2rem;padding:.65rem .75rem}.markdown-body{word-break:break-word;line-height:1.6}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p{margin:.35rem 0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{font-family:var(--display-font);margin:.6rem 0 .45rem;line-height:1.25}.markdown-body ul,.markdown-body ol{margin:.45rem 0;padding-left:1.2rem}.markdown-body pre{color:#f4f8f5;background:#1a2120;border-radius:10px;margin:.55rem 0;padding:.65rem;overflow:auto}.markdown-body code{background:#eef3ef;border-radius:6px;padding:.12rem .35rem;font-family:JetBrains Mono,Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.markdown-body pre code{background:0 0;padding:0}.markdown-body blockquote{border-left:3px solid var(--accent);color:var(--subtle);background:#f6fbf7;margin:.55rem 0;padding:.25rem .75rem}.markdown-body table{border-collapse:collapse;width:100%;margin:.55rem 0}.markdown-body th,.markdown-body td{border:1px solid var(--line);text-align:left;padding:.35rem .45rem}.comment-item{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.7rem}.reply-list{gap:.5rem;margin-top:.5rem;display:grid}.reply-item{background:#fafcf8;margin-left:.8rem}.comment-author{color:var(--subtle);margin:0 0 .35rem;font-size:.85rem;font-weight:600}.error-text{color:var(--warning);margin:.35rem 0}button:disabled,.secondary-button:disabled{opacity:.65;cursor:not-allowed}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=860px){.app-shell{border-radius:14px;width:96vw;margin:.8rem auto 1rem}.app-header{flex-direction:column;align-items:flex-start}.app-main{padding:.9rem}.article-grid{grid-template-columns:1fr}.detail-actions{flex-wrap:wrap}.rank-header,.article-controls{flex-direction:column;align-items:flex-start}}
