@font-face{font-family:XiaoLaiSC;src:url('./fonts/xiaolai-sc.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
[hidden]{display:none!important}
html[data-theme="light"]{background:#fff!important;color-scheme:light}
body.figma-light-active{background:#fff!important;color:#000!important;overflow-x:hidden;padding:0!important}
body.figma-light-active>#root{display:none!important}
body.figma-light-active>.light-dock,body.figma-light-active>.site-loader{display:none!important}
.fl-page{--ink:#0d0d0d;--line:#111;--muted:rgba(0,0,0,.56);--yellow:#F4DAA1;--green:#B5E2BE;--cyan:#B5E3F0;--purple:#C4BCEA;--pink:#FAB4B5;position:relative;z-index:20;width:100%;min-height:100vh;background:#fff;color:var(--ink);font-family:XiaoLaiSC,"Microsoft YaHei",sans-serif;font-weight:400;line-height:1.55;overflow:hidden}
.fl-page *{box-sizing:border-box}.fl-page button,.fl-page input{font:inherit}.fl-page a{color:inherit;text-decoration:none}.fl-wrap{width:min(1160px,calc(100% - 64px));margin:0 auto}.fl-section{position:relative;padding:150px 0}.fl-section[id]{scroll-margin-top:80px}
.fl-reveal{opacity:0;transform:translateY(28px);transition:opacity .55s ease,transform .55s ease}.fl-reveal.is-visible{opacity:1;transform:none}
.fl-hero{height:900px;min-height:100svh;display:grid;place-items:center;position:relative;background:#fff}.fl-hero-inner{text-align:center;margin-top:-30px}.fl-pill,.fl-mini-pill{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:999px;padding:6px 22px;font-size:16px;background:#fff}.fl-hero h1{display:flex;align-items:center;justify-content:center;gap:32px;margin:30px 0 20px;font-size:clamp(56px,5.2vw,76px);line-height:1.1;letter-spacing:.02em;font-weight:400}.fl-hero h1 i{width:72px;border-top:2px solid var(--line)}.fl-hero p{font-size:22px;color:var(--muted);margin:0}.fl-actions{display:flex;justify-content:center;gap:18px;margin-top:52px}.fl-btn,.fl-download,.fl-contact-grid a,.fl-contact-grid button{min-height:42px;border:2px solid var(--line);border-radius:999px;background:#fff;color:#000;padding:8px 24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease}.fl-btn:hover,.fl-download:hover,.fl-contact-grid a:hover,.fl-contact-grid button:hover{transform:translateY(-2px)}.fl-btn-black,.fl-store{background:#0c0c0c!important;color:#fff!important}
.fl-note{position:absolute;display:inline-grid;place-items:center;min-width:110px;min-height:65px;padding:10px 16px;border:1.5px solid var(--line);font-size:13px;line-height:1.25;text-align:center;letter-spacing:.04em}.fl-note-hire{right:9%;top:16%;background:var(--green);transform:rotate(7deg)}.fl-note-year{left:10%;top:61%;background:var(--yellow);transform:rotate(-8deg)}
.fl-section-head{text-align:center}.fl-kicker{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 0 12px;font-size:19px}.fl-kicker i{display:block;width:58px;border-top:1.5px solid var(--line)}.fl-section-head h2{margin:0;font-size:clamp(50px,5vw,70px);line-height:1.08;font-weight:400}.fl-section-desc{margin:18px auto 0;color:var(--muted);font-size:19px}
.fl-about{padding-top:125px}.fl-about-card{position:relative;margin:78px auto 0;max-width:1050px;min-height:350px;border:2px solid var(--line);border-radius:34px;padding:72px 90px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.fl-about-card:before{content:"";position:absolute;left:-5px;top:-5px;width:10px;height:10px;border:1.5px solid var(--line);border-radius:50%;background:var(--yellow)}.fl-about-main{max-width:820px;margin:0;font-size:29px;line-height:1.45}.fl-about-card mark{background:none;color:#000;font-size:1.5em}.fl-about-card>p:nth-child(2){max-width:760px;color:var(--muted);font-size:17px;margin:26px 0}.fl-tags{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.fl-tags span{border:1.5px solid var(--line);border-radius:999px;padding:4px 20px;font-size:14px}
.fl-profile{padding-top:180px}.fl-profile-grid{display:grid;grid-template-columns:320px 1fr;align-items:center;gap:140px}.fl-id-card{border:2px solid var(--line);border-radius:32px;padding:24px;background:#fff;position:relative}.fl-id-card>small{position:absolute;right:16px;top:-32px;font-size:11px;letter-spacing:.12em}.fl-id-card img{width:100%;aspect-ratio:1.05;display:block;object-fit:cover;border-radius:20px;filter:saturate(.8)}.fl-id-card>div{padding:22px 2px 4px}.fl-id-card em{font-style:normal;font-size:10px;letter-spacing:.12em}.fl-id-card h3{font-size:36px;line-height:1;margin:15px 0 7px;font-weight:400}.fl-id-card p{font-size:13px;color:var(--muted);margin:0 0 17px}.fl-mini-pill{font-size:12px;padding:4px 14px;border-width:1.5px}.fl-profile-copy{position:relative}.fl-profile-copy .fl-section-head{text-align:left}.fl-profile-copy .fl-kicker{justify-content:flex-start}.fl-profile-copy .fl-section-head h2{font-size:62px}.fl-profile-copy>h3{font-size:36px;font-weight:400;margin:35px 0 22px}.fl-profile-copy>p{font-size:16px;color:var(--muted);margin:0 0 14px;max-width:660px}.fl-note-info{right:0;top:0;background:var(--cyan);transform:rotate(8deg);min-height:40px}.fl-wide-head{display:grid;grid-template-columns:1fr 300px;align-items:end;gap:80px}.fl-wide-head .fl-section-head{text-align:left}.fl-wide-head .fl-kicker{justify-content:flex-start}.fl-wide-head>p{font-size:17px;color:var(--muted);margin:0 0 8px}
.fl-work{padding-top:190px}.fl-map{position:relative;height:720px;margin-top:75px}.fl-route{position:absolute;inset:25px 10px 25px;width:calc(100% - 20px);height:calc(100% - 50px);overflow:visible}.fl-route path{fill:none;stroke:#111;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:12 12}.fl-job{position:absolute;width:250px;min-height:132px;padding:25px 24px;text-align:left;background:#fff;border:2px solid var(--line);border-radius:22px;cursor:pointer;color:#000;transition:transform .22s ease}.fl-job:hover{z-index:4;transform:rotate(0) translateY(-6px)!important}.fl-job b{position:absolute;left:-15px;top:-15px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:13px}.fl-job small,.fl-job strong,.fl-job span{display:block}.fl-job small{font-size:14px;letter-spacing:.04em}.fl-job strong{font-size:20px;line-height:1.25;margin:7px 0;font-weight:400}.fl-job span{font-size:13px;color:var(--muted)}.fl-job-1{left:3%;top:72px;transform:rotate(-4deg)}.fl-job-2{left:39%;top:10px;transform:rotate(8deg)}.fl-job-3{right:2%;top:170px;transform:rotate(-2deg)}.fl-job-4{left:13%;top:370px;transform:rotate(5deg)}.fl-job-5{right:16%;top:440px;transform:rotate(-7deg)}.fl-note-work{left:0;bottom:0;background:var(--purple);transform:rotate(8deg);min-height:42px}
.fl-data{padding-top:155px}.fl-data-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:90px;padding:0 15px}.fl-data-grid article{min-height:230px;border:2px solid var(--line);border-radius:28px;padding:42px 30px;display:flex;flex-direction:column;justify-content:space-between;background:#fff}.fl-data-grid article:nth-child(1){transform:rotate(-7deg)}.fl-data-grid article:nth-child(2){transform:rotate(5deg)}.fl-data-grid article:nth-child(3){transform:rotate(-5deg)}.fl-data-grid article:nth-child(4){transform:rotate(7deg)}.fl-data-grid strong{font-size:56px;font-weight:400;line-height:1}.fl-data-grid sup{font-size:.38em;margin-left:4px}.fl-data-grid p{font-size:15px;margin:0}.fl-data-grid article:hover{transform:rotate(0) translateY(-7px);transition:transform .22s ease}
.fl-works{padding-top:200px}.fl-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,500px));justify-content:center;gap:70px 80px;margin-top:100px}.fl-work-card{border:2px solid var(--line);border-radius:54px;padding:26px;background:#fff;min-height:560px;display:flex;flex-direction:column;align-items:flex-start}.fl-cover{display:block;width:100%;border:0;background:none;padding:0;cursor:pointer;overflow:hidden;border-radius:30px}.fl-cover img{width:100%;aspect-ratio:1.78;object-fit:cover;display:block;transition:transform .3s ease}.fl-cover:hover img{transform:scale(1.03)}.fl-work-card h3{font-size:30px;font-weight:400;margin:25px 0 9px}.fl-work-card>p{font-size:15px;color:var(--muted);margin:0 0 23px;line-height:1.8}.fl-download{font-size:14px;margin-top:auto}.fl-viewer{margin-top:100px;border:2px solid var(--line);border-radius:36px;padding:30px;background:#fff;scroll-margin-top:40px}.fl-viewer-head{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:25px}.fl-viewer-head>div:last-child{display:flex;gap:10px}.fl-viewer-year{font-size:13px}.fl-viewer-title{font-size:30px;font-weight:400;margin:4px 0 0}.fl-pdf{width:100%;height:min(80vh,900px);border:1px solid #bbb;border-radius:20px}
.fl-personal{padding-top:210px}.fl-personal-head{display:flex;justify-content:space-between;align-items:center}.fl-personal .fl-section-head{text-align:left}.fl-personal .fl-kicker{justify-content:flex-start}.fl-store{min-width:170px;height:52px;border:2px solid var(--line);border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.fl-metrics{display:grid;grid-template-columns:repeat(4,1fr);margin-top:110px;text-align:center}.fl-metrics strong{font-size:56px;font-weight:400}.fl-metrics sup{font-size:.38em}.fl-metrics p{margin:8px 0 0;font-size:14px}
.fl-contact{padding:190px 0 280px}.fl-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:80px;margin-top:100px}.fl-contact-grid article{display:flex;flex-direction:column;align-items:flex-start}.fl-contact-grid small{font-size:14px}.fl-contact-grid strong{font-size:20px;font-weight:400;margin:10px 0 20px}.fl-contact-grid a,.fl-contact-grid button{font-size:13px;padding:5px 18px;min-height:34px}
.fl-dock{position:fixed;z-index:200;left:50%;bottom:24px;transform:translateX(-50%);width:min(700px,calc(100% - 48px));height:94px;border-radius:50px;background:#fff;display:flex;align-items:center;justify-content:space-around;padding:10px 32px;box-shadow:0 8px 32px rgba(0,0,0,.14)}.fl-dock a{width:64px;height:64px;border-radius:50%;display:grid;place-items:center}.fl-dock img{width:50px;height:50px;display:block}.fl-theme,.fl-backtop{position:fixed;z-index:201;right:34px;width:58px;height:58px;border:1px solid #eee;border-radius:50%;background:#fff;color:#000;font-size:25px;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.1)}.fl-theme{bottom:140px}.fl-backtop{bottom:72px;opacity:0}.fl-page:hover .fl-backtop{opacity:1}
.fl-dialog{width:min(520px,calc(100% - 32px));border:2px solid var(--line);border-radius:34px;padding:0;background:#fff;color:#000;font-family:inherit}.fl-dialog::backdrop{background:rgba(255,255,255,.78);backdrop-filter:blur(8px)}.fl-dialog form{padding:55px;text-align:center}.fl-dialog-x{position:absolute;right:20px;top:16px;border:0;background:none;font-size:28px;cursor:pointer}.fl-dialog h3{font-size:32px;font-weight:400;margin:18px 0 8px}.fl-dialog form>p:not(.fl-kicker){color:var(--muted)}.fl-dialog label{display:block;text-align:left;margin:28px 0 18px}.fl-dialog input{display:block;width:100%;height:48px;border:2px solid var(--line);border-radius:999px;margin-top:8px;padding:0 20px;background:#fff;color:#000}.fl-error{min-height:24px;color:#b52727!important;font-size:14px}

@media (max-width:900px){
  .fl-wrap{width:min(100% - 36px,720px)}.fl-section{padding:105px 0}.fl-hero{height:820px}.fl-hero h1{font-size:50px;gap:15px}.fl-hero h1 i{width:32px}.fl-hero p{font-size:18px;padding:0 30px}.fl-note-hire{right:4%;top:12%}.fl-note-year{left:5%;top:68%}.fl-about-card{padding:55px 36px}.fl-about-main{font-size:24px}.fl-profile-grid{grid-template-columns:270px 1fr;gap:50px}.fl-profile-copy .fl-section-head h2{font-size:48px}.fl-profile-copy>h3{font-size:30px}.fl-wide-head{grid-template-columns:1fr;gap:22px}.fl-wide-head>p{max-width:520px}.fl-map{height:780px}.fl-job{width:225px}.fl-job-2{left:auto;right:6%}.fl-job-3{right:0;top:280px}.fl-job-4{left:2%;top:400px}.fl-job-5{right:5%;top:540px}.fl-data-grid{grid-template-columns:repeat(2,1fr);max-width:700px;margin-left:auto;margin-right:auto;gap:36px}.fl-work-grid{gap:38px;grid-template-columns:repeat(2,minmax(0,1fr))}.fl-work-card{border-radius:38px;min-height:500px}.fl-contact-grid{gap:30px}
}
@media (max-width:640px){
  .fl-wrap{width:calc(100% - 28px)}.fl-section{padding:82px 0}.fl-hero{height:740px}.fl-hero-inner{margin-top:-15px}.fl-pill{font-size:13px}.fl-hero h1{font-size:39px;gap:10px;white-space:nowrap}.fl-hero h1 i{width:20px}.fl-hero p{font-size:16px;line-height:1.75;padding:0 25px}.fl-actions{margin-top:35px}.fl-btn{padding:7px 20px}.fl-note{min-width:82px;min-height:50px;font-size:10px}.fl-note-hire{top:12%;right:5%}.fl-note-year{top:auto;bottom:11%}.fl-kicker{font-size:15px;gap:10px}.fl-kicker i{width:35px}.fl-section-head h2{font-size:43px}.fl-section-desc{font-size:15px}.fl-about-card{margin-top:50px;padding:42px 22px;min-height:330px;border-radius:28px}.fl-about-main{font-size:21px}.fl-about-card>p:nth-child(2){font-size:14px}.fl-tags span{font-size:12px;padding:3px 12px}.fl-profile-grid{grid-template-columns:1fr;gap:60px}.fl-id-card{width:min(290px,85%);margin:0 auto}.fl-profile-copy .fl-section-head{text-align:center}.fl-profile-copy .fl-kicker{justify-content:center}.fl-profile-copy .fl-section-head h2{font-size:44px}.fl-profile-copy>h3{font-size:29px;text-align:center}.fl-profile-copy>p{font-size:15px}.fl-note-info{display:none}.fl-wide-head .fl-section-head{text-align:center}.fl-wide-head .fl-kicker{justify-content:center}.fl-wide-head>p{text-align:center}.fl-map{height:auto;margin-top:55px;padding:0 5px 0 48px;display:grid;gap:24px}.fl-route{left:18px;top:0;width:2px;height:100%}.fl-route path{d:path('M0,0 L0,600');stroke-dasharray:8 9}.fl-job{position:relative!important;inset:auto!important;width:100%;min-height:120px;transform:none!important}.fl-job b{left:-54px;top:35px}.fl-note-work{display:none}.fl-data-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:55px;padding:0}.fl-data-grid article{min-height:160px;padding:27px 20px;border-radius:22px}.fl-data-grid strong{font-size:40px}.fl-data-grid p{font-size:12px}.fl-work-grid{grid-template-columns:1fr;gap:28px;margin-top:58px}.fl-work-card{border-radius:36px;min-height:500px;padding:20px}.fl-work-card h3{font-size:25px}.fl-viewer{padding:16px;border-radius:26px}.fl-viewer-head{align-items:flex-start;flex-direction:column}.fl-pdf{height:70vh}.fl-personal-head{align-items:flex-start;flex-direction:column;gap:30px}.fl-personal .fl-section-head{text-align:center}.fl-personal .fl-kicker{justify-content:center}.fl-store{align-self:center}.fl-metrics{grid-template-columns:repeat(2,1fr);gap:50px 10px;margin-top:70px}.fl-metrics strong{font-size:46px}.fl-contact{padding-bottom:190px}.fl-contact-grid{grid-template-columns:1fr;gap:45px;margin-top:70px}.fl-contact-grid article{align-items:center}.fl-dock{height:72px;width:calc(100% - 24px);bottom:12px;padding:7px 14px}.fl-dock a{width:48px;height:48px}.fl-dock img{width:39px;height:39px}.fl-theme,.fl-backtop{right:14px;width:48px;height:48px}.fl-theme{bottom:98px}.fl-backtop{display:none}.fl-dialog form{padding:46px 24px 30px}
}

/* v10 — final placement rules; intentionally last to beat legacy overrides. */
.fl-id-card>small{
  position:absolute!important;
  z-index:10!important;
  top:-29px!important;
  right:18px!important;
  left:auto!important;
  display:block;
  padding:3px 8px!important;
  background:#fff!important;
  line-height:18px!important;
  transform:none!important;
}
.fl-work{
  padding-top:110px!important;
  padding-bottom:90px!important;
}
.fl-map{
  height:450px!important;
  margin-top:54px!important;
}
.fl-job-1{top:24px!important}
.fl-job-2{top:0!important}
.fl-job-3{top:90px!important}
.fl-job-4{top:245px!important}
.fl-job-5{top:285px!important}
.fl-job:hover,
.fl-job:focus-visible,
.fl-job.is-open{
  width:270px!important;
  min-height:205px!important;
  padding:23px 24px!important;
  transform:translateY(-1px) rotate(var(--card-rotate))!important;
}
.fl-job:hover .fl-job-detail,
.fl-job:focus-visible .fl-job-detail,
.fl-job.is-open .fl-job-detail{
  max-height:105px!important;
  margin-top:8px!important;
  font-size:12px!important;
}

@media(max-width:900px) and (min-width:641px){
  .fl-map{height:610px!important}
}

@media(max-width:640px){
  .fl-dock{
    bottom:max(72px,calc(env(safe-area-inset-bottom,0px) + 48px))!important;
    background:rgba(255,255,255,.66)!important;
    border:1px solid rgba(255,255,255,.82)!important;
    box-shadow:0 12px 40px rgba(0,0,0,.13)!important;
    -webkit-backdrop-filter:blur(22px) saturate(145%)!important;
    backdrop-filter:blur(22px) saturate(145%)!important;
  }
  .fl-theme{
    bottom:max(156px,calc(env(safe-area-inset-bottom,0px) + 134px))!important;
  }
  .fl-work{padding-top:76px!important;padding-bottom:70px!important}
  .fl-map{height:auto!important;margin-top:38px!important}
  .fl-job-1,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{top:auto!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{
    width:100%!important;
    min-height:198px!important;
    transform:none!important;
  }
}
.fl-dock{position:fixed!important}
.fl-dock>a{position:relative;z-index:2}
.fl-job>.fl-rough-border{display:none!important}
.fl-job{will-change:transform,min-height;transition:min-height .65s cubic-bezier(.22,1,.36,1),height .65s cubic-bezier(.22,1,.36,1),padding .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1),box-shadow .65s ease!important}
.fl-job:after{inset:0!important;border:2px solid #111!important;filter:none!important;transform:none!important;backface-visibility:hidden}
@keyframes fl-dock-soft-bounce{0%{transform:scale(1) rotate(0)}32%{transform:scale(.94) rotate(1deg)}68%{transform:scale(1.1) rotate(-3.5deg)}100%{transform:scale(1.08) rotate(-3deg)}}
.fl-dock a{transition:transform .6s ease!important;transform-origin:center!important}
.fl-dock a:hover{transform:scale(1.08) rotate(-3deg)!important}
.fl-dock a.fl-motion-press,.fl-dock a.fl-click-wobble{animation:fl-dock-soft-bounce .6s cubic-bezier(.34,1.56,.64,1)!important}
.fl-dock-bounce{animation:none!important}
.fl-actions{align-items:center!important}
.fl-actions .fl-btn{width:118px!important;min-width:118px!important;height:44px!important;min-height:44px!important;padding:8px 18px!important;box-sizing:border-box!important}
.fl-actions .fl-btn{box-shadow:0 0 0 2px #fff,0 0 0 4px #000!important}
.fl-actions .fl-btn>.fl-rough-border{display:none!important}
.fl-actions .fl-btn:after{inset:0!important;border:2px solid #000!important;filter:none!important}
@media(max-width:640px){.fl-actions .fl-btn{width:106px!important;min-width:106px!important;height:42px!important;min-height:42px!important;padding:7px 14px!important}}
.fl-job:hover small,.fl-job:focus-visible small,.fl-job.is-open small{font-size:12px!important;line-height:normal!important}
.fl-job:hover strong,.fl-job:focus-visible strong,.fl-job.is-open strong{font-size:17px!important;line-height:1.3!important;margin:6px 0!important}
.fl-job:hover>span:not(.fl-job-detail),.fl-job:focus-visible>span:not(.fl-job-detail),.fl-job.is-open>span:not(.fl-job-detail){font-size:12px!important;line-height:normal!important}
@media(min-width:901px) and (max-width:1399px){
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:238px!important}
}
@media(min-width:1400px){
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:242px!important}
  .fl-job:hover small,.fl-job:focus-visible small,.fl-job.is-open small{font-size:16px!important;line-height:22px!important}
  .fl-job:hover strong,.fl-job:focus-visible strong,.fl-job.is-open strong{font-size:16px!important;line-height:26px!important;margin:0!important}
  .fl-job:hover>span:not(.fl-job-detail),.fl-job:focus-visible>span:not(.fl-job-detail),.fl-job.is-open>span:not(.fl-job-detail){font-size:16px!important;line-height:26px!important}
}

/* v12 — exact desktop geometry from Figma frame 3:4, nodes 4:217–4:239. */
@media(min-width:901px){
  .fl-work{padding-top:190px!important;padding-bottom:120px!important}
  .fl-work .fl-wide-head{grid-template-columns:681px 372px!important;align-items:end!important;gap:107px!important}
  .fl-work .fl-kicker{margin-bottom:24px!important}
  .fl-work .fl-section-head h2{font-size:70px!important;line-height:72px!important;white-space:nowrap!important}
  .fl-work .fl-wide-head>p{width:372px!important;max-width:none!important;margin:0 0 2px!important;font-size:16px!important;line-height:34px!important}
  .fl-map{height:720px!important;margin-top:112px!important;padding:0!important;overflow:visible!important}
  .fl-route{position:absolute!important;left:22.805%!important;top:31px!important;width:61.644%!important;height:588px!important;object-fit:fill!important;clip-path:none!important}
  .fl-job,.fl-job-2,.fl-job-4,.fl-job-5{width:242px!important;height:120px!important;min-height:120px!important;padding:18px 20px!important;border-radius:24px!important;overflow:visible!important}
  .fl-job-1{left:10.6%!important;top:101px!important;--card-rotate:-17.17deg}
  .fl-job-2{left:61.0%!important;right:auto!important;top:27px!important;--card-rotate:13deg}
  .fl-job-3{left:42.2%!important;right:auto!important;top:236px!important;--card-rotate:13deg}
  .fl-job-4{left:20.1%!important;top:460px!important;--card-rotate:13deg}
  .fl-job-5{left:auto!important;right:6.6%!important;top:543px!important;--card-rotate:-15deg}
  .fl-job small{font-size:16px!important;line-height:22px!important;letter-spacing:0!important}
  .fl-job strong{font-size:16px!important;line-height:26px!important;margin:0!important;font-weight:400!important}
  .fl-job>span:not(.fl-job-detail){font-size:16px!important;line-height:26px!important;color:#000!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:292px!important;height:auto!important;min-height:301px!important;padding:28px 28px!important;transform:rotate(0deg)!important}
  .fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:145px!important;margin-top:14px!important;font-size:14px!important;line-height:1.7!important}
  .fl-note-work{left:0!important;top:411px!important;width:151px!important;height:53px!important;min-height:53px!important;transform:rotate(15deg)!important}
}

/* Final experience-card rotations from the annotated design. */
@media(min-width:641px){
  .fl-job-1{--card-rotate:17.27deg!important;transform:rotate(17.27deg)!important}
  .fl-job-2{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-3{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-4{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-5{--card-rotate:17.27deg!important;transform:rotate(17.27deg)!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{transform:scale(1.04) rotate(var(--card-rotate))!important}
}

/* Mobile profile containment and native-image gesture protection. */
.fl-dock a,.fl-dock img{-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-user-drag:none!important;touch-action:manipulation}
@media(max-width:640px){
  .fl-profile{overflow:hidden!important;padding-inline:0!important}
  .fl-profile .fl-wrap.fl-profile-grid{width:calc(100% - 32px)!important;max-width:none!important;min-width:0!important;margin-inline:auto!important;padding-inline:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:64px!important}
  .fl-profile .fl-id-card{width:min(100%,300px)!important;max-width:300px!important;min-width:0!important;margin-inline:auto!important;padding:20px!important}
  .fl-profile .fl-id-card>small{right:12px!important;max-width:calc(100% - 24px)!important;white-space:nowrap!important}
  .fl-profile .fl-profile-copy{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}
  .fl-profile .fl-profile-copy .fl-section-head h2{font-size:clamp(38px,12vw,48px)!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .fl-profile .fl-profile-copy>h3{font-size:clamp(26px,8vw,31px)!important;line-height:1.35!important}
  .fl-profile .fl-profile-copy>p{width:100%!important;max-width:100%!important;font-size:14px!important;line-height:1.9!important;overflow-wrap:anywhere!important}
}

/* Full-copy guard: wide descriptions animate as one block so wrapping is never clipped. */
.fl-wide-head>p{height:auto!important;max-height:none!important;overflow:visible!important;white-space:normal!important}

/* Store action follows the same outlined visual language as “查看作品集”. */
.fl-store{
  min-width:118px!important;
  width:auto!important;
  height:42px!important;
  min-height:42px!important;
  padding:7px 22px!important;
  border:2px solid #111!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#111!important;
  text-decoration:none!important;
}

@media(max-width:900px) and (min-width:641px){
  .fl-work{padding-top:140px!important;padding-bottom:90px!important}
  .fl-work .fl-wide-head{grid-template-columns:1fr!important;gap:22px!important}
  .fl-map{height:700px!important;margin-top:80px!important}
  .fl-route{left:10%!important;top:55px!important;width:80%!important;height:540px!important;object-fit:fill!important}
}

@media(max-width:640px){
  .fl-work{padding-top:82px!important;padding-bottom:70px!important}
  .fl-route{display:none!important}
  .fl-map{height:auto!important;margin-top:48px!important;padding-left:0!important;gap:20px!important}
  .fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:120px!important;padding:22px 23px!important;transform:none!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%!important;min-height:205px!important;transform:none!important}
}

/* v11 — balanced work-experience composition. */
.fl-work{
  padding-top:96px!important;
  padding-bottom:52px!important;
}
.fl-work .fl-wide-head{
  grid-template-columns:minmax(0,1fr) 330px;
  align-items:end;
  gap:64px;
}
.fl-work .fl-wide-head>p{
  max-width:330px;
  margin-bottom:10px;
  font-size:15px;
  line-height:1.85;
}
.fl-work .fl-kicker{
  margin-bottom:14px;
}
.fl-work .fl-section-head h2{
  line-height:1;
}
.fl-map{
  height:470px!important;
  margin-top:62px!important;
}
.fl-route{
  inset:10px 18px 8px!important;
  width:calc(100% - 36px)!important;
  height:calc(100% - 18px)!important;
  clip-path:none!important;
}
.fl-route path{
  stroke-width:2.6!important;
  stroke-dasharray:9 10!important;
}
.fl-job,
.fl-job-2,
.fl-job-4,
.fl-job-5{
  width:238px!important;
  min-height:122px!important;
  padding:22px 23px!important;
  border-radius:24px!important;
}
.fl-job-1{left:6%!important;top:38px!important;--card-rotate:-2deg}
.fl-job-2{left:43%!important;top:0!important;--card-rotate:4deg}
.fl-job-3{left:43%!important;right:auto!important;top:174px!important;--card-rotate:-2deg}
.fl-job-4{left:14%!important;top:292px!important;--card-rotate:3deg}
.fl-job-5{left:auto!important;right:5%!important;top:294px!important;--card-rotate:-4deg}
.fl-job small{font-size:12px!important}
.fl-job strong{font-size:17px!important;line-height:1.3!important;margin:6px 0!important}
.fl-job>span:not(.fl-job-detail){font-size:12px!important}
.fl-job:hover,
.fl-job:focus-visible,
.fl-job.is-open{
  width:262px!important;
  min-height:188px!important;
  padding:23px 24px!important;
  transform:translateY(-2px) rotate(var(--card-rotate))!important;
}
.fl-job:hover .fl-job-detail,
.fl-job:focus-visible .fl-job-detail,
.fl-job.is-open .fl-job-detail{
  max-height:88px!important;
  margin-top:8px!important;
  line-height:1.55!important;
}
.fl-note-work{
  left:0!important;
  top:300px!important;
  width:144px!important;
  min-height:48px!important;
  transform:rotate(5deg)!important;
}

@media(max-width:900px) and (min-width:641px){
  .fl-work .fl-wide-head{grid-template-columns:1fr;gap:18px}
  .fl-work .fl-wide-head>p{max-width:560px}
  .fl-map{height:640px!important}
  .fl-job-1{left:2%!important}.fl-job-2{left:auto!important;right:3%!important}
  .fl-job-3{left:auto!important;right:0!important;top:205px!important}
  .fl-job-4{left:3%!important;top:330px!important}.fl-job-5{right:5%!important;top:440px!important}
}

@media(max-width:640px){
  .fl-work{padding-top:70px!important;padding-bottom:58px!important}
  .fl-work .fl-wide-head{grid-template-columns:1fr;gap:18px}
  .fl-work .fl-wide-head>p{max-width:100%;font-size:14px;line-height:1.7}
  .fl-map{height:auto!important;margin-top:36px!important;gap:18px!important}
  .fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    min-height:112px!important;
    padding:20px 21px!important;
    transform:none!important;
  }
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{
    width:100%!important;
    min-height:180px!important;
    transform:none!important;
  }
}
@media (prefers-reduced-motion:reduce){.fl-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.fl-reveal{opacity:1;transform:none}}

/* Figma Stroke-Dynamic line system: 2 px, frequency 120%, wiggle 75%, smoothen 20%. */
.figma-light-active #figma-light-root,.figma-light-active #figma-light-root *{font-family:XiaoLaiSC,"Microsoft YaHei",sans-serif!important;font-style:normal}
.fl-page{--line:#000;background:#fff}
.fl-page:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(0,0,0,.1) .7px,transparent .8px);background-size:15px 15px;opacity:.45}
.fl-page>section{position:relative;z-index:1;background:transparent}.fl-filter-defs{position:absolute;pointer-events:none}
.fl-reveal{opacity:0;transform:translateY(34px) scale(.995);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.fl-reveal.is-visible{opacity:1;transform:none}
.fl-kicker{gap:14px}.fl-kicker i{width:48px;border-top:2px solid #000;filter:url(#fl-line-wiggle)}.fl-hero h1 i{filter:url(#fl-line-wiggle)}
.fl-hero{background:transparent}

:where(.fl-pill,.fl-btn,.fl-note,.fl-about-card,.fl-tags span,.fl-id-card,.fl-mini-pill,.fl-job,.fl-data-grid article,.fl-work-card,.fl-download,.fl-viewer,.fl-store,.fl-contact-grid a,.fl-contact-grid button,.fl-dialog input){position:relative;border-color:transparent!important}
:where(.fl-pill,.fl-btn,.fl-note,.fl-about-card,.fl-tags span,.fl-id-card,.fl-mini-pill,.fl-job,.fl-data-grid article,.fl-work-card,.fl-download,.fl-viewer,.fl-store,.fl-contact-grid a,.fl-contact-grid button,.fl-dialog input):after{content:"";position:absolute;z-index:3;inset:-1px;border:2px solid #000;border-radius:inherit;filter:url(#fl-line-wiggle);pointer-events:none}
.fl-about-card:before{z-index:4}

.fl-job{z-index:2;transition:transform .48s cubic-bezier(.22,1,.36,1),box-shadow .48s ease}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{z-index:20;transform:rotate(0) translateY(-3px)!important;box-shadow:0 13px 30px rgba(0,0,0,.07);outline:none}
.fl-job .fl-job-detail{position:absolute;z-index:30;left:0;top:calc(100% + 13px);width:330px;padding:20px 22px;background:#fff;border:2px solid #000;border-radius:22px;color:#111;font-size:14px;line-height:1.75;opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transform-origin:top left;transition:opacity .36s ease,transform .48s cubic-bezier(.22,1,.36,1),visibility .36s;text-align:left;pointer-events:none;box-shadow:0 15px 35px rgba(0,0,0,.07)}
.fl-job .fl-job-detail em{display:block;margin-top:10px;color:rgba(0,0,0,.38);font-size:11px;font-style:normal}.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.fl-data-grid article{transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s ease}.fl-data-grid article:hover{transform:rotate(0) translateY(-4px);box-shadow:0 15px 30px rgba(0,0,0,.06)}
.fl-btn,.fl-download,.fl-contact-grid a,.fl-contact-grid button{transition:transform .42s cubic-bezier(.22,1,.36,1),background .3s ease,color .3s ease}.fl-btn:hover,.fl-download:hover,.fl-contact-grid a:hover,.fl-contact-grid button:hover{transform:translateY(-1px)}
.fl-route{clip-path:inset(-30px 5% -30px -30px)}

@media(max-width:640px){.fl-job .fl-job-detail{position:relative;top:auto;left:auto;width:auto;max-height:0;margin-top:0;padding:0 4px;border:0;box-shadow:none;overflow:hidden}.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:220px;margin-top:15px;padding:14px 4px 0}.fl-route{clip-path:none}}
@media(prefers-reduced-motion:reduce){.fl-reveal{opacity:1;transform:none}.fl-page *{transition:none!important}}
@media(max-width:640px){.fl-hero h1{font-size:31px;gap:6px}.fl-hero h1 i{width:12px}}

/* Animista: fade-in-bottom */
@-webkit-keyframes fade-in-bottom{0%{-webkit-transform:translateY(50px);transform:translateY(50px);opacity:0}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}
@keyframes fade-in-bottom{0%{-webkit-transform:translateY(50px);transform:translateY(50px);opacity:0}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}
.fl-reveal{opacity:0;transform:translateY(50px);transition:none!important;will-change:transform,opacity}.fl-reveal.is-visible{-webkit-animation:fade-in-bottom .78s cubic-bezier(.22,1,.36,1) both;animation:fade-in-bottom .78s cubic-bezier(.22,1,.36,1) both}

/* Work cards expand in place; details remain inside the same dynamic outline. */
.fl-job{--card-rotate:0deg;width:250px;min-height:132px;overflow:visible;transform:rotate(var(--card-rotate));transition:width .58s cubic-bezier(.22,1,.36,1),min-height .58s cubic-bezier(.22,1,.36,1),padding .58s cubic-bezier(.22,1,.36,1),transform .58s cubic-bezier(.22,1,.36,1),box-shadow .58s ease}
.fl-job-1{--card-rotate:-4deg}.fl-job-2{--card-rotate:8deg}.fl-job-3{--card-rotate:-2deg}.fl-job-4{--card-rotate:5deg}.fl-job-5{--card-rotate:-7deg}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:370px;min-height:310px;padding:32px 34px;transform:translateY(-5px) rotate(var(--card-rotate)) scale(1.01)!important;box-shadow:0 18px 38px rgba(0,0,0,.08)}
.fl-job b{background:var(--job-accent,#B5E2BE);color:#000;border:2px solid #000;width:42px;height:42px}.fl-job-1{--job-accent:#B5E2BE}.fl-job-2{--job-accent:#FAB4B5}.fl-job-3{--job-accent:#C4BCEA}.fl-job-4{--job-accent:#B5E3F0}.fl-job-5{--job-accent:#F4DAA1}
.fl-job .fl-job-detail{position:relative!important;inset:auto!important;z-index:auto;width:auto!important;max-height:0;margin:0;padding:0!important;background:transparent;border:0;border-radius:0;color:#111;font-size:15px;line-height:1.8;opacity:0;visibility:hidden;overflow:hidden;transform:translateY(8px);transition:max-height .65s cubic-bezier(.22,1,.36,1),margin .55s ease,opacity .38s ease,transform .55s cubic-bezier(.22,1,.36,1),visibility .38s;box-shadow:none!important;pointer-events:none;text-align:left}
.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:210px;margin-top:24px;opacity:1;visibility:visible;transform:none;pointer-events:auto}.fl-job .fl-job-detail em{margin-top:12px;color:rgba(0,0,0,.38)}

/* Animista: wobble-hor-bottom for action buttons. */
@-webkit-keyframes wobble-hor-bottom{0%,100%{-webkit-transform:translateX(0%);transform:translateX(0%);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}15%{-webkit-transform:translateX(-30px) rotate(-6deg);transform:translateX(-30px) rotate(-6deg)}30%{-webkit-transform:translateX(15px) rotate(6deg);transform:translateX(15px) rotate(6deg)}45%{-webkit-transform:translateX(-15px) rotate(-3.6deg);transform:translateX(-15px) rotate(-3.6deg)}60%{-webkit-transform:translateX(9px) rotate(2.4deg);transform:translateX(9px) rotate(2.4deg)}75%{-webkit-transform:translateX(-6px) rotate(-1.2deg);transform:translateX(-6px) rotate(-1.2deg)}}
@keyframes wobble-hor-bottom{0%,100%{-webkit-transform:translateX(0%);transform:translateX(0%);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}15%{-webkit-transform:translateX(-30px) rotate(-6deg);transform:translateX(-30px) rotate(-6deg)}30%{-webkit-transform:translateX(15px) rotate(6deg);transform:translateX(15px) rotate(6deg)}45%{-webkit-transform:translateX(-15px) rotate(-3.6deg);transform:translateX(-15px) rotate(-3.6deg)}60%{-webkit-transform:translateX(9px) rotate(2.4deg);transform:translateX(9px) rotate(2.4deg)}75%{-webkit-transform:translateX(-6px) rotate(-1.2deg);transform:translateX(-6px) rotate(-1.2deg)}}
.fl-page button:not(.fl-job):hover,.fl-page a:hover,.fl-page .fl-click-wobble{-webkit-animation:wobble-hor-bottom .8s both;animation:wobble-hor-bottom .8s both}

@media(max-width:640px){.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%;min-height:280px;padding:28px 24px}.fl-job .fl-job-detail{position:relative!important;max-height:0!important;margin-top:0!important;padding:0!important}.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:230px!important;margin-top:20px!important;padding:0!important}}

/* v6 — single Rough.js outlines, Figma-sized work cards and responsive galleries. */
.fl-reveal.is-visible{-webkit-animation-duration:1.08s;animation-duration:1.08s}
.fl-roughened{position:relative;border-color:transparent!important}
.fl-roughened:after{display:none!important}
.fl-rough-border{position:absolute;z-index:4;inset:0;width:100%;height:100%;display:block;pointer-events:none;overflow:visible}
.fl-roughened>*:not(.fl-rough-border){position:relative;z-index:1}

.fl-route{z-index:0;clip-path:inset(-24px 7% -24px -24px)}
.fl-job{z-index:2;width:250px;min-height:132px;padding:25px 24px;overflow:visible;box-shadow:none!important}
.fl-job-2,.fl-job-4{width:262px;min-height:170px}.fl-job-5{width:267px;min-height:186px}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:300px;min-height:310px;padding:25px 27px;transform:translateY(-2px) rotate(var(--card-rotate))!important;box-shadow:none!important}
.fl-job b{z-index:6;left:-10px;top:-10px;width:33px;height:33px;border:2px solid #000;font-size:12px;line-height:1;background:var(--job-accent,#B5E2BE);color:#000}
.fl-job:hover strong,.fl-job:focus-visible strong,.fl-job.is-open strong{font-size:18px;margin:5px 0}.fl-job:hover span,.fl-job:focus-visible span,.fl-job.is-open span{font-size:12px}
.fl-job .fl-job-detail{font-size:13px;line-height:1.62}
.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:170px;margin-top:14px}

.fl-work-card{width:100%;min-height:553px;padding:26px;border-radius:54px;background:#fff;box-shadow:none}
.fl-cover{border-radius:30px}.fl-cover img{aspect-ratio:446/250;transition:transform .45s cubic-bezier(.22,1,.36,1)}.fl-cover:hover img{transform:scale(1.008)}
.fl-work-card h3{font-size:32px;margin:25px 0 10px}.fl-work-card>p{max-width:394px;font-size:16px;line-height:2.05;margin-bottom:24px;color:#222}
.fl-work-actions{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:auto}
.fl-view-work,.fl-gallery-download,.fl-gallery-close{min-height:40px;padding:7px 22px;border:2px solid #000;border-radius:999px;background:#fff;color:#000;cursor:pointer;font:inherit}
.fl-work-download-icon{display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;padding:4px}
.fl-work-download-icon img{display:block;width:32px;height:32px;object-fit:contain}

.fl-gallery{position:fixed!important;z-index:600!important;inset:0;background:#fff;color:#000;overflow:auto;overscroll-behavior:contain;font-family:XiaoLaiSC,"Microsoft YaHei",sans-serif}
.fl-gallery-bar{position:sticky;z-index:5;top:0;display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:96px;padding:18px clamp(20px,5vw,72px);background:rgba(255,255,255,.94);border-bottom:2px solid #000;backdrop-filter:blur(12px)}
.fl-gallery-bar>div:last-child{display:flex;gap:12px;align-items:center}.fl-gallery-year{font-size:12px;letter-spacing:.12em}.fl-gallery-title{margin:2px 0 0;font-size:28px;font-weight:400}
.fl-gallery-images{columns:2;column-gap:0;width:min(1440px,100%);margin:0 auto;background:#fff}
.fl-gallery-images img{display:block;width:100%;height:auto;margin:0;break-inside:avoid;page-break-inside:avoid}

@media(max-width:900px){.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:285px}.fl-work-card{min-height:510px}.fl-work-card h3{font-size:26px}.fl-work-card>p{font-size:14px;line-height:1.8}}
@media(max-width:640px){.fl-job,.fl-job-2,.fl-job-4,.fl-job-5{width:100%;min-height:120px}.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%;min-height:270px;padding:27px 24px}.fl-job b{left:-50px;top:35px}.fl-work-card{min-height:500px}.fl-gallery-bar{align-items:flex-start;flex-direction:column;gap:12px;padding:14px 18px}.fl-gallery-bar>div:last-child{width:100%;justify-content:space-between}.fl-gallery-title{font-size:23px}.fl-gallery-images{columns:1}}

/* v7 — align the light page to the Figma composition. */
.fl-about{padding-top:99px;padding-bottom:93px}
.fl-about-card{margin-top:55px}
.fl-profile{padding-bottom:36px}
.fl-work{padding-top:190px}
.fl-map{height:560px;margin-top:112px;overflow:visible}
.fl-job-1{left:5%;top:35px}
.fl-job-2{left:34%;top:0}
.fl-job-3{left:64%;right:auto;top:125px}
.fl-job-4{left:20%;top:330px}
.fl-job-5{left:58%;right:auto;top:400px}
.fl-job b{display:none!important}
.fl-note-hire{right:max(24px,calc((100vw - 1160px)/2 + 13px));top:153px;width:142px;min-width:0;height:80px}
.fl-note-year{left:max(28px,calc((100vw - 1160px)/2 + 58px));top:646px;width:104px;min-width:0;height:86px}
.fl-note-work{left:0;top:361px;bottom:auto;width:160px;min-width:0;min-height:54px}
.fl-note-info{right:0;top:-72px}
.fl-hero-inner{transform:translateY(-300px)}
.fl-job-4{left:calc(20% + 30px)}
.fl-note-work{top:461px}
.fl-works{padding-top:120px}
.fl-work-grid{grid-template-columns:repeat(2,minmax(0,500px));gap:70px 80px;margin-top:69px;justify-content:center}
.fl-dock{bottom:48px}
.fl-gallery{position:fixed!important;inset:auto!important;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1120px,calc(100vw - 64px));height:min(88vh,900px);max-height:calc(100vh - 48px);border:2px solid #000;border-radius:36px;box-shadow:0 18px 80px rgba(0,0,0,.22),0 0 0 100vmax rgba(0,0,0,.42);overflow:auto}
.fl-gallery-images{columns:1!important;width:100%;margin:0;background:#fff}
.fl-gallery-images img{width:100%;margin:0;display:block}
.fl-work-card .fl-cover,
.fl-work-card .fl-view-work{position:relative!important;z-index:10!important;pointer-events:auto!important}
.fl-gallery:not([hidden]){display:block!important}
.fl-gallery[hidden]{display:none!important}
.fl-dock-bounce{animation:fl-dock-bounce .64s cubic-bezier(.22,1,.36,1) both}
@keyframes fl-dock-bounce{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-7px) scale(1.06)}65%{transform:translateY(1px) scale(.98)}}

@media(max-width:640px){
  .fl-note-hire{top:12%;right:5%;width:82px;height:50px}
  .fl-note-year{top:auto;bottom:11%;left:5%;width:82px;height:50px}
  .fl-note-work{display:none}
  .fl-dock{bottom:24px}
  .fl-gallery{width:calc(100vw - 28px);height:calc(100vh - 36px);max-height:none;border-radius:28px}
  .fl-map{height:auto;margin-top:55px;padding:0 5px 0 48px;display:grid;gap:24px}
  .fl-hero-inner{transform:translateY(-18px)}
  .fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;width:100%!important;min-height:120px;transform:none!important}
  .fl-work-grid{grid-template-columns:1fr;gap:28px;margin-top:58px}
}

/* Absolute composition elements must remain anchored to their Figma layouts. */
@media(min-width:641px){
  .fl-hero>.fl-note,
  .fl-profile-copy>.fl-note-info{position:absolute!important}
  .fl-map>.fl-job{position:absolute!important}
}

/* v8 — responsive hero composition and reliable portfolio interactions. */
.fl-hero-inner{
  position:relative;
  z-index:2;
}
.fl-note{
  z-index:1;
  pointer-events:none;
}
.fl-hero>.fl-note{
  position:absolute!important;
}
.fl-work-card .fl-cover,
.fl-work-card .fl-view-work{
  touch-action:manipulation;
}
.fl-gallery{
  overscroll-behavior:contain;
}

@media (min-width:641px){
  .fl-hero{
    height:clamp(590px,100svh,900px);
    min-height:590px;
  }
  .fl-hero-inner{
    margin-top:0;
    transform:translateY(clamp(-34px,-3.5vh,-18px));
  }
  .fl-note-hire{
    top:clamp(80px,16vh,153px);
  }
  .fl-note-year{
    top:auto;
    bottom:clamp(88px,18vh,168px);
  }
}

@media (max-width:640px){
  .fl-hero{
    height:auto;
    min-height:clamp(620px,88svh,720px);
    padding:172px 14px 138px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .fl-hero-inner{
    width:100%;
    margin:0;
    transform:translateY(-10px);
  }
  .fl-note-hire{
    top:58px;
    right:clamp(22px,8vw,42px);
  }
  .fl-note-year{
    top:132px;
    bottom:auto;
    left:clamp(22px,8vw,42px);
  }
  .fl-hero h1{
    margin-top:24px;
  }
  .fl-hero p{
    max-width:390px;
    margin-inline:auto;
  }
  .fl-actions{
    flex-wrap:wrap;
    margin-top:30px;
  }
}

@media (max-width:380px){
  .fl-hero h1{
    font-size:28px;
  }
  .fl-hero p{
    padding-inline:10px;
    font-size:15px;
  }
}

/* v9 — P0 interaction layer and layout refinements. */
body>.fl-gallery{
  position:fixed!important;
  z-index:2147483000!important;
}
.fl-id-card>small{
  z-index:8;
  top:-11px;
  right:auto;
  left:50%;
  padding:0 10px;
  background:#fff;
  color:#111;
  line-height:22px;
  transform:translateX(-50%);
  white-space:nowrap;
}
.fl-map{
  height:500px;
  margin-top:72px;
}
.fl-job-1{top:28px}
.fl-job-2{top:0}
.fl-job-3{top:105px}
.fl-job-4{top:285px}
.fl-job-5{top:330px}
.fl-job:hover,
.fl-job:focus-visible,
.fl-job.is-open{
  width:278px;
  min-height:238px;
  padding:24px 25px;
  transform:translateY(-2px) rotate(var(--card-rotate))!important;
}
.fl-job:hover .fl-job-detail,
.fl-job:focus-visible .fl-job-detail,
.fl-job.is-open .fl-job-detail{
  max-height:128px;
  margin-top:10px;
}

@media (max-width:900px) and (min-width:641px){
  .fl-map{height:650px;margin-top:72px}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:260px;min-height:230px}
}

@media (max-width:640px){
  .fl-dock{
    bottom:max(34px,calc(env(safe-area-inset-bottom,0px) + 22px));
    background:rgba(255,255,255,.72);
    border:1px solid rgba(255,255,255,.74);
    box-shadow:0 10px 34px rgba(0,0,0,.12);
    -webkit-backdrop-filter:blur(18px) saturate(135%);
    backdrop-filter:blur(18px) saturate(135%);
  }
  .fl-theme{
    bottom:max(118px,calc(env(safe-area-inset-bottom,0px) + 106px));
  }
  .fl-map{height:auto;margin-top:42px}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{
    width:100%!important;
    min-height:220px;
    padding:24px;
    transform:none!important;
  }
  .fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{
    max-height:125px!important;
    margin-top:10px!important;
  }
}

/* v10 final cascade guard */
.fl-id-card>small{position:absolute!important;z-index:10!important;top:-29px!important;right:18px!important;left:auto!important;padding:3px 8px!important;background:#fff!important;line-height:18px!important;transform:none!important}
.fl-work{padding-top:110px!important;padding-bottom:90px!important}
.fl-map{height:450px!important;margin-top:54px!important}
.fl-job-1{top:24px!important}.fl-job-2{top:0!important}.fl-job-3{top:90px!important}.fl-job-4{top:245px!important}.fl-job-5{top:285px!important}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:270px!important;min-height:205px!important;padding:23px 24px!important;transform:translateY(-1px) rotate(var(--card-rotate))!important}
.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:105px!important;margin-top:8px!important;font-size:12px!important}
@media(max-width:900px) and (min-width:641px){.fl-map{height:610px!important}}
@media(max-width:640px){
  .fl-dock{bottom:max(72px,calc(env(safe-area-inset-bottom,0px) + 48px))!important;background:rgba(255,255,255,.66)!important;border:1px solid rgba(255,255,255,.82)!important;box-shadow:0 12px 40px rgba(0,0,0,.13)!important;-webkit-backdrop-filter:blur(22px) saturate(145%)!important;backdrop-filter:blur(22px) saturate(145%)!important}
  .fl-theme{bottom:max(156px,calc(env(safe-area-inset-bottom,0px) + 134px))!important}
  .fl-work{padding-top:76px!important;padding-bottom:70px!important}.fl-map{height:auto!important;margin-top:38px!important}
  .fl-job-1,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{top:auto!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%!important;min-height:198px!important;transform:none!important}
}

/* v11 final cascade guard */
.fl-work{padding-top:96px!important;padding-bottom:52px!important}
.fl-work .fl-wide-head{grid-template-columns:minmax(0,1fr) 330px;align-items:end;gap:64px}
.fl-work .fl-wide-head>p{max-width:330px;margin-bottom:10px;font-size:15px;line-height:1.85}
.fl-work .fl-kicker{margin-bottom:14px}.fl-work .fl-section-head h2{line-height:1}
.fl-map{height:470px!important;margin-top:62px!important}
.fl-route{inset:10px 18px 8px!important;width:calc(100% - 36px)!important;height:calc(100% - 18px)!important;clip-path:none!important}
.fl-route path{stroke-width:2.6!important;stroke-dasharray:9 10!important}
.fl-job,.fl-job-2,.fl-job-4,.fl-job-5{width:238px!important;min-height:122px!important;padding:22px 23px!important;border-radius:24px!important}
.fl-job-1{left:6%!important;top:38px!important;--card-rotate:-2deg}.fl-job-2{left:43%!important;top:0!important;--card-rotate:4deg}.fl-job-3{left:43%!important;right:auto!important;top:174px!important;--card-rotate:-2deg}.fl-job-4{left:14%!important;top:292px!important;--card-rotate:3deg}.fl-job-5{left:auto!important;right:5%!important;top:294px!important;--card-rotate:-4deg}
.fl-job small{font-size:12px!important}.fl-job strong{font-size:17px!important;line-height:1.3!important;margin:6px 0!important}.fl-job>span:not(.fl-job-detail){font-size:12px!important}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:262px!important;min-height:188px!important;padding:23px 24px!important;transform:translateY(-2px) rotate(var(--card-rotate))!important}
.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:88px!important;margin-top:8px!important;line-height:1.55!important}
.fl-note-work{left:0!important;top:300px!important;width:144px!important;min-height:48px!important;transform:rotate(5deg)!important}
@media(max-width:900px) and (min-width:641px){.fl-work .fl-wide-head{grid-template-columns:1fr;gap:18px}.fl-work .fl-wide-head>p{max-width:560px}.fl-map{height:640px!important}.fl-job-1{left:2%!important}.fl-job-2{left:auto!important;right:3%!important}.fl-job-3{left:auto!important;right:0!important;top:205px!important}.fl-job-4{left:3%!important;top:330px!important}.fl-job-5{right:5%!important;top:440px!important}}
@media(max-width:640px){
  .fl-work{padding-top:70px!important;padding-bottom:58px!important}.fl-work .fl-wide-head{grid-template-columns:1fr;gap:18px}.fl-work .fl-wide-head>p{max-width:100%;font-size:14px;line-height:1.7}
  .fl-map{height:auto!important;margin-top:36px!important;gap:18px!important}
  .fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{position:relative!important;inset:auto!important;width:100%!important;min-height:112px!important;padding:20px 21px!important;transform:none!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%!important;min-height:180px!important;transform:none!important}
}

/* v12 final Figma geometry guard */
@media(min-width:901px){
  .fl-work{padding-top:190px!important;padding-bottom:120px!important}.fl-work .fl-wide-head{grid-template-columns:681px 372px!important;align-items:end!important;gap:107px!important}.fl-work .fl-kicker{margin-bottom:24px!important}.fl-work .fl-section-head h2{font-size:70px!important;line-height:72px!important;white-space:nowrap!important}.fl-work .fl-wide-head>p{width:372px!important;max-width:none!important;margin:0 0 2px!important;font-size:16px!important;line-height:34px!important}
  .fl-map{height:720px!important;margin-top:112px!important;padding:0!important;overflow:visible!important}.fl-route{position:absolute!important;left:22.805%!important;top:31px!important;width:61.644%!important;height:588px!important;object-fit:fill!important;clip-path:none!important}
  .fl-job,.fl-job-2,.fl-job-4,.fl-job-5{width:242px!important;height:120px!important;min-height:120px!important;padding:18px 20px!important;border-radius:24px!important;overflow:visible!important}.fl-job-1{left:10.6%!important;top:101px!important;--card-rotate:-17.17deg}.fl-job-2{left:61%!important;right:auto!important;top:27px!important;--card-rotate:13deg}.fl-job-3{left:42.2%!important;right:auto!important;top:236px!important;--card-rotate:13deg}.fl-job-4{left:20.1%!important;top:460px!important;--card-rotate:13deg}.fl-job-5{left:auto!important;right:6.6%!important;top:543px!important;--card-rotate:-15deg}
  .fl-job small{font-size:16px!important;line-height:22px!important;letter-spacing:0!important}.fl-job strong{font-size:16px!important;line-height:26px!important;margin:0!important;font-weight:400!important}.fl-job>span:not(.fl-job-detail){font-size:16px!important;line-height:26px!important;color:#000!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:292px!important;height:auto!important;min-height:301px!important;padding:28px!important;transform:rotate(0deg)!important}.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:145px!important;margin-top:14px!important;font-size:14px!important;line-height:1.7!important}
  .fl-note-work{left:0!important;top:411px!important;width:151px!important;height:53px!important;min-height:53px!important;transform:rotate(15deg)!important}
}
@media(max-width:900px) and (min-width:641px){.fl-work{padding-top:140px!important;padding-bottom:90px!important}.fl-work .fl-wide-head{grid-template-columns:1fr!important;gap:22px!important}.fl-map{height:700px!important;margin-top:80px!important}.fl-route{left:10%!important;top:55px!important;width:80%!important;height:540px!important;object-fit:fill!important}}
@media(max-width:640px){.fl-work{padding-top:82px!important;padding-bottom:70px!important}.fl-route{display:none!important}.fl-map{height:auto!important;margin-top:48px!important;padding-left:0!important;gap:20px!important}.fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:120px!important;padding:22px 23px!important;transform:none!important}.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:100%!important;min-height:205px!important;transform:none!important}}

/* Figma measured card coordinates after rotation. */
@media(min-width:901px){
  .fl-job-1{left:10.6%!important;top:54px!important}
  .fl-job-2{left:59.45%!important;top:27px!important}
  .fl-job-3{left:43.1%!important;top:236px!important}
  .fl-job-4{left:20.8%!important;top:460px!important}
  .fl-job-5{left:60%!important;right:auto!important;top:502px!important}
}

/* Dynamic Stroke: Frequency 120%, Wiggle 30%, Smoothen 50%. */
.fl-kicker i,.fl-hero h1 i,.fl-route{filter:url(#fl-line-wiggle)!important}
.fl-kicker i,.fl-hero h1 i{border-top-width:2.2px!important}
.fl-about-card:before,.fl-about-card:after{
  content:""!important;
  position:absolute!important;
  z-index:8!important;
  display:block!important;
  top:-9px!important;
  width:11px!important;
  height:18px!important;
  border:1.5px solid #111!important;
  border-radius:999px!important;
  background:#f4daa1!important;
  pointer-events:none!important;
}
.fl-about-card:before{left:-5px!important;transform:rotate(-42deg)!important}
.fl-about-card:after{right:-5px!important;left:auto!important;transform:rotate(42deg)!important}
@media(min-width:901px){
  .fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important}
  .fl-job>span:not(.fl-job-detail){display:none!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{justify-content:center!important;gap:0!important}
}
.fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{margin-top:10px!important;margin-bottom:0!important}
@media(min-width:641px){
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{height:auto!important;min-height:230px!important;padding-top:24px!important;padding-bottom:24px!important;justify-content:center!important}
}
@media(max-width:640px){
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{height:auto!important;min-height:205px!important;padding-top:22px!important;padding-bottom:22px!important;justify-content:center!important}
}
.fl-hero{height:100dvh!important;min-height:100dvh!important;box-sizing:border-box!important}
.fl-hero-inner{margin-top:0!important;transform:translateY(-2vh)}
.fl-about{padding-top:145px!important}
.fl-job{transition:width .6s ease,min-height .6s ease,height .6s ease,padding .6s ease,transform .6s ease,box-shadow .6s ease!important}
.fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{transform:scale(1.08) rotate(-3deg)!important}
.fl-tags span,.fl-actions .fl-btn,.fl-store,.fl-contact-grid a,.fl-contact-grid button{transition:transform .6s ease,box-shadow .6s ease!important}
.fl-tags span:hover,.fl-actions .fl-btn:hover,.fl-store:hover,.fl-contact-grid a:hover,.fl-contact-grid button:hover{animation:none!important;transform:scale(1.08) rotate(-3deg)!important;box-shadow:0 14px 26px rgba(0,0,0,.12)}
@media(max-width:640px){
  .fl-hero{height:100svh!important;min-height:100svh!important}
  .fl-hero-inner{transform:translateY(-1vh)}
  .fl-about{padding-top:100px!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{transform:scale(1.025) rotate(-1deg)!important}
}

/* Stable experience-card expansion: no border redraw, width reflow or font resizing. */
.fl-job,.fl-job-2,.fl-job-3,.fl-job-4,.fl-job-5{
  transition:min-height .65s cubic-bezier(.22,1,.36,1),height .65s cubic-bezier(.22,1,.36,1),padding .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1),box-shadow .65s ease!important;
}
.fl-job:after{inset:0!important;border:2px solid #111!important;filter:none!important;transform:none!important}
@media(min-width:901px){
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{width:242px!important;height:auto!important;min-height:230px!important;padding:24px 20px!important;transform:scale(1.04) rotate(-1.5deg)!important}
  .fl-job:hover small,.fl-job:focus-visible small,.fl-job.is-open small{font-size:16px!important;line-height:22px!important}
  .fl-job:hover strong,.fl-job:focus-visible strong,.fl-job.is-open strong{font-size:16px!important;line-height:26px!important;margin:0!important}
  .fl-job:hover>span:not(.fl-job-detail),.fl-job:focus-visible>span:not(.fl-job-detail),.fl-job.is-open>span:not(.fl-job-detail){font-size:16px!important;line-height:26px!important}
  .fl-job:hover .fl-job-detail,.fl-job:focus-visible .fl-job-detail,.fl-job.is-open .fl-job-detail{max-height:128px!important;margin-top:10px!important;font-size:14px!important;line-height:1.7!important}
}

/* Final annotated experience-card angles — keep the same angle while expanded. */
@media(min-width:641px){
  .fl-job-1{--card-rotate:17.27deg!important;transform:rotate(17.27deg)!important}
  .fl-job-2{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-3{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-4{--card-rotate:-12.73deg!important;transform:rotate(-12.73deg)!important}
  .fl-job-5{--card-rotate:17.27deg!important;transform:rotate(17.27deg)!important}
  .fl-job:hover,.fl-job:focus-visible,.fl-job.is-open{
    transform:scale(1.04) rotate(0deg)!important;
  }
}
