:root{
  color-scheme:light;
  --paper:#fbf7ee;
  --paper-deep:#f0e5d3;
  --ink:#2d2924;
  --ink-soft:#625b51;
  --red:#9c2b22;
  --red-deep:#6f1715;
  --red-bright:#c44737;
  --line:rgba(107,80,58,.22);
  --serif:Georgia,"Times New Roman","Songti SC","STSong","Noto Serif SC",serif;
  --sans:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  background:
    radial-gradient(circle at 50% 8%,rgba(255,255,255,.94) 0 24%,rgba(255,250,241,.28) 62%,rgba(111,23,21,.07) 100%),
    repeating-linear-gradient(0deg,transparent 0 68px,rgba(148,47,37,.11) 69px 71px,transparent 72px 82px,rgba(148,47,37,.05) 83px 84px),
    repeating-linear-gradient(90deg,transparent 0 72px,rgba(148,47,37,.10) 73px 75px,transparent 76px 88px,rgba(148,47,37,.05) 89px 90px),
    #d9c7ae;
}

a{color:inherit}
.resume-world{min-height:100vh;padding:72px 28px 68px;position:relative;overflow:hidden}
.resume-world::before,
.resume-world::after{
  content:"";
  position:fixed;
  width:180px;
  height:180px;
  border:2px solid rgba(130,33,27,.17);
  border-radius:50%;
  pointer-events:none;
}
.resume-world::before{left:-112px;top:18%;box-shadow:0 0 0 12px rgba(130,33,27,.035)}
.resume-world::after{right:-126px;bottom:12%;box-shadow:0 0 0 12px rgba(130,33,27,.035)}

.back-tag{
  position:fixed;
  z-index:30;
  top:22px;
  left:22px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:11px 16px 10px;
  color:#711f1a;
  font:600 13px/1 var(--sans);
  text-decoration:none;
  letter-spacing:.04em;
  background:#eee0c9;
  border:1px solid rgba(107,65,42,.28);
  outline:2px dashed rgba(156,43,34,.48);
  outline-offset:-6px;
  box-shadow:0 8px 22px rgba(74,40,27,.14);
  transform:rotate(-1.4deg);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.back-tag span:first-child{font:700 20px/1 var(--serif);transform:translateY(-1px)}
.back-tag:hover{transform:rotate(0) translateX(-2px);background:#f7ead5;box-shadow:0 10px 26px rgba(74,40,27,.19)}
.back-tag:focus-visible{outline:3px solid #fff;box-shadow:0 0 0 5px var(--red),0 10px 26px rgba(74,40,27,.19)}

.resume-sheet{
  position:relative;
  z-index:1;
  width:min(1160px,100%);
  margin:0 auto;
  padding:62px 66px 38px;
  background:
    linear-gradient(90deg,rgba(145,111,74,.03) 1px,transparent 1px),
    linear-gradient(rgba(145,111,74,.025) 1px,transparent 1px),
    var(--paper);
  background-size:34px 34px;
  border:1px solid rgba(104,75,48,.23);
  box-shadow:0 28px 70px rgba(66,37,22,.26),0 4px 10px rgba(66,37,22,.12);
}
.resume-sheet::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px dashed rgba(156,43,34,.34);
  pointer-events:none;
}
.resume-sheet::after{
  content:"";
  position:absolute;
  left:9%;
  right:9%;
  bottom:-8px;
  height:12px;
  background:var(--paper-deep);
  clip-path:polygon(0 0,3% 56%,7% 12%,12% 70%,17% 19%,23% 76%,29% 10%,35% 63%,42% 18%,50% 72%,57% 12%,64% 70%,71% 15%,79% 68%,86% 16%,93% 72%,100% 0);
  filter:drop-shadow(0 5px 3px rgba(66,37,22,.12));
}

.resume-header{
  position:relative;
  display:grid;
  grid-template-columns:1fr 138px;
  gap:38px;
  align-items:center;
  min-height:166px;
  padding:0 154px 32px 0;
  border-bottom:1px solid var(--line);
}
.eyebrow{margin:0 0 12px;color:var(--red);font:600 11px/1 var(--serif);letter-spacing:.2em}
.identity h1{margin:0;font:500 clamp(34px,4.2vw,54px)/1.04 var(--serif);letter-spacing:.09em}
.identity h1 span{display:inline-block;margin-left:14px;color:var(--red);font-size:.48em;font-style:italic;letter-spacing:.04em;vertical-align:middle}
.role{margin:14px 0 16px;color:var(--ink-soft);font:500 14px/1.3 var(--sans);letter-spacing:.16em}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;color:var(--ink-soft);font:normal 12px/1.5 var(--sans)}
.contact-row a{text-decoration:none;border-bottom:1px solid transparent}
.contact-row a:hover{color:var(--red);border-color:rgba(156,43,34,.4)}
.contact-row i{width:3px;height:3px;border-radius:50%;background:var(--red)}

.portrait-wrap{position:relative;align-self:start;padding:7px;background:#e7d4b8;box-shadow:0 7px 14px rgba(52,29,18,.18);transform:rotate(1.7deg)}
.portrait-wrap img{display:block;width:124px;height:152px;object-fit:cover;object-position:center;border:1px solid rgba(67,40,27,.17);filter:saturate(.88) contrast(.98)}
.photo-caption{display:block;padding:6px 2px 1px;color:#6d5542;font:600 8px/1 var(--serif);letter-spacing:.17em;text-align:center}

.wax-download{
  position:absolute;
  right:0;
  bottom:30px;
  width:116px;
  color:var(--red-deep);
  text-decoration:none;
  text-align:center;
}
.wax-ring{
  position:relative;
  display:grid;
  place-items:center;
  width:82px;
  aspect-ratio:1;
  margin:0 auto 8px;
  color:#e6b8a2;
  font:italic 700 31px/1 var(--serif);
  border:8px solid transparent;
  border-radius:50%;
  background:
    radial-gradient(circle at 36% 28%,rgba(255,255,255,.24),transparent 24%),
    radial-gradient(circle,var(--red-bright) 0 45%,#8f241e 46% 62%,#5f1514 63% 100%) padding-box;
  box-shadow:
    0 0 0 3px #7d1d19,
    5px 2px 0 3px #a63429,
    -4px 3px 0 2px #87211b,
    0 8px 12px rgba(78,27,20,.25),
    inset 0 0 0 2px rgba(255,219,197,.22);
  transform:rotate(-6deg);
  transition:transform .25s cubic-bezier(.2,.8,.2,1),filter .25s ease;
}
.wax-ring::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,212,189,.44);border-radius:50%}
.wax-copy{font:700 10px/1 var(--sans);letter-spacing:.15em}
.wax-download:hover .wax-ring{transform:rotate(0) scale(1.08);filter:brightness(1.07)}
.wax-download:focus-visible{outline:2px solid var(--red);outline-offset:7px;border-radius:8px}

.profile-card{display:grid;grid-template-columns:48px 1fr;gap:18px;margin:34px 0 42px;padding:25px 28px 23px;background:rgba(229,210,183,.38);border:1px solid rgba(130,95,59,.19);border-left:4px solid var(--red)}
.section-kicker,.section-heading>span{color:var(--red);font:italic 700 12px/1 var(--serif);letter-spacing:.12em}
.profile-card h2,.section-heading h2{margin:0;font:600 21px/1.2 var(--serif);letter-spacing:.08em}
.profile-card ul{margin:12px 0 0;padding:0;list-style:none;color:var(--ink-soft);font-size:13px;line-height:1.85}
.profile-card li{position:relative;padding-left:16px}
.profile-card li+li{margin-top:6px}
.profile-card li::before{content:"";position:absolute;left:0;top:.78em;width:5px;height:5px;background:var(--red);transform:rotate(45deg)}

.resume-grid{display:grid;grid-template-columns:minmax(0,1fr) 294px;gap:50px}
.main-column,.side-column{min-width:0}
.resume-section+.resume-section{margin-top:46px}
.section-heading{display:flex;align-items:center;gap:13px;margin-bottom:22px;padding-bottom:10px;border-bottom:1px solid rgba(156,43,34,.43)}
.section-heading.small{margin-bottom:18px}
.section-heading.small h2{font-size:18px}

.entry{position:relative;padding:0 0 26px 19px;border-left:1px solid rgba(156,43,34,.24)}
.entry::before{content:"";position:absolute;top:6px;left:-4px;width:7px;height:7px;border-radius:50%;background:var(--paper);border:1px solid var(--red)}
.entry+.entry{padding-top:4px}
.entry+.entry::before{top:10px}
.entry-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:11px}
.entry h3{margin:0;font:600 16px/1.45 var(--serif);letter-spacing:.015em}
.entry-head p{margin:3px 0 0;color:var(--red);font-size:11px;font-weight:600;letter-spacing:.05em}
.entry time,.side-card time{flex:none;color:#7f6d5f;font:600 10px/1.5 var(--serif);letter-spacing:.05em;white-space:nowrap}
.entry ul,.side-card ul{margin:0;padding:0;list-style:none;color:var(--ink-soft);font-size:12px;line-height:1.78}
.entry li,.side-card li{position:relative;padding-left:14px}
.entry li+li,.side-card li+li{margin-top:5px}
.entry li::before,.side-card li::before{content:"·";position:absolute;left:0;top:0;color:var(--red);font-weight:800}
.featured-entry{padding-top:18px;padding-right:20px;margin-top:-8px;background:linear-gradient(90deg,rgba(156,43,34,.055),transparent 72%)}
.featured-entry::before{top:24px}
.compact-entry{padding-bottom:22px}

.side-column{display:flex;flex-direction:column;gap:20px}
.side-card{padding:22px 22px 24px;background:rgba(240,229,211,.52);border:1px solid rgba(112,80,51,.18);box-shadow:0 2px 0 rgba(112,80,51,.05)}
.side-card h3{margin:0 0 5px;font:600 15px/1.45 var(--serif)}
.side-subtitle{margin:0 0 8px;color:var(--red);font-size:11px;font-weight:600;line-height:1.55}
.side-card>p:last-child{margin:14px 0 0;color:var(--ink-soft);font-size:11.5px;line-height:1.75}
.side-card ul{margin-top:14px;font-size:11.5px}
.skill-group+.skill-group{margin-top:18px;padding-top:16px;border-top:1px dashed rgba(112,80,51,.24)}
.skill-group h3{margin:0 0 6px;color:var(--red);font:700 9px/1 var(--serif);letter-spacing:.13em}
.skill-group p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.7}

.resume-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line);color:#8b7764}
.resume-footer p{margin:0;font:600 9px/1.4 var(--serif);letter-spacing:.15em}
.resume-footer a{color:var(--red);font-size:11px;font-weight:700;text-decoration:none;letter-spacing:.06em}
.resume-footer a:hover{text-decoration:underline;text-underline-offset:4px}

@media (max-width:920px){
  .resume-sheet{padding:52px 42px 34px}
  .resume-header{grid-template-columns:1fr 118px;padding-right:126px;gap:24px}
  .portrait-wrap img{width:104px;height:132px}
  .wax-download{width:102px}
  .wax-ring{width:70px}
  .resume-grid{grid-template-columns:1fr;gap:42px}
  .side-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .skills-card{grid-column:1/-1}
}

@media (max-width:640px){
  .resume-world{padding:72px 12px 36px}
  .back-tag{top:14px;left:14px}
  .resume-sheet{padding:40px 24px 28px}
  .resume-sheet::before{inset:8px}
  .resume-header{grid-template-columns:1fr 92px;padding:0 0 122px;gap:16px;align-items:start}
  .identity h1{font-size:34px;letter-spacing:.04em}
  .identity h1 span{display:block;margin:7px 0 0;font-size:18px}
  .role{font-size:12px;letter-spacing:.09em}
  .contact-row{display:block;font-size:11px}
  .contact-row a{display:block;width:max-content}
  .contact-row i{display:none}
  .portrait-wrap{padding:5px}
  .portrait-wrap img{width:82px;height:104px}
  .photo-caption{font-size:6.5px}
  .wax-download{left:2px;right:auto;bottom:24px;width:100px;display:flex;align-items:center;gap:12px;text-align:left}
  .wax-ring{flex:none;width:61px;margin:0}
  .wax-copy{line-height:1.35}
  .profile-card{grid-template-columns:1fr;gap:8px;margin:26px 0 34px;padding:20px}
  .profile-card h2,.section-heading h2{font-size:19px}
  .profile-card ul{font-size:12px;line-height:1.75}
  .resume-grid{gap:32px}
  .entry{padding-left:14px}
  .entry-head{display:block}
  .entry time{display:block;margin-top:6px}
  .entry ul{font-size:11.5px}
  .featured-entry{padding-right:8px}
  .side-column{display:flex}
  .side-card{padding:20px}
  .resume-footer{display:block}
  .resume-footer a{display:inline-block;margin-top:14px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

@media print{
  body{background:#fff}
  .resume-world{padding:0}
  .back-tag,.wax-download{display:none}
  .resume-sheet{width:100%;margin:0;padding:24px;box-shadow:none;border:0}
  .resume-sheet::before,.resume-sheet::after{display:none}
  .resume-grid{grid-template-columns:1fr 260px;gap:28px}
  .entry,.side-card{break-inside:avoid}
}
