:root{
  --bg:#fff5d4;
  --bg-2:#ffe98a;
  --paper:#ffffff;
  --ink:#15151a;
  --ink-2:#262630;
  --muted:#6a6a78;
  --pink:#ff3d7f;
  --blue:#2563eb;
  --lime:#c9f255;
  --orange:#ff8c42;
  --rule:#ebd896;
}
/* pro4 — Pop Mosaic 彩色拼贴: 奶油黄底 + 桃红/电蓝/柠檬 + 厚字 + bento 网格 + 贴纸 */
*{box-sizing:border-box;}
body{background:var(--bg);color:var(--ink-2);font-family:"Manrope","Inter","Pretendard","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.65;}
::selection{background:var(--pink);color:#fff;}
::-webkit-scrollbar{width:12px;}
::-webkit-scrollbar-track{background:var(--bg-2);}
::-webkit-scrollbar-thumb{background:var(--pink);}

.chunky{font-family:"Archivo Black","Manrope","PingFang SC",sans-serif;font-weight:900;letter-spacing:-.025em;line-height:.95;}
.label{font-family:"Manrope",sans-serif;font-weight:800;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;}
.script{font-family:"Caveat","Manrope",cursive;font-weight:700;letter-spacing:.01em;}

.t-pink{color:var(--pink);} .t-blue{color:var(--blue);} .t-lime{color:var(--lime);} .t-ink{color:var(--ink);} .t-muted{color:var(--muted);} .t-orange{color:var(--orange);}
.fill-pink{background:var(--pink);color:#fff;}
.fill-blue{background:var(--blue);color:#fff;}
.fill-lime{background:var(--lime);color:var(--ink);}
.fill-orange{background:var(--orange);color:#fff;}
.fill-ink{background:var(--ink);color:var(--bg);}
.fill-paper{background:var(--paper);color:var(--ink);}
.bg-bg2{background:var(--bg-2);}

.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.85rem;font-family:"Archivo Black",sans-serif;font-size:.85rem;letter-spacing:.04em;background:var(--ink);color:var(--bg-2);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--pink);transition:transform .15s,box-shadow .15s;}
.btn:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--pink);}
.btn-pink{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.85rem;font-family:"Archivo Black",sans-serif;font-size:.85rem;letter-spacing:.04em;background:var(--pink);color:#fff;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transition:transform .15s,box-shadow .15s;}
.btn-pink:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink);}
.btn-ghost{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.85rem;font-family:"Archivo Black",sans-serif;font-size:.85rem;letter-spacing:.04em;background:transparent;color:var(--ink);border:3px solid var(--ink);transition:.15s;}
.btn-ghost:hover{background:var(--ink);color:var(--bg-2);}

.sticker{display:inline-block;padding:.32rem .8rem;font-family:"Archivo Black",sans-serif;font-size:.72rem;letter-spacing:.05em;background:var(--lime);color:var(--ink);border:2px solid var(--ink);transform:rotate(-3deg);}
.sticker-pink{background:var(--pink);color:#fff;}
.sticker-blue{background:var(--blue);color:#fff;}

.card{background:var(--paper);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);transition:transform .2s,box-shadow .2s;}
.card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--pink);}

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

.chip{display:inline-flex;font-family:"Manrope",sans-serif;font-weight:800;font-size:.72rem;letter-spacing:.04em;background:var(--ink);color:var(--bg-2);padding:.3rem .7rem;}
.chip-pink{background:var(--pink);color:#fff;}
.chip-lime{background:var(--lime);color:var(--ink);}

.cat-tab{font-family:"Archivo Black",sans-serif;font-size:.78rem;letter-spacing:.04em;background:var(--paper);color:var(--ink);border:3px solid var(--ink);padding:.5rem 1rem;transition:.15s;}
.cat-tab:hover{background:var(--bg-2);}
.cat-tab.active{background:var(--pink);color:#fff;}

.nav-link{font-family:"Archivo Black",sans-serif;font-size:.8rem;color:var(--ink);padding:.55rem .95rem;transition:.18s;border:2px solid transparent;}
.nav-link:hover{background:var(--lime);border-color:var(--ink);}
.nav-link.active{background:var(--ink);color:var(--bg-2);border-color:var(--ink);}
.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(--bg-2);border-left:3px solid var(--ink);padding:6rem 1.5rem 2rem;transform:translateX(101%);transition:transform .25s;z-index:60;overflow-y:auto;gap:.4rem;}
  .nav.active{transform:translateX(0);}
  .menu-overlay{position:fixed;inset:0;background:rgba(20,20,20,.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{background:var(--paper);border:2px solid var(--ink);padding:.8rem 1.1rem;}
}

.skill-bar{height:14px;background:var(--paper);border:2px solid var(--ink);overflow:hidden;}
.skill-bar > span{display:block;height:100%;background:repeating-linear-gradient(45deg,var(--pink) 0 8px,var(--ink) 8px 10px);}

.timeline{position:relative;padding-left:36px;}
.timeline:before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:4px;background:var(--ink);}
.timeline-item{position:relative;}
.timeline-item:before{content:'';position:absolute;left:-32px;top:7px;width:14px;height:14px;background:var(--pink);border:3px solid var(--ink);}

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