:root{
  --bg:#fafafa;
  --bg-2:#f1f1ef;
  --paper:#ffffff;
  --ink:#0a0a0a;
  --ink-2:#1c1c1c;
  --muted:#7a7a7a;
  --rule:#d4d4d2;
  --accent:#d6322a;
}
/* pro2 — Minimal Editorial 极简黑白编辑: 纯白纸面, 大字 light-weight, 朱红一点 */
*{box-sizing:border-box;}
body{background:var(--bg);color:var(--ink-2);font-family:"Inter","Pretendard","Noto Sans","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.7;}
::selection{background:var(--ink);color:var(--bg);}
::-webkit-scrollbar{width:11px;}
::-webkit-scrollbar-track{background:var(--bg-2);}
::-webkit-scrollbar-thumb{background:var(--ink);}

.display{font-family:"Inter","Pretendard","PingFang SC",sans-serif;font-weight:200;letter-spacing:-.04em;line-height:.96;}
.display-bold{font-family:"Inter","PingFang SC",sans-serif;font-weight:700;letter-spacing:-.025em;line-height:1.02;}
.label{font-family:"Inter","PingFang SC",sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);}
.label-muted{font-family:"Inter",sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.no-num{font-family:"Inter",sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.32em;color:var(--accent);}

.t-ink{color:var(--ink);} .t-accent{color:var(--accent);} .t-muted{color:var(--muted);}
.bg-paper{background:var(--paper);} .bg-ink{background:var(--ink);color:var(--bg);}
.dot{display:inline-block;width:.5rem;height:.5rem;background:var(--accent);}

.rule{height:1px;background:var(--rule);}
.rule-ink{height:1px;background:var(--ink);}

.card{background:var(--paper);border:1px solid var(--rule);transition:border-color .25s;}
.card:hover{border-color:var(--ink);}
.card-bare{background:transparent;}

.work-thumb{display:block;background:var(--bg-2);overflow:hidden;}
.work-thumb img{display:block;width:100%;height:auto;transition:transform .6s ease;}
.work-thumb:hover img{transform:scale(1.04);}

.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.7rem;font-weight:600;letter-spacing:.04em;font-size:.82rem;background:var(--ink);color:var(--bg);border:1px solid var(--ink);transition:.2s;}
.btn:hover{background:var(--accent);border-color:var(--accent);}
.btn-ghost{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.7rem;font-weight:600;letter-spacing:.04em;font-size:.82rem;background:transparent;color:var(--ink);border:1px solid var(--ink);transition:.2s;}
.btn-ghost:hover{background:var(--ink);color:var(--bg);}

.chip{display:inline-flex;font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:var(--ink-2);border:1px solid var(--rule);padding:.3rem .7rem;}

.cat-tab{font-family:"Inter",sans-serif;font-weight:500;font-size:.78rem;letter-spacing:.04em;background:transparent;color:var(--muted);border:none;padding:.4rem 0;position:relative;transition:.18s;}
.cat-tab:hover{color:var(--ink);}
.cat-tab.active{color:var(--ink);}
.cat-tab.active:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--accent);}

.nav-link{font-family:"Inter",sans-serif;font-weight:500;font-size:.85rem;color:var(--ink-2);padding:.45rem .8rem;transition:color .18s;}
.nav-link:hover,.nav-link.active{color:var(--accent);}
.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:var(--paper);border-left:1px solid var(--rule);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(10,10,10,.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.2rem;border-bottom:1px solid var(--rule);}
}

.skill-bar{height:1px;background:var(--rule);position:relative;}
.skill-bar > span{position:absolute;inset:0 auto 0 0;background:var(--ink);height:1px;}

.timeline{position:relative;padding-left:32px;}
.timeline:before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--ink);}
.timeline-item{position:relative;}
.timeline-item:before{content:'';position:absolute;left:-37px;top:13px;width:14px;height:1px;background:var(--accent);}

.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;}

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