@import url("./palette.css?v=20261011reset1");

:root{--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--serif:var(--sans);--mono:ui-monospace,"Cascadia Mono",Consolas,monospace}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
body::before{display:none}
button,input,textarea,select{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none;border-bottom:0;overflow-wrap:anywhere}
a:hover{color:var(--seal);text-decoration:none}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--seal);outline-offset:4px}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
img{max-width:100%;height:auto}
h1,h2,h3,h4{font-family:var(--sans);color:var(--ink);font-weight:650;letter-spacing:-.02em;line-height:1.4}
h1{font-size:32px;margin:36px 0 12px}
h2{font-size:23px;margin:34px 0 16px;scroll-margin-top:24px}
h2::after{display:none}
h3{font-size:18px;margin:0 0 8px}
p{margin:0 0 16px;max-width:76ch}
.lead,.sub,.d{color:var(--soft)}
.lead{font-size:16px;line-height:1.9}
.sub{font-size:14px;margin-bottom:24px}
.meta,.hint,.hintline,.empty{color:var(--dim);font-size:13px}
.meta{margin:0 0 20px}
strong,b{font-weight:600}
hr{border:0;border-top:1px solid var(--line);margin:28px 0}
pre{background:var(--code-bg);border:1px solid var(--code-line);border-radius:8px;padding:16px;overflow:auto;font:13px/1.8 var(--mono)}
code{font-family:var(--mono);font-size:.9em;background:var(--code-bg);border-radius:4px;padding:2px 5px}
pre code{background:none;padding:0}
blockquote{color:var(--soft);margin:24px 0;padding:4px 18px;border-left:3px solid var(--line)}
article a,.cmt-body a{color:var(--seal);text-decoration:underline;text-underline-offset:3px}
article img,.post img{border:1px solid var(--line);border-radius:8px}
footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:60px;padding:22px 0 28px;color:var(--dim);font-size:12px}
footer>div{display:flex;gap:20px;flex-wrap:wrap}
footer a:hover{color:var(--ink)}
.hand{font-family:var(--sans);font-style:normal}
.btn,.iconbtn,.cmt-send{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:9px 16px;border:1px solid var(--control-line);border-radius:7px;background:var(--paper2);color:var(--ink);font:500 13px/1.5 var(--sans);cursor:pointer;white-space:nowrap;box-shadow:none}
.btn:hover,.iconbtn:hover,.cmt-send:hover{background:color-mix(in srgb,var(--seal) 8%,var(--paper2));border-color:var(--seal);color:var(--ink)}
.btn.primary,.btn.ok{background:var(--seal);border-color:var(--seal);color:var(--on-accent)}
.btn.primary:hover,.btn.ok:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.btn.danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 50%,var(--line));background:transparent}
.btn.ghost{background:transparent;color:var(--soft)}
.iconbtn{min-height:36px;padding:7px 10px;background:transparent;border-color:transparent;font-size:12px;font-weight:400}
.badge{display:inline-block;padding:3px 9px;border:1px solid var(--line);border-radius:5px;font:11px/1.5 var(--sans);color:var(--dim);background:transparent}
.badge.g{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}
.badge.b,.badge.y{color:var(--soft);border-color:var(--line)}
.msg{font-size:13px;line-height:1.75;overflow-wrap:anywhere;color:var(--soft)}
.msg.err,.cmt-msg.err{color:var(--red)}
.msg.ok,.cmt-msg.ok{color:var(--ok)}
input,textarea,select{color:var(--ink);background:var(--paper2);border:1px solid var(--control-line);border-radius:7px;padding:10px 12px;min-height:44px}
input::placeholder,textarea::placeholder{color:var(--dim)}
input:focus,textarea:focus,select:focus{border-color:var(--seal)}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);color:var(--soft)}
th{color:var(--ink);font-weight:600}
.comments{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.comments h3{font-size:19px;margin-bottom:6px}
.cmt{padding:18px 0;border-bottom:1px solid var(--line2)}
.cmt-head{display:flex;gap:12px;align-items:baseline;font-size:13px}
.cmt-head .when{color:var(--dim);font-size:12px}
.cmt-body{color:var(--soft);margin-top:8px;font-size:15px}
.cmt-body p{margin:8px 0}
.cmt-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.cmt-name{max-width:280px}
.cmt-text{width:100%;min-height:120px;resize:vertical}
.cmt-row{display:flex;gap:14px;align-items:center}
.cmt-msg{font-size:12px;color:var(--dim)}
.cmt-login,.pv{color:var(--dim)}
.cmt-login a{color:var(--seal)}
@media(max-width:680px){body{font-size:14px}h1{font-size:28px}h2{font-size:21px}footer{margin-top:40px;gap:12px}pre{padding:12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;color:black}.top,.header-actions,.comments,.side{display:none!important}.wrap{max-width:none!important;padding:0!important}a{color:inherit!important}.project-card,.quick-game{break-inside:avoid}}
