#portfolio-document>.contact-page{position:relative;min-height:640px;height:100svh;width:100%;overflow:hidden;background:#050506;color:#d8d8dc;isolation:isolate}
.contact-header{position:absolute;top:4.8%;left:8%;right:8%;display:flex;justify-content:space-between;align-items:center;z-index:5}.contact-header p{font-size:10px;color:#707078;letter-spacing:.12em}
.contact-thread,.contact-stardust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.contact-thread{z-index:0;opacity:.32}.contact-thread path{fill:none;stroke:#a3a3b0;stroke-width:.65;vector-effect:non-scaling-stroke}.contact-stardust{z-index:3}
.contact-signature{position:absolute;right:7%;top:14%;width:min(43%,550px);margin:0;z-index:2;transform:perspective(1000px) translate3d(var(--signature-x,0px),var(--signature-y,0px),0) rotateX(var(--signature-rx,0deg)) rotateY(var(--signature-ry,0deg)) scale(var(--signature-scale,1));will-change:transform}
.contact-signature-window{position:relative;aspect-ratio:2.25;overflow:hidden;mix-blend-mode:screen;filter:drop-shadow(0 0 9px #e8e5ff22);transition:filter .5s}.contact-signature.is-hovered .contact-signature-window{filter:drop-shadow(0 0 14px #e8e5ff80) drop-shadow(0 0 35px #d4d0ff33)}
.contact-signature img{display:block;width:100%;height:auto;transform:translateY(-28%);opacity:.68;transition:opacity .5s;pointer-events:none}.contact-signature.is-hovered img:not(.signature-light){opacity:.95}
.contact-signature .signature-light{position:absolute;top:0;left:0;opacity:0;filter:brightness(2);mask-image:radial-gradient(ellipse 150px 125px at var(--signature-light-x,50%) var(--signature-light-y,50%),#000,transparent);transition:opacity .3s}
.contact-signature.is-hovered .signature-light{opacity:.95}
.contact-copy{position:absolute;left:8%;bottom:15%;width:min(63%,710px);z-index:4}.contact-links{display:grid;grid-template-columns:1fr 1.35fr;column-gap:80px;row-gap:27px;align-items:start}.contact-item{position:relative;display:flex!important;flex-direction:column;align-items:flex-start;text-align:left;min-width:0;padding:8px 0;border:0;background:none;text-decoration:none;color:inherit;cursor:pointer;transform-origin:left center!important;transition:scale .35s,color .35s}.contact-item:nth-child(even){top:32px}
.contact-item-title{font:400 21px/1.7 "Songti SC",SimSun,serif;letter-spacing:.13em}.contact-item[data-contact="resume"] .contact-item-title{font-size:31px;letter-spacing:.1em}.contact-item[data-contact="resume"]::after{content:'';height:1px;width:44px;background:#c0b9cd70;margin-top:18px;transition:width .4s}.contact-item[data-contact="resume"]:hover::after{width:84px}.contact-item small{font:11px/1.8 Arial,"Microsoft YaHei",sans-serif;letter-spacing:.035em;color:#9893a2;margin-top:9px;overflow-wrap:anywhere}.contact-item:hover small{color:#ccc4d5}.contact-phone{cursor:text;user-select:text}.contact-phone:hover small{color:#9893a2}
.contact-item[aria-disabled=true],.contact-item:disabled{cursor:default;opacity:.48;scale:1!important}.contact-item:focus-visible,.resume-dialog button:focus-visible,.resume-dialog a:focus-visible,.wechat-close:focus-visible{outline:1px solid #b8b5c0;outline-offset:6px}
.contact-status{position:fixed;inset:28px auto auto 50%;translate:-50% 0;margin:0;padding:13px 25px;border:1px solid #ffffff24;border-radius:3px;background:#18171deb;backdrop-filter:blur(15px);color:#eee;font:12px/1.6 Arial,"Microsoft YaHei",sans-serif;z-index:10000;max-width:90vw;width:max-content;pointer-events:none;box-shadow:0 12px 40px #0005}.contact-status:empty{display:none}
.wechat-dialog,.resume-dialog{position:fixed;inset:0;border:0;box-shadow:none;background:transparent;color:#ddd;padding:0;outline:none}.wechat-dialog::backdrop,.resume-dialog::backdrop{background:#000d;backdrop-filter:blur(9px)}
.wechat-dialog{margin:auto;width:max-content;height:max-content;max-width:88vw;max-height:84dvh;overflow:visible}.wechat-code img{display:block;width:auto;height:auto;max-width:88vw;max-height:84dvh}.wechat-code .wechat-pending{color:#aaa;font-size:12px;padding:30px}
.wechat-close,.resume-close{position:fixed;right:5vw;top:22px;background:none;border:0;color:#d2cddc;font:12px Arial,sans-serif;cursor:pointer;padding:10px;z-index:2}
.resume-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:65px 5vw 100px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.resume-pages{width:min(760px,100%);margin:0 auto}.resume-pages img{display:block;width:100%;height:auto;margin:0 auto 24px}.resume-pages .resume-empty{color:#bbb;font-size:13px;line-height:2;text-align:center;padding:25vh 0}
.resume-downloads{position:fixed;bottom:24px;left:50%;translate:-50% 0;display:flex;gap:20px;padding:12px 24px;border-radius:2px;background:#17161bec;backdrop-filter:blur(10px)}.resume-downloads:empty{display:none}.resume-downloads a{color:#eee9f4;font-size:12px;text-decoration:none;white-space:nowrap}
.resume-empty{white-space:pre-line}.contact-item[data-contact="wechat"] small{user-select:text}
@media(max-width:700px){#portfolio-document>.contact-page{min-height:650px}.contact-signature{width:76%;top:13%;right:5%}.contact-copy{left:8%;width:84%;bottom:14%}.contact-links{grid-template-columns:1fr 1.3fr;gap:24px 28px}.contact-item-title{font-size:19px}.contact-item[data-contact="resume"] .contact-item-title{font-size:25px}.contact-item:nth-child(even){top:22px}.contact-item small{margin-top:9px}.resume-dialog{padding:60px 4vw 85px}.resume-downloads{bottom:20px}.contact-status{top:18px;padding:12px 20px}}
@media(prefers-reduced-motion:reduce){.contact-signature{transform:none;will-change:auto}.signature-light{display:none}}

/* Fine silver pendant marks echo the linework in the name artwork. */
.contact-ornament{position:absolute;left:-27px;top:11px;width:13px;height:56px;fill:none;stroke:#bbb0c7;stroke-width:.7;opacity:.5;pointer-events:none;transition:opacity .4s,filter .4s}.contact-ornament circle{fill:#c7bdd2;stroke:none}.contact-item[data-contact="resume"] .contact-ornament{height:65px;top:14px}.contact-item:is(a,button):hover .contact-ornament{opacity:.95;filter:drop-shadow(0 0 4px #cdbde655)}
/* Translucent capsule with a raised rim and pointer-following reflection. */
.bgm-control{isolation:isolate;min-width:93px;min-height:37px;padding:10px 16px;border:1px solid #ffffff22;border-radius:999px;overflow:hidden;background:radial-gradient(ellipse at var(--glass-x,30%) var(--glass-y,10%),#ffffff28,transparent 70%),linear-gradient(145deg,#ffffff13,#b8bddb09 48%,#ffffff1c);color:#d9d7e0;backdrop-filter:blur(18px) saturate(170%) brightness(1.14);-webkit-backdrop-filter:blur(18px) saturate(170%) brightness(1.14);box-shadow:inset 0 1px 1px #ffffff50,inset 1px 0 1px #ffffff17,inset 0 -1px 2px #ffffff22,0 5px 18px #0004,0 1px 3px #0006;text-shadow:0 1px 5px #0008;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,color .25s}
.bgm-control::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:conic-gradient(from 150deg at 50% 50%,#ffffff08,#ffffff88 19%,#ffffff10 35%,#ffffff05 53%,#ffffff65 72%,#ffffff0c 90%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}
.bgm-control::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse 46px 24px at var(--glass-x,28%) var(--glass-y,0%),#ffffff36,transparent),linear-gradient(175deg,#ffffff12,transparent 45%,#ffffff08);pointer-events:none;opacity:.7;transition:opacity .3s}
.bgm-label{position:relative;z-index:1}.bgm-control:hover,.bgm-control:focus-visible{color:#fff;transform:translateY(-1px);box-shadow:inset 0 1px 2px #ffffff70,inset 0 -1px 3px #ffffff30,0 7px 22px #0005}.bgm-control:hover::after{opacity:1}.bgm-control:active{transform:scale(.96)}.bgm-control[aria-pressed=true]{border-color:#e3deff38;color:#f0edf7}
@supports not (backdrop-filter:blur(1px)){.bgm-control{background:linear-gradient(145deg,#37363ce8,#1c1c22ef)}}
@media(max-width:700px){.contact-ornament{left:-20px;width:10px;height:48px}.contact-item[data-contact="resume"] .contact-ornament{height:54px}}
@media(prefers-reduced-motion:reduce){.bgm-control:hover,.bgm-control:active{transform:none}.contact-ornament{transition:none}}

/* A readable label on the light evidence sheets, with the glass rim retained. */
.bgm-control .bgm-label{font-size:11px;font-weight:500;letter-spacing:.06em}
body:has(.evidence-page:not([hidden])) .bgm-control{color:#292631;text-shadow:0 1px 0 #ffffff70;background:radial-gradient(ellipse at var(--glass-x,30%) var(--glass-y,10%),#ffffff78,transparent 70%),linear-gradient(145deg,#ffffff60,#e0ddea45 48%,#ffffff65);border-color:#ffffff90;box-shadow:inset 0 1px 2px #ffffffd0,inset 0 -1px 2px #aaa0b530,0 4px 16px #31273616}
body:has(.evidence-page:not([hidden])) .bgm-control:is(:hover,:focus-visible){color:#17131f}
body:has(.evidence-page:not([hidden])) .bgm-control .bgm-label{color:inherit;text-shadow:none}
