@font-face {font-family:AaCandidate;src:url("assets/fonts/AaSFSSSCS-candidate.woff2") format("woff2");font-display:swap;}
@font-face {font-family:GochiCandidate;src:url("assets/fonts/GochiHand-Regular.ttf") format("truetype");font-display:swap;}
.candidate-section {position:relative;width:868px;height:627px;margin-left:calc(var(--portfolio-content-left) + 15.164px);}
.candidate-position {position:absolute;left:20.7526px;top:25.95px;width:821.707px;height:431.729px;display:flex;align-items:center;justify-content:center;}
.candidate-note {position:relative;flex:none;width:793px;height:364px;background:#fff8c7;transform:rotate(-5deg);filter:drop-shadow(8px 12px 0 rgba(0,0,0,.12));color:rgba(25,22,24,.9);}
.candidate-note h2 {position:absolute;left:42.47px;top:37.53px;width:398.704px;margin:0;font:700 22px/24px DouyinSans,sans-serif;white-space:nowrap;}
.candidate-tape {position:absolute;left:738.025px;top:4.73px;width:76.296px;height:23.843px;background:rgba(255,198,218,.7);transform:rotate(38deg);box-shadow:0 1px 3px rgba(17,18,18,.15);}
.candidate-heading-rule {position:absolute;left:38.14px;width:380.865px;}
.candidate-list {position:absolute;left:38px;top:81px;width:381px;}
.candidate-item {position:relative;display:flex;align-items:center;gap:16.64px;padding-left:4.48px;width:381px;height:56px;overflow:hidden;cursor:pointer;}
.candidate-item input {z-index:2;position:absolute;left:0;top:6px;width:36px;height:44px;opacity:0;cursor:pointer;}
.candidate-box {position:relative;flex:none;width:26.88px;height:28.16px;}.candidate-box img {position:absolute;inset:0;width:100%;height:100%;}.candidate-check {opacity:0;transition:opacity .16s;}
.candidate-item input:focus-visible+.candidate-box {outline:2px solid #7f6cf6;outline-offset:4px;border-radius:3px;}
.candidate-item-text {font:400 22px/22.75px AaCandidate,sans-serif;width:274.795px;white-space:nowrap;}
.candidate-strike {position:absolute;left:46.8648px;top:25px;width:257px;height:6px;clip-path:inset(0 100% 0 0);transition:clip-path .28s ease;pointer-events:none;}
.candidate-item input:checked~.candidate-box .candidate-check {opacity:1;}.candidate-item input:checked~.candidate-strike {clip-path:inset(0);}
.candidate-divider {position:absolute;left:0;top:54.08px;width:487.04px;height:.96px;}
.candidate-chat {position:absolute;left:136.821px;top:266.092px;width:151.589px;height:52.272px;display:flex;align-items:center;justify-content:center;}.candidate-chat img {position:absolute;inset:0;width:100%;height:100%;}.candidate-chat span {position:relative;font:400 20px/normal GochiCandidate,cursive;}
.candidate-portrait {position:absolute;left:468.173px;top:57.039px;width:270.6px;height:270px;overflow:hidden;}
.candidate-avatar {position:absolute;left:6.39px;top:6.65px;width:257.563px;height:253.739px;}.candidate-avatar-base,.candidate-cover-fallback,.candidate-scratch {position:absolute;inset:0;display:block;width:100%;height:100%;}
.candidate-photo-crop {position:absolute;left:2.41%;right:-1.35%;top:0;aspect-ratio:451.1394/446.6641;overflow:hidden;}.candidate-photo-crop img {position:absolute;left:-97.74%;top:0;width:393.23%;height:198.58%;max-width:none;}
.candidate-scratch {pointer-events:none;}.candidate-avatar.scratch-ready .candidate-cover-fallback {visibility:hidden;}.candidate-red-frame {position:absolute;left:.186%;top:-.077%;width:99.126%;height:98.584%;pointer-events:none;}
.candidate-status {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}

@media(prefers-reduced-motion:reduce) {.candidate-check,.candidate-strike {transition:none;}}

@font-face{font-family:DouyinSans;src:url("assets/fonts/DouyinSans-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
/* At the document end, retain the preceding 74/1440-width black band at the top.
   Crop only the contact background; the 1440px artwork keeps its existing scale. */
#contact{position:relative;width:100%;height:max(0px,calc(100svh - 5.138888889vw + 1px));overflow:hidden;background:#008efe;font-family:"PingFang SC",Arial,sans-serif}
.contact-canvas{position:absolute;left:0;top:0;width:1440px;height:874px;transform:scale(var(--about-scale,1));transform-origin:top left}
#contact .about-sky-texture{left:-18px;top:-57px;width:1473px;height:988px}
#contact .about-sky{width:1473px;height:988px;object-fit:cover}
.contact-info{position:absolute;left:136.942px;top:-25.302px;width:656px;height:342.904px;background:#d83030;transform:rotate(-1deg);overflow:hidden;color:#fff2f2}
.contact-qr{position:absolute;left:57px;top:45.916px;width:250px;height:250px}
.contact-email,.contact-phone{position:absolute;display:flex;flex-direction:column;gap:8px;font-size:18px;line-height:25px;margin:0}.contact-email{left:391.55px;top:86.28px}.contact-phone{left:388.71px;top:192.14px}.contact-info a{font-size:16px;font-weight:500;line-height:26.552px;color:inherit;text-decoration:none}
.contact-callout{position:absolute;left:878.99px;top:-47.038px;width:456px;height:232px;background:#e9e5e4;transform:rotate(1deg)}
.contact-callout p{position:absolute;left:54px;top:68px;margin:0;font:400 32px Playwrite,cursive;white-space:nowrap;color:rgba(25,22,24,.75)}.contact-callout p+p{top:141px}
#contact .candidate-section{position:absolute;inset:0;width:1440px;height:874px;margin:0;pointer-events:none}
#contact .candidate-position{left:494px;top:193px}
#contact .candidate-note{pointer-events:auto}

/* Same fixed-corner motion layer as the Douyin case; preserve contact-page styling. */
.candidate-hinge{position:relative;flex:none;width:793px;height:364px;transform:rotate(0deg);}

/* Figma contact cards: 4px offset, 15.3px CSS blur, 12% black. */
#contact .contact-info,#contact .contact-callout{box-shadow:4px 4px 15.3px rgba(0,0,0,.12)}
.candidate-chat{border:0;padding:0;background:transparent;color:inherit;cursor:pointer;appearance:none}
.candidate-chat:focus-visible{outline:2px solid #19769b;outline-offset:5px}
.contact-qr-shine{position:absolute;left:57px;top:45.916px;width:250px;height:250px;pointer-events:none;overflow:hidden;mask:url('./assets/qr-shine-mask.svg') center/100% 100% no-repeat;-webkit-mask:url('./assets/qr-shine-mask.svg') center/100% 100% no-repeat}
.contact-qr-shine>span{position:absolute;inset:0;opacity:0;background:linear-gradient(105deg,transparent 12%,rgba(255,255,255,.8) 28%,#fff 38%,#fff 62%,rgba(255,255,255,.8) 72%,transparent 88%);transform:translateX(-110%)}

/* Fill taller viewports with sky rather than exposing the blue section base. */
#contact .about-sky-texture{height:max(988px,calc((100svh - 1.180555556vw + 1px) / var(--about-scale,1)))}
#contact .about-sky{height:100%}
