:root{
  --bg:#e7dcc5;
  --bg-2:#d8cbab;
  --paper:#f1e9d3;
  --ink:#3a342a;
  --ink-2:#3a342a;
  --muted:#8a7e68;
  --rule:#cabe9e;
  --accent:#a85a37;
  --primary:#a85a37;
}
/* pro8 — Wabi Sabi 侘寂 / 黏土米色 + 烟灰 + 衬线手写 + 撕边 */
*{box-sizing:border-box;}
body{background:#e7dcc5;color:#3a342a;font-family:"Lora","Source Han Serif","Songti SC",serif;-webkit-font-smoothing:antialiased;line-height:1.7;background-image:repeating-linear-gradient(85deg,transparent 0 3px,rgba(58,52,42,.025) 3px 4px),repeating-linear-gradient(175deg,transparent 0 3px,rgba(58,52,42,.025) 3px 4px);}
::selection{background:#a85a37;color:#fff;}
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:#d8cbab;}
::-webkit-scrollbar-thumb{background:#3a342a;}

.display{font-family:"Cormorant Garamond","Source Han Serif",serif;font-weight:500;letter-spacing:-.025em;line-height:1.04;}
.display-bold{font-family:"Cormorant Garamond","Source Han Serif",serif;font-weight:700;letter-spacing:-.02em;line-height:1.06;}
.label{font-family:"JetBrains Mono","SF Mono",monospace;font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:#3a342a;}
.label-muted{font-family:"JetBrains Mono",monospace;font-weight:500;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#8a7e68;}
.no-num{font-family:"JetBrains Mono",monospace;font-weight:700;font-size:.7rem;letter-spacing:.3em;color:#a85a37;}

.t-ink{color:#3a342a;} .t-accent{color:#a85a37;} .t-muted{color:#8a7e68;}
.bg-paper{background:#f1e9d3;} .bg-ink{background:#3a342a;color:#f1e9d3;}
.dot{display:inline-block;width:.55rem;height:.55rem;background:#a85a37;border-radius:9999px;}

.rule{height:1px;background:#cabe9e;}
.rule-ink{height:1px;background:#3a342a;}

.card{background:#f1e9d3;box-shadow:0 8px 20px -14px rgba(58,52,42,.3);border:1px solid #cabe9e;transition:transform .25s ease,box-shadow .25s ease;border-radius:2px;}
.card:hover{transform:translateY(-3px);}
.card-bare{background:transparent;}

.work-thumb{display:block;background:#d8cbab;overflow:hidden;}
.work-thumb img{display:block;width:100%;height:auto;transition:transform .6s ease,filter .4s ease;}
.work-thumb:hover img{transform:scale(1.04);}

.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.7rem;font-weight:700;letter-spacing:.04em;font-size:.82rem;text-transform:none;background:#3a342a;color:#f1e9d3;border:1px solid #3a342a;border-radius:2px;transition:.18s;}
.btn:hover{background:#a85a37;border-color:#a85a37;color:#fff;transform:translateY(-1px);}
.btn-ghost{display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.7rem;font-weight:700;letter-spacing:.04em;font-size:.82rem;text-transform:none;background:transparent;color:#3a342a;border:1px solid #3a342a;border-radius:2px;transition:.18s;}
.btn-ghost:hover{background:#3a342a;color:#f1e9d3;}

.chip{display:inline-flex;font-family:"JetBrains Mono",monospace;font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:#3a342a;border:1px solid #cabe9e;padding:.3rem .7rem;border-radius:9999px;}

.cat-tab{font-family:"JetBrains Mono",monospace;font-weight:600;font-size:.76rem;letter-spacing:.08em;background:transparent;color:#8a7e68;border:none;padding:.5rem 0;position:relative;transition:.18s;}
.cat-tab:hover{color:#3a342a;}
.cat-tab.active{color:#3a342a;}
.cat-tab.active:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#a85a37;}

.nav-link{font-family:"Inter",sans-serif;font-weight:500;font-size:.88rem;letter-spacing:0;color:#3a342a;padding:.5rem .9rem;transition:color .18s;}
.nav-link:hover,.nav-link.active{color:#a85a37;}
.nav{display:flex;}
@media(max-width:1023px){
  .nav{position:fixed;top:0;right:0;bottom:0;width:80%;max-width:320px;flex-direction:column;align-items:stretch;background:#f1e9d3;border-left:1px solid #cabe9e;padding:6rem 1.5rem 2rem;transform:translateX(101%);transition:transform .25s;z-index:60;overflow-y:auto;}
  .nav.active{transform:translateX(0);}
  .menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .25s;z-index:55;}
  .menu-overlay.active{opacity:1;visibility:visible;}
  body.menu-open{overflow:hidden;}
  .nav-link{padding:1rem 1.1rem;border-bottom:1px solid #cabe9e;}
}

.skill-bar{height:1px;background:#cabe9e;position:relative;}
.skill-bar > span{position:absolute;inset:0 auto 0 0;background:#a85a37;height:1px;}

.timeline{position:relative;padding-left:32px;}
.timeline:before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:1px;background:#3a342a;}
.timeline-item{position:relative;}
.timeline-item:before{content:'';position:absolute;left:-37px;top:13px;width:14px;height:1px;background:#a85a37;}

.faq-answer{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s,opacity .3s;}
.faq-item.active .faq-icon{transform:rotate(45deg);}
.faq-icon{transition:transform .2s;}

.back-to-top{opacity:0;visibility:hidden;transition:opacity .25s;}
.back-to-top.visible{opacity:1;visibility:visible;}




/* Wabi Sabi 撕边 + 不规则 */
.torn{position:relative;}
.torn:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:8px;background:#e7dcc5;clip-path:polygon(0 0,7% 100%,14% 30%,22% 80%,30% 20%,38% 90%,46% 30%,54% 70%,62% 20%,70% 80%,78% 30%,86% 70%,94% 20%,100% 80%,100% 100%,0 100%);}
.brush{font-family:'Cormorant Garamond',serif;font-style:italic;}




@media print{header,footer,.no-print{display:none;}}
